@exodus/address-provider

中文文档
12.15.5发布于 2026/10/10MITTypeScriptES Module近 30 天下载 1.2万

用于生成和跟踪所用和未使用的地址的地址提供者.

中文使用文档
文档目录7 节
  1. 安装
  2. 使用量
  3. 来玩吧
  4. API 边
  5. 外部钱包地址
  6. UI 侧
  7. 模拟地址

@ exodus/ 地址提供者

本模块从不同的钱包账户获取资产地址 。 软件钱包账户的地址是使用 Keychain 种子生成的编码公钥,而硬件钱包账户则使用存储在其中的公共钥 公钥存储器。 。 。 .

flowchart LR
    A[AddressProvider] --> B[PublicKeyProvider]
    B -->|software| D[Keychain]
    B -->|hardware| E[PublicKeyStore]

在某些平台(*咳嗽,可移动*)上,地址衍生可能相当昂贵. 因此这个软件包还包括一个简单的钱包账户和基于bip32路径的缓存.

安装

pnpm add @exodus/address-provider

使用量

此特性设计为与 @exodus/headless。见 使用 sdk。 。 。 .

来玩吧

  1. 打开游乐场 https://exodus-hydra.pages.dev/features/地址-提供商
  2. 尝试一些方法通过UI。 这些对应于1:1 exodus.addressProvider API (英语).
  3. 运行 await exodus.addressProvider.getReceiveAddress({ walletAccount: 'exodus_0', assetName: 'bitcoin' }) 在 Dev 工具控制台中.

API 边

见 使用 sdk 关于特性插入 SDK 和 API 接口的更多细节 类型声明。 。 。 .

const address = await exodus.addressProvider.getAddress({
  purpose: 44,
  assetName: 'bitcoin',
  walletAccount: 'exodus_0',
  chainIndex: 0,
  addressIndex: 0,
})

const receiveAddress = await exodus.addressProvider.getReceiveAddress({
  assetName: 'bitcoin',
  walletAccount: 'exodus_0',
})

const unusedReceiveAddress = await exodus.addressProvider.getReceiveAddress({
  assetName: 'bitcoin',
  walletAccount: 'exodus_0',
  multiAddressMode: true,
})

如果您正在构建一个需要钱包地址的特性,请添加对 addressProvider 模块,它提供与外部几乎相同的 API exodus.addressProvider API 密码 (caveat:模块预期) WalletAccount 实例,而 API 则期望钱包账户名称像 'exodus_0') (中文(简体) ).

外部钱包地址

对于不从种子中获取地址的钱包账户(例如智能合同钱包),地址提供商会从种子中解析地址 externalWalletAddressesAtom登记册地址: walletAccounts 模块 :

await exodus.walletAccounts.setExternalAddress({
  walletAccount: 'polymarket_0',
  assetName: 'matic',
  address: '0x1234...abcd',
})

// The address provider now returns this address for the external wallet account
const address = await exodus.addressProvider.getReceiveAddress({
  assetName: 'matic',
  walletAccount: 'polymarket_0',
})

// To remove
await exodus.walletAccounts.removeExternalAddress({
  walletAccount: 'polymarket_0',
  assetName: 'matic',
})

这仅适用于钱包账户 isExternal 实值 true。对于所有其他账户,则使用普通密钥衍生.

UI 侧

见 使用 sdk 关于基本UI侧设置的更多细节.

import exodus from '~/ui/exodus'

const MyComponent = () => {
  const { loading, value: receiveAddress } = useAsync(
    exodus.addressProvider.getReceiveAddress({ walletAccount: 'exodus_0', assetName: 'bitcoin' })
  )

  return loading ? <Text>Loading...</Text> : <Text>Your address: {receiveAddress}</Text>
}

模拟地址

有时你可能会想模拟另一个钱包,你没有种子或私钥。 您可以在此处的地址层或xpub/ pub 公钥层中进行嘲笑 公用钥匙提供者

提供通常用来获取地址的所有参数,从而模拟地址:

exodus.debug.addressProvider.mockAddress({
  walletAccount: 'exodus_0',
  assetName: 'ethereum',
  address: '<address>',
  purpose: 44,
  chainIndex: 0,
  addressIndex: 0,
})

仅用一个参数子集来模拟多个地址 :

exodus.debug.addressProvider.mockAddress({
  walletAccount: 'exodus_0',
  assetName: 'bitcoin',
  purpose: 44,
  address: '<address>',
})

这将导致嘲弄所有使用同一地址的更改/接收链地址.

要清除所有被嘲笑的地址,打电话 exodus.debug.addressProvider.clear()。 。 。 .

版本与发布记录

@exodus/address-provider 共发布 101 个版本,首次发布于 2023/06/02;过去 12 个月发布了 9 个版本。

版本发布日期距今
12.15.5latest2026/10/101 个月前
12.15.42026/07/084 个月前
12.15.32026/05/185 个月前
12.15.22026/04/137 个月前
12.15.12026/04/077 个月前
12.15.02026/03/257 个月前

关于 @exodus/address-provider 的常见问题

@exodus/address-provider 是什么?

用于生成和跟踪所用和未使用的地址的地址提供者.

如何安装 @exodus/address-provider?

在项目目录运行 npm install @exodus/address-provider,或使用 pnpm add / yarn add / bun add。

@exodus/address-provider 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@exodus/address-provider 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@exodus/address-provider 可以商用吗?

@exodus/address-provider 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@exodus/address-provider 的下载量有多少?

根据 npm 官方下载统计,@exodus/address-provider 在 2026/10/14 – 2026/11/12 这 30 天内被下载 11,956 次,日均约 399 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@exodus/address-provider 还在维护吗?

最新版本 12.15.5 发布于 2026/10/10(1 个月前);至今共发布 101 个版本,其中过去 12 个月发布了 9 个;首次发布于 2023/06/02。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。