Как развернуть обновляемый смарт-контракт в сети Tron

Я некоторое время работал разработчиком в сетях на основе эфириума, и на самом деле создать и развернуть смарт-контракт с openzeppelin очень просто.

Проблемы начинаются, когда вы заходите в сеть Tron, потому что знаете, что она основана на EVM, но имеет свои собственные приложения для всех взаимодействий с блокчейном.

Я реализовал несколько смарт-контрактов, которые мне нужно обновить из-за логики, которой я следую, но, по-видимому, при развертывании Tronbox он не совместим с @openzeppelin/truffle-upgrades , и я не нашел никакой библиотеки для решения этой проблемы.

это мой код

      const ExampleToken = artifacts.require("ExampleToken");
const {deployProxy} = require("@openzeppelin/truffle-upgrades");

module.exports = async function (deployer) {
    await deployProxy(ExampleToken, [], {deployer});
};

И это ошибка, которую я получаю

/usr/local/lib/node_modules/tronbox/build/components/Provider/index.js:1 "использовать строго";var _require=require("../TronWrap"),TronWeb=_require.TronWeb;var wrapper=require ("./wrapper");module.exports={wrap:function wrap(поставщик,опции){return wrapper.wrap(поставщик,опции)},create:function create(options){var provider;if(options.provider&&typeof options.provider==="функция"){provider=options.provider()}else if(options.provider){provider=options.provider}else{var HttpProvider=TronWeb.providers.HttpProvider;HttpProvider.prototype.send=function (полезная нагрузка) {var request=this.prepareRequest(false);try{request.send(JSON.stringify (полезная нагрузка))}catch (ошибка) {throw new Error ("Недопустимое соединение (".concat (this.host, ")"))}var result=request.responseText;try{result=JSON.parse(result)}catch(e){выдать новую ошибку("Неверный ответ(".concat(request.responseText,")"))}вернуть результат};HttpProvider.prototype.sendAsync=function(payload,callback){var request=this.prepareRequest(true);request.onreadystatechange=function(){if(request.readyState===4&&request.timeout!==1){var result=request.responseText;var error=null;try{result=JSON.parse(result)}catch(e){error=new Error("Неверный ответ(".concat(request.responseText,")"))}обратный вызов(ошибка,результат)}};request.ontimeout=function(){выбросить новую ошибку("Время ожидания подключения(".concat(this.timeout,")"))};try{request.send(JSON.stringify(полезная нагрузка))}catch(ошибка){обратный вызов(новая ошибка(" Недопустимое соединение (".concat(this.host,")")))}запрос на возврат};provider=new HttpProvider(options.fullHost)}вернуть это.wrap (поставщик, параметры)},test_connection:function test_connection (поставщик, обратный вызов) {обратный вызов (null,true)}};

TypeError: this.prepareRequest не является функцией в e.HttpProvider.sendAsync (/usr/local/lib/node_modules/tronbox/build/components/Provider/index.js:1:873) в e.sendAsync (/usr/local/lib/node_modules/tronbox/build/components/Provider/wrapper.js:1:1544) в Object.sendAsync (/usr/local/lib/node_modules/tronbox/build/components/Migrate/index.js:1:4934 ) в node:internal/util:360:7 в новом Promise() в связанном sendAsync (node:internal/util:346:12)

0 ответов

Другие вопросы по тегам