@exodus/application

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

管理Exodus SDK应用生命周期的特性.

中文使用文档
文档目录6 节
  1. 目录
  2. 如何运作
  3. 使用量
  4. 生命周期钩
  5. 可用的钩子
  6. 视觉表现

@ exodus/ 应用程序

这个 application 软件包代表高级应用程序 使用出埃及语SDK.

目录

如何运作

它协调创建、进口、删除和恢复 钱包,处理安全方面,如锁定和密码句 管理,并为其他组件提供灵活的钩子系统 应对生命周期事件.

使用量

该功能作为以下内容的一部分: @exodus/headless,没有 需要单独安装.

关于在API和UI方面使用这一特性的例子, 请参考相关的 SDK游乐场页面。 。 。 .

生命周期钩

在使用Exodus SDK时,应用程序可以订阅多个 生命周期钩,在 application 软件包.

钩子的订阅通过注册办理 plugin 节点 对IoC容器。 插件可以导出若干不同的 钩子,在相应的生命周期事件发生时被引用.

例如,如果您想要在应用程序时运行一些代码 启动时,您可以创建这样的插件 :

const plugin = () => {
  const onStart = ({ isBackedUp }) => {
    // Run some code when the application starts
  }

  return {
    onStart,
  }
}

const myPluginDefinition = {
  id: 'myPlugin', // unique id
  type: 'plugin', // type of the node
  factory: plugin, // factory function
}

可用的钩子

一些钩子接收到参数,如果是,则在下面记录.

  • onStart: 应用程序启动时触发. 打电话 { walletExists, hasPassphraseSet, isLocked, isBackedUp, isRestoring }。 。 。 .
  • onRestart: 应用程序重新启动时触发. 打电话 { reason } 以及其他参数(视原因而定).
  • onStop: 应用程序停止时触发.
  • onLoad:不要使用这个钩. 其唯一目的是黑客支持浏览器扩展,UI可能会死后被重生而同时背景过程是长生. 在这种情况下, onLoad 当新的 UI 被重新创建并连接到背景进程时,就会被触发。 调用相同的参数 onStart。 。 。 .
  • onUnload: 应用程序卸下时触发,即,,, 应用程序关闭.
  • onCreate: 当新建钱包时触发 。 打电话 { walletExists, hasPassphraseSet, isLocked, isBackedUp, isRestoring, seedId, createResult }。 。 。 .
  • onImport: 当钱包被导入时触发 。 打电话 { seedId, compatibilityMode, backupType, importResult }。 。 。 .
  • onDelete: 删除钱包时触发.
  • onRestore: 当钱包(主种子)恢复进程启动时触发。 打电话 { backupType }。 。 。 .
  • onRestoreCompleted: 当钱包种子恢复过程完成时触发. 打电话 { backupType }。 。 。 .
  • onAssetsSynced:当资产同步时触发.
  • onChangePassphrase:密码句被更改后触发.
  • onLock:应用程序被锁定时触发.
  • onUnlock: 应用程序解锁后触发.
  • onClear: 应用程序被清除时触发,即, 在删除当前钱包后。 Hook 函数同时执行 .

视觉表现

您可以在下面找到一个可视化状态过渡间触发的钩子的状态图 :

stateDiagram-v2
    direction LR
    [*] --> Starting

    state Starting {
        direction LR

        state "Needs clear storage?*" as NeedsClear
        state "Is importing?" as IsImporting

        NeedsClear --> Clearing : CLEAR
        Clearing --> IsImporting
        IsImporting --> Importing : IMPORT
    }

    Starting --> Started : START

    state Started {
        direction LR

        state "Has seed?" as HasSeed

        HasSeed --> Empty : No
        HasSeed --> Locked : Yes

        Empty --> Locked : CREATE \n---or---\nIMPORT

        Locked --> Migrating : MIGRATE
        Migrating --> Unlocked : UNLOCK
        Unlocked --> Locked : LOCK

        Unlocked --> Restarting : DELETE


    }

    Restarting --> [*] : RESTART

    Started --> Started : LOAD

    classDef conditional fill:#ededed,stroke:#c2c2c2,color:#a6a6a6,stroke-width:2;

    class NeedsClear conditional
    class IsImporting conditional
    class HasSeed conditional

* 如果种子不存在或正在恢复一个新的钱包,钱包需要清除存储

版本与发布记录

@exodus/application 共发布 47 个版本,首次发布于 2024/05/31;过去 12 个月发布了 10 个版本。

版本发布日期距今
4.0.1latest2026/10/101 个月前
4.0.02026/07/213 个月前
3.0.12026/06/174 个月前
3.0.02026/06/035 个月前
2.15.42026/04/246 个月前
2.15.32026/04/246 个月前

关于 @exodus/application 的常见问题

@exodus/application 是什么?

管理Exodus SDK应用生命周期的特性.

如何安装 @exodus/application?

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

@exodus/application 支持 TypeScript 吗?

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

@exodus/application 支持 ESM 还是 CommonJS?

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

@exodus/application 可以商用吗?

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

@exodus/application 的下载量有多少?

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

@exodus/application 还在维护吗?

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