再学:call与delegatecall、call转账 Bank合约
目录
1.call与delegatecall
2.transfer && call
3.若想内部传递abi编码
4.Bank合约
1.call与delegatecall
call:切换上下文
delegatecall:不切换上下文
delegatecall可以理解为 A在调用B这个集成在A的方法
可升级合约,常用delegatecall
2.transfer && call
地址若是外部账号的地址,调transfer方法就没有什么问题
但如果是合约的话,就会消耗gas,因此,采用addr.call 可以避免gas的限制
3.若想内部传递abi编码
无参写法如下
有参如下:
call
来执行transfer
操作,这是transfer
函数背后的底层逻辑。
4.Bank合约
红色框:constructor
函数通常用于那些只需要设置一次、在合约生命周期开始时就必须确定的配置。由于constructor
只会在合约创建时执行一次,因此它非常适合执行这些一次性的初始化任务。
黄色框:设定权限,只能被谁使用
绿色框:受到转账,对账户的余额进行加
白色框:查看账户上的余额有多少
白色框:取款
绿色框:取出全部款