四、DApp化

作者: sxplus | 来源:发表于2018-05-16 23:35 被阅读0次

我们在第一节里创建的应用还不能成为DApp,现在我们需要将App和合约连接起来,才实现将App转型成DApp。

前面说过合约中定义的方法对应业务中的需求,所以,你一定知道在业务代码中什么位置调用合约中的什么方法。

在这里需要注意的是查询接口和交易接口调用的不同,查询接口调用可以不需要权限的认证,也不会消耗gas,而交易接口一定需要权限的认证并且会消耗一定量的gas。因为矿工挖矿需要报酬啊😄

查询接口调用

查询接口调用可以直接用neb库,也可以用官方提供的nebpay库来调用,nebpay是以交易的方式调用,需要验证钱包也会消耗NAS。

neb库引入

根据你的应用构建方式的不同,你可以选择直接在页面引入js库或者npm install模块。

页面直接引用

需要在github下载源码,然后打包生成nebulas.js。
neb.js源码
或者也可以直接从这里下载jsnebulas.js

<script type="text/javascript" src="nebulas.js"></script>

node模块化安装

npm install nebulas -D

页面调用nebulas库

初始化neb

var HttpRequest = nebulas.HttpRequest;
this.neb = new nebulas.Neb();
this.neb.setRequest(new HttpRequest($this.net_address));

调用api

      var $this = this;
      var value = "0";
      var nonce = this.nonce;
      this.nonce = this.nonce+1;
      var gas_price = "1000000"
      var gas_limit = "2000000"
      var callFunction = "checkAccount";
      var callArgs = ''; //in the form of ["args"]
      var contract = {
        "function": callFunction,
        "args": callArgs
      }

this.neb.api.call($this.wallet_key,$this.contract_address,value,nonce,gas_price,gas_limit,contract).then(function (resp) {
console.log('resp:',resp);
      }).catch(function (err) {
        console.log("error:" + err.message)
      })

交易接口调用

交易接口的调用可以用官方提供的nebpay库,也可以直接用nebulas库,如果用nebulas库需要像web-wallet里面合约调用页面一样,需要用户上传钱包文件来获取钱包信息,而这是官方不推荐的。

使用nebpay库,DApp的用户需要安装浏览器插件-桌面端(WebExtensionWallet)或钱包APP-移动端(星云官方APP钱包)来完成Dapp页面发起的交易请求。开发阶段测试交易都需要安装。

更多关于nebpay的信息请参考官方文档如何在Dapp中使用NebPay SDK

nebpay库引入

根据你的应用构建方式的不同,你可以选择直接在页面引入js库或者npm install模块。

页面直接引用

需要在github下载NebPay源码,然后打包生成nebpay.js。
nebPay源码
或者也可以直接从这里下载jsnebPay.js
<script type="text/javascript" src="nebPay.js"></script>

node模块化安装

npm install nebpay -D

页面调用nebpay库

初始化nebpay

this.nebpay = new NebPay();

调用api

      var $this = this;
      var value = this.principal;
      var callFunction = "save";
      var callArgs = ''; //in the form of ["args"]
      var serialNumber;
      serialNumber = this.nebPay.call($this.contract_address, value, callFunction, callArgs, {    //使用nebpay的call接口去调用合约,
        listener: function (resp) {
console.log('resp:',resp);
        }        //设置listener, 处理交易返回信息
      });

参照例子写好合约调用的代码,就可以先在本地测试了。一般来说,在三、创建合约小节里测试过合约调用成功的,代码里调用也不会有问题。

在这里附上官方的例子供参考超级图书馆

至此我们的应用就是一个DApp啦,只需要最后一步五、部署和提交就可以角逐大奖了!

相关文章

  • 四、DApp化

    我们在第一节里创建的应用还不能成为DApp,现在我们需要将App和合约连接起来,才实现将App转型成DApp。 前...

  • 如何编写 DApp

    如何编写 DApp LikeCoin Foundation 于2018香港开源年会的分享 DApp(去中心化应用)...

  • 什么是“DApp”

    一、什么是DApp? DApp全称Decentralized Application,翻译过来就是去中心化应用,也...

  • 什么是DApp?

    去中心化应用也被称为DApp(decentralized application),DApp可以是网站,也可以是手...

  • 区块链上的应用——DApp初览

    一、DApp DApp是Decentralized Application的缩写,翻译过来就是去中心化应用,也称为...

  • DApp

    一、DAPP到底是个什么玩意? DAPP是Decentralized Application的缩写,即去中心化应用...

  • 什么是DApp?

    东哥说 什么是DApp? DApp是Decentralized Application的缩写,中文直译为去中心化应...

  • 区块链的下一个时代:DAPP的崛起

    什么是DApp? DApp是Decentralized Application的缩写,中文名叫去中心化应用,去中心...

  • DA-DAPPS同构多链结构设计逻辑和PDP证明6-27

    DApp,英文全称是Decentralized Application,即去中心化应用,也称分布式应用。DApp是...

  • DApp101与Spiderstore达成战略合作,共促DApp

    近日,BlockInk旗下DApp垂直生态媒体DApp101宣布与去中心化区块链应用商店SpiderStore达成...

网友评论

    本文标题:四、DApp化

    本文链接:https://www.haomeiwen.com/subject/qvlvdftx.html