TypeError: contract.test не является функцией tronweb nodejs - PullRequest
1 голос
/ 15 марта 2019

Я пытаюсь получить доступ к смарт-контракту Tron, который развернут в тестовой сети Shasta с использованием Tron-Web.Я использую сервер node-casiko Ниже приведен мой код:

const TronWeb = require('tronweb')

// This provider is optional, you can just use a url for the nodes instead
const HttpProvider = TronWeb.providers.HttpProvider;


const fullNode = 'https://api.shasta.trongrid.io';
const solidityNode = 'https://api.shasta.trongrid.io';
const eventServer = 'https://api.shasta.trongrid.io';
const privateKey = 'my test account private key';

const tronWeb = new TronWeb(
    fullNode,
    solidityNode,
    eventServer,
    privateKey
);


module.exports = {
        tmp: async function (req, res, next){
                try{
                        var contract = await tronWeb.trx.getContract("TS71i14jzLawbtu4qPDKEsFERSp6CQb93948");
                        //res.send(contract)
                        var result = await contract.test().call();
                        //res.send(result);
                }
                catch(err){
                        console.error(err)
                }
        }
}

Когда я выполняю этот файл js, используя узел , имеющий версию v10.15.3 .Я получаю сообщение об ошибке:

TypeError: contract.test не является функцией в tmp (/home/administrator/node-Casiko/models/tronContract.js:25:32) в process._tickCallback(internal / process / next_tick.js: 68: 7)

Если я печатаю переменную контракта, она печатает всю информацию о контракте, но не вызывает методы контракта.Может кто-нибудь помочь мне с этой проблемой?

1 Ответ

0 голосов
/ 22 апреля 2019

Ну, мне удалось найти ответ на свой вопрос.Просто измените код, как показано ниже.Это работает !!

module.exports = {
        tmp: async function (req, res, next){
                try{
                        var contract = await tronWeb.contract()
                                   .at("TS71i14jzLawbtu4qPDKEsFERSp6CQb93948")
                        var result = await contract.test().call();
                }
                catch(err){
                        console.error(err)
                }
        }
...