我正在以太坊网站上的第一教程。
我已经使用混音编辑了合同代码,并创建了以下脚本。我以简短的方式删除了二进制字符串:
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转换为煤气。
您不"将"以太转换为气体。您使用以太付费。
无论如何,您收到的错误消息似乎正确。您的平衡很低。eth.getBalance()
在WEI中返回余额。您的余额仅为〜0.0004以太(Ether),这很低(您可以使用https://etherconverter.online/转换为以太或使用web3.fromWei(val, 'ether')
中的代码转换)。
您需要的醚金额因合同中执行的操作以及您愿意为所用的汽油支付多少(您可以在事务对象中覆盖默认的gasPrice
)而有所不同。尝试采矿或将更多的以太转移到您的帐户中。
哪种网络, testrpc 或私有网络?如果您在使用geth init genesis.json
初始初始化的专用网络上发送交易,请不要将chainId
设置为0