일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 스마트 컨트렉트 함수이름 중복
- 스마트컨트렉트테스트
- 컨트렉트 배포 자동화
- rust 기초
- 머신러닝기초
- Vue
- 러스트 기초
- git rebase
- 러스트 기초 학습
- 러스트기초
- ethers websocket
- 컨트렉트 동일한 함수이름 호출
- 오블완
- 프록시배포구조
- Vue.js
- SBT표준
- ambiguous function description
- 스마트컨트렉트 함수이름 중복 호출
- 티스토리챌린지
- ethers v6
- 스마트컨트렉트 예약어 함수이름 중복
- 스마트컨트렉트프록시
- ethers
- multicall
- ethers typescript
- vue기초
- chainlink 설명
- 체인의정석
- nest.js설명
- ethers type
Archives
- Today
- Total
체인의정석
타입스크립트 백엔드와 스마트컨트렉트 연동하기 1) ABI 가져오기 (타입스크립트로 모듈 만들기) 본문
728x90
반응형
작성한 스마트컨트렉트의 배포 이후
지난번 메타마스크에 이어서 이번에는 관리자가 사용할 백엔드 환경에서의 API를 만들어야 하는 상황이 왔다.
지난번에는 자바스크립트로 모듈을 만들었었는데 이번에는 타입스크립트로 ABI를 저장한 후 불러와서 사용해야 되는 상황이 되었다.
https://radlohead.gitbook.io/typescript-deep-dive/project/modules/external-modules
위의 사이트에 가면 타입스크립트로 모듈을 만들 수 있는 여러가지 방법들이 나오게 되는데 ABI의 경우 양이 방대하며, 구분을 하는것이 수정에 용이할 것이라고 판단되어 그 중 변수를 하나씩 정하여 가져오는 방법을 사용하기로 하였다.
import { WERC721ABI, ExampleERC721ABI } from "../abi_constant"
일단 모듈을 만들고 가져오는 부분은 위와 같이 하면 된다.
그럼 모듈을 만들어보겠다.
파일 이름은 abi_constants.ts 로 타입스크립트 형태로 만든다.
export let ExampleERC721ABI = [
{
"constant": true,
"inputs": [
{
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
...
]
컨트렉트를 컴파일하면 artifacts > contracts 디렉토리에 배포 정보가 나오는데 거기서 ABI에 해당하는 부분을 복사해서 위와 같이 붙여넣기를 하면된다. 이미 배포된 컨트렉트와 상호작용을 하기위해 이후 필요한건 이미 배포된 컨트렉트 주소이다.
이후 과정은 다음 포스팅에 정리하겠다.
728x90
반응형
'블록체인 > Ethers & web3' 카테고리의 다른 글
hardhat + ether js 로 스마트컨트렉트 테스트 코드 작성할 때 알아야 할 3가지 대표 유형 (0) | 2022.03.03 |
---|---|
타입스크립트 백엔드와 스마트컨트렉트 연동하기 2) ABI와 CA 활용하여 트랜잭션 보내기 (0) | 2022.02.23 |
hardhat에서 스마트컨트렉트 console 찍기 (0) | 2022.02.22 |
ether.js에서 0으로 들어가는 주소 및 값 테스트 하기 (0) | 2022.02.21 |
ethers를 사용하여 이미 배포된 컨트렉트에 연결하여 트랜잭션 보내기 (0) | 2022.02.18 |
Comments