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);
})
})
'개발 학습 > 블록체인' 카테고리의 다른 글
Docker로 노드 운영 (2) : 계정 및 제네시스 블록 생성 (0) | 2022.02.19 |
---|---|
Docker로 노드 운영 (1) : Docker와 Geth 설치 및 세팅 (0) | 2022.02.19 |
S4: Web3.js로 InfuraApi를 사용해 데이터 읽기 (0) | 2021.12.07 |
S4: Infura로 이더리움 노드 접근 데이터 읽기 (0) | 2021.12.07 |
S4: 다른컨트랙트 와 상호작용하기 (0) | 2021.12.02 |
댓글