체인의정석

hardhat 오류 해결) bytes32 형태의 값 넣는 방법 본문

블록체인/Ethers & web3

hardhat 오류 해결) bytes32 형태의 값 넣는 방법

체인의정석 2022. 1. 27. 15:14
728x90
반응형

생성자로 코드 형태인 bytes32를 넣어야 하는 상황이다. 

그러나 "0x1"과 같이 바로 사용하면 오류가 났다.

찾아보니 bytes32에 패딩작업을 해주지 않으면 오류가 난다고 한다.

 

따라서 패딩작업을 해주는 함수를 찾아서 적용하였다.

  const paddedA = ethers.utils.hexZeroPad("0x1", 32)
  const paddedB = ethers.utils.hexZeroPad("0x2", 32)

이런식으로 0을 채워서 숫자를 맞추어 주어야 32 바이트의 인자값이 나오게 된다. 

32byte의 경우 고정 길이로서 외부함수 호출등에도 사용이 가능하며 용량을 작게 차지하여서 특정 인덱스 정보를 저장하는데 용이하다.

여기서는 ERC 토큰의 표준이나 체인의 아이디와 같은 값을 byte32로 지정하였는데 앞으로도 많이 사용할 것 같다.

728x90
반응형
Comments