#node.js #http #tron #tronweb
#node.js #http #трон #tronweb #tron
Вопрос:
Я пытаюсь получить доступ к смарт-контракту 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. Я получаю сообщение об ошибке как:
Ошибка типа: contract.test не является функцией в tmp (/home/administrator/node-Casiko/models/tronContract.js:25:32) в процессе._tickCallback (внутренний /процесс/next_tick.js:68:7)
Если я печатаю переменную contract, она печатает всю информацию о контракте, но не вызывает методы contract. Кто-нибудь может мне помочь с этой проблемой?
Ответ №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)
}
}