일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- ethers v6
- rust 기초
- 스마트컨트렉트 함수이름 중복 호출
- Vue
- 컨트렉트 동일한 함수이름 호출
- 깃허브명령어
- ambiguous function description
- 스마트컨트렉트프록시
- git rebase
- SBT표준
- 러스트 기초
- ethers typescript
- 체인의정석
- 머신러닝기초
- nestjs 튜토리얼
- ethers
- ethers type
- 스마트컨트렉트 예약어 함수이름 중복
- 러스트기초
- 러스트 기초 학습
- nest.js설명
- ethers websocket
- Vue.js
- multicall
- 스마트컨트렉트테스트
- chainlink 설명
- vue기초
- 스마트 컨트렉트 함수이름 중복
- 프록시배포구조
- 컨트렉트 배포 자동화
Archives
- Today
- Total
체인의정석
ether.js에서 abi encode 하기 본문
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를 사용하면 해결이 가능한데
const abiCoder = ethers.utils.defaultAbiCoder;
.
.
.
uint256 tokenId = abi.decode(bytes(tokenData),(uint256));
다음과 같은 방식으로 tokenId를 넣을 수 있다.
abiCoder를 지정한 후 이를 ether 모듈을 사용하여 지정해주면 인코딩 된 값이 나오게 된다.
728x90
반응형
'블록체인 > Ethers & web3' 카테고리의 다른 글
스마트컨트렉트 배포 시 hardhat etherscan verify 로직 추가 (0) | 2022.02.15 |
---|---|
hardhat 트랜잭션 테스트 코드 (0) | 2022.02.15 |
ethers.js에서 keccak256 사용하기 (0) | 2022.02.13 |
ether.js에서 HexPad 하기 (0) | 2022.02.11 |
hardhat 오류 해결) bytes32 형태의 값 넣는 방법 (0) | 2022.01.27 |
Comments