web3, трюфель, ошибка nodejs: UnhandledPromiseRejectionWarning

var     web3            = require('web3'),
    contract        = require('truffle-contract'),
    path            = require('path'),
    MyContractJSON  = require(path.join(__dirname, '../tru_dir/build/contracts/NewCoin.json'));
var     provider        = new web3.providers.HttpProvider("http://localhost:8545");

var     MyContract      = contract(MyContractJSON);

MyContract.setProvider(provider);
MyContract.deployed().then(function(instance){
return instance.returnfive();
})

.then(function(result) {
console.log(result);
}, function(error) {
console.log(error);
});

Я установил этот код для вызова функции смарт-контракта, которая возвращает 5. Я протестировал его с помощью консоли трюфеля, и он работает правильно. Но при попытке получить тот же результат с помощью nodejs он вылетает с этими двумя ошибками:

(node:6227) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): TypeError: Cannot read property 'apply' of undefined
(node:6227) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Есть идеи по поводу проблемы?


person kah    schedule 05.10.2017    source источник


Ответы (1)


Замените определение MyContract на const MyContract = artifacts.require("MyContractewCoin")

// You are missing this step before invoking deployer
await deployer.deploy(MyContract) 

const dMyContract = await MyContract.deployed() 
// now you can do stuff like 
let result = await dMyContract.someContractFunction(args)
person ccolorado    schedule 07.05.2020