@ difficial- labs/ 多站点
概览
多Wallet包在动态实验室SDK中提供了过滤和配置钱包连接器的实用功能. 它包含主SDK用来根据项目设置和被启用的链条确定哪些钱包应该可用的帮助器函数.
关键特性
- 钱包过滤: 根据启用的链条和工程设置过滤钱包连接器
- 配置大楼: 创建即时钱包连接器所需的配置对象
- 信件生成: 生成钱包签名操作的标准化消息
- 提供者过滤: 确定允许哪些认证提供者
核心职能
getSupportedWallets(opts)
主要函数返回已过滤过的可用钱包连接器列表,其依据是:
- 项目设置和启用供应商
- 平台相容性(移动式/台式计算机)
- 钱包可用性和安装状况
- 用户偏好和已禁用的连接器
getWalletConnectorConstructorOptions(params)
构建钱包连接器构建器的配置选项,包括:
- 所有支持链的网络配置
- API 供应商和 RPC 配置
- 认证模式和用户界面工具
- 钱包连接项目设置
getEnabledWallets(props)
基于启用的链条过滤钱包连接器 。 以 :
enabledChains: 已启用的链类型阵列getSupportedWalletOpts: 获取所支持钱包的配置选项
generateMessageToSign(params)
为钱包签名操作创建标准化消息. 需要一个 MessageParameters 对象, 有字段, 如 :
blockchain: 区块链类型 (Chain)domain: 请求签名的域nonce: 请求书中唯一的非文件publicKey: 用户的公用钥匙uri: 请求申请的URI- 用于链路、语句、资源等的可选字段.
getEnabledProviders(providers)
过滤提供者只返回已启用的( 有) enabledAt 设定, 或魔法链接与 providerProjectId),或称"Twitchey".
getSupportedChainsForWalletConnector(walletBook, walletConnector)
返回特定钱包连接器实例的支持链条 。 行为取决于 mergeWalletBookChains 连接符的属性 :
-
何时
mergeWalletBookChains实值true(默认):从钱包簿(全球钱包品牌能力)和连接器返回一组合并的链条supportedChains。这是大多数连接器的默认行为. -
何时
mergeWalletBookChains实值false: 只返回连接符supportedChains,忽略钱包书链。 这个用于Solana WalletConnect连接器,以确保在Solana被禁用时被正确过滤出,即使钱包簿显示钱包品牌在全球支持ETH和SOL(例如,Trust Wallet Solana连接器与钱包Key'trust'匹配的钱包簿条目同时列出EVM和SOL链).
使用量
import { getSupportedWallets } from '@dynamic-labs/multi-wallet';
const wallets = getSupportedWallets({
settings: projectSettings,
walletConnectorsProp: walletConnectors,
walletBook: walletBookData,
chainRpcProviders: rpcProviders,
// ... other options
});
动态 SDK 用法
这个软件包主要由动态SDK React Core软件包内部使用. 主要使用模式是:
- 钱包列表大楼数字 :
getEnabledWallets用于根据启用的链过滤可用的钱包 - 配置设置数字 :
getWalletConnectorConstructorOptions构建创建钱包连接器实例所需的选项 - 信件签名数字 :
generateMessageToSign创建符合 SIWE 的钱包认证信件
发展
运行单元测试
npx nx test multi-wallet
构建软件包
npx nx build multi-wallet