在solidity中,大多数智能合约将外部合约调用转换为接口(IERC20与ERC20(。两者之间的铸造有什么区别吗?
例如,如果我写
IERC20 Token = IERC20(tokenContractAddress);
在功能上有什么不同吗
ERC20 Token = ERC20(tokenContractAddress);
?
只是好奇在天然气成本、兼容性问题等方面是否有需要考虑的因素。谢谢!
如果您只想访问这些函数,可以使用其中之一。但在接口中,不能有状态变量,所以如果需要一些状态变量,可以强制转换为contract。
此外,接口不能继承其他约定或接口。也许合同是从contractB继承的,并且在您的合同中,您希望访问contractB。