DApp连接Nabox钱包(BCH/FCH)
BCH/FCH Provider 对接协议
页面关键变量说明
Provider 对象,DApp业务端使用,提供两种方式:
window.naboxBch | window.naboxFch window.NaboxWallet.bch | window.NaboxWallet.fch
postMessage 需要实现的 method
getPub
参数:无
返回值:当前用户地址的公钥
getBalance
参数:无
返回值:当前用户地址的余额
signMessage
参数: 需要签名的字符串
返回值: 签名字符串
sendTransaction
参数:JSON对象
to: 转账地址
amount: 转账金额
msg: 附带remark
返回值:txHash
钱包注入地址到DApp页面
在DApp页面加载完成后通过下面的方式将当前钱包地址传给页面对象
window.naboxFch.setConfig({selectedAddress: addr});
开始使用
在 Nabox Wallet 中选择BCH | FCH 网络,在浏览器中打开 DApp 页面,Nabox Wallet 会向dapp 页面的 window 对象中注入一个naboxBch | naboxFch对象,DApp可以通过此对象与 Nabox Wallet 通信。
window.naboxFch.getAddress(); //获取当前用户地址
API介绍
连接钱包
method: createSession
参数:无
返回值: {”selectedAddress”: address}
//在 APP 中不用调用此方法,默认已经连接钱包。可以通过判断是否有地址来调用此方法
if(!window.naboxFch.getAddress()){
await window.naboxFch.createSession();
}
获取当前用户账户地址
method: getAddress
参数:无
返回值:string
window.naboxFch.getAddress();
//return F6xvjtdWstcBqBZyt9rEFTimfazFhJcvxC
获取当前地址公钥
method: getPub
参数:无
返回值: string
window.naboxFch.getPub();
//return 02e62cfe906452fb94f981a5d13fe7086fa33088bd5f41c9f63d15071fadb33fc0
获取当前用户账户余额
method: getBalance
参数:无
返回值:number
window.naboxFch.getBalance();
//return 10009999202
//10009999202是小单位数组,表示 1000.9999202 个 Coin
发送转账交易
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
签名字符串
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
在顶部输入框中导入测试私钥,就可以开始下面的测试用例了。
说明:DEMO里模拟了一个Nabox Wallet环境,html 文件中引入的fch-min.js、fch-provider-min.js,app-mock.js 文件在实际业务环境中都不需要引用。
Last updated
Was this helpful?