本教程继续在以太坊区块链上建立分散应用程序(DAPP)的旅程。 第6部分总结了DAO的核心功能(投票,黑名单,股息发行),最后一部分着重于创建用于交互的用户界面。
密钥概念:
)可自动执行令牌传输到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>>前端(index.html):
truffle migrate --reset
>带有嵌入式JavaScript手柄的基本HTML结构区块链相互作用:
(注意:简洁的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中文网其他相关文章!