维基链开发(7)--web插件钱包WaykiMax功能、API介绍

维基链提供web钱包插件WaykiMax

WaykiMax 类似ETH中的MetaMaskEOS中的Scatter 钱包插件,提供基本的钱包功能。
由于插件钱包本身有缓存私钥的功能,可对外Web应用提供签名接口。

1.安装方法

本文只介绍Chrome浏览器的安装方法,如需要安装Firefox(火狐)浏览器,可参考官方文档

1.1 下载 “WaykiMax-v0.1.0.zip” 文件到本地并在本地解压缩

下载 WaykiMax-v0.1.0.zip

1.2 下载Chrome浏览器,安装维基链Web钱包插件(中文对应:更多工具->拓展程序)

维基链开发(7)--web插件钱包WaykiMax功能、API介绍

1.3 点开开发者模式,并导入该文件(中文对应:加载已解压的拓展程序)

维基链开发(7)--web插件钱包WaykiMax功能、API介绍

1.4 导入后,安装该插件成功

维基链开发(7)--web插件钱包WaykiMax功能、API介绍

2. 维基链Web钱包插件 WaykiMax API

Wallet会为每个网站的站点注入一个全局变量:WiccWallet,目前提供 getDefaultAccountcallContractpublishContractpublishContract

2.1 getDefaultAccount

取得当前默认的账户,使用方法如下:

WiccWallet.getDefaultAccount().then((account) => {
 console.log(account) 
}, (error) => {
  console.log(error)
})

如果钱包已经解锁,并且创建过账户,则会返回类似下面的结果:

{
  "account": {
    "address": "WTTqpSPZ9JHQJAPsmJQb1kXcMz5HvRWJLv",
    "id": "eddd9578-8264-4f62-b215-da22a455152b",
    "testnetAddress": "wQREsAsRAV1j133FHK4M5XQPPG3n4W23P1"
  },
  "network": "testnet",
  "address": "wQREsAsRAV1j133FHK4M5XQPPG3n4W23P1"
}

network 为当前网络,address 为当前地址。如果需要获取正式环境的地址,使用 account.address;如果需要获取测试环境地址,使用 account.testnetAddress 。

2.2 callContract

打开调用合约窗口,目前支持四个参数:regId contract value callback

方法定义为WiccWallet.callContract(regId, contract, value, callback),使用方式为:

WiccWallet.callContract('13103-1', 'f0', 0, (error, data) => console.log(error, data)).then(() => {
}, (error) => {
  console.log(error)
})

如果钱包没有解锁,则调用此方法会报错。

对于 callback 参数,是用户在点击「确定」按钮之后的一个回调,第一个参数为 error,第二个参数为 data。如果 error 为 null,则可认为调用成功。 data 的数据结构类似下面这样(其中 txid 为这次交易的 hash):

{
  amount: 0,
  fee: 1000000,
  contract: "f0",
  txid: "55ec1c7abe38c492894a09f0c99e16d7c8d68608a2f1f6d334d0fd101b503e5b",
  regId: "9109-1", 
   …
}

对于 value 参数,需要原始值乘以10的8次方。比如需要使用 0.1 WICC,则value需要写 1000000。

2.3 publishContract

打开发布合约窗口,目前支持三个参数:script scriptDesc callback

WiccWallet.publishContract('mylib = require "mylib"', '33333', (error, data) => console.log(error, data)).then(() => {
}, (error) => {
  console.log(error)
})

如果钱包没有解锁,则调用此方法会报错。

关于 callback,请参照 callContract 。

2.4 requestPay

打开调用转账窗口,目前支持四个参数:destAddress value desc callback

WiccWallet.requestPay('wYXV7QzHZnb8LuWw7Xa24dfUTqmH2tNZBq', 0.01 * Math.pow(10, 8), 'desc', (error, data) => console.log(error, data)).then(() => {
}, (error) => {
  console.log(error)
})

对于 value 参数,需要原始值乘以10的8次方。比如需要使用 0.1 WICC,则value需要写 1000000。

如果钱包没有解锁,则调用此方法会报错。

关于 callback,请参照 callContract 。