【초보자용】web3.js로 전개된 컨트랙트를 호출할 때 빠진 일
전제 조건
덧붙여 전제 조건이 되어 있지 않은 경우는, 맨 아래의 참고 기사를 참고로 해 봐 주세요.
배포된 계약을 호출해 봅니다.
test.jsvar Web3 = require('web3');
var web3 = new Web3();
web3.setProvider(new web3.providers.HttpProvider('http://localhost:8545'));
//abi情報
var abi = [{"constant": true,"inputs": [],"name": "HelloEther","outputs": [{"name": "","type": "string"}],"payable": false,"stateMutability": "pure","type": "function"}];
//コントラクトのアドレス
var address = "0xb37ea71ecdcb442c3a5c9ce3ce63fdaaa6976da5";
//コントラクトの取得
var contract = web3.eth.contract(abi).at(address);
//実行
var response = contract.HelloEther.call();
console.log(response);
web3.js를 설치한 폴더에 위의 js 파일을 놓고 실행합니다. 덧붙여 IP 주소와, abi 정보, 계약의 주소는 자신의 환경의 것을 기입해 주세요.
계약은 다음 파일입니다.
HelloWorld.solpragma solidity ^0.4.22;
contract helloWorld {
function HelloEther () public pure returns (string) {
return 'Hi Ether';
}
}
위의 계약을 배포 할 때까지 위의 js 파일을 실행하십시오.
자신이 빠진 포인트
그럼, 자신이 빠져버린 포인트를 소개하겠습니다. 다음 세 가지가 있습니다.
계약의 주소
우선은 test.js 안에 있는 계약의 주소군요. 이것을 자신은 확실히 그림의 ①의 주소라고 생각하고 있었습니다만, 그렇지 않고 ②의 주소입니다.
abi는 copipe하지 않으면 안됩니다.
abi 정보는 눈으로 볼 수 있는 것을 몰아넣는 것이 아니라, 클립보드 기능을 사용해 copipe 한 것을 써 주지 않으면 안됩니다.
contract의 다음은 함수명
이런 실수는 자신뿐일지도 모릅니다만, var response = contract.HelloEther.call(); , HelloEther). 자신은 여기를 helloWorld라고 썼습니다.
요약
이상 달리기로, 빠진 포인트를 소개해 왔습니다. 어땠습니까? 이런 당연이라고 생각되는 것이 대부분일지도 모릅니다만, 자신과 같은 초보자는 빠져버리는 것이 아닐까라고 생각해, 써 보았습니다. 이 기사가 누군가의 도움이 되길 바랍니다.
참고 기사
var Web3 = require('web3');
var web3 = new Web3();
web3.setProvider(new web3.providers.HttpProvider('http://localhost:8545'));
//abi情報
var abi = [{"constant": true,"inputs": [],"name": "HelloEther","outputs": [{"name": "","type": "string"}],"payable": false,"stateMutability": "pure","type": "function"}];
//コントラクトのアドレス
var address = "0xb37ea71ecdcb442c3a5c9ce3ce63fdaaa6976da5";
//コントラクトの取得
var contract = web3.eth.contract(abi).at(address);
//実行
var response = contract.HelloEther.call();
console.log(response);
pragma solidity ^0.4.22;
contract helloWorld {
function HelloEther () public pure returns (string) {
return 'Hi Ether';
}
}
그럼, 자신이 빠져버린 포인트를 소개하겠습니다. 다음 세 가지가 있습니다.
계약의 주소
우선은 test.js 안에 있는 계약의 주소군요. 이것을 자신은 확실히 그림의 ①의 주소라고 생각하고 있었습니다만, 그렇지 않고 ②의 주소입니다.
abi는 copipe하지 않으면 안됩니다.
abi 정보는 눈으로 볼 수 있는 것을 몰아넣는 것이 아니라, 클립보드 기능을 사용해 copipe 한 것을 써 주지 않으면 안됩니다.
contract의 다음은 함수명
이런 실수는 자신뿐일지도 모릅니다만, var response = contract.HelloEther.call(); , HelloEther). 자신은 여기를 helloWorld라고 썼습니다.
요약
이상 달리기로, 빠진 포인트를 소개해 왔습니다. 어땠습니까? 이런 당연이라고 생각되는 것이 대부분일지도 모릅니다만, 자신과 같은 초보자는 빠져버리는 것이 아닐까라고 생각해, 써 보았습니다. 이 기사가 누군가의 도움이 되길 바랍니다.
참고 기사
Reference
이 문제에 관하여(【초보자용】web3.js로 전개된 컨트랙트를 호출할 때 빠진 일), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hiroaki1976/items/9aebc68c72c148d29183텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)