一、外部账户转入合约地址账户的操作。首先我们定义一个pay方法,同时加上修饰词payable,同时把需要转账的金额在右边value交互窗进行输入,比如输入1000000(默认单位是威),然后通过调用函数getMoney,返回合约地址的余额,注意的是版本0.5开始需要使用,address(this).balance,直接使用this.balance是不行的。在图片中,我们在2处点击之后,通过点击3处的getMoney按键之后,1处的合约地址的余额变成了1000000威。
pragma solidity^0.5.0;
contract Pay{
function pay() public payable{
}
function getMoney()public view returns(uint){
return address(this).balance;
}
}
二、外部账户之间的转账操作。首先我们定义一个transfer方法,然后把虚拟的账户2作为被转入方,address payable account=0x14723A09ACff6D2A60DcdF7aA4AFf308FDDC160C;这个地方account前面务必加上payable,如同在方法后面加payable进行修饰类似。通过msg.value把转账金额进行传递,本例中,我们向账户2还是转1000000威,在完成transfer操作后,点击getMoney,显示账户2账户余额笔原先多了1000000威(原先是100ETH).
pragma solidity^0.5.0;
contract Pay{
function transfer() public payable{
address payable account=0x14723A09ACff6D2A60DcdF7aA4AFf308FDDC160C;
account.transfer(msg.value);
}
function getMoney()public view returns(uint){
address payable account=0x14723A09ACff6D2A60DcdF7aA4AFf308FDDC160C;
return account.balance;
}
}