2

我正在编写一个可靠的智能合约,我需要将以太币从我的 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;
}
4

2 回答 2

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);
}
于 2018-03-12T13:16:57.810 回答
1

address.send 不会传播异常,这就是您看不到任何问题的原因。确保你的合约中有足够的 Eth。

查看此文档,该文档将解释如何设置您的智能合约:https ://developer.ibm.com/clouddataservices/2016/05/19/block-chain-technology-smart-contracts-and-ethereum/

于 2017-05-01T06:26:34.503 回答