区块链中的项目,都是靠合约来运行,一个完整的项目,是很多合约组合起来的整体逻辑,那么问题来了,合约直接是怎么交互的呢?
也就是说,在一个合约中如何调用另外一个合约。
有两种方式实现合约内部调用:
1.接口方式:实现方式是定一个接口,合约去实现这个接口,调用的的时候将合约地址用接口类型强转,当一个接口化的地址来调用合约的函数。
2.签名方式:使用call,delegatecall,staticall来调用,构造调用data数据有两种方式一种是encodeWithSignature,另外一种是encodeWithSelector
encodeWithSignature构造数据的方法参考compound