@burnt-labs/abstraxion-js

中文文档
1.0.0-alpha.6发布于 2026/10/24MITTypeScriptESM + CJS构建来源已验证近 30 天下载 2864

XION 账户抽象的框架不可知运行时间. 拥有每个模态的状态机器,控制器,策略,以及签名客户端——没有反应,没有DOM,也没有平台的假设被烤入.

中文使用文档
文档目录8 节
  1. 安装
  2. 运行时间
  3. 认证模式
  4. 策略注入( 运行在浏览器外)
  5. 直接签名
  6. 公共表面(部分出口)
  7. 建立一个新的框架包
  8. 许可证

@burnt-labs/abstraxion-js (英语)

XION 账户抽象的框架不可知运行时间. 拥有每个模态的状态机器,控制器,策略,以及签名客户端——没有反应,没有DOM,也没有平台的假设被烤入.

您只需直接依赖此软件包 :

如果你正在建造一个 反应应用程序,使用时 @burnt-labs/abstraxion-react。如果你正在建立一个 反应原生应用程序,使用时 @burnt-labs/abstraxion-react-native。两个包件都会重新导出此运行时间的相关部件,所以您很少需要从 abstraxion-js 直接说.

安装

npm i @burnt-labs/abstraxion-js

运行时间

createAbstraxionRuntime(config, strategies?) 是单一的切入点。 它返回一个 runtime 一次拥有一个控制器的对象(匹配对象) config.authentication.type),并揭露出一个小的反应性API:

import { createAbstraxionRuntime } from "@burnt-labs/abstraxion-js";

const runtime = createAbstraxionRuntime({
  chainId: "xion-testnet-2",
  treasury: "xion1...",
  authentication: { type: "auto" },
});

const unsubscribe = runtime.subscribe((state) => {
  // state.isConnected, state.isConnecting, state.granterAddress, state.error, ...
});

await runtime.login();
const snapshot = runtime.getState();
await runtime.logout();
unsubscribe();

这是整个表面 一个主机框架需要绑定。 反应 useSyncExternalStore,一个斯维尔特 readable 存储, 一个 Vue ref 周围都是薄的适配器 runtime.subscribe(listener) → unsubscribe 加号 runtime.getState()。 。 。 .

认证模式

这个 authentication 配置字段选择控制器 :

模式主计长它会做什么
popupPopupController在弹出窗口中打开仪表板;通过 postMessage。 。 。 .
redirectRedirectController全页重定向到仪表板;返回回调的URL.
embeddedIframeController在嵌入式iframe中渲染仪表板;通过 MessageChannel。 。 。 .
signerSignerController无头-呼叫者提供一个签名器(Turnkey / MetaMask / Kepler /自定义).
auto自动解决决定 popup 在桌面上, redirect 在移动/PWA.

每个控制器通过 runtime.subscribe,所以包装不需要特殊的情况模式.

策略注入( 运行在浏览器外)

运行时间通过三种可注入策略到达主机环境:

import {
  createAbstraxionRuntime,
  type StorageStrategy,
  type RedirectStrategy,
  type IframeTransportStrategy,
} from "@burnt-labs/abstraxion-js";

const runtime = createAbstraxionRuntime(config, {
  strategies: {
    storageStrategy: myStorageStrategy, // implements StorageStrategy
    redirectStrategy: myRedirectStrategy, // implements RedirectStrategy
    iframeTransportStrategy: myIframeTransport, // implements IframeTransportStrategy
  },
});

默认为浏览器本地化 :

  • BrowserStorageStrategy —— 说 localStorage
  • BrowserRedirectStrategy —— 说 window.location + 键 URLSearchParams
  • BrowserIframeTransportStrategy - DOM iframe + 数据 MessageChannel

你只能超越那些不符合你环境的违约者——例如. @burnt-labs/abstraxion-react-native 注入 AsyncStorage 备份 StorageStrategy,一个被Web浏览器支持的博览会 RedirectStrategy,则a react-native-webview- 后卫 IframeTransportStrategy。不使用的模式(signer 不需要改变策略, redirect 不需要iframe transfer)可以不设.

直接签名

两个客户被曝直接签名(即元账户在每笔交易上签字,支付自己的毒气):

  • RequireSigningClient ——处理弹出/重定向/iframe传输的单一客户端. 运输从活性控制器中选择;消费者不直接选择.
  • AAClient 用于 signer 模式; 将外部提供的签名符(MetaMask、Kepler、Twitchey、.)包起来.

两者都暴露了同样的 signAndBroadcast 编号 : sendTokens 编号 : execute 因此在会话键签名和直接签名之间切换是消费者的一行变化.

公共表面(部分出口)

export { createAbstraxionRuntime } from "@burnt-labs/abstraxion-js";
export type {
  AbstraxionRuntime,
  AbstraxionRuntimeOptions,
} from "@burnt-labs/abstraxion-js";

export {
  BaseController,
  IframeController,
  PopupController,
  RedirectController,
  SignerController,
  createController,
} from "@burnt-labs/abstraxion-js";

export {
  BrowserStorageStrategy,
  BrowserRedirectStrategy,
  BrowserIframeTransportStrategy,
} from "@burnt-labs/abstraxion-js";
export type {
  IframeTransportStrategy,
  // RedirectStrategy and StorageStrategy are re-exported from abstraxion-core
} from "@burnt-labs/abstraxion-js";

export { RequireSigningClient, AAClient } from "@burnt-labs/abstraxion-js";

export {
  ConnectorType,
  IframeMessageType,
  MessageTarget,
} from "@burnt-labs/abstraxion-js";
export { AUTHENTICATOR_TYPE } from "@burnt-labs/abstraxion-js";

配置类型( E)AbstraxionConfig, (中文(简体) ), AuthenticationConfig见 packages/abstraxion-js/src/types.ts 它们也从框架包装中再出口.

建立一个新的框架包

斯维尔特演示 demos/svelte/ 是实例: 它创建了运行时间, 从 Svelte 订阅 writable,并且与由此产生的商店相对立。 同一模式对Vue(ref + 键 watchEffect),SolidJS (英语:createStore),或任何可以反射外部订阅的活性原始.

许可证

麻省理工学院

版本与发布记录

@burnt-labs/abstraxion-js 共发布 6 个版本,首次发布于 2026/06/09;过去 12 个月发布了 6 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.0.0-alpha.6latest2026/10/2416 天前
1.0.0-alpha.52026/10/081 个月前
1.0.0-alpha.42026/10/071 个月前
1.0.0-alpha.32026/08/102 个月前
1.0.0-alpha.22026/07/313 个月前
1.0.0-alpha.12026/06/094 个月前

关于 @burnt-labs/abstraxion-js 的常见问题

@burnt-labs/abstraxion-js 是什么?

XION 账户抽象的框架不可知运行时间. 拥有每个模态的状态机器,控制器,策略,以及签名客户端——没有反应,没有DOM,也没有平台的假设被烤入.

如何安装 @burnt-labs/abstraxion-js?

在项目目录运行 npm install @burnt-labs/abstraxion-js,或使用 pnpm add / yarn add / bun add。

@burnt-labs/abstraxion-js 支持 TypeScript 吗?

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

@burnt-labs/abstraxion-js 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@burnt-labs/abstraxion-js 可以商用吗?

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

@burnt-labs/abstraxion-js 的下载量有多少?

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

@burnt-labs/abstraxion-js 还在维护吗?

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