본문 바로가기

Blockchain

toWei()와 GWei()의 차이점

web3 utils 안에 들어있는 여러 라이브러리들을 보던 중에 toWei()와 GWei()를 보았다. 대충 이더리움과 관련된 무언가의 라이브러리이겠거니..? 하고 추측만 하고 정확하게 무슨 의미인지 다시 찾아보았다. 

 

일단, 이더리움에서 sigendTx에 필요한 TransactionConfig의 요소로는 다음과 같다. 

export interface TransactionConfig { 
	from?: string | number; 
    to?: string; 
    value?: number | string | BN; 
    gas?: number | string; 
    gasPrice:?: number | string | BN; 
    maxPriorityFeePerGas?: number | string | BN; 
    maxFeePerGas?: number | string | BN; 
    data?; string; 
    nonce?: number; 
    chainId?: number; 
    common?: Common; 
    chain?: string; 
    hardfork?: string
}

이렇게 필요한 요소를 커스텀해서 쓸 수 있는데 (?가 붙어있으므로) 그중에서도 이더리움은 tx를 전송할때 해당 tx를 처리할 노드에 가스비용을 얼마나 보낼것인지가 중요하다. 그래서 gas,gasPrice,maxPriorityFeePerGas, maxFeePerGas와 같은 프로퍼티들이 존재하는 것이다. 

 

이와 관련하여 web3.utils에서는 가스비를 보낼때 소수점 이하의 정밀도를 체크하는 등 여러 라이브러리들을 만들었는데 그중에서 toWei()와 가스비 가격 단위를 측정하는 Gwei()가 있다. 

 

일단 이더리움에서 1 ETH = 10의 18승 Wei 단위이다. 

 

toWei()를 사용하는 이유 : 이더리움과 같은 블록체인 플랫폼에서 소수점 이하의 정밀도 처리 & 단위를 일관성있게 관리하기 위해 toWei()를 사용하는데 스마트컨트랙트나 거래(tx) 수행 시 소수점 이하의 정밀도를 표현하는 케이스가 있기 때문이다. 정확히 10 이런 단위로 가스비가 떨어지는 것이 아닌 대부분 10.2555555 이런 식의 소수점 단위로 가스비가 책정되기 때문이다. 

 

GWei()를 사용하는 이유 : 이더리움 블록체인에서 사용되는 가스 가격 단위로, 해당 tx를 보낼 때 해당 tx를 처리할 노드에 가스비를 얼마나 보낼 것인지에 대해 Gwei()로 설정한다.