체인의정석

ether.js에서 abi encode 하기 본문

블록체인/Ethers & web3

ether.js에서 abi encode 하기

체인의정석 2022. 2. 14. 11:34
728x90
반응형

스마트 컨트렉트에서 데이터를 암호화하여 올리기 위하여 

uint256 tokenId = abi.decode(bytes(tokenData),(uint256));

다음과 같이 solidity에서 abi.encode 해온 값을 받아와서 decode 하는 코드가 들어갈 때가 있다.

 

이럴 때는 etherjs에 있는 abiCoder를 사용하여 입력값을 주어 테스트 할 수 있다.

https://docs.ethers.io/v5/api/utils/abi/coder/#AbiCoder-encode

 

AbiCoder

Documentation for ethers, a complete, tiny and simple Ethereum library.

docs.ethers.io

위와 같이 abicoder를 사용하면 해결이 가능한데

const abiCoder = ethers.utils.defaultAbiCoder;
.
.
.

uint256 tokenId = abi.decode(bytes(tokenData),(uint256));

다음과 같은 방식으로 tokenId를 넣을 수 있다.

 

abiCoder를 지정한 후 이를 ether 모듈을 사용하여 지정해주면 인코딩 된 값이 나오게 된다.

728x90
반응형
Comments