跳到主要内容

Pairing API

实用信息

简介

PairingAPI是一个轻量级API,用于在对等体之间建立加密的、协议无关的通信层。它的目的是为dapp和钱包之间提出协议或发送请求提供一个安全通道。

场景

WalletConnect目前提供Sign和Auth sdk。为了允许对等体之间可重用的通信通道,PairingAPI公开了一个标准接口,并允许通过单个Pairing发送和接收多协议请求。

每个SDK都使用相同的core/ paired实现(通过@walletconnect/core)来管理Pairing。要同时运行多个sdk(例如Sign和Auth),请参考共享一个核心实例指南。

使用 Pairing API

下面列出的方法仅限于我们建议您直接与之交互的成对API的公共方法。 详细的列表,请参考上面实用链接下面的规范和/或实现。

关键字sdkClient在这里用作实现PairingAPI的任何WalletConnect SDK的占位符。signClientauthClient,……)。

 // Creates a new (inactive) pairing. Returns the URI for a peer to consume via `pair`, as well as the pairing topic.
const {topic, uri} = await sdkClient.core.pairing.create()

// Pair with a peer's proposed pairing, extracted from the provided `uri` parameter.
await sdkClient.core.pairing.pair({ uri: "wc:1b3eda3f4..." })

// Activate a previously created pairing (e.g. after the peer has paired), by providing the pairing topic.
await sdkClient.core.pairing.activate({ topic: "1b3eda3f4..." })

// Updates the expiry of an existing pairing, by providing the pairing topic and an `expiry` in seconds (e.g. `60` for one minute from now)
await sdkClient.core.pairing.updateExpiry({ topic: "1b3eda3f4...", expiry: 60 })

// Updates the expiry of an existing pairing, by providing the pairing topic and the desired metadata.
await sdkClient.core.pairing.updateMetadata({ topic: "1b3eda3f4...", metadata: { name: "MyDapp", ... } })

// Returns an array of all existing pairings.
const pairings = sdkClient.core.pairing.getPairings()

// Pings a pairing's peer, by providing the pairing topic.
await sdkClient.core.pairing.ping({ topic: "1b3eda3f4..." })

// Disconnects/Removes a pairing, by providing the pairing topic.
await sdkClient.core.pairing.disconnect({ topic: "1b3eda3f4..." })

用于与Pairing相关的事件的监听器

PairingAPI当前会发出以下事件:

  • pairing_ping
  • pairing_delete
  • pairing_expire

可以通过标准Node ' EventEmitter '接口:)监听这些事件中的任何一个

sdkClient.pairing.events.on("pairing_delete", ({ id, topic }) => {
// clean up after the pairing for `topic` was deleted.
});