@lendasat/lendaswap-sdk-pure 0.2.2 → 0.2.3

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/client.d.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  import { type ApiClient, type Chain, type GetSwapResponse, type QuoteResponse, type TokenInfos } from "./api/client.js";
2
2
  import { type VhtlcAmounts } from "./arkade.js";
3
3
  import { type ArkadeToEvmSwapOptions, type ArkadeToEvmSwapResult, type BitcoinToArkadeSwapOptions, type BitcoinToArkadeSwapResult, type BitcoinToEvmSwapOptions, type BitcoinToEvmSwapResult, type CreateSwapOptions, type CreateSwapResult, type EvmToArkadeSwapGenericOptions, type EvmToArkadeSwapGenericResult, type EvmToBitcoinSwapOptions, type EvmToBitcoinSwapResult, type EvmToLightningSwapGenericOptions, type EvmToLightningSwapGenericResult, type LightningToEvmSwapGenericOptions, type LightningToEvmSwapGenericResult } from "./create";
4
- import { type Permit2SignedFundingCallData, type UnsignedPermit2FundingData } from "./evm";
4
+ import { type CollabRefundEvmTypedData, type Permit2SignedFundingCallData, type UnsignedPermit2FundingData } from "./evm";
5
5
  import { type ClaimGaslessResult, type ClaimResult } from "./redeem/index.js";
6
6
  import { Signer, type SwapParams } from "./signer/index.js";
7
7
  import { type StoredSwap, type SwapStorage, type WalletStorage } from "./storage";
8
8
  export type { ArkadeToEvmSwapOptions, ArkadeToEvmSwapResult, BitcoinToArkadeSwapOptions, BitcoinToArkadeSwapResult, BitcoinToEvmSwapOptions, BitcoinToEvmSwapResponse, BitcoinToEvmSwapResult, BtcToEvmSwapOptions, CreateSwapOptions, CreateSwapResult, EvmChain, EvmToArkadeSwapGenericOptions, EvmToArkadeSwapGenericResult, EvmToArkadeSwapOptions, EvmToArkadeSwapResult, EvmToBitcoinSwapOptions, EvmToBitcoinSwapResult, EvmToLightningSwapOptions, } from "./create/index.js";
9
- export { buildEip2612PermitDigest, buildPermit2FundingDigest, buildRedeemCalls, buildRedeemDigest, type CoordinatorCall, type Eip2612PermitParams, type ExecuteAndCreateWithPermit2Params, encodeExecuteAndCreateWithPermit2, encodeRedeemAndExecute, encodeRefundAndExecute, encodeRefundTo, PERMIT2_ADDRESS, type Permit2FundingParams, type Permit2SignedFundingCallData, type RedeemAndExecuteCallData, type RedeemAndExecuteParams, type RedeemDigestParams, type RefundAndExecuteParams, type RefundToParams, } from "./evm/index.js";
9
+ export { buildCollabRefundEvmDigest, buildCollabRefundEvmTypedData, buildEip2612PermitDigest, buildPermit2FundingDigest, buildRedeemCalls, buildRedeemDigest, type CollabRefundEvmDigestParams, type CollabRefundEvmTypedData, type CoordinatorCall, type Eip2612PermitParams, type ExecuteAndCreateWithPermit2Params, encodeExecuteAndCreateWithPermit2, encodeRedeemAndExecute, encodeRefundAndExecute, encodeRefundTo, PERMIT2_ADDRESS, type Permit2FundingParams, type Permit2SignedFundingCallData, type RedeemAndExecuteCallData, type RedeemAndExecuteParams, type RedeemDigestParams, type RefundAndExecuteParams, type RefundToParams, } from "./evm/index.js";
10
10
  export type { ClaimGaslessResult, ClaimResult, CoordinatorClaimData, EthereumClaimData, } from "./redeem/index.js";
11
11
  /** A support agent's Nostr identity */
12
12
  export interface SupportAgentInfo {
@@ -63,11 +63,61 @@ export interface ArkadeRefundOptions {
63
63
  /** Options for EVM refund via coordinator */
64
64
  export interface EvmRefundOptions {
65
65
  /**
66
- * Refund mode:
66
+ * Settlement mode — what asset you receive:
67
67
  * - "swap-back" (default): Swap WBTC back to original token via DEX
68
- * - "direct": Return WBTC directly (useful when DEX calldata is stale)
68
+ * - "direct": Return WBTC directly
69
69
  */
70
70
  mode?: "swap-back" | "direct";
71
+ /**
72
+ * Whether to use collaborative refund (server cosigns + submits, gasless, no timelock wait).
73
+ * When false/undefined, the refund requires timelock expiry and the caller submits the tx.
74
+ * @default false
75
+ */
76
+ collaborative?: boolean;
77
+ }
78
+ /** Result of a collaborative EVM refund */
79
+ export interface CollabRefundEvmResult {
80
+ /** Swap ID */
81
+ id: string;
82
+ /** On-chain transaction hash */
83
+ txHash: string;
84
+ /** Success message */
85
+ message: string;
86
+ }
87
+ /** Parameters for building CollabRefund EIP-712 typed data (returned by getCollabRefundEvmParams) */
88
+ export interface CollabRefundEvmParams {
89
+ /** HTLCCoordinator contract address (EIP-712 verifyingContract) */
90
+ coordinatorAddress: string;
91
+ /** Server's signer EOA address (the `caller` field in the EIP-712 struct) */
92
+ serverSignerAddress: string;
93
+ /** Preimage hash (0x-prefixed, 32-byte hex) */
94
+ preimageHash: string;
95
+ /** WBTC amount locked in the HTLC (decimal string) */
96
+ amount: string;
97
+ /** WBTC token address */
98
+ token: string;
99
+ /** Claim address (server's EVM address) */
100
+ claimAddress: string;
101
+ /** HTLC timelock (unix timestamp) */
102
+ timelock: number;
103
+ /** EVM chain ID */
104
+ chainId: number;
105
+ /** Settlement mode: "direct" or "swap-back" */
106
+ mode: string;
107
+ /** Token the depositor receives (WBTC for direct, source token for swap-back) — the EIP-712 `sweepToken` field */
108
+ sweepToken: string;
109
+ /** Minimum output amount for the sweep — the EIP-712 `minAmountOut` field */
110
+ minAmountOut: string;
111
+ /** keccak256(abi.encode(calls)) for the exact calls array signed in CollabRefund */
112
+ callsHash: string;
113
+ /** Source token address (only present for swap-back) */
114
+ sourceTokenAddress?: string;
115
+ /** DEX calldata for swap-back (only present when mode=swap-back) */
116
+ dexCalldata?: {
117
+ to: string;
118
+ data: string;
119
+ value: string;
120
+ };
71
121
  }
72
122
  /** General refund options — the method picks the right variant based on swap type */
73
123
  export type RefundOptions = OnchainRefundOptions | ArkadeRefundOptions | EvmRefundOptions;
@@ -571,6 +621,65 @@ export declare class Client {
571
621
  * ```
572
622
  */
573
623
  refundSwap(id: string, options?: RefundOptions): Promise<RefundResult>;
624
+ /**
625
+ * Fetches the EIP-712 parameters for collaborative EVM HTLC refund.
626
+ *
627
+ * Returns the addresses and values needed to build the `CollabRefund`
628
+ * EIP-712 typed data that the depositor signs.
629
+ *
630
+ * @param swapId - Swap ID
631
+ * @returns CollabRefund parameters
632
+ */
633
+ getCollabRefundEvmParams(swapId: string, settlement?: "swap-back" | "direct"): Promise<CollabRefundEvmParams>;
634
+ /**
635
+ * Builds the EIP-712 typed data for collaborative EVM refund.
636
+ *
637
+ * The depositor signs this with their wallet (via `eth_signTypedData_v4`
638
+ * or the SDK's `signEvmDigest`) to authorize the server to submit the
639
+ * refund on-chain.
640
+ *
641
+ * @param swapId - Swap ID
642
+ * @param settlement - Settlement mode: "direct" (WBTC) or "swap-back" (original token via DEX)
643
+ * @returns Typed data and digest for signing
644
+ */
645
+ buildCollabRefundEvmTypedData(swapId: string, settlement?: "swap-back" | "direct"): Promise<{
646
+ typedData: CollabRefundEvmTypedData;
647
+ digest: string;
648
+ params: CollabRefundEvmParams;
649
+ }>;
650
+ /**
651
+ * Performs a collaborative EVM refund using the SDK's embedded wallet.
652
+ *
653
+ * The SDK signs the EIP-712 `CollabRefund` digest with the depositor's
654
+ * derived EVM key and POSTs to the server, which cosigns and submits
655
+ * the transaction on-chain. Gasless for the client — no timelock wait.
656
+ *
657
+ * @param swapId - Swap ID
658
+ * @param settlement - Settlement mode: "direct" (WBTC) or "swap-back" (original token via DEX)
659
+ * @returns Refund result with transaction hash
660
+ */
661
+ collabRefundEvmSwap(swapId: string, settlement?: "swap-back" | "direct"): Promise<CollabRefundEvmResult>;
662
+ /**
663
+ * Submits a pre-signed collaborative EVM refund.
664
+ *
665
+ * Use this when an external wallet (e.g. MetaMask) signs the EIP-712
666
+ * `CollabRefund` digest instead of the SDK's embedded key.
667
+ * Call {@link buildCollabRefundEvmTypedData} first to obtain the typed data
668
+ * for the wallet to sign, then pass the resulting signature here.
669
+ *
670
+ * @param swapId - Swap ID
671
+ * @param body - Signed refund request (signature + refund parameters)
672
+ * @returns Refund result with transaction hash
673
+ */
674
+ submitCollabRefundEvm(swapId: string, body: {
675
+ v: number;
676
+ r: string;
677
+ s: string;
678
+ depositor_address: string;
679
+ mode: "direct" | "swap-back";
680
+ sweep_token?: string;
681
+ min_amount_out: string;
682
+ }): Promise<CollabRefundEvmResult>;
574
683
  /**
575
684
  * Creates a swap by routing to the correct direction-specific method
576
685
  * based on `sourceAsset.chain` and `targetAsset.chain`.
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -3,14 +3,14 @@ import { getVhtlcAmounts } from "./arkade.js";
3
3
  import { createArkadeToEvmSwapGeneric, createBitcoinToArkadeSwap, createBitcoinToEvmSwap, createEvmToArkadeSwapGeneric, createEvmToBitcoinSwap, createEvmToLightningSwapGeneric, createLightningToEvmSwapGeneric, } from "./create";
4
4
  import { delegateClaim, delegateRefund } from "./delegate.js";
5
5
  import { broadcastTransaction, findOutputByAddress } from "./esplora.js";
6
- import { buildEip2612PermitDigest, buildPermit2FundingDigest, buildPermit2TypedData, encodeApproveCallData, encodeExecuteAndCreateWithPermit2, encodeHtlcErc20RefundCallData, PERMIT2_ADDRESS, signEvmDigest, } from "./evm";
6
+ import { buildCollabRefundEvmDigest, buildCollabRefundEvmTypedData, buildEip2612PermitDigest, buildPermit2FundingDigest, buildPermit2TypedData, encodeApproveCallData, encodeExecuteAndCreateWithPermit2, encodeHtlcErc20RefundCallData, PERMIT2_ADDRESS, signEvmDigest, } from "./evm";
7
7
  import { buildArkadeClaim, claimViaGasless as gaslessClaim, claim as redeemClaim, } from "./redeem/index.js";
8
8
  import { buildArkadeRefund, buildOnchainClaimTransaction, buildOnchainRefundTransaction, collabRefundDelegate, collabRefundOffchain, verifyHtlcAddress, } from "./refund";
9
9
  import { bytesToHex, hexToBytes, Signer, } from "./signer/index.js";
10
10
  import { SWAP_STORAGE_VERSION, } from "./storage";
11
11
  import { isArkade, isBtcOnchain, isEvmToken, isLightning } from "./tokens.js";
12
12
  // Re-export coordinator utilities for Arkade-to-EVM redeemAndExecute flow
13
- export { buildEip2612PermitDigest, buildPermit2FundingDigest, buildRedeemCalls, buildRedeemDigest, encodeExecuteAndCreateWithPermit2, encodeRedeemAndExecute, encodeRefundAndExecute, encodeRefundTo, PERMIT2_ADDRESS, } from "./evm/index.js";
13
+ export { buildCollabRefundEvmDigest, buildCollabRefundEvmTypedData, buildEip2612PermitDigest, buildPermit2FundingDigest, buildRedeemCalls, buildRedeemDigest, encodeExecuteAndCreateWithPermit2, encodeRedeemAndExecute, encodeRefundAndExecute, encodeRefundTo, PERMIT2_ADDRESS, } from "./evm/index.js";
14
14
  const DEFAULT_BASE_URL = "https://api.lendaswap.com/";
15
15
  /** Default Esplora URLs by network */
16
16
  const DEFAULT_ESPLORA_URLS = {
@@ -1033,20 +1033,22 @@ export class Client {
1033
1033
  if (direction === "bitcoin_to_evm" || direction === "btc_to_arkade") {
1034
1034
  return this.#buildOnchainRefund(id, swap, options);
1035
1035
  }
1036
- // EVM-sourced swaps return calldata for manual execution
1037
- if (direction === "evm_to_arkade") {
1036
+ // EVM-sourced swaps: collaborative refund or timelock-based refund
1037
+ if (direction === "evm_to_arkade" ||
1038
+ direction === "evm_to_bitcoin" ||
1039
+ direction === "evm_to_lightning") {
1038
1040
  const evmOptions = options;
1039
- return this.#buildEvmToArkadeRefund(id, swap, evmOptions?.mode);
1040
- }
1041
- // EVM-to-Bitcoin uses coordinator refund (same pattern as EVM-to-Arkade)
1042
- if (direction === "evm_to_bitcoin") {
1043
- const evmOptions = options;
1044
- return this.#buildEvmToBitcoinRefund(id, swap, evmOptions?.mode);
1045
- }
1046
- // EVM-to-Lightning uses coordinator refund (same pattern as EVM-to-Arkade)
1047
- if (direction === "evm_to_lightning") {
1048
- const evmOptions = options;
1049
- return this.#buildEvmToLightningRefund(id, swap, evmOptions?.mode);
1041
+ const settlement = evmOptions?.mode ?? "swap-back";
1042
+ if (evmOptions?.collaborative) {
1043
+ return this.#collabRefundEvm(id, settlement);
1044
+ }
1045
+ if (direction === "evm_to_arkade") {
1046
+ return this.#buildEvmToArkadeRefund(id, swap, settlement);
1047
+ }
1048
+ if (direction === "evm_to_bitcoin") {
1049
+ return this.#buildEvmToBitcoinRefund(id, swap, settlement);
1050
+ }
1051
+ return this.#buildEvmToLightningRefund(id, swap, settlement);
1050
1052
  }
1051
1053
  return {
1052
1054
  success: false,
@@ -1845,6 +1847,171 @@ export class Client {
1845
1847
  };
1846
1848
  }
1847
1849
  // =========================================================================
1850
+ // Collaborative EVM Refund
1851
+ // =========================================================================
1852
+ /**
1853
+ * Fetches the EIP-712 parameters for collaborative EVM HTLC refund.
1854
+ *
1855
+ * Returns the addresses and values needed to build the `CollabRefund`
1856
+ * EIP-712 typed data that the depositor signs.
1857
+ *
1858
+ * @param swapId - Swap ID
1859
+ * @returns CollabRefund parameters
1860
+ */
1861
+ async getCollabRefundEvmParams(swapId, settlement = "direct") {
1862
+ const response = await this.#apiClient.GET("/api/swap/{id}/collab-refund-evm/params", {
1863
+ params: {
1864
+ path: { id: swapId },
1865
+ query: { mode: settlement },
1866
+ },
1867
+ });
1868
+ if (response.error) {
1869
+ throw new Error(`Failed to fetch collab refund params: ${response.error.error || "Unknown error"}`);
1870
+ }
1871
+ const d = response.data;
1872
+ return {
1873
+ coordinatorAddress: d.coordinator_address,
1874
+ serverSignerAddress: d.server_signer_address,
1875
+ preimageHash: d.preimage_hash,
1876
+ amount: d.amount,
1877
+ token: d.token,
1878
+ claimAddress: d.claim_address,
1879
+ timelock: d.timelock,
1880
+ chainId: d.chain_id,
1881
+ mode: d.mode,
1882
+ sweepToken: d.sweep_token,
1883
+ minAmountOut: d.min_amount_out,
1884
+ callsHash: d.calls_hash,
1885
+ sourceTokenAddress: d.source_token_address ?? undefined,
1886
+ dexCalldata: d.dex_calldata
1887
+ ? {
1888
+ to: d.dex_calldata.to,
1889
+ data: d.dex_calldata.data,
1890
+ value: d.dex_calldata.value,
1891
+ }
1892
+ : undefined,
1893
+ };
1894
+ }
1895
+ /**
1896
+ * Builds the EIP-712 typed data for collaborative EVM refund.
1897
+ *
1898
+ * The depositor signs this with their wallet (via `eth_signTypedData_v4`
1899
+ * or the SDK's `signEvmDigest`) to authorize the server to submit the
1900
+ * refund on-chain.
1901
+ *
1902
+ * @param swapId - Swap ID
1903
+ * @param settlement - Settlement mode: "direct" (WBTC) or "swap-back" (original token via DEX)
1904
+ * @returns Typed data and digest for signing
1905
+ */
1906
+ async buildCollabRefundEvmTypedData(swapId, settlement = "direct") {
1907
+ const params = await this.getCollabRefundEvmParams(swapId, settlement);
1908
+ const digestParams = {
1909
+ coordinatorAddress: params.coordinatorAddress,
1910
+ chainId: params.chainId,
1911
+ preimageHash: params.preimageHash,
1912
+ amount: BigInt(params.amount),
1913
+ token: params.token,
1914
+ claimAddress: params.claimAddress,
1915
+ timelock: params.timelock,
1916
+ caller: params.serverSignerAddress,
1917
+ sweepToken: params.sweepToken,
1918
+ minAmountOut: BigInt(params.minAmountOut),
1919
+ callsHash: params.callsHash,
1920
+ };
1921
+ const typedData = buildCollabRefundEvmTypedData(digestParams);
1922
+ const digest = buildCollabRefundEvmDigest(digestParams);
1923
+ return { typedData, digest, params };
1924
+ }
1925
+ /**
1926
+ * Performs a collaborative EVM refund using the SDK's embedded wallet.
1927
+ *
1928
+ * The SDK signs the EIP-712 `CollabRefund` digest with the depositor's
1929
+ * derived EVM key and POSTs to the server, which cosigns and submits
1930
+ * the transaction on-chain. Gasless for the client — no timelock wait.
1931
+ *
1932
+ * @param swapId - Swap ID
1933
+ * @param settlement - Settlement mode: "direct" (WBTC) or "swap-back" (original token via DEX)
1934
+ * @returns Refund result with transaction hash
1935
+ */
1936
+ async collabRefundEvmSwap(swapId, settlement = "direct") {
1937
+ const { params, digest } = await this.buildCollabRefundEvmTypedData(swapId, settlement);
1938
+ // Sign using the SDK's stored EVM secret key for this swap
1939
+ const storedSwap = await this.getStoredSwap(swapId);
1940
+ if (!storedSwap?.secretKey) {
1941
+ throw new Error("No secret key found for this swap. Cannot sign collab refund.");
1942
+ }
1943
+ const sig = signEvmDigest(storedSwap.secretKey, digest);
1944
+ // Derive the on-chain depositor address (the key that funded the HTLC)
1945
+ const { deriveEvmAddress } = await import("./evm/signing.js");
1946
+ const depositorAddress = deriveEvmAddress(storedSwap.secretKey);
1947
+ // POST to the server
1948
+ const response = await this.#apiClient.POST("/api/swap/{id}/collab-refund-evm", {
1949
+ params: { path: { id: swapId } },
1950
+ body: {
1951
+ v: sig.v,
1952
+ r: sig.r,
1953
+ s: sig.s,
1954
+ depositor_address: depositorAddress,
1955
+ mode: settlement,
1956
+ sweep_token: params.sweepToken,
1957
+ min_amount_out: params.minAmountOut,
1958
+ },
1959
+ });
1960
+ if (response.error) {
1961
+ throw new Error(`Collaborative EVM refund failed: ${response.error.error || "Unknown error"}`);
1962
+ }
1963
+ return {
1964
+ id: response.data.id,
1965
+ txHash: response.data.tx_hash,
1966
+ message: response.data.message,
1967
+ };
1968
+ }
1969
+ /**
1970
+ * Submits a pre-signed collaborative EVM refund.
1971
+ *
1972
+ * Use this when an external wallet (e.g. MetaMask) signs the EIP-712
1973
+ * `CollabRefund` digest instead of the SDK's embedded key.
1974
+ * Call {@link buildCollabRefundEvmTypedData} first to obtain the typed data
1975
+ * for the wallet to sign, then pass the resulting signature here.
1976
+ *
1977
+ * @param swapId - Swap ID
1978
+ * @param body - Signed refund request (signature + refund parameters)
1979
+ * @returns Refund result with transaction hash
1980
+ */
1981
+ async submitCollabRefundEvm(swapId, body) {
1982
+ const response = await this.#apiClient.POST("/api/swap/{id}/collab-refund-evm", {
1983
+ params: { path: { id: swapId } },
1984
+ body,
1985
+ });
1986
+ if (response.error) {
1987
+ throw new Error(`Collaborative EVM refund failed: ${response.error.error || "Unknown error"}`);
1988
+ }
1989
+ return {
1990
+ id: response.data.id,
1991
+ txHash: response.data.tx_hash,
1992
+ message: response.data.message,
1993
+ };
1994
+ }
1995
+ /**
1996
+ * Collaborative EVM refund — internal method called by refundSwap.
1997
+ * @internal
1998
+ */
1999
+ async #collabRefundEvm(id, settlement = "direct") {
2000
+ try {
2001
+ const result = await this.collabRefundEvmSwap(id, settlement);
2002
+ return {
2003
+ success: true,
2004
+ message: `${result.message} (tx: ${result.txHash})`,
2005
+ };
2006
+ }
2007
+ catch (error) {
2008
+ return {
2009
+ success: false,
2010
+ message: `Collaborative EVM refund failed: ${error instanceof Error ? error.message : String(error)}`,
2011
+ };
2012
+ }
2013
+ }
2014
+ // =========================================================================
1848
2015
  // Swap Creation - BTC to EVM
1849
2016
  // =========================================================================
1850
2017
  /**
@@ -1991,6 +2158,25 @@ export class Client {
1991
2158
  if (!options.userAddress && !options.gasless) {
1992
2159
  throw new Error("userAddress is required for EVM → Lightning swaps (unless gasless)");
1993
2160
  }
2161
+ // Detect whether targetAddress is a Lightning address (user@domain)
2162
+ // or a BOLT11 invoice (starts with ln...).
2163
+ const isAddress = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(options.targetAddress);
2164
+ if (isAddress) {
2165
+ if (options.targetAmount == null ||
2166
+ !Number.isFinite(options.targetAmount) ||
2167
+ options.targetAmount <= 0) {
2168
+ throw new Error("targetAmount (in sats) is required when using a Lightning address");
2169
+ }
2170
+ return this.createEvmToLightningSwapGeneric({
2171
+ lightningAddress: options.targetAddress,
2172
+ amountSats: options.targetAmount,
2173
+ evmChainId: Number(sourceChain),
2174
+ tokenAddress: sourceAsset.token_id,
2175
+ userAddress: options.userAddress ?? "",
2176
+ referralCode: options.referralCode,
2177
+ gasless: options.gasless,
2178
+ });
2179
+ }
1994
2180
  return this.createEvmToLightningSwapGeneric({
1995
2181
  lightningInvoice: options.targetAddress,
1996
2182
  evmChainId: Number(sourceChain),