今天來聊聊我們的第三個案例。我們來做一個比大小的下注遊戲。 情境 需要有兩個角色。 GM 玩家 功能上則需要。 下注 (讓玩家選擇大 or 小) 開獎...
我在 2018 年的時候參與鐵人賽,錄製了 Smart Contract 實戰教學。如今,兩年過去了 Solidity 也從 0.4.20 的版本升級到 0.7...
小明今天繼續完成用戶存提代幣的前端功能 存入代幣 HTML <div class="col-lg-6"> <di...
今天來規劃另一個題目區塊鏈留言板。 留言板其實很簡單,但是會比昨天的投票系統結構稍微複雜一點,我們先來看看合約該怎麼寫。 我們一樣先建立一個資料夾 dapp-...
在完成了整個去中心化交易所的設計後,小明今天開始進行每個功能的實作,他首先進行管理功能的部分: Admin 管理功能 新增代幣新增 ERC20 代幣至交易所智...
小明今天繼續完成的是用戶取消下單的功能: User 用戶功能 取消下單 function cancelOrder(string symbolName, bo...
在根據交易所需求設計了基本的功能介面後,小明今天進一步思考在智能合約中,如何儲存功能中所需要的資料。 首先智能合約中需要儲存,每個用戶透過存入或買賣,所擁有的...
今日來介紹一些單位跟全域變數相關的東西 Ether Units 在任何數字後面加上 wei、gwei、ether 就會變成貨幣單位,預設就是 wei asser...
今天來介紹第二個案例。今天的案例就以拍賣為情境設定 情境 假設要制定一定拍賣場的合約,到底要怎麼定義呢?首先需要三個角色 拍賣人 委託人 買家 再來需要一...
小明今天繼續完成的是用戶檢視賣單交易帳簿的功能: User 用戶功能 檢視賣單交易帳簿 function getSellOrderBook(string s...
很快的地獄般的鐵人賽終於要結束了,今天就來聊聊這30天的學習心得。 其實一開始挑選這個題目時,也是無意間看到這個題目,雖然之前斷斷續續有走馬看花研究過幾次,但...
花了幾天介紹 solidity 的基礎語法,接下來要開始嘗試寫一個智能合約看看,但是智能合約部署之前一定要先了解什麼是 Gas 到底什麼是 Gas ,在區塊鏈...
前面聊了這麼久的區塊鏈,還有其去中心化的特性,以及運用在區塊鏈上的應用,接下來就介紹甚麼是DApp吧! DApp去中心化應用(Decentralized Ap...
今天開始到結束,要進入到實際 Dapp 的應用了,但在應用之前要先會安裝 metamask。 因為要能跟前面學的智能合約互動,就一定需要 metamask 。...
本日來介紹一下 solidity 的控制流程。 學任何語言基本上都需要條件判斷式,那就稍微簡單介紹一下。 if else uint total = 2; if...
今天來介紹一個 Solidity 的另一個特別的東西 libraries。 下面來看看 library 的寫法範例 // SPDX-License-Ident...
Preface 大家好,我是 FoodChain,我是一個台大植微系的大四生,延續著去年的精神,今年我又來參加這個資訊界的盛事了!回顧去年暑假到現在,從基本的程...
Preface 今天要做的是透過 Opensea 取得 ticket 的圖片、擁有者等資訊,並將它們顯示在頁面中。 How to fetch Data? 一般而...
今日來延續昨日沒有寫完的全域變數。 Error Handlin //裡面可以做一些條件判斷,如果為false,此次transcation會失敗,通常用於內部錯...
we3.js 是一個JavaScript的套裝library,允許開發者利用HTTP, IPC 或WebSocket與本地或遠程以太坊節點進行交互。常用於 Da...
Preface 我有提到自己比較喜歡以「project」為導向來學習新的語言或是各種知識,換句話說就是動手做增強自己的肌肉記憶,同時也訓練尋找解決方法的能力。...
【DAY6】 - ERC721 的核心 Preface 前面雖然介紹了 ERC721 的所有權由來,也說明了 ERC721 協議的 function 有哪些,與...
雖然昨天有做過Migrations的介紹了,但為了讓大家更加了解後面實作的內容,講了更詳細的部分 初始的遷移(Migrations)文件及部署規則 在運行 t...
Preface 今天終於來到了設計使用者介面的部分(只有使用者使用的部分,之後驗證系統使用的部分會再做一次設計),但其實因為我的前端底子「幾乎可以說是新手」,所...
現在讓我們編寫一些測試來確保智能合約被正確初始化。解釋一下為什麼在開發智能合約時測試如此重要。確保合約沒有錯誤 以太坊區塊鏈上的所有代碼都是不可變的;它不能...
現在讓我們在瀏覽器中查看客戶端應用程序。首先,確保你已經像這樣遷移了你的合約: truffle migrate --reset 接下來,從命令行啟動您的開...
讓我們繼續建構我們的智能合約吧! 列出我們想要在選舉中投票的所有候選人 在我們做的 smoke test 當中,創建了一種將單個候選人存儲到我們的智能合約的方法...
接下來讓我們嘗試打開控制台,獲取智能合約的一個實例,以便查看我們的部署是否成功 truffle console Election.deployed().t...
還記得我們前面創建的election.js嗎? 編輯election.js 需要合約並將其分配給一個變量,就像我們在遷移文件中所做的那樣。接下來,我們調用“合...
不能只調用不起作用的候選ID,為甚麼呢? candidate.id 我們將候選人定義為 struct,但事實上以太仿虛擬機並沒有真正意識到它 candid...