我有一份合同如下:
contract HoneyPot {
mapping (address => uint) public balances;
function HoneyPot() payable {
balances[msg.sender] = msg.value;
}
}在部署合同时,我希望发送一些乙醚,这样部署合同的帐户的balances[msg.sender]就可以得到相当于乙醚发送量的余额。应如何做到这一点?
下面是我如何部署合同:
const fs = require("fs");
const solc = require('solc');
let Web3 = require('web3');
let web3 = new Web3();
web3.setProvider(new web3.providers.HttpProvider('http://localhost:8545'));
let go = fs.readFileSync('HoneyPot.sol').toString();
let compiledContract = solc.compile(go);
abiDefinition = JSON.parse(compiledContract.contracts[':HoneyPot'].interface);
contract = web3.eth.contract(abiDefinition);
byteCode = '0x'+compiledContract.contracts[':HoneyPot'].bytecode;
let gasEstimate = web3.eth.estimateGas({data: byteCode});最后,部署它的行(不发送以太):
deployedContract = contract.new({from:web3.eth.accounts[0],data:byteCode,gas: gasEstimate+40000});发布于 2017-08-29 07:43:37
您可以按以下方式调用HoneyPot函数:
deployedContract.HoneyPot({from:web3.eth.accounts[0],value:100})希望能帮上忙~
发布于 2017-08-29 09:46:31
只需在部署合同的行中添加"value“即可。
deployedContract = contract.new({from:web3.eth.accounts[0], value: 5 wei, data:byteCode,gas: gasEstimate+40000});https://ethereum.stackexchange.com/questions/25373
复制相似问题