团结合同电话问题

时间:2019-05-23 12:27:46

标签: aion

我创建了一个虚拟实体合同(https://learn.aion.network/docs/deploy-a-smart-contract-using-web3)并将其部署。当我尝试使用aion-web3进行呼叫时,会出现此问题。

const contract = require('aion-web3-eth-contract');
contract.setProvider("https://aion.api.nodesmith.io/v1/mastery/jsonrpc?apiKey=*");
const Web3 = require('aion-web3');
const web3 = new Web3(new Web3.providers.HttpProvider("https://aion.api.nodesmith.io/v1/mastery/jsonrpc?apiKey=*"));

const account = web3.eth.accounts.privateKeyToAccount("****");

let myContract = new contract([...], "0xa0e1166A455a0d75CFC2bfa32D7f76f0e1852c106b981Acf59EDE327CFD36811");
// console.log("C a",myContract.options.address);

myContract.methods.getCount().call({from: account.address}, function (error, result) {
    if (error){
        console.log("err=>", error)
    } else {
        console.log("res=>", result)
    }
});

我期望0,因为它是第一个调用,但会引发以下错误:

TypeError: myContract.methods.getCount is not a function

2 个答案:

答案 0 :(得分:0)

您尝试调用该函数的方式似乎不太正确。与其创建#coffee_cake对象,不如尝试仅将合同地址放入交易对象中,然后调用该对象:

myContract

此外,请确保您的帐户中有硬币。您可以在这里使用一个水龙头:https://faucets.blockxlabs.com/aion

此外,欢迎使用StackOverflow!

答案 1 :(得分:0)

尝试使用以下命令创建合同实例:

let myContract = new web3.eth.Contract(["compile contract abi info"])

然后

web3.eth.call({to:YourContractAddress, data:myContract.methods.getCount().encodeABI()}).then((res) => console.log(web3.utils.hexToNumber(res)));