@waiaas/daemon 2.13.0 → 2.14.0-rc.4

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.
Files changed (91) hide show
  1. package/dist/api/routes/openapi-schemas.d.ts +50 -50
  2. package/dist/api/routes/openapi-schemas.d.ts.map +1 -1
  3. package/dist/api/routes/openapi-schemas.js +2 -2
  4. package/dist/api/routes/openapi-schemas.js.map +1 -1
  5. package/dist/api/routes/tokens.d.ts.map +1 -1
  6. package/dist/api/routes/tokens.js +14 -8
  7. package/dist/api/routes/tokens.js.map +1 -1
  8. package/dist/api/routes/transactions.d.ts.map +1 -1
  9. package/dist/api/routes/transactions.js +2 -0
  10. package/dist/api/routes/transactions.js.map +1 -1
  11. package/dist/infrastructure/action/builtin-metadata.d.ts.map +1 -1
  12. package/dist/infrastructure/action/builtin-metadata.js +1 -0
  13. package/dist/infrastructure/action/builtin-metadata.js.map +1 -1
  14. package/dist/infrastructure/adapter-pool.d.ts.map +1 -1
  15. package/dist/infrastructure/adapter-pool.js +12 -0
  16. package/dist/infrastructure/adapter-pool.js.map +1 -1
  17. package/dist/infrastructure/config/loader.d.ts +15 -0
  18. package/dist/infrastructure/config/loader.d.ts.map +1 -1
  19. package/dist/infrastructure/config/loader.js +4 -0
  20. package/dist/infrastructure/config/loader.js.map +1 -1
  21. package/dist/infrastructure/database/migrate.d.ts +1 -1
  22. package/dist/infrastructure/database/migrate.d.ts.map +1 -1
  23. package/dist/infrastructure/database/migrate.js +5 -1
  24. package/dist/infrastructure/database/migrate.js.map +1 -1
  25. package/dist/infrastructure/database/migrations/v61.d.ts +11 -0
  26. package/dist/infrastructure/database/migrations/v61.d.ts.map +1 -0
  27. package/dist/infrastructure/database/migrations/v61.js +67 -0
  28. package/dist/infrastructure/database/migrations/v61.js.map +1 -0
  29. package/dist/infrastructure/database/migrations/v62.d.ts +23 -0
  30. package/dist/infrastructure/database/migrations/v62.d.ts.map +1 -0
  31. package/dist/infrastructure/database/migrations/v62.js +274 -0
  32. package/dist/infrastructure/database/migrations/v62.js.map +1 -0
  33. package/dist/infrastructure/database/schema-ddl.d.ts +2 -2
  34. package/dist/infrastructure/database/schema-ddl.d.ts.map +1 -1
  35. package/dist/infrastructure/database/schema-ddl.js +13 -2
  36. package/dist/infrastructure/database/schema-ddl.js.map +1 -1
  37. package/dist/infrastructure/database/schema.d.ts +1 -1
  38. package/dist/infrastructure/database/schema.js +1 -1
  39. package/dist/infrastructure/keystore/keystore.d.ts +6 -0
  40. package/dist/infrastructure/keystore/keystore.d.ts.map +1 -1
  41. package/dist/infrastructure/keystore/keystore.js +58 -1
  42. package/dist/infrastructure/keystore/keystore.js.map +1 -1
  43. package/dist/infrastructure/nft/nft-indexer-client.d.ts.map +1 -1
  44. package/dist/infrastructure/nft/nft-indexer-client.js +6 -0
  45. package/dist/infrastructure/nft/nft-indexer-client.js.map +1 -1
  46. package/dist/infrastructure/oracle/coingecko-platform-ids.d.ts +2 -2
  47. package/dist/infrastructure/oracle/coingecko-platform-ids.d.ts.map +1 -1
  48. package/dist/infrastructure/oracle/coingecko-platform-ids.js +4 -2
  49. package/dist/infrastructure/oracle/coingecko-platform-ids.js.map +1 -1
  50. package/dist/infrastructure/oracle/oracle-chain.d.ts +2 -2
  51. package/dist/infrastructure/oracle/oracle-chain.d.ts.map +1 -1
  52. package/dist/infrastructure/oracle/oracle-chain.js +4 -3
  53. package/dist/infrastructure/oracle/oracle-chain.js.map +1 -1
  54. package/dist/infrastructure/oracle/price-cache.d.ts.map +1 -1
  55. package/dist/infrastructure/oracle/price-cache.js +5 -1
  56. package/dist/infrastructure/oracle/price-cache.js.map +1 -1
  57. package/dist/infrastructure/oracle/pyth-feed-ids.d.ts.map +1 -1
  58. package/dist/infrastructure/oracle/pyth-feed-ids.js +2 -0
  59. package/dist/infrastructure/oracle/pyth-feed-ids.js.map +1 -1
  60. package/dist/infrastructure/oracle/pyth-oracle.d.ts.map +1 -1
  61. package/dist/infrastructure/oracle/pyth-oracle.js +2 -1
  62. package/dist/infrastructure/oracle/pyth-oracle.js.map +1 -1
  63. package/dist/infrastructure/settings/setting-keys.d.ts.map +1 -1
  64. package/dist/infrastructure/settings/setting-keys.js +14 -2
  65. package/dist/infrastructure/settings/setting-keys.js.map +1 -1
  66. package/dist/infrastructure/token-registry/builtin-tokens.d.ts +3 -3
  67. package/dist/infrastructure/token-registry/builtin-tokens.d.ts.map +1 -1
  68. package/dist/infrastructure/token-registry/builtin-tokens.js +10 -2
  69. package/dist/infrastructure/token-registry/builtin-tokens.js.map +1 -1
  70. package/dist/pipeline/resolve-effective-amount-usd.d.ts.map +1 -1
  71. package/dist/pipeline/resolve-effective-amount-usd.js +32 -0
  72. package/dist/pipeline/resolve-effective-amount-usd.js.map +1 -1
  73. package/dist/services/signing-sdk/preset-auto-setup.d.ts +5 -4
  74. package/dist/services/signing-sdk/preset-auto-setup.d.ts.map +1 -1
  75. package/dist/services/signing-sdk/preset-auto-setup.js +11 -16
  76. package/dist/services/signing-sdk/preset-auto-setup.js.map +1 -1
  77. package/dist/services/signing-sdk/sign-request-builder.d.ts.map +1 -1
  78. package/dist/services/signing-sdk/sign-request-builder.js +20 -22
  79. package/dist/services/signing-sdk/sign-request-builder.js.map +1 -1
  80. package/dist/services/signing-sdk/wallet-app-service.d.ts.map +1 -1
  81. package/dist/services/signing-sdk/wallet-app-service.js +47 -35
  82. package/dist/services/signing-sdk/wallet-app-service.js.map +1 -1
  83. package/package.json +7 -5
  84. package/public/admin/assets/{UpdateBanner-BfdJCibC.js → UpdateBanner-Cn-hj-wW.js} +1 -1
  85. package/public/admin/assets/index-BM3-LfbF.js +4 -0
  86. package/public/admin/assets/{setup-wizard-CuTGFqla.js → setup-wizard-CvUtCl2u.js} +2 -2
  87. package/public/admin/assets/{wc-connector-qNNhseI-.js → wc-connector-CWh3cCdO.js} +1 -1
  88. package/public/admin/assets/{wc-qr-modal-BND1_Hv5.js → wc-qr-modal-DGfrGjIU.js} +1 -1
  89. package/public/admin/assets/{wizard-store-CZoifFis.js → wizard-store-69m7YAsO.js} +1 -1
  90. package/public/admin/index.html +1 -1
  91. package/public/admin/assets/index-CUtJITxv.js +0 -4
@@ -0,0 +1,274 @@
1
+ /**
2
+ * Database migration v62: Add 'ripple' to chain CHECK constraints and XRPL networks to network CHECK.
3
+ *
4
+ * SQLite CHECK constraints are immutable after table creation, so we use the
5
+ * 12-step table recreation pattern for each affected table.
6
+ *
7
+ * Affected tables (chain CHECK):
8
+ * - wallets
9
+ * - incoming_transactions
10
+ * - defi_positions
11
+ * - nft_metadata_cache
12
+ *
13
+ * Affected tables (network CHECK):
14
+ * - transactions
15
+ * - policies
16
+ * - defi_positions (also has chain CHECK)
17
+ * - nft_metadata_cache (also has chain CHECK)
18
+ *
19
+ * @see Phase 470-03
20
+ */
21
+ import { CHAIN_TYPES, NETWORK_TYPES, TRANSACTION_TYPES, TRANSACTION_STATUSES, POLICY_TIERS, WALLET_STATUSES, POLICY_TYPES, INCOMING_TX_STATUSES, POSITION_CATEGORIES, POSITION_STATUSES, ACCOUNT_TYPES, } from '@waiaas/core';
22
+ import { inList } from '../schema-ddl.js';
23
+ export const migrations = [
24
+ {
25
+ version: 62,
26
+ description: 'Add ripple chain type and XRPL networks to CHECK constraints (12-step table recreation)',
27
+ managesOwnTransaction: true,
28
+ up: (sqlite) => {
29
+ sqlite.exec('BEGIN');
30
+ try {
31
+ // ── 1. wallets table (chain CHECK) ─────────────────────────────
32
+ sqlite.exec(`CREATE TABLE wallets_new (
33
+ id TEXT PRIMARY KEY,
34
+ name TEXT NOT NULL,
35
+ chain TEXT NOT NULL CHECK (chain IN (${inList(CHAIN_TYPES)})),
36
+ environment TEXT NOT NULL CHECK (environment IN ('testnet', 'mainnet')),
37
+ public_key TEXT NOT NULL,
38
+ status TEXT NOT NULL DEFAULT 'CREATING' CHECK (status IN (${inList(WALLET_STATUSES)})),
39
+ owner_address TEXT,
40
+ owner_verified INTEGER NOT NULL DEFAULT 0 CHECK (owner_verified IN (0, 1)),
41
+ created_at INTEGER NOT NULL,
42
+ updated_at INTEGER NOT NULL,
43
+ suspended_at INTEGER,
44
+ suspension_reason TEXT,
45
+ monitor_incoming INTEGER NOT NULL DEFAULT 0,
46
+ owner_approval_method TEXT CHECK (owner_approval_method IS NULL OR owner_approval_method IN ('sdk_push', 'sdk_telegram', 'walletconnect', 'telegram_bot', 'rest')),
47
+ wallet_type TEXT,
48
+ account_type TEXT NOT NULL DEFAULT 'eoa' CHECK (account_type IN (${inList(ACCOUNT_TYPES)})),
49
+ signer_key TEXT,
50
+ deployed INTEGER NOT NULL DEFAULT 1,
51
+ entry_point TEXT,
52
+ aa_provider TEXT CHECK (aa_provider IS NULL OR aa_provider IN ('pimlico', 'alchemy', 'custom')),
53
+ aa_provider_api_key_encrypted TEXT,
54
+ aa_bundler_url TEXT,
55
+ aa_paymaster_url TEXT,
56
+ aa_paymaster_policy_id TEXT,
57
+ factory_address TEXT
58
+ )`);
59
+ sqlite.exec(`INSERT INTO wallets_new (
60
+ id, name, chain, environment, public_key, status, owner_address, owner_verified,
61
+ created_at, updated_at, suspended_at, suspension_reason, monitor_incoming,
62
+ owner_approval_method, wallet_type, account_type, signer_key, deployed,
63
+ entry_point, aa_provider, aa_provider_api_key_encrypted, aa_bundler_url,
64
+ aa_paymaster_url, aa_paymaster_policy_id, factory_address
65
+ ) SELECT
66
+ id, name, chain, environment, public_key, status, owner_address, owner_verified,
67
+ created_at, updated_at, suspended_at, suspension_reason, monitor_incoming,
68
+ owner_approval_method, wallet_type, account_type, signer_key, deployed,
69
+ entry_point, aa_provider, aa_provider_api_key_encrypted, aa_bundler_url,
70
+ aa_paymaster_url, aa_paymaster_policy_id, factory_address
71
+ FROM wallets`);
72
+ sqlite.exec('DROP TABLE wallets');
73
+ sqlite.exec('ALTER TABLE wallets_new RENAME TO wallets');
74
+ // Recreate wallets indexes
75
+ sqlite.exec('CREATE UNIQUE INDEX idx_wallets_public_key ON wallets(public_key)');
76
+ sqlite.exec('CREATE INDEX idx_wallets_status ON wallets(status)');
77
+ sqlite.exec('CREATE INDEX idx_wallets_chain_environment ON wallets(chain, environment)');
78
+ sqlite.exec('CREATE INDEX idx_wallets_owner_address ON wallets(owner_address)');
79
+ // ── 2. transactions table (network CHECK) ─────────────────────
80
+ sqlite.exec(`CREATE TABLE transactions_new (
81
+ id TEXT PRIMARY KEY,
82
+ wallet_id TEXT NOT NULL REFERENCES wallets(id) ON DELETE RESTRICT,
83
+ session_id TEXT REFERENCES sessions(id) ON DELETE SET NULL,
84
+ chain TEXT NOT NULL,
85
+ tx_hash TEXT,
86
+ type TEXT NOT NULL CHECK (type IN (${inList(TRANSACTION_TYPES)})),
87
+ amount TEXT,
88
+ to_address TEXT,
89
+ token_mint TEXT,
90
+ contract_address TEXT,
91
+ method_signature TEXT,
92
+ spender_address TEXT,
93
+ approved_amount TEXT,
94
+ parent_id TEXT REFERENCES transactions_new(id) ON DELETE CASCADE,
95
+ batch_index INTEGER,
96
+ status TEXT NOT NULL DEFAULT 'PENDING' CHECK (status IN (${inList(TRANSACTION_STATUSES)})),
97
+ tier TEXT CHECK (tier IS NULL OR tier IN (${inList(POLICY_TIERS)})),
98
+ queued_at INTEGER,
99
+ executed_at INTEGER,
100
+ created_at INTEGER NOT NULL,
101
+ reserved_amount TEXT,
102
+ amount_usd REAL,
103
+ reserved_amount_usd REAL,
104
+ error TEXT,
105
+ metadata TEXT,
106
+ network TEXT CHECK (network IS NULL OR network IN (${inList(NETWORK_TYPES)})),
107
+ bridge_status TEXT CHECK (bridge_status IS NULL OR bridge_status IN ('PENDING', 'COMPLETED', 'FAILED', 'BRIDGE_MONITORING', 'TIMEOUT', 'REFUNDED', 'PARTIALLY_FILLED', 'FILLED', 'CANCELED', 'SETTLED', 'EXPIRED')),
108
+ bridge_metadata TEXT,
109
+ action_kind TEXT NOT NULL DEFAULT 'contractCall',
110
+ venue TEXT,
111
+ operation TEXT,
112
+ external_id TEXT
113
+ )`);
114
+ sqlite.exec(`INSERT INTO transactions_new (
115
+ id, wallet_id, session_id, chain, tx_hash, type, amount, to_address,
116
+ token_mint, contract_address, method_signature, spender_address, approved_amount,
117
+ parent_id, batch_index, status, tier, queued_at, executed_at, created_at,
118
+ reserved_amount, amount_usd, reserved_amount_usd, error, metadata, network,
119
+ bridge_status, bridge_metadata, action_kind, venue, operation, external_id
120
+ ) SELECT
121
+ id, wallet_id, session_id, chain, tx_hash, type, amount, to_address,
122
+ token_mint, contract_address, method_signature, spender_address, approved_amount,
123
+ parent_id, batch_index, status, tier, queued_at, executed_at, created_at,
124
+ reserved_amount, amount_usd, reserved_amount_usd, error, metadata, network,
125
+ bridge_status, bridge_metadata, action_kind, venue, operation, external_id
126
+ FROM transactions`);
127
+ sqlite.exec('DROP TABLE transactions');
128
+ sqlite.exec('ALTER TABLE transactions_new RENAME TO transactions');
129
+ // Recreate transactions indexes
130
+ sqlite.exec('CREATE INDEX idx_transactions_wallet_status ON transactions(wallet_id, status)');
131
+ sqlite.exec('CREATE INDEX idx_transactions_session_id ON transactions(session_id)');
132
+ sqlite.exec('CREATE UNIQUE INDEX idx_transactions_tx_hash ON transactions(tx_hash)');
133
+ sqlite.exec('CREATE INDEX idx_transactions_queued_at ON transactions(queued_at)');
134
+ sqlite.exec('CREATE INDEX idx_transactions_created_at ON transactions(created_at)');
135
+ sqlite.exec('CREATE INDEX idx_transactions_type ON transactions(type)');
136
+ sqlite.exec('CREATE INDEX idx_transactions_contract_address ON transactions(contract_address)');
137
+ sqlite.exec('CREATE INDEX idx_transactions_parent_id ON transactions(parent_id)');
138
+ sqlite.exec("CREATE INDEX idx_transactions_bridge_status ON transactions(bridge_status) WHERE bridge_status IS NOT NULL");
139
+ sqlite.exec("CREATE INDEX idx_transactions_gas_waiting ON transactions(status) WHERE status = 'GAS_WAITING'");
140
+ sqlite.exec('CREATE INDEX idx_transactions_action_kind ON transactions(action_kind)');
141
+ sqlite.exec("CREATE INDEX idx_transactions_venue ON transactions(venue) WHERE venue IS NOT NULL");
142
+ sqlite.exec("CREATE INDEX idx_transactions_external_id ON transactions(external_id) WHERE external_id IS NOT NULL");
143
+ sqlite.exec("CREATE INDEX idx_transactions_action_kind_bridge_status ON transactions(action_kind, bridge_status) WHERE bridge_status IS NOT NULL");
144
+ // ── 3. policies table (network CHECK) ─────────────────────────
145
+ sqlite.exec(`CREATE TABLE policies_new (
146
+ id TEXT PRIMARY KEY,
147
+ wallet_id TEXT REFERENCES wallets(id) ON DELETE CASCADE,
148
+ type TEXT NOT NULL CHECK (type IN (${inList(POLICY_TYPES)})),
149
+ rules TEXT NOT NULL,
150
+ priority INTEGER NOT NULL DEFAULT 0,
151
+ enabled INTEGER NOT NULL DEFAULT 1,
152
+ network TEXT CHECK (network IS NULL OR network IN (${inList(NETWORK_TYPES)})),
153
+ created_at INTEGER NOT NULL,
154
+ updated_at INTEGER NOT NULL
155
+ )`);
156
+ sqlite.exec(`INSERT INTO policies_new (
157
+ id, wallet_id, type, rules, priority, enabled, network, created_at, updated_at
158
+ ) SELECT
159
+ id, wallet_id, type, rules, priority, enabled, network, created_at, updated_at
160
+ FROM policies`);
161
+ sqlite.exec('DROP TABLE policies');
162
+ sqlite.exec('ALTER TABLE policies_new RENAME TO policies');
163
+ // Recreate policies indexes
164
+ sqlite.exec('CREATE INDEX idx_policies_wallet_enabled ON policies(wallet_id, enabled)');
165
+ sqlite.exec('CREATE INDEX idx_policies_type ON policies(type)');
166
+ sqlite.exec('CREATE INDEX idx_policies_network ON policies(network)');
167
+ // ── 4. incoming_transactions table (chain CHECK) ──────────────
168
+ sqlite.exec(`CREATE TABLE incoming_transactions_new (
169
+ id TEXT PRIMARY KEY,
170
+ tx_hash TEXT NOT NULL,
171
+ wallet_id TEXT NOT NULL REFERENCES wallets(id) ON DELETE CASCADE,
172
+ from_address TEXT NOT NULL,
173
+ amount TEXT NOT NULL,
174
+ token_address TEXT,
175
+ chain TEXT NOT NULL CHECK (chain IN (${inList(CHAIN_TYPES)})),
176
+ network TEXT NOT NULL,
177
+ status TEXT NOT NULL DEFAULT 'DETECTED' CHECK (status IN (${inList(INCOMING_TX_STATUSES)})),
178
+ block_number INTEGER,
179
+ detected_at INTEGER NOT NULL,
180
+ confirmed_at INTEGER,
181
+ is_suspicious INTEGER NOT NULL DEFAULT 0,
182
+ UNIQUE(tx_hash, wallet_id)
183
+ )`);
184
+ sqlite.exec(`INSERT INTO incoming_transactions_new (
185
+ id, tx_hash, wallet_id, from_address, amount, token_address, chain,
186
+ network, status, block_number, detected_at, confirmed_at, is_suspicious
187
+ ) SELECT
188
+ id, tx_hash, wallet_id, from_address, amount, token_address, chain,
189
+ network, status, block_number, detected_at, confirmed_at, is_suspicious
190
+ FROM incoming_transactions`);
191
+ sqlite.exec('DROP TABLE incoming_transactions');
192
+ sqlite.exec('ALTER TABLE incoming_transactions_new RENAME TO incoming_transactions');
193
+ // Recreate incoming_transactions indexes
194
+ sqlite.exec('CREATE INDEX idx_incoming_tx_wallet_detected ON incoming_transactions(wallet_id, detected_at DESC)');
195
+ sqlite.exec('CREATE INDEX idx_incoming_tx_detected_at ON incoming_transactions(detected_at)');
196
+ sqlite.exec('CREATE INDEX idx_incoming_tx_chain_network ON incoming_transactions(chain, network)');
197
+ sqlite.exec("CREATE INDEX idx_incoming_tx_status ON incoming_transactions(status) WHERE status = 'DETECTED'");
198
+ // ── 5. defi_positions table (chain CHECK + network CHECK) ─────
199
+ sqlite.exec(`CREATE TABLE defi_positions_new (
200
+ id TEXT PRIMARY KEY,
201
+ wallet_id TEXT NOT NULL REFERENCES wallets(id) ON DELETE CASCADE,
202
+ category TEXT NOT NULL CHECK(category IN (${inList(POSITION_CATEGORIES)})),
203
+ provider TEXT NOT NULL,
204
+ chain TEXT NOT NULL CHECK(chain IN (${inList(CHAIN_TYPES)})),
205
+ environment TEXT NOT NULL DEFAULT 'mainnet',
206
+ network TEXT CHECK(network IS NULL OR network IN (${inList(NETWORK_TYPES)})),
207
+ asset_id TEXT,
208
+ amount TEXT NOT NULL,
209
+ amount_usd REAL,
210
+ metadata TEXT,
211
+ status TEXT NOT NULL DEFAULT 'ACTIVE' CHECK(status IN (${inList(POSITION_STATUSES)})),
212
+ opened_at INTEGER NOT NULL,
213
+ closed_at INTEGER,
214
+ last_synced_at INTEGER NOT NULL,
215
+ created_at INTEGER NOT NULL,
216
+ updated_at INTEGER NOT NULL
217
+ )`);
218
+ // Explicit column list required: environment was added via ALTER TABLE ADD
219
+ // and sits at the end of the source table, but is defined at position 6 in
220
+ // the new table. SELECT * would map columns by position and break.
221
+ sqlite.exec(`INSERT INTO defi_positions_new (
222
+ id, wallet_id, category, provider, chain, environment, network,
223
+ asset_id, amount, amount_usd, metadata, status,
224
+ opened_at, closed_at, last_synced_at, created_at, updated_at
225
+ ) SELECT
226
+ id, wallet_id, category, provider, chain, environment, network,
227
+ asset_id, amount, amount_usd, metadata, status,
228
+ opened_at, closed_at, last_synced_at, created_at, updated_at
229
+ FROM defi_positions`);
230
+ sqlite.exec('DROP TABLE defi_positions');
231
+ sqlite.exec('ALTER TABLE defi_positions_new RENAME TO defi_positions');
232
+ // Recreate defi_positions indexes
233
+ sqlite.exec('CREATE INDEX idx_defi_positions_wallet_category ON defi_positions(wallet_id, category)');
234
+ sqlite.exec('CREATE INDEX idx_defi_positions_wallet_provider ON defi_positions(wallet_id, provider)');
235
+ sqlite.exec('CREATE INDEX idx_defi_positions_status ON defi_positions(status)');
236
+ sqlite.exec('CREATE UNIQUE INDEX idx_defi_positions_unique ON defi_positions(wallet_id, provider, asset_id, category)');
237
+ sqlite.exec('CREATE INDEX idx_defi_positions_environment ON defi_positions(environment)');
238
+ // ── 6. nft_metadata_cache table (chain CHECK + network CHECK) ─
239
+ sqlite.exec(`CREATE TABLE nft_metadata_cache_new (
240
+ id TEXT PRIMARY KEY,
241
+ contract_address TEXT NOT NULL,
242
+ token_id TEXT NOT NULL,
243
+ chain TEXT NOT NULL CHECK (chain IN (${inList(CHAIN_TYPES)})),
244
+ network TEXT NOT NULL CHECK (network IN (${inList(NETWORK_TYPES)})),
245
+ metadata_json TEXT NOT NULL,
246
+ cached_at INTEGER NOT NULL,
247
+ expires_at INTEGER NOT NULL
248
+ )`);
249
+ sqlite.exec(`INSERT INTO nft_metadata_cache_new (
250
+ id, contract_address, token_id, chain, network, metadata_json, cached_at, expires_at
251
+ ) SELECT
252
+ id, contract_address, token_id, chain, network, metadata_json, cached_at, expires_at
253
+ FROM nft_metadata_cache`);
254
+ sqlite.exec('DROP TABLE nft_metadata_cache');
255
+ sqlite.exec('ALTER TABLE nft_metadata_cache_new RENAME TO nft_metadata_cache');
256
+ // Recreate nft_metadata_cache indexes
257
+ sqlite.exec('CREATE UNIQUE INDEX idx_nft_cache_unique ON nft_metadata_cache(contract_address, token_id, chain, network)');
258
+ sqlite.exec('CREATE INDEX idx_nft_cache_expires ON nft_metadata_cache(expires_at)');
259
+ sqlite.exec('COMMIT');
260
+ }
261
+ catch (err) {
262
+ sqlite.exec('ROLLBACK');
263
+ throw err;
264
+ }
265
+ // Verify FK integrity after recreation
266
+ sqlite.pragma('foreign_keys = ON');
267
+ const fkErrors = sqlite.pragma('foreign_key_check');
268
+ if (fkErrors.length > 0) {
269
+ throw new Error(`FK integrity violation after v62: ${JSON.stringify(fkErrors)}`);
270
+ }
271
+ },
272
+ },
273
+ ];
274
+ //# sourceMappingURL=v62.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v62.js","sourceRoot":"","sources":["../../../../src/infrastructure/database/migrations/v62.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  * LATEST_SCHEMA_VERSION, and shared utility constants used by migration files.
7
7
  */
8
8
  export declare const inList: (values: readonly string[]) => string;
9
- export declare const NETWORK_TYPES_WITH_LEGACY: readonly ("testnet" | "mainnet" | "solana-mainnet" | "solana-devnet" | "solana-testnet" | "ethereum-mainnet" | "ethereum-sepolia" | "polygon-mainnet" | "polygon-amoy" | "arbitrum-mainnet" | "arbitrum-sepolia" | "optimism-mainnet" | "optimism-sepolia" | "base-mainnet" | "base-sepolia" | "hyperevm-mainnet" | "hyperevm-testnet" | "devnet")[];
9
+ export declare const NETWORK_TYPES_WITH_LEGACY: readonly ("testnet" | "mainnet" | "solana-mainnet" | "solana-devnet" | "solana-testnet" | "ethereum-mainnet" | "ethereum-sepolia" | "polygon-mainnet" | "polygon-amoy" | "arbitrum-mainnet" | "arbitrum-sepolia" | "optimism-mainnet" | "optimism-sepolia" | "base-mainnet" | "base-sepolia" | "hyperevm-mainnet" | "hyperevm-testnet" | "xrpl-mainnet" | "xrpl-testnet" | "xrpl-devnet" | "devnet")[];
10
10
  /**
11
11
  * Map legacy bare Solana network names to their prefixed form.
12
12
  * Used by pre-v29 migrations (e.g., v22 asset_id backfill) that need to look up
@@ -18,7 +18,7 @@ export declare const LEGACY_NETWORK_NORMALIZE: Record<string, string>;
18
18
  * pushSchema() records this version for fresh databases so migrations are skipped.
19
19
  * Increment this whenever DDL statements are updated to match a new migration.
20
20
  */
21
- export declare const LATEST_SCHEMA_VERSION = 60;
21
+ export declare const LATEST_SCHEMA_VERSION = 62;
22
22
  export declare function getCreateTableStatements(): string[];
23
23
  export declare function getCreateIndexStatements(): string[];
24
24
  //# sourceMappingURL=schema-ddl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-ddl.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/database/schema-ddl.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAsBH,eAAO,MAAM,MAAM,GAAI,QAAQ,SAAS,MAAM,EAAE,WAA2C,CAAC;AAU5F,eAAO,MAAM,yBAAyB,sVAAuE,CAAC;AAE9G;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI3D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,CAsdnD;AAMD,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,CA4InD"}
1
+ {"version":3,"file":"schema-ddl.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/database/schema-ddl.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAsBH,eAAO,MAAM,MAAM,GAAI,QAAQ,SAAS,MAAM,EAAE,WAA2C,CAAC;AAU5F,eAAO,MAAM,yBAAyB,wYAAuE,CAAC;AAE9G;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI3D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,CAsdnD;AAMD,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,CAyJnD"}
@@ -34,7 +34,7 @@ export const LEGACY_NETWORK_NORMALIZE = {
34
34
  * pushSchema() records this version for fresh databases so migrations are skipped.
35
35
  * Increment this whenever DDL statements are updated to match a new migration.
36
36
  */
37
- export const LATEST_SCHEMA_VERSION = 60;
37
+ export const LATEST_SCHEMA_VERSION = 62;
38
38
  export function getCreateTableStatements() {
39
39
  return [
40
40
  // Table 1: wallets (renamed from agents in v3, environment model in v6b, v29.3: default_network removed)
@@ -275,7 +275,7 @@ export function getCreateTableStatements() {
275
275
  created_at INTEGER NOT NULL,
276
276
  updated_at INTEGER NOT NULL
277
277
  )`,
278
- // Table 19: wallet_apps (Human Wallet Apps registry, v29.7, v60: push_relay_url added)
278
+ // Table 19: wallet_apps (Human Wallet Apps registry, v29.7, v60: push_relay_url, v61: signing primary partial unique index)
279
279
  `CREATE TABLE IF NOT EXISTS wallet_apps (
280
280
  id TEXT PRIMARY KEY,
281
281
  name TEXT NOT NULL UNIQUE,
@@ -546,6 +546,8 @@ export function getCreateIndexStatements() {
546
546
  'CREATE INDEX IF NOT EXISTS idx_defi_positions_environment ON defi_positions(environment)',
547
547
  // v34: wallet_apps.wallet_type index
548
548
  'CREATE INDEX IF NOT EXISTS idx_wallet_apps_wallet_type ON wallet_apps(wallet_type)',
549
+ // v61: signing primary partial unique index (one signing_enabled=1 per wallet_type)
550
+ 'CREATE UNIQUE INDEX IF NOT EXISTS idx_wallet_apps_signing_primary ON wallet_apps(wallet_type) WHERE signing_enabled = 1',
549
551
  // v37: webhooks + webhook_logs indexes (OPS-04)
550
552
  'CREATE INDEX IF NOT EXISTS idx_webhooks_enabled ON webhooks(enabled)',
551
553
  'CREATE INDEX IF NOT EXISTS idx_webhook_logs_webhook_id ON webhook_logs(webhook_id)',
@@ -591,6 +593,15 @@ export function getCreateIndexStatements() {
591
593
  'CREATE INDEX IF NOT EXISTS idx_transactions_external_id ON transactions(external_id) WHERE external_id IS NOT NULL',
592
594
  // v57: composite index for external action tracking queries
593
595
  'CREATE INDEX IF NOT EXISTS idx_transactions_action_kind_bridge_status ON transactions(action_kind, bridge_status) WHERE bridge_status IS NOT NULL',
596
+ // v61: CHECK triggers for wallet_apps.signing_enabled (must be 0 or 1)
597
+ `CREATE TRIGGER IF NOT EXISTS trg_wallet_apps_signing_check_insert
598
+ BEFORE INSERT ON wallet_apps
599
+ WHEN NEW.signing_enabled NOT IN (0, 1)
600
+ BEGIN SELECT RAISE(ABORT, 'signing_enabled must be 0 or 1'); END`,
601
+ `CREATE TRIGGER IF NOT EXISTS trg_wallet_apps_signing_check_update
602
+ BEFORE UPDATE ON wallet_apps
603
+ WHEN NEW.signing_enabled NOT IN (0, 1)
604
+ BEGIN SELECT RAISE(ABORT, 'signing_enabled must be 0 or 1'); END`,
594
605
  ];
595
606
  }
596
607
  //# sourceMappingURL=schema-ddl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-ddl.js","sourceRoot":"","sources":["../../../src/infrastructure/database/schema-ddl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-ddl.js","sourceRoot":"","sources":["../../../src/infrastructure/database/schema-ddl.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Drizzle ORM schema definitions for WAIaaS daemon SQLite database.
3
3
  *
4
- * 30 tables: wallets, sessions, session_wallets, transactions, policies, pending_approvals, audit_log, key_value_store, notification_logs, token_registry, settings, telegram_users, wc_sessions, wc_store, incoming_transactions, incoming_tx_cursors, defi_positions, wallet_apps, webhooks, webhook_logs, agent_identities, reputation_cache, nft_metadata_cache, userop_builds, hyperliquid_orders, hyperliquid_sub_accounts, polymarket_orders, polymarket_positions, polymarket_api_keys, wallet_credentials
4
+ * 30 tables (schema v61): wallets, sessions, session_wallets, transactions, policies, pending_approvals, audit_log, key_value_store, notification_logs, token_registry, settings, telegram_users, wc_sessions, wc_store, incoming_transactions, incoming_tx_cursors, defi_positions, wallet_apps, webhooks, webhook_logs, agent_identities, reputation_cache, nft_metadata_cache, userop_builds, hyperliquid_orders, hyperliquid_sub_accounts, polymarket_orders, polymarket_positions, polymarket_api_keys, wallet_credentials
5
5
  *
6
6
  * CHECK constraints are derived from @waiaas/core enum SSoT arrays (not hardcoded strings).
7
7
  * All timestamps are Unix epoch seconds via { mode: 'timestamp' }.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Drizzle ORM schema definitions for WAIaaS daemon SQLite database.
3
3
  *
4
- * 30 tables: wallets, sessions, session_wallets, transactions, policies, pending_approvals, audit_log, key_value_store, notification_logs, token_registry, settings, telegram_users, wc_sessions, wc_store, incoming_transactions, incoming_tx_cursors, defi_positions, wallet_apps, webhooks, webhook_logs, agent_identities, reputation_cache, nft_metadata_cache, userop_builds, hyperliquid_orders, hyperliquid_sub_accounts, polymarket_orders, polymarket_positions, polymarket_api_keys, wallet_credentials
4
+ * 30 tables (schema v61): wallets, sessions, session_wallets, transactions, policies, pending_approvals, audit_log, key_value_store, notification_logs, token_registry, settings, telegram_users, wc_sessions, wc_store, incoming_transactions, incoming_tx_cursors, defi_positions, wallet_apps, webhooks, webhook_logs, agent_identities, reputation_cache, nft_metadata_cache, userop_builds, hyperliquid_orders, hyperliquid_sub_accounts, polymarket_orders, polymarket_positions, polymarket_api_keys, wallet_credentials
5
5
  *
6
6
  * CHECK constraints are derived from @waiaas/core enum SSoT arrays (not hardcoded strings).
7
7
  * All timestamps are Unix epoch seconds via { mode: 'timestamp' }.
@@ -104,6 +104,12 @@ export declare class LocalKeyStore implements ILocalKeyStore {
104
104
  * Check if sodium-native guarded memory is available.
105
105
  */
106
106
  get sodiumAvailable(): boolean;
107
+ /**
108
+ * Generate an Ed25519 keypair for Ripple (XRP Ledger).
109
+ * Uses sodium-native for Ed25519 keypair generation and ripple-keypairs for r-address derivation.
110
+ * Encrypts only the 32-byte Ed25519 seed (not the full 64-byte secret key).
111
+ */
112
+ private generateRippleKeyPair;
107
113
  private keystorePath;
108
114
  /**
109
115
  * Write keystore file atomically using write-then-rename pattern.
@@ -1 +1 @@
1
- {"version":3,"file":"keystore.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/keystore/keystore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAc9D,8CAA8C;AAC9C,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,CAAC,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,4FAA4F;IAC5F,KAAK,EAAE,SAAS,GAAG,WAAW,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE;QACN,MAAM,EAAE,aAAa,CAAC;QACtB,YAAY,EAAE;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;QAC7B,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,UAAU,CAAC;QAChB,SAAS,EAAE;YACT,IAAI,EAAE,MAAM,CAAC;YACb,UAAU,EAAE,MAAM,CAAC;YACnB,QAAQ,EAAE,MAAM,CAAC;YACjB,WAAW,EAAE,MAAM,CAAC;YACpB,UAAU,EAAE,MAAM,CAAC;SACpB,CAAC;KACH,CAAC;IACF,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;KAC/B,CAAC;CACH;AAED;;;GAGG;AACH,qBAAa,aAAc,YAAW,cAAc;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,gEAAgE;IAChE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkC;gBAElD,WAAW,EAAE,MAAM;IAI/B;;;;;;;;;;;OAWG;IACG,eAAe,CACnB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,mBAAmB,EAAE,UAAU,CAAA;KAAE,CAAC;IAclE;;OAEG;YACW,sBAAsB;IAwDpC;;;OAGG;YACW,wBAAwB;IAwDtC;;;;OAIG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA8BtF;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI;IAiBjC;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAShD;;OAEG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBhD;;;OAGG;IACH,OAAO,IAAI,IAAI;IAOf;;OAEG;IACH,IAAI,eAAe,IAAI,OAAO,CAE7B;IAID,OAAO,CAAC,YAAY;IAIpB;;;OAGG;YACW,iBAAiB;YASjB,gBAAgB;CA4B/B"}
1
+ {"version":3,"file":"keystore.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/keystore/keystore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAc9D,8CAA8C;AAC9C,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,CAAC,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,4FAA4F;IAC5F,KAAK,EAAE,SAAS,GAAG,WAAW,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE;QACN,MAAM,EAAE,aAAa,CAAC;QACtB,YAAY,EAAE;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;QAC7B,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,UAAU,CAAC;QAChB,SAAS,EAAE;YACT,IAAI,EAAE,MAAM,CAAC;YACb,UAAU,EAAE,MAAM,CAAC;YACnB,QAAQ,EAAE,MAAM,CAAC;YACjB,WAAW,EAAE,MAAM,CAAC;YACpB,UAAU,EAAE,MAAM,CAAC;SACpB,CAAC;KACH,CAAC;IACF,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;KAC/B,CAAC;CACH;AAED;;;GAGG;AACH,qBAAa,aAAc,YAAW,cAAc;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,gEAAgE;IAChE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkC;gBAElD,WAAW,EAAE,MAAM;IAI/B;;;;;;;;;;;OAWG;IACG,eAAe,CACnB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,mBAAmB,EAAE,UAAU,CAAA;KAAE,CAAC;IAkBlE;;OAEG;YACW,sBAAsB;IAwDpC;;;OAGG;YACW,wBAAwB;IAwDtC;;;;OAIG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA8BtF;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI;IAiBjC;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAShD;;OAEG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBhD;;;OAGG;IACH,OAAO,IAAI,IAAI;IAOf;;OAEG;IACH,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED;;;;OAIG;YACW,qBAAqB;IAgEnC,OAAO,CAAC,YAAY;IAIpB;;;OAGG;YACW,iBAAiB;YASjB,gBAAgB;CA4B/B"}
@@ -53,8 +53,11 @@ export class LocalKeyStore {
53
53
  if (chain === 'solana') {
54
54
  return this.generateEd25519KeyPair(walletId, network, masterPassword);
55
55
  }
56
+ if (chain === 'ripple') {
57
+ return this.generateRippleKeyPair(walletId, network, masterPassword);
58
+ }
56
59
  throw new WAIaaSError('CHAIN_NOT_SUPPORTED', {
57
- message: `Key generation for chain '${chain}' is not supported. Supported: 'solana', 'ethereum'.`,
60
+ message: `Key generation for chain '${chain}' is not supported. Supported: 'solana', 'ethereum', 'ripple'.`,
58
61
  });
59
62
  }
60
63
  /**
@@ -246,6 +249,60 @@ export class LocalKeyStore {
246
249
  get sodiumAvailable() {
247
250
  return isAvailable();
248
251
  }
252
+ /**
253
+ * Generate an Ed25519 keypair for Ripple (XRP Ledger).
254
+ * Uses sodium-native for Ed25519 keypair generation and ripple-keypairs for r-address derivation.
255
+ * Encrypts only the 32-byte Ed25519 seed (not the full 64-byte secret key).
256
+ */
257
+ async generateRippleKeyPair(walletId, network, masterPassword) {
258
+ const sodium = loadSodium();
259
+ // Generate Ed25519 keypair using sodium
260
+ const publicKeyBuf = Buffer.alloc(sodium.crypto_sign_PUBLICKEYBYTES);
261
+ const secretKeyBuf = Buffer.alloc(sodium.crypto_sign_SECRETKEYBYTES);
262
+ sodium.crypto_sign_keypair(publicKeyBuf, secretKeyBuf);
263
+ // Derive r-address from Ed25519 public key using ripple-keypairs
264
+ // ripple-keypairs expects hex-encoded public key with ED prefix
265
+ const rippleKeypairs = require('ripple-keypairs');
266
+ const publicKeyHex = `ED${publicKeyBuf.toString('hex').toUpperCase()}`;
267
+ const rAddress = rippleKeypairs.deriveAddress(publicKeyHex);
268
+ // Extract the 32-byte Ed25519 seed (first 32 bytes of sodium secret key)
269
+ const seedBuf = secretKeyBuf.subarray(0, 32);
270
+ // Encrypt the 32-byte seed
271
+ const encrypted = await encrypt(Buffer.from(seedBuf), masterPassword);
272
+ // Zero the plaintext secret key immediately
273
+ sodium.sodium_memzero(secretKeyBuf);
274
+ // Build keystore file v1
275
+ const keystoreFile = {
276
+ version: 1,
277
+ id: randomUUID(),
278
+ chain: 'ripple',
279
+ network,
280
+ curve: 'ed25519',
281
+ publicKey: rAddress,
282
+ crypto: {
283
+ cipher: 'aes-256-gcm',
284
+ cipherparams: { iv: encrypted.iv.toString('hex') },
285
+ ciphertext: encrypted.ciphertext.toString('hex'),
286
+ authTag: encrypted.authTag.toString('hex'),
287
+ kdf: 'argon2id',
288
+ kdfparams: {
289
+ salt: encrypted.salt.toString('hex'),
290
+ ...KDF_PARAMS,
291
+ },
292
+ },
293
+ metadata: {
294
+ name: walletId,
295
+ createdAt: new Date().toISOString(),
296
+ lastUnlockedAt: null,
297
+ },
298
+ };
299
+ // Write keystore file atomically (write-then-rename)
300
+ await this.writeKeystoreFile(walletId, keystoreFile);
301
+ return {
302
+ publicKey: rAddress,
303
+ encryptedPrivateKey: new Uint8Array(encrypted.ciphertext),
304
+ };
305
+ }
249
306
  // --- Private helpers ---
250
307
  keystorePath(walletId) {
251
308
  return join(this.keystoreDir, `${walletId}.json`);
@@ -1 +1 @@
1
- {"version":3,"file":"keystore.js","sourceRoot":"","sources":["../../../src/infrastructure/keystore/keystore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keystore.js","sourceRoot":"","sources":["../../../src/infrastructure/keystore/keystore.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"nft-indexer-client.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/nft/nft-indexer-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAe,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACvG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAUhD,UAAU,mBAAmB;IAC3B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAsB;IACrC,eAAe,EAAE,mBAAmB,CAAC;CACtC;AAqBD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAC/C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAC/D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0C;gBAE5D,MAAM,EAAE,sBAAsB;IAI1C;;;OAGG;IACH,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,WAAW;IAoBzC;;OAEG;IACG,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAcjF;;OAEG;IACG,cAAc,CAClB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,CAAC;IAOvB;;OAEG;IACG,mBAAmB,CACvB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,MAAM,EACf,iBAAiB,EAAE,MAAM,EACzB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,aAAa,CAAC;IAczB;;OAEG;IACH,UAAU,IAAI,IAAI;IAMlB,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,QAAQ;IAQhB;;;OAGG;YACW,SAAS;IA8BvB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,KAAK;CAGd"}
1
+ {"version":3,"file":"nft-indexer-client.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/nft/nft-indexer-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAe,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACvG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAUhD,UAAU,mBAAmB;IAC3B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAsB;IACrC,eAAe,EAAE,mBAAmB,CAAC;CACtC;AAqBD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAC/C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAC/D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0C;gBAE5D,MAAM,EAAE,sBAAsB;IAI1C;;;OAGG;IACH,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,WAAW;IA2BzC;;OAEG;IACG,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAcjF;;OAEG;IACG,cAAc,CAClB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,CAAC;IAOvB;;OAEG;IACG,mBAAmB,CACvB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,MAAM,EACf,iBAAiB,EAAE,MAAM,EACzB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,aAAa,CAAC;IAczB;;OAEG;IACH,UAAU,IAAI,IAAI;IAMlB,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,QAAQ;IAQhB;;;OAGG;YACW,SAAS;IA8BvB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,KAAK;CAGd"}
@@ -33,6 +33,12 @@ export class NftIndexerClient {
33
33
  * Throws INDEXER_NOT_CONFIGURED if the API key is not set.
34
34
  */
35
35
  getIndexer(chain) {
36
+ // XRPL NFTs are queried directly via adapter's account_nfts RPC, not external indexers
37
+ if (chain === 'ripple') {
38
+ throw new WAIaaSError('INDEXER_NOT_CONFIGURED', {
39
+ message: 'XRPL NFT indexing uses native RPC via adapter. Use GET /v1/wallet/assets instead.',
40
+ });
41
+ }
36
42
  // Check if we have a cached indexer (and API key hasn't changed)
37
43
  const apiKey = this.getApiKey(chain);
38
44
  const cacheKey = `${chain}:${apiKey}`;
@@ -1 +1 @@
1
- {"version":3,"file":"nft-indexer-client.js","sourceRoot":"","sources":["../../../src/infrastructure/nft/nft-indexer-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nft-indexer-client.js","sourceRoot":"","sources":["../../../src/infrastructure/nft/nft-indexer-client.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  * - platformId: used in /simple/token_price/{platformId} path
6
6
  * - nativeCoinId: used in /simple/price?ids={nativeCoinId} path
7
7
  *
8
- * Supports 6 mainnet networks: Solana, Ethereum, Polygon, Arbitrum, Optimism, Base.
8
+ * Supports 7 mainnet networks: Solana, Ethereum, Polygon, Arbitrum, Optimism, Base, XRPL.
9
9
  * Testnet networks are intentionally excluded (no CoinGecko prices for testnet tokens).
10
10
  */
11
11
  /** CoinGecko platform configuration for a network. */
@@ -18,7 +18,7 @@ export interface CoinGeckoPlatform {
18
18
  /**
19
19
  * Map from WAIaaS NetworkType to CoinGecko platform/coin IDs.
20
20
  *
21
- * 6 mainnet entries covering Solana + Ethereum L1 + 4 EVM L2 networks.
21
+ * 7 mainnet entries covering Solana + Ethereum L1 + 4 EVM L2 + XRPL networks.
22
22
  * Polygon uses 'matic-network' as nativeCoinId (POL/MATIC gas token).
23
23
  * Arbitrum/Optimism/Base use 'ethereum' as nativeCoinId (ETH gas token).
24
24
  */
@@ -1 +1 @@
1
- {"version":3,"file":"coingecko-platform-ids.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/oracle/coingecko-platform-ids.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,sDAAsD;AACtD,MAAM,WAAW,iBAAiB;IAChC,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAUpE,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAEnF"}
1
+ {"version":3,"file":"coingecko-platform-ids.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/oracle/coingecko-platform-ids.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,sDAAsD;AACtD,MAAM,WAAW,iBAAiB;IAChC,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAYpE,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAEnF"}