Твердость контракта звонки вопрос - PullRequest
1 голос
/ 23 мая 2019

Я создал фиктивный договор о надежности (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 голосов
/ 11 июня 2019

Попробуйте использовать следующее для создания экземпляра контракта:

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)));
0 голосов
/ 24 мая 2019

Похоже, способ, которым вы пытаетесь вызвать функцию, не совсем корректен.Вместо создания объекта myContract попробуйте просто ввести адрес контракта в объект транзакции и затем вызвать его:

let transactionCall = {
    from: account.address, 
    to: "0xa0bf00624C2E81de745A826052D635f5c35515F0B55df6E4b1BAaCe785C124B9", 
    gas: 54321, 
        data: contractInst.methods.getCount().encodeABI()
};

web3.eth.call(transactionCall).then((res) => console.log(web3.utils.hexToNumber(res)));

Кроме того, убедитесь, что в вашем аккаунте есть монеты.Здесь можно использовать смеситель: https://faucets.blockxlabs.com/aion

Кроме того, добро пожаловать в StackOverflow!

...