Не могу получить умный адресный баланс баланса со стандартным адресом (это) .balance; - PullRequest
0 голосов
/ 26 апреля 2020

Я новичок со всем, что связано с надежностью и умными контрактами. Может, я просто упускаю что-то действительно очевидное, но в любом случае Итак, у меня есть паритет, работающий локально в режиме цепочки разработки. У меня довольно простой умный контракт, только модифицированный Hello World.

pragma solidity ^0.6.0;

contract HelloWorld {
  function getContractAddress() public returns (address) {
    return address(this);
  }

  function getContractBalance() public view returns (uint256) {
    return address(this).balance;
  }
}

Я сейчас вызываю функции и внедряю умный контракт в консоль rails, я использую gem ethereum, поэтому для меня это выглядит так (я используйте цепочку разработчиков, поэтому она принимает учетную запись разработчика по умолчанию

contract = Ethereum::Contract.create(file: "/home/work/greeter.sol")
contract.deploy_and_wait

В качестве вывода для команды deploy я вижу адрес смарт-контракта. В качестве вывода для contract.call.get_contract_address я вижу действительный адрес И когда я вызов contract.call.get_contract_balance я получаю ошибку IOError: VM execution, в соответствующих логах его

I, [2020-04-26T21:32:57.469694 #7580]  INFO -- : Sending {"jsonrpc":"2.0","method":"eth_call","params":[{"to":"0x0faf2f31ab165b55f42e55c8065c0ec7170a0d45","from":"0x00a329c0648769a73afac7f9381e08fb43dbea72","data":"0x6f9fb98a0000000000000000000000000000000000000000000000000000000000000000","gas":"0x3d0900","gasPrice":"0x51f4d5c00"},"latest"],"id":1}
I, [2020-04-26T21:32:57.470292 #7580]  INFO -- : Received {"jsonrpc":"2.0","error":{"code":-32015,"message":"VM execution error.","data":"Bad instruction 47"},"id":1}
...