DApp连接Nabox钱包(BCH/FCH)

BCH/FCH Provider 对接协议

页面关键变量说明

  1. window.naboxBchWallet | window.naboxFchWallet

    DApp 调用钱包的对象,需要在DApp 页面加载完成后,钱包将postMessage方法注入给此对象

  2. window.naboxBchWallet | window.naboxFchWallet

    钱包回调 DApp 页面对象,此对象有一个callback 方法,当钱包需要向DApp页面回调数据时调用

  3. window.naboxBch | window.naboxFch

    Provider 对象,DApp业务端使用。

postMessage 需要实现的 method

  1. getPub

参数:无

返回值:当前用户地址的公钥

  1. getBalance

参数:无

返回值:当前用户地址的余额

  1. signMessage

参数: 需要签名的字符串

返回值: 签名字符串

  1. sendTransaction

参数:JSON对象

to: 转账地址

amount: 转账金额

msg: 附带remark

返回值:txHash

注入地址到DApp页面

在DAPP页面加载完成后通过下面的方式将当前钱包地址传给页面对象

window.naboxFch.setConfig({selectedAddress: addr});

开始使用

在 nabox wallet 中选择 fch 网络,在浏览器中打开 dapp 页面,nabox wallet 会向dapp 页面的 window 对象中注入一个naboxFch对象,dapp 可以通过此对象与 nabox wallet 通信。

window.naboxFch.getAddress(); //获取当前用户地址

API介绍

  1. 连接钱包

method: createSession

参数:无

返回值: {”selectedAddress”: address}

//在 APP 中不用调用此方法,默认已经连接钱包。可以通过判断是否有地址来调用此方法
if(!window.naboxFch.getAddress()){
    await window.naboxFch.createSession();	 
}
  1. 获取当前用户账户地址

method: getAddress

参数:无

返回值:string

window.naboxFch.getAddress();
//return F6xvjtdWstcBqBZyt9rEFTimfazFhJcvxC
  1. 获取当前地址公钥

method: getPub

参数:无

返回值: string

window.naboxFch.getPub();
//return 02e62cfe906452fb94f981a5d13fe7086fa33088bd5f41c9f63d15071fadb33fc0
  1. 获取当前用户账户余额

method: getBalance

参数:无

返回值:number

window.naboxFch.getBalance();
//return 10009999202   
//10009999202是小单位数组,表示 1000.9999202 个 Coin
  1. 发送转账交易

method: sendTransaction

参数:JSON对象

{
	"to": "F6xvjtdWstcBqBZyt9rEFTimfazFhJcvxC",  //收款地址
	"amount": 0.1,  //转账金额
	"msg": "this is remark"  //交易附带信息 
}

返回值:string 交易 hash

window.naboxFch.sendTransaction({
	"to": "F6xvjtdWstcBqBZyt9rEFTimfazFhJcvxC",
	"amount": 0.1, 
	"msg": "this is remark"
});
//return df3269102690620010d754c18d03a7ad59cd8cee7a4d86da6b4aa46c19398f66
  1. 签名字符串

method: signMessage

参数: string 需要签名的字符串

返回值:string 签名字符串(hex)

window.naboxFch.signMessage("123456");
//return 20cdf84efc80c8b4c28c7e845e5906ce067a0f93dd3a74a3b3bc5589118ff9281e56e0bcc0142f4c0ead720199785e7cd45cf5174521db68c3ce2542b8c5e9580c

DEMO

点击下载

运行 demo:

需要安装 nodejs 环境,解压后,执行npm install, 然后执行npm run start

cd fch-provider-demo
npm install
npm run start

访问:http://localhost:8080

在顶部输入框中导入测试私钥,就可以开始下面的测试用例了。

说明:DEMO里模拟了一个Nabox Wallet环境,html 文件中引入的fch-min.js、fch-provider-min.js,app-mock.js 文件在实际业务环境中都不需要引用。

Last updated