1

我正在尝试使用 Tron-Web 访问部署在 Shasta 测试网络上的 Tron 智能合约。我正在使用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)
                }
        }
}

当我使用版本为 v10.15.3的节点执行此 js 文件时。我收到错误为:

TypeError:contract.test 不是 tmp (/home/administrator/node-Casiko/models/tronContract.js:25:32) 在 process._tickCallback (internal/process/next_tick.js:68:7) 的函数

如果我打印合同变量,它会打印有关合同的所有信息,但不会调用合同方法。有人可以帮我解决这个问题吗?

4

1 回答 1

1

好吧,我设法找到了自我问题的答案。只需将代码更改如下。有用!!

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)
                }
        }
于 2019-04-22T06:40:44.077 回答