跳到主要内容

共享Core实例

WalletConnect的sdk旨在通过@walletconnect/core包共享公共逻辑和资源。

如果您打算一起利用多个sdk(例如Sign + Auth),强烈建议实例化 一个单一的Core实例,并将它传递给相关的sdk。 这避免了每个SDK创建自己的Core实例, 因此重复计算,内存分配,事件监听器等。

在下面的例子中,我们首先实例化一个Core实例,然后继续实例化Sign 和Auth SDK与此共享 Core:

import { Core } from "@walletconnect/core";
import SignClient from "@walletconnect/sign-client";
import { AuthClient } from "@walletconnect/auth-client";

// First instantiate a separate `Core` instance.
const core = new Core({
projectId: "<YOUR_PROJECT_ID>",
});

const metadata = {
name: "Example Dapp",
description: "Example Dapp",
url: "#",
icons: ["https://walletconnect.com/walletconnect-logo.png"],
};

// Pass `core` to the SignClient on init.
const signClient = await SignClient.init({ core, metadata });

// Pass `core` to the AuthClient on init.
const authClient = await AuthClient.init({ core, metadata });