[Ethereum] 浅谈 ERC20 在 openzeppelin-contracts 中的结构与实现
目前 openzeppelin-contracts 的穩定版是 v2.5,截止到本文發布,最新的 Tag 為 v3.0.0-rc.0
以下是 token/ETC20 的文件列表:
IERC20.sol 是 interface 接口文件,不包含實現。
ERC20.sol 是對上面 interface 接口的標準實現。ERC20Detailed.sol 是對基礎信息構造,有 name、symbol、decimals 屬性。
ERC20Burnable, ERC20Capped, ERC20Mintable, ERC20Pausable 這幾個實質所繼承的父類都比較統一(ERC20.sol)。
可以看成是并列的幾個擴展功能,非 EIP 標準的一部分。
ERC20Mintable 是允許外部鑄幣的一種機制,ERC20Capped 則是為了配合這種機制扣上一個總供應量的上限。
所以總共有兩種鑄幣供應機制,一種是內部通過 ERC20._mint 方法,另一種是外部通過 ERC20Mintable.mint 方法。
SafeERC20.sol 是 library 庫文件,對 ERC20.sol 中的方法進行了包裝,方法名都加了一個 safe 前綴。
在合約中采用 `using SafeERC20 for ERC20;` 的方式引入,之后就可以像 `token.safeTransfer(...)` 這樣使用安全的操作了。
TokenTimelock.sol 合約的功能是將 token 鎖定指定時間,之后才可以進行轉賬交易。使用場景比如:允許顧問在一年之后才可以提取釋放的 token。
詳細用法參照 OpenZeppelin ERC20 部分的文檔或者 API 進行。
實際在使用的時候,我們為了在一個文件中看到整個的方法,一般會用 truffle-flattener 合并 Solidity 文件的依賴到一個文件。
Link:https://www.cnblogs.com/farwish/p/12556484.html
總結
以上是生活随笔為你收集整理的[Ethereum] 浅谈 ERC20 在 openzeppelin-contracts 中的结构与实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 8米36!王嘉男世锦赛跳远夺金:创造中国
- 下一篇: 八战世锦赛 七上领奖台!巩立姣女子铅球摘