@kaleidorg/wallet-engine 1.0.0-beta.12
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/LICENSE +21 -0
- package/README.md +247 -0
- package/dist/adapters/ArkadeAdapter.d.ts +49 -0
- package/dist/adapters/ArkadeAdapter.d.ts.map +1 -0
- package/dist/adapters/ArkadeAdapter.js +316 -0
- package/dist/adapters/ArkadeAdapter.js.map +1 -0
- package/dist/adapters/IProtocolAdapter.d.ts +217 -0
- package/dist/adapters/IProtocolAdapter.d.ts.map +1 -0
- package/dist/adapters/IProtocolAdapter.js +33 -0
- package/dist/adapters/IProtocolAdapter.js.map +1 -0
- package/dist/adapters/RgbAdapter.d.ts +71 -0
- package/dist/adapters/RgbAdapter.d.ts.map +1 -0
- package/dist/adapters/RgbAdapter.js +820 -0
- package/dist/adapters/RgbAdapter.js.map +1 -0
- package/dist/adapters/SparkAdapter.d.ts +48 -0
- package/dist/adapters/SparkAdapter.d.ts.map +1 -0
- package/dist/adapters/SparkAdapter.js +395 -0
- package/dist/adapters/SparkAdapter.js.map +1 -0
- package/dist/adapters/native.d.ts +16 -0
- package/dist/adapters/native.d.ts.map +1 -0
- package/dist/adapters/native.js +16 -0
- package/dist/adapters/native.js.map +1 -0
- package/dist/adapters/wdk/ArkadeWdkAdapter.d.ts +85 -0
- package/dist/adapters/wdk/ArkadeWdkAdapter.d.ts.map +1 -0
- package/dist/adapters/wdk/ArkadeWdkAdapter.js +313 -0
- package/dist/adapters/wdk/ArkadeWdkAdapter.js.map +1 -0
- package/dist/adapters/wdk/LiquidWdkAdapter.d.ts +88 -0
- package/dist/adapters/wdk/LiquidWdkAdapter.d.ts.map +1 -0
- package/dist/adapters/wdk/LiquidWdkAdapter.js +276 -0
- package/dist/adapters/wdk/LiquidWdkAdapter.js.map +1 -0
- package/dist/adapters/wdk/RlnWdkAdapter.d.ts +86 -0
- package/dist/adapters/wdk/RlnWdkAdapter.d.ts.map +1 -0
- package/dist/adapters/wdk/RlnWdkAdapter.js +310 -0
- package/dist/adapters/wdk/RlnWdkAdapter.js.map +1 -0
- package/dist/adapters/wdk/SparkWdkAdapter.d.ts +81 -0
- package/dist/adapters/wdk/SparkWdkAdapter.d.ts.map +1 -0
- package/dist/adapters/wdk/SparkWdkAdapter.js +417 -0
- package/dist/adapters/wdk/SparkWdkAdapter.js.map +1 -0
- package/dist/adapters/wdk/index.d.ts +15 -0
- package/dist/adapters/wdk/index.d.ts.map +1 -0
- package/dist/adapters/wdk/index.js +15 -0
- package/dist/adapters/wdk/index.js.map +1 -0
- package/dist/adapters/wdk/moduleLoader.d.ts +22 -0
- package/dist/adapters/wdk/moduleLoader.d.ts.map +1 -0
- package/dist/adapters/wdk/moduleLoader.js +31 -0
- package/dist/adapters/wdk/moduleLoader.js.map +1 -0
- package/dist/capabilities/index.d.ts +46 -0
- package/dist/capabilities/index.d.ts.map +1 -0
- package/dist/capabilities/index.js +102 -0
- package/dist/capabilities/index.js.map +1 -0
- package/dist/capabilities/operations.d.ts +22 -0
- package/dist/capabilities/operations.d.ts.map +1 -0
- package/dist/capabilities/operations.js +55 -0
- package/dist/capabilities/operations.js.map +1 -0
- package/dist/constants.d.ts +8 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +8 -0
- package/dist/constants.js.map +1 -0
- package/dist/disclosure/index.d.ts +51 -0
- package/dist/disclosure/index.d.ts.map +1 -0
- package/dist/disclosure/index.js +64 -0
- package/dist/disclosure/index.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/arkade-client-manager.d.ts +47 -0
- package/dist/lib/arkade-client-manager.d.ts.map +1 -0
- package/dist/lib/arkade-client-manager.js +121 -0
- package/dist/lib/arkade-client-manager.js.map +1 -0
- package/dist/lib/bolt11.d.ts +18 -0
- package/dist/lib/bolt11.d.ts.map +1 -0
- package/dist/lib/bolt11.js +31 -0
- package/dist/lib/bolt11.js.map +1 -0
- package/dist/lib/flashnet-client-manager.d.ts +29 -0
- package/dist/lib/flashnet-client-manager.d.ts.map +1 -0
- package/dist/lib/flashnet-client-manager.js +116 -0
- package/dist/lib/flashnet-client-manager.js.map +1 -0
- package/dist/lib/kaleido-client-manager.d.ts +26 -0
- package/dist/lib/kaleido-client-manager.d.ts.map +1 -0
- package/dist/lib/kaleido-client-manager.js +55 -0
- package/dist/lib/kaleido-client-manager.js.map +1 -0
- package/dist/lib/spark-client-manager.d.ts +41 -0
- package/dist/lib/spark-client-manager.d.ts.map +1 -0
- package/dist/lib/spark-client-manager.js +101 -0
- package/dist/lib/spark-client-manager.js.map +1 -0
- package/dist/manager/ProtocolManager.d.ts +108 -0
- package/dist/manager/ProtocolManager.d.ts.map +1 -0
- package/dist/manager/ProtocolManager.js +305 -0
- package/dist/manager/ProtocolManager.js.map +1 -0
- package/dist/ports/index.d.ts +49 -0
- package/dist/ports/index.d.ts.map +1 -0
- package/dist/ports/index.js +31 -0
- package/dist/ports/index.js.map +1 -0
- package/dist/receive/unifiedReceive.d.ts +54 -0
- package/dist/receive/unifiedReceive.d.ts.map +1 -0
- package/dist/receive/unifiedReceive.js +102 -0
- package/dist/receive/unifiedReceive.js.map +1 -0
- package/dist/registry/createWdkRegistry.d.ts +20 -0
- package/dist/registry/createWdkRegistry.d.ts.map +1 -0
- package/dist/registry/createWdkRegistry.js +32 -0
- package/dist/registry/createWdkRegistry.js.map +1 -0
- package/dist/router/destination.d.ts +28 -0
- package/dist/router/destination.d.ts.map +1 -0
- package/dist/router/destination.js +72 -0
- package/dist/router/destination.js.map +1 -0
- package/dist/router/index.d.ts +55 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/index.js +67 -0
- package/dist/router/index.js.map +1 -0
- package/dist/swap/KaleidoswapSwap.d.ts +44 -0
- package/dist/swap/KaleidoswapSwap.d.ts.map +1 -0
- package/dist/swap/KaleidoswapSwap.js +123 -0
- package/dist/swap/KaleidoswapSwap.js.map +1 -0
- package/dist/swap/index.d.ts +8 -0
- package/dist/swap/index.d.ts.map +1 -0
- package/dist/swap/index.js +8 -0
- package/dist/swap/index.js.map +1 -0
- package/dist/types/arkade.d.ts +40 -0
- package/dist/types/arkade.d.ts.map +1 -0
- package/dist/types/arkade.js +6 -0
- package/dist/types/arkade.js.map +1 -0
- package/dist/types/base.d.ts +228 -0
- package/dist/types/base.d.ts.map +1 -0
- package/dist/types/base.js +53 -0
- package/dist/types/base.js.map +1 -0
- package/dist/types/cross-l2.d.ts +108 -0
- package/dist/types/cross-l2.d.ts.map +1 -0
- package/dist/types/cross-l2.js +16 -0
- package/dist/types/cross-l2.js.map +1 -0
- package/dist/types/flashnet.d.ts +31 -0
- package/dist/types/flashnet.d.ts.map +1 -0
- package/dist/types/flashnet.js +23 -0
- package/dist/types/flashnet.js.map +1 -0
- package/dist/types/rgb.d.ts +105 -0
- package/dist/types/rgb.d.ts.map +1 -0
- package/dist/types/rgb.js +6 -0
- package/dist/types/rgb.js.map +1 -0
- package/dist/types/spark.d.ts +59 -0
- package/dist/types/spark.d.ts.map +1 -0
- package/dist/types/spark.js +6 -0
- package/dist/types/spark.js.map +1 -0
- package/dist/utils.d.ts +10 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +23 -0
- package/dist/utils.js.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base types shared across all protocols
|
|
3
|
+
* Ported from rate-extension/src/protocols/types/base.ts
|
|
4
|
+
*/
|
|
5
|
+
export type ProtocolType = 'RGB' | 'SPARK' | 'ARKADE' | 'BTC' | 'LIQUID';
|
|
6
|
+
export type Layer = 'BTC_L1' | 'BTC_LN' | 'BTC_ARKADE' | 'BTC_SPARK' | 'BTC_LIQUID' | 'RGB_L1' | 'RGB_LN' | 'SPARK_SPARK' | 'ARKADE_ARKADE' | 'LIQUID_ASSET';
|
|
7
|
+
export interface NodeInfo {
|
|
8
|
+
pubkey?: string;
|
|
9
|
+
local_balance_sat?: number;
|
|
10
|
+
outbound_balance_msat?: number;
|
|
11
|
+
num_channels?: number;
|
|
12
|
+
[key: string]: unknown;
|
|
13
|
+
}
|
|
14
|
+
export interface UnifiedAsset {
|
|
15
|
+
id: string;
|
|
16
|
+
name: string;
|
|
17
|
+
ticker: string;
|
|
18
|
+
precision: number;
|
|
19
|
+
protocol: ProtocolType;
|
|
20
|
+
layer: Layer;
|
|
21
|
+
balance: AssetBalance;
|
|
22
|
+
icon?: string;
|
|
23
|
+
color?: string;
|
|
24
|
+
capabilities: AssetCapabilities;
|
|
25
|
+
metadata?: Record<string, any>;
|
|
26
|
+
}
|
|
27
|
+
export interface AssetBalance {
|
|
28
|
+
total: number;
|
|
29
|
+
available: number;
|
|
30
|
+
pending: number;
|
|
31
|
+
locked?: number;
|
|
32
|
+
totalDisplay: string;
|
|
33
|
+
availableDisplay: string;
|
|
34
|
+
}
|
|
35
|
+
export interface RgbAssetBalance extends AssetBalance {
|
|
36
|
+
settled: number;
|
|
37
|
+
future: number;
|
|
38
|
+
spendable: number;
|
|
39
|
+
offchain_outbound: number;
|
|
40
|
+
offchain_inbound: number;
|
|
41
|
+
}
|
|
42
|
+
export interface LightningChannel {
|
|
43
|
+
channel_id: string;
|
|
44
|
+
ready?: boolean;
|
|
45
|
+
is_usable?: boolean;
|
|
46
|
+
asset_id?: string;
|
|
47
|
+
asset_local_amount?: number;
|
|
48
|
+
asset_remote_amount?: number;
|
|
49
|
+
next_outbound_htlc_limit_msat?: number;
|
|
50
|
+
local_balance_msat?: number;
|
|
51
|
+
[key: string]: unknown;
|
|
52
|
+
}
|
|
53
|
+
export interface AssetCapabilities {
|
|
54
|
+
canSend: boolean;
|
|
55
|
+
canReceive: boolean;
|
|
56
|
+
canSwap: boolean;
|
|
57
|
+
supportsLightning: boolean;
|
|
58
|
+
supportsOnchain: boolean;
|
|
59
|
+
}
|
|
60
|
+
export interface UnifiedTransaction {
|
|
61
|
+
id: string;
|
|
62
|
+
type: TransactionType;
|
|
63
|
+
status: TransactionStatus;
|
|
64
|
+
timestamp: number;
|
|
65
|
+
amount: number;
|
|
66
|
+
amountDisplay: string;
|
|
67
|
+
fee?: number;
|
|
68
|
+
feeDisplay?: string;
|
|
69
|
+
asset: UnifiedAsset;
|
|
70
|
+
from?: string;
|
|
71
|
+
to?: string;
|
|
72
|
+
protocolData?: Record<string, any>;
|
|
73
|
+
}
|
|
74
|
+
export type TransactionType = 'send' | 'receive' | 'swap' | 'channel_open' | 'channel_close';
|
|
75
|
+
export type TransactionStatus = 'pending' | 'confirmed' | 'failed' | 'cancelled';
|
|
76
|
+
export interface InvoiceRequest {
|
|
77
|
+
amount?: number;
|
|
78
|
+
asset?: string;
|
|
79
|
+
assetAmount?: number;
|
|
80
|
+
description?: string;
|
|
81
|
+
expirySeconds?: number;
|
|
82
|
+
/** Optional target layer when a protocol can receive on more than one (e.g. Spark: BTC_LN vs SPARK_SPARK). */
|
|
83
|
+
layer?: Layer;
|
|
84
|
+
}
|
|
85
|
+
export interface Invoice {
|
|
86
|
+
invoice: string;
|
|
87
|
+
paymentHash: string;
|
|
88
|
+
amount?: number;
|
|
89
|
+
expiresAt: number;
|
|
90
|
+
description?: string;
|
|
91
|
+
}
|
|
92
|
+
export interface DecodedInvoice {
|
|
93
|
+
paymentHash: string;
|
|
94
|
+
amount?: number;
|
|
95
|
+
amountMsat?: number;
|
|
96
|
+
description?: string;
|
|
97
|
+
expiresAt: number;
|
|
98
|
+
destination: string;
|
|
99
|
+
asset?: string;
|
|
100
|
+
asset_id?: string;
|
|
101
|
+
asset_amount?: number;
|
|
102
|
+
payment_hash?: string;
|
|
103
|
+
amount_msat?: number;
|
|
104
|
+
expires_at?: number;
|
|
105
|
+
payee_pubkey?: string;
|
|
106
|
+
}
|
|
107
|
+
export interface PaymentRequest {
|
|
108
|
+
invoice: string;
|
|
109
|
+
amount?: number;
|
|
110
|
+
/** Cap on routing fee for Lightning sends (sats). Some protocols (Spark) require it. */
|
|
111
|
+
maxFeeSats?: number;
|
|
112
|
+
}
|
|
113
|
+
export interface KeysendRequest {
|
|
114
|
+
pubkey: string;
|
|
115
|
+
amount: number;
|
|
116
|
+
assetId?: string;
|
|
117
|
+
assetAmount?: number;
|
|
118
|
+
}
|
|
119
|
+
export interface PaymentResult {
|
|
120
|
+
paymentHash: string;
|
|
121
|
+
txid?: string;
|
|
122
|
+
preimage?: string;
|
|
123
|
+
amount: number;
|
|
124
|
+
fee: number;
|
|
125
|
+
status: TransactionStatus;
|
|
126
|
+
timestamp: number;
|
|
127
|
+
}
|
|
128
|
+
export interface PaymentStatus {
|
|
129
|
+
paymentHash: string;
|
|
130
|
+
status: TransactionStatus;
|
|
131
|
+
amount?: number;
|
|
132
|
+
fee?: number;
|
|
133
|
+
timestamp?: number;
|
|
134
|
+
error?: string;
|
|
135
|
+
}
|
|
136
|
+
export interface Address {
|
|
137
|
+
address: string;
|
|
138
|
+
format: AddressFormat;
|
|
139
|
+
asset?: string;
|
|
140
|
+
qrCode?: string;
|
|
141
|
+
}
|
|
142
|
+
export type AddressFormat = 'BTC_ADDRESS' | 'BOLT11' | 'BOLT12' | 'RGB_INVOICE' | 'SPARK_ADDRESS' | 'ARKADE_ADDRESS' | 'LIQUID_ADDRESS';
|
|
143
|
+
export interface ConnectionInfo {
|
|
144
|
+
protocol: ProtocolType;
|
|
145
|
+
connected: boolean;
|
|
146
|
+
nodeId?: string;
|
|
147
|
+
network?: string;
|
|
148
|
+
blockHeight?: number;
|
|
149
|
+
syncStatus?: SyncStatus;
|
|
150
|
+
}
|
|
151
|
+
export interface SyncStatus {
|
|
152
|
+
synced: boolean;
|
|
153
|
+
progress?: number;
|
|
154
|
+
blockHeight?: number;
|
|
155
|
+
targetHeight?: number;
|
|
156
|
+
}
|
|
157
|
+
export interface TransactionFilter {
|
|
158
|
+
asset?: string;
|
|
159
|
+
type?: TransactionType;
|
|
160
|
+
status?: TransactionStatus;
|
|
161
|
+
fromTimestamp?: number;
|
|
162
|
+
toTimestamp?: number;
|
|
163
|
+
limit?: number;
|
|
164
|
+
offset?: number;
|
|
165
|
+
}
|
|
166
|
+
export interface QuoteRequest {
|
|
167
|
+
fromAsset: string;
|
|
168
|
+
toAsset: string;
|
|
169
|
+
fromAmount?: number;
|
|
170
|
+
toAmount?: number;
|
|
171
|
+
}
|
|
172
|
+
export interface Quote {
|
|
173
|
+
id: string;
|
|
174
|
+
fromAsset: string;
|
|
175
|
+
fromAmount: number;
|
|
176
|
+
toAsset: string;
|
|
177
|
+
toAmount: number;
|
|
178
|
+
price: number;
|
|
179
|
+
fee: QuoteFee;
|
|
180
|
+
expiresAt: number;
|
|
181
|
+
provider?: string;
|
|
182
|
+
}
|
|
183
|
+
export interface QuoteFee {
|
|
184
|
+
amount: number;
|
|
185
|
+
asset: string;
|
|
186
|
+
breakdown?: {
|
|
187
|
+
baseFee: number;
|
|
188
|
+
variableFee: number;
|
|
189
|
+
networkFee: number;
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
export interface SwapResult {
|
|
193
|
+
swapId: string;
|
|
194
|
+
paymentHash?: string;
|
|
195
|
+
status: TransactionStatus;
|
|
196
|
+
quote: Quote;
|
|
197
|
+
timestamp: number;
|
|
198
|
+
}
|
|
199
|
+
export declare const ErrorCode: {
|
|
200
|
+
readonly CONNECTION_ERROR: "CONNECTION_ERROR";
|
|
201
|
+
readonly INSUFFICIENT_BALANCE: "INSUFFICIENT_BALANCE";
|
|
202
|
+
readonly NOT_SUPPORTED: "NOT_SUPPORTED";
|
|
203
|
+
readonly NOT_CONFIGURED: "NOT_CONFIGURED";
|
|
204
|
+
readonly VALIDATION_ERROR: "VALIDATION_ERROR";
|
|
205
|
+
};
|
|
206
|
+
export type ErrorCodeType = (typeof ErrorCode)[keyof typeof ErrorCode];
|
|
207
|
+
export declare class ProtocolError extends Error {
|
|
208
|
+
protocol: ProtocolType;
|
|
209
|
+
code?: string | undefined;
|
|
210
|
+
details?: unknown | undefined;
|
|
211
|
+
constructor(message: string, protocol: ProtocolType, code?: string | undefined, details?: unknown | undefined);
|
|
212
|
+
}
|
|
213
|
+
export declare class ConnectionError extends ProtocolError {
|
|
214
|
+
constructor(message: string, protocol: ProtocolType, details?: unknown);
|
|
215
|
+
}
|
|
216
|
+
export declare class InsufficientBalanceError extends ProtocolError {
|
|
217
|
+
constructor(message: string, protocol: ProtocolType, required: number, available: number);
|
|
218
|
+
}
|
|
219
|
+
export declare class CapabilityError extends ProtocolError {
|
|
220
|
+
constructor(message: string, protocol: ProtocolType, details?: unknown);
|
|
221
|
+
}
|
|
222
|
+
export declare class ConfigurationError extends ProtocolError {
|
|
223
|
+
constructor(message: string, protocol: ProtocolType, details?: unknown);
|
|
224
|
+
}
|
|
225
|
+
export declare class ValidationError extends ProtocolError {
|
|
226
|
+
constructor(message: string, protocol: ProtocolType, details?: unknown);
|
|
227
|
+
}
|
|
228
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/types/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base types shared across all protocols
|
|
3
|
+
* Ported from rate-extension/src/protocols/types/base.ts
|
|
4
|
+
*/
|
|
5
|
+
// Error codes
|
|
6
|
+
export const ErrorCode = {
|
|
7
|
+
CONNECTION_ERROR: 'CONNECTION_ERROR',
|
|
8
|
+
INSUFFICIENT_BALANCE: 'INSUFFICIENT_BALANCE',
|
|
9
|
+
NOT_SUPPORTED: 'NOT_SUPPORTED',
|
|
10
|
+
NOT_CONFIGURED: 'NOT_CONFIGURED',
|
|
11
|
+
VALIDATION_ERROR: 'VALIDATION_ERROR',
|
|
12
|
+
};
|
|
13
|
+
// Error types
|
|
14
|
+
export class ProtocolError extends Error {
|
|
15
|
+
constructor(message, protocol, code, details) {
|
|
16
|
+
super(message);
|
|
17
|
+
this.protocol = protocol;
|
|
18
|
+
this.code = code;
|
|
19
|
+
this.details = details;
|
|
20
|
+
this.name = 'ProtocolError';
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export class ConnectionError extends ProtocolError {
|
|
24
|
+
constructor(message, protocol, details) {
|
|
25
|
+
super(message, protocol, ErrorCode.CONNECTION_ERROR, details);
|
|
26
|
+
this.name = 'ConnectionError';
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export class InsufficientBalanceError extends ProtocolError {
|
|
30
|
+
constructor(message, protocol, required, available) {
|
|
31
|
+
super(message, protocol, ErrorCode.INSUFFICIENT_BALANCE, { required, available });
|
|
32
|
+
this.name = 'InsufficientBalanceError';
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export class CapabilityError extends ProtocolError {
|
|
36
|
+
constructor(message, protocol, details) {
|
|
37
|
+
super(message, protocol, ErrorCode.NOT_SUPPORTED, details);
|
|
38
|
+
this.name = 'CapabilityError';
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export class ConfigurationError extends ProtocolError {
|
|
42
|
+
constructor(message, protocol, details) {
|
|
43
|
+
super(message, protocol, ErrorCode.NOT_CONFIGURED, details);
|
|
44
|
+
this.name = 'ConfigurationError';
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
export class ValidationError extends ProtocolError {
|
|
48
|
+
constructor(message, protocol, details) {
|
|
49
|
+
super(message, protocol, ErrorCode.VALIDATION_ERROR, details);
|
|
50
|
+
this.name = 'ValidationError';
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/types/base.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAwQH,cAAc;AACd,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,gBAAgB,EAAE,kBAAkB;IACpC,oBAAoB,EAAE,sBAAsB;IAC5C,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,gBAAgB;IAChC,gBAAgB,EAAE,kBAAkB;CAC5B,CAAA;AAIV,cAAc;AACd,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,YACE,OAAe,EACR,QAAsB,EACtB,IAAa,EACb,OAAiB;QAExB,KAAK,CAAC,OAAO,CAAC,CAAA;QAJP,aAAQ,GAAR,QAAQ,CAAc;QACtB,SAAI,GAAJ,IAAI,CAAS;QACb,YAAO,GAAP,OAAO,CAAU;QAGxB,IAAI,CAAC,IAAI,GAAG,eAAe,CAAA;IAC7B,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,aAAa;IAChD,YAAY,OAAe,EAAE,QAAsB,EAAE,OAAiB;QACpE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAA;QAC7D,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAA;IAC/B,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,aAAa;IACzD,YAAY,OAAe,EAAE,QAAsB,EAAE,QAAgB,EAAE,SAAiB;QACtF,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAA;QACjF,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAA;IACxC,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,aAAa;IAChD,YAAY,OAAe,EAAE,QAAsB,EAAE,OAAiB;QACpE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;QAC1D,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAA;IAC/B,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,aAAa;IACnD,YAAY,OAAe,EAAE,QAAsB,EAAE,OAAiB;QACpE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;QAC3D,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAA;IAClC,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,aAAa;IAChD,YAAY,OAAe,EAAE,QAAsB,EAAE,OAAiB;QACpE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAA;QAC7D,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAA;IAC/B,CAAC;CACF"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-L2 atomic swap types (Spark <-> Arkade and similar pairs).
|
|
3
|
+
*
|
|
4
|
+
* Mirrored in kaleidoswap-maker/app/models/cross_l2.py — keep shapes in sync.
|
|
5
|
+
*
|
|
6
|
+
* The destination side uses our custom SHA256-VHTLC contract type
|
|
7
|
+
* (registered with the @arkade-os/sdk ContractManager via the proxy's
|
|
8
|
+
* sha256VhtlcContract.js), so the SAME sha256(preimage) hash secures both
|
|
9
|
+
* sides of a swap. Single hash, no cheating window — the taker generates
|
|
10
|
+
* preimage P, supplies sha256(P) as `payment_hash`, and the maker locks
|
|
11
|
+
* both Lightning HODL and Arkade SHA256-VHTLC against it.
|
|
12
|
+
*
|
|
13
|
+
* The atomic-swap design lives in docs/atomic-swaps/spark-arkade.md.
|
|
14
|
+
*/
|
|
15
|
+
import type { Layer } from './base.js';
|
|
16
|
+
export type BackendId = 'spark' | 'arkade' | 'rln' | 'boltz';
|
|
17
|
+
/**
|
|
18
|
+
* Phase of a cross-L2 swap. Rides alongside the maker's existing
|
|
19
|
+
* SwapOrderStatus on the same SwapOrder document.
|
|
20
|
+
*
|
|
21
|
+
* quoted quote handed to taker, nothing locked
|
|
22
|
+
* dest_locked destination L2 (e.g. Arkade) VHTLC funded
|
|
23
|
+
* source_invoiced source L2 (e.g. Spark) HODL invoice issued
|
|
24
|
+
* source_locked taker paid HODL on source, htlc pending
|
|
25
|
+
* dest_claimed taker revealed preimage on destination
|
|
26
|
+
* source_settled maker captured preimage, settled HODL on source
|
|
27
|
+
* refunded timeout path completed on both sides
|
|
28
|
+
*/
|
|
29
|
+
export type CrossL2Phase = 'quoted' | 'dest_locked' | 'source_invoiced' | 'source_locked' | 'dest_claimed' | 'source_settled' | 'refunded';
|
|
30
|
+
/**
|
|
31
|
+
* Parameters for a SHA256-VHTLC contract on Arkade.
|
|
32
|
+
*
|
|
33
|
+
* Pubkeys are 32-byte x-only hex; `hash` is sha256(preimage), 32-byte hex
|
|
34
|
+
* — same hash that secures the source-side Lightning HODL invoice.
|
|
35
|
+
*/
|
|
36
|
+
export interface VhtlcParams {
|
|
37
|
+
sender: string;
|
|
38
|
+
receiver: string;
|
|
39
|
+
server: string;
|
|
40
|
+
/** sha256(preimage), 32-byte hex. Same hash on both sides of the swap. */
|
|
41
|
+
hash: string;
|
|
42
|
+
refund_locktime: number;
|
|
43
|
+
claim_delay: number;
|
|
44
|
+
refund_delay: number;
|
|
45
|
+
refund_no_receiver_delay: number;
|
|
46
|
+
}
|
|
47
|
+
export interface HodlInvoiceDescriptor {
|
|
48
|
+
encoded_invoice: string;
|
|
49
|
+
payment_hash: string;
|
|
50
|
+
amount_sats: number;
|
|
51
|
+
expires_at: number;
|
|
52
|
+
}
|
|
53
|
+
export interface CrossL2QuoteRequest {
|
|
54
|
+
from_layer: Layer;
|
|
55
|
+
to_layer: Layer;
|
|
56
|
+
amount_sats: number;
|
|
57
|
+
}
|
|
58
|
+
export interface CrossL2Quote {
|
|
59
|
+
quote_id: string;
|
|
60
|
+
from_layer: Layer;
|
|
61
|
+
to_layer: Layer;
|
|
62
|
+
amount_in_sats: number;
|
|
63
|
+
amount_out_sats: number;
|
|
64
|
+
fee_sats: number;
|
|
65
|
+
source_cltv_expiry_seconds: number;
|
|
66
|
+
destination_refund_locktime_seconds: number;
|
|
67
|
+
safety_margin_seconds: number;
|
|
68
|
+
expires_at: number;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Cross-L2 swap initiation, taker-driven.
|
|
72
|
+
*
|
|
73
|
+
* The TAKER generates a single secret preimage P and supplies sha256(P)
|
|
74
|
+
* as `payment_hash`. The same hash is used on BOTH sides:
|
|
75
|
+
* - source: Spark Lightning HODL committed to sha256(P)
|
|
76
|
+
* - destination: Arkade SHA256-VHTLC committed to sha256(P)
|
|
77
|
+
* Atomicity holds because knowledge of P unlocks both sides; the taker
|
|
78
|
+
* reveals P on Arkade by claiming the VHTLC, the maker scrapes P from
|
|
79
|
+
* the spend witness and settles the HODL on Spark.
|
|
80
|
+
*/
|
|
81
|
+
export interface CrossL2InitiatePayload {
|
|
82
|
+
quote_id: string;
|
|
83
|
+
/** sha256(preimage), 32-byte hex. Used for both source HODL and dest SHA256-VHTLC. */
|
|
84
|
+
payment_hash: string;
|
|
85
|
+
receiver_dest_pubkey: string;
|
|
86
|
+
}
|
|
87
|
+
export interface CrossL2InitiateResponse {
|
|
88
|
+
swap_id: string;
|
|
89
|
+
source_invoice: string;
|
|
90
|
+
dest_vhtlc_address: string;
|
|
91
|
+
vhtlc_params: VhtlcParams;
|
|
92
|
+
vhtlc_script_hex: string;
|
|
93
|
+
expires_at: number;
|
|
94
|
+
}
|
|
95
|
+
export interface CrossL2SwapStatus {
|
|
96
|
+
swap_id: string;
|
|
97
|
+
phase: CrossL2Phase;
|
|
98
|
+
preimage_observed: boolean;
|
|
99
|
+
source_settled_at?: number;
|
|
100
|
+
failure_reason?: string;
|
|
101
|
+
}
|
|
102
|
+
export interface RefundReceipt {
|
|
103
|
+
swap_id: string;
|
|
104
|
+
source_refund_txid?: string;
|
|
105
|
+
dest_refund_txid?: string;
|
|
106
|
+
refunded_at: number;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=cross-l2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cross-l2.d.ts","sourceRoot":"","sources":["../../src/types/cross-l2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAEnC,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAA;AAE5D;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,YAAY,GACpB,QAAQ,GACR,aAAa,GACb,iBAAiB,GACjB,eAAe,GACf,cAAc,GACd,gBAAgB,GAChB,UAAU,CAAA;AAEd;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAA;IACZ,eAAe,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,wBAAwB,EAAE,MAAM,CAAA;CACjC;AAED,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,MAAM,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,KAAK,CAAA;IACjB,QAAQ,EAAE,KAAK,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,KAAK,CAAA;IACjB,QAAQ,EAAE,KAAK,CAAA;IACf,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,0BAA0B,EAAE,MAAM,CAAA;IAClC,mCAAmC,EAAE,MAAM,CAAA;IAC3C,qBAAqB,EAAE,MAAM,CAAA;IAC7B,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAA;IAChB,sFAAsF;IACtF,YAAY,EAAE,MAAM,CAAA;IACpB,oBAAoB,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,MAAM,CAAA;IACtB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,YAAY,EAAE,WAAW,CAAA;IACzB,gBAAgB,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,YAAY,CAAA;IACnB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,WAAW,EAAE,MAAM,CAAA;CACpB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-L2 atomic swap types (Spark <-> Arkade and similar pairs).
|
|
3
|
+
*
|
|
4
|
+
* Mirrored in kaleidoswap-maker/app/models/cross_l2.py — keep shapes in sync.
|
|
5
|
+
*
|
|
6
|
+
* The destination side uses our custom SHA256-VHTLC contract type
|
|
7
|
+
* (registered with the @arkade-os/sdk ContractManager via the proxy's
|
|
8
|
+
* sha256VhtlcContract.js), so the SAME sha256(preimage) hash secures both
|
|
9
|
+
* sides of a swap. Single hash, no cheating window — the taker generates
|
|
10
|
+
* preimage P, supplies sha256(P) as `payment_hash`, and the maker locks
|
|
11
|
+
* both Lightning HODL and Arkade SHA256-VHTLC against it.
|
|
12
|
+
*
|
|
13
|
+
* The atomic-swap design lives in docs/atomic-swaps/spark-arkade.md.
|
|
14
|
+
*/
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=cross-l2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cross-l2.js","sourceRoot":"","sources":["../../src/types/cross-l2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flashnet Protocol Types
|
|
3
|
+
* Ported from rate-extension/src/protocols/types/flashnet.ts
|
|
4
|
+
*/
|
|
5
|
+
export type FlashnetNetwork = 'mainnet' | 'regtest';
|
|
6
|
+
export declare const USDB_TOKEN_ADDRESS: Record<'mainnet' | 'regtest', string>;
|
|
7
|
+
export declare const BTC_ASSET_PUBKEY = "020202020202020202020202020202020202020202020202020202020202020202";
|
|
8
|
+
export declare const USDB_DECIMALS = 6;
|
|
9
|
+
export declare const BTC_DECIMALS = 8;
|
|
10
|
+
export declare const DEFAULT_SLIPPAGE_BPS = 500;
|
|
11
|
+
export declare function getFlashnetNetworkForSpark(sparkNetwork: string | null | undefined): FlashnetNetwork | null;
|
|
12
|
+
export declare function getFlashnetUsdbTokenAddress(network: FlashnetNetwork): string;
|
|
13
|
+
export interface FlashnetSwapSimulation {
|
|
14
|
+
amountOut: bigint;
|
|
15
|
+
executionPrice: number;
|
|
16
|
+
priceImpactPct: number;
|
|
17
|
+
}
|
|
18
|
+
export interface FlashnetSwapResult {
|
|
19
|
+
amountOut: bigint;
|
|
20
|
+
amountIn: bigint;
|
|
21
|
+
outboundTransferId: string;
|
|
22
|
+
}
|
|
23
|
+
export interface FlashnetPool {
|
|
24
|
+
lpPublicKey: string;
|
|
25
|
+
assetAAddress: string;
|
|
26
|
+
assetBAddress: string;
|
|
27
|
+
reserveA: bigint;
|
|
28
|
+
reserveB: bigint;
|
|
29
|
+
tvl?: number;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=flashnet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flashnet.d.ts","sourceRoot":"","sources":["../../src/types/flashnet.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,CAAA;AAEnD,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,SAAS,GAAG,SAAS,EAAE,MAAM,CAGpE,CAAA;AAED,eAAO,MAAM,gBAAgB,uEAAuE,CAAA;AAEpG,eAAO,MAAM,aAAa,IAAI,CAAA;AAC9B,eAAO,MAAM,YAAY,IAAI,CAAA;AAE7B,eAAO,MAAM,oBAAoB,MAAM,CAAA;AAEvC,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACtC,eAAe,GAAG,IAAI,CAIxB;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAE5E;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,CAAA;CACb"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flashnet Protocol Types
|
|
3
|
+
* Ported from rate-extension/src/protocols/types/flashnet.ts
|
|
4
|
+
*/
|
|
5
|
+
export const USDB_TOKEN_ADDRESS = {
|
|
6
|
+
mainnet: 'btkn1xgrvjwey5ngcagvap2dzzvsy4uk8ua9x69k82dwvt5e7ef9drm9qztux87',
|
|
7
|
+
regtest: 'btkn1xgrvjwey5ngcagvap2dzzvsy4uk8ua9x69k82dwvt5e7ef9drm9qztux87',
|
|
8
|
+
};
|
|
9
|
+
export const BTC_ASSET_PUBKEY = '020202020202020202020202020202020202020202020202020202020202020202';
|
|
10
|
+
export const USDB_DECIMALS = 6;
|
|
11
|
+
export const BTC_DECIMALS = 8;
|
|
12
|
+
export const DEFAULT_SLIPPAGE_BPS = 500;
|
|
13
|
+
export function getFlashnetNetworkForSpark(sparkNetwork) {
|
|
14
|
+
if (sparkNetwork === 'mainnet')
|
|
15
|
+
return 'mainnet';
|
|
16
|
+
if (sparkNetwork === 'regtest')
|
|
17
|
+
return 'regtest';
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
export function getFlashnetUsdbTokenAddress(network) {
|
|
21
|
+
return USDB_TOKEN_ADDRESS[network];
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=flashnet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flashnet.js","sourceRoot":"","sources":["../../src/types/flashnet.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,CAAC,MAAM,kBAAkB,GAA0C;IACvE,OAAO,EAAE,iEAAiE;IAC1E,OAAO,EAAE,iEAAiE;CAC3E,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,oEAAoE,CAAA;AAEpG,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAA;AAC9B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAA;AAE7B,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAA;AAEvC,MAAM,UAAU,0BAA0B,CACxC,YAAuC;IAEvC,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAChD,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAChD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,OAAwB;IAClE,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAA;AACpC,CAAC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RGB Protocol Types
|
|
3
|
+
* Ported from rate-extension/src/protocols/types/rgb.ts
|
|
4
|
+
*/
|
|
5
|
+
import { BaseProtocolConfig } from '../adapters/IProtocolAdapter.js';
|
|
6
|
+
/**
|
|
7
|
+
* How the RGB Lightning Node (RLN) is reached.
|
|
8
|
+
* - "http": direct HTTP RPC to `nodeUrl` (optional Biscuit/JWT auth).
|
|
9
|
+
* - "nwc": Nostr Wallet Connect — the node is reached over a relay using a
|
|
10
|
+
* `nostr+walletconnect://` connection string (`nwcUri`).
|
|
11
|
+
*/
|
|
12
|
+
export type RgbTransport = 'http' | 'nwc';
|
|
13
|
+
export interface RgbConfig extends BaseProtocolConfig {
|
|
14
|
+
protocol: 'RGB';
|
|
15
|
+
makerUrl: string;
|
|
16
|
+
/** Node transport. Defaults to "http" when omitted. */
|
|
17
|
+
transport?: RgbTransport;
|
|
18
|
+
nodeUrl?: string;
|
|
19
|
+
jwt?: string;
|
|
20
|
+
apiKey?: string;
|
|
21
|
+
/**
|
|
22
|
+
* `nostr+walletconnect://` connection string. Required for transport "nwc".
|
|
23
|
+
* Sensitive (carries the client secret) — encrypted at rest, never logged.
|
|
24
|
+
*/
|
|
25
|
+
nwcUri?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface RgbAssetMetadata {
|
|
28
|
+
assetId: string;
|
|
29
|
+
contractId?: string;
|
|
30
|
+
schema: 'Nia' | 'Cfa' | string;
|
|
31
|
+
issuedSupply: number;
|
|
32
|
+
timestamp: number;
|
|
33
|
+
addedAt: number;
|
|
34
|
+
details?: string;
|
|
35
|
+
}
|
|
36
|
+
export interface RgbChannel {
|
|
37
|
+
channelId: string;
|
|
38
|
+
peerPubkey: string;
|
|
39
|
+
capacitySat: number;
|
|
40
|
+
localBalanceSat: number;
|
|
41
|
+
remoteBalanceSat: number;
|
|
42
|
+
isActive: boolean;
|
|
43
|
+
isUsable: boolean;
|
|
44
|
+
assetId?: string;
|
|
45
|
+
assetLocalAmount?: number;
|
|
46
|
+
assetRemoteAmount?: number;
|
|
47
|
+
}
|
|
48
|
+
export interface RgbInvoice {
|
|
49
|
+
invoice: string;
|
|
50
|
+
recipientId: string;
|
|
51
|
+
assetId: string;
|
|
52
|
+
expiresAt: number;
|
|
53
|
+
}
|
|
54
|
+
export interface RgbTransfer {
|
|
55
|
+
txid?: string;
|
|
56
|
+
recipientId: string;
|
|
57
|
+
assetId: string;
|
|
58
|
+
amount: number;
|
|
59
|
+
status: 'pending' | 'confirmed' | 'failed';
|
|
60
|
+
timestamp: number;
|
|
61
|
+
}
|
|
62
|
+
export interface KaleidoswapQuote {
|
|
63
|
+
rfqId: string;
|
|
64
|
+
fromAsset: string;
|
|
65
|
+
fromAmount: number;
|
|
66
|
+
toAsset: string;
|
|
67
|
+
toAmount: number;
|
|
68
|
+
price: number;
|
|
69
|
+
fee: {
|
|
70
|
+
baseFee: number;
|
|
71
|
+
variableFee: number;
|
|
72
|
+
feeRate: number;
|
|
73
|
+
finalFee: number;
|
|
74
|
+
feeAsset: string;
|
|
75
|
+
feeAssetPrecision: number;
|
|
76
|
+
};
|
|
77
|
+
timestamp: number;
|
|
78
|
+
expiresAt: number;
|
|
79
|
+
}
|
|
80
|
+
export interface RgbNodeInfo {
|
|
81
|
+
pubkey: string;
|
|
82
|
+
alias?: string;
|
|
83
|
+
network: string;
|
|
84
|
+
blockHeight: number;
|
|
85
|
+
syncStatus?: {
|
|
86
|
+
synced: boolean;
|
|
87
|
+
progress: number;
|
|
88
|
+
};
|
|
89
|
+
version?: string;
|
|
90
|
+
}
|
|
91
|
+
export interface TradingPair {
|
|
92
|
+
id?: string;
|
|
93
|
+
baseAsset: string;
|
|
94
|
+
baseAssetId: string;
|
|
95
|
+
basePrecision: number;
|
|
96
|
+
quoteAsset: string;
|
|
97
|
+
quoteAssetId: string;
|
|
98
|
+
quotePrecision: number;
|
|
99
|
+
isActive: boolean;
|
|
100
|
+
minBaseOrderSize: number;
|
|
101
|
+
maxBaseOrderSize: number;
|
|
102
|
+
minQuoteOrderSize: number;
|
|
103
|
+
maxQuoteOrderSize: number;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=rgb.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rgb.d.ts","sourceRoot":"","sources":["../../src/types/rgb.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rgb.js","sourceRoot":"","sources":["../../src/types/rgb.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|