{"_id":"@0xinfrax/aa-sdk","_rev":"6-4e11406770d5bd8ef98c81f2ec8ef28f","name":"@0xinfrax/aa-sdk","dist-tags":{"latest":"0.2.1"},"versions":{"0.1.0":{"name":"@0xinfrax/aa-sdk","version":"0.1.0","_id":"@0xinfrax/aa-sdk@0.1.0","maintainers":[{"name":"stevenwang000x","email":"apply.wang@hotmail.com"}],"dist":{"shasum":"87dd277ac771f8416bd4f4d995feb67d76e918f1","tarball":"https://registry.npmjs.org/@0xinfrax/aa-sdk/-/aa-sdk-0.1.0.tgz","fileCount":43,"integrity":"sha512-xl1TdPPTtAy1YW1amD9oDtw+oI5SDBHeCQqTRIefX7QYlZBv/SS5LmL596kIz+qHwQaXZ2RDsElimq3HYFFhsA==","signatures":[{"sig":"MEUCIDpFCkIRZo0pdFbrktuJhiBbIgum1YWSFSRya+31cZkHAiEAjH45Or1xfIFfaARmSGz5SnSHVwY56q4g0cA5/anlVF8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115984},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"4127e3b16c3d93fe34bec9ebd23a6b720b19aa12","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"stevenwang000x","email":"apply.wang@hotmail.com"},"_npmVersion":"10.8.2","description":"InfraX 共享 ERC-4337 Smart Account SDK（白标自 PocketX @pocketx/aa-sdk）— Kernel v3 + UserOp v0.7 + Bundler + Paymaster + Session Key","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"viem":"^2.55.10","vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^24.0.0","permissionless":"^0.3.7"},"peerDependencies":{"viem":">=2.0.0","permissionless":">=0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/aa-sdk_0.1.0_1786839601375_0.30670251039722807","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@0xinfrax/aa-sdk","version":"0.1.1","_id":"@0xinfrax/aa-sdk@0.1.1","maintainers":[{"name":"stevenwang000x","email":"apply.wang@hotmail.com"}],"dist":{"shasum":"d7415b447528e09739dae2d29d9608eebba689ec","tarball":"https://registry.npmjs.org/@0xinfrax/aa-sdk/-/aa-sdk-0.1.1.tgz","fileCount":44,"integrity":"sha512-+6TPKSJjYu6oC5FiR4R0WVjHbprFeE920XSeazklKJx6nk8cYs3gpO2mQo4DveGtSKQ+yuCQjFg77PHccmXBkQ==","signatures":[{"sig":"MEYCIQD5EgfSPMQBHC6+dy3UOgB43T/yBBCEK+RTehSZHVVuvwIhANZWjoX4i9pAmQQRGLLHJNOY+ax4LKb/CFmdYP8MqqiG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":123262},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"48134e251fec8592f1aee592514a23efbac0a560","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"stevenwang000x","email":"apply.wang@hotmail.com"},"_npmVersion":"10.8.2","description":"InfraX 共享 ERC-4337 Smart Account SDK（白标自 PocketX @pocketx/aa-sdk）— Kernel v3 + UserOp v0.7 + Bundler + Paymaster + Session Key","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"viem":"^2.55.10","vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^24.0.0","permissionless":"^0.3.7"},"peerDependencies":{"viem":">=2.0.0","permissionless":">=0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/aa-sdk_0.1.1_1786842433641_0.6200076260803706","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@0xinfrax/aa-sdk","version":"0.1.2","_id":"@0xinfrax/aa-sdk@0.1.2","maintainers":[{"name":"stevenwang000x","email":"apply.wang@hotmail.com"}],"dist":{"shasum":"bbbde8419270685b342f75d79c2ab5b8715d1c75","tarball":"https://registry.npmjs.org/@0xinfrax/aa-sdk/-/aa-sdk-0.1.2.tgz","fileCount":58,"integrity":"sha512-iqo73LQJmQ2SIqnMvDIiV4iBBtquUlGDMuA5zcFHWwg+2Pg9eeshzZlbGC9Ejj67Sc/iDnsQx2zPCHNNrKN9ew==","signatures":[{"sig":"MEQCIGZ6JVfK19rpgHIX06hWou7JfXHxMyDCbFidOLGaaPMdAiAsGgU5P2j0O0aCxWh0q8Zv4P/BQBhq+LOL7l1oy7wvAg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":147917},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"213e5f1407c471573ea24a71b53419fa4ba503d2","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"stevenwang000x","email":"apply.wang@hotmail.com"},"_npmVersion":"11.17.0","description":"InfraX 共享 ERC-4337 Smart Account SDK（白标自 PocketX @pocketx/aa-sdk）— Kernel v3 + UserOp v0.7 + Bundler + Paymaster + Session Key","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"viem":"^2.55.10","vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^24.0.0","permissionless":"^0.3.7"},"peerDependencies":{"viem":">=2.0.0","permissionless":">=0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/aa-sdk_0.1.2_1787167113260_0.02737330552773698","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@0xinfrax/aa-sdk","version":"0.1.3","_id":"@0xinfrax/aa-sdk@0.1.3","maintainers":[{"name":"stevenwang000x","email":"apply.wang@hotmail.com"}],"dist":{"shasum":"3f3f59c89ee76785a55712c1f31d2c1b8676520c","tarball":"https://registry.npmjs.org/@0xinfrax/aa-sdk/-/aa-sdk-0.1.3.tgz","fileCount":60,"integrity":"sha512-VyjwntuCBYn9V/YVLPNo6brL7PeciNL2XERim4j2qUQNuYLyihhFlDHsV9mvcdPASYWmftwfby+ewtXCL71wFg==","signatures":[{"sig":"MEYCIQDPR2zRdfm/MwGQ1RwFmkWSv0vUxtLph5m9mdQW8n7lQwIhALP4UpmALb4cqZdATtNxEcAjzTwtSOeXpWnxP7nWlXDW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":161906},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"308ba4d401a1c72adb4080f18f8b9842026dc439","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"stevenwang000x","email":"apply.wang@hotmail.com"},"_npmVersion":"11.17.0","description":"InfraX 共享 ERC-4337 Smart Account SDK（白标自 PocketX @pocketx/aa-sdk）— Kernel v3 + UserOp v0.7 + Bundler + Paymaster + Session Key","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"viem":"^2.55.10","vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^24.0.0","permissionless":"^0.3.7"},"peerDependencies":{"viem":">=2.0.0","permissionless":">=0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/aa-sdk_0.1.3_1787260767658_0.25689631063539764","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@0xinfrax/aa-sdk","version":"0.2.0","_id":"@0xinfrax/aa-sdk@0.2.0","maintainers":[{"name":"stevenwang000x","email":"apply.wang@hotmail.com"}],"dist":{"shasum":"15c58b958029511dc8479c04f296a565afd18217","tarball":"https://registry.npmjs.org/@0xinfrax/aa-sdk/-/aa-sdk-0.2.0.tgz","fileCount":62,"integrity":"sha512-ioO+mY56Zgi0hj6hbhjXqLmlju5Pa6Qa4kt8YzGHBFnym15OGOJkDF4Wt8xaL6PNWJS1DD6WFKD+WHLsXh4v7A==","signatures":[{"sig":"MEUCIQDsvdDCCCUCPrvce4fJKQCHJE75Rxdl7Gi/Facbu2MxxwIgBplAsOk3I95yKvhUgJ6g81ad12x1CWibT3i7ocaVOcs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDB719vegv7hfHmzEQ1JiSBWqW+Nq0jc5PrnH9WImo4yQIgIpZaV76Y3DT8mxNdp6dbIJO0oUODIgO0IEYwZu3nyv8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":189160},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"2e41d5167a6b907b907130d2fbe85eb3e0449edb","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"stevenwang000x","email":"apply.wang@hotmail.com"},"_npmVersion":"11.17.0","description":"InfraX 共享 ERC-4337 Smart Account SDK — Kernel v3 + UserOp v0.7 + Bundler + Paymaster + Session Key","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"viem":"^2.55.10","vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^24.0.0","permissionless":"^0.3.7"},"peerDependencies":{"viem":">=2.0.0","permissionless":">=0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/aa-sdk_0.2.0_1789857308093_0.23182745602368882","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"_id":"@0xinfrax/aa-sdk@0.2.1","dist":{"shasum":"a6e3c0bb93a889cbf90a0b8853cff239f4fef9f8","tarball":"https://registry.npmjs.org/@0xinfrax/aa-sdk/-/aa-sdk-0.2.1.tgz","fileCount":62,"integrity":"sha512-ijRcLwUJTlKsf5sw3hbEhHjz02JufZfn918z0fHf1dB1kx7TCSN3N8X/qU+PRAepcP17MDYa0b7l0SFIX1uKbw==","signatures":[{"sig":"MEQCIF7MAaZjKcRnVwBAUMnOILFLBrFeYRVLxzhwUcfs0tWUAiAx1FPZAal4lZyO3rs/0bwpSW1ormxxPnfd9nShTb5GIw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDmNJU7u7FsbXIOQmWAs7+ymS5hH1RIzls/2WoNuXVjAAiB7Jz3GESKCet5ncUSYVlK1XbSdrp+tsW3l7KMgQfYpoQ=="}],"unpackedSize":190053},"main":"dist/index.js","name":"@0xinfrax/aa-sdk","type":"module","types":"dist/index.d.ts","gitHead":"57e27f65022fda31144221803d4d7dbb82d1e236","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"npm run build"},"version":"0.2.1","_npmUser":{"name":"stevenwang000x","email":"apply.wang@hotmail.com"},"_npmVersion":"11.17.0","description":"InfraX 共享 ERC-4337 Smart Account SDK — Kernel v3 + UserOp v0.7 + Bundler + Paymaster + Session Key","directories":{},"maintainers":[{"name":"stevenwang000x","email":"apply.wang@hotmail.com"}],"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"viem":"^2.55.10","vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^24.0.0","permissionless":"^0.3.7"},"peerDependencies":{"viem":">=2.0.0","permissionless":">=0.2.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/aa-sdk_0.2.1_1789859941238_0.9886695457377714"}}},"time":{"created":"2026-08-16T00:20:01.230Z","modified":"2026-09-19T23:19:01.509Z","0.1.0":"2026-08-16T00:20:01.536Z","0.1.1":"2026-08-16T01:07:13.780Z","0.1.2":"2026-08-19T19:18:33.390Z","0.1.3":"2026-08-20T21:19:27.813Z","0.2.0":"2026-09-19T22:35:08.174Z","0.2.1":"2026-09-19T23:19:01.321Z"},"description":"InfraX 共享 ERC-4337 Smart Account SDK — Kernel v3 + UserOp v0.7 + Bundler + Paymaster + Session Key","maintainers":[{"name":"stevenwang000x","email":"apply.wang@hotmail.com"}],"readme":"# @0xinfrax/aa-sdk\n\nInfraX 共享 ERC-4337 智能账户 SDK（白标自 InfraX `@0xinfrax/aa-sdk`）——Kernel v3 + UserOp v0.7 + Bundler + Paymaster + Session Key。\n\n- **npm**: `@0xinfrax/aa-sdk@0.2.0`（**0.2.0 新增内置多链 AA 栈地址常量** `src/chain-defaults.ts` + `aaChainSupported()`——外部消费方（如 Actora 网关）无需再手工维护地址表，未配置的地址类 env 由内置默认补齐；**同版把 `AA_<CHAIN>_BUNDLERS` 由「配置点必填」改为「使用点必填」**——缺该 env 时 `getChainConfig` 返回 `bundlers: []` 不抛错，仅在 `BundlerClient` 发直连 UserOp / 估 gas 时报错，经 aa-relay 提交的调用方无需配置；`0.1.3` 新增 `src/escrow.ts` InfraXEscrow 充值构建 helper——depositFor 等编码 + UserOp（REQ-1/REQ-5，AgentX 自动续订资金）；`0.1.2` 发布三段批量 disable 等 session 新导出；`0.1.1` 补 PaymasterClient/BundlerClient 自定义 headers——relay 模式注入 X-API-Key；`@infrax` scope 私有发布需付费订阅，故用 `@0xinfrax` scope + `--access public`）\n- **文档**: `docs/AA_SDK_TECH_DESIGN.md`（技术方案）、`docs/PAYMASTER_PROVISION_REQUEST.md` §八（InfraX 对接与公网入口）\n- **关联包**: `@0xinfrax/session-key-core`（`Aa` 命名空间导出同源能力，v0.2.1 已发布）——两通道并存，按需选用\n\n## 安装\n\n```bash\nnpm install @0xinfrax/aa-sdk\n# peerDependencies: viem >=2.0.0、permissionless >=0.2.0（需一并安装）\nnpm install viem@^2 permissionless@^0.2\n```\n\n`type: module`，产物 `dist/`（43 files），含类型声明。\n\n## 快速开始\n\n```ts\nimport { createKernelAccount, createAAClient, getChainConfig, MpcSigner } from '@0xinfrax/aa-sdk';\n\nconst cfg = getChainConfig('oxachain', process.env); // 从 AA_OXACHAIN_* env 加载\nconst signer = new MpcSigner(address, 'https://.../api/v2/mpc', { email }); // 或 token 模式\nconst account = await createKernelAccount({ owner: signer, chainConfig: cfg });\nconst client = createAAClient({ account, chainConfig: cfg });\n```\n\n## 环境变量（链配置，内置默认 + env 覆盖）\n\n| 变量 | 说明 |\n|------|------|\n| `AA_ENABLED_CHAINS` | 启用链别名逗号列表（如 `oxachain`，缺省 `base-sepolia`） |\n| `AA_OXACHAIN_RPC_URL` | 链 RPC（只读调用）——**必填**（部署侧配置，不提供内置默认） |\n| `AA_OXACHAIN_BUNDLERS` | JSON 数组或纯 URL（`parseBundlers` 解析，多端点容灾）——**使用点必填**（0.2.0 起） |\n| `AA_OXACHAIN_PAYMASTER_URL` | Pimlico paymaster RPC（经 aa-relay `/v1/paymaster` 代理可隐藏 apikey） |\n| `AA_OXACHAIN_ENTRYPOINT_V07` | EntryPoint v0.7 地址（缺省用内置默认，见下） |\n| `AA_OXACHAIN_FACTORY` / `AA_OXACHAIN_IMPLEMENTATION` / `AA_OXACHAIN_ECDSA_VALIDATOR` / `AA_OXACHAIN_SESSION_MODULE` / `AA_OXACHAIN_KERNEL_VERSION` / `AA_OXACHAIN_SESSION_SIG_MODE` | Kernel v3 组件地址与 session 签名契约（可空，缺省用内置默认） |\n\n链别名 → chainId：`oxachain:19505`、`base-sepolia:84532`、`base:8453`、`arbitrum:42161`、`optimism:10`、`polygon:137`、`ethereum:1`、`bsc:56`。\n\n### 内置多链默认地址表（0.2.0+，`src/chain-defaults.ts`）\n\n`bsc`(56) / `ethereum`(1) / `base`(8453) / `oxachain`(19505) 的 AA 栈地址**已内置**，外部消费方无需再手工维护地址表：\n\n| 链 | entryPoint | implementation | factory | ecdsaValidator | sessionModule | kernelVersion | sessionSigMode |\n|---|---|---|---|---|---|---|---|\n| `bsc` | `0x0000…da032` | `0xBAC8…84b4D` | `0xaac5…3E419` | `0x845A…cE57` | `0x848E…2F725` | `0.3.1` | `payload` |\n| `ethereum` | 同上 | 同上 | 同上 | 同上 | `0x2791…10ae` | `0.3.1` | `payload` |\n| `base` | 同上 | 同上 | 同上 | 同上 | `0xdF79…4ffB4` | `0.3.1` | `payload` |\n| `oxachain` | `0x97e4…798a` | `0x5131…52b4` | `0xf8ab…757d1` | `0xb0d4…eb16c` | `0xfbbc…d8c74` | `0.3.0-beta` | `onchain` |\n\n- **优先级**：`env > 内置默认 > 既有全局兜底`（如 `AA_ENTRYPOINT_V07` → `DEFAULT_ENTRYPOINT_V07`）。env 存在时行为与旧版本**完全一致**；env 缺失时用内置默认补齐。\n- **`AA_<CHAIN>_RPC_URL` 仍为必填**（链上读写通用依赖，`getChainConfig` 阶段抛错）。\n- **`AA_<CHAIN>_BUNDLERS` 为「使用点必填」（0.2.0 起）**：`getChainConfig` 缺该 env 时给 `bundlers: []` **不抛错**，由真正发直连 UserOp 的使用点报错 —— `BundlerClient.sendUserOperation()` / `estimateUserOperationGas()` 抛 `BundlerError: no bundler endpoints configured (chain <id>)`。这样「显式传自建 chainConfig、只做地址预测 / 构建 UserOp / 算 hash」的消费方无需配置 bundler；而「本该直连」的路径缺配置时**明确报错，不会静默退化到 relay**。（JSON 非法且非纯 URL 仍在 `getChainConfig` 抛错。）\n- **provenance**：entryPoint/implementation/factory/ecdsaValidator 为 **ZeroDev 官方确定性部署**（bsc/ethereum/base 三链同址）；sessionModule 为 **infraX 自研自部署**（四链异址）。均为不可变部署，链上重部署须同步本表。\n- ⚠️ `sessionSigMode` 随地址一并内置：bsc/ethereum/base = `payload`（自研模块仅存 `permissionsHash`，**缺省 `onchain` 会静默 AA24**）；oxachain = `onchain`。env 显式设置时仍以 env 为准（非法值报错）。\n\n### `aaChainSupported()`：链支持预检（不抛错）\n\n```ts\nimport { aaChainSupported } from '@0xinfrax/aa-sdk';\n\naaChainSupported('base');      // true（有内置默认）\naaChainSupported('polygon');   // false（已知别名，但无内置地址且 env 未提供）\naaChainSupported('unknown');   // false（不抛错）\n```\n\n返回 `true` 当且仅当「链别名已知 **且** 该链的 `sessionModule` 与 `validatorAddress` 可解析（内置或 env 提供）」。⚠️ **不检查 RPC / BUNDLERS**：缺 RPC 在 `getChainConfig` 抛错；缺 BUNDLERS 则在发直连 UserOp 时由 `BundlerClient` 抛错（见上）。\n\n## Paymaster（代付，可选）\n\n平台默认\"用户自充\"；开启 sponsor 时经 aa-relay 代理（服务端持有 apikey）：\n\n```ts\nimport { PaymasterClient } from '@0xinfrax/aa-sdk';\n\nconst pm = new PaymasterClient(\n  { type: 'verifying', url: 'https://rpc-gw.0xainet.top/aa-relay/v1/paymaster' },\n  'https://rpc-gw.0xainet.top/aa-relay',   // relay 代理模式：{chain, method, params}\n  { 'X-API-Key': AA_RELAY_KEY },          // v0.1.1：自定义 headers（relay 鉴权必需）\n);\nconst stub = await pm.getPaymasterStubData(op, { chain: 'oxachain', entryPoint, chainId: 19505 });\nconst data  = await pm.getPaymasterData(op, { chain: 'oxachain', entryPoint, chainId: 19505 });\n```\n\n自定义 headers 支持（v0.1.1，InfraX 联调反馈 ⑤）：\n\n- **PaymasterClient**：构造第三参数 `headers`，或 `PaymasterConfig.headers`（config 优先）；relay 模式下注入 `X-API-Key` 过 aa-relay 鉴权\n- **BundlerClient**：构造第二参数 `headers`，或 `BundlerConfig[].headers`（端点级优先）；注入到所有 RPC 请求（send/estimate/receipt 轮询）\n- env 形态：`AA_{CHAIN}_PAYMASTER_URL` 支持 JSON `{\"url\":\"...\",\"headers\":{\"X-API-Key\":\"...\"}}`；`AA_{CHAIN}_BUNDLERS` 数组项支持 `\"headers\"` 字段\n\n## 关键导出（barrel `dist/index.d.ts`）\n\n- 配置：`getChainConfig` / `getEnabledChains` / `getAllChainConfigs` / `parseBundlers` / `parsePaymaster` / `entryPointAbi`（EntryPoint v0.7 `getNonce(address,uint192)`）\n- 账户：`createKernelAccount` / `createAAClient` / `activateSmartAccount`\n- 交易：`buildUserOp` / `signUserOp` / `estimateUserOpGas` / `userOpToRpc` / `PackedUserOperationV7`\n- 充值（0.1.3，InfraXEscrow，REQ-1/REQ-5）：`InfraXEscrowAbi` / `encodeDepositFor` / `encodeDepositForBatch` / `encodeDepositForERC20` / `encodeDepositForERC20Batch` / `buildDepositForUserOp` / `buildDepositForBatchUserOp` / `buildDepositForERC20UserOp` / `buildDepositForERC20BatchUserOp`\n- 客户端：`BundlerClient` / `PaymasterClient`\n- 签名器：`MpcSigner`（email/token 双模式）/ `PrivateKeySigner` / `ExternalWalletSigner` / `SessionKeySigner`\n- Session（enable）：`encodeEnableSessionCall` / `buildEnableSessionUserOp` / `signEnableUserOp` / `buildSessionUserOp` / `validateSessionCall` / `SessionPolicy` / `SessionPermission`\n- Session（disable/轮换，0.1.2）：`buildDisableSessionUserOp`（三段批量 draft：`disableSession@module + uninstallModule + invalidateNonce`）/ `encodeDisableSessionBatch` / `encodeValidatorInstallData` / `KernelV3SessionDataBuilder` / `MODULE_TYPE_VALIDATOR` / `isSessionModuleInstalled` / `verifyDisableSignature`\n- 类型：`ChainAAConfig` / `BundlerConfig` / `PaymasterConfig` / `UserOperationV7` / `Signer` / `AAError` / `isAAError`\n\n> ⚠️ 遗留单调用 `encodeDisableSessionCall` 已于 2026-08-20 移除：仅 uninstallModule 不删 session 记录（onUninstall 空实现），旧 key 可复用。撤销/轮换一律用 `encodeDisableSessionBatch`（三段批量）。\n\n## aa-relay 公网入口\n\n`https://rpc-gw.0xainet.top/aa-relay/`（nginx → aa-relay :9131；上游强制 `X-API-Key` 鉴权）\n\n| 端点 | 契约 |\n|------|------|\n| `POST /aa-relay/v1/userops` | `{chain, op, wait?}` → `{userOpHash, bundlerUrl, receipt}` |\n| `GET /aa-relay/v1/userops/:hash?chain=oxachain` | 收据查询 |\n| `POST /aa-relay/v1/estimate` | `{chain, op}` → gas 估算 |\n| `POST /aa-relay/v1/paymaster` | `{chain, method, params}` → Pimlico paymaster 代理 |\n| `GET /aa-relay/health` | 健康检查（免鉴权） |\n\n> 端口说明：**9131 = aa-relay 网关（对外入口）**；9134 = 内部 signer（aa-paymaster 签名服务，仅内网不可直连，由 aa-relay 代理）。\n\n## 测试\n\n```bash\nnpm test        # vitest（149/149 绿）\nnpm run build   # tsc → dist/\n```\n","readmeFilename":"README.md"}