本教程繼續在以太坊區塊鏈上建立分散應用程序(DAPP)的旅程。 第6部分總結了DAO的核心功能(投票,黑名單,股息發行),最後一部分著重於創建用於交互的用戶界面。
密鑰概念:
> 這個基於承諾的代碼順序部署令牌和DAO,然後將總代幣供應和所有權轉移到DAO的地址。
執行此遷移。
4_configure_relationship.js
<code class="language-javascript">var Migrations = artifacts.require("./Migrations.sol"); var StoryDao = artifacts.require("./StoryDao.sol"); var TNSToken = artifacts.require("./TNSToken.sol"); var storyInstance, tokenInstance; module.exports = function (deployer, network, accounts) { deployer.then(function () { return TNSToken.deployed(); }).then(function (tIns) { tokenInstance = tIns; return StoryDao.deployed(); }).then(function (sIns) { storyInstance = sIns; return balance = tokenInstance.totalSupply(); }).then(function (bal) { return tokenInstance.transfer(storyInstance.address, bal); }) .then(function (something) { return tokenInstance.transferOwnership(storyInstance.address); }); }</code>
>帶有嵌入式JavaScript手柄的基本HTML結構區塊鏈相互作用:truffle migrate --reset
(注意:簡潔的HTML和CSS。 > javaScript互動(app.js and main.js):
> 假設已安裝了元張,JavaScript代碼利用Web3.js與區塊鏈進行交互。 它處理帳戶信息,事件聆聽和交易提交。 (省略了詳細的JavaScript代碼,以簡短介紹,但下面說明了關鍵概念)。
<code class="language-html"><!DOCTYPE html> <title>The Neverending Story</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content="The Neverending Story is an community curated and moderated Ethereum dapp-story"> <link rel="stylesheet" href="assets/css/main.css"> <div class="grid-container"> <!-- ... (HTML structure for the DApp UI) ... --> </div> </code>>帳戶信息:
> DAPP根據MetAmask登錄狀態動態顯示帳戶信息。 用戶的頭像是使用Blockies庫生成的。 代碼獲取和顯示令牌餘額,提交計數和白名單/黑名單狀態。異步調用用於處理區塊鏈相互作用。
事件偵聽:
>使用Web3.js的事件聽力功能來聆聽合同事件的DAPP(例如,Whitelisted
)。 這允許在UI中進行實時更新。 該代碼有效地處理歷史事件和新發射的事件,以防止重複顯示。
提交條目:
> 本節為基本DAPP前端提供了基礎。 鼓勵進一步的開發,例如整合成熟的前端框架(例如vue.js或react),增強UI並添加更複雜的功能。 該教程以建議的改進和常見問題列表涵蓋以太坊DAPP開發的各個方面。 下一部分將涵蓋用於實時環境的部署。
以上是以太坊Dapps:為DAO合同構建Web3 UI的詳細內容。更多資訊請關注PHP中文網其他相關文章!