@waiaas/adapter-evm 2.6.0-rc.9 → 2.7.0-rc

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -25,22 +25,69 @@ WAIaaS is a local daemon that sits between your AI agent and the blockchain:
25
25
 
26
26
  See [Security Model](docs/security-model.md) for full details.
27
27
 
28
+ ## Architecture
29
+
30
+ ```mermaid
31
+ graph LR
32
+ subgraph Interfaces
33
+ SDK["TypeScript SDK"]
34
+ MCP["MCP Server"]
35
+ CLI["CLI"]
36
+ Admin["Admin UI"]
37
+ Skills["Skill Files"]
38
+ WalletSDK["Wallet SDK"]
39
+ end
40
+
41
+ subgraph Daemon
42
+ API["API Layer<br>(Hono + Middleware)"]
43
+ Services["Service Layer<br>(Policy, Notifications, Kill Switch)"]
44
+ Pipeline["Transaction Pipeline<br>(6-stage + 8-state)"]
45
+ Infra["Infrastructure<br>(SQLite, Keystore, Config)"]
46
+ end
47
+
48
+ subgraph Blockchain
49
+ Solana["Solana"]
50
+ EVM["EVM Chains"]
51
+ end
52
+
53
+ SDK & MCP & CLI & Admin & Skills & WalletSDK --> API
54
+ API --> Services --> Pipeline --> Infra
55
+ Infra --> Solana & EVM
56
+ ```
57
+
58
+ **12 packages** in a monorepo:
59
+
60
+ - **@waiaas/core** — Shared types, Zod schemas, enums, and interfaces
61
+ - **@waiaas/daemon** — Self-hosted wallet daemon (Hono HTTP server)
62
+ - **@waiaas/adapter-solana** — Solana chain adapter (SPL / Token-2022)
63
+ - **@waiaas/adapter-evm** — EVM chain adapter (ERC-20 via viem)
64
+ - **@waiaas/actions** — DeFi Action Providers (Jupiter, 0x, LI.FI, Lido, Jito)
65
+ - **@waiaas/sdk** — TypeScript client library
66
+ - **@waiaas/mcp** — Model Context Protocol server for AI agents
67
+ - **@waiaas/cli** — Command-line interface
68
+ - **@waiaas/admin** — Preact-based Admin Web UI
69
+ - **@waiaas/wallet-sdk** — Wallet Signing SDK for wallet app integration
70
+ - **@waiaas/push-relay** — Push Relay Server (ntfy → push services)
71
+ - **@waiaas/skills** — Pre-built `.skill.md` instruction files for AI agents
72
+
73
+ See [Architecture](docs/architecture.md) for the full technical deep-dive.
74
+
28
75
  ## Quick Start
29
76
 
30
77
  ```bash
31
78
  npm install -g @waiaas/cli
32
79
  waiaas init # Create data directory + config.toml
33
80
  waiaas start # Start daemon (sets master password on first run)
34
- waiaas quickset --mode testnet # Create wallets + MCP sessions in one step
81
+ waiaas quickset --mode mainnet # Create wallets + MCP sessions in one step
35
82
  ```
36
83
 
37
84
  The `quickset` command does everything you need to get started:
38
85
 
39
- 1. Creates **Solana Devnet + EVM Sepolia** wallets automatically
86
+ 1. Creates **Solana Mainnet + EVM Ethereum Mainnet** wallets automatically
40
87
  2. Issues **MCP session tokens** for each wallet
41
88
  3. Outputs a **Claude Desktop MCP config** snippet -- just copy and paste
42
89
 
43
- > Starting with mainnet? Use `waiaas quickset --mode mainnet` to create Solana Mainnet + EVM Ethereum Mainnet wallets instead. Mainnet mode recommends configuring spending limits and registering an owner wallet for high-value transaction approval.
90
+ > We recommend configuring spending limits and registering an owner wallet for high-value transaction approval. For testing, use `waiaas quickset --mode testnet` to create Solana Devnet + EVM Sepolia wallets instead.
44
91
 
45
92
  ### Admin UI
46
93
 
@@ -143,6 +190,7 @@ Enabled by default (`admin_ui = true` in config.toml).
143
190
 
144
191
  | Document | Description |
145
192
  |----------|-------------|
193
+ | [Architecture](docs/architecture.md) | System overview, package structure, pipeline, chain adapters |
146
194
  | [Security Model](docs/security-model.md) | Authentication, policy engine, Kill Switch, AutoStop |
147
195
  | [Deployment Guide](docs/deployment.md) | Docker, npm, configuration reference |
148
196
  | [API Reference](docs/api-reference.md) | REST API endpoints and authentication |
@@ -14,14 +14,30 @@
14
14
  * Phase 225-02: Initial implementation.
15
15
  */
16
16
  import type { IChainSubscriber, IncomingTransaction, ChainType } from '@waiaas/core';
17
+ /** RPC alert callback type for notifying admin of RPC issues (#185). */
18
+ export type RpcAlertCallback = (alert: {
19
+ type: 'RPC_HEALTH_DEGRADED' | 'INCOMING_TX_RANGE_SKIPPED';
20
+ walletId: string;
21
+ network: string;
22
+ errorCount: number;
23
+ lastError: string;
24
+ fromBlock?: string;
25
+ toBlock?: string;
26
+ }) => void;
17
27
  export declare class EvmIncomingSubscriber implements IChainSubscriber {
18
28
  readonly chain: ChainType;
19
29
  private client;
20
30
  private subscriptions;
21
31
  private generateId;
32
+ private onRpcAlert?;
33
+ private errorCount;
34
+ private backoffUntil;
35
+ /** Track wallets that already emitted RPC_HEALTH_DEGRADED to avoid spam. */
36
+ private alertedWallets;
22
37
  constructor(config: {
23
38
  rpcUrl: string;
24
39
  generateId?: () => string;
40
+ onRpcAlert?: RpcAlertCallback;
25
41
  });
26
42
  subscribe(walletId: string, address: string, network: string, onTransaction: (tx: IncomingTransaction) => void): Promise<void>;
27
43
  unsubscribe(walletId: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"evm-incoming-subscriber.d.ts","sourceRoot":"","sources":["../src/evm-incoming-subscriber.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AASH,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAiBrF,qBAAa,qBAAsB,YAAW,gBAAgB;IAC5D,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAc;IAEvC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,aAAa,CAAsC;IAC3D,OAAO,CAAC,UAAU,CAAe;gBAErB,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,MAAM,CAAA;KAAE;IAO3D,SAAS,CACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,CAAC,EAAE,EAAE,mBAAmB,KAAK,IAAI,GAC/C,OAAO,CAAC,IAAI,CAAC;IAYV,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlD,iBAAiB,IAAI,MAAM,EAAE;IAMvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQlC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9B;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAMjC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YA0ChB,SAAS;YA8BT,aAAa;CA4C5B"}
1
+ {"version":3,"file":"evm-incoming-subscriber.d.ts","sourceRoot":"","sources":["../src/evm-incoming-subscriber.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AASH,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAuCrF,wEAAwE;AACxE,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE;IACrC,IAAI,EAAE,qBAAqB,GAAG,2BAA2B,CAAC;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,KAAK,IAAI,CAAC;AAEX,qBAAa,qBAAsB,YAAW,gBAAgB;IAC5D,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAc;IAEvC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,aAAa,CAAsC;IAC3D,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,UAAU,CAAC,CAAmB;IACtC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,YAAY,CAAK;IACzB,4EAA4E;IAC5E,OAAO,CAAC,cAAc,CAAqB;gBAE/B,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,gBAAgB,CAAA;KAAE;IAQ1F,SAAS,CACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,CAAC,EAAE,EAAE,mBAAmB,KAAK,IAAI,GAC/C,OAAO,CAAC,IAAI,CAAC;IAcV,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlD,iBAAiB,IAAI,MAAM,EAAE;IAMvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQlC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9B;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAMjC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAgIhB,SAAS;YA8BT,aAAa;CA4C5B"}
@@ -18,14 +18,36 @@ import { createPublicClient, http, parseAbiItem, } from 'viem';
18
18
  const TRANSFER_EVENT = parseAbiItem('event Transfer(address indexed from, address indexed to, uint256 value)');
19
19
  /** Maximum blocks per poll cycle (pitfall 4: RPC provider limits). */
20
20
  const MAX_BLOCK_RANGE = 10n;
21
+ /**
22
+ * L2 network prefixes where getBlock(includeTransactions:true) causes timeouts
23
+ * due to high TX density (500-2000+ TXs/block → 200KB-1MB+ responses).
24
+ * On these chains, only ERC-20 detection (getLogs) is used (#172).
25
+ */
26
+ const L2_NETWORK_PREFIXES = ['arbitrum', 'optimism', 'base'];
27
+ /** Base backoff in ms after first RPC error. */
28
+ const BACKOFF_BASE_MS = 30_000;
29
+ /** Maximum backoff in ms (cap). */
30
+ const BACKOFF_MAX_MS = 300_000;
31
+ /** Consecutive errors before escalating log level to warn. */
32
+ const WARN_THRESHOLD = 3;
33
+ /** Maximum same-range retries before forcing cursor advancement. */
34
+ const MAX_RETRY_SAME_RANGE = 3;
35
+ /** Consecutive errors before emitting RPC health degraded alert (#185). */
36
+ const RPC_ALERT_THRESHOLD = 5;
21
37
  export class EvmIncomingSubscriber {
22
38
  chain = 'ethereum';
23
39
  client;
24
40
  subscriptions = new Map();
25
41
  generateId;
42
+ onRpcAlert;
43
+ errorCount = 0;
44
+ backoffUntil = 0;
45
+ /** Track wallets that already emitted RPC_HEALTH_DEGRADED to avoid spam. */
46
+ alertedWallets = new Set();
26
47
  constructor(config) {
27
48
  this.client = createPublicClient({ transport: http(config.rpcUrl) });
28
49
  this.generateId = config.generateId ?? (() => crypto.randomUUID());
50
+ this.onRpcAlert = config.onRpcAlert;
29
51
  }
30
52
  // -- Subscription management (2) --
31
53
  async subscribe(walletId, address, network, onTransaction) {
@@ -37,6 +59,8 @@ export class EvmIncomingSubscriber {
37
59
  network,
38
60
  onTransaction,
39
61
  lastBlock: currentBlock,
62
+ errorCount: 0,
63
+ backoffUntil: 0,
40
64
  });
41
65
  }
42
66
  async unsubscribe(walletId) {
@@ -70,24 +94,92 @@ export class EvmIncomingSubscriber {
70
94
  }
71
95
  // -- Polling (called by BackgroundWorkers in Phase 226) --
72
96
  async pollAll() {
73
- const currentBlock = await this.client.getBlockNumber();
74
- for (const [walletId, sub] of this.subscriptions) {
75
- try {
76
- if (sub.lastBlock >= currentBlock)
77
- continue; // no new blocks
78
- const toBlock = sub.lastBlock + MAX_BLOCK_RANGE < currentBlock
79
- ? sub.lastBlock + MAX_BLOCK_RANGE
80
- : currentBlock;
81
- const erc20Txs = await this.pollERC20(sub.address, sub.lastBlock + 1n, toBlock, walletId, sub.network);
82
- const nativeTxs = await this.pollNativeETH(sub.address, sub.lastBlock + 1n, toBlock, walletId, sub.network);
83
- const allTxs = [...erc20Txs, ...nativeTxs];
84
- for (const tx of allTxs) {
85
- sub.onTransaction(tx);
97
+ // Backoff: skip polling if still within backoff window
98
+ if (Date.now() < this.backoffUntil)
99
+ return;
100
+ let hadError = false;
101
+ try {
102
+ const currentBlock = await this.client.getBlockNumber();
103
+ for (const [walletId, sub] of this.subscriptions) {
104
+ // Per-wallet backoff: skip if still within cooldown window
105
+ if (Date.now() < sub.backoffUntil)
106
+ continue;
107
+ try {
108
+ if (sub.lastBlock >= currentBlock)
109
+ continue; // no new blocks
110
+ const toBlock = sub.lastBlock + MAX_BLOCK_RANGE < currentBlock
111
+ ? sub.lastBlock + MAX_BLOCK_RANGE
112
+ : currentBlock;
113
+ const erc20Txs = await this.pollERC20(sub.address, sub.lastBlock + 1n, toBlock, walletId, sub.network);
114
+ // Skip native ETH polling on L2 chains to avoid getBlock timeout (#172)
115
+ const isL2 = L2_NETWORK_PREFIXES.some((p) => sub.network.startsWith(p));
116
+ const nativeTxs = isL2
117
+ ? []
118
+ : await this.pollNativeETH(sub.address, sub.lastBlock + 1n, toBlock, walletId, sub.network);
119
+ const allTxs = [...erc20Txs, ...nativeTxs];
120
+ for (const tx of allTxs) {
121
+ sub.onTransaction(tx);
122
+ }
123
+ sub.lastBlock = toBlock;
124
+ sub.errorCount = 0;
125
+ sub.backoffUntil = 0;
126
+ this.alertedWallets.delete(walletId);
86
127
  }
87
- sub.lastBlock = toBlock;
128
+ catch (err) {
129
+ hadError = true;
130
+ sub.errorCount++;
131
+ const errMsg = err instanceof Error ? err.message : String(err);
132
+ // Force cursor advancement after N consecutive failures to escape infinite retry
133
+ if (sub.errorCount >= MAX_RETRY_SAME_RANGE) {
134
+ const fromBlock = sub.lastBlock + 1n;
135
+ const toBlock = sub.lastBlock + MAX_BLOCK_RANGE < currentBlock
136
+ ? sub.lastBlock + MAX_BLOCK_RANGE
137
+ : currentBlock;
138
+ sub.lastBlock = toBlock;
139
+ // Emit INCOMING_TX_RANGE_SKIPPED alert (#185)
140
+ this.onRpcAlert?.({
141
+ type: 'INCOMING_TX_RANGE_SKIPPED',
142
+ walletId,
143
+ network: sub.network,
144
+ errorCount: sub.errorCount,
145
+ lastError: errMsg,
146
+ fromBlock: String(fromBlock),
147
+ toBlock: String(toBlock),
148
+ });
149
+ }
150
+ // Per-wallet exponential backoff
151
+ const backoffMs = Math.min(BACKOFF_BASE_MS * 2 ** (sub.errorCount - 1), BACKOFF_MAX_MS);
152
+ sub.backoffUntil = Date.now() + backoffMs;
153
+ // Emit RPC_HEALTH_DEGRADED alert once per wallet (#185)
154
+ if (sub.errorCount === RPC_ALERT_THRESHOLD && !this.alertedWallets.has(walletId)) {
155
+ this.alertedWallets.add(walletId);
156
+ this.onRpcAlert?.({
157
+ type: 'RPC_HEALTH_DEGRADED',
158
+ walletId,
159
+ network: sub.network,
160
+ errorCount: sub.errorCount,
161
+ lastError: errMsg,
162
+ });
163
+ }
164
+ // Log only after WARN_THRESHOLD, message-only (no full stack trace)
165
+ if (sub.errorCount >= WARN_THRESHOLD) {
166
+ console.warn(`EVM poll failed for wallet ${walletId} (backoff ${backoffMs / 1000}s, consecutive: ${sub.errorCount}): ${errMsg}`);
167
+ }
168
+ }
169
+ }
170
+ // Full cycle completed without RPC-level failure → reset backoff
171
+ if (!hadError) {
172
+ this.errorCount = 0;
173
+ this.backoffUntil = 0;
88
174
  }
89
- catch (err) {
90
- console.warn(`EVM poll failed for wallet ${walletId}:`, err);
175
+ }
176
+ catch (err) {
177
+ // RPC-level error (e.g. getBlockNumber failed — 429/500): apply backoff
178
+ this.errorCount++;
179
+ const backoffMs = Math.min(BACKOFF_BASE_MS * 2 ** (this.errorCount - 1), BACKOFF_MAX_MS);
180
+ this.backoffUntil = Date.now() + backoffMs;
181
+ if (this.errorCount >= WARN_THRESHOLD) {
182
+ console.warn(`EVM poll RPC error (backoff ${backoffMs / 1000}s, consecutive: ${this.errorCount}):`, err);
91
183
  }
92
184
  }
93
185
  }
@@ -1 +1 @@
1
- {"version":3,"file":"evm-incoming-subscriber.js","sourceRoot":"","sources":["../src/evm-incoming-subscriber.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evm-incoming-subscriber.js","sourceRoot":"","sources":["../src/evm-incoming-subscriber.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@waiaas/adapter-evm",
3
- "version": "2.6.0-rc.9",
3
+ "version": "2.7.0-rc",
4
4
  "description": "WAIaaS EVM chain adapter - Ethereum/ERC-20 support via viem",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -29,7 +29,7 @@
29
29
  ],
30
30
  "dependencies": {
31
31
  "viem": "^2.21.0",
32
- "@waiaas/core": "2.6.0-rc.9"
32
+ "@waiaas/core": "2.7.0-rc"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@types/node": "^25.2.3"