# @anywalletkit/wallet-evm 中文文档

规范地址：https://npmcn.com/package/%40anywalletkit/wallet-evm/

版本：0\.7\.0
npm 元数据更新时间：2026-11-02T20:12:10.613Z
中文译文更新时间：2026-11-06T16:13:05.658Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40anywalletkit/wallet-evm
原文对照：https://npmcn.com/package/%40anywalletkit/wallet-evm/?lang=original
项目主页：https://docs.anywallet.tech/
源码仓库：https://github.com/ultratestbro/anywalletkit

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：518 kB，9 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=22
- 运行依赖：3 个
- 首次发布：2026-10-24T18:43:06.745Z
- 最新版本发布：2026-11-02T20:12:10.179Z
- 近 30 天下载量：2765（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：14（近 12 个月 14 个）

## 中文简介

任何钱包包的EVM钱包:BIP-32 m/44'/60'/0'/0/i账户,EIP-191 / EIP-712 / EIP-1559签名,ERC-20转帐和批准,以viem为基础.

## 安装

```sh
npm install @anywalletkit/wallet-evm
```

也可以使用：`pnpm add @anywalletkit/wallet-evm`、`yarn add @anywalletkit/wallet-evm`、`bun add @anywalletkit/wallet-evm`

## README

# @anywalletkit/wallet-evm (英语)

[![npm](https://img.shields.io/npm/v/@anywalletkit/wallet-evm?label=npm)](https://www.npmjs.com/package/@anywalletkit/wallet-evm)

EVM账户中的任何钱包套件,来源于 `m/44'/60'/0'/0/i` 一样 路径作为 MetaMask 和 ethers,由金向量粘住 `@anywalletkit/conformance`。 。 。 .

## 安装

```sh
npm install @anywalletkit/wallet-evm
# or: pnpm add @anywalletkit/wallet-evm  ·  yarn add @anywalletkit/wallet-evm
```

时间: [@anywalletkit/wallet-evm (英语)](https://www.npmjs.com/package/@anywalletkit/wallet-evm)发表于 [发布工作流程](https://github.com/ultratestbro/anywalletkit/blob/main/RELEASING.md) 与出处.

```ts
import WalletManagerEvm from '@anywalletkit/wallet-evm'

const wallet = new WalletManagerEvm(seedPhrase, { provider: ['https://rpc-a', 'https://rpc-b'] })
const account = await wallet.getAccount(0)
await account.transfer({ recipient: '0x…', amount: 10n ** 15n })                  // ETH
await account.transfer({ token: USDT, recipient: '0x…', amount: 1_000_000n })      // ERC-20
await account.approve({ token: USDT, spender: ROUTER, amount: 1_000_000n })
const sig = await account.signTypedData({ domain, types, message })               // EIP-712
wallet.dispose()                                                                  // zeroizes seed + keys
```

离线签名: 省略 `provider`,通过 `chainId` (或把它放在tx上)和呼叫 `signTransaction` 与每一个字段组合——没有任何东西触及网络.

## 输入信息

`getTokenInfo(address)` 从其合同中读取了ERC-20: `{ address, standard: 'erc20', decimals, symbol, name, totalSupply, flags }`。 。 。 . `bytes32` 符号(MKR)被解码;不是UTF-8的文本是 `''`。 。 。 . `flags` 持有 `upgradeable` 当地址是 EIP-1967 / EIP-1822 / 信标/齐柏林飞船 代理服务器。 无代码、EIP-7702-授权账户或无 `decimals()` (NFT,普通合同)抛出 `NotATokenError`; RPC 失败按原样投出. `@anywalletkit/tokens` 构建“ 添加 ” 标志"流动在它上.

## 安全层

每一次发送都通过,顺序是:静态拒绝 模拟 收费上限 签 广播.

-   **你签什么.** `describeTransaction(tx, {chainId})` 财务报告和审定财务报表 `describeTypedData(typed, {chainId, account})` 纯的,用于确认屏幕的离线解码器: 等 (`native-transfer`, (中文(简体) ), `erc20-transfer`, (中文(简体) ), `erc20-approve`, (中文(简体) ), `contract-call`, (中文(简体) ), `eip7702-delegation`; ; ; ; ; `permit`, (中文(简体) ), `permit2`, (中文(简体) ), `safe-tx`, (中文(简体) ), `generic`, (中文(简体) ), 已解码的字段和警告`approve-unlimited`, (中文(简体) ), `to-zero-address`, (中文(简体) ), `chain-mismatch`, (中文(简体) ), `deadline-passed`, (中文(简体) ), `owner-mismatch`, (中文(简体) ), `legacy-fee-fields`) (中文(简体) ).
-   **硬拒绝** 在任何签名之前: 为另一个链扔出 tx 或打入的数据域 `ChainMismatchError` (覆盖输入的数据与 `allowCrossChainTypedData`; 数值为零 地址掷出 `UnsafeTransactionError` (与 `allowBurn`) (中文(简体) ).
-   **模拟.** `simulateTransaction(tx)` 运行 `eth_call` + 气体估计和返回 `{ok, gas, returnData}` 或者说 `{ok: false, reason, data}` 用解码器 `Error(string)` 编号 : `Panic` 编号 : 自定义错误选择器. `sendTransaction` 编号 : `transfer` 编号 : `approve` 先模拟后抛出 `SimulationError` 而不是广播回放; `simulate: false` 选择退出。 估计气体 重新使用,所以要询问一次网络.
-   **收费上限.** `transferMaxFee` 编号 : `transactionMaxFee` 检查交易即将进行 签字的气体限制x `gasPrice` 编号 : `maxFeePerGas`,包括您设置的收费字段—— 之前 每个签名. `quoteSendTransaction` 一样的价格,所以一个包 `maxFee` 政策也看待他们.
-   **收费上限.** A 类 `gasPrice` 编号 : `maxFeePerGas` 编号 : `maxPriorityFeePerGas` 你设置自己是 被拒绝(`UnsafeTransactionError`) 当其比率高于 `maxFeeRateMultiplier` (违约10)× 网络当前引号( 以 `eth_gasPrice` 以及EIP-1559估计值)和10克/威以上. 帐单上填写的收费不检查;没有提供者,或者引文不能读取时, 无所拒绝( 使用 `transactionMaxFee` 下线签名);引用最多等待 5 s. (英语). `maxFeeRateMultiplier: null` (或 `Infinity`关闭;低于1的值投掷a `RangeError` 当账户被创建时.
-   **广播.** 丢弃的答案 `BroadcastUnknownError` 用当地计算 `hash`显示 : 别再发了 与几个RPC, `already known` 下一个交易是同一个交易 并决心要完成它. `nonce too low` 仅在下个非ce是 被另一笔交易所证明: 至少两个不同的RPC 计算账户已被布雷 过账(`latest`他们中没有一个知道被弃绝的大麻。 否则——一个RPC 配置, 或 RPC 不同意 — 发送抛出 `NonceConflictError` 联合国 `BroadcastUnknownError`数字 : `maybeSent`, (中文(简体) ), `hash`附加时 `nonce` 和节点 `nextNonce`),并且没有签署新的文件,因为RPC 被拒绝的字节仍可保留并广播签名的字节。 显示“ 网络没有确认 —— 检查 ” 活动,然后重试";账户的下个发送跳过被拒绝的非ce. `replacement transaction underpriced` 从来没有被重审.
-   **EIP-2612许可.** `getPermitInfo(token)` 读取 `name/version/nonces/DOMAIN_SEPARATOR` 财务报告和审定财务报表 报告 `supported` 只有在重建的EIP-712域名等于合同本身的情况下; `signPermit({token, spender, value, deadline})` 返回时 `{signature, v, r, s, nonce, deadline, typedData}`。 。 。 . DAI的遗产 `permit(holder, spender, nonce, expiry, allowed)` 不被支持.

```ts
const d = describeTransaction(tx, { chainId: await account.getChainId() })
if (d.warnings.some((w) => w.code === 'approve-unlimited')) ask(d)
const sim = await account.simulateTransaction(tx)
if (!sim.ok) show(sim.reason)
```

## 常见问题

### @anywalletkit/wallet-evm 是什么？

任何钱包包的EVM钱包:BIP-32 m/44'/60'/0'/0/i账户,EIP-191 / EIP-712 / EIP-1559签名,ERC-20转帐和批准,以viem为基础\.

### 如何安装 @anywalletkit/wallet-evm？

在项目目录运行 npm install @anywalletkit/wallet-evm，或使用 pnpm add / yarn add / bun add。

### @anywalletkit/wallet-evm 支持 TypeScript 吗？

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

### @anywalletkit/wallet-evm 支持 ESM 还是 CommonJS？

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

### @anywalletkit/wallet-evm 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=22。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @anywalletkit/wallet-evm 可以商用吗？

@anywalletkit/wallet-evm 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @anywalletkit/wallet-evm 的下载量有多少？

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

### @anywalletkit/wallet-evm 还在维护吗？

最新版本 0\.7\.0 发布于 2026/11/03（5 天前）；至今共发布 14 个版本，其中过去 12 个月发布了 14 个；首次发布于 2026/10/25。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

