@waiaas/adapter-solana 2.12.0-rc.7 → 2.12.0
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 +3 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/solana-incoming-subscriber.d.ts +60 -4
- package/dist/solana-incoming-subscriber.d.ts.map +1 -1
- package/dist/solana-incoming-subscriber.js +196 -7
- package/dist/solana-incoming-subscriber.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
[](LICENSE)
|
|
7
7
|
[](https://nodejs.org/)
|
|
8
8
|
[](#)
|
|
9
|
+
[](https://glama.ai/mcp/servers/minhoyoo-iotrust/WAIaaS)
|
|
9
10
|
|
|
10
11
|
A self-hosted wallet daemon that lets AI agents perform on-chain transactions securely -- while the owner keeps full control of funds.
|
|
11
12
|
|
|
@@ -68,7 +69,7 @@ graph LR
|
|
|
68
69
|
- **@waiaas/cli** — Command-line interface
|
|
69
70
|
- **@waiaas/admin** — Preact-based Admin Web UI
|
|
70
71
|
- **@waiaas/wallet-sdk** — Wallet Signing SDK for wallet app integration
|
|
71
|
-
- **@waiaas/push-relay** — Push Relay Server (
|
|
72
|
+
- **@waiaas/push-relay** — Push Relay Server (daemon → Pushwoosh/FCM native push)
|
|
72
73
|
- **@waiaas/skills** — Pre-built `.skill.md` instruction files for AI agents
|
|
73
74
|
|
|
74
75
|
See [Architecture](docs/architecture.md) for the full technical deep-dive.
|
|
@@ -178,7 +179,7 @@ Access the admin panel at `http://127.0.0.1:3100/admin` with your master passwor
|
|
|
178
179
|
- **Wallets** -- Create, manage, and monitor wallets across chains; RPC endpoints, balance monitoring, and WalletConnect settings
|
|
179
180
|
- **Sessions** -- Issue and revoke agent session tokens; session lifetime and rate limit settings
|
|
180
181
|
- **Policies** -- Configure 12 policy types with visual form editors; default deny and tier settings
|
|
181
|
-
- **Notifications** -- Channel status and delivery logs; Telegram, Discord,
|
|
182
|
+
- **Notifications** -- Channel status and delivery logs; Telegram, Discord, and Slack settings
|
|
182
183
|
- **Security** -- Kill Switch emergency controls, AutoStop protection rules, JWT rotation
|
|
183
184
|
- **System** -- API keys, display currency, price oracle, rate limits, log level, and daemon shutdown
|
|
184
185
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { SolanaAdapter } from './adapter.js';
|
|
2
2
|
export { SolanaIncomingSubscriber, SolanaHeartbeat } from './solana-incoming-subscriber.js';
|
|
3
3
|
export { parseSOLTransfer, parseSPLTransfers } from './incoming-tx-parser.js';
|
|
4
|
-
export type { SolanaIncomingSubscriberConfig } from './solana-incoming-subscriber.js';
|
|
4
|
+
export type { SolanaIncomingSubscriberConfig, SolanaMonitorMode } from './solana-incoming-subscriber.js';
|
|
5
5
|
export type { SolanaTransactionResult } from './incoming-tx-parser.js';
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,YAAY,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,YAAY,EAAE,8BAA8B,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACzG,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Detects incoming SOL, SPL, and Token-2022 transfers via:
|
|
5
5
|
* - WebSocket: logsSubscribe({ mentions: [address] }) with getTransaction follow-up
|
|
6
6
|
* - HTTP polling: getSignaturesForAddress + getTransaction (fallback / BackgroundWorkers)
|
|
7
|
+
* - Adaptive: starts with WS, auto-falls back to polling on repeated 429 (#454)
|
|
7
8
|
*
|
|
8
9
|
* SolanaHeartbeat sends getSlot() RPC ping every 60s to prevent provider inactivity timeout.
|
|
9
10
|
*
|
|
@@ -11,12 +12,21 @@
|
|
|
11
12
|
* Design doc 76 sections 3.1-3.7 (Solana subscriber), 5.3 (heartbeat)
|
|
12
13
|
* IChainSubscriber 6-method interface from @waiaas/core
|
|
13
14
|
*/
|
|
14
|
-
import type { IChainSubscriber, ChainType, IncomingTransaction } from '@waiaas/core';
|
|
15
|
+
import type { IChainSubscriber, ChainType, IncomingTransaction, ILogger } from '@waiaas/core';
|
|
16
|
+
export type SolanaMonitorMode = 'websocket' | 'polling' | 'adaptive';
|
|
15
17
|
export interface SolanaIncomingSubscriberConfig {
|
|
16
18
|
rpcUrl: string;
|
|
17
19
|
wsUrl: string;
|
|
18
|
-
mode?:
|
|
20
|
+
mode?: SolanaMonitorMode;
|
|
19
21
|
generateId?: () => string;
|
|
22
|
+
/** Optional logger; when absent, rate-limit warnings are silently swallowed. */
|
|
23
|
+
logger?: ILogger;
|
|
24
|
+
/** Stagger delay (ms) between per-wallet WS subscriptions in connect(). Default: 300 */
|
|
25
|
+
staggerDelayMs?: number;
|
|
26
|
+
/** Consecutive 429 count before adaptive mode switches to polling. Default: 5 */
|
|
27
|
+
adaptiveThreshold?: number;
|
|
28
|
+
/** Interval (ms) between WS recovery attempts while in adaptive-polling. Default: 300_000 (5 min) */
|
|
29
|
+
wsRecoveryIntervalMs?: number;
|
|
20
30
|
}
|
|
21
31
|
/**
|
|
22
32
|
* Sends periodic getSlot() RPC pings to prevent WebSocket inactivity timeout.
|
|
@@ -41,18 +51,39 @@ export declare class SolanaHeartbeat {
|
|
|
41
51
|
*
|
|
42
52
|
* Manages per-wallet WebSocket subscriptions via logsNotifications({ mentions: [addr] })
|
|
43
53
|
* and provides a pollAll() method for HTTP-based fallback polling.
|
|
54
|
+
*
|
|
55
|
+
* Adaptive mode (#454): starts with WS, counts consecutive 429 errors, and
|
|
56
|
+
* automatically falls back to polling when the threshold is exceeded.
|
|
57
|
+
* Periodically re-attempts WS to restore real-time monitoring.
|
|
44
58
|
*/
|
|
45
59
|
export declare class SolanaIncomingSubscriber implements IChainSubscriber {
|
|
46
60
|
readonly chain: ChainType;
|
|
47
|
-
private readonly
|
|
61
|
+
private readonly configMode;
|
|
48
62
|
private readonly generateId;
|
|
49
63
|
private readonly rpc;
|
|
50
|
-
private
|
|
64
|
+
private rpcSubscriptions;
|
|
65
|
+
private readonly wsUrl;
|
|
51
66
|
private readonly heartbeat;
|
|
52
67
|
private readonly subscriptions;
|
|
68
|
+
private readonly logger?;
|
|
69
|
+
private readonly staggerDelayMs;
|
|
70
|
+
private readonly adaptiveThreshold;
|
|
71
|
+
private readonly wsRecoveryIntervalMs;
|
|
53
72
|
private connected;
|
|
54
73
|
private disconnectResolve;
|
|
74
|
+
/** Consecutive 429 error counter for adaptive mode */
|
|
75
|
+
private consecutive429Count;
|
|
76
|
+
/** Whether adaptive mode has switched to polling */
|
|
77
|
+
private adaptivePollingActive;
|
|
78
|
+
/** Timer for periodic WS recovery attempts */
|
|
79
|
+
private wsRecoveryTimer;
|
|
80
|
+
/** Whether a 429 rate-limit warning has been logged (log once) */
|
|
81
|
+
private rateLimitWarned;
|
|
82
|
+
/** Original process.stderr.write saved for restoration on destroy() */
|
|
83
|
+
private origStderrWrite;
|
|
55
84
|
constructor(config: SolanaIncomingSubscriberConfig);
|
|
85
|
+
/** Current effective mode considering adaptive fallback */
|
|
86
|
+
get effectiveMode(): 'websocket' | 'polling';
|
|
56
87
|
subscribe(walletId: string, addr: string, network: string, onTransaction: (tx: IncomingTransaction) => void): Promise<void>;
|
|
57
88
|
unsubscribe(walletId: string): Promise<void>;
|
|
58
89
|
subscribedWallets(): string[];
|
|
@@ -71,6 +102,15 @@ export declare class SolanaIncomingSubscriber implements IChainSubscriber {
|
|
|
71
102
|
* Per-wallet errors are isolated (logged and skipped).
|
|
72
103
|
*/
|
|
73
104
|
pollAll(): Promise<void>;
|
|
105
|
+
/**
|
|
106
|
+
* Record a 429 rate-limit error. If consecutive count exceeds threshold
|
|
107
|
+
* in adaptive mode, switch to polling and start WS recovery timer.
|
|
108
|
+
*/
|
|
109
|
+
record429(): void;
|
|
110
|
+
/** Reset 429 counter (called on successful WS connection) */
|
|
111
|
+
reset429(): void;
|
|
112
|
+
/** Runtime mode switch for Admin Settings hot-reload (C-5) */
|
|
113
|
+
setMode(mode: SolanaMonitorMode): void;
|
|
74
114
|
/**
|
|
75
115
|
* Poll a single wallet for recent incoming transfers.
|
|
76
116
|
*/
|
|
@@ -79,6 +119,22 @@ export declare class SolanaIncomingSubscriber implements IChainSubscriber {
|
|
|
79
119
|
* Start a fire-and-forget WebSocket subscription for a wallet.
|
|
80
120
|
*/
|
|
81
121
|
private startWebSocketSubscription;
|
|
122
|
+
/**
|
|
123
|
+
* Start periodic WS recovery timer (adaptive mode).
|
|
124
|
+
* Attempts to re-create rpcSubscriptions and switch back to WS.
|
|
125
|
+
*/
|
|
126
|
+
private startWsRecoveryTimer;
|
|
127
|
+
private stopWsRecoveryTimer;
|
|
128
|
+
/**
|
|
129
|
+
* C-3: Install a global stderr filter that intercepts `ws` library direct output (#454).
|
|
130
|
+
* The `ws` npm package writes "ws error: Unexpected server response: 429" to stderr
|
|
131
|
+
* during WebSocket handshake failures via console.error in its internal event handler.
|
|
132
|
+
* This bypasses all Node.js error handling including try/catch.
|
|
133
|
+
* The filter swallows these lines and routes 429s through record429() instead.
|
|
134
|
+
*/
|
|
135
|
+
private installStderrFilter;
|
|
136
|
+
/** Restore original stderr.write on cleanup. */
|
|
137
|
+
private restoreStderrFilter;
|
|
82
138
|
/**
|
|
83
139
|
* Process a transaction result: parse SOL and SPL transfers and call onTransaction.
|
|
84
140
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solana-incoming-subscriber.d.ts","sourceRoot":"","sources":["../src/solana-incoming-subscriber.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"solana-incoming-subscriber.d.ts","sourceRoot":"","sources":["../src/solana-incoming-subscriber.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Detects incoming SOL, SPL, and Token-2022 transfers via:
|
|
5
5
|
* - WebSocket: logsSubscribe({ mentions: [address] }) with getTransaction follow-up
|
|
6
6
|
* - HTTP polling: getSignaturesForAddress + getTransaction (fallback / BackgroundWorkers)
|
|
7
|
+
* - Adaptive: starts with WS, auto-falls back to polling on repeated 429 (#454)
|
|
7
8
|
*
|
|
8
9
|
* SolanaHeartbeat sends getSlot() RPC ping every 60s to prevent provider inactivity timeout.
|
|
9
10
|
*
|
|
@@ -54,22 +55,59 @@ export class SolanaHeartbeat {
|
|
|
54
55
|
*
|
|
55
56
|
* Manages per-wallet WebSocket subscriptions via logsNotifications({ mentions: [addr] })
|
|
56
57
|
* and provides a pollAll() method for HTTP-based fallback polling.
|
|
58
|
+
*
|
|
59
|
+
* Adaptive mode (#454): starts with WS, counts consecutive 429 errors, and
|
|
60
|
+
* automatically falls back to polling when the threshold is exceeded.
|
|
61
|
+
* Periodically re-attempts WS to restore real-time monitoring.
|
|
57
62
|
*/
|
|
58
63
|
export class SolanaIncomingSubscriber {
|
|
59
64
|
chain = 'solana';
|
|
60
|
-
|
|
65
|
+
configMode;
|
|
61
66
|
generateId;
|
|
62
67
|
rpc;
|
|
63
68
|
rpcSubscriptions;
|
|
69
|
+
wsUrl;
|
|
64
70
|
heartbeat = new SolanaHeartbeat();
|
|
65
71
|
subscriptions = new Map();
|
|
72
|
+
logger;
|
|
73
|
+
staggerDelayMs;
|
|
74
|
+
adaptiveThreshold;
|
|
75
|
+
wsRecoveryIntervalMs;
|
|
66
76
|
connected = false;
|
|
67
77
|
disconnectResolve = null;
|
|
78
|
+
/** Consecutive 429 error counter for adaptive mode */
|
|
79
|
+
consecutive429Count = 0;
|
|
80
|
+
/** Whether adaptive mode has switched to polling */
|
|
81
|
+
adaptivePollingActive = false;
|
|
82
|
+
/** Timer for periodic WS recovery attempts */
|
|
83
|
+
wsRecoveryTimer = null;
|
|
84
|
+
/** Whether a 429 rate-limit warning has been logged (log once) */
|
|
85
|
+
rateLimitWarned = false;
|
|
86
|
+
/** Original process.stderr.write saved for restoration on destroy() */
|
|
87
|
+
origStderrWrite = null;
|
|
68
88
|
constructor(config) {
|
|
69
|
-
this.
|
|
89
|
+
this.configMode = config.mode ?? 'adaptive';
|
|
70
90
|
this.generateId = config.generateId ?? (() => crypto.randomUUID());
|
|
71
91
|
this.rpc = createSolanaRpc(config.rpcUrl);
|
|
92
|
+
this.wsUrl = config.wsUrl;
|
|
72
93
|
this.rpcSubscriptions = createSolanaRpcSubscriptions(config.wsUrl);
|
|
94
|
+
this.logger = config.logger;
|
|
95
|
+
this.staggerDelayMs = config.staggerDelayMs ?? 300;
|
|
96
|
+
this.adaptiveThreshold = config.adaptiveThreshold ?? 5;
|
|
97
|
+
this.wsRecoveryIntervalMs = config.wsRecoveryIntervalMs ?? 300_000;
|
|
98
|
+
// C-3: Install global stderr filter to suppress `ws` library's direct stderr output (#454).
|
|
99
|
+
// `ws` npm package writes "ws error: Unexpected server response: 429" directly to stderr
|
|
100
|
+
// during WebSocket handshake failures, bypassing all Node.js error handling.
|
|
101
|
+
// This filter intercepts those lines and routes them through record429() instead.
|
|
102
|
+
this.installStderrFilter();
|
|
103
|
+
}
|
|
104
|
+
/** Current effective mode considering adaptive fallback */
|
|
105
|
+
get effectiveMode() {
|
|
106
|
+
if (this.configMode === 'polling')
|
|
107
|
+
return 'polling';
|
|
108
|
+
if (this.configMode === 'adaptive' && this.adaptivePollingActive)
|
|
109
|
+
return 'polling';
|
|
110
|
+
return 'websocket';
|
|
73
111
|
}
|
|
74
112
|
// -- Subscription management (2) --
|
|
75
113
|
async subscribe(walletId, addr, network, onTransaction) {
|
|
@@ -83,7 +121,7 @@ export class SolanaIncomingSubscriber {
|
|
|
83
121
|
abortController,
|
|
84
122
|
onTransaction,
|
|
85
123
|
});
|
|
86
|
-
if (this.
|
|
124
|
+
if (this.effectiveMode === 'websocket' && this.connected) {
|
|
87
125
|
this.startWebSocketSubscription(walletId, addr, network, onTransaction, abortController);
|
|
88
126
|
}
|
|
89
127
|
}
|
|
@@ -104,9 +142,15 @@ export class SolanaIncomingSubscriber {
|
|
|
104
142
|
// Start heartbeat: getSlot() HTTP RPC ping every 60s
|
|
105
143
|
this.heartbeat.start(() => this.rpc.getSlot().send());
|
|
106
144
|
// Start WebSocket subscriptions for all existing wallets
|
|
107
|
-
if (this.
|
|
108
|
-
|
|
109
|
-
|
|
145
|
+
if (this.effectiveMode === 'websocket') {
|
|
146
|
+
const entries = Array.from(this.subscriptions.entries());
|
|
147
|
+
for (let i = 0; i < entries.length; i++) {
|
|
148
|
+
const entry = entries[i];
|
|
149
|
+
// C-1: Stagger subscriptions to avoid concurrent WS handshakes (#454)
|
|
150
|
+
if (i > 0 && this.staggerDelayMs > 0) {
|
|
151
|
+
await sleep(this.staggerDelayMs);
|
|
152
|
+
}
|
|
153
|
+
this.startWebSocketSubscription(entry[0], entry[1].address, entry[1].network, entry[1].onTransaction, entry[1].abortController);
|
|
110
154
|
}
|
|
111
155
|
}
|
|
112
156
|
}
|
|
@@ -117,6 +161,8 @@ export class SolanaIncomingSubscriber {
|
|
|
117
161
|
}
|
|
118
162
|
async destroy() {
|
|
119
163
|
this.heartbeat.stop();
|
|
164
|
+
this.stopWsRecoveryTimer();
|
|
165
|
+
this.restoreStderrFilter();
|
|
120
166
|
// Abort all subscription AbortControllers
|
|
121
167
|
for (const sub of this.subscriptions.values()) {
|
|
122
168
|
sub.abortController.abort();
|
|
@@ -162,6 +208,45 @@ export class SolanaIncomingSubscriber {
|
|
|
162
208
|
}
|
|
163
209
|
}
|
|
164
210
|
}
|
|
211
|
+
// -- Adaptive mode (#454) --
|
|
212
|
+
/**
|
|
213
|
+
* Record a 429 rate-limit error. If consecutive count exceeds threshold
|
|
214
|
+
* in adaptive mode, switch to polling and start WS recovery timer.
|
|
215
|
+
*/
|
|
216
|
+
record429() {
|
|
217
|
+
this.consecutive429Count++;
|
|
218
|
+
// C-3: Log rate limit warning once via ILogger (not stderr)
|
|
219
|
+
if (!this.rateLimitWarned && this.logger) {
|
|
220
|
+
this.logger.warn('Solana RPC WebSocket rate limited (429). Tracking consecutive failures.');
|
|
221
|
+
this.rateLimitWarned = true;
|
|
222
|
+
}
|
|
223
|
+
if (this.configMode === 'adaptive' &&
|
|
224
|
+
!this.adaptivePollingActive &&
|
|
225
|
+
this.consecutive429Count >= this.adaptiveThreshold) {
|
|
226
|
+
this.adaptivePollingActive = true;
|
|
227
|
+
this.logger?.warn(`Solana adaptive mode: switched to polling after ${this.consecutive429Count} consecutive 429 errors. ` +
|
|
228
|
+
`Will attempt WS recovery every ${this.wsRecoveryIntervalMs / 1000}s.`);
|
|
229
|
+
this.startWsRecoveryTimer();
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
/** Reset 429 counter (called on successful WS connection) */
|
|
233
|
+
reset429() {
|
|
234
|
+
this.consecutive429Count = 0;
|
|
235
|
+
this.rateLimitWarned = false;
|
|
236
|
+
}
|
|
237
|
+
/** Runtime mode switch for Admin Settings hot-reload (C-5) */
|
|
238
|
+
setMode(mode) {
|
|
239
|
+
const oldMode = this.configMode;
|
|
240
|
+
this.configMode = mode;
|
|
241
|
+
if (mode !== oldMode) {
|
|
242
|
+
// Reset adaptive state on explicit mode change
|
|
243
|
+
this.adaptivePollingActive = false;
|
|
244
|
+
this.consecutive429Count = 0;
|
|
245
|
+
this.rateLimitWarned = false;
|
|
246
|
+
this.stopWsRecoveryTimer();
|
|
247
|
+
this.logger?.info(`Solana monitor mode changed: ${oldMode} → ${mode}`);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
165
250
|
// -- Private methods --
|
|
166
251
|
/**
|
|
167
252
|
* Poll a single wallet for recent incoming transfers.
|
|
@@ -203,6 +288,8 @@ export class SolanaIncomingSubscriber {
|
|
|
203
288
|
const logNotifications = await this.rpcSubscriptions
|
|
204
289
|
.logsNotifications({ mentions: [address(addr)] }, { commitment: 'confirmed' })
|
|
205
290
|
.subscribe({ abortSignal: abortController.signal });
|
|
291
|
+
// Successful subscription: reset 429 counter
|
|
292
|
+
this.reset429();
|
|
206
293
|
for await (const notification of logNotifications) {
|
|
207
294
|
const { signature, err } = notification.value;
|
|
208
295
|
if (err !== null)
|
|
@@ -231,15 +318,113 @@ export class SolanaIncomingSubscriber {
|
|
|
231
318
|
}
|
|
232
319
|
}
|
|
233
320
|
}
|
|
234
|
-
catch (
|
|
321
|
+
catch (error) {
|
|
235
322
|
// If abort was requested, silently exit
|
|
236
323
|
if (abortController.signal.aborted)
|
|
237
324
|
return;
|
|
325
|
+
// C-2: Detect 429 rate-limit errors for adaptive mode (#454)
|
|
326
|
+
const errMsg = error instanceof Error ? error.message : String(error);
|
|
327
|
+
if (errMsg.includes('429')) {
|
|
328
|
+
this.record429();
|
|
329
|
+
}
|
|
238
330
|
// Otherwise, signal disconnection
|
|
239
331
|
this.disconnectResolve?.();
|
|
240
332
|
}
|
|
241
333
|
})();
|
|
242
334
|
}
|
|
335
|
+
/**
|
|
336
|
+
* Start periodic WS recovery timer (adaptive mode).
|
|
337
|
+
* Attempts to re-create rpcSubscriptions and switch back to WS.
|
|
338
|
+
*/
|
|
339
|
+
startWsRecoveryTimer() {
|
|
340
|
+
this.stopWsRecoveryTimer();
|
|
341
|
+
this.wsRecoveryTimer = setInterval(async () => {
|
|
342
|
+
if (!this.adaptivePollingActive || !this.connected)
|
|
343
|
+
return;
|
|
344
|
+
this.logger?.info('Solana adaptive mode: attempting WS recovery...');
|
|
345
|
+
try {
|
|
346
|
+
// Create fresh subscriptions transport
|
|
347
|
+
this.rpcSubscriptions = createSolanaRpcSubscriptions(this.wsUrl);
|
|
348
|
+
// Test with a single probe subscription (first wallet)
|
|
349
|
+
const firstEntry = this.subscriptions.entries().next();
|
|
350
|
+
if (firstEntry.done)
|
|
351
|
+
return;
|
|
352
|
+
const [, sub] = firstEntry.value;
|
|
353
|
+
const probeAbort = new AbortController();
|
|
354
|
+
const timeout = setTimeout(() => probeAbort.abort(), 10_000);
|
|
355
|
+
try {
|
|
356
|
+
await this.rpcSubscriptions
|
|
357
|
+
.logsNotifications({ mentions: [address(sub.address)] }, { commitment: 'confirmed' })
|
|
358
|
+
.subscribe({ abortSignal: probeAbort.signal });
|
|
359
|
+
// Probe succeeded -- switch back to WS mode
|
|
360
|
+
clearTimeout(timeout);
|
|
361
|
+
probeAbort.abort(); // Clean up probe subscription
|
|
362
|
+
this.adaptivePollingActive = false;
|
|
363
|
+
this.reset429();
|
|
364
|
+
this.stopWsRecoveryTimer();
|
|
365
|
+
this.logger?.info('Solana adaptive mode: WS recovered. Switching back to WebSocket mode.');
|
|
366
|
+
// Re-connect all wallet WS subscriptions with stagger
|
|
367
|
+
const entries = Array.from(this.subscriptions.entries());
|
|
368
|
+
for (let i = 0; i < entries.length; i++) {
|
|
369
|
+
const e = entries[i];
|
|
370
|
+
if (i > 0 && this.staggerDelayMs > 0) {
|
|
371
|
+
await sleep(this.staggerDelayMs);
|
|
372
|
+
}
|
|
373
|
+
// Create fresh abort controller for new subscription
|
|
374
|
+
const newAbort = new AbortController();
|
|
375
|
+
e[1].abortController = newAbort;
|
|
376
|
+
this.startWebSocketSubscription(e[0], e[1].address, e[1].network, e[1].onTransaction, newAbort);
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
catch {
|
|
380
|
+
clearTimeout(timeout);
|
|
381
|
+
probeAbort.abort();
|
|
382
|
+
this.record429();
|
|
383
|
+
this.logger?.info('Solana adaptive mode: WS recovery failed. Staying in polling mode.');
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
catch {
|
|
387
|
+
this.logger?.info('Solana adaptive mode: WS recovery failed (transport error). Staying in polling mode.');
|
|
388
|
+
}
|
|
389
|
+
}, this.wsRecoveryIntervalMs);
|
|
390
|
+
this.wsRecoveryTimer.unref();
|
|
391
|
+
}
|
|
392
|
+
stopWsRecoveryTimer() {
|
|
393
|
+
if (this.wsRecoveryTimer) {
|
|
394
|
+
clearInterval(this.wsRecoveryTimer);
|
|
395
|
+
this.wsRecoveryTimer = null;
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
/**
|
|
399
|
+
* C-3: Install a global stderr filter that intercepts `ws` library direct output (#454).
|
|
400
|
+
* The `ws` npm package writes "ws error: Unexpected server response: 429" to stderr
|
|
401
|
+
* during WebSocket handshake failures via console.error in its internal event handler.
|
|
402
|
+
* This bypasses all Node.js error handling including try/catch.
|
|
403
|
+
* The filter swallows these lines and routes 429s through record429() instead.
|
|
404
|
+
*/
|
|
405
|
+
installStderrFilter() {
|
|
406
|
+
if (this.origStderrWrite)
|
|
407
|
+
return; // already installed
|
|
408
|
+
this.origStderrWrite = process.stderr.write;
|
|
409
|
+
const record = this.record429.bind(this);
|
|
410
|
+
const orig = this.origStderrWrite;
|
|
411
|
+
process.stderr.write = ((chunk, ...args) => {
|
|
412
|
+
if (typeof chunk === 'string' && chunk.includes('ws error:')) {
|
|
413
|
+
if (chunk.includes('429')) {
|
|
414
|
+
record();
|
|
415
|
+
}
|
|
416
|
+
return true; // swallow
|
|
417
|
+
}
|
|
418
|
+
return orig.call(process.stderr, chunk, ...args);
|
|
419
|
+
});
|
|
420
|
+
}
|
|
421
|
+
/** Restore original stderr.write on cleanup. */
|
|
422
|
+
restoreStderrFilter() {
|
|
423
|
+
if (this.origStderrWrite) {
|
|
424
|
+
process.stderr.write = this.origStderrWrite;
|
|
425
|
+
this.origStderrWrite = null;
|
|
426
|
+
}
|
|
427
|
+
}
|
|
243
428
|
/**
|
|
244
429
|
* Process a transaction result: parse SOL and SPL transfers and call onTransaction.
|
|
245
430
|
*/
|
|
@@ -268,4 +453,8 @@ export class SolanaIncomingSubscriber {
|
|
|
268
453
|
return undefined;
|
|
269
454
|
}
|
|
270
455
|
}
|
|
456
|
+
// ─── Helpers ────────────────────────────────────────────────────
|
|
457
|
+
function sleep(ms) {
|
|
458
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
459
|
+
}
|
|
271
460
|
//# sourceMappingURL=solana-incoming-subscriber.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solana-incoming-subscriber.js","sourceRoot":"","sources":["../src/solana-incoming-subscriber.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"solana-incoming-subscriber.js","sourceRoot":"","sources":["../src/solana-incoming-subscriber.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@waiaas/adapter-solana",
|
|
3
|
-
"version": "2.12.0
|
|
3
|
+
"version": "2.12.0",
|
|
4
4
|
"description": "WAIaaS Solana chain adapter - SPL/Token-2022 support",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"@solana-program/system": "^0.11.0",
|
|
32
32
|
"@solana-program/token": "^0.10.0",
|
|
33
33
|
"@solana/kit": "^6.0.1",
|
|
34
|
-
"@waiaas/core": "2.12.0
|
|
34
|
+
"@waiaas/core": "2.12.0"
|
|
35
35
|
},
|
|
36
36
|
"scripts": {
|
|
37
37
|
"build": "tsc -p tsconfig.build.json",
|