-1

ENV:测试-RPC 松露

代码: let source = "pragma solidity ^0.4.11;contract Calc{ uint count; function add(uint a, uint b) returns(uint){ count++; return a + b; } function getCount() return (uint){返回计数;}}";

让 calc = web3.eth.compile.solidity(source);

终端告诉我:truffle(development)> Error: Error: Method eth_compileSolidity not supported。在 GethApiDouble.handleRequest (/Users/user/.nvm/versions/node/v6.10.3/lib/node_modules/ethereumjs-testrpc/build/cli.node.js:101870:16) ......

4

1 回答 1

1

我猜你试图获取你的合约的 ABI 和/或字节码。Web3 库(您在 truffle 控制台中需要,然后实例化 web3 提供程序)自 1.6.0 版以来没有 web3.eth.compile.solidity()

这里描述了使用 Remix 和 solc 编译器的编译方式:https ://ethereum.stackexchange.com/questions/15435/how-to-compile-solidity-contracts-with-geth-v1-6

当 truffle 编译你的代码时,它使用一些固定版本的 solc(取决于 truffle 版本)。对于 truffle 3.2.5 solc 0.4.11+commit.68ef5810.Emscripten.clang 使用。这是获取当前版本 truffle 的 solc 的方法(在 Etherscan 上验证代码时必须知道): https ://ethereum.stackexchange.com/questions/18133/how-do-i-find-the-exact-松露使用的solidity编译器版本

于 2017-08-02T16:02:12.230 回答