学习 Solidity 和令牌开发。
我很难理解具有多个智能合约的代币如何相互交互。
我在 GitHub 上阅读了其他带有多个合约的代币,并在 OpenZeppelin 上查看了合约,但它们都显得有些孤立。
假设我们开发了一种代币,该代币具有供应量并使用地图跟踪钱包地址到金额。合同被释放并被赋予一个地址。管理员或特权方法通过所有者地址验证受到保护。然后我们发布第二个合约,需要对交易收取费用。
第二个(代币交易费用)合约如何与存储在第一个(代币合约)上的数据交互?第二份合同是否也需要验证所有权?
答案 0 :(得分:1)
以太坊上的任何合约都可以使用接口与任何其他合约进行交互。您可以从第一个合约的第二个合约中调用 ERC20 代币的方法,如下所示:
interface ERC20 {
function balanceOf(address account) external view returns (uint256);
}
ERC20(tokenContractAddress).balanceOf(0xabcd....);
类似的方法可用于任何合同