WaykiBridge
简介
WaykiBridge
是维基链开发团队推出的DAPP开发钱包接口工具, 开发者可以在开发DAPP时集成WaykiBridge
,即只需一套前端代码(H5)即可同时调用 WaykiMax
钱包和维基时代APP钱包进行签名和广播WaykiChain交易,从而用户可以在浏览器
和 维基时代APP应用中心中同时使用DAPP。
工具下载
Web钱包插件 WaykiMax 下载
维基时代APP 开发者版本(Testnet)下载
请使用手机浏览器通过以下链接进行下载
IOS: https://www.pgyer.com/qjj9?sign=&auSign=&code= 密码: 1234
维基时代APP 主网版本(Mainnet)下载
https://www.waykichain.com/WaykiTimes.html
开发者如何使用维基时代APP添加测试链接
1、【打开维基时代】-> 【我的】->【设置】->【打开开发者模式】
2、【打开维基时代】-> 【应用】->【如下图操作】
WaykiBridge 调用示例
示例链接: https://waykibridge-testpage.wiccdev.org/
源码: https://gitlab.com/waykichain-public/wicc-dapps/wicc-appcenter-test#
WaykiBridge API说明
准备工作
引入如下js
<script src="https://sw91.net/devops/js/waykiBridge.js"></script>
Note: 引入文件后若是需要在页面加载时即调用接口请做延时处理:
(setTimeout(() => this.getAddressInfo(), 100);)
调用格式
waykiBridge.walletPlugin(接口名,接口参数,成功回调,失败回调)
waykiBridge.walletPlugin(name,query,function(res){},function(err){})
注1: query内属性均为string, 数组除外
注2: 入参金额单位为 sawi
API错误码说明
errorCode (Int) | errorMsg (String) | 含义 |
---|---|---|
0 | \ | 操作成功 |
1000 | Please install WaykiMax first. | 没有安装钱包 |
2000 | Please create or import wallet first. | 没有创建或者导入钱包 |
7000 | User denied transaction signature. | 用户拒绝签名请求 |
注: 开发者只需根据 errorCode
进行状态判断,errorMsg
只用于状态信息提示。
getAddressInfo(获取用户信息)
query参数
{} //无参数请传空对象
example
waykiBridge.walletPlugin(
"getAddressInfo",
{},
function(res) {
console.log(res)
},
function(err) {
console.log(err)
}
);
成功回调
{
"result": {
"address": "WPqY8RJHN1u4Kzrnj2mHG9V8igJJVVcveb", //钱包地址,可根据地址开头'W':主网、'w':测试网 来判断网络类型
"regid": "0-1" //账户对应的regid,不存在时为空
},
"errorMsg":"",
"errorCode": 0
}
walletPluginUCoinTransfer(多币种转账)
query参数
{
"destArr":[
{
"amount": "100000000", //转账金额,类型:String, 单位:`sawi`
"coinSymbol": "WICC", //币种类型, 支持但不仅限于 WICC WUSD WGRT
"destAddr":"wbZTWpEnbYoYsedMm2knnP4q7KiSdS3yVq" //收款地址
}
],
"memo":"test transfer" //备注信息,上链
}
example
waykiBridge.walletPlugin(
"walletPluginUCoinTransfer",
{
"destArr":[
{
"amount": "100000000",
"coinSymbol": "WICC",
"destAddr":"wbZTWpEnbYoYsedMm2knnP4q7KiSdS3yVq"
}
],
“memo”:”test transfer”
},
function(res) {
console.log(res)
},
function(err) {
console.log(err)
}
);
成功回调
{
"result": {
"txid":"029c86a648030e2b28ccc64c5ed60c96a0c61de95a30cab82159a476ceeeaf3d"
},
"errorMsg":"",
"errorCode": 0
}
walletPluginUContractInvoke(多币种合约调用)
query参数
{
"amount": "100000000", //调用合约时转入合约的金额,类型:String, 单位:`sawi`
"coinSymbol": "WICC", //币种类型,支持但不仅限于 WICC WUSD
"regId": "0-1", //合约 regid
"contract": "f001", //合约字段
"memo":"test transfer" //备注, 不上链
}
example
waykiBridge.walletPlugin(
"walletPluginUContractInvoke",
{
"amount": "100000000",
"coinSymbol": "WICC",
"regId": "0-1",
"contract": "f001",
"memo":"test transfer"
},
function(res) {
console.log(res)
},
function(err) {
console.log(err)
}
);
成功回调
{
"result": {
"txid":"029c86a648030e2b28ccc64c5ed60c96a0c61de95a30cab82159a476ceeeaf3d"
},
"errorMsg":"",
"errorCode": 0
}
walletPluginContractIssue(合约发布)
query参数
{
"contractContent": "", //合约内容
"contractDesc": "" //合约描述
}
example
waykiBridge.walletPlugin(
"walletPluginContractIssue",
{
contractContent: 'mylib = require "mylib"',
contractDesc: "描述",
},
function(res) {
console.log(res)
},
function(err) {
console.log(err)
}
);
成功回调
{
"result": {
"txid":"029c86a648030e2b28ccc64c5ed60c96a0c61de95a30cab82159a476ceeeaf3d"
},
"errorMsg":"",
"errorCode": 0
}
walletPluginAssetIssue (发行WRC30代币资产)
需要支付 550 WICC作为发行费用
query参数
{
"assetSymbol": "ABCDEFG", //资产符号 6~7个[A-Z]字符
"assetName": "STOKEN", //资产名称 1~32个随意字符
"assetSupply": "100000000000", //资产发行量,最大:900*10^8*10^8 单位`sawi`
"assetOwnerId": "wbZTWpEnbYoYsedMm2knnP4q7KiSdS3yVq", //资产拥有者地址
"assetMintable": false //资产是否可以增发 `true`或 `false`
}
example
waykiBridge.walletPlugin(
"walletPluginAssetIssue",
{
"assetSymbol": "ABCDEFG", //资产符号
"assetName": "STOKEN", //资产名称
"assetSupply": "100000000000", //资产发行量
"assetOwnerId": "wbZTWpEnbYoYsedMm2knnP4q7KiSdS3yVq", //资产拥有者地址
"assetMintable": false //资产是否可以增发
},
function(res) {
console.log(res)
},
function(err) {
console.log(err)
}
);
成功回调
{
"result": {
"txid":"029c86a648030e2b28ccc64c5ed60c96a0c61de95a30cab82159a476ceeeaf3d"
},
"errorMsg":"",
"errorCode": 0
}
walletPluginAssetUpdate(更新WRC30代币资产、暂未启用)
只允许更新资产的拥有者、资产名称、资产增发量,每次需要支付 110 WICC作为更新费用
query参数
{
"assetSymbol": "ABCDEFG", //需要更新的资产符号
"updateType": "1", //更新类型 "1":资产拥有者、 "2":资产名称、"3": 资产增发量
"updateValue": "wbZTWpEnbYoYsedMm2knnP4q7KiSdS3yVq" //资产增发量最小为 100000000,单位为`sawi`
}
example
waykiBridge.walletPlugin(
"walletPluginAssetUpdate",
{
"assetSymbol": "STOKEN", //资产符号
"updateType": "1"
"updateValue": "wbZTWpEnbYoYsedMm2knnP4q7KiSdS3yVq", //资产拥有者地址
},
function(res) {
console.log(res)
},
function(err) {
console.log(err)
}
);
成功回调
{
"result": {
"txid":"029c86a648030e2b28ccc64c5ed60c96a0c61de95a30cab82159a476ceeeaf3d"
},
"errorMsg":"",
"errorCode": 0
}
getIdentity (获取钱包用户身份认证信息)
query参数
{
"dappLogo": "http://b-ssl.duitang.com/uploads/item/201208/30/20120830173930_PBfJE.jpeg", // DAPP logo
"dappName": "DAPP",// DAPP 名称
"type": "1" // "1":所有信息、"2":身份证、"3":手机号
}
example
waykiBridge.walletPlugin(
"getIdentity",
{
"dappLogo": "http://b-ssl.duitang.com/uploads/item/201208/30/20120830173930_PBfJE.jpeg",
"dappName": "DAPP",
"type": "3" //只获取手机号
},
function(res) {
console.log(res)
},
function(err) {
console.log(err)
}
);
成功回调
{
"result": {
"fullName": "", // 真实姓名
"idNumber": "", //用户身份证号码
"mobile": "13888888888" //手机号
"userImageUrl": "", //用户头像url
"userName": "" //用户名
},
"errorMsg":"",
"errorCode": 0
}
getLanguage (获取钱包APP当前语言)
query参数
{
}
example
waykiBridge.walletPlugin(
"getLanguage",
{
},
function(res) {
console.log(res)
},
function(err) {
console.log(err)
}
);
成功回调
{
"result": {
"lang":"zh" // "zh":中文、"en":英文
},
"errorMsg":"",
"errorCode": 0
}
signMessage(授权信息签名)
主要用于DAPP用户的账户登录
query参数
{
"dappLogo": "http://b-ssl.duitang.com/uploads/item/201208/30/20120830173930_PBfJE.jpeg", // DAPP logo
"dappName": "DAPP",// DAPP 名称
"message": "msg" // 需要签名的消息
}
example
waykiBridge.walletPlugin(
"signMessage",
{
"dappLogo": "http://b-ssl.duitang.com/uploads/item/201208/30/20120830173930_PBfJE.jpeg",
"dappName": "DAPP",
"message": "msg"
},
function(res) {
console.log(res)
},
function(err) {
console.log(err)
}
);
成功回调
{
"result": {
"PublicKey": "038661f52c74cc51ea375081bdb6e7c342fe7803a260e0121b9e6b1b9463b5f25e", // 签名者公钥
"SignMessage": "3045022100f0bf875def06ffa8365c8784887f57544720c41c141d1589d99b5c23a01e1a3f022056edae9595099c1aa4de03f618b21e78c1d6f7a0f21a83c535b8e2f5369deaa5" // 签名后的消息
},
"errorMsg":"",
"errorCode": 0
}
用户登录DAPP的大致流程图如下(仅供参考)