@lendasat/lendaswap-sdk-pure 0.2.21-preview.0 → 0.2.21
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/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +4 -1
- package/dist/api/client.js.map +1 -1
- package/dist/version.d.ts +4 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +6 -0
- package/dist/version.js.map +1 -0
- package/package.json +4 -1
- package/dist/price-feed.d.ts +0 -124
- package/dist/price-feed.d.ts.map +0 -1
- package/dist/price-feed.js +0 -178
- package/dist/price-feed.js.map +0 -1
- package/dist/src/api/client.d.ts +0 -31
- package/dist/src/api/client.d.ts.map +0 -1
- package/dist/src/api/client.js +0 -12
- package/dist/src/api/client.js.map +0 -1
- package/dist/src/arkade.d.ts +0 -36
- package/dist/src/arkade.d.ts.map +0 -1
- package/dist/src/arkade.js +0 -68
- package/dist/src/arkade.js.map +0 -1
- package/dist/src/client.d.ts +0 -760
- package/dist/src/client.d.ts.map +0 -1
- package/dist/src/client.js +0 -2169
- package/dist/src/client.js.map +0 -1
- package/dist/src/create/arkade.d.ts +0 -34
- package/dist/src/create/arkade.d.ts.map +0 -1
- package/dist/src/create/arkade.js +0 -76
- package/dist/src/create/arkade.js.map +0 -1
- package/dist/src/create/bitcoin-to-arkade.d.ts +0 -36
- package/dist/src/create/bitcoin-to-arkade.d.ts.map +0 -1
- package/dist/src/create/bitcoin-to-arkade.js +0 -69
- package/dist/src/create/bitcoin-to-arkade.js.map +0 -1
- package/dist/src/create/bitcoin.d.ts +0 -31
- package/dist/src/create/bitcoin.d.ts.map +0 -1
- package/dist/src/create/bitcoin.js +0 -67
- package/dist/src/create/bitcoin.js.map +0 -1
- package/dist/src/create/evm-to-arkade.d.ts +0 -34
- package/dist/src/create/evm-to-arkade.d.ts.map +0 -1
- package/dist/src/create/evm-to-arkade.js +0 -69
- package/dist/src/create/evm-to-arkade.js.map +0 -1
- package/dist/src/create/evm-to-bitcoin.d.ts +0 -35
- package/dist/src/create/evm-to-bitcoin.d.ts.map +0 -1
- package/dist/src/create/evm-to-bitcoin.js +0 -71
- package/dist/src/create/evm-to-bitcoin.js.map +0 -1
- package/dist/src/create/evm-to-lightning.d.ts +0 -34
- package/dist/src/create/evm-to-lightning.d.ts.map +0 -1
- package/dist/src/create/evm-to-lightning.js +0 -66
- package/dist/src/create/evm-to-lightning.js.map +0 -1
- package/dist/src/create/index.d.ts +0 -19
- package/dist/src/create/index.d.ts.map +0 -1
- package/dist/src/create/index.js +0 -18
- package/dist/src/create/index.js.map +0 -1
- package/dist/src/create/lightning.d.ts +0 -31
- package/dist/src/create/lightning.d.ts.map +0 -1
- package/dist/src/create/lightning.js +0 -72
- package/dist/src/create/lightning.js.map +0 -1
- package/dist/src/create/types.d.ts +0 -247
- package/dist/src/create/types.d.ts.map +0 -1
- package/dist/src/create/types.js +0 -5
- package/dist/src/create/types.js.map +0 -1
- package/dist/src/delegate.d.ts +0 -62
- package/dist/src/delegate.d.ts.map +0 -1
- package/dist/src/delegate.js +0 -284
- package/dist/src/delegate.js.map +0 -1
- package/dist/src/esplora.d.ts +0 -41
- package/dist/src/esplora.d.ts.map +0 -1
- package/dist/src/esplora.js +0 -47
- package/dist/src/esplora.js.map +0 -1
- package/dist/src/evm/coordinator.d.ts +0 -247
- package/dist/src/evm/coordinator.d.ts.map +0 -1
- package/dist/src/evm/coordinator.js +0 -414
- package/dist/src/evm/coordinator.js.map +0 -1
- package/dist/src/evm/htlc.d.ts +0 -238
- package/dist/src/evm/htlc.d.ts.map +0 -1
- package/dist/src/evm/htlc.js +0 -278
- package/dist/src/evm/htlc.js.map +0 -1
- package/dist/src/evm/index.d.ts +0 -9
- package/dist/src/evm/index.d.ts.map +0 -1
- package/dist/src/evm/index.js +0 -9
- package/dist/src/evm/index.js.map +0 -1
- package/dist/src/evm/signing.d.ts +0 -30
- package/dist/src/evm/signing.d.ts.map +0 -1
- package/dist/src/evm/signing.js +0 -91
- package/dist/src/evm/signing.js.map +0 -1
- package/dist/src/generated/api.d.ts +0 -2736
- package/dist/src/generated/api.d.ts.map +0 -1
- package/dist/src/generated/api.js +0 -6
- package/dist/src/generated/api.js.map +0 -1
- package/dist/src/index.d.ts +0 -18
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -24
- package/dist/src/index.js.map +0 -1
- package/dist/src/node.d.ts +0 -19
- package/dist/src/node.d.ts.map +0 -1
- package/dist/src/node.js +0 -19
- package/dist/src/node.js.map +0 -1
- package/dist/src/price-calculations.d.ts +0 -109
- package/dist/src/price-calculations.d.ts.map +0 -1
- package/dist/src/price-calculations.js +0 -135
- package/dist/src/price-calculations.js.map +0 -1
- package/dist/src/redeem/arkade.d.ts +0 -65
- package/dist/src/redeem/arkade.d.ts.map +0 -1
- package/dist/src/redeem/arkade.js +0 -217
- package/dist/src/redeem/arkade.js.map +0 -1
- package/dist/src/redeem/ethereum.d.ts +0 -52
- package/dist/src/redeem/ethereum.d.ts.map +0 -1
- package/dist/src/redeem/ethereum.js +0 -206
- package/dist/src/redeem/ethereum.js.map +0 -1
- package/dist/src/redeem/gasless.d.ts +0 -41
- package/dist/src/redeem/gasless.d.ts.map +0 -1
- package/dist/src/redeem/gasless.js +0 -71
- package/dist/src/redeem/gasless.js.map +0 -1
- package/dist/src/redeem/index.d.ts +0 -49
- package/dist/src/redeem/index.d.ts.map +0 -1
- package/dist/src/redeem/index.js +0 -189
- package/dist/src/redeem/index.js.map +0 -1
- package/dist/src/redeem/types.d.ts +0 -126
- package/dist/src/redeem/types.d.ts.map +0 -1
- package/dist/src/redeem/types.js +0 -36
- package/dist/src/redeem/types.js.map +0 -1
- package/dist/src/refund/arkade.d.ts +0 -62
- package/dist/src/refund/arkade.d.ts.map +0 -1
- package/dist/src/refund/arkade.js +0 -212
- package/dist/src/refund/arkade.js.map +0 -1
- package/dist/src/refund/index.d.ts +0 -10
- package/dist/src/refund/index.d.ts.map +0 -1
- package/dist/src/refund/index.js +0 -10
- package/dist/src/refund/index.js.map +0 -1
- package/dist/src/refund/onchain.d.ts +0 -137
- package/dist/src/refund/onchain.d.ts.map +0 -1
- package/dist/src/refund/onchain.js +0 -366
- package/dist/src/refund/onchain.js.map +0 -1
- package/dist/src/signer/index.d.ts +0 -106
- package/dist/src/signer/index.d.ts.map +0 -1
- package/dist/src/signer/index.js +0 -179
- package/dist/src/signer/index.js.map +0 -1
- package/dist/src/storage/idb.d.ts +0 -70
- package/dist/src/storage/idb.d.ts.map +0 -1
- package/dist/src/storage/idb.js +0 -236
- package/dist/src/storage/idb.js.map +0 -1
- package/dist/src/storage/index.d.ts +0 -152
- package/dist/src/storage/index.d.ts.map +0 -1
- package/dist/src/storage/index.js +0 -98
- package/dist/src/storage/index.js.map +0 -1
- package/dist/src/storage/sqlite.d.ts +0 -95
- package/dist/src/storage/sqlite.d.ts.map +0 -1
- package/dist/src/storage/sqlite.js +0 -206
- package/dist/src/storage/sqlite.js.map +0 -1
- package/dist/src/storage/types.d.ts +0 -57
- package/dist/src/storage/types.d.ts.map +0 -1
- package/dist/src/storage/types.js +0 -9
- package/dist/src/storage/types.js.map +0 -1
- package/dist/src/tokens.d.ts +0 -29
- package/dist/src/tokens.d.ts.map +0 -1
- package/dist/src/tokens.js +0 -89
- package/dist/src/tokens.js.map +0 -1
- package/dist/src/usd-price.d.ts +0 -34
- package/dist/src/usd-price.d.ts.map +0 -1
- package/dist/src/usd-price.js +0 -83
- package/dist/src/usd-price.js.map +0 -1
- package/dist/tests/api-client.test.d.ts +0 -2
- package/dist/tests/api-client.test.d.ts.map +0 -1
- package/dist/tests/api-client.test.js +0 -86
- package/dist/tests/api-client.test.js.map +0 -1
- package/dist/tests/client.test.d.ts +0 -2
- package/dist/tests/client.test.d.ts.map +0 -1
- package/dist/tests/client.test.js +0 -150
- package/dist/tests/client.test.js.map +0 -1
- package/dist/tests/index.test.d.ts +0 -2
- package/dist/tests/index.test.d.ts.map +0 -1
- package/dist/tests/index.test.js +0 -8
- package/dist/tests/index.test.js.map +0 -1
- package/dist/tests/onchain-refund.test.d.ts +0 -2
- package/dist/tests/onchain-refund.test.d.ts.map +0 -1
- package/dist/tests/onchain-refund.test.js +0 -279
- package/dist/tests/onchain-refund.test.js.map +0 -1
- package/dist/tests/signer.test.d.ts +0 -2
- package/dist/tests/signer.test.d.ts.map +0 -1
- package/dist/tests/signer.test.js +0 -92
- package/dist/tests/signer.test.js.map +0 -1
- package/dist/tests/sqlite-storage.test.d.ts +0 -2
- package/dist/tests/sqlite-storage.test.d.ts.map +0 -1
- package/dist/tests/sqlite-storage.test.js +0 -160
- package/dist/tests/sqlite-storage.test.js.map +0 -1
- package/dist/tests/storage.test.d.ts +0 -2
- package/dist/tests/storage.test.d.ts.map +0 -1
- package/dist/tests/storage.test.js +0 -184
- package/dist/tests/storage.test.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/usdt0-bridge/bridge.d.ts +0 -82
- package/dist/usdt0-bridge/bridge.d.ts.map +0 -1
- package/dist/usdt0-bridge/bridge.js +0 -56
- package/dist/usdt0-bridge/bridge.js.map +0 -1
- package/dist/usdt0-bridge/chains.d.ts +0 -41
- package/dist/usdt0-bridge/chains.d.ts.map +0 -1
- package/dist/usdt0-bridge/chains.js +0 -117
- package/dist/usdt0-bridge/chains.js.map +0 -1
- package/dist/usdt0-bridge/layerzero-tracker.d.ts +0 -34
- package/dist/usdt0-bridge/layerzero-tracker.d.ts.map +0 -1
- package/dist/usdt0-bridge/layerzero-tracker.js +0 -86
- package/dist/usdt0-bridge/layerzero-tracker.js.map +0 -1
- package/dist/usdt0-bridge/oft-abi.d.ts +0 -145
- package/dist/usdt0-bridge/oft-abi.d.ts.map +0 -1
- package/dist/usdt0-bridge/oft-abi.js +0 -117
- package/dist/usdt0-bridge/oft-abi.js.map +0 -1
package/dist/api/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
|
package/dist/api/client.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import createClient from "openapi-fetch";
|
|
2
|
+
import { CLIENT_AGENT } from "../version.js";
|
|
2
3
|
export function createApiClient(options) {
|
|
3
|
-
const headers = {
|
|
4
|
+
const headers = {
|
|
5
|
+
"X-Lendaswap-Client": CLIENT_AGENT,
|
|
6
|
+
};
|
|
4
7
|
if (options.apiKey) {
|
|
5
8
|
headers["X-Org-Code"] = options.apiKey;
|
|
6
9
|
}
|
package/dist/api/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAwE7C,MAAM,UAAU,eAAe,CAAC,OAAyB;IACvD,MAAM,OAAO,GAA2B;QACtC,oBAAoB,EAAE,YAAY;KACnC,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IACzC,CAAC;IAED,OAAO,YAAY,CAAQ;QACzB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO;KACR,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ,uBAAuB,CAAC;AAC7C,eAAO,MAAM,WAAW,WAAW,CAAC;AACpC,eAAO,MAAM,YAAY,8BAA+B,CAAC"}
|
package/dist/version.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// Generated by scripts/sync-version.mjs — do not edit by hand.
|
|
2
|
+
// Kept in sync with package.json on `npm version` and `npm run build`.
|
|
3
|
+
export const SDK_NAME = "lendaswap-sdk-pure";
|
|
4
|
+
export const SDK_VERSION = "0.2.21";
|
|
5
|
+
export const CLIENT_AGENT = `${SDK_NAME}/${SDK_VERSION}`;
|
|
6
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,uEAAuE;AACvE,MAAM,CAAC,MAAM,QAAQ,GAAG,oBAAoB,CAAC;AAC7C,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC;AACpC,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,QAAQ,IAAI,WAAW,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lendasat/lendaswap-sdk-pure",
|
|
3
|
-
"version": "0.2.21
|
|
3
|
+
"version": "0.2.21",
|
|
4
4
|
"description": "Lendaswap Client SDK - Pure TypeScript, React Native compatible",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -25,6 +25,9 @@
|
|
|
25
25
|
],
|
|
26
26
|
"scripts": {
|
|
27
27
|
"generate:api": "openapi-typescript openapi.json -o src/generated/api.ts",
|
|
28
|
+
"sync-version": "node scripts/sync-version.mjs",
|
|
29
|
+
"prebuild": "node scripts/sync-version.mjs",
|
|
30
|
+
"version": "node scripts/sync-version.mjs && git add src/version.ts",
|
|
28
31
|
"build": "tsc -p tsconfig.build.json",
|
|
29
32
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
30
33
|
"test": "vitest",
|
package/dist/price-feed.d.ts
DELETED
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WebSocket price feed service for real-time price updates.
|
|
3
|
-
*
|
|
4
|
-
* This module provides a WebSocket client that connects to the Lendaswap
|
|
5
|
-
* price feed endpoint and delivers real-time price updates with automatic
|
|
6
|
-
* reconnection support.
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* ```typescript
|
|
10
|
-
* import { PriceFeedService, type PriceUpdateMessage } from '@lendasat/lendaswap-sdk';
|
|
11
|
-
*
|
|
12
|
-
* const priceFeed = new PriceFeedService('wss://api.lendaswap.com');
|
|
13
|
-
*
|
|
14
|
-
* const unsubscribe = priceFeed.subscribe((update) => {
|
|
15
|
-
* console.log('Price update:', update);
|
|
16
|
-
* });
|
|
17
|
-
*
|
|
18
|
-
* // Later, to unsubscribe:
|
|
19
|
-
* unsubscribe();
|
|
20
|
-
* ```
|
|
21
|
-
*/
|
|
22
|
-
import type { TokenId } from "./api/client";
|
|
23
|
-
/**
|
|
24
|
-
* Price tiers for different quote asset amounts.
|
|
25
|
-
* Different rates apply based on swap volume (in units of the quote asset).
|
|
26
|
-
*/
|
|
27
|
-
export interface PriceTiers {
|
|
28
|
-
/** Rate when swapping 1 unit of the quote asset */
|
|
29
|
-
tier_1: number;
|
|
30
|
-
/** Rate when swapping 100 units of the quote asset */
|
|
31
|
-
tier_100: number;
|
|
32
|
-
/** Rate when swapping 1,000 units of the quote asset */
|
|
33
|
-
tier_1000: number;
|
|
34
|
-
/** Rate when swapping 5,000 units of the quote asset */
|
|
35
|
-
tier_5000: number;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Trading pair prices with volume-based tiers.
|
|
39
|
-
*/
|
|
40
|
-
export interface TradingPairPrices {
|
|
41
|
-
/** Trading pair identifier, e.g., "USDC_POL-BTC" or "USDT0_POL-BTC" */
|
|
42
|
-
pair: string;
|
|
43
|
-
source: TokenId;
|
|
44
|
-
target: TokenId;
|
|
45
|
-
/** Price tiers for this pair */
|
|
46
|
-
tiers: PriceTiers;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Price update message received from WebSocket.
|
|
50
|
-
*/
|
|
51
|
-
export interface PriceUpdateMessage {
|
|
52
|
-
/** Unix timestamp of the update */
|
|
53
|
-
timestamp: number;
|
|
54
|
-
/** Array of trading pair prices */
|
|
55
|
-
pairs: TradingPairPrices[];
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Callback type for price updates.
|
|
59
|
-
*/
|
|
60
|
-
export type PriceUpdateCallback = (update: PriceUpdateMessage) => void;
|
|
61
|
-
/**
|
|
62
|
-
* WebSocket price feed service with automatic reconnection.
|
|
63
|
-
*
|
|
64
|
-
* Manages connection to the /ws/prices endpoint with exponential backoff
|
|
65
|
-
* reconnection. Automatically connects when the first listener subscribes
|
|
66
|
-
* and disconnects when the last listener unsubscribes.
|
|
67
|
-
*
|
|
68
|
-
* @example
|
|
69
|
-
* ```typescript
|
|
70
|
-
* const priceFeed = new PriceFeedService('wss://api.lendaswap.com');
|
|
71
|
-
*
|
|
72
|
-
* // Subscribe to price updates
|
|
73
|
-
* const unsubscribe = priceFeed.subscribe((update) => {
|
|
74
|
-
* console.log('Prices:', update.pairs);
|
|
75
|
-
* });
|
|
76
|
-
*
|
|
77
|
-
* // Unsubscribe when done
|
|
78
|
-
* unsubscribe();
|
|
79
|
-
* ```
|
|
80
|
-
*/
|
|
81
|
-
export declare class PriceFeedService {
|
|
82
|
-
private wsUrl;
|
|
83
|
-
private ws;
|
|
84
|
-
private reconnectTimer;
|
|
85
|
-
private listeners;
|
|
86
|
-
private reconnectDelay;
|
|
87
|
-
private maxReconnectDelay;
|
|
88
|
-
private isManualClose;
|
|
89
|
-
/**
|
|
90
|
-
* Create a new PriceFeedService.
|
|
91
|
-
*
|
|
92
|
-
* @param baseUrl - The base WebSocket URL (e.g., 'wss://api.lendaswap.com')
|
|
93
|
-
* or HTTP URL which will be converted to WebSocket.
|
|
94
|
-
*/
|
|
95
|
-
constructor(baseUrl: string);
|
|
96
|
-
/**
|
|
97
|
-
* Subscribe to price updates.
|
|
98
|
-
*
|
|
99
|
-
* @param callback - Function to call when prices are updated
|
|
100
|
-
* @returns Unsubscribe function
|
|
101
|
-
*/
|
|
102
|
-
subscribe(callback: PriceUpdateCallback): () => void;
|
|
103
|
-
/**
|
|
104
|
-
* Check if the WebSocket is currently connected.
|
|
105
|
-
*/
|
|
106
|
-
isConnected(): boolean;
|
|
107
|
-
/**
|
|
108
|
-
* Get the number of active listeners.
|
|
109
|
-
*/
|
|
110
|
-
listenerCount(): number;
|
|
111
|
-
/**
|
|
112
|
-
* Connect to WebSocket price feed.
|
|
113
|
-
*/
|
|
114
|
-
private connect;
|
|
115
|
-
/**
|
|
116
|
-
* Schedule reconnection with exponential backoff.
|
|
117
|
-
*/
|
|
118
|
-
private scheduleReconnect;
|
|
119
|
-
/**
|
|
120
|
-
* Close WebSocket connection.
|
|
121
|
-
*/
|
|
122
|
-
close(): void;
|
|
123
|
-
}
|
|
124
|
-
//# sourceMappingURL=price-feed.d.ts.map
|
package/dist/price-feed.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"price-feed.d.ts","sourceRoot":"","sources":["../src/price-feed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,gCAAgC;IAChC,KAAK,EAAE,UAAU,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,KAAK,EAAE,iBAAiB,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,SAAS,CAAuC;IACxD,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,aAAa,CAAS;IAE9B;;;;;OAKG;gBACS,OAAO,EAAE,MAAM;IAS3B;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,IAAI;IAkBpD;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,OAAO,CAAC,OAAO;IAqDf;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAiBzB;;OAEG;IACH,KAAK,IAAI,IAAI;CAad"}
|
package/dist/price-feed.js
DELETED
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WebSocket price feed service for real-time price updates.
|
|
3
|
-
*
|
|
4
|
-
* This module provides a WebSocket client that connects to the Lendaswap
|
|
5
|
-
* price feed endpoint and delivers real-time price updates with automatic
|
|
6
|
-
* reconnection support.
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* ```typescript
|
|
10
|
-
* import { PriceFeedService, type PriceUpdateMessage } from '@lendasat/lendaswap-sdk';
|
|
11
|
-
*
|
|
12
|
-
* const priceFeed = new PriceFeedService('wss://api.lendaswap.com');
|
|
13
|
-
*
|
|
14
|
-
* const unsubscribe = priceFeed.subscribe((update) => {
|
|
15
|
-
* console.log('Price update:', update);
|
|
16
|
-
* });
|
|
17
|
-
*
|
|
18
|
-
* // Later, to unsubscribe:
|
|
19
|
-
* unsubscribe();
|
|
20
|
-
* ```
|
|
21
|
-
*/
|
|
22
|
-
/**
|
|
23
|
-
* WebSocket price feed service with automatic reconnection.
|
|
24
|
-
*
|
|
25
|
-
* Manages connection to the /ws/prices endpoint with exponential backoff
|
|
26
|
-
* reconnection. Automatically connects when the first listener subscribes
|
|
27
|
-
* and disconnects when the last listener unsubscribes.
|
|
28
|
-
*
|
|
29
|
-
* @example
|
|
30
|
-
* ```typescript
|
|
31
|
-
* const priceFeed = new PriceFeedService('wss://api.lendaswap.com');
|
|
32
|
-
*
|
|
33
|
-
* // Subscribe to price updates
|
|
34
|
-
* const unsubscribe = priceFeed.subscribe((update) => {
|
|
35
|
-
* console.log('Prices:', update.pairs);
|
|
36
|
-
* });
|
|
37
|
-
*
|
|
38
|
-
* // Unsubscribe when done
|
|
39
|
-
* unsubscribe();
|
|
40
|
-
* ```
|
|
41
|
-
*/
|
|
42
|
-
export class PriceFeedService {
|
|
43
|
-
wsUrl;
|
|
44
|
-
ws = null;
|
|
45
|
-
reconnectTimer = null;
|
|
46
|
-
listeners = new Set();
|
|
47
|
-
reconnectDelay = 1000; // Start with 1 second
|
|
48
|
-
maxReconnectDelay = 30000; // Max 30 seconds
|
|
49
|
-
isManualClose = false;
|
|
50
|
-
/**
|
|
51
|
-
* Create a new PriceFeedService.
|
|
52
|
-
*
|
|
53
|
-
* @param baseUrl - The base WebSocket URL (e.g., 'wss://api.lendaswap.com')
|
|
54
|
-
* or HTTP URL which will be converted to WebSocket.
|
|
55
|
-
*/
|
|
56
|
-
constructor(baseUrl) {
|
|
57
|
-
// Convert HTTP to WebSocket URL if needed
|
|
58
|
-
this.wsUrl = baseUrl.replace(/^http/, "ws");
|
|
59
|
-
// Ensure we have the /ws/prices path
|
|
60
|
-
if (!this.wsUrl.endsWith("/ws/prices")) {
|
|
61
|
-
this.wsUrl = `${this.wsUrl}/ws/prices`;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Subscribe to price updates.
|
|
66
|
-
*
|
|
67
|
-
* @param callback - Function to call when prices are updated
|
|
68
|
-
* @returns Unsubscribe function
|
|
69
|
-
*/
|
|
70
|
-
subscribe(callback) {
|
|
71
|
-
this.listeners.add(callback);
|
|
72
|
-
// Connect if not already connected
|
|
73
|
-
if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {
|
|
74
|
-
this.connect();
|
|
75
|
-
}
|
|
76
|
-
// Return unsubscribe function
|
|
77
|
-
return () => {
|
|
78
|
-
this.listeners.delete(callback);
|
|
79
|
-
// Close connection if no more listeners
|
|
80
|
-
if (this.listeners.size === 0) {
|
|
81
|
-
this.close();
|
|
82
|
-
}
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Check if the WebSocket is currently connected.
|
|
87
|
-
*/
|
|
88
|
-
isConnected() {
|
|
89
|
-
return this.ws?.readyState === WebSocket.OPEN;
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Get the number of active listeners.
|
|
93
|
-
*/
|
|
94
|
-
listenerCount() {
|
|
95
|
-
return this.listeners.size;
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Connect to WebSocket price feed.
|
|
99
|
-
*/
|
|
100
|
-
connect() {
|
|
101
|
-
if (this.ws?.readyState === WebSocket.OPEN) {
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
this.isManualClose = false;
|
|
105
|
-
try {
|
|
106
|
-
this.ws = new WebSocket(this.wsUrl);
|
|
107
|
-
this.ws.onopen = () => {
|
|
108
|
-
console.log("Price feed WebSocket connected");
|
|
109
|
-
// Reset reconnect delay on successful connection
|
|
110
|
-
this.reconnectDelay = 1000;
|
|
111
|
-
};
|
|
112
|
-
this.ws.onmessage = (event) => {
|
|
113
|
-
try {
|
|
114
|
-
const update = JSON.parse(event.data);
|
|
115
|
-
// Notify all listeners
|
|
116
|
-
this.listeners.forEach((callback) => {
|
|
117
|
-
try {
|
|
118
|
-
callback(update);
|
|
119
|
-
}
|
|
120
|
-
catch (err) {
|
|
121
|
-
console.error("Error in price feed callback:", err);
|
|
122
|
-
}
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
catch (error) {
|
|
126
|
-
console.error("Failed to parse price update:", error);
|
|
127
|
-
}
|
|
128
|
-
};
|
|
129
|
-
this.ws.onerror = (error) => {
|
|
130
|
-
console.error("Price feed WebSocket error:", error);
|
|
131
|
-
};
|
|
132
|
-
this.ws.onclose = () => {
|
|
133
|
-
console.log("Price feed WebSocket closed");
|
|
134
|
-
this.ws = null;
|
|
135
|
-
// Only reconnect if we have listeners and it wasn't a manual close
|
|
136
|
-
if (this.listeners.size > 0 && !this.isManualClose) {
|
|
137
|
-
this.scheduleReconnect();
|
|
138
|
-
}
|
|
139
|
-
};
|
|
140
|
-
}
|
|
141
|
-
catch (error) {
|
|
142
|
-
console.error("Failed to create WebSocket:", error);
|
|
143
|
-
if (this.listeners.size > 0 && !this.isManualClose) {
|
|
144
|
-
this.scheduleReconnect();
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Schedule reconnection with exponential backoff.
|
|
150
|
-
*/
|
|
151
|
-
scheduleReconnect() {
|
|
152
|
-
if (this.reconnectTimer !== null) {
|
|
153
|
-
return;
|
|
154
|
-
}
|
|
155
|
-
console.log(`Reconnecting in ${this.reconnectDelay}ms...`);
|
|
156
|
-
this.reconnectTimer = setTimeout(() => {
|
|
157
|
-
this.reconnectTimer = null;
|
|
158
|
-
this.connect();
|
|
159
|
-
// Exponential backoff
|
|
160
|
-
this.reconnectDelay = Math.min(this.reconnectDelay * 2, this.maxReconnectDelay);
|
|
161
|
-
}, this.reconnectDelay);
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* Close WebSocket connection.
|
|
165
|
-
*/
|
|
166
|
-
close() {
|
|
167
|
-
this.isManualClose = true;
|
|
168
|
-
if (this.reconnectTimer !== null) {
|
|
169
|
-
clearTimeout(this.reconnectTimer);
|
|
170
|
-
this.reconnectTimer = null;
|
|
171
|
-
}
|
|
172
|
-
if (this.ws) {
|
|
173
|
-
this.ws.close();
|
|
174
|
-
this.ws = null;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
//# sourceMappingURL=price-feed.js.map
|
package/dist/price-feed.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"price-feed.js","sourceRoot":"","sources":["../src/price-feed.ts"],"names":[],"mappings":"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"}
|
package/dist/src/api/client.d.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import createClient from "openapi-fetch";
|
|
2
|
-
import type { components, paths } from "../generated/api.js";
|
|
3
|
-
export type ApiClient = ReturnType<typeof createClient<paths>>;
|
|
4
|
-
export type { paths, components };
|
|
5
|
-
export type TokenId = components["schemas"]["TokenId"];
|
|
6
|
-
export type TokenInfo = components["schemas"]["TokenInfo"];
|
|
7
|
-
export type TokenInfos = components["schemas"]["TokenInfos"];
|
|
8
|
-
export type SwapStatus = components["schemas"]["SwapStatus"];
|
|
9
|
-
export type QuoteResponse = components["schemas"]["QuoteResponse"];
|
|
10
|
-
export type Chain = components["schemas"]["Chain"];
|
|
11
|
-
export type GetSwapResponse = components["schemas"]["GetSwapResponse"];
|
|
12
|
-
export type BtcToArkadeSwapResponse = components["schemas"]["BtcToArkadeSwapResponse"];
|
|
13
|
-
export type EvmToArkadeSwapResponse = components["schemas"]["EvmToArkadeSwapResponse"];
|
|
14
|
-
export type ClaimGaslessRequest = components["schemas"]["ClaimGaslessRequest"];
|
|
15
|
-
export type ClaimGaslessResponse = components["schemas"]["ClaimGaslessResponse"];
|
|
16
|
-
export type ArkadeToEvmSwapRequest = components["schemas"]["ArkadeToEvmSwapRequest"];
|
|
17
|
-
export type ArkadeToEvmSwapResponse = components["schemas"]["ArkadeToEvmSwapResponse"];
|
|
18
|
-
export type DexCallData = components["schemas"]["DexCallData"];
|
|
19
|
-
export type BitcoinToEvmSwapRequest = components["schemas"]["BitcoinToEvmSwapRequest"];
|
|
20
|
-
export type BitcoinToEvmSwapResponse = components["schemas"]["BitcoinToEvmSwapResponse"];
|
|
21
|
-
export type EvmToArkadeGenericSwapRequest = components["schemas"]["EvmToArkadeGenericSwapRequest"];
|
|
22
|
-
export type EvmToBitcoinSwapRequest = components["schemas"]["EvmToBitcoinSwapRequest"];
|
|
23
|
-
export type EvmToBitcoinSwapResponse = components["schemas"]["EvmToBitcoinSwapResponse"];
|
|
24
|
-
export type EvmToLightningSwapResponse = components["schemas"]["EvmToLightningSwapResponse"];
|
|
25
|
-
export type LightningToEvmSwapResponse = components["schemas"]["LightningToEvmSwapResponse"];
|
|
26
|
-
export interface ApiClientOptions {
|
|
27
|
-
baseUrl: string;
|
|
28
|
-
apiKey?: string;
|
|
29
|
-
}
|
|
30
|
-
export declare function createApiClient(options: ApiClientOptions): ApiClient;
|
|
31
|
-
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE7D,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;AAE/D,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAGlC,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC;AACvD,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC;AAC3D,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC;AAC7D,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC;AAC7D,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAC;AACnE,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC;AACnD,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,CAAC;AACvE,MAAM,MAAM,uBAAuB,GACjC,UAAU,CAAC,SAAS,CAAC,CAAC,yBAAyB,CAAC,CAAC;AACnD,MAAM,MAAM,uBAAuB,GACjC,UAAU,CAAC,SAAS,CAAC,CAAC,yBAAyB,CAAC,CAAC;AAGnD,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC;AAC/E,MAAM,MAAM,oBAAoB,GAC9B,UAAU,CAAC,SAAS,CAAC,CAAC,sBAAsB,CAAC,CAAC;AAGhD,MAAM,MAAM,sBAAsB,GAChC,UAAU,CAAC,SAAS,CAAC,CAAC,wBAAwB,CAAC,CAAC;AAClD,MAAM,MAAM,uBAAuB,GACjC,UAAU,CAAC,SAAS,CAAC,CAAC,yBAAyB,CAAC,CAAC;AACnD,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC;AAG/D,MAAM,MAAM,uBAAuB,GACjC,UAAU,CAAC,SAAS,CAAC,CAAC,yBAAyB,CAAC,CAAC;AACnD,MAAM,MAAM,wBAAwB,GAClC,UAAU,CAAC,SAAS,CAAC,CAAC,0BAA0B,CAAC,CAAC;AAGpD,MAAM,MAAM,6BAA6B,GACvC,UAAU,CAAC,SAAS,CAAC,CAAC,+BAA+B,CAAC,CAAC;AAGzD,MAAM,MAAM,uBAAuB,GACjC,UAAU,CAAC,SAAS,CAAC,CAAC,yBAAyB,CAAC,CAAC;AACnD,MAAM,MAAM,wBAAwB,GAClC,UAAU,CAAC,SAAS,CAAC,CAAC,0BAA0B,CAAC,CAAC;AAGpD,MAAM,MAAM,0BAA0B,GACpC,UAAU,CAAC,SAAS,CAAC,CAAC,4BAA4B,CAAC,CAAC;AAGtD,MAAM,MAAM,0BAA0B,GACpC,UAAU,CAAC,SAAS,CAAC,CAAC,4BAA4B,CAAC,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAUpE"}
|
package/dist/src/api/client.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import createClient from "openapi-fetch";
|
|
2
|
-
export function createApiClient(options) {
|
|
3
|
-
const headers = {};
|
|
4
|
-
if (options.apiKey) {
|
|
5
|
-
headers["X-API-Key"] = options.apiKey;
|
|
6
|
-
}
|
|
7
|
-
return createClient({
|
|
8
|
-
baseUrl: options.baseUrl,
|
|
9
|
-
headers,
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AA6DzC,MAAM,UAAU,eAAe,CAAC,OAAyB;IACvD,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IACxC,CAAC;IAED,OAAO,YAAY,CAAQ;QACzB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO;KACR,CAAC,CAAC;AACL,CAAC"}
|
package/dist/src/arkade.d.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Arkade VHTLC query utilities.
|
|
3
|
-
*
|
|
4
|
-
* Provides functions for querying VHTLC state from the Arkade indexer.
|
|
5
|
-
*/
|
|
6
|
-
/** Overall VTXO lifecycle status */
|
|
7
|
-
export type VtxoStatus = "not_funded" | "spendable" | "recoverable" | "spent" | "mixed";
|
|
8
|
-
/** VHTLC amounts breakdown */
|
|
9
|
-
export interface VhtlcAmounts {
|
|
10
|
-
/** Amount that can be spent (in satoshis) */
|
|
11
|
-
spendable: number;
|
|
12
|
-
/** Amount already spent (in satoshis) */
|
|
13
|
-
spent: number;
|
|
14
|
-
/** Amount that can be recovered via refund (in satoshis) */
|
|
15
|
-
recoverable: number;
|
|
16
|
-
/** Overall status derived from VTXO states */
|
|
17
|
-
vtxoStatus: VtxoStatus;
|
|
18
|
-
}
|
|
19
|
-
/** Parameters for querying VHTLC amounts */
|
|
20
|
-
export interface GetVhtlcAmountsParams {
|
|
21
|
-
/** The Arkade VHTLC address */
|
|
22
|
-
vhtlcAddress: string;
|
|
23
|
-
/** The Bitcoin network (e.g. "bitcoin", "signet") */
|
|
24
|
-
network: string;
|
|
25
|
-
/** Optional Arkade server URL override. Falls back to network-based defaults. */
|
|
26
|
-
arkadeServerUrl?: string;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Queries the Arkade indexer for spendable, spent, and recoverable balances
|
|
30
|
-
* at a VHTLC address.
|
|
31
|
-
*
|
|
32
|
-
* @param params - The VHTLC address and network to query.
|
|
33
|
-
* @returns The VHTLC amounts in satoshis.
|
|
34
|
-
*/
|
|
35
|
-
export declare function getVhtlcAmounts(params: GetVhtlcAmountsParams): Promise<VhtlcAmounts>;
|
|
36
|
-
//# sourceMappingURL=arkade.d.ts.map
|
package/dist/src/arkade.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"arkade.d.ts","sourceRoot":"","sources":["../../src/arkade.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAeH,oCAAoC;AACpC,MAAM,MAAM,UAAU,GAClB,YAAY,GACZ,WAAW,GACX,aAAa,GACb,OAAO,GACP,OAAO,CAAC;AAEZ,8BAA8B;AAC9B,MAAM,WAAW,YAAY;IAC3B,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,4CAA4C;AAC5C,MAAM,WAAW,qBAAqB;IACpC,+BAA+B;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,YAAY,CAAC,CAyDvB"}
|
package/dist/src/arkade.js
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Arkade VHTLC query utilities.
|
|
3
|
-
*
|
|
4
|
-
* Provides functions for querying VHTLC state from the Arkade indexer.
|
|
5
|
-
*/
|
|
6
|
-
import { ArkAddress, RestIndexerProvider, } from "@arkade-os/sdk";
|
|
7
|
-
import { hex } from "@scure/base";
|
|
8
|
-
/** Default Arkade server URLs by network */
|
|
9
|
-
const DEFAULT_ARKADE_URLS = {
|
|
10
|
-
bitcoin: "https://arkade.computer",
|
|
11
|
-
signet: "https://signet.arkade.computer",
|
|
12
|
-
};
|
|
13
|
-
/**
|
|
14
|
-
* Queries the Arkade indexer for spendable, spent, and recoverable balances
|
|
15
|
-
* at a VHTLC address.
|
|
16
|
-
*
|
|
17
|
-
* @param params - The VHTLC address and network to query.
|
|
18
|
-
* @returns The VHTLC amounts in satoshis.
|
|
19
|
-
*/
|
|
20
|
-
export async function getVhtlcAmounts(params) {
|
|
21
|
-
const { vhtlcAddress, network, arkadeServerUrl } = params;
|
|
22
|
-
// Decode the Arkade address to get the pkScript for indexer queries
|
|
23
|
-
const decoded = ArkAddress.decode(vhtlcAddress);
|
|
24
|
-
const pkScript = hex.encode(decoded.pkScript);
|
|
25
|
-
// Determine Arkade server URL: explicit override > network default
|
|
26
|
-
const serverUrl = arkadeServerUrl ?? DEFAULT_ARKADE_URLS[network];
|
|
27
|
-
if (!serverUrl) {
|
|
28
|
-
throw new Error(`Unknown network for Arkade: ${network}`);
|
|
29
|
-
}
|
|
30
|
-
const indexerProvider = new RestIndexerProvider(serverUrl);
|
|
31
|
-
// Query each category separately
|
|
32
|
-
const [spendableResult, spentResult, recoverableResult] = await Promise.all([
|
|
33
|
-
indexerProvider.getVtxos({ scripts: [pkScript], spendableOnly: true }),
|
|
34
|
-
indexerProvider.getVtxos({ scripts: [pkScript], spentOnly: true }),
|
|
35
|
-
indexerProvider.getVtxos({ scripts: [pkScript], recoverableOnly: true }),
|
|
36
|
-
]);
|
|
37
|
-
const sum = (vtxos) => vtxos.reduce((acc, v) => acc + v.value, 0);
|
|
38
|
-
// The indexer's spendableOnly filter doesn't account for expired batches.
|
|
39
|
-
// A preconfirmed VTXO with batchExpiry in the past is effectively expired
|
|
40
|
-
// and can only be spent via delegated settlement, not offchain spend.
|
|
41
|
-
// Reclassify such VTXOs from spendable to recoverable.
|
|
42
|
-
const now = Date.now();
|
|
43
|
-
let actualSpendable = 0;
|
|
44
|
-
let expiredSpendable = 0;
|
|
45
|
-
for (const v of spendableResult.vtxos) {
|
|
46
|
-
const expiry = v.virtualStatus?.batchExpiry;
|
|
47
|
-
if (expiry && expiry <= now) {
|
|
48
|
-
expiredSpendable += v.value;
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
actualSpendable += v.value;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
const spendable = actualSpendable;
|
|
55
|
-
const spent = sum(spentResult.vtxos);
|
|
56
|
-
const recoverable = sum(recoverableResult.vtxos) + expiredSpendable;
|
|
57
|
-
const vtxoStatus = spendable === 0 && spent === 0 && recoverable === 0
|
|
58
|
-
? "not_funded"
|
|
59
|
-
: spendable > 0 && recoverable > 0
|
|
60
|
-
? "mixed"
|
|
61
|
-
: spendable > 0
|
|
62
|
-
? "spendable"
|
|
63
|
-
: recoverable > 0
|
|
64
|
-
? "recoverable"
|
|
65
|
-
: "spent";
|
|
66
|
-
return { spendable, spent, recoverable, vtxoStatus };
|
|
67
|
-
}
|
|
68
|
-
//# sourceMappingURL=arkade.js.map
|
package/dist/src/arkade.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"arkade.js","sourceRoot":"","sources":["../../src/arkade.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,UAAU,EAEV,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,4CAA4C;AAC5C,MAAM,mBAAmB,GAA2B;IAClD,OAAO,EAAE,yBAAyB;IAClC,MAAM,EAAE,gCAAgC;CACzC,CAAC;AAgCF;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAA6B;IAE7B,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;IAE1D,oEAAoE;IACpE,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE9C,mEAAmE;IACnE,MAAM,SAAS,GAAG,eAAe,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAClE,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,+BAA+B,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,eAAe,GAAoB,IAAI,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAE5E,iCAAiC;IACjC,MAAM,CAAC,eAAe,EAAE,WAAW,EAAE,iBAAiB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC1E,eAAe,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QACtE,eAAe,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAClE,eAAe,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;KACzE,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,CAAC,KAA0B,EAAE,EAAE,CACzC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAE7C,0EAA0E;IAC1E,0EAA0E;IAC1E,sEAAsE;IACtE,uDAAuD;IACvD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,KAAK,MAAM,CAAC,IAAI,eAAe,CAAC,KAAK,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,CAAC,CAAC,aAAa,EAAE,WAAW,CAAC;QAC5C,IAAI,MAAM,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;YAC5B,gBAAgB,IAAI,CAAC,CAAC,KAAK,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,eAAe,IAAI,CAAC,CAAC,KAAK,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,eAAe,CAAC;IAClC,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC;IAEpE,MAAM,UAAU,GACd,SAAS,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,WAAW,KAAK,CAAC;QACjD,CAAC,CAAC,YAAY;QACd,CAAC,CAAC,SAAS,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC;YAChC,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,SAAS,GAAG,CAAC;gBACb,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,WAAW,GAAG,CAAC;oBACf,CAAC,CAAC,aAAa;oBACf,CAAC,CAAC,OAAO,CAAC;IAEpB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AACvD,CAAC"}
|