Проблема с консолью трюфеля: невозможно прочитать вызов свойства undefined

У меня проблема при выполнении кода

HelloWorld.deployed().balance.call().then(console.log)

Введена эта ошибка: Не удается прочитать «вызов» свойства неопределенного. Эта проблема похожа на эту тему , но не помогает в моем случае.

введите описание изображения здесьСпасибо за вашу помощь!

Мой код из этого турориала

contract HelloWorld {
  address public owner;
  mapping (address => uint) balances;
  function HelloWorld() {
    owner = msg.sender;
    balances[owner] = 1000;
  }
  function transfer(address _to, uint _value) returns (bool success) {
    if (balances[msg.sender] < _value) {
      return false;
    }
    balances[msg.sender] -= _value;
    balances[_to] += _value;
    return true;
  }
  function getBalance(address _user) constant returns(uint _balance) {
    return balances[_user];
  }
}
Не могли бы вы предоставить код вашего контракта HelloWorld?

Ответы (1)

У вас нет метода с именем «баланс», но есть «getBalance» с адресным аргументом «_user», поэтому вам нужно вызвать его следующим образом:

HelloWorld.deployed().getBalance.call('YOUR_ADDRESS')
Я пробовал этот. К сожалению, это не сработало. Я добавил свой код, чтобы вы могли лучше помочь
Протестируйте с помощью: HelloWorld.deployed().getBalance.call('YOUR_ADDRESS') или что-то вроде этого должно работать: HelloWorld.deployed().getBalance.call(web3.eth.accounts[0])
Я тоже пробовал, но не помогло :(((
Что вы получаете, когда запускаете: HelloWorld.deployed()?
Кажется, это HelloWorld.deployed()работает хорошо. У меня получилось что-то вроде этого TruffleContract {structor: { [Function: TruffleContract] _static_methods: { setProvider: [Function: setProvider], new: [Function: new], ...
Хорошо, скопируйте результат: Voting.deployed().then(contract => { return contract.abi })
Вы имели в виду HelloWorld.deployed().then(contract => { return contract.abi })?
Да извините за опечатку
Это результат: HelloWorld.deployed().then(contract => {return Contract.abi})[ { constant: true, inputs: [], name: 'owner', outputs: [ [Object] ], payable: false, stateMutability: 'view', type: 'function' }, { inputs: [], payable: false, stateMutability: 'nonpayable', type: 'constructor' }, { constant: false, inputs: [ [Object], [Object] ], name: 'transfer', outputs: [ [Object] ], payable: false, stateMutability: 'nonpayable', type: 'function' }, { constant: true, ...
пожалуйста, скопируйте полный вывод на pastebin.com или что-то подобное
Это так странно, не могли бы вы также вставить в консоль вывод этой команды: HelloWorld.deployed().getBalance.call(web3.eth.accounts[0])
Это приводит к ошибке: TypeError: Не удается прочитать вызов свойства undefined
Хорошо, последняя попытка, и если не сработает, я действительно не знаю: HelloWorld.deployed().getBalance(web3.eth.accounts[0])
Извините, но это тоже не работает. Спасибо