본문 바로가기
개발 학습/블록체인

S4: Web3에 ABI로 contract 와 personal 쓰기

by StelthPark 2021. 12. 8.

Contract 키워드

배포 된 컨트랙트의 함수가 어떻게 사용될지에 대한 Abi와

배포 된 컨트랙트의 주소를 가지고 new Contract 메소드로 배포가 아닌 새 contract를 만든다.

해당 컨트랙트로 내부에 있는 함수를 call( ) 하여 실행하면 함수가 실행되게 된다.

 

const contract = new Contract(abi, address);

이렇게 만들어진 컨트랙트 객체에 있는 함수를 사용하기 위해서는 contract.methods.함수명().call() 와 같이 사용할 수 있습니다.

contract.methods.함수명()은 컨트랙트에 있는 함수를 실행하는 트랜잭션 객체를 생성합니다. 또한 contract.methods.함수명().call() 은 트랜잭션을 실행한 결과를 Promise 형태로 반환합니다.

 

Contract ABI를 이용해 함수를 호출했기 때문에 Contract ABI Call이라고 합니다.

 

 

Personal로 transfer 함수 구현하기

async function transfer() {
    try {
        const address = 'from 가나슈 주소'
        const password = 'from 가나슈 프라이빗키';
        const transactionOptions = {
            from: address,
            gasPrice: "20000000000",
            gas: "21000",
            to: 'to 가나슈주소',
            value: "1000000000000000000", // 1이더
            data: ""
        }

        
       var personal = new Personal('http://127.0.0.1:7545');
      
        const receipt = await personal.sendTransaction(transactionOptions,password);
        console.log(receipt);
        return receipt;
    } catch(e) {
        console.log(e);
        return e;
    }
}


app.get('/sendtransaction', (req, res) => {
    transfer().then((result) => {
        res.send(result);
    })
})

댓글