1.3.99 • Published 1 year ago
walletconnect-sdk v1.3.99
至信链socket-sdk
安装
npm i walletconnect-sdk
npm i @tencent/walletconnect-sdk
使用方式
import {ZXChainWalletConnect,ZXChainUtils} from 'walletconnect-sdk';
ZXChainUtils:工具类方法
客户端
// 创建连接实例
const connector = new ZXChainWalletConnect({
bridge: "go websocket 服务地址"
clientMeta?:{...}
storageId?:string;
});
// 判断连接状态
if (!connector.connected) {
// 创建连接
connector.createSession({"chainId":0}?:{"chainId":number});
// 或
connector.createSession();
}
钱包app端
const connector = new ZXChainWalletConnect({
uri: '扫码得到 客户端生成的地址。组成:protocol:handshakeTopic@version?bridge=bridge&key=key',
clientMeta?:{...}
session?:{...}
storageId?:string;
});
clientMeta:{
description: string;
url: string;
icons: string[];
name: string;
}
session:{
connected: boolean;
accounts: string[];
bridge: string;
key: string;
clientId: string;
clientMeta: IClientMeta | null;
peerId: string;
peerMeta: IClientMeta | null;
handshakeId: number;
handshakeTopic: string;
chainId:string;
}
当session存在,uri和clientMeta字段没用,优先读取session数据进行连接。
同意连接
connector.approveSession({
accounts:[]; // 连接账户地址信息
chainId:"0"
})
拒绝连接
connector.rejectSession(rejectMessage?:any)
或
connector.rejectSession();
更新会话连接
connector.updateSeesion({
accounts:[], // 连接账户地址信息
chainId:"0"
})
断开连接
connector.killSession(rejectMessage?:any)
或
connector.killSession();
发送自定义连接
connector.sendCustomRequest({
method: string;
params: any[]
}).then(data=>{
//promise.then接受同意请求
}).catch(error=>{
// 拒绝请求的内容。
})
同意请求
connector.approveRequest({
id: number;
result: any
})。
拒绝请求
connector.rejectRequest({
id: number;
result?: any
})。
签名信息
connector.signMessage({
rawData:''
})
methods:zxc_sign
或
connector.sendCustomRequest({
method: 'zxc_sign';
params: {
rawData:''
}
})
验签
connector.verifySign({
signed:string
rawData:string
})
methods:zx_verifySign
或
connector.sendCustomRequest({
method: 'zx_verifySign';
params: {
signed:string
rawData:string
}
})
查询合约
connector.queryContract({
contractName: string;
method: string;
kvs: [
{
key: string;
value: string | number | boolean;
}
];
})
methods: zx_queryContract
或
connector.sendCustomRequest({
method: 'zx_queryContract',
params: {
contractName: string;
method: string;
kvs: [
{
key: string;
value: string | number | boolean;
}
];
}
})
部署合约
connector.deployContract({
contractName: string;
contractVersion: string;
contractBytes: string | Uint8Array;
runtimeType: string;
kvs: [{
key: string,
value: string | number | boolean;
}];
limit: number;
})
methods: zx_deployContract
或
connector.sendCustomRequest({
method: 'zx_deployContract',
params: {
contractName: string;
contractVersion: string;
contractBytes: string | Uint8Array;
runtimeType: string;
kvs: [{
key: string,
value: string | number | boolean;
}];
limit: number;
}
})
调用合约
connector.invokeContract({
contractName: string;
method: string;
kvs: [{
key: string,
value: string | number | boolean;
}];
limit: number;
})
methods: zx_invokeContract
或
connector.sendCustomRequest({
method: 'zx_invokeContract';
params: {
contractName: string;
method: string;
kvs: [{
key: string,
value: string | number | boolean;
}];
limit: number;
}
})
消息订阅
connector.subscribe({...},()=>{...})
connector.subscribe(params,callback).then((id)=>{})
methods: subscribe
或
connector.sendCustomRequest({
method: 'subscribe';
params: {...}
},callback)
根据订阅id执行订阅callback
connector.execSubCallbackById(id: number, result?: any)
取消消息订阅
connector.unsubscribe(id)
methods: unsubscribe
或
connector.sendCustomRequest({
method: 'unsubscribe';
params: id
},callback)
发起交易
connector.sendTransaction({
....
})
methods: zxc_send_transaction
或
connector.sendCustomRequest({
method: 'zx_sendTransaction';
params: {...}
})
保存凭证
connector.saveCredential({
credential: ''
})
methods:zxc_save_credential
或
connector.sendCustomRequest({
method: 'zxc_save_credential';
params: {
credential: ''
}
})
获取凭证
connector.queryCredentials()
methods:zx_getCredentials
或
connector.sendCustomRequest({
method: 'zx_getCredentials';
params: null
})
获取公钥
connector.getPublicKey()
methods:zx_getPublicKey
或
connector.sendCustomRequest({
method: 'zx_getPublicKey';
params: null
})
监听数据
connector.on(eventName, (error,payload)=>{
// error错误信息
//payload返回信息
})
取消监听
connector.off(eventName)
事件
connect 连接成功后触发的事件
payload返回信息:
{
"event": "connect",
"params": [{
"peerId": "b2a3a33e-6ae0-4b0f-997a-d07dec5c0770",
"peerMeta": {
"description": "描述",
"url": "http://127.0.0.1:9999",
"icons": [],
"name": "Socket Demo"
},
"accounts": ["0x2608299b6E1d42f43390e685deDeb57B556E579B"],
"chainId":0
}]
}
peerId/peerMeta:对方的信息
account:连接的账户信息
disconnect 拒绝连接触发的事件
payload返回信息:
{
"event": "disconnect",
"params": "拒绝了~~~~~"
}
params:拒绝的信息
session_request 收到对方发的创建链接的请求。
payload返回信息:
{
"id": 1653563439192359,
"method": "session_request",
"params": [{
"peerId": "a7c32bf6-57c8-4d67-920e-475a3eaad963",
"peerMeta": {
"description": "",
"url": "http://127.0.0.1:9999",
"icons": [],
"name": "Socket Demo"
},
"chainId":0
}]
}
session_update 连接更新触发
payload返回信息:
{
"event": "session_update",
"params": [{
"accounts": ["0x2608299b6E1d42f43390e685deDeb57B556E579B-shan"],
"chainId":0
}]
}
modal_closed 弹窗关闭
payload返回信息:
{
"event": "modal_closed",
"params": [{
"code": "<svg>....</svg>"
}]
}
触发条件:
- 浏览器端:无返回值。(页面可直接创建fragment展示二维码)
- uniapp/node:返回二维码svg标签。标签可直接展示渲染成二维码。
custom_request 监听自定义请求
payload返回信息:
{
"id": 1337,
"method": "shanCustom",
"params": [{
"from": "0xbc28Ea04101F03aA7a94C1379bc3AB32E65e62d3",
"to": "0x89D24A7b4cCB1b6fAA2625Fe562bDd9A23260359",
"data": "0x",
"gasPrice": "0x02540be400",
"gas": "0x9c40",
"value": "0x00",
"nonce": "0x0114"
}]
}
监听同意请求发送的消息:
connector.approveRequest({
"id":payload.id, // 监听返回的。上面的1337
"result":"我同意了"
})
发送的自定义请求数据为:
const customRequest = {
id: 1337,
method: 'custom',
params: [
{
from: '0xbc28Ea04101F03aA7a94C1379bc3AB32E65e62d3',
to: '0x89D24A7b4cCB1b6fAA2625Fe562bDd9A23260359',
data: '0x',
gasPrice: '0x02540be400',
gas: '0x9c40',
value: '0x00',
nonce: '0x0114',
},
],
};
connector
.sendCustomRequest(customRequest)
.then((result) => {
// Returns request result
{
"id":1337,
"result":"我同意了"
}
})
.catch((error) => {
// Error returned when rejected
});
工具类方法
解析uri
调用方式:
ZXChainUtils.parseUrl(uri:string);
参数:uri地址,必填
返回值:
protocol, handshakeTopic, bridge, key,version
打包
- npm run build
1.3.99
1 year ago
1.3.98
2 years ago
1.3.97
2 years ago
1.3.96
2 years ago
1.3.95
2 years ago
1.3.94
2 years ago
1.3.93
2 years ago
1.3.92
2 years ago
1.3.91
2 years ago
1.3.9
2 years ago
1.3.8
2 years ago
1.3.7
2 years ago
1.3.6
2 years ago
1.3.5
2 years ago
1.3.4
2 years ago
1.3.3
2 years ago
1.3.2
2 years ago
1.3.1
2 years ago
1.3.0
2 years ago
1.2.9
2 years ago
1.2.7
2 years ago
1.2.5
2 years ago
1.2.4
2 years ago
1.2.3
2 years ago
1.2.2
2 years ago
1.2.1
2 years ago
1.1.9
2 years ago
1.1.8
2 years ago
1.2.0
2 years ago
1.1.3
2 years ago
1.1.2
2 years ago
1.1.1
2 years ago
1.1.0
2 years ago
1.0.9
2 years ago
1.0.8
2 years ago
1.0.7
2 years ago
1.0.6
2 years ago
1.0.5
2 years ago
1.0.4
2 years ago
1.0.3
2 years ago
1.0.2
2 years ago
1.0.1
2 years ago
1.0.0
2 years ago