3

我正在浏览以太坊网站上的第一个教程

我已经使用 Remix 编译了合约代码并创建了以下脚本。为简洁起见,我删除了二进制字符串:

var _greeting = 'Hello World!';
var browser_untitled_sol_greeterContract = web3.eth.contract([{"constant":false,"inputs":[],"name":"kill","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"greet","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_greeting","type":"string"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"}]);
var browser_untitled_sol_greeter = browser_untitled_sol_greeterContract.new(
 _greeting,
 {
   from: web3.eth.accounts[0], 
   data: 'BINARY_STRING', 
   gas: '4700000'
 }, function (e, contract){
   console.log(e, contract);
   if (typeof contract.address !== 'undefined') {
     console.log('Contract mined! address: ' + contract.address + ' transactionHash: ' + contract.transactionHash);
   }
})

var browser_untitled_sol_mortalContract = web3.eth.contract([{"constant":false,"inputs":[],"name":"kill","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"}]);
var browser_untitled_sol_mortal = browser_untitled_sol_mortalContract.new(
   {
     from: web3.eth.accounts[0], 
     data: 'BINARY_STRING', 
     gas: '4700000'
   }, function (e, contract){
     console.log(e, contract);
     if (typeof contract.address !== 'undefined') {
       console.log('Contract mined! address: ' + contract.address + ' transactionHash: ' + contract.transactionHash);
   }
})

加载此脚本时,我得到:

Error: insufficient funds for gas * price + value.

打电话时eth.getBalance(eth.accounts[0])我得到:399577000000000

我不知道我的余额中应该有多少 eth 才能运行这个脚本,或者我是否需要将 eth 转换为 gas。

4

2 回答 2

2

您不会将以太“转换”为气体。您使用以太币支付所使用的气体。

无论如何,您收到的错误消息似乎是正确的。你的余额很低。eth.getBalance()在魏返回平衡。您的余额仅为 ~0.0004 以太币,这非常低(您可以使用https://etherconverter.online/转换为以太币或使用 转换为代码web3.fromWei(val, 'ether'))。

您需要的以太币数量取决于合约中执行的操作,以及您愿意为使用的 gas 支付多少(您可以覆盖gasPrice交易对象中的默认值)。尝试挖掘或将更多的以太币转移到您的帐户中。

于 2017-11-20T01:21:26.610 回答
0

哪种网络,testrpc专用网络?如果您在初始化为 的私有网络上发送交易geth init genesis.json,请不要设置chainId0

于 2017-11-20T01:42:54.700 回答