@arkade-os/swap 0.0.14 → 0.0.15

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/nostr.cjs CHANGED
@@ -81,20 +81,97 @@ var LIGHTNING_SEND_PAIR = rfqPair(ARKADE_BTC, LIGHTNING_BTC);
81
81
  var LIGHTNING_RECEIVE_PAIR = rfqPair(LIGHTNING_BTC, ARKADE_BTC);
82
82
  var ONCHAIN_SEND_PAIR = rfqPair(ARKADE_BTC, ONCHAIN_BTC);
83
83
  var ONCHAIN_RECEIVE_PAIR = rfqPair(ONCHAIN_BTC, ARKADE_BTC);
84
+ var RFQ_REFUSAL_ERROR_CODES = [
85
+ "amount_side_unsupported",
86
+ "exact_out_unsupported",
87
+ "invalid_amount",
88
+ "invalid_payout_address",
89
+ "invalid_refund_address",
90
+ "invoice_amount_mismatch",
91
+ "invoice_cltv_too_large",
92
+ "invoice_malformed",
93
+ "invoice_missing_amount",
94
+ "invoice_missing_network",
95
+ "invoice_missing_payment_hash",
96
+ "invoice_missing_timestamp",
97
+ "invoice_mixed_case",
98
+ "invoice_sub_satoshi_amount",
99
+ "invoice_too_long",
100
+ "invoice_wrong_network"
101
+ ];
102
+ var isRfqRefusalErrorCode = (value) => typeof value === "string" && RFQ_REFUSAL_ERROR_CODES.includes(value);
103
+ var REFUSAL_FIELDS = /* @__PURE__ */ new Set([
104
+ "amount",
105
+ "amount_side",
106
+ "profile.invoice",
107
+ "profile.payout_address",
108
+ "profile.refund_address"
109
+ ]);
110
+ var REFUSAL_UNITS = /* @__PURE__ */ new Set(["blocks", "characters", "sats"]);
111
+ var safeInteger = (value) => typeof value === "number" && Number.isSafeInteger(value) && value >= 0 ? value : void 0;
112
+ var safeRefusalDetail = (detail) => {
113
+ if (!isRfqRefusalErrorCode(detail.errorCode)) return {};
114
+ return {
115
+ errorCode: detail.errorCode,
116
+ field: typeof detail.field === "string" && REFUSAL_FIELDS.has(detail.field) ? detail.field : void 0,
117
+ actual: safeInteger(detail.actual),
118
+ expected: safeInteger(detail.expected),
119
+ limit: safeInteger(detail.limit),
120
+ unit: typeof detail.unit === "string" && REFUSAL_UNITS.has(detail.unit) ? detail.unit : void 0
121
+ };
122
+ };
123
+ var refusalMessage = (reason, detail) => {
124
+ if (!detail.errorCode) return `solver refused: ${reason}`;
125
+ const where = detail.field ? ` at ${detail.field}` : "";
126
+ const unit = detail.unit ? ` ${detail.unit}` : "";
127
+ if (detail.actual !== void 0 && detail.limit !== void 0) {
128
+ return `solver refused: ${reason} (${detail.errorCode}${where}: ${detail.actual}${unit}, limit ${detail.limit})`;
129
+ }
130
+ if (detail.actual !== void 0 && detail.expected !== void 0) {
131
+ return `solver refused: ${reason} (${detail.errorCode}${where}: ${detail.actual}${unit}, expected ${detail.expected})`;
132
+ }
133
+ return `solver refused: ${reason} (${detail.errorCode}${where})`;
134
+ };
84
135
  var SwapRefusal = class extends Error {
85
136
  reason;
86
137
  rfqId;
87
- constructor(reason, rfqId) {
88
- super(`solver refused: ${reason}`);
138
+ errorCode;
139
+ field;
140
+ actual;
141
+ expected;
142
+ limit;
143
+ unit;
144
+ constructor(reason, rfqId, detail = {}) {
145
+ const safeDetail = safeRefusalDetail(detail);
146
+ super(refusalMessage(reason, safeDetail));
89
147
  this.name = "SwapRefusal";
90
148
  this.reason = reason;
91
149
  this.rfqId = rfqId;
150
+ this.errorCode = safeDetail.errorCode;
151
+ this.field = safeDetail.field;
152
+ this.actual = safeDetail.actual;
153
+ this.expected = safeDetail.expected;
154
+ this.limit = safeDetail.limit;
155
+ this.unit = safeDetail.unit;
92
156
  }
93
157
  };
94
158
  var MIN_HEADROOM_SECONDS = 90 * 60;
95
159
  var expectQuote = (payload, rfqId, requestedPair) => {
96
160
  const p = payload;
97
- if (p?.type === "rfq_refusal") throw new SwapRefusal(p.reason ?? "unknown", p.rfq_id ?? rfqId);
161
+ if (p?.type === "rfq_refusal") {
162
+ throw new SwapRefusal(
163
+ p.reason ?? "unknown",
164
+ p.rfq_id ?? rfqId,
165
+ safeRefusalDetail({
166
+ errorCode: p.error_code,
167
+ field: p.field,
168
+ actual: p.actual,
169
+ expected: p.expected,
170
+ limit: p.limit,
171
+ unit: p.unit
172
+ })
173
+ );
174
+ }
98
175
  if (p?.type !== "rfq_quote" || p.rfq_id !== rfqId) {
99
176
  throw new Error(`unexpected reply: ${p?.type ?? "no payload"}`);
100
177
  }
package/dist/nostr.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { R as RfqTransport } from './rfq-CYfKvAPp.cjs';
1
+ import { R as RfqTransport } from './rfq-DirJn_4k.cjs';
2
2
  import { SimplePool } from 'nostr-tools';
3
3
  import '@arkade-os/sdk';
4
4
 
package/dist/nostr.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { R as RfqTransport } from './rfq-CYfKvAPp.js';
1
+ import { R as RfqTransport } from './rfq-DirJn_4k.js';
2
2
  import { SimplePool } from 'nostr-tools';
3
3
  import '@arkade-os/sdk';
4
4
 
package/dist/nostr.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  expectQuote,
3
3
  pairOf
4
- } from "./chunk-IFZOBTTG.js";
4
+ } from "./chunk-7N7XO4PY.js";
5
5
 
6
6
  // src/nostr.ts
7
7
  import {
@@ -1,8 +1,8 @@
1
1
  import { RealmLike } from '@arkade-os/sdk/repositories/realm';
2
- import { A as AssetSwapRepository, a as AssetSwap, R as RfqSwapRecord, M as MarketsCacheEntry } from '../../repository-Vfx65uF1.cjs';
2
+ import { A as AssetSwapRepository, a as AssetSwap, R as RfqSwapRecord, M as MarketsCacheEntry } from '../../repository-rwU1Sv2-.cjs';
3
3
  import '@arkade-os/solver-discovery';
4
4
  import '@arkade-os/sdk';
5
- import '../../rfq-CYfKvAPp.cjs';
5
+ import '../../rfq-DirJn_4k.cjs';
6
6
 
7
7
  /**
8
8
  * Realm backend for React Native.
@@ -1,8 +1,8 @@
1
1
  import { RealmLike } from '@arkade-os/sdk/repositories/realm';
2
- import { A as AssetSwapRepository, a as AssetSwap, R as RfqSwapRecord, M as MarketsCacheEntry } from '../../repository-D5JoeqwB.js';
2
+ import { A as AssetSwapRepository, a as AssetSwap, R as RfqSwapRecord, M as MarketsCacheEntry } from '../../repository-DH5zjdw4.js';
3
3
  import '@arkade-os/solver-discovery';
4
4
  import '@arkade-os/sdk';
5
- import '../../rfq-CYfKvAPp.js';
5
+ import '../../rfq-DirJn_4k.js';
6
6
 
7
7
  /**
8
8
  * Realm backend for React Native.
@@ -1,8 +1,8 @@
1
1
  import { SQLExecutor } from '@arkade-os/sdk/repositories/sqlite';
2
- import { A as AssetSwapRepository, a as AssetSwap, R as RfqSwapRecord, M as MarketsCacheEntry } from '../../repository-Vfx65uF1.cjs';
2
+ import { A as AssetSwapRepository, a as AssetSwap, R as RfqSwapRecord, M as MarketsCacheEntry } from '../../repository-rwU1Sv2-.cjs';
3
3
  import '@arkade-os/solver-discovery';
4
4
  import '@arkade-os/sdk';
5
- import '../../rfq-CYfKvAPp.cjs';
5
+ import '../../rfq-DirJn_4k.cjs';
6
6
 
7
7
  /**
8
8
  * SQLite backend over the SDK's `SQLExecutor`, so any driver plugs in
@@ -1,8 +1,8 @@
1
1
  import { SQLExecutor } from '@arkade-os/sdk/repositories/sqlite';
2
- import { A as AssetSwapRepository, a as AssetSwap, R as RfqSwapRecord, M as MarketsCacheEntry } from '../../repository-D5JoeqwB.js';
2
+ import { A as AssetSwapRepository, a as AssetSwap, R as RfqSwapRecord, M as MarketsCacheEntry } from '../../repository-DH5zjdw4.js';
3
3
  import '@arkade-os/solver-discovery';
4
4
  import '@arkade-os/sdk';
5
- import '../../rfq-CYfKvAPp.js';
5
+ import '../../rfq-DirJn_4k.js';
6
6
 
7
7
  /**
8
8
  * SQLite backend over the SDK's `SQLExecutor`, so any driver plugs in
@@ -1,6 +1,6 @@
1
1
  import { DiscoveredMarket } from '@arkade-os/solver-discovery';
2
2
  import { IWallet, ProvisionedKey, ProvisionedClaimSecret, RestArkProvider, RestIndexerProvider, VHTLC, Identity, IContractManager } from '@arkade-os/sdk';
3
- import { B as RfqStatus, R as RfqTransport, a as OnchainHtlc, f as ChainUtxo, C as ChainSource, v as OnchainHtlcPhase } from './rfq-CYfKvAPp.js';
3
+ import { G as RfqStatus, R as RfqTransport, a as OnchainHtlc, f as ChainUtxo, C as ChainSource, v as OnchainHtlcPhase } from './rfq-DirJn_4k.js';
4
4
 
5
5
  type AssetSwapStatus = "pending" | "cancelling" | "fulfilled" | "cancelled" | "recoverable" | "awaiting_fill" | "claimable" | "claimed" | "refunded_l1";
6
6
  /** The sentinel asset id for BTC itself, as opposed to a 68-hex asset id.
@@ -1,6 +1,6 @@
1
1
  import { DiscoveredMarket } from '@arkade-os/solver-discovery';
2
2
  import { IWallet, ProvisionedKey, ProvisionedClaimSecret, RestArkProvider, RestIndexerProvider, VHTLC, Identity, IContractManager } from '@arkade-os/sdk';
3
- import { B as RfqStatus, R as RfqTransport, a as OnchainHtlc, f as ChainUtxo, C as ChainSource, v as OnchainHtlcPhase } from './rfq-CYfKvAPp.cjs';
3
+ import { G as RfqStatus, R as RfqTransport, a as OnchainHtlc, f as ChainUtxo, C as ChainSource, v as OnchainHtlcPhase } from './rfq-DirJn_4k.cjs';
4
4
 
5
5
  type AssetSwapStatus = "pending" | "cancelling" | "fulfilled" | "cancelled" | "recoverable" | "awaiting_fill" | "claimable" | "claimed" | "refunded_l1";
6
6
  /** The sentinel asset id for BTC itself, as opposed to a 68-hex asset id.
@@ -257,11 +257,29 @@ declare const ONCHAIN_RECEIVE_PAIR: string;
257
257
  type RfqRefusalReason = "unsupported_pair" | "unsupported_payload" | "amount_out_of_range" | "exposure_cap" | "invoice_expired" | "quote_conflict" | "pricing_unavailable" | "rate_limited";
258
258
  /** Lifecycle vocabulary; states after which nothing more will happen. */
259
259
  declare const RFQ_TERMINAL_STATES: readonly ["settled", "refused", "expired", "refunded", "stuck"];
260
+ declare const RFQ_REFUSAL_ERROR_CODES: readonly ["amount_side_unsupported", "exact_out_unsupported", "invalid_amount", "invalid_payout_address", "invalid_refund_address", "invoice_amount_mismatch", "invoice_cltv_too_large", "invoice_malformed", "invoice_missing_amount", "invoice_missing_network", "invoice_missing_payment_hash", "invoice_missing_timestamp", "invoice_mixed_case", "invoice_sub_satoshi_amount", "invoice_too_long", "invoice_wrong_network"];
261
+ type RfqRefusalErrorCode = (typeof RFQ_REFUSAL_ERROR_CODES)[number];
262
+ type RfqRefusalUnit = "blocks" | "characters" | "sats";
263
+ interface RfqRefusalDetail {
264
+ errorCode?: RfqRefusalErrorCode;
265
+ field?: string;
266
+ actual?: number;
267
+ expected?: number;
268
+ limit?: number;
269
+ unit?: RfqRefusalUnit;
270
+ }
271
+ declare const isRfqRefusalErrorCode: (value: unknown) => value is RfqRefusalErrorCode;
260
272
  /** A refusal from the solver, carrying its closed-set reason. */
261
273
  declare class SwapRefusal extends Error {
262
274
  readonly reason: string;
263
275
  readonly rfqId: string | undefined;
264
- constructor(reason: string, rfqId?: string);
276
+ readonly errorCode: RfqRefusalErrorCode | undefined;
277
+ readonly field: string | undefined;
278
+ readonly actual: number | undefined;
279
+ readonly expected: number | undefined;
280
+ readonly limit: number | undefined;
281
+ readonly unit: RfqRefusalUnit | undefined;
282
+ constructor(reason: string, rfqId?: string, detail?: RfqRefusalDetail);
265
283
  }
266
284
  /**
267
285
  * The solver's address does not match the local derivation. NEVER fund past
@@ -1063,4 +1081,4 @@ declare function requestOnchainReceive(wallet: IWallet, arkServerUrl: string, tr
1063
1081
  secrets: ProvisionedClaimSecret;
1064
1082
  }>;
1065
1083
 
1066
- export { lightningSendRequest as $, ARKADE_ASSET as A, type RfqStatus as B, type ChainSource as C, SwapRefusal as D, arkadeAssetLeg as E, arkadeSwapRequest as F, assertFundable as G, type HtlcUtxo as H, type InvoiceFacts as I, assertReceivable as J, awaitOnchainFill as K, LIGHTNING_BTC as L, MAX_MIN_CONFIRMATIONS as M, buildHtlcClaim as N, type OnchainNetwork as O, buildHtlcRefund as P, claimOnchainFill as Q, type RfqTransport as R, SOLO_REFUND_HEADROOM_SECONDS as S, classifyOnchainHtlc as T, deriveLightningReceive as U, deriveOnchainReceive as V, deriveOnchainSend as W, extractPreimage as X, httpTransport as Y, l1ScriptForAddress as Z, lightningReceiveRequest as _, type OnchainHtlc as a, lightningSendVtxoScript as a0, newPreimage as a1, newRfqId as a2, offerTermsFromQuote as a3, onchainHtlcScript as a4, onchainReceiveRequest as a5, onchainSendRequest as a6, paymentHashOf as a7, receiveVtxoScript as a8, relayTransport as a9, requestLightningReceive as aa, requestOnchainReceive as ab, rfqPair as ac, unilateralClaimDelay as ad, unilateralRefundDelay as ae, unilateralRefundWithoutReceiverDelay as af, verifyLockupAddress as ag, verifyReceiveInvoice as ah, type OnchainHtlcParams as b, requestLightningSend as c, ARKADE_BTC as d, AddressMismatch as e, type ChainUtxo as f, LIGHTNING_RECEIVE_PAIR as g, LIGHTNING_SEND_PAIR as h, LOCKTIME_THRESHOLD as i, type LightningReceiveTreeParams as j, type LightningSendTreeParams as k, MIN_CLAIM_WINDOW_SECONDS as l, MIN_HEADROOM_SECONDS as m, ONCHAIN_BTC as n, ONCHAIN_CLAIM_MARGIN_SECONDS as o, ONCHAIN_DUST_SATS as p, ONCHAIN_ORDER_MARGIN_SECONDS as q, requestOnchainSend as r, ONCHAIN_RECEIVE_PAIR as s, ONCHAIN_SECONDS_PER_BLOCK as t, ONCHAIN_SEND_PAIR as u, type OnchainHtlcPhase as v, RFQ_TERMINAL_STATES as w, type RelaySocket as x, type RfqQuote as y, type RfqRefusalReason as z };
1084
+ export { extractPreimage as $, ARKADE_ASSET as A, type RfqRefusalDetail as B, type ChainSource as C, type RfqRefusalErrorCode as D, type RfqRefusalReason as E, type RfqRefusalUnit as F, type RfqStatus as G, type HtlcUtxo as H, type InvoiceFacts as I, SwapRefusal as J, arkadeAssetLeg as K, LIGHTNING_BTC as L, MAX_MIN_CONFIRMATIONS as M, arkadeSwapRequest as N, type OnchainNetwork as O, assertFundable as P, assertReceivable as Q, type RfqTransport as R, SOLO_REFUND_HEADROOM_SECONDS as S, awaitOnchainFill as T, buildHtlcClaim as U, buildHtlcRefund as V, claimOnchainFill as W, classifyOnchainHtlc as X, deriveLightningReceive as Y, deriveOnchainReceive as Z, deriveOnchainSend as _, type OnchainHtlc as a, httpTransport as a0, isRfqRefusalErrorCode as a1, l1ScriptForAddress as a2, lightningReceiveRequest as a3, lightningSendRequest as a4, lightningSendVtxoScript as a5, newPreimage as a6, newRfqId as a7, offerTermsFromQuote as a8, onchainHtlcScript as a9, onchainReceiveRequest as aa, onchainSendRequest as ab, paymentHashOf as ac, receiveVtxoScript as ad, relayTransport as ae, requestLightningReceive as af, requestOnchainReceive as ag, rfqPair as ah, unilateralClaimDelay as ai, unilateralRefundDelay as aj, unilateralRefundWithoutReceiverDelay as ak, verifyLockupAddress as al, verifyReceiveInvoice as am, type OnchainHtlcParams as b, requestLightningSend as c, ARKADE_BTC as d, AddressMismatch as e, type ChainUtxo as f, LIGHTNING_RECEIVE_PAIR as g, LIGHTNING_SEND_PAIR as h, LOCKTIME_THRESHOLD as i, type LightningReceiveTreeParams as j, type LightningSendTreeParams as k, MIN_CLAIM_WINDOW_SECONDS as l, MIN_HEADROOM_SECONDS as m, ONCHAIN_BTC as n, ONCHAIN_CLAIM_MARGIN_SECONDS as o, ONCHAIN_DUST_SATS as p, ONCHAIN_ORDER_MARGIN_SECONDS as q, requestOnchainSend as r, ONCHAIN_RECEIVE_PAIR as s, ONCHAIN_SECONDS_PER_BLOCK as t, ONCHAIN_SEND_PAIR as u, type OnchainHtlcPhase as v, RFQ_REFUSAL_ERROR_CODES as w, RFQ_TERMINAL_STATES as x, type RelaySocket as y, type RfqQuote as z };
@@ -257,11 +257,29 @@ declare const ONCHAIN_RECEIVE_PAIR: string;
257
257
  type RfqRefusalReason = "unsupported_pair" | "unsupported_payload" | "amount_out_of_range" | "exposure_cap" | "invoice_expired" | "quote_conflict" | "pricing_unavailable" | "rate_limited";
258
258
  /** Lifecycle vocabulary; states after which nothing more will happen. */
259
259
  declare const RFQ_TERMINAL_STATES: readonly ["settled", "refused", "expired", "refunded", "stuck"];
260
+ declare const RFQ_REFUSAL_ERROR_CODES: readonly ["amount_side_unsupported", "exact_out_unsupported", "invalid_amount", "invalid_payout_address", "invalid_refund_address", "invoice_amount_mismatch", "invoice_cltv_too_large", "invoice_malformed", "invoice_missing_amount", "invoice_missing_network", "invoice_missing_payment_hash", "invoice_missing_timestamp", "invoice_mixed_case", "invoice_sub_satoshi_amount", "invoice_too_long", "invoice_wrong_network"];
261
+ type RfqRefusalErrorCode = (typeof RFQ_REFUSAL_ERROR_CODES)[number];
262
+ type RfqRefusalUnit = "blocks" | "characters" | "sats";
263
+ interface RfqRefusalDetail {
264
+ errorCode?: RfqRefusalErrorCode;
265
+ field?: string;
266
+ actual?: number;
267
+ expected?: number;
268
+ limit?: number;
269
+ unit?: RfqRefusalUnit;
270
+ }
271
+ declare const isRfqRefusalErrorCode: (value: unknown) => value is RfqRefusalErrorCode;
260
272
  /** A refusal from the solver, carrying its closed-set reason. */
261
273
  declare class SwapRefusal extends Error {
262
274
  readonly reason: string;
263
275
  readonly rfqId: string | undefined;
264
- constructor(reason: string, rfqId?: string);
276
+ readonly errorCode: RfqRefusalErrorCode | undefined;
277
+ readonly field: string | undefined;
278
+ readonly actual: number | undefined;
279
+ readonly expected: number | undefined;
280
+ readonly limit: number | undefined;
281
+ readonly unit: RfqRefusalUnit | undefined;
282
+ constructor(reason: string, rfqId?: string, detail?: RfqRefusalDetail);
265
283
  }
266
284
  /**
267
285
  * The solver's address does not match the local derivation. NEVER fund past
@@ -1063,4 +1081,4 @@ declare function requestOnchainReceive(wallet: IWallet, arkServerUrl: string, tr
1063
1081
  secrets: ProvisionedClaimSecret;
1064
1082
  }>;
1065
1083
 
1066
- export { lightningSendRequest as $, ARKADE_ASSET as A, type RfqStatus as B, type ChainSource as C, SwapRefusal as D, arkadeAssetLeg as E, arkadeSwapRequest as F, assertFundable as G, type HtlcUtxo as H, type InvoiceFacts as I, assertReceivable as J, awaitOnchainFill as K, LIGHTNING_BTC as L, MAX_MIN_CONFIRMATIONS as M, buildHtlcClaim as N, type OnchainNetwork as O, buildHtlcRefund as P, claimOnchainFill as Q, type RfqTransport as R, SOLO_REFUND_HEADROOM_SECONDS as S, classifyOnchainHtlc as T, deriveLightningReceive as U, deriveOnchainReceive as V, deriveOnchainSend as W, extractPreimage as X, httpTransport as Y, l1ScriptForAddress as Z, lightningReceiveRequest as _, type OnchainHtlc as a, lightningSendVtxoScript as a0, newPreimage as a1, newRfqId as a2, offerTermsFromQuote as a3, onchainHtlcScript as a4, onchainReceiveRequest as a5, onchainSendRequest as a6, paymentHashOf as a7, receiveVtxoScript as a8, relayTransport as a9, requestLightningReceive as aa, requestOnchainReceive as ab, rfqPair as ac, unilateralClaimDelay as ad, unilateralRefundDelay as ae, unilateralRefundWithoutReceiverDelay as af, verifyLockupAddress as ag, verifyReceiveInvoice as ah, type OnchainHtlcParams as b, requestLightningSend as c, ARKADE_BTC as d, AddressMismatch as e, type ChainUtxo as f, LIGHTNING_RECEIVE_PAIR as g, LIGHTNING_SEND_PAIR as h, LOCKTIME_THRESHOLD as i, type LightningReceiveTreeParams as j, type LightningSendTreeParams as k, MIN_CLAIM_WINDOW_SECONDS as l, MIN_HEADROOM_SECONDS as m, ONCHAIN_BTC as n, ONCHAIN_CLAIM_MARGIN_SECONDS as o, ONCHAIN_DUST_SATS as p, ONCHAIN_ORDER_MARGIN_SECONDS as q, requestOnchainSend as r, ONCHAIN_RECEIVE_PAIR as s, ONCHAIN_SECONDS_PER_BLOCK as t, ONCHAIN_SEND_PAIR as u, type OnchainHtlcPhase as v, RFQ_TERMINAL_STATES as w, type RelaySocket as x, type RfqQuote as y, type RfqRefusalReason as z };
1084
+ export { extractPreimage as $, ARKADE_ASSET as A, type RfqRefusalDetail as B, type ChainSource as C, type RfqRefusalErrorCode as D, type RfqRefusalReason as E, type RfqRefusalUnit as F, type RfqStatus as G, type HtlcUtxo as H, type InvoiceFacts as I, SwapRefusal as J, arkadeAssetLeg as K, LIGHTNING_BTC as L, MAX_MIN_CONFIRMATIONS as M, arkadeSwapRequest as N, type OnchainNetwork as O, assertFundable as P, assertReceivable as Q, type RfqTransport as R, SOLO_REFUND_HEADROOM_SECONDS as S, awaitOnchainFill as T, buildHtlcClaim as U, buildHtlcRefund as V, claimOnchainFill as W, classifyOnchainHtlc as X, deriveLightningReceive as Y, deriveOnchainReceive as Z, deriveOnchainSend as _, type OnchainHtlc as a, httpTransport as a0, isRfqRefusalErrorCode as a1, l1ScriptForAddress as a2, lightningReceiveRequest as a3, lightningSendRequest as a4, lightningSendVtxoScript as a5, newPreimage as a6, newRfqId as a7, offerTermsFromQuote as a8, onchainHtlcScript as a9, onchainReceiveRequest as aa, onchainSendRequest as ab, paymentHashOf as ac, receiveVtxoScript as ad, relayTransport as ae, requestLightningReceive as af, requestOnchainReceive as ag, rfqPair as ah, unilateralClaimDelay as ai, unilateralRefundDelay as aj, unilateralRefundWithoutReceiverDelay as ak, verifyLockupAddress as al, verifyReceiveInvoice as am, type OnchainHtlcParams as b, requestLightningSend as c, ARKADE_BTC as d, AddressMismatch as e, type ChainUtxo as f, LIGHTNING_RECEIVE_PAIR as g, LIGHTNING_SEND_PAIR as h, LOCKTIME_THRESHOLD as i, type LightningReceiveTreeParams as j, type LightningSendTreeParams as k, MIN_CLAIM_WINDOW_SECONDS as l, MIN_HEADROOM_SECONDS as m, ONCHAIN_BTC as n, ONCHAIN_CLAIM_MARGIN_SECONDS as o, ONCHAIN_DUST_SATS as p, ONCHAIN_ORDER_MARGIN_SECONDS as q, requestOnchainSend as r, ONCHAIN_RECEIVE_PAIR as s, ONCHAIN_SECONDS_PER_BLOCK as t, ONCHAIN_SEND_PAIR as u, type OnchainHtlcPhase as v, RFQ_REFUSAL_ERROR_CODES as w, RFQ_TERMINAL_STATES as x, type RelaySocket as y, type RfqQuote as z };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arkade-os/swap",
3
- "version": "0.0.14",
3
+ "version": "0.0.15",
4
4
  "type": "module",
5
5
  "description": "Client-side Arkade Intents asset swaps: discover markets, quote, create/track/cancel offers, restore from chain.",
6
6
  "repository": {