1.代幣的基本屬性
除了名稱、符號外,通常還會包含其他屬性:
* 總供應量(Total Supply):表示此代幣最多可以發行多少。
* 小數位數(Decimals):定義代幣的小數位數,這對於表示小單位代幣很有幫助。
solidity
* uint8:表示無符號的 8 位元整數,範圍從 0 到 255。
* decimals = 18:這裡 decimals 定義了代幣的小數位數。18 表示該代幣可以有最多 18 個小數位。
* uint256:表示無符號的 256 位元整數,這是 Solidity 中常用的類型,用於存儲較大的數值。
2. 基本操作函數
* balanceOf(address account):查詢指定地址的代幣餘額。
* transfer(address recipient, uint256 amount):將代幣從調用者地址轉移給接收 者。
* approve(address spender, uint256 amount):授權其他地址(如智能合約)代表自 己花費一定數量的代幣。
* transferFrom(address sender, address recipient, uint256 amount):從另一 個地址轉移代幣,前提是先被授權。
3. 增加代幣的功能
* 鑄幣(Minting):某些代幣需要增加供應量,可以通過鑄幣功能來實現,通常限制只有合約所有者可以鑄幣。
* 銷毀代幣(Burning):用於減少供應量,通常是為了減少流通數量,使代幣變得更稀有。
_burn 函數通常在像 OpenZeppelin 的 ERC20 合約中實現。如果你想使用 _burn 函數,可以引入 OpenZeppelin 的 ERC20 實現,並繼承它們的合約。