@waiaas/daemon 2.6.0-rc.8 → 2.6.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 +51 -3
- package/dist/api/routes/actions.d.ts.map +1 -1
- package/dist/api/routes/actions.js +31 -0
- package/dist/api/routes/actions.js.map +1 -1
- package/dist/api/routes/admin.d.ts +0 -30
- package/dist/api/routes/admin.d.ts.map +1 -1
- package/dist/api/routes/admin.js +200 -33
- package/dist/api/routes/admin.js.map +1 -1
- package/dist/api/routes/connect-info.d.ts +7 -0
- package/dist/api/routes/connect-info.d.ts.map +1 -1
- package/dist/api/routes/connect-info.js +36 -6
- package/dist/api/routes/connect-info.js.map +1 -1
- package/dist/api/routes/openapi-schemas.d.ts +151 -0
- package/dist/api/routes/openapi-schemas.d.ts.map +1 -1
- package/dist/api/routes/openapi-schemas.js +26 -0
- package/dist/api/routes/openapi-schemas.js.map +1 -1
- package/dist/api/routes/staking.d.ts +31 -0
- package/dist/api/routes/staking.d.ts.map +1 -0
- package/dist/api/routes/staking.js +204 -0
- package/dist/api/routes/staking.js.map +1 -0
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +35 -0
- package/dist/api/server.js.map +1 -1
- package/dist/infrastructure/adapter-pool.d.ts +11 -0
- package/dist/infrastructure/adapter-pool.d.ts.map +1 -1
- package/dist/infrastructure/adapter-pool.js +17 -9
- package/dist/infrastructure/adapter-pool.js.map +1 -1
- package/dist/infrastructure/config/loader.d.ts +25 -0
- package/dist/infrastructure/config/loader.d.ts.map +1 -1
- package/dist/infrastructure/config/loader.js +7 -2
- package/dist/infrastructure/config/loader.js.map +1 -1
- package/dist/infrastructure/database/migrate.d.ts +1 -1
- package/dist/infrastructure/database/migrate.d.ts.map +1 -1
- package/dist/infrastructure/database/migrate.js +89 -3
- package/dist/infrastructure/database/migrate.js.map +1 -1
- package/dist/infrastructure/database/schema.d.ts +38 -0
- package/dist/infrastructure/database/schema.d.ts.map +1 -1
- package/dist/infrastructure/database/schema.js +9 -0
- package/dist/infrastructure/database/schema.js.map +1 -1
- package/dist/infrastructure/settings/hot-reload.d.ts +9 -0
- package/dist/infrastructure/settings/hot-reload.d.ts.map +1 -1
- package/dist/infrastructure/settings/hot-reload.js +28 -0
- package/dist/infrastructure/settings/hot-reload.js.map +1 -1
- package/dist/infrastructure/settings/setting-keys.d.ts +1 -1
- package/dist/infrastructure/settings/setting-keys.d.ts.map +1 -1
- package/dist/infrastructure/settings/setting-keys.js +20 -6
- package/dist/infrastructure/settings/setting-keys.js.map +1 -1
- package/dist/lifecycle/daemon.d.ts +4 -0
- package/dist/lifecycle/daemon.d.ts.map +1 -1
- package/dist/lifecycle/daemon.js +96 -5
- package/dist/lifecycle/daemon.js.map +1 -1
- package/dist/pipeline/pipeline.d.ts +2 -0
- package/dist/pipeline/pipeline.d.ts.map +1 -1
- package/dist/services/async-polling-service.d.ts +76 -0
- package/dist/services/async-polling-service.d.ts.map +1 -0
- package/dist/services/async-polling-service.js +257 -0
- package/dist/services/async-polling-service.js.map +1 -0
- package/dist/services/incoming/__tests__/integration-wiring.test.js +6 -1
- package/dist/services/incoming/__tests__/integration-wiring.test.js.map +1 -1
- package/dist/services/incoming/incoming-tx-monitor-service.d.ts.map +1 -1
- package/dist/services/incoming/incoming-tx-monitor-service.js +10 -3
- package/dist/services/incoming/incoming-tx-monitor-service.js.map +1 -1
- package/package.json +5 -5
- package/public/admin/assets/index-Bz0Tqa8H.js +1 -0
- package/public/admin/index.html +1 -1
- package/public/admin/assets/index-yzTEayia.js +0 -1
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
|
|
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
|
|
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
|
-
>
|
|
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 |
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../src/api/routes/actions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,WAAW,EAAkB,MAAM,mBAAmB,CAAC;AAGhE,OAAO,KAAK,EAA2C,aAAa,EAAE,MAAM,cAAc,CAAC;AAC3F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yDAAyD,CAAC;AACtG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,KAAK,KAAK,MAAM,MAAM,yCAAyC,CAAC;AAYvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAC;AAYzF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,sBAAsB,CAAC;IACjC,WAAW,EAAE,WAAW,CAAC;IACzB,EAAE,EAAE,qBAAqB,CAAC,OAAO,MAAM,CAAC,CAAC;IACzC,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,aAAa,CAAC;IACxB,YAAY,EAAE,aAAa,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AA8FD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../src/api/routes/actions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,WAAW,EAAkB,MAAM,mBAAmB,CAAC;AAGhE,OAAO,KAAK,EAA2C,aAAa,EAAE,MAAM,cAAc,CAAC;AAC3F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yDAAyD,CAAC;AACtG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,KAAK,KAAK,MAAM,MAAM,yCAAyC,CAAC;AAYvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAC;AAYzF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,sBAAsB,CAAC;IACjC,WAAW,EAAE,WAAW,CAAC;IACzB,EAAE,EAAE,qBAAqB,CAAC,OAAO,MAAM,CAAC,CAAC;IACzC,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,aAAa,CAAC;IACxB,YAAY,EAAE,aAAa,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AA8FD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,CAsR/D"}
|
|
@@ -261,6 +261,14 @@ export function actionRoutes(deps) {
|
|
|
261
261
|
};
|
|
262
262
|
// Stage 1: Validate + DB INSERT (synchronous -- assigns ctx.txId)
|
|
263
263
|
await stage1Validate(ctx);
|
|
264
|
+
// GAP-2 fix: Persist action provider metadata for staking position queries
|
|
265
|
+
// (GET /v1/wallet/staking uses metadata LIKE '%providerKey%' to find staking txs)
|
|
266
|
+
await deps.db
|
|
267
|
+
.update(transactions)
|
|
268
|
+
.set({
|
|
269
|
+
metadata: JSON.stringify({ provider, action }),
|
|
270
|
+
})
|
|
271
|
+
.where(eq(transactions.id, ctx.txId));
|
|
264
272
|
pipelineResults.push({ id: ctx.txId, status: 'PENDING' });
|
|
265
273
|
// Stages 2-6 run asynchronously (fire-and-forget)
|
|
266
274
|
void (async () => {
|
|
@@ -270,6 +278,29 @@ export function actionRoutes(deps) {
|
|
|
270
278
|
await stage4Wait(ctx);
|
|
271
279
|
await stage5Execute(ctx);
|
|
272
280
|
await stage6Confirm(ctx);
|
|
281
|
+
// GAP-1 fix: Enroll staking unstake transactions in async tracking
|
|
282
|
+
// Lido unstake -> lido-withdrawal tracker, Jito unstake -> jito-epoch tracker
|
|
283
|
+
// AsyncPollingService.pollAll() picks up bridge_status='PENDING' transactions
|
|
284
|
+
if (action === 'unstake') {
|
|
285
|
+
const trackerMap = {
|
|
286
|
+
'lido_staking': 'lido-withdrawal',
|
|
287
|
+
'jito_staking': 'jito-epoch',
|
|
288
|
+
};
|
|
289
|
+
const trackerName = trackerMap[provider];
|
|
290
|
+
if (trackerName) {
|
|
291
|
+
await deps.db
|
|
292
|
+
.update(transactions)
|
|
293
|
+
.set({
|
|
294
|
+
bridgeStatus: 'PENDING',
|
|
295
|
+
bridgeMetadata: JSON.stringify({
|
|
296
|
+
tracker: trackerName,
|
|
297
|
+
notificationEvent: 'STAKING_UNSTAKE_TIMEOUT',
|
|
298
|
+
enrolledAt: Date.now(),
|
|
299
|
+
}),
|
|
300
|
+
})
|
|
301
|
+
.where(eq(transactions.id, ctx.txId));
|
|
302
|
+
}
|
|
303
|
+
}
|
|
273
304
|
}
|
|
274
305
|
catch (error) {
|
|
275
306
|
// PIPELINE_HALTED is intentional -- transaction is QUEUED
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../src/api/routes/actions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAO3C,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAIrE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EACL,cAAc,EACd,UAAU,EACV,YAAY,EACZ,UAAU,EACV,aAAa,EACb,aAAa,GACd,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAOpE,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAwBlE,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAE9E,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;CACxB,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC3B,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE;IAC3B,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,8BAA8B,CAAC;CACjD,CAAC,CAAC;AAEH,MAAM,2BAA2B,GAAG,CAAC;KAClC,MAAM,CAAC;IACN,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC;CAC3C,CAAC;KACD,OAAO,CAAC,uBAAuB,CAAC,CAAC;AAEpC,MAAM,0BAA0B,GAAG,CAAC;KACjC,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACpD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mEAAmE,CAAC;CACrH,CAAC;KACD,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAEnC,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E,MAAM,kBAAkB,GAAG,WAAW,CAAC;IACrC,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,CAAC,SAAS,CAAC;IACjB,OAAO,EAAE,kCAAkC;IAC3C,SAAS,EAAE;QACT,GAAG,EAAE;YACH,WAAW,EAAE,gDAAgD;YAC7D,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,2BAA2B,EAAE,EAAE;SACzE;KACF;CACF,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,WAAW,CAAC;IACrC,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,8BAA8B;IACpC,IAAI,EAAE,CAAC,SAAS,CAAC;IACjB,OAAO,EAAE,gCAAgC;IACzC,WAAW,EACT,gGAAgG;IAClG,OAAO,EAAE;QACP,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;YACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;SACnB,CAAC;QACF,IAAI,EAAE;YACJ,OAAO,EAAE;gBACP,kBAAkB,EAAE,EAAE,MAAM,EAAE,0BAA0B,EAAE;aAC3D;SACF;KACF;IACD,SAAS,EAAE;QACT,GAAG,EAAE;YACH,WAAW,EAAE,8BAA8B;YAC3C,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE;SAClE;QACD,GAAG,mBAAmB,CAAC;YACrB,kBAAkB;YAClB,kBAAkB;YAClB,0BAA0B;YAC1B,uBAAuB;YACvB,uBAAuB;YACvB,kBAAkB;SACnB,CAAC;KACH;CACF,CAAC,CAAC;AAEH,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,IAAqB;IAChD,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAEvE,4EAA4E;IAC5E,yBAAyB;IACzB,4EAA4E;IAE5E,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC7C,MAAM,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;QAE3D,MAAM,SAAS,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAClD,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7D,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC1C,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACnC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;oBACnB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW;oBACjC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK;oBACrB,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS;oBAC7B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW;iBAClC,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,kCAAkC;IAClC,4EAA4E;IAE5E,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC7C,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,SAAS,GAAG,GAAG,QAAQ,IAAI,MAAM,EAAE,CAAC;QAE1C,0BAA0B;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,WAAW,CAAC,kBAAkB,EAAE;gBACxC,OAAO,EAAE,WAAW,SAAS,aAAa;gBAC1C,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;aAC9B,CAAC,CAAC;QACL,CAAC;QAED,mEAAmE;QACnE,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,WAAoB,CAAuB,CAAC;QAEpE,oFAAoF;QACpF,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxD,0CAA0C;gBAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC;gBACnD,MAAM,QAAQ,GAAG,oBAAoB,SAAS,QAAQ,CAAC;gBACvD,KAAK,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,yBAAyB,EAAE,QAAQ,EAAE;oBACzE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI;oBACtC,MAAM,EAAE,SAAS;oBACjB,QAAQ;iBACT,CAAC,CAAC;gBACH,MAAM,IAAI,WAAW,CAAC,kBAAkB,EAAE;oBACxC,OAAO,EAAE,sBAAsB,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,eAAe;oBAC1E,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE;iBACpD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,oBAAoB;QACpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAC1F,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,WAAW,CAAC,kBAAkB,EAAE;gBACxC,OAAO,EAAE,WAAW,QAAQ,aAAa;aAC1C,CAAC,CAAC;QACL,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YACnC,MAAM,IAAI,WAAW,CAAC,mBAAmB,CAAC,CAAC;QAC7C,CAAC;QAED,yBAAyB;QACzB,MAAM,aAAa,GAAG;YACpB,aAAa,EAAE,MAAM,CAAC,SAAS;YAC/B,KAAK,EAAE,MAAM,CAAC,KAAkB;YAChC,QAAQ;YACR,SAAS;SACV,CAAC;QAEF,mEAAmE;QACnE,uEAAuE;QACvE,IAAI,aAAa,CAAC;QAClB,IAAI,CAAC;YACH,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAChD,SAAS,EACT,IAAI,CAAC,MAAM,IAAI,EAAE,EACjB,aAAa,CACd,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,qFAAqF;YACrF,IAAI,GAAG,YAAY,WAAW;gBAAE,MAAM,GAAG,CAAC;YAC1C,kDAAkD;YAClD,MAAM,IAAI,WAAW,CAAC,uBAAuB,EAAE;gBAC7C,OAAO,EAAE,0BAA0B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;gBACzF,OAAO,EAAE,EAAE,SAAS,EAAE;gBACtB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;aAC9C,CAAC,CAAC;QACL,CAAC;QAED,iFAAiF;QACjF,IAAI,eAAuB,CAAC;QAC5B,IAAI,CAAC;YACH,eAAe,GAAG,cAAc,CAC9B,IAAI,CAAC,OAAkC,EACvC,MAAM,CAAC,cAAoC,EAC3C,MAAM,CAAC,WAA8B,EACrC,MAAM,CAAC,KAAkB,CAC1B,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gBAChE,MAAM,IAAI,WAAW,CAAC,8BAA8B,EAAE;oBACpD,OAAO,EAAE,GAAG,CAAC,OAAO;iBACrB,CAAC,CAAC;YACL,CAAC;YACD,MAAM,IAAI,WAAW,CAAC,0BAA0B,EAAE;gBAChD,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B;aAC1E,CAAC,CAAC;QACL,CAAC;QAED,+BAA+B;QAC/B,MAAM,MAAM,GAAG,aAAa,CAC1B,IAAI,CAAC,MAAM,CAAC,GAAwC,EACpD,MAAM,CAAC,KAAK,EACZ,eAAe,CAChB,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAC5C,MAAM,CAAC,KAAkB,EACzB,eAA8B,EAC9B,MAAM,CACP,CAAC;QAEF,gEAAgE;QAChE,MAAM,UAAU,GAAG;YACjB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,IAAI;SAC9C,CAAC;QACF,MAAM,cAAc,GAAG;YACrB,6BAA6B,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,6BAA6B;YACjF,gCAAgC,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gCAAgC;SACxF,CAAC;QAEF,MAAM,eAAe,GAA0C,EAAE,CAAC;QAElE,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;YACzC,8DAA8D;YAC9D,MAAM,GAAG,GAAoB;gBAC3B,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,OAAO;gBACP,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,QAAQ;gBACR,MAAM,EAAE,UAAU;gBAClB,eAAe;gBACf,OAAO,EAAE,YAAY,EAAE,wDAAwD;gBAC/E,IAAI,EAAE,EAAE,EAAE,6BAA6B;gBACvC,SAAS;gBACT,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,MAAM,EAAE,cAAc;gBACtB,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;gBAC7C,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,eAAe,EAAE,IAAI,CAAC,eAAe;aACtC,CAAC;YAEF,kEAAkE;YAClE,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;YAC1B,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YAE1D,kDAAkD;YAClD,KAAK,CAAC,KAAK,IAAI,EAAE;gBACf,IAAI,CAAC;oBACH,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;oBACtB,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;oBACxB,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;oBACtB,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;oBACzB,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;gBAC3B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,0DAA0D;oBAC1D,IAAI,KAAK,YAAY,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;wBACrE,OAAO;oBACT,CAAC;oBAED,qCAAqC;oBACrC,IAAI,CAAC;wBACH,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE;6BACrB,MAAM,EAAE;6BACR,IAAI,CAAC,YAAY,CAAC;6BAClB,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;6BACpC,GAAG,EAAE,CAAC;wBAET,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,KAAK,WAAW,IAAI,EAAE,CAAC,MAAM,KAAK,QAAQ,IAAI,EAAE,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;4BAC3F,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC;4BAC1F,MAAM,IAAI,CAAC,EAAE;iCACV,MAAM,CAAC,YAAY,CAAC;iCACpB,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;iCAC9C,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;wBAC1C,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,yCAAyC;oBAC3C,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;QACP,CAAC;QAED,qBAAqB;QACrB,iEAAiE;QACjE,+DAA+D;QAC/D,MAAM,UAAU,GAAG,eAAe,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;QAEhE,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,CAAC,IAAI,CACX,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,EAChD,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,CAAC,IAAI,CACX;YACE,EAAE,EAAE,UAAU,CAAC,EAAE;YACjB,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,QAAQ,EAAE,eAAe;SAC1B,EACD,GAAG,CACJ,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
1
|
+
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../src/api/routes/actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -80,35 +80,5 @@ export interface AdminRouteDeps {
|
|
|
80
80
|
delayQueue?: DelayQueue;
|
|
81
81
|
approvalWorkflow?: ApprovalWorkflow;
|
|
82
82
|
}
|
|
83
|
-
/**
|
|
84
|
-
* Create admin route sub-router.
|
|
85
|
-
*
|
|
86
|
-
* GET /admin/status - Daemon health info (masterAuth)
|
|
87
|
-
* POST /admin/kill-switch - Activate kill switch (masterAuth)
|
|
88
|
-
* GET /admin/kill-switch - Get kill switch state (public)
|
|
89
|
-
* POST /admin/recover - Deactivate kill switch (masterAuth)
|
|
90
|
-
* POST /admin/shutdown - Graceful shutdown (masterAuth)
|
|
91
|
-
* POST /admin/rotate-secret - Rotate JWT secret (masterAuth)
|
|
92
|
-
* GET /admin/notifications/status - Notification channel status (masterAuth)
|
|
93
|
-
* POST /admin/notifications/test - Send test notification (masterAuth)
|
|
94
|
-
* GET /admin/notifications/log - Query notification logs (masterAuth)
|
|
95
|
-
* GET /admin/settings - Get all settings (masterAuth)
|
|
96
|
-
* PUT /admin/settings - Update settings (masterAuth)
|
|
97
|
-
* POST /admin/settings/test-rpc - Test RPC connectivity (masterAuth)
|
|
98
|
-
* GET /admin/oracle-status - Oracle cache/source/cross-validation status (masterAuth)
|
|
99
|
-
* GET /admin/api-keys - List Action Provider API key status (masterAuth)
|
|
100
|
-
* PUT /admin/api-keys/:provider - Set or update API key (masterAuth)
|
|
101
|
-
* DELETE /admin/api-keys/:provider - Delete API key (masterAuth)
|
|
102
|
-
* GET /admin/forex/rates - Forex exchange rates (masterAuth)
|
|
103
|
-
* GET /admin/wallets/:id/balance - Wallet native+token balance (masterAuth)
|
|
104
|
-
* GET /admin/wallets/:id/transactions - Wallet transaction history (masterAuth)
|
|
105
|
-
* GET /admin/telegram-users - List Telegram bot users (masterAuth)
|
|
106
|
-
* PUT /admin/telegram-users/:chatId - Update Telegram user role (masterAuth)
|
|
107
|
-
* DELETE /admin/telegram-users/:chatId - Delete Telegram user (masterAuth)
|
|
108
|
-
* GET /admin/transactions - Cross-wallet transaction list (masterAuth)
|
|
109
|
-
* GET /admin/incoming - Cross-wallet incoming tx list (masterAuth)
|
|
110
|
-
* POST /admin/transactions/:id/cancel - Cancel delayed transaction (masterAuth)
|
|
111
|
-
* POST /admin/transactions/:id/reject - Reject pending approval transaction (masterAuth)
|
|
112
|
-
*/
|
|
113
83
|
export declare function adminRoutes(deps: AdminRouteDeps): OpenAPIHono;
|
|
114
84
|
//# sourceMappingURL=admin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../src/api/routes/admin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,WAAW,EAAkB,MAAM,mBAAmB,CAAC;AAEhE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGjE,OAAO,KAAK,EAAyE,YAAY,EAAE,iBAAiB,EAAgB,MAAM,cAAc,CAAC;AAEzJ,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,gDAAgD,CAAC;
|
|
1
|
+
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../src/api/routes/admin.ts"],"names":[],"mappings":"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"}
|
package/dist/api/routes/admin.js
CHANGED
|
@@ -32,14 +32,14 @@
|
|
|
32
32
|
import { OpenAPIHono, createRoute, z } from '@hono/zod-openapi';
|
|
33
33
|
import { sql, desc, eq, and, isNull, gt, gte, lte, count as drizzleCount } from 'drizzle-orm';
|
|
34
34
|
import { createHash } from 'node:crypto';
|
|
35
|
-
import { WAIaaSError, getDefaultNetwork, getNetworksForEnvironment } from '@waiaas/core';
|
|
35
|
+
import { WAIaaSError, getDefaultNetwork, getNetworksForEnvironment, formatAmount } from '@waiaas/core';
|
|
36
36
|
import { CurrencyCodeSchema, formatRatePreview } from '@waiaas/core';
|
|
37
|
-
import { wallets, sessions, sessionWallets, notificationLogs, policies, transactions, incomingTransactions } from '../../infrastructure/database/schema.js';
|
|
37
|
+
import { wallets, sessions, sessionWallets, notificationLogs, policies, transactions, incomingTransactions, tokenRegistry } from '../../infrastructure/database/schema.js';
|
|
38
38
|
import { generateId } from '../../infrastructure/database/id.js';
|
|
39
39
|
import { buildConnectInfoPrompt } from './connect-info.js';
|
|
40
40
|
import { getSettingDefinition } from '../../infrastructure/settings/index.js';
|
|
41
41
|
import { resolveRpcUrl } from '../../infrastructure/adapter-pool.js';
|
|
42
|
-
import { AdminStatusResponseSchema, KillSwitchResponseSchema, KillSwitchActivateResponseSchema, KillSwitchEscalateResponseSchema, RecoverResponseSchema, KillSwitchRecoverRequestSchema, ShutdownResponseSchema, RotateSecretResponseSchema, NotificationStatusResponseSchema, NotificationTestRequestSchema, NotificationTestResponseSchema, NotificationLogResponseSchema, SettingsResponseSchema, SettingsUpdateRequestSchema, SettingsUpdateResponseSchema, TestRpcRequestSchema, TestRpcResponseSchema, OracleStatusResponseSchema, AgentPromptRequestSchema, AgentPromptResponseSchema, SessionReissueResponseSchema, buildErrorResponses, openApiValidationHook, } from './openapi-schemas.js';
|
|
42
|
+
import { AdminStatusResponseSchema, KillSwitchResponseSchema, KillSwitchActivateResponseSchema, KillSwitchEscalateResponseSchema, RecoverResponseSchema, KillSwitchRecoverRequestSchema, ShutdownResponseSchema, RotateSecretResponseSchema, NotificationStatusResponseSchema, NotificationTestRequestSchema, NotificationTestResponseSchema, NotificationLogResponseSchema, SettingsResponseSchema, SettingsUpdateRequestSchema, SettingsUpdateResponseSchema, TestRpcRequestSchema, TestRpcResponseSchema, OracleStatusResponseSchema, AgentPromptRequestSchema, AgentPromptResponseSchema, SessionReissueResponseSchema, StakingPositionsResponseSchema, buildErrorResponses, openApiValidationHook, } from './openapi-schemas.js';
|
|
43
43
|
// ---------------------------------------------------------------------------
|
|
44
44
|
// Route definitions
|
|
45
45
|
// ---------------------------------------------------------------------------
|
|
@@ -391,6 +391,8 @@ const adminWalletTransactionsRoute = createRoute({
|
|
|
391
391
|
status: z.string(),
|
|
392
392
|
toAddress: z.string().nullable(),
|
|
393
393
|
amount: z.string().nullable(),
|
|
394
|
+
formattedAmount: z.string().nullable(),
|
|
395
|
+
amountUsd: z.number().nullable(),
|
|
394
396
|
network: z.string().nullable(),
|
|
395
397
|
txHash: z.string().nullable(),
|
|
396
398
|
createdAt: z.number().nullable(),
|
|
@@ -441,6 +443,23 @@ const adminWalletBalanceRoute = createRoute({
|
|
|
441
443
|
...buildErrorResponses(['WALLET_NOT_FOUND']),
|
|
442
444
|
},
|
|
443
445
|
});
|
|
446
|
+
const adminWalletStakingRoute = createRoute({
|
|
447
|
+
method: 'get',
|
|
448
|
+
path: '/admin/wallets/{id}/staking',
|
|
449
|
+
tags: ['Admin'],
|
|
450
|
+
summary: 'Get wallet staking positions',
|
|
451
|
+
description: 'Returns staking positions (Lido stETH, Jito JitoSOL) for a specific wallet with balance, APY, pending unstake status.',
|
|
452
|
+
request: {
|
|
453
|
+
params: z.object({ id: z.string().uuid() }),
|
|
454
|
+
},
|
|
455
|
+
responses: {
|
|
456
|
+
200: {
|
|
457
|
+
description: 'Staking positions for the wallet',
|
|
458
|
+
content: { 'application/json': { schema: StakingPositionsResponseSchema } },
|
|
459
|
+
},
|
|
460
|
+
...buildErrorResponses(['WALLET_NOT_FOUND']),
|
|
461
|
+
},
|
|
462
|
+
});
|
|
444
463
|
// ---------------------------------------------------------------------------
|
|
445
464
|
// Telegram Users route definitions
|
|
446
465
|
// ---------------------------------------------------------------------------
|
|
@@ -656,6 +675,40 @@ const adminIncomingRoute = createRoute({
|
|
|
656
675
|
* POST /admin/transactions/:id/cancel - Cancel delayed transaction (masterAuth)
|
|
657
676
|
* POST /admin/transactions/:id/reject - Reject pending approval transaction (masterAuth)
|
|
658
677
|
*/
|
|
678
|
+
// ---------------------------------------------------------------------------
|
|
679
|
+
// Amount formatting helpers (#168)
|
|
680
|
+
// ---------------------------------------------------------------------------
|
|
681
|
+
const NATIVE_DECIMALS = { solana: 9, ethereum: 18 };
|
|
682
|
+
const NATIVE_SYMBOLS = { solana: 'SOL', ethereum: 'ETH' };
|
|
683
|
+
/**
|
|
684
|
+
* Format raw blockchain amount to human-readable string with token symbol.
|
|
685
|
+
* Returns null if formatting is not possible (unknown token, null amount, etc).
|
|
686
|
+
*/
|
|
687
|
+
function formatTxAmount(amount, chain, network, tokenAddress, db) {
|
|
688
|
+
if (!amount || amount === '0')
|
|
689
|
+
return amount;
|
|
690
|
+
try {
|
|
691
|
+
if (tokenAddress) {
|
|
692
|
+
// Token transfer: look up decimals/symbol from token_registry
|
|
693
|
+
const token = db
|
|
694
|
+
.select({ symbol: tokenRegistry.symbol, decimals: tokenRegistry.decimals })
|
|
695
|
+
.from(tokenRegistry)
|
|
696
|
+
.where(and(eq(tokenRegistry.address, tokenAddress), network ? eq(tokenRegistry.network, network) : undefined))
|
|
697
|
+
.limit(1)
|
|
698
|
+
.get();
|
|
699
|
+
if (!token)
|
|
700
|
+
return null; // unknown token → caller falls back to raw
|
|
701
|
+
return `${formatAmount(BigInt(amount), token.decimals)} ${token.symbol}`;
|
|
702
|
+
}
|
|
703
|
+
// Native transfer
|
|
704
|
+
const decimals = NATIVE_DECIMALS[chain] ?? 18;
|
|
705
|
+
const symbol = NATIVE_SYMBOLS[chain] ?? chain.toUpperCase();
|
|
706
|
+
return `${formatAmount(BigInt(amount), decimals)} ${symbol}`;
|
|
707
|
+
}
|
|
708
|
+
catch {
|
|
709
|
+
return null;
|
|
710
|
+
}
|
|
711
|
+
}
|
|
659
712
|
export function adminRoutes(deps) {
|
|
660
713
|
const router = new OpenAPIHono({ defaultHook: openApiValidationHook });
|
|
661
714
|
// ---------------------------------------------------------------------------
|
|
@@ -1300,19 +1353,23 @@ export function adminRoutes(deps) {
|
|
|
1300
1353
|
.where(eq(transactions.walletId, id))
|
|
1301
1354
|
.get();
|
|
1302
1355
|
const total = totalResult?.count ?? 0;
|
|
1303
|
-
const items = rows.map((tx) =>
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
:
|
|
1315
|
-
|
|
1356
|
+
const items = rows.map((tx) => {
|
|
1357
|
+
const tokenAddr = tx.tokenMint ?? tx.contractAddress ?? null;
|
|
1358
|
+
return {
|
|
1359
|
+
id: tx.id,
|
|
1360
|
+
type: tx.type,
|
|
1361
|
+
status: tx.status,
|
|
1362
|
+
toAddress: tx.toAddress ?? null,
|
|
1363
|
+
amount: tx.amount ?? null,
|
|
1364
|
+
formattedAmount: formatTxAmount(tx.amount ?? null, tx.chain, tx.network ?? null, tokenAddr, deps.db),
|
|
1365
|
+
amountUsd: tx.amountUsd ?? null,
|
|
1366
|
+
network: tx.network ?? null,
|
|
1367
|
+
txHash: tx.txHash ?? null,
|
|
1368
|
+
createdAt: tx.createdAt instanceof Date
|
|
1369
|
+
? Math.floor(tx.createdAt.getTime() / 1000)
|
|
1370
|
+
: (typeof tx.createdAt === 'number' ? tx.createdAt : null),
|
|
1371
|
+
};
|
|
1372
|
+
});
|
|
1316
1373
|
return c.json({ items, total }, 200);
|
|
1317
1374
|
});
|
|
1318
1375
|
// ---------------------------------------------------------------------------
|
|
@@ -1377,6 +1434,101 @@ export function adminRoutes(deps) {
|
|
|
1377
1434
|
return c.json({ balances }, 200);
|
|
1378
1435
|
});
|
|
1379
1436
|
// ---------------------------------------------------------------------------
|
|
1437
|
+
// GET /admin/wallets/:id/staking
|
|
1438
|
+
// ---------------------------------------------------------------------------
|
|
1439
|
+
router.openapi(adminWalletStakingRoute, async (c) => {
|
|
1440
|
+
const { id } = c.req.valid('param');
|
|
1441
|
+
// Verify wallet exists
|
|
1442
|
+
const wallet = deps.db.select().from(wallets).where(eq(wallets.id, id)).get();
|
|
1443
|
+
if (!wallet) {
|
|
1444
|
+
throw new WAIaaSError('WALLET_NOT_FOUND');
|
|
1445
|
+
}
|
|
1446
|
+
const positions = [];
|
|
1447
|
+
if (!deps.sqlite) {
|
|
1448
|
+
return c.json({ walletId: id, positions }, 200);
|
|
1449
|
+
}
|
|
1450
|
+
const LIDO_APY = '~3.5%';
|
|
1451
|
+
const JITO_APY = '~7.5%';
|
|
1452
|
+
// Reuse aggregation logic inline (same as staking.ts)
|
|
1453
|
+
function aggregateProvider(walletId, providerKey) {
|
|
1454
|
+
const stakeRows = deps.sqlite.prepare(`SELECT amount, bridge_status, created_at, metadata
|
|
1455
|
+
FROM transactions
|
|
1456
|
+
WHERE wallet_id = ? AND status IN ('CONFIRMED', 'COMPLETED')
|
|
1457
|
+
AND metadata LIKE ?
|
|
1458
|
+
ORDER BY created_at ASC`).all(walletId, `%${providerKey}%`);
|
|
1459
|
+
let totalStaked = 0n;
|
|
1460
|
+
let totalUnstaked = 0n;
|
|
1461
|
+
for (const row of stakeRows) {
|
|
1462
|
+
if (!row.amount)
|
|
1463
|
+
continue;
|
|
1464
|
+
let isUnstake = false;
|
|
1465
|
+
if (row.metadata) {
|
|
1466
|
+
try {
|
|
1467
|
+
const meta = JSON.parse(row.metadata);
|
|
1468
|
+
if (meta.action === 'unstake' || meta.actionName === 'unstake')
|
|
1469
|
+
isUnstake = true;
|
|
1470
|
+
}
|
|
1471
|
+
catch { /* ignore */ }
|
|
1472
|
+
}
|
|
1473
|
+
try {
|
|
1474
|
+
const amountBig = BigInt(row.amount);
|
|
1475
|
+
if (isUnstake)
|
|
1476
|
+
totalUnstaked += amountBig;
|
|
1477
|
+
else
|
|
1478
|
+
totalStaked += amountBig;
|
|
1479
|
+
}
|
|
1480
|
+
catch { /* skip */ }
|
|
1481
|
+
}
|
|
1482
|
+
const pendingRow = deps.sqlite.prepare(`SELECT amount, bridge_status, created_at
|
|
1483
|
+
FROM transactions
|
|
1484
|
+
WHERE wallet_id = ? AND bridge_status = 'PENDING'
|
|
1485
|
+
AND metadata LIKE ?
|
|
1486
|
+
ORDER BY created_at DESC
|
|
1487
|
+
LIMIT 1`).get(walletId, `%${providerKey}%`);
|
|
1488
|
+
let pendingUnstake = null;
|
|
1489
|
+
if (pendingRow?.amount) {
|
|
1490
|
+
pendingUnstake = {
|
|
1491
|
+
amount: pendingRow.amount,
|
|
1492
|
+
status: (pendingRow.bridge_status ?? 'PENDING'),
|
|
1493
|
+
requestedAt: pendingRow.created_at ?? null,
|
|
1494
|
+
};
|
|
1495
|
+
}
|
|
1496
|
+
const balanceWei = totalStaked > totalUnstaked ? totalStaked - totalUnstaked : 0n;
|
|
1497
|
+
return { balanceWei, pendingUnstake };
|
|
1498
|
+
}
|
|
1499
|
+
// Ethereum wallet -> Lido
|
|
1500
|
+
if (wallet.chain === 'ethereum') {
|
|
1501
|
+
const { balanceWei, pendingUnstake } = aggregateProvider(id, 'lido_staking');
|
|
1502
|
+
if (balanceWei > 0n || pendingUnstake) {
|
|
1503
|
+
let balanceUsd = null;
|
|
1504
|
+
if (deps.priceOracle && balanceWei > 0n) {
|
|
1505
|
+
try {
|
|
1506
|
+
const priceInfo = await deps.priceOracle.getNativePrice('ethereum');
|
|
1507
|
+
balanceUsd = (Number(balanceWei) / 1e18 * priceInfo.usdPrice).toFixed(2);
|
|
1508
|
+
}
|
|
1509
|
+
catch { /* price unavailable */ }
|
|
1510
|
+
}
|
|
1511
|
+
positions.push({ protocol: 'lido', chain: 'ethereum', asset: 'stETH', balance: balanceWei.toString(), balanceUsd, apy: LIDO_APY, pendingUnstake });
|
|
1512
|
+
}
|
|
1513
|
+
}
|
|
1514
|
+
// Solana wallet -> Jito
|
|
1515
|
+
if (wallet.chain === 'solana') {
|
|
1516
|
+
const { balanceWei: balanceLamports, pendingUnstake } = aggregateProvider(id, 'jito_staking');
|
|
1517
|
+
if (balanceLamports > 0n || pendingUnstake) {
|
|
1518
|
+
let balanceUsd = null;
|
|
1519
|
+
if (deps.priceOracle && balanceLamports > 0n) {
|
|
1520
|
+
try {
|
|
1521
|
+
const priceInfo = await deps.priceOracle.getNativePrice('solana');
|
|
1522
|
+
balanceUsd = (Number(balanceLamports) / 1e9 * priceInfo.usdPrice).toFixed(2);
|
|
1523
|
+
}
|
|
1524
|
+
catch { /* price unavailable */ }
|
|
1525
|
+
}
|
|
1526
|
+
positions.push({ protocol: 'jito', chain: 'solana', asset: 'JitoSOL', balance: balanceLamports.toString(), balanceUsd, apy: JITO_APY, pendingUnstake });
|
|
1527
|
+
}
|
|
1528
|
+
}
|
|
1529
|
+
return c.json({ walletId: id, positions }, 200);
|
|
1530
|
+
});
|
|
1531
|
+
// ---------------------------------------------------------------------------
|
|
1380
1532
|
// GET /admin/telegram-users
|
|
1381
1533
|
// ---------------------------------------------------------------------------
|
|
1382
1534
|
router.openapi(telegramUsersListRoute, async (c) => {
|
|
@@ -1485,6 +1637,8 @@ export function adminRoutes(deps) {
|
|
|
1485
1637
|
txHash: transactions.txHash,
|
|
1486
1638
|
chain: transactions.chain,
|
|
1487
1639
|
createdAt: transactions.createdAt,
|
|
1640
|
+
tokenMint: transactions.tokenMint,
|
|
1641
|
+
contractAddress: transactions.contractAddress,
|
|
1488
1642
|
})
|
|
1489
1643
|
.from(transactions)
|
|
1490
1644
|
.leftJoin(wallets, eq(transactions.walletId, wallets.id))
|
|
@@ -1493,23 +1647,27 @@ export function adminRoutes(deps) {
|
|
|
1493
1647
|
.offset(offset)
|
|
1494
1648
|
.limit(limit)
|
|
1495
1649
|
.all();
|
|
1496
|
-
const items = rows.map((row) =>
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
:
|
|
1512
|
-
|
|
1650
|
+
const items = rows.map((row) => {
|
|
1651
|
+
const tokenAddr = row.tokenMint ?? row.contractAddress ?? null;
|
|
1652
|
+
return {
|
|
1653
|
+
id: row.id,
|
|
1654
|
+
walletId: row.walletId,
|
|
1655
|
+
walletName: row.walletName ?? null,
|
|
1656
|
+
type: row.type,
|
|
1657
|
+
status: row.status,
|
|
1658
|
+
tier: row.tier ?? null,
|
|
1659
|
+
toAddress: row.toAddress ?? null,
|
|
1660
|
+
amount: row.amount ?? null,
|
|
1661
|
+
formattedAmount: formatTxAmount(row.amount ?? null, row.chain, row.network ?? null, tokenAddr, deps.db),
|
|
1662
|
+
amountUsd: row.amountUsd ?? null,
|
|
1663
|
+
network: row.network ?? null,
|
|
1664
|
+
txHash: row.txHash ?? null,
|
|
1665
|
+
chain: row.chain,
|
|
1666
|
+
createdAt: row.createdAt instanceof Date
|
|
1667
|
+
? Math.floor(row.createdAt.getTime() / 1000)
|
|
1668
|
+
: (typeof row.createdAt === 'number' ? row.createdAt : null),
|
|
1669
|
+
};
|
|
1670
|
+
});
|
|
1513
1671
|
return c.json({ items, total, offset, limit }, 200);
|
|
1514
1672
|
});
|
|
1515
1673
|
// ---------------------------------------------------------------------------
|
|
@@ -1573,6 +1731,7 @@ export function adminRoutes(deps) {
|
|
|
1573
1731
|
walletName: row.walletName ?? null,
|
|
1574
1732
|
fromAddress: row.fromAddress,
|
|
1575
1733
|
amount: row.amount,
|
|
1734
|
+
formattedAmount: formatTxAmount(row.amount, row.chain, row.network, row.tokenAddress ?? null, deps.db),
|
|
1576
1735
|
tokenAddress: row.tokenAddress ?? null,
|
|
1577
1736
|
chain: row.chain,
|
|
1578
1737
|
network: row.network,
|
|
@@ -1758,6 +1917,13 @@ export function adminRoutes(deps) {
|
|
|
1758
1917
|
if (config.x402?.enabled === true) {
|
|
1759
1918
|
capabilities.push('x402');
|
|
1760
1919
|
}
|
|
1920
|
+
// Read default-deny toggles
|
|
1921
|
+
const defaultDeny = {
|
|
1922
|
+
tokenTransfers: deps.settingsService?.get('policy.default_deny_tokens') !== 'false',
|
|
1923
|
+
contractCalls: deps.settingsService?.get('policy.default_deny_contracts') !== 'false',
|
|
1924
|
+
tokenApprovals: deps.settingsService?.get('policy.default_deny_spenders') !== 'false',
|
|
1925
|
+
x402Domains: deps.settingsService?.get('policy.default_deny_x402_domains') !== 'false',
|
|
1926
|
+
};
|
|
1761
1927
|
// Build prompt using shared prompt builder
|
|
1762
1928
|
const host = c.req.header('Host') ?? 'localhost:3100';
|
|
1763
1929
|
const protocol = c.req.header('X-Forwarded-Proto') ?? 'http';
|
|
@@ -1765,6 +1931,7 @@ export function adminRoutes(deps) {
|
|
|
1765
1931
|
const prompt = buildConnectInfoPrompt({
|
|
1766
1932
|
wallets: promptWallets,
|
|
1767
1933
|
capabilities,
|
|
1934
|
+
defaultDeny,
|
|
1768
1935
|
baseUrl,
|
|
1769
1936
|
version: deps.version,
|
|
1770
1937
|
});
|