Select Page

WEB3-開發WalletConnet

官方文件

https://github.com/WalletConnect

https://github.cocm/WalletConnect/walletconnect-docs

React 與 WallectConnect

https://github.com/WalletConnect/web-examples/tree/main/dapps/react-dapp-v2

https://react-app.walletconnect.com/

C# 與 WalletConnect

https://github.com/WalletConnect/WalletConnectSharp/tree/main/WalletConnectSharp.Desktop

參考資料

如何使用WalletConnect,https://academy.binance.com/zt/articles/how-to-use-walletconnect

WalletConnect 简单示例

DEMO

https://github.com/PureStake/moonbeam-walletconnect-demo

https://moonbeam-walletconnect-demo.netlify.app/

https://example.walletconnect.org/

KryptoGO 金融監管

KryptoGO 金融監管

想要由科技人踏入金融科技業(FinTech),第一步驟就要了解金融人朗朗上口的 KYC、KYB ,對於科技業來說,並不是很難的技術,麻煩的是資料庫裏面資料的多寡,而且大多數都是要跟國際接軌,畢竟你的服務一推出就要面對全世界的客戶,如果不想要購買國際大廠像是路透社的資料,可以試試看台灣新創的服務 KyptoGO

https://kryptogo.com/

一站式的 KYC 和 AML

解決方案的價格定價

使用 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 ,來驗證的你合約安全,才會讓大眾們信任

征4戈壁說 | 最感動人心的即興演講 : 放下、鼓勵、堅持與擁抱!

征4戈壁說 | 最感動人心的即興演講 : 放下、鼓勵、堅持與擁抱!

戈壁說

NFT

放下

鼓勵

擁抱

堅持

創業家精神

我是一個創業家,創業10年了,我在創業第8年的時候獲得了富士康以及幾家外商企業共同投資,運營了一段時間,比較有時間的時候到台大EiMBA進修,進修的第一年,教授就邀請我到台大創意創業中心,指導學生和碩士生有關創新、創業方面的相關事宜。 如果說道來到戈壁的體會,先要說到我最喜歡的一句話「像個孩子」,像個孩子般盡情的揮灑、像個孩子般盡情撒野、像個孩子般盡情奔跑。因爲我們生活在都市叢林中,所以我們很難有時間真正把自己的心靈放開的時候,來到戈壁就像小朋友從爬到會走的那一步,他剛剛跨出那一步心中的感受,這句話對我來說非常感動。 還有一首最難忘的歌,《怒放的生命》,這幾天時時聽、經常聽,所以我決定回去一定要去KTV裡面好好地練習。 接下來,我想講一講這四天我學到了什麼。

 

第一天我學到的第一件事就是放下

因爲我的背包實在是太重了,來這邊之前,我什麼都不知道,所以該帶不該帶的東西都帶上了,路途中有人一直叫我放下,這是我來到這邊學到的第一件事。放下就像我們常常講的一句話,你如果握緊你的雙手,握緊你的拳頭,你什麼也得不到,當你張開雙手,天下就是你的。

第二天我學到的是鼓勵

因爲開始有了排名賽,要努力跟上這個大部隊,其實我覺得還是蠻難的,很多時候我一個人走,一個人走的時候,想當起以前當兵的時候,就會唱唱歌,跟著戈友走的時候,就一起聊聊天,非常感覺我們終點的賽事志願者,他陪我一起最後加油,最後我拿到了銀牌,就只差大概三分鐘左右,所以第二天我學到的是鼓勵。

第三天我覺得我學到的是堅持

到了第三天,和其他戈友一樣我也收穫大水泡,除此之外還有腫得像拳頭一樣大的腳踝,所以走起路來格外的辛苦,但是我想到我一個人到達就是整個院校到達,所以我就努力的堅持下去,不斷的堅持到底,沿路的戈友沒有洩氣的話,都是鼓勵的話,所以我覺得第三天非常值得堅持。

到了第四天,我覺得我學到的是擁抱

擁抱大自然,擁抱戈壁,擁抱所有的戈友們,所以我要謝謝我們的領隊、還有一路照顧我飲食起居的志願者、還有所有的戈友們,謝謝大家,我愛你們!

IOTA 鏈上發行 NFT 筆記 – Soonaverse 懶人包

IOTA 鏈上發行 NFT 筆記 – Soonaverse 懶人包

IOTA 這麼好的鏈,但確一直缺乏應用,甚至連發行自己的 Token 以及 NFT 都很難在這條鏈上發行,但最近 Soonaverse 的崛起,很大的程度讓不懂程式的使用者可以像是在公海 OpenSea 中發行一個 NFT ,但老實說還是有進入障礙,所以還是留下懶人包以及筆記。

1.先取得 MetaMask (必要)

MetaMask – Desktop – Welcome to the Soonaverse

2.設定 MetaMask 連結 IOTA

Adding the IOTA EVM Network – Desktop – Welcome to the Soonaverse

Network Name: IOTA EVM

TestnetNew RPC URL: https://evm.wasp.sc.iota.org

Chain ID: 1074

Currency Symbol: IOTA

Block Explorer URL: https://explorer.wasp.sc.iota.org

3. Soonaverse 設定基本資料

Profile – Desktop – Welcome to the Soonaverse

4.下載 IOTA 官方錢包 FireFly

IOTA – 螢火蟲錢包 FireFly Wallet – 雨 (rain.tips)

5.取得 MI 幣

透過幣安購買MITAC幣並且出金到 FireFly 錢包中,我是買最低的金額大約 80 mi 幣,因為等等驗證時候他會還錢給你,所以並不用多錢,只需要最低金額即可。

6.利用 FireFly 驗證 IOTA 地址

https://docs.soonaverse.com/en/all-users-getting-started/verifying-your-iota-wallet

7.建立空間 Space

https://docs.soonaverse.com/en/space-owners-getting-started/building-a-space

https://soonaverse.com/space/0x5fcc5562385e6c2f6b0a5934280e5d11274f8e07/overview

8.建立空間中的勳章和發行NFT勳章

https://soonaverse.com/space/0x5fcc5562385e6c2f6b0a5934280e5d11274f8e07/awards

9.創建 NFT

https://docs.soonaverse.com/en/nft-creators-getting-started/creating-an-nft-collection

10.投票以及勳章(非必要)

https://docs.soonaverse.com/en/space-owners-getting-started/creating-a-proposal

https://docs.soonaverse.com/en/space-owners-getting-started/making-an-award

勳章可以用來設置優惠價格以及贈送 NFT

11.參考資料

Home – Bruits. Studio

NFT IOTA Marketplace (thepylon.app)

share-your-listed-nft (discord.com)

Home | IOTA

IOTA Pay for WordPress – 雨 (rain.tips)