В моем файле солидности есть два контракта.Если я создаю новый Контракт, используя функцию FactoryCOntracts makeNewContract, я получаю новый адрес файла.Но если я задаю этот новый адрес в качестве адреса своего контракта на веб-сайте tronweb, я получу сообщение об ошибке:
Uncaught (в обещании) TypeError: Невозможно прочитать «записи» свойств неопределенного
в точке e.(pageHook.js: 32874)
в tryCatch (pageHook.js: 28487)
в Generator.invoke [как _invoke] (pageHook.js: 28713)
в Generator.prototype. (: 3000 / анонимныйфункция) [как следующий] (расширение chrome: //ibnejdfjmmkpcnlpebklmnkoeoihofec/dist/pageHook.js: 28539: 21) в asyncGeneratorStep (pageHook.js: 157) в _next (pageHook.js: 179)
* 101
Пожалуйста, объясните, почему эта ошибка появляется?и каково решение?
const contractAddress = '4142eb13ccf2ceba48897c1718acb84cb2b99431af'
Я сначала установил этот адрес на развернутый адрес factoryContract (который работает нормально), но затем, когда я установил его на адрес только что созданного Контракта, я получил ошибку.Это мой файл utils / index.js:
const utils = {
tronWeb: false,
contract: false,
async setTronWeb(tronWeb,ca) {
this.tronWeb = tronWeb;
this.contract = await tronWeb.contract().at(contractAddress); },};
Ниже приведен мой файл солидности (который содержит оба контракта):
export default utils;
pragma solidity ^0.4.2;
contract FactoryContracts {
mapping (uint =>address) public allContracts;
uint public dealId;
uint public totalDeals;
event contractJustMade(address indexed newContractAddress);
constructor() public{ dealId=0; totalDeals=0; }
function makeNewContract() public {
Contract c = new Contract();
address newContractAddress = address(c);
allContracts[dealId]=(newContractAddress);
++dealId; ++totalDeals;
emit contractJustMade(newContractAddress); } }
contract Contract{ ...}
Я получил ошибку в this.loadAbi (r.abi.entrys) line `` `this.address = r.contract_address, this.bytecode = r.bytecode, this.deployed =! 0, this.loadAbi (r.abi.entrys), e.abrupt (" возврат "), п (нуль, это));случай 16: if (e.prev = 16, e.t0 = e.catch (3) ,! e.t0.toString (). includes ("не существует")) {e.next = 20; break} returne.abrupt («return», n («Контракт не был развернут в сети»));