Ruby on rails 无法使用标准地址(此)获取智能合约地址余额。余额;

Ruby on rails 无法使用标准地址(此)获取智能合约地址余额。余额;,ruby-on-rails,ethereum,solidity,smartcontracts,Ruby On Rails,Ethereum,Solidity,Smartcontracts,我是一个新手,一切都与坚固性和智能合约有关。也许我只是错过了一些很明显的东西,但无论如何。 所以,我在开发链模式下在本地运行奇偶校验。 我有一个非常简单的智能合约,只是一个修改过的Hello World pragma solidity ^0.6.0; contract HelloWorld { function getContractAddress() public returns (address) { return address(this); } function

我是一个新手,一切都与坚固性和智能合约有关。也许我只是错过了一些很明显的东西,但无论如何。 所以,我在开发链模式下在本地运行奇偶校验。 我有一个非常简单的智能合约,只是一个修改过的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,所以对我来说它看起来像(我使用dev-chain,所以它使用默认的dev帐户)

contract = Ethereum::Contract.create(file: "/home/work/greeter.sol")
contract.deploy_and_wait
作为
deploy
命令的输出,我看到一个智能合约地址。 作为
contract.call.get\u contract\u address的输出,我看到了一个有效的地址
当我调用
contract.call.get\u contract\u 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}

您是如何测试合同的?ganache,专用测试网。确保您在genesis文件中启用了较新的操作码。您是如何测试合同的?ganache,专用测试网。确保您在genesis文件中启用了较新的操作码。