체인의정석

Truffle 배포 후 web3에 abi인식 시키기 본문

블록체인/퍼블릭 블록체인

Truffle 배포 후 web3에 abi인식 시키기

체인의정석 2021. 1. 26. 15:03
728x90
반응형

우선 truffle 배포 시  하나의 파일만 배포하는것은 다음과 같이한다.

 

truffle은 오랜만에 써보는데 배포까지는 무조건 truffle로 하는게 편한것 같다.

 

ropsten testnet에 배포하는 법

바뀌는 solidity code가 있을 경우 truffle compile 후에 배포한다.

truffle migrate -f 4 --to 4 --network ropsten

이렇게 되면 4번의 migration파일만 migrate된다.

 

배포가 끝나게 되면 build 경로 아래에 있는 contracts안에 배포 정보가 나오게 된다.  .json 파일로 되어 있는데 이걸 그대로 복사하면 된다.

이때 유의해야 할 점은

 

const fs = require('fs');
const contractABI = JSON.parse(fs.readFileSync('./public/javascripts/TestArbMain.json')).abi;
console.log(contractABI)

다음과 같이 복사한 파트중 다음과 같이 abi 부분만 빼서 가져와야 한다는 것이다. 이걸 깜박해서 좀 해맸다.

스마트 컨트렉트의 주소값까지 해서 다음과 같이 인식시켜주면 된다. 이때 await를 걸어서 singTX를 하는 부분은 코드의 가독성을 위하여 따로 함수로 빼두었다. 

  var web3 = new Web3(new Web3.providers.HttpProvider(endpoint));
  let contract = new web3.eth.Contract(contractABI, contractAddress); 
  let enabi = contract.methods.함수이름(인자값1,인자값2 ,,,).encodeABI();    
  let result_bc = await signTX(enabi);
728x90
반응형
Comments