浅谈智能合约动态调用方法
2023-04-12 本文已影响0人
温驭臣
合约静态调用方法:指在合约编译时就知道被调用合约的方法签名。
合约动态调用方法:指在合约编译时不知道被调用合约的方法签名,没法做类型检查。(类似Java的反射机制)。
合约函数动态调用方法call函数:
![](https://img.haomeiwen.com/i14993831/578866e05f40cb8f.png)
calldata是call方法唯一的参数,call方法返回两个参数success和data,执行成功success返回true,执行失败返回false。如果有返回值时被调用方法的返回值,如果被调用方法没有返回值则用_表示。
![](https://img.haomeiwen.com/i14993831/5aeb4131ad205d60.png)
bytes4(keccak256(<sig>))表示取256位的前四个字32位。
![](https://img.haomeiwen.com/i14993831/9e6699127ded1c48.png)
![](https://img.haomeiwen.com/i14993831/ce420bed859a677a.png)
fallback函数:
![](https://img.haomeiwen.com/i14993831/b03e396b151ff6ba.png)
![](https://img.haomeiwen.com/i14993831/9c4e7169905734a3.png)