刚学solidity很多人会不明白转账的问题,虽然都知道transfer,call,send,但是没办法区分各个不同对象之间转账是怎么写的,许多教程也是没有清晰的区分这个问题
合约转账对象直接的转账一共有且只有三种
1.用户X转账到Y用户地址
function X2Y (address _Y) external payable{
payable(_Y).transfer(msg.value);
}
2.用户X转账到合约地址
function fundMe() external payable {
require(msg.value>0,"give me more money,asshole");
}
3.合约转账到X
function transfer2x(address _x,uint256 _amount) external {
payable(_x).transfer(_amount);
}
提取全部金额
function transfer2x(address _x) external {
payable(_x).transfer(address(this).balance);
}