iT邦幫忙

2022 iThome 鐵人賽

DAY 3
0
Web 3

如何打造屬於自己的區塊鏈錢包服務系列 第 4

[Day 3] 快速鑄造自己的智能合約幣(Token)

  • 分享至 

  • xImage
  •  

這邊很多人應該跟當初的我一樣,搞不懂什麼是原生貨幣(Crypto Coin)以及智能合約幣(Token),這邊有個簡單的解釋

在原生鏈上產生的資產即是Crypto Coin,一條鏈上只能有一個Coin,但可以有無數個Token

簡單的舉例
Ethereum的Coin是ETH
BNB Chain的Coin是BNB
BNB Chain有相容於EVM可以發行智能合約,所以在BNB Chain上也有ETH但它在BNB Chain上不屬於Coin而是Token,這是在BNB Chain上的ETH智能合約地址,當然也有其他的鏈上會發行ETH token
HECO ETH
AVAX ETH
TOMO ETH
SOLANA ETH
還有其他鏈上發行的就不一一列舉。
這篇文章講述Coin與Token的差異我覺得講得不錯: Demystified: The Difference Between Crypto Coins And Crypto Tokens. Read Here For Details


有關於鑄造智能合約代幣(Token)的步驟就不多做介紹,網路上很多高手們都有分享教學,可以找一個風格適合自己的去看,或者是可以參考我寫的Medium
BSC testnet create new token
Tron 如何發行TRC20代幣(Shasta testnet)
BSC因為是相容於Ethereum,所以可以參考這一篇,而Tron則是他有自己的錢包而MetaMask沒有,在發行智能合約代幣時,需注意該鏈的錢包以及怎麼去發行智能合約有的並不能在Remix發行。

懶人包:
Remix 新增合約.sol
裡面貼上

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract OM is ERC20 {
    constructor() ERC20("智能合約代幣名稱", "智能合約代幣縮寫") {
        _mint(msg.sender, 100000000 * (10 ** uint256(decimals())));
    }

    // decimals setting here
    function decimals() public view virtual override returns (uint8) {
        return 這邊是要設定小數位數;
    }
}

範例

pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract OM is ERC20 {
    constructor() ERC20("Optimism", "OP") {
        _mint(msg.sender, 100000000 * (10 ** uint256(decimals())));
    }

    // decimals setting here
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }
}

再來就是

  1. SOLIDITY COMPILER
  2. DEPLOY & RUN TRANSACTIONS
    就可以在錢包中看到新增的Token了,如果沒看到的話,可以在錢包中新增Token,輸入DEPLOY後的合約地址。

上一篇
[番外篇] 關於Ethereum POW Fork差點被攔胡那件事
下一篇
[Day 4] 淺談Address
系列文
如何打造屬於自己的區塊鏈錢包服務31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言