如何将资金从智能合约转移到msg.sender以外的其他帐户?

时间:2019-09-26 10:01:38

标签: solidity transfer smartcontracts truffle

我正在尝试将存储在智能合约中的部分资金转移到一个调用该函数(msg.sender)的帐户以外的帐户。我的功能非常像这样:

function getFunds(address addr, uint amount) public {
    require (address.this(balance)>= amount);
    addr.transfer(amount);
}

在Truffle中编译时得到的是:

  

在地址中依赖于参数进行查找之后,找不到或看不到成员“传输”。

好像在结构中寻找成员。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

由于坚固度为0.5的地址应为payable才能将eth传送给他们

function getFunds(address payable addr, uint amount) public {
    require (address.this(balance)>= amount);
    addr.transfer(amount);
}

对于结构的映射,您可以这样使用

contract testContract {

    mapping(uint256 => test) testAddressMapping; 
    struct test {
        address payable testAddress;
    }

    function testFunction() external{
        testAddressMapping[0].testAddress.transfer(100);
    }
}