@gvnrdao/dh-lit-actions 0.0.68 → 0.0.111
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/package.json +8 -2
- package/pkg-dist/pkg-src/constants/chunks/lit-actions-registry.d.ts +1 -9
- package/pkg-dist/pkg-src/constants/chunks/lit-actions-registry.d.ts.map +1 -1
- package/pkg-dist/pkg-src/constants/chunks/lit-actions-registry.js +140 -152
- package/pkg-dist/pkg-src/constants/chunks/lit-actions-registry.js.map +1 -1
- package/pkg-dist/pkg-src/constants/chunks/package-registry.d.ts.map +1 -1
- package/pkg-dist/pkg-src/constants/chunks/package-registry.js +0 -2
- package/pkg-dist/pkg-src/constants/chunks/package-registry.js.map +1 -1
- package/pkg-dist/pkg-src/executors/chunks/vault-snapshot-executor.d.ts.map +1 -1
- package/pkg-dist/pkg-src/executors/chunks/vault-snapshot-executor.js +1 -0
- package/pkg-dist/pkg-src/executors/chunks/vault-snapshot-executor.js.map +1 -1
- package/pkg-dist/pkg-src/interfaces/chunks/diamond-hands-lit-actions.i.d.ts +12 -0
- package/pkg-dist/pkg-src/interfaces/chunks/diamond-hands-lit-actions.i.d.ts.map +1 -1
- package/pkg-dist/pkg-src/interfaces/chunks/lit-action-registry.i.d.ts +0 -2
- package/pkg-dist/pkg-src/interfaces/chunks/lit-action-registry.i.d.ts.map +1 -1
- package/pkg-dist/pkg-src/utils/chunks/cid-utils.d.ts.map +1 -1
- package/pkg-dist/pkg-src/utils/chunks/cid-utils.js +5 -0
- package/pkg-dist/pkg-src/utils/chunks/cid-utils.js.map +1 -1
- package/pkg-dist/pkg-src/utils/chunks/lit-action-helpers.d.ts.map +1 -1
- package/pkg-dist/pkg-src/utils/chunks/lit-action-helpers.js +18 -4
- package/pkg-dist/pkg-src/utils/chunks/lit-action-helpers.js.map +1 -1
- package/pkg-dist/pkg-src/utils/chunks/pkp-setup.d.ts.map +1 -1
- package/pkg-dist/pkg-src/utils/chunks/pkp-setup.js +6 -2
- package/pkg-dist/pkg-src/utils/chunks/pkp-setup.js.map +1 -1
- package/pkg-dist/src/constants/chunks/bitcoin-network-config.js +4 -4
- package/pkg-dist/src/constants/chunks/bitcoin-network-config.js.map +1 -1
- package/pkg-dist/src/constants/chunks/quantum-time.d.ts +7 -7
- package/pkg-dist/src/constants/chunks/quantum-time.js +7 -7
- package/pkg-dist/src/interfaces/chunks/bitcoin-data-provider.i.d.ts +6 -0
- package/pkg-dist/src/interfaces/chunks/bitcoin-data-provider.i.d.ts.map +1 -1
- package/pkg-dist/src/interfaces/chunks/owner-authorization.d.ts +18 -0
- package/pkg-dist/src/interfaces/chunks/owner-authorization.d.ts.map +1 -1
- package/pkg-dist/src/interfaces/chunks/vault-balance-module.i.d.ts +2 -1
- package/pkg-dist/src/interfaces/chunks/vault-balance-module.i.d.ts.map +1 -1
- package/pkg-dist/src/interfaces/chunks/vault-balance.i.d.ts +2 -0
- package/pkg-dist/src/interfaces/chunks/vault-balance.i.d.ts.map +1 -1
- package/pkg-dist/src/interfaces/chunks/vault-snapshot.i.d.ts +2 -0
- package/pkg-dist/src/interfaces/chunks/vault-snapshot.i.d.ts.map +1 -1
- package/pkg-dist/src/modules/authorization.module.d.ts +86 -0
- package/pkg-dist/src/modules/authorization.module.d.ts.map +1 -1
- package/pkg-dist/src/modules/authorization.module.js +175 -0
- package/pkg-dist/src/modules/authorization.module.js.map +1 -1
- package/pkg-dist/src/modules/bitcoin/address.d.ts +40 -0
- package/pkg-dist/src/modules/bitcoin/address.d.ts.map +1 -0
- package/pkg-dist/src/modules/bitcoin/address.js +323 -0
- package/pkg-dist/src/modules/bitcoin/address.js.map +1 -0
- package/pkg-dist/src/modules/bitcoin/provider.d.ts +55 -0
- package/pkg-dist/src/modules/bitcoin/provider.d.ts.map +1 -0
- package/pkg-dist/src/modules/bitcoin/provider.js +67 -0
- package/pkg-dist/src/modules/bitcoin/provider.js.map +1 -0
- package/pkg-dist/src/modules/bitcoin/signature.d.ts +24 -0
- package/pkg-dist/src/modules/bitcoin/signature.d.ts.map +1 -0
- package/pkg-dist/src/modules/bitcoin/signature.js +64 -0
- package/pkg-dist/src/modules/bitcoin/signature.js.map +1 -0
- package/pkg-dist/src/modules/bitcoin/transaction.d.ts +63 -0
- package/pkg-dist/src/modules/bitcoin/transaction.d.ts.map +1 -0
- package/pkg-dist/src/modules/bitcoin/transaction.js +187 -0
- package/pkg-dist/src/modules/bitcoin/transaction.js.map +1 -0
- package/pkg-dist/src/modules/bitcoin-data-provider.module.d.ts +22 -1
- package/pkg-dist/src/modules/bitcoin-data-provider.module.d.ts.map +1 -1
- package/pkg-dist/src/modules/bitcoin-data-provider.module.js +189 -18
- package/pkg-dist/src/modules/bitcoin-data-provider.module.js.map +1 -1
- package/pkg-dist/src/modules/price-oracle.module.d.ts +12 -1
- package/pkg-dist/src/modules/price-oracle.module.d.ts.map +1 -1
- package/pkg-dist/src/modules/price-oracle.module.js +127 -45
- package/pkg-dist/src/modules/price-oracle.module.js.map +1 -1
- package/pkg-dist/src/modules/quantum-time.module.d.ts +1 -1
- package/pkg-dist/src/modules/quantum-time.module.d.ts.map +1 -1
- package/pkg-dist/src/modules/quantum-time.module.js +9 -6
- package/pkg-dist/src/modules/quantum-time.module.js.map +1 -1
- package/pkg-dist/src/modules/vault-balance.module.d.ts +3 -1
- package/pkg-dist/src/modules/vault-balance.module.d.ts.map +1 -1
- package/pkg-dist/src/modules/vault-balance.module.js +59 -2
- package/pkg-dist/src/modules/vault-balance.module.js.map +1 -1
- package/pkg-dist/src/modules/vault-snapshot.d.ts +11 -1
- package/pkg-dist/src/modules/vault-snapshot.d.ts.map +1 -1
- package/pkg-dist/src/modules/vault-snapshot.js +123 -33
- package/pkg-dist/src/modules/vault-snapshot.js.map +1 -1
|
@@ -21,7 +21,71 @@ exports.createBitcoinDataProvider = createBitcoinDataProvider;
|
|
|
21
21
|
class BitcoinDataProvider {
|
|
22
22
|
constructor(config) {
|
|
23
23
|
this.config = config;
|
|
24
|
-
|
|
24
|
+
// Reduced to 15 seconds to leave time for other operations in LIT action (30s total limit)
|
|
25
|
+
// Can be overridden via config.timeout
|
|
26
|
+
this.timeout = config.timeout || 15000;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Get current Bitcoin block height from provider
|
|
30
|
+
*
|
|
31
|
+
* Returns null if block height cannot be fetched (e.g., provider doesn't support it).
|
|
32
|
+
* This allows graceful degradation for providers that don't implement the Esplora API fully.
|
|
33
|
+
*/
|
|
34
|
+
async getCurrentBlockHeight() {
|
|
35
|
+
const getBlockHeightStartTime = Date.now();
|
|
36
|
+
// If RPC helper is provided, use it
|
|
37
|
+
if (this.config.rpcHelper) {
|
|
38
|
+
const blockCount = await this.config.rpcHelper.getBlockCount();
|
|
39
|
+
const duration = Date.now() - getBlockHeightStartTime;
|
|
40
|
+
console.log(`[Bitcoin Data] [Timing] getCurrentBlockHeight (RPC helper): ${duration}ms`);
|
|
41
|
+
return blockCount;
|
|
42
|
+
}
|
|
43
|
+
// Fetch from Esplora API
|
|
44
|
+
const controller = new AbortController();
|
|
45
|
+
const timeoutId = setTimeout(() => controller.abort(), this.timeout);
|
|
46
|
+
try {
|
|
47
|
+
const response = await fetch(`${this.config.providerUrl}/blocks/tip/height`, {
|
|
48
|
+
signal: controller.signal,
|
|
49
|
+
headers: {
|
|
50
|
+
// LIT runtime rejects custom User-Agent headers (gRPC invalid_argument)
|
|
51
|
+
// Match CryptoCompare working pattern - minimal headers only
|
|
52
|
+
Accept: "text/plain",
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
clearTimeout(timeoutId);
|
|
56
|
+
if (!response.ok) {
|
|
57
|
+
// For regtest/testnet, it's acceptable if block height endpoint doesn't exist
|
|
58
|
+
// We'll use a fallback strategy in parseBlockstreamUTXOs
|
|
59
|
+
console.warn(`[Bitcoin Data] Block height endpoint not available (${response.status}), will use fallback confirmation calculation`);
|
|
60
|
+
const duration = Date.now() - getBlockHeightStartTime;
|
|
61
|
+
console.log(`[Bitcoin Data] [Timing] getCurrentBlockHeight (failed): ${duration}ms`);
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
const heightText = await response.text();
|
|
65
|
+
const height = parseInt(heightText.trim(), 10);
|
|
66
|
+
if (isNaN(height)) {
|
|
67
|
+
console.warn(`[Bitcoin Data] Invalid block height response: ${heightText}, will use fallback`);
|
|
68
|
+
const duration = Date.now() - getBlockHeightStartTime;
|
|
69
|
+
console.log(`[Bitcoin Data] [Timing] getCurrentBlockHeight (invalid): ${duration}ms`);
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
const duration = Date.now() - getBlockHeightStartTime;
|
|
73
|
+
console.log(`[Bitcoin Data] [Timing] getCurrentBlockHeight: ${duration}ms`);
|
|
74
|
+
return height;
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
clearTimeout(timeoutId);
|
|
78
|
+
const duration = Date.now() - getBlockHeightStartTime;
|
|
79
|
+
console.log(`[Bitcoin Data] [Timing] getCurrentBlockHeight (error): ${duration}ms`);
|
|
80
|
+
if (error.name === "AbortError") {
|
|
81
|
+
console.warn(`[Bitcoin Data] Block height request timeout, will use fallback`);
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
// For network errors or 404s, return null instead of throwing
|
|
85
|
+
// This allows graceful degradation for providers that don't support block height
|
|
86
|
+
console.warn(`[Bitcoin Data] Could not fetch block height: ${error.message}, will use fallback`);
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
25
89
|
}
|
|
26
90
|
/**
|
|
27
91
|
* Fetch all UTXOs for a Bitcoin address
|
|
@@ -95,22 +159,54 @@ class BitcoinDataProvider {
|
|
|
95
159
|
/**
|
|
96
160
|
* Parse Esplora/Blockstream/Mempool.space UTXO response
|
|
97
161
|
*
|
|
98
|
-
*
|
|
162
|
+
* Supports multiple formats:
|
|
163
|
+
* - Esplora format: {txid, vout, value, status: {confirmed, block_height}}
|
|
164
|
+
* - Blockstream format: {txid, vout, value, confirmations}
|
|
99
165
|
*
|
|
100
166
|
* @param data Raw response from provider API
|
|
167
|
+
* @param currentBlockHeight Current block height (for calculating confirmations from block_height), or null if unavailable
|
|
101
168
|
* @returns Array of normalized UTXOs
|
|
102
169
|
*/
|
|
103
|
-
parseBlockstreamUTXOs(data) {
|
|
170
|
+
parseBlockstreamUTXOs(data, currentBlockHeight) {
|
|
104
171
|
if (!Array.isArray(data)) {
|
|
105
172
|
throw new Error("Invalid Blockstream response format: expected an array");
|
|
106
173
|
}
|
|
107
174
|
// Normalize UTXO format (different providers may have different field names)
|
|
108
|
-
const utxos = data.map((utxo) =>
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
175
|
+
const utxos = data.map((utxo) => {
|
|
176
|
+
// Calculate confirmations based on format
|
|
177
|
+
let confirmations = 0;
|
|
178
|
+
// Check for Esplora format (status.confirmed and status.block_height)
|
|
179
|
+
if (utxo.status && typeof utxo.status === 'object') {
|
|
180
|
+
if (utxo.status.confirmed) {
|
|
181
|
+
// For Esplora format: calculate confirmations from block heights
|
|
182
|
+
// confirmations = current_height - tx_block_height + 1
|
|
183
|
+
if (utxo.status.block_height !== undefined && utxo.status.block_height > 0 && currentBlockHeight !== null) {
|
|
184
|
+
// We have both block heights, calculate confirmations
|
|
185
|
+
confirmations = currentBlockHeight - utxo.status.block_height + 1;
|
|
186
|
+
// Ensure confirmations is at least 1 for confirmed transactions
|
|
187
|
+
if (confirmations < 1)
|
|
188
|
+
confirmations = 1;
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
// Confirmed but no block_height or currentBlockHeight unavailable
|
|
192
|
+
// For regtest/testnet, assume at least 1 confirmation for confirmed transactions
|
|
193
|
+
// This is safe because confirmed=true means the transaction is in a block
|
|
194
|
+
confirmations = 1;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
// If not confirmed, confirmations remains 0
|
|
198
|
+
}
|
|
199
|
+
else if (utxo.confirmations !== undefined) {
|
|
200
|
+
// Blockstream format: direct confirmations field
|
|
201
|
+
confirmations = utxo.confirmations;
|
|
202
|
+
}
|
|
203
|
+
return {
|
|
204
|
+
txid: utxo.txid,
|
|
205
|
+
vout: utxo.vout !== undefined ? utxo.vout : utxo.n,
|
|
206
|
+
satoshis: BigInt(utxo.value !== undefined ? utxo.value : utxo.satoshis),
|
|
207
|
+
confirmations: confirmations,
|
|
208
|
+
};
|
|
209
|
+
});
|
|
114
210
|
return utxos;
|
|
115
211
|
}
|
|
116
212
|
/**
|
|
@@ -121,20 +217,23 @@ class BitcoinDataProvider {
|
|
|
121
217
|
* - providerUrl must include full base path (e.g., "http://localhost:3002/api/esplora")
|
|
122
218
|
*/
|
|
123
219
|
async fetchUTXOsFromProvider(providerUrl, address) {
|
|
220
|
+
const fetchUTXOsStartTime = Date.now();
|
|
124
221
|
// Standard Esplora API format only
|
|
125
222
|
// providerUrl must include full base path (e.g., "http://localhost:3002/api/esplora")
|
|
126
223
|
const endpoint = `${providerUrl}/address/${address}/utxos`;
|
|
127
|
-
console.log(`Fetching UTXOs from ${endpoint}`);
|
|
224
|
+
console.log(`Fetching UTXOs from ${endpoint} (timeout: ${this.timeout}ms)`);
|
|
225
|
+
// Get current block height for confirmation calculation (with shorter timeout)
|
|
226
|
+
const currentBlockHeight = await this.getCurrentBlockHeight();
|
|
227
|
+
console.log(`[Bitcoin Data] Current block height: ${currentBlockHeight}`);
|
|
128
228
|
const controller = new AbortController();
|
|
129
229
|
const timeoutId = setTimeout(() => controller.abort(), this.timeout);
|
|
130
230
|
try {
|
|
131
231
|
const response = await fetch(endpoint, {
|
|
132
232
|
signal: controller.signal,
|
|
133
233
|
headers: {
|
|
234
|
+
// LIT runtime rejects custom User-Agent headers (gRPC invalid_argument)
|
|
235
|
+
// Match CryptoCompare working pattern - minimal headers only
|
|
134
236
|
Accept: "application/json",
|
|
135
|
-
"Content-Type": "application/json",
|
|
136
|
-
"User-Agent": "Mozilla/5.0 (compatible; DiamondHandsValidator/1.0)",
|
|
137
|
-
"ngrok-skip-browser-warning": "true", // Skip ngrok browser warning page
|
|
138
237
|
},
|
|
139
238
|
});
|
|
140
239
|
clearTimeout(timeoutId);
|
|
@@ -142,13 +241,19 @@ class BitcoinDataProvider {
|
|
|
142
241
|
throw new Error(`Bitcoin provider error: ${response.status} ${response.statusText}`);
|
|
143
242
|
}
|
|
144
243
|
const data = await response.json();
|
|
145
|
-
// Log
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
244
|
+
// Log summary only (not full data to avoid timeout from large transaction lists)
|
|
245
|
+
const utxoCount = Array.isArray(data) ? data.length : 0;
|
|
246
|
+
console.log(`[Bitcoin Data] Fetched ${utxoCount} UTXOs from provider`);
|
|
247
|
+
// Parse standard Esplora/Blockstream format with current block height
|
|
248
|
+
const utxos = this.parseBlockstreamUTXOs(data, currentBlockHeight);
|
|
249
|
+
const duration = Date.now() - fetchUTXOsStartTime;
|
|
250
|
+
console.log(`[Bitcoin Data] [Timing] fetchUTXOsFromProvider: ${duration}ms`);
|
|
251
|
+
return utxos;
|
|
149
252
|
}
|
|
150
253
|
catch (error) {
|
|
151
254
|
clearTimeout(timeoutId);
|
|
255
|
+
const duration = Date.now() - fetchUTXOsStartTime;
|
|
256
|
+
console.log(`[Bitcoin Data] [Timing] fetchUTXOsFromProvider (failed): ${duration}ms`);
|
|
152
257
|
if (error.name === "AbortError") {
|
|
153
258
|
throw new Error(`Request timeout after ${this.timeout}ms`);
|
|
154
259
|
}
|
|
@@ -180,6 +285,72 @@ class BitcoinDataProvider {
|
|
|
180
285
|
unconfirmedBalance,
|
|
181
286
|
};
|
|
182
287
|
}
|
|
288
|
+
/**
|
|
289
|
+
* Get balance for a Bitcoin address (fast, no UTXO details)
|
|
290
|
+
*
|
|
291
|
+
* This method uses the standard Esplora /address/:address endpoint
|
|
292
|
+
* to get confirmed balance from chain_stats.
|
|
293
|
+
*
|
|
294
|
+
* @param address - Bitcoin address
|
|
295
|
+
* @returns Balance in satoshis (confirmed balance only)
|
|
296
|
+
* @throws Error if the request fails or response is invalid
|
|
297
|
+
*/
|
|
298
|
+
async getBalance(address) {
|
|
299
|
+
const providerUrl = this.config.providerUrl;
|
|
300
|
+
const endpoint = `${providerUrl}/address/${address}`;
|
|
301
|
+
console.log(`Fetching balance from ${endpoint} (timeout: ${this.timeout}ms)`);
|
|
302
|
+
// Use simple fetchJson helper pattern (matching CryptoCompare in price-oracle.module.ts)
|
|
303
|
+
const fetchJson = async (url) => {
|
|
304
|
+
const controller = new AbortController();
|
|
305
|
+
const timeoutId = setTimeout(() => controller.abort(), this.timeout);
|
|
306
|
+
try {
|
|
307
|
+
const res = await fetch(url, {
|
|
308
|
+
signal: controller.signal,
|
|
309
|
+
headers: {
|
|
310
|
+
// LIT runtime rejects custom User-Agent headers (gRPC invalid_argument)
|
|
311
|
+
Accept: "application/json",
|
|
312
|
+
},
|
|
313
|
+
});
|
|
314
|
+
clearTimeout(timeoutId);
|
|
315
|
+
if (!res.ok) {
|
|
316
|
+
throw new Error(`HTTP ${res.status} ${res.statusText}`);
|
|
317
|
+
}
|
|
318
|
+
return await res.json();
|
|
319
|
+
}
|
|
320
|
+
catch (error) {
|
|
321
|
+
clearTimeout(timeoutId);
|
|
322
|
+
if (error.name === "AbortError") {
|
|
323
|
+
throw new Error(`Request timeout after ${this.timeout}ms`);
|
|
324
|
+
}
|
|
325
|
+
throw error;
|
|
326
|
+
}
|
|
327
|
+
};
|
|
328
|
+
try {
|
|
329
|
+
const data = await fetchJson(endpoint);
|
|
330
|
+
// Validate response structure
|
|
331
|
+
if (!data.chain_stats) {
|
|
332
|
+
throw new Error("Invalid response: missing chain_stats");
|
|
333
|
+
}
|
|
334
|
+
const fundedTxoSum = data.chain_stats.funded_txo_sum;
|
|
335
|
+
const spentTxoSum = data.chain_stats.spent_txo_sum;
|
|
336
|
+
if (fundedTxoSum === undefined || spentTxoSum === undefined) {
|
|
337
|
+
throw new Error(`Invalid response: missing required fields. funded_txo_sum: ${fundedTxoSum}, spent_txo_sum: ${spentTxoSum}`);
|
|
338
|
+
}
|
|
339
|
+
// Calculate confirmed balance: funded - spent
|
|
340
|
+
const confirmedBalance = fundedTxoSum - spentTxoSum;
|
|
341
|
+
const balance = BigInt(confirmedBalance);
|
|
342
|
+
console.log(`[Bitcoin Data] Fetched balance: ${balance.toString()} sats (confirmed)`);
|
|
343
|
+
console.log(` - Funded: ${fundedTxoSum} sats`);
|
|
344
|
+
console.log(` - Spent: ${spentTxoSum} sats`);
|
|
345
|
+
return balance;
|
|
346
|
+
}
|
|
347
|
+
catch (error) {
|
|
348
|
+
// Throw error instead of returning 0n
|
|
349
|
+
const errorMessage = error.message || "Unknown error";
|
|
350
|
+
console.log(`[Bitcoin Data] Balance fetch failed: ${errorMessage}`);
|
|
351
|
+
throw new Error(`Failed to fetch Bitcoin balance for address ${address}: ${errorMessage}`);
|
|
352
|
+
}
|
|
353
|
+
}
|
|
183
354
|
/**
|
|
184
355
|
* Get transaction with confirmation count
|
|
185
356
|
*
|
|
@@ -213,7 +384,7 @@ class BitcoinDataProvider {
|
|
|
213
384
|
const controller = new AbortController();
|
|
214
385
|
const timeoutId = setTimeout(() => controller.abort(), this.timeout);
|
|
215
386
|
try {
|
|
216
|
-
const response = await fetch(`${this.config.providerUrl}/
|
|
387
|
+
const response = await fetch(`${this.config.providerUrl}/tx/${txid}`, {
|
|
217
388
|
signal: controller.signal,
|
|
218
389
|
});
|
|
219
390
|
clearTimeout(timeoutId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bitcoin-data-provider.module.js","sourceRoot":"","sources":["../../../src/modules/bitcoin-data-provider.module.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bitcoin-data-provider.module.js","sourceRoot":"","sources":["../../../src/modules/bitcoin-data-provider.module.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
import { IPriceOracle, PriceSourceConfig } from "../interfaces/chunks/price-oracle.i";
|
|
2
2
|
export declare class PriceOracleModule implements IPriceOracle {
|
|
3
3
|
private sources;
|
|
4
|
-
constructor(
|
|
4
|
+
constructor(priceProvidersOrConfig?: Array<{
|
|
5
|
+
name: string;
|
|
6
|
+
apiKey?: string;
|
|
7
|
+
}> | any, legacySources?: PriceSourceConfig[]);
|
|
8
|
+
/**
|
|
9
|
+
* Build price sources from config or use defaults
|
|
10
|
+
*/
|
|
11
|
+
private buildSources;
|
|
12
|
+
/**
|
|
13
|
+
* Create CryptoCompare price source
|
|
14
|
+
*/
|
|
15
|
+
private createCryptoCompareSource;
|
|
5
16
|
private getDefaultSources;
|
|
6
17
|
/**
|
|
7
18
|
* Get BTC price in USD with 8 decimals
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"price-oracle.module.d.ts","sourceRoot":"","sources":["../../../src/modules/price-oracle.module.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,iBAAiB,EAClB,MAAM,qCAAqC,CAAC;AAM7C,qBAAa,iBAAkB,YAAW,YAAY;IACpD,OAAO,CAAC,OAAO,CAAsB;
|
|
1
|
+
{"version":3,"file":"price-oracle.module.d.ts","sourceRoot":"","sources":["../../../src/modules/price-oracle.module.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,iBAAiB,EAClB,MAAM,qCAAqC,CAAC;AAM7C,qBAAa,iBAAkB,YAAW,YAAY;IACpD,OAAO,CAAC,OAAO,CAAsB;gBAGnC,sBAAsB,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,GAAG,EACvE,aAAa,CAAC,EAAE,iBAAiB,EAAE;IAerC;;OAEG;IACH,OAAO,CAAC,YAAY;IAsBpB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAyDjC,OAAO,CAAC,iBAAiB;IAmFzB;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IA+CpC;;;;;;;;;;;;;;;OAeG;IACG,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC;CAqH9C"}
|
|
@@ -3,33 +3,123 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.PriceOracleModule = void 0;
|
|
4
4
|
const constants_1 = require("../constants");
|
|
5
5
|
class PriceOracleModule {
|
|
6
|
-
constructor(
|
|
7
|
-
|
|
6
|
+
constructor(priceProvidersOrConfig, legacySources) {
|
|
7
|
+
// Backward compatibility: if second parameter is provided, use legacy API
|
|
8
|
+
if (legacySources && Array.isArray(legacySources)) {
|
|
9
|
+
this.sources = legacySources;
|
|
10
|
+
}
|
|
11
|
+
else if (priceProvidersOrConfig && Array.isArray(priceProvidersOrConfig)) {
|
|
12
|
+
// New API: priceProviders config array
|
|
13
|
+
this.sources = this.buildSources(priceProvidersOrConfig);
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
// No config provided, use defaults
|
|
17
|
+
this.sources = this.buildSources();
|
|
18
|
+
}
|
|
8
19
|
this.sources.sort((a, b) => a.priority - b.priority);
|
|
9
20
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
21
|
+
/**
|
|
22
|
+
* Build price sources from config or use defaults
|
|
23
|
+
*/
|
|
24
|
+
buildSources(priceProviders) {
|
|
25
|
+
const defaultSources = this.getDefaultSources();
|
|
26
|
+
// If no custom providers configured, return defaults
|
|
27
|
+
if (!priceProviders || priceProviders.length === 0) {
|
|
28
|
+
return defaultSources;
|
|
29
|
+
}
|
|
30
|
+
const sources = [];
|
|
31
|
+
// Check if CryptoCompare is configured
|
|
32
|
+
const cryptoCompareConfig = priceProviders.find(p => p.name.toLowerCase() === 'cryptocompare');
|
|
33
|
+
if (cryptoCompareConfig && cryptoCompareConfig.apiKey) {
|
|
34
|
+
sources.push(this.createCryptoCompareSource(cryptoCompareConfig.apiKey));
|
|
35
|
+
}
|
|
36
|
+
// Add default sources (they will be sorted by priority)
|
|
37
|
+
sources.push(...defaultSources);
|
|
38
|
+
return sources;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Create CryptoCompare price source
|
|
42
|
+
*/
|
|
43
|
+
createCryptoCompareSource(apiKey) {
|
|
15
44
|
const fetchJson = async (url) => {
|
|
16
45
|
const controller = new AbortController();
|
|
17
|
-
// Reduced from 8000ms to 5000ms to fail faster and avoid LIT Protocol 30s timeout
|
|
18
|
-
// When CoinGecko fails, we need to quickly try Binance to stay under 30s limit
|
|
19
46
|
const timeoutMs = 5000;
|
|
20
|
-
const
|
|
47
|
+
const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
|
|
48
|
+
try {
|
|
49
|
+
const res = await fetch(url, {
|
|
50
|
+
signal: controller.signal,
|
|
51
|
+
headers: {
|
|
52
|
+
// LIT runtime rejects custom User-Agent headers (gRPC invalid_argument)
|
|
53
|
+
Accept: "application/json",
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
clearTimeout(timeoutId);
|
|
57
|
+
if (!res.ok) {
|
|
58
|
+
throw new Error(`HTTP ${res.status} ${res.statusText}`);
|
|
59
|
+
}
|
|
60
|
+
return await res.json();
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
clearTimeout(timeoutId);
|
|
64
|
+
if (error.name === "AbortError") {
|
|
65
|
+
throw new Error(`Request timeout after ${timeoutMs}ms`);
|
|
66
|
+
}
|
|
67
|
+
throw error;
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
return {
|
|
71
|
+
name: "CryptoCompare",
|
|
72
|
+
fetchPrice: async () => {
|
|
73
|
+
// Each node fetches the price
|
|
74
|
+
// Use template string instead of URL object to match working pattern
|
|
75
|
+
const url = `https://min-api.cryptocompare.com/data/price?fsym=BTC&tsyms=USDT&api_key=${apiKey}`;
|
|
76
|
+
console.log(`[Price Oracle] CryptoCompare: Fetching from ${url.substring(0, 60)}...`);
|
|
77
|
+
let data;
|
|
78
|
+
try {
|
|
79
|
+
data = await fetchJson(url);
|
|
80
|
+
console.log(`[Price Oracle] CryptoCompare: Fetch successful, data:`, JSON.stringify(data));
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
console.error(`[Price Oracle] CryptoCompare: Fetch failed:`, error.message);
|
|
84
|
+
throw error;
|
|
85
|
+
}
|
|
86
|
+
// Response format: {"USDT":86800.42}
|
|
87
|
+
// Treat USDT as USD (1:1 for price oracle purposes)
|
|
88
|
+
const price = Number(data?.USDT);
|
|
89
|
+
if (!Number.isFinite(price) || price <= 0) {
|
|
90
|
+
throw new Error("Invalid CryptoCompare price payload");
|
|
91
|
+
}
|
|
92
|
+
console.log(`[Price Oracle] CryptoCompare: Using fetched price: ${price}`);
|
|
93
|
+
return price;
|
|
94
|
+
},
|
|
95
|
+
priority: 1,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
getDefaultSources() {
|
|
99
|
+
const fetchJson = async (url) => {
|
|
100
|
+
const controller = new AbortController();
|
|
101
|
+
const timeoutMs = 8000;
|
|
102
|
+
const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
|
|
21
103
|
try {
|
|
22
104
|
const res = await fetch(url, {
|
|
23
|
-
headers: DEFAULT_HEADERS,
|
|
24
105
|
signal: controller.signal,
|
|
106
|
+
headers: {
|
|
107
|
+
"User-Agent": "Mozilla/5.0 (compatible; DiamondHandsValidator/1.0)",
|
|
108
|
+
Accept: "application/json",
|
|
109
|
+
},
|
|
25
110
|
});
|
|
111
|
+
clearTimeout(timeoutId);
|
|
26
112
|
if (!res.ok) {
|
|
27
113
|
throw new Error(`HTTP ${res.status} ${res.statusText}`);
|
|
28
114
|
}
|
|
29
115
|
return await res.json();
|
|
30
116
|
}
|
|
31
|
-
|
|
32
|
-
clearTimeout(
|
|
117
|
+
catch (error) {
|
|
118
|
+
clearTimeout(timeoutId);
|
|
119
|
+
if (error.name === "AbortError") {
|
|
120
|
+
throw new Error(`Request timeout after ${timeoutMs}ms`);
|
|
121
|
+
}
|
|
122
|
+
throw error;
|
|
33
123
|
}
|
|
34
124
|
};
|
|
35
125
|
return [
|
|
@@ -37,23 +127,15 @@ class PriceOracleModule {
|
|
|
37
127
|
name: "CoinGecko",
|
|
38
128
|
fetchPrice: async () => {
|
|
39
129
|
// Each node fetches the price
|
|
40
|
-
|
|
41
|
-
url.
|
|
42
|
-
url
|
|
43
|
-
const data = await fetchJson(url.toString());
|
|
130
|
+
// Use template string instead of URL object to match working pattern
|
|
131
|
+
const url = "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd";
|
|
132
|
+
const data = await fetchJson(url);
|
|
44
133
|
const price = Number(data?.bitcoin?.usd);
|
|
45
134
|
if (!Number.isFinite(price) || price <= 0) {
|
|
46
135
|
throw new Error("Invalid CoinGecko price payload");
|
|
47
136
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
const allPrices = await Lit.Actions.broadcastAndCollect({
|
|
51
|
-
name: "coinGeckoPrice",
|
|
52
|
-
value: price.toString(),
|
|
53
|
-
});
|
|
54
|
-
const prices = allPrices.map((p) => parseFloat(p));
|
|
55
|
-
prices.sort((a, b) => a - b);
|
|
56
|
-
return prices[Math.floor(prices.length / 2)];
|
|
137
|
+
console.log(`[Price Oracle] CoinGecko: Using fetched price: ${price}`);
|
|
138
|
+
return price;
|
|
57
139
|
},
|
|
58
140
|
priority: 1,
|
|
59
141
|
},
|
|
@@ -61,21 +143,15 @@ class PriceOracleModule {
|
|
|
61
143
|
name: "Binance",
|
|
62
144
|
fetchPrice: async () => {
|
|
63
145
|
// Each node fetches the price
|
|
64
|
-
|
|
65
|
-
url.
|
|
66
|
-
const data = await fetchJson(url
|
|
146
|
+
// Use template string instead of URL object to match working pattern
|
|
147
|
+
const url = "https://api.binance.com/api/v3/ticker/price?symbol=BTCUSDT";
|
|
148
|
+
const data = await fetchJson(url);
|
|
67
149
|
const price = Number(data?.price);
|
|
68
150
|
if (!Number.isFinite(price) || price <= 0) {
|
|
69
151
|
throw new Error("Invalid Binance price payload");
|
|
70
152
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
name: "binancePrice",
|
|
74
|
-
value: price.toString(),
|
|
75
|
-
});
|
|
76
|
-
const prices = allPrices.map((p) => parseFloat(p));
|
|
77
|
-
prices.sort((a, b) => a - b);
|
|
78
|
-
return prices[Math.floor(prices.length / 2)];
|
|
153
|
+
console.log(`[Price Oracle] Binance: Using fetched price: ${price}`);
|
|
154
|
+
return price;
|
|
79
155
|
},
|
|
80
156
|
priority: 2,
|
|
81
157
|
},
|
|
@@ -88,14 +164,8 @@ class PriceOracleModule {
|
|
|
88
164
|
if (!Number.isFinite(price) || price <= 0) {
|
|
89
165
|
throw new Error("Invalid Coinbase price payload");
|
|
90
166
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
name: "coinbasePrice",
|
|
94
|
-
value: price.toString(),
|
|
95
|
-
});
|
|
96
|
-
const prices = allPrices.map((p) => parseFloat(p));
|
|
97
|
-
prices.sort((a, b) => a - b);
|
|
98
|
-
return prices[Math.floor(prices.length / 2)];
|
|
167
|
+
console.log(`[Price Oracle] Coinbase: Using fetched price: ${price}`);
|
|
168
|
+
return price;
|
|
99
169
|
},
|
|
100
170
|
priority: 3,
|
|
101
171
|
},
|
|
@@ -106,12 +176,16 @@ class PriceOracleModule {
|
|
|
106
176
|
* Fetches from real price sources in priority order
|
|
107
177
|
*/
|
|
108
178
|
async getBTCPrice() {
|
|
179
|
+
const priceOracleStartTime = Date.now();
|
|
109
180
|
console.log(`[Price Oracle] Fetching BTC price from external sources...`);
|
|
110
181
|
// Try sources in priority order
|
|
111
182
|
for (const source of this.sources) {
|
|
112
183
|
try {
|
|
184
|
+
const sourceStartTime = Date.now();
|
|
113
185
|
console.log(`[Price Oracle] Trying ${source.name}...`);
|
|
114
186
|
const priceUSD = await source.fetchPrice();
|
|
187
|
+
const sourceDuration = Date.now() - sourceStartTime;
|
|
188
|
+
console.log(`[Price Oracle] [Timing] ${source.name} fetch: ${sourceDuration}ms`);
|
|
115
189
|
console.log(`[Price Oracle] ✅ ${source.name}: $${priceUSD.toLocaleString()}`);
|
|
116
190
|
// Convert to 8 decimals as bigint - DETERMINISTIC METHOD
|
|
117
191
|
// CRITICAL: Avoid floating-point multiplication which is non-deterministic
|
|
@@ -125,6 +199,8 @@ class PriceOracleModule {
|
|
|
125
199
|
const priceCents = Math.round(priceUSD * 100); // Convert to cents (integer)
|
|
126
200
|
const priceWith8Decimals = BigInt(priceCents) * 1000000n; // Scale to 8 decimals using BigInt
|
|
127
201
|
console.log(`[Price Oracle] Price with 8 decimals: ${priceWith8Decimals}`);
|
|
202
|
+
const totalDuration = Date.now() - priceOracleStartTime;
|
|
203
|
+
console.log(`[Price Oracle] [Timing] Total price oracle execution: ${totalDuration}ms`);
|
|
128
204
|
return priceWith8Decimals;
|
|
129
205
|
}
|
|
130
206
|
catch (error) {
|
|
@@ -151,12 +227,16 @@ class PriceOracleModule {
|
|
|
151
227
|
* 6. Return final median or throw appropriate error
|
|
152
228
|
*/
|
|
153
229
|
async getBTCPriceConsensus() {
|
|
230
|
+
const consensusStartTime = Date.now();
|
|
154
231
|
console.log(`[Price Oracle] Fetching BTC price with consensus...`);
|
|
155
232
|
// Use configured tolerances
|
|
156
233
|
const OUTLIER_DEVIATION = constants_1.PRICE_ORACLE_OUTLIER_DEVIATION_THRESHOLD; // 2%
|
|
157
234
|
const DISPERSION_THRESHOLD = constants_1.PRICE_ORACLE_DISPERSION_THRESHOLD; // 5%
|
|
158
235
|
const results = await Promise.allSettled(this.sources.map(async (source) => {
|
|
236
|
+
const sourceStartTime = Date.now();
|
|
159
237
|
const price = await source.fetchPrice();
|
|
238
|
+
const sourceDuration = Date.now() - sourceStartTime;
|
|
239
|
+
console.log(`[Price Oracle] [Timing] ${source.name} fetch: ${sourceDuration}ms`);
|
|
160
240
|
return { source: source.name, price };
|
|
161
241
|
}));
|
|
162
242
|
const successful = results
|
|
@@ -216,6 +296,8 @@ class PriceOracleModule {
|
|
|
216
296
|
console.log(`[Price Oracle] ✅ Consensus price (median): $${initialMedian.toLocaleString()}`);
|
|
217
297
|
// Convert to 8 decimals as bigint - DETERMINISTIC METHOD
|
|
218
298
|
const priceCents = Math.round(initialMedian * 100);
|
|
299
|
+
const totalDuration = Date.now() - consensusStartTime;
|
|
300
|
+
console.log(`[Price Oracle] [Timing] Total consensus execution: ${totalDuration}ms`);
|
|
219
301
|
return BigInt(priceCents) * 1000000n;
|
|
220
302
|
}
|
|
221
303
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"price-oracle.module.js","sourceRoot":"","sources":["../../../src/modules/price-oracle.module.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"price-oracle.module.js","sourceRoot":"","sources":["../../../src/modules/price-oracle.module.ts"],"names":[],"mappings":"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"}
|