官方合约, A调用B的func() 实现批量转账, 实际花的是A的钱.
合约方法 func(){
address(addr).send(amount);
// 实际花的是合约的钱, 怎么写 花 调用方的钱
}
是通过 DELEGATECALL吗? 有方法例子吗.
function test(address payable addr, uint256 num) public payable { address(addr).call{value: num}(""); } 最后采用这种方式. 用例子理解起来可能更简单点
function test(address payable addr, uint256 num) public payable {
address(addr).call{value: num}(""); // 可以转账给这个addr ,默认花这个合约的钱
}
function test2(address payable addr) public payable {
address(addr).call{value: msg.value}(""); // 可以转账给这addr ,默认花调用方
}
后边就是msg.value}("") // 很多知名contract也是这种用法