我正在写一份智能合约,我需要从我的coinbase(eth.coinbase)发送以太币给我的朋友coinbase(地址= 0x0123)。
如果我尝试使用address.send(value),该功能不会减少我的帐户,也不会增加我朋友的硬币基数。
我只能使用“eth.sendTransaction(VALUE,{from:eth.coinbase,to:address})在geth中发送以太符号” 所以我想知道是否有可能在合同中调用eth方法或以不同的方式在智能合约中发送以太
function withdraw() returns (bool) {
address x = 0x0123;
uint amount = 100 ether;
if (x.send(amount))
return true;
else
return false;
}
答案 0 :(得分:1)
address.send不会传播例外,因为您没有看到任何问题。确保合同中有足够的Eth。
查看此文档,了解如何设置智能合约:https://developer.ibm.com/clouddataservices/2016/05/19/block-chain-technology-smart-contracts-and-ethereum/
答案 1 :(得分:1)
您可以使用以下功能。只需更改您的变量名称。
function Transfer(uint amount,address reciever){
// check sender balance is less than of amount which he wants to send.
if(balance[msg.sender] < amount){
return;
}
// decrease sender's balance.
balance[msg.sender] = balance[msg.sender] - amount;
// increase reciever's balance.
balance[reciever] = balance[reciever] + amount;
// event
// transaction(msg.sender,reciever,amount);
}