Select Page
使用 Openzeppelin 和 Remix 發幣,可以擴充、投票、分潤、管理

使用 Openzeppelin 和 Remix 發幣,可以擴充、投票、分潤、管理

之前推薦過一鍵發幣,那是懶人作法,適合快速且只想要簡單發幣的人,給點錢就能快速地解決問題,但真實的社會是不是這麼簡單的,真正的發幣行為應該是撰寫智能合約,通過第三方驗證,證明無漏洞後,並且發佈在區塊鏈上,聽起來很難,但看過這篇文章後,整個過程也是5分鐘內而已。

OpenZeppeLin 智能合約範本

首先要使用 OpenZeppeLin 來產生你發幣用智能合約,在 OpenZeppeLin 上面可以找到很多範本,可以直接引入即可,但更簡單的方法是使用 OpenZeppeLine精靈 來快速產生智能合約程式碼。

https://wizard.openzeppelin.com/

在這個畫面中如果要簡單發幣的話,可以填入 Name (代幣名稱), Symbol(代幣的代號), Premint (欲鑄的貨幣數量)的資料就可以了,常用的進階功能則有 Burnable, Votes, Pausable, 如果你是為了公司發行,可以在 Access Control 中選擇 Roles 然後建立自己的控制規則,可以多人控管開發行的貨幣

Remix 上發行貨幣

在 OpenZeppeLin 畫面上按下 Open in Remix 按鈕,就可以直接將合約範本直接帶入到 Remix

1.先連結你的 MetaMask 小狐狸錢包

2.選擇對應的編譯器,然後按下編譯,以本例是 0.8.4 版本的編譯器,Solidity 語法

3.將代幣發佈到區塊鏈上,環境選擇 Injected Web3, 並且注意你的 MetaMask 連結的網路是那哩,以我的圖片例子是選在 Ploygon 的測試鏈上,然後發佈的合約要選擇倒剛剛寫好的 ShaneToken, 設定無誤後按下 Deploy 即可發行

5.在 MetaMask 中確認合約正確性,注意發行到的網路是否正確,以及看一下 Gas Fee 多少錢,本例是發行在 Ploygon 上,所以使用的代幣是 MATIC ,自己的錢包有沒有對應的代幣可以支付,檢查完畢按下確認後就可以發行成功了

最後要將代幣匯入到 MetaMask 中

可以在 Polygonscan 中找到你得合約網址

將合約地址填回 MetaMask 就大功告成囉

可以在自己的錢包中看到自己發行的代幣,當個有錢人

延伸閱讀,利用 OpenZeppelin 來發NFT

https://www.frank.hk/blog/nft-smart-contract/

https://wizard.openzeppelin.com/#erc721

測試鏈做測試

測試時,需要去水龍頭那邊取得手續費用

NameLink
polygon-mumbaiPolygon Faucet
harmonyFaucet || Harmony Testnet
Cronoshttps://cronos.crypto.org/faucet
iotexIoTeX Faucet – Getting IoTeX for development
BscBinance Smart Chain: Faucet
HecoHuobi ECO Chain
常用測試鏈

SOL原始程式碼

如果不能用精靈產生程式碼,可以直接複製下面的程式碼

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

import "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol";
import "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20SnapshotUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-ERC20PermitUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20VotesUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20FlashMintUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";

contract TestToken is Initializable, ERC20Upgradeable, ERC20BurnableUpgradeable, ERC20SnapshotUpgradeable, OwnableUpgradeable, PausableUpgradeable, ERC20PermitUpgradeable, ERC20VotesUpgradeable, ERC20FlashMintUpgradeable {
    /// @custom:oz-upgrades-unsafe-allow constructor
    constructor() {
        _disableInitializers();
    }

    function initialize() initializer public {
        __ERC20_init("Test Token", TST");
        __ERC20Burnable_init();
        __ERC20Snapshot_init();
        __Ownable_init();
        __Pausable_init();
        __ERC20Permit_init("Shane Token");
        __ERC20Votes_init();
        __ERC20FlashMint_init();

        _mint(msg.sender, 100000000 * 10 ** decimals());
    }

    function snapshot() public onlyOwner {
        _snapshot();
    }

    function pause() public onlyOwner {
        _pause();
    }

    function unpause() public onlyOwner {
        _unpause();
    }

    function mint(address to, uint256 amount) public onlyOwner {
        _mint(to, amount);
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount)
        internal
        whenNotPaused
        override(ERC20Upgradeable, ERC20SnapshotUpgradeable)
    {
        super._beforeTokenTransfer(from, to, amount);
    }

    // The following functions are overrides required by Solidity.

    function _afterTokenTransfer(address from, address to, uint256 amount)
        internal
        override(ERC20Upgradeable, ERC20VotesUpgradeable)
    {
        super._afterTokenTransfer(from, to, amount);
    }

    function _mint(address to, uint256 amount)
        internal
        override(ERC20Upgradeable, ERC20VotesUpgradeable)
    {
        super._mint(to, amount);
    }

    function _burn(address account, uint256 amount)
        internal
        override(ERC20Upgradeable, ERC20VotesUpgradeable)
    {
        super._burn(account, amount);
    }
}

基本的發幣程式碼,支持可以維護以及可以銷毀

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

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";
import "@openzeppelin/contracts/access/Ownable.sol";

/// @custom:security-contact 
contract TestTokenMintableBurnable is ERC20, ERC20Burnable, Ownable {
    constructor() ERC20("Test Token Mintable Burnable", "TTMB") {
        _mint(msg.sender, 100000000 * 10 ** decimals());
    }

    function mint(address to, uint256 amount) public onlyOwner {
        _mint(to, amount);
    }
}

發幣之後,驗證合約的安全性

發幣前後都要利用 CoinTool ,來驗證的你合約安全,才會讓大眾們信任

LINE TECH 2022 Blockchain & NFT & Cryptocurrency 懶人包

LINE TECH 2022 Blockchain & NFT & Cryptocurrency 懶人包

這次的 LINE TECH 2022 非常的精彩,有著前衛的元宇宙FU,講者在虛擬背景中,簡報在後面的大銀幕上被投出來,感覺就像戴上VR眼鏡置身在展演廳的現場看簡報,不用出門也有參加現場發布會的感覺,配合 LINE MUSIC 的直播平台,技術和未來感十足,總體看起來只有發放128枚NFT的抽獎活動美中不足,因為系統的不完美,而造成了很多民怨,不過我覺得還是相當程度的引起話題。

DOSI

也因為如此,想要針對 LINE 這次推出的區塊鏈、NFT、加密貨幣來加以記錄和討論,首先由平台說起,DOSI,命名源自於韓文的「都市」,我乍看下還以為是 DOS + I ,這是 LINE 用來發佈 NFT 的平台,包含兩個主要的部分

  • DOSI Store,跟 OpenSea 一樣,提供介面讓使用者可以輕鬆的發佈自己的 NFT 資產
  • DOSI Wallet,用來收藏你的 NFT 資產,這次的 LINE TECH 是透過 OpenSea 發佈 NFT 到你連接的錢包中,我自己是用小狐狸Wallet接收
https://dosi.world/,預計今年 2022 Q1 推出,有興趣的可以去加入他的 Waitlist

LINK – LINE 推出的加密貨幣

關於LINK

—名稱:LINK

—代號:LN

—發行商:LINE TECH PLUS PTE. LTD.

—單位:LINK

—發行量:以10億枚為限(8億枚將用以獎勵用戶,2億枚為LTP儲備)

—說明:LINK 是 LINE 發行的加密資產, 以 LINE 自己打造的私有鏈平台 LINE Blockchain(之前稱為 LINK Chain)來實現。

— 交易所 : BITMAX數位貨幣交易所

—LINE Blockchain官方網站:https://blockchain.line.me

—LINE Blockchain白皮書:https://blockchain.line.me/wp-content/uploads/2020/08/LINE%20Blockchain%20Whitepaper%20v2.1_EN.pdf (英文版)

— LINE 官方新聞 : https://linecorp.com/zh-hant/pr/news/zh-hant/2020/3347

數位時代的介紹

LINE Blockchain

LINE 的私有鏈,在 LINE 的規劃下,在生態系中各式各樣的獎勵 token 都會被放於 LINE Blockchain 中,目前看到了 LINE BANK、LINE PAY、LINE POINTS、遊戲、證券都已經被放到藍圖內,其資訊如下

LINE techpulse-2022

LINE TECHPILSE 2022,本次的技術的重頭戲,每參加一場次可以得到一個點數,集滿六個線上會議,就可以取得抽獎 NFT 的資格,但這次美中不足的是系統在要抽獎前就掛點,點數分配的方法,大部分的人都不清楚,每場次的聊天室中,問最多的就是如何集點,擁有抽獎資格後,要去平台中搶開獎,搶不到的人怒氣值滿點,但限量是殘酷的,不過只要規則明確,系統不要當掉,我相信還會是一個很成功的 SHOW。

數位時代報導

2022-02-26 更新新聞 Line CLOVA AI產品中文化落地臺灣,今年新推CLOVA Note,CLOVA Chatbot更推出三種部署版本https://www.ithome.com.tw/news/149091

延伸閱讀,可以看看勇氣瀏覽器如何賺代幣