以稳健智能合约发送以太

时间:2017-02-16 15:07:24

标签: solidity smartcontracts

我正在写一份智能合约,我需要从我的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;
}

2 个答案:

答案 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);
}