@lendasat/lendaswap-sdk-pure 0.2.23 → 0.2.25

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.
Files changed (152) hide show
  1. package/dist/api/client.d.ts +2 -1
  2. package/dist/api/client.d.ts.map +1 -1
  3. package/dist/api/client.js +3 -2
  4. package/dist/api/client.js.map +1 -1
  5. package/dist/arkade-network.d.ts +8 -0
  6. package/dist/arkade-network.d.ts.map +1 -0
  7. package/dist/arkade-network.js +40 -0
  8. package/dist/arkade-network.js.map +1 -0
  9. package/dist/arkade.d.ts.map +1 -1
  10. package/dist/arkade.js +2 -9
  11. package/dist/arkade.js.map +1 -1
  12. package/dist/cctp/attestation.d.ts.map +1 -1
  13. package/dist/cctp/attestation.js +7 -2
  14. package/dist/cctp/attestation.js.map +1 -1
  15. package/dist/cctp/fee.d.ts +49 -0
  16. package/dist/cctp/fee.d.ts.map +1 -0
  17. package/dist/cctp/fee.js +70 -0
  18. package/dist/cctp/fee.js.map +1 -0
  19. package/dist/cctp/index.d.ts +1 -0
  20. package/dist/cctp/index.d.ts.map +1 -1
  21. package/dist/cctp/index.js +1 -0
  22. package/dist/cctp/index.js.map +1 -1
  23. package/dist/cctp-bridge/bridge.d.ts +62 -0
  24. package/dist/cctp-bridge/bridge.d.ts.map +1 -0
  25. package/dist/cctp-bridge/bridge.js +74 -0
  26. package/dist/cctp-bridge/bridge.js.map +1 -0
  27. package/dist/cctp-bridge/index.d.ts +17 -0
  28. package/dist/cctp-bridge/index.d.ts.map +1 -0
  29. package/dist/cctp-bridge/index.js +16 -0
  30. package/dist/cctp-bridge/index.js.map +1 -0
  31. package/dist/cctp-inbound/approveAndBurn.d.ts +68 -0
  32. package/dist/cctp-inbound/approveAndBurn.d.ts.map +1 -0
  33. package/dist/cctp-inbound/approveAndBurn.js +95 -0
  34. package/dist/cctp-inbound/approveAndBurn.js.map +1 -0
  35. package/dist/cctp-inbound/burn.d.ts +51 -0
  36. package/dist/cctp-inbound/burn.d.ts.map +1 -0
  37. package/dist/cctp-inbound/burn.js +66 -0
  38. package/dist/cctp-inbound/burn.js.map +1 -0
  39. package/dist/cctp-inbound/chainMap.d.ts +48 -0
  40. package/dist/cctp-inbound/chainMap.d.ts.map +1 -0
  41. package/dist/cctp-inbound/chainMap.js +103 -0
  42. package/dist/cctp-inbound/chainMap.js.map +1 -0
  43. package/dist/cctp-inbound/client.d.ts +1573 -0
  44. package/dist/cctp-inbound/client.d.ts.map +1 -0
  45. package/dist/cctp-inbound/client.js +117 -0
  46. package/dist/cctp-inbound/client.js.map +1 -0
  47. package/dist/cctp-inbound/eip2612.d.ts +77 -0
  48. package/dist/cctp-inbound/eip2612.d.ts.map +1 -0
  49. package/dist/cctp-inbound/eip2612.js +95 -0
  50. package/dist/cctp-inbound/eip2612.js.map +1 -0
  51. package/dist/cctp-inbound/evmSignerAdapter.d.ts +25 -0
  52. package/dist/cctp-inbound/evmSignerAdapter.d.ts.map +1 -0
  53. package/dist/cctp-inbound/evmSignerAdapter.js +50 -0
  54. package/dist/cctp-inbound/evmSignerAdapter.js.map +1 -0
  55. package/dist/cctp-inbound/fundSwap.d.ts +94 -0
  56. package/dist/cctp-inbound/fundSwap.d.ts.map +1 -0
  57. package/dist/cctp-inbound/fundSwap.js +90 -0
  58. package/dist/cctp-inbound/fundSwap.js.map +1 -0
  59. package/dist/cctp-inbound/index.d.ts +35 -0
  60. package/dist/cctp-inbound/index.d.ts.map +1 -0
  61. package/dist/cctp-inbound/index.js +33 -0
  62. package/dist/cctp-inbound/index.js.map +1 -0
  63. package/dist/cctp-inbound/permit2.d.ts +33 -0
  64. package/dist/cctp-inbound/permit2.d.ts.map +1 -0
  65. package/dist/cctp-inbound/permit2.js +32 -0
  66. package/dist/cctp-inbound/permit2.js.map +1 -0
  67. package/dist/cctp-inbound/preflight.d.ts +36 -0
  68. package/dist/cctp-inbound/preflight.d.ts.map +1 -0
  69. package/dist/cctp-inbound/preflight.js +67 -0
  70. package/dist/cctp-inbound/preflight.js.map +1 -0
  71. package/dist/cctp-inbound/smartAccount.d.ts +1518 -0
  72. package/dist/cctp-inbound/smartAccount.d.ts.map +1 -0
  73. package/dist/cctp-inbound/smartAccount.js +117 -0
  74. package/dist/cctp-inbound/smartAccount.js.map +1 -0
  75. package/dist/cctp-inbound/submit.d.ts +75 -0
  76. package/dist/cctp-inbound/submit.d.ts.map +1 -0
  77. package/dist/cctp-inbound/submit.js +126 -0
  78. package/dist/cctp-inbound/submit.js.map +1 -0
  79. package/dist/cctp-inbound/types.d.ts +30 -0
  80. package/dist/cctp-inbound/types.d.ts.map +1 -0
  81. package/dist/cctp-inbound/types.js +5 -0
  82. package/dist/cctp-inbound/types.js.map +1 -0
  83. package/dist/cctp-inbound/userOp.d.ts +93 -0
  84. package/dist/cctp-inbound/userOp.d.ts.map +1 -0
  85. package/dist/cctp-inbound/userOp.js +151 -0
  86. package/dist/cctp-inbound/userOp.js.map +1 -0
  87. package/dist/client.d.ts +194 -16
  88. package/dist/client.d.ts.map +1 -1
  89. package/dist/client.js +591 -36
  90. package/dist/client.js.map +1 -1
  91. package/dist/create/evm-to-arkade.d.ts.map +1 -1
  92. package/dist/create/evm-to-arkade.js +2 -0
  93. package/dist/create/evm-to-arkade.js.map +1 -1
  94. package/dist/create/evm-to-bitcoin.d.ts.map +1 -1
  95. package/dist/create/evm-to-bitcoin.js +2 -0
  96. package/dist/create/evm-to-bitcoin.js.map +1 -1
  97. package/dist/create/evm-to-lightning.d.ts.map +1 -1
  98. package/dist/create/evm-to-lightning.js +31 -25
  99. package/dist/create/evm-to-lightning.js.map +1 -1
  100. package/dist/create/types.d.ts +23 -0
  101. package/dist/create/types.d.ts.map +1 -1
  102. package/dist/delegate.d.ts.map +1 -1
  103. package/dist/delegate.js +2 -31
  104. package/dist/delegate.js.map +1 -1
  105. package/dist/escrow/index.d.ts +74 -0
  106. package/dist/escrow/index.d.ts.map +1 -0
  107. package/dist/escrow/index.js +115 -0
  108. package/dist/escrow/index.js.map +1 -0
  109. package/dist/evm/wallet.d.ts +16 -0
  110. package/dist/evm/wallet.d.ts.map +1 -1
  111. package/dist/evm/wallet.js.map +1 -1
  112. package/dist/generated/api.d.ts +309 -12
  113. package/dist/generated/api.d.ts.map +1 -1
  114. package/dist/index.d.ts +5 -2
  115. package/dist/index.d.ts.map +1 -1
  116. package/dist/index.js +6 -2
  117. package/dist/index.js.map +1 -1
  118. package/dist/redeem/arkade.d.ts.map +1 -1
  119. package/dist/redeem/arkade.js +4 -43
  120. package/dist/redeem/arkade.js.map +1 -1
  121. package/dist/refund/arkade.d.ts.map +1 -1
  122. package/dist/refund/arkade.js +3 -39
  123. package/dist/refund/arkade.js.map +1 -1
  124. package/dist/refund/{collab.d.ts → collab-arkade-evm.d.ts} +6 -6
  125. package/dist/refund/collab-arkade-evm.d.ts.map +1 -0
  126. package/dist/refund/{collab.js → collab-arkade-evm.js} +6 -38
  127. package/dist/refund/collab-arkade-evm.js.map +1 -0
  128. package/dist/refund/collab-arkade-lightning.d.ts +59 -0
  129. package/dist/refund/collab-arkade-lightning.d.ts.map +1 -0
  130. package/dist/refund/collab-arkade-lightning.js +208 -0
  131. package/dist/refund/collab-arkade-lightning.js.map +1 -0
  132. package/dist/refund/index.d.ts +3 -2
  133. package/dist/refund/index.d.ts.map +1 -1
  134. package/dist/refund/index.js +3 -2
  135. package/dist/refund/index.js.map +1 -1
  136. package/dist/signer/index.d.ts +23 -3
  137. package/dist/signer/index.d.ts.map +1 -1
  138. package/dist/signer/index.js +45 -16
  139. package/dist/signer/index.js.map +1 -1
  140. package/dist/tokens.d.ts +12 -0
  141. package/dist/tokens.d.ts.map +1 -1
  142. package/dist/tokens.js +21 -1
  143. package/dist/tokens.js.map +1 -1
  144. package/dist/version.d.ts +2 -2
  145. package/dist/version.js +1 -1
  146. package/dist/ws.d.ts +21 -0
  147. package/dist/ws.d.ts.map +1 -0
  148. package/dist/ws.js +145 -0
  149. package/dist/ws.js.map +1 -0
  150. package/package.json +27 -2
  151. package/dist/refund/collab.d.ts.map +0 -1
  152. package/dist/refund/collab.js.map +0 -1
@@ -29,7 +29,8 @@ export type SwapPairInfo = components["schemas"]["SwapPairInfo"];
29
29
  export type SwapPairsResponse = components["schemas"]["SwapPairsResponse"];
30
30
  export interface ApiClientOptions {
31
31
  baseUrl: string;
32
- apiKey?: string;
32
+ orgCode?: string;
33
+ defaultHeaders?: Record<string, string>;
33
34
  }
34
35
  export declare function createApiClient(options: ApiClientOptions): ApiClient;
35
36
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,10 @@ import { CLIENT_AGENT } from "../version.js";
3
3
  export function createApiClient(options) {
4
4
  const headers = {
5
5
  "X-Lendaswap-Client": CLIENT_AGENT,
6
+ ...(options.defaultHeaders ?? {}),
6
7
  };
7
- if (options.apiKey) {
8
- headers["X-Org-Code"] = options.apiKey;
8
+ if (options.orgCode) {
9
+ headers["X-Org-Code"] = options.orgCode;
9
10
  }
10
11
  return createClient({
11
12
  baseUrl: options.baseUrl,
@@ -1 +1 @@
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"}
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;AAyE7C,MAAM,UAAU,eAAe,CAAC,OAAyB;IACvD,MAAM,OAAO,GAA2B;QACtC,oBAAoB,EAAE,YAAY;QAClC,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;KAClC,CAAC;IACF,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAC1C,CAAC;IAED,OAAO,YAAY,CAAQ;QACzB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO;KACR,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type NetworkName } from "@arkade-os/sdk";
2
+ /** Default Arkade server URL by network */
3
+ export declare const DEFAULT_ARKADE_URLS: Record<string, string>;
4
+ export declare function getNetworkName(network: string): NetworkName;
5
+ export declare function getNetworkHrp(networkName: NetworkName): string;
6
+ export declare function resolveArkadeServerUrl(network: string, arkadeServerUrl?: string): string;
7
+ export declare function resolveArkadeServerUrlByName(networkName: NetworkName, arkadeServerUrl?: string): string;
8
+ //# sourceMappingURL=arkade-network.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arkade-network.d.ts","sourceRoot":"","sources":["../src/arkade-network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAY,MAAM,gBAAgB,CAAC;AAE5D,2CAA2C;AAC3C,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAKtD,CAAC;AAEF,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAgB3D;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAE9D;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,eAAe,CAAC,EAAE,MAAM,GACvB,MAAM,CAGR;AAED,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,WAAW,EACxB,eAAe,CAAC,EAAE,MAAM,GACvB,MAAM,CAQR"}
@@ -0,0 +1,40 @@
1
+ import { networks } from "@arkade-os/sdk";
2
+ /** Default Arkade server URL by network */
3
+ export const DEFAULT_ARKADE_URLS = {
4
+ bitcoin: "https://arkade.computer",
5
+ mainnet: "https://arkade.computer",
6
+ signet: "https://mutinynet.arkade.sh",
7
+ mutinynet: "https://mutinynet.arkade.sh",
8
+ };
9
+ export function getNetworkName(network) {
10
+ switch (network.toLowerCase()) {
11
+ case "mainnet":
12
+ case "bitcoin":
13
+ return "bitcoin";
14
+ case "testnet":
15
+ return "testnet";
16
+ case "signet":
17
+ return "signet";
18
+ case "mutinynet":
19
+ return "mutinynet";
20
+ case "regtest":
21
+ return "regtest";
22
+ default:
23
+ throw new Error(`Unknown network: ${network}`);
24
+ }
25
+ }
26
+ export function getNetworkHrp(networkName) {
27
+ return networks[networkName].hrp;
28
+ }
29
+ export function resolveArkadeServerUrl(network, arkadeServerUrl) {
30
+ const networkName = getNetworkName(network);
31
+ return resolveArkadeServerUrlByName(networkName, arkadeServerUrl);
32
+ }
33
+ export function resolveArkadeServerUrlByName(networkName, arkadeServerUrl) {
34
+ const serverUrl = arkadeServerUrl ?? DEFAULT_ARKADE_URLS[networkName];
35
+ if (!serverUrl) {
36
+ throw new Error(`No Arkade server URL configured for network: ${networkName}`);
37
+ }
38
+ return serverUrl;
39
+ }
40
+ //# sourceMappingURL=arkade-network.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arkade-network.js","sourceRoot":"","sources":["../src/arkade-network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE5D,2CAA2C;AAC3C,MAAM,CAAC,MAAM,mBAAmB,GAA2B;IACzD,OAAO,EAAE,yBAAyB;IAClC,OAAO,EAAE,yBAAyB;IAClC,MAAM,EAAE,6BAA6B;IACrC,SAAS,EAAE,6BAA6B;CACzC,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,QAAQ,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;QAC9B,KAAK,SAAS,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,WAAW;YACd,OAAO,WAAW,CAAC;QACrB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB;YACE,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,WAAwB;IACpD,OAAO,QAAQ,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAAe,EACf,eAAwB;IAExB,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAC5C,OAAO,4BAA4B,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,WAAwB,EACxB,eAAwB;IAExB,MAAM,SAAS,GAAG,eAAe,IAAI,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACtE,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,gDAAgD,WAAW,EAAE,CAC9D,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"arkade.d.ts","sourceRoot":"","sources":["../src/arkade.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,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,CAsDvB"}
package/dist/arkade.js CHANGED
@@ -5,11 +5,7 @@
5
5
  */
6
6
  import { ArkAddress, RestIndexerProvider, } from "@arkade-os/sdk";
7
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
- };
8
+ import { resolveArkadeServerUrl } from "./arkade-network.js";
13
9
  /**
14
10
  * Queries the Arkade indexer for spendable, spent, and recoverable balances
15
11
  * at a VHTLC address.
@@ -23,10 +19,7 @@ export async function getVhtlcAmounts(params) {
23
19
  const decoded = ArkAddress.decode(vhtlcAddress);
24
20
  const pkScript = hex.encode(decoded.pkScript);
25
21
  // 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
- }
22
+ const serverUrl = resolveArkadeServerUrl(network, arkadeServerUrl);
30
23
  const indexerProvider = new RestIndexerProvider(serverUrl);
31
24
  // Query each category separately
32
25
  const [spendableResult, spentResult, recoverableResult] = await Promise.all([
@@ -1 +1 @@
1
- {"version":3,"file":"arkade.js","sourceRoot":"","sources":["../src/arkade.ts"],"names":[],"mappings":"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"}
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,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAgC7D;;;;;;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,sBAAsB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAEnE,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"}
@@ -1 +1 @@
1
- {"version":3,"file":"attestation.d.ts","sourceRoot":"","sources":["../../src/cctp/attestation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAEL,KAAK,aAAa,EAEnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAEV,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,uBAAuB;IACtC,0CAA0C;IAC1C,WAAW,EAAE,aAAa,CAAC;IAC3B,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CA4D5B;AAMD,gEAAgE;AAChE,MAAM,WAAW,uBAAuB;IACtC,2CAA2C;IAC3C,WAAW,EAAE,aAAa,CAAC;IAC3B,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,iEAAiE;IACjE,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACtD;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CAmG5B"}
1
+ {"version":3,"file":"attestation.d.ts","sourceRoot":"","sources":["../../src/cctp/attestation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAEL,KAAK,aAAa,EAEnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAEV,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,uBAAuB;IACtC,0CAA0C;IAC1C,WAAW,EAAE,aAAa,CAAC;IAC3B,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CA4D5B;AAMD,gEAAgE;AAChE,MAAM,WAAW,uBAAuB;IACtC,2CAA2C;IAC3C,WAAW,EAAE,aAAa,CAAC;IAC3B,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,iEAAiE;IACjE,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACtD;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CA2G5B"}
@@ -99,12 +99,17 @@ export async function trackCctpMessage(options) {
99
99
  continue;
100
100
  }
101
101
  // Attestation is complete — check forwarding state
102
- if (msg.forwardState === "COMPLETE" && msg.forwardTxHash) {
102
+ if ((msg.forwardState === "COMPLETE" || msg.forwardState === "CONFIRMED") &&
103
+ msg.forwardTxHash) {
103
104
  emitStatus("COMPLETE");
105
+ const cctpSentAmount = msg.decodedMessage?.decodedMessageBody?.amount;
106
+ const cctpPaidFee = msg.decodedMessage?.decodedMessageBody?.feeExecuted;
104
107
  return {
105
108
  status: "COMPLETE",
106
109
  forwardTxHash: msg.forwardTxHash,
107
- amount: msg.decodedMessage?.decodedMessageBody?.amount,
110
+ amount: cctpSentAmount && cctpPaidFee
111
+ ? (BigInt(cctpSentAmount) - BigInt(cctpPaidFee)).toString()
112
+ : undefined,
108
113
  feeExecuted: msg.decodedMessage?.decodedMessageBody?.feeExecuted,
109
114
  };
110
115
  }
@@ -1 +1 @@
1
- {"version":3,"file":"attestation.js","sourceRoot":"","sources":["../../src/cctp/attestation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attestation.js","sourceRoot":"","sources":["../../src/cctp/attestation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /** Fee tiers returned by the IRIS API (low/med/high gas estimates for the forwarder). */
2
+ export interface IrisForwardFeeTiers {
3
+ low: number;
4
+ med: number;
5
+ high: number;
6
+ }
7
+ /** Raw entry from `GET /v2/burn/USDC/fees/{sourceDomain}/{destDomain}`. */
8
+ export interface IrisFeeEntry {
9
+ finalityThreshold: number;
10
+ /** CCTPv2 fast-transfer fee in basis points (e.g. `1.3` = 0.013%). */
11
+ minimumFee: number;
12
+ /** Forward-service relayer fees (absolute USDC smallest-units). */
13
+ forwardFee: IrisForwardFeeTiers;
14
+ }
15
+ export interface FetchCctpFeeOptions {
16
+ /** CCTP source domain ID (e.g. 2 = Optimism, 6 = Base). */
17
+ sourceDomain: number;
18
+ /** CCTP destination domain ID (3 = Arbitrum). */
19
+ destinationDomain: number;
20
+ /** Finality threshold to query — defaults to `FINALITY_FAST` (1000). */
21
+ finalityThreshold?: number;
22
+ /** IRIS API base URL. Defaults to mainnet. */
23
+ irisApiUrl?: string;
24
+ /** Optional abort signal. */
25
+ signal?: AbortSignal;
26
+ }
27
+ /**
28
+ * Fetch the fee entry for the given source → destination pair and
29
+ * finality threshold. Returns the raw IRIS shape — callers that want
30
+ * an applied maxFee should pass this to {@link computeCctpFastFee}.
31
+ */
32
+ export declare function fetchCctpFee(options: FetchCctpFeeOptions): Promise<IrisFeeEntry>;
33
+ /**
34
+ * Cached variant of {@link fetchCctpFee}. Multiple callers within a
35
+ * 60-second window share a single IRIS round-trip per source→dest pair.
36
+ */
37
+ export declare function getCachedCctpFee(options: FetchCctpFeeOptions): Promise<IrisFeeEntry>;
38
+ /**
39
+ * Apply IRIS's `minimumFee` (basis points) to an amount in USDC smallest
40
+ * units, matching the Rust backend's formula:
41
+ * protocolFee = amount × round(minimumFee × 100) ÷ 1_000_000
42
+ *
43
+ * Adds a conservative 20% buffer to absorb rounding drift between quote
44
+ * time and burn time. Return value is the fee in USDC smallest units,
45
+ * suitable for `maxFee` in `depositForBurn` and as the subtracted amount
46
+ * when sizing the Permit2 permit.
47
+ */
48
+ export declare function computeCctpFastFee(entry: IrisFeeEntry, amountUsdcUnits: bigint): bigint;
49
+ //# sourceMappingURL=fee.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fee.d.ts","sourceRoot":"","sources":["../../src/cctp/fee.ts"],"names":[],"mappings":"AAaA,yFAAyF;AACzF,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,2EAA2E;AAC3E,MAAM,WAAW,YAAY;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,UAAU,EAAE,mBAAmB,CAAC;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,YAAY,CAAC,CA0BvB;AAUD;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,YAAY,CAAC,CAevB;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,YAAY,EACnB,eAAe,EAAE,MAAM,GACtB,MAAM,CAIR"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * CCTP v2 fast-transfer fee query against Circle's IRIS API.
3
+ *
4
+ * The fast-transfer fee (`minimumFee`, in basis points × 100) is deducted
5
+ * from the minted amount on the destination chain whenever the burn's
6
+ * `minFinalityThreshold ≤ 1000`. We need to query it to know precisely
7
+ * how much USDC will arrive so the Permit2 signature pulls the right
8
+ * amount and the Multicall doesn't underflow.
9
+ *
10
+ * Mirrors the Rust backend's `swap/src/cctp.rs::compute_max_fee`.
11
+ */
12
+ import { FINALITY_FAST, IRIS_API_MAINNET } from "./constants.js";
13
+ /**
14
+ * Fetch the fee entry for the given source → destination pair and
15
+ * finality threshold. Returns the raw IRIS shape — callers that want
16
+ * an applied maxFee should pass this to {@link computeCctpFastFee}.
17
+ */
18
+ export async function fetchCctpFee(options) {
19
+ const { sourceDomain, destinationDomain, finalityThreshold = FINALITY_FAST, irisApiUrl = IRIS_API_MAINNET, signal, } = options;
20
+ const url = `${irisApiUrl}/v2/burn/USDC/fees/${sourceDomain}/${destinationDomain}?forward=true`;
21
+ const response = await fetch(url, { signal });
22
+ if (!response.ok) {
23
+ throw new Error(`IRIS fee lookup failed: ${response.status} ${response.statusText}`);
24
+ }
25
+ const entries = (await response.json());
26
+ const entry = entries.find((e) => e.finalityThreshold === finalityThreshold) ??
27
+ entries[0];
28
+ if (!entry) {
29
+ throw new Error(`IRIS returned no fee entries for ${sourceDomain}→${destinationDomain}`);
30
+ }
31
+ return entry;
32
+ }
33
+ /**
34
+ * Tiny TTL cache for CCTP fee lookups. The IRIS fee is effectively
35
+ * constant per-pair minute-to-minute — re-fetching on every quote
36
+ * keystroke would bomb IRIS for no gain. 60s TTL is ample.
37
+ */
38
+ const feeCache = new Map();
39
+ const FEE_CACHE_TTL_MS = 60_000;
40
+ /**
41
+ * Cached variant of {@link fetchCctpFee}. Multiple callers within a
42
+ * 60-second window share a single IRIS round-trip per source→dest pair.
43
+ */
44
+ export async function getCachedCctpFee(options) {
45
+ const { sourceDomain, destinationDomain, finalityThreshold = FINALITY_FAST, irisApiUrl = IRIS_API_MAINNET, } = options;
46
+ const key = `${sourceDomain}-${destinationDomain}-${finalityThreshold}-${irisApiUrl}`;
47
+ const cached = feeCache.get(key);
48
+ if (cached && cached.expiresAt > Date.now()) {
49
+ return cached.entry;
50
+ }
51
+ const entry = await fetchCctpFee(options);
52
+ feeCache.set(key, { entry, expiresAt: Date.now() + FEE_CACHE_TTL_MS });
53
+ return entry;
54
+ }
55
+ /**
56
+ * Apply IRIS's `minimumFee` (basis points) to an amount in USDC smallest
57
+ * units, matching the Rust backend's formula:
58
+ * protocolFee = amount × round(minimumFee × 100) ÷ 1_000_000
59
+ *
60
+ * Adds a conservative 20% buffer to absorb rounding drift between quote
61
+ * time and burn time. Return value is the fee in USDC smallest units,
62
+ * suitable for `maxFee` in `depositForBurn` and as the subtracted amount
63
+ * when sizing the Permit2 permit.
64
+ */
65
+ export function computeCctpFastFee(entry, amountUsdcUnits) {
66
+ const bpsScaled = Math.round(entry.minimumFee * 100);
67
+ const protocolFee = (amountUsdcUnits * BigInt(bpsScaled)) / 1000000n;
68
+ return (protocolFee * 120n) / 100n;
69
+ }
70
+ //# sourceMappingURL=fee.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fee.js","sourceRoot":"","sources":["../../src/cctp/fee.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AA+BjE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAA4B;IAE5B,MAAM,EACJ,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,GAAG,aAAa,EACjC,UAAU,GAAG,gBAAgB,EAC7B,MAAM,GACP,GAAG,OAAO,CAAC;IAEZ,MAAM,GAAG,GAAG,GAAG,UAAU,sBAAsB,YAAY,IAAI,iBAAiB,eAAe,CAAC;IAChG,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,2BAA2B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CACpE,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAmB,CAAC;IAC1D,MAAM,KAAK,GACT,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,KAAK,iBAAiB,CAAC;QAC9D,OAAO,CAAC,CAAC,CAAC,CAAC;IACb,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,oCAAoC,YAAY,IAAI,iBAAiB,EAAE,CACxE,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAsD,CAAC;AAC/E,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEhC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAA4B;IAE5B,MAAM,EACJ,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,GAAG,aAAa,EACjC,UAAU,GAAG,gBAAgB,GAC9B,GAAG,OAAO,CAAC;IACZ,MAAM,GAAG,GAAG,GAAG,YAAY,IAAI,iBAAiB,IAAI,iBAAiB,IAAI,UAAU,EAAE,CAAC;IACtF,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAC5C,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAC1C,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,EAAE,CAAC,CAAC;IACvE,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAmB,EACnB,eAAuB;IAEvB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,CAAC,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,QAAU,CAAC;IACvE,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;AACrC,CAAC"}
@@ -8,6 +8,7 @@
8
8
  */
9
9
  export { type AttestationResult, type FetchAttestationOptions, fetchAttestation, type TrackCctpMessageOptions, trackCctpMessage, } from "./attestation.js";
10
10
  export { CCTP_DOMAINS, type CctpChainName, EURC_ADDRESSES, FINALITY_FAST, FINALITY_STANDARD, FORWARDING_FEE_ETHEREUM, FORWARDING_FEE_OTHER, FORWARDING_SERVICE_HOOK_DATA, IRIS_API_MAINNET, IRIS_API_TESTNET, MESSAGE_TRANSMITTER_ADDRESSES, MESSAGE_TRANSMITTER_V2, TOKEN_MESSENGER_ADDRESSES, TOKEN_MESSENGER_V2, USAT_ADDRESSES, USDC_ADDRESSES, } from "./constants.js";
11
+ export { computeCctpFastFee, type FetchCctpFeeOptions, fetchCctpFee, getCachedCctpFee, type IrisFeeEntry, type IrisForwardFeeTiers, } from "./fee.js";
11
12
  export type { AttestationResponse, AttestationStatus, BridgeParams, BurnResult, CctpMessageResult, CctpMessageStatus, MintResult, } from "./types.js";
12
13
  export { addressToBytes32, bytes32ToAddress, getDomain, needsBridge, } from "./utils.js";
13
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cctp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,YAAY,EACZ,KAAK,aAAa,EAClB,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACpB,4BAA4B,EAC5B,gBAAgB,EAChB,gBAAgB,EAChB,6BAA6B,EAC7B,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,EAClB,cAAc,EACd,cAAc,GACf,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,EACT,WAAW,GACZ,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cctp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,YAAY,EACZ,KAAK,aAAa,EAClB,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACpB,4BAA4B,EAC5B,gBAAgB,EAChB,gBAAgB,EAChB,6BAA6B,EAC7B,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,EAClB,cAAc,EACd,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,YAAY,EACZ,gBAAgB,EAChB,KAAK,YAAY,EACjB,KAAK,mBAAmB,GACzB,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,EACT,WAAW,GACZ,MAAM,YAAY,CAAC"}
@@ -8,5 +8,6 @@
8
8
  */
9
9
  export { fetchAttestation, trackCctpMessage, } from "./attestation.js";
10
10
  export { CCTP_DOMAINS, EURC_ADDRESSES, FINALITY_FAST, FINALITY_STANDARD, FORWARDING_FEE_ETHEREUM, FORWARDING_FEE_OTHER, FORWARDING_SERVICE_HOOK_DATA, IRIS_API_MAINNET, IRIS_API_TESTNET, MESSAGE_TRANSMITTER_ADDRESSES, MESSAGE_TRANSMITTER_V2, TOKEN_MESSENGER_ADDRESSES, TOKEN_MESSENGER_V2, USAT_ADDRESSES, USDC_ADDRESSES, } from "./constants.js";
11
+ export { computeCctpFastFee, fetchCctpFee, getCachedCctpFee, } from "./fee.js";
11
12
  export { addressToBytes32, bytes32ToAddress, getDomain, needsBridge, } from "./utils.js";
12
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cctp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAGL,gBAAgB,EAEhB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,YAAY,EAEZ,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACpB,4BAA4B,EAC5B,gBAAgB,EAChB,gBAAgB,EAChB,6BAA6B,EAC7B,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,EAClB,cAAc,EACd,cAAc,GACf,MAAM,gBAAgB,CAAC;AAYxB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,EACT,WAAW,GACZ,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cctp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAGL,gBAAgB,EAEhB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,YAAY,EAEZ,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACpB,4BAA4B,EAC5B,gBAAgB,EAChB,gBAAgB,EAChB,6BAA6B,EAC7B,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,EAClB,cAAc,EACd,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,kBAAkB,EAElB,YAAY,EACZ,gBAAgB,GAGjB,MAAM,UAAU,CAAC;AAWlB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,EACT,WAAW,GACZ,MAAM,YAAY,CAAC"}
@@ -0,0 +1,62 @@
1
+ import { type BridgeChainIdentifier, type BridgeConfig, type BridgeParams, type BridgeResult, type EstimateResult } from "@circle-fin/bridge-kit";
2
+ type BridgeKitAdapter = BridgeParams["from"]["adapter"];
3
+ type BridgeEventPayload = any;
4
+ export interface BridgeUsdcParams {
5
+ /** Source chain + pre-built bridge-kit adapter. */
6
+ source: {
7
+ adapter: BridgeKitAdapter;
8
+ chain: BridgeChainIdentifier;
9
+ /** Required when the adapter is developer-controlled. */
10
+ address?: string;
11
+ };
12
+ /**
13
+ * Destination. Adapter may be the same instance as `source.adapter` if the
14
+ * user holds the same key on both chains (the common case).
15
+ */
16
+ destination: {
17
+ adapter: BridgeKitAdapter;
18
+ chain: BridgeChainIdentifier;
19
+ /** Required when the adapter is developer-controlled. */
20
+ address?: string;
21
+ /** Send to a different EVM address than the adapter's own. */
22
+ recipientAddress?: string;
23
+ };
24
+ /** Human-readable USDC amount, e.g. "10.50". */
25
+ amount: string;
26
+ config?: BridgeConfig;
27
+ /** Subscribe to all bridge-kit lifecycle events (approve/burn/attest/mint). */
28
+ onEvent?: (event: BridgeEventPayload) => void;
29
+ /** Subscribe to a single lifecycle event. */
30
+ onApprove?: (event: BridgeEventPayload) => void;
31
+ onBurn?: (event: BridgeEventPayload) => void;
32
+ onAttestation?: (event: BridgeEventPayload) => void;
33
+ onMint?: (event: BridgeEventPayload) => void;
34
+ }
35
+ /**
36
+ * Bridge USDC cross-chain via Circle CCTPv2.
37
+ *
38
+ * Runs the full approve → burn → attest → mint flow in one call. Returns a
39
+ * `BridgeResult` whose `state` is `'success'` or `'error'`; inspect `steps`
40
+ * for per-action details. Recoverable failures can be resumed with
41
+ * `BridgeKit.retry()` — see bridge-kit's retry guide.
42
+ */
43
+ export declare function bridgeUsdc(params: BridgeUsdcParams): Promise<BridgeResult>;
44
+ /**
45
+ * Bridge USDC from any CCTPv2-supported chain into Arbitrum.
46
+ *
47
+ * Convenience for the common Lendaswap flow: land USDC on Arbitrum so the
48
+ * existing Arbitrum USDC → BTC HTLC swap can run against it.
49
+ */
50
+ export declare function bridgeUsdcToArbitrum(params: Omit<BridgeUsdcParams, "destination"> & {
51
+ destination: Omit<BridgeUsdcParams["destination"], "chain"> & {
52
+ chain?: BridgeChainIdentifier;
53
+ };
54
+ }): Promise<BridgeResult>;
55
+ /**
56
+ * Estimate CCTPv2 bridge costs (protocol fee + gas on source and destination)
57
+ * without executing anything. Requires an adapter on both sides because gas
58
+ * estimation depends on the specific wallet/account.
59
+ */
60
+ export declare function estimateUsdcBridgeFees(params: Omit<BridgeUsdcParams, "onEvent" | "onApprove" | "onBurn" | "onAttestation" | "onMint">): Promise<EstimateResult>;
61
+ export {};
62
+ //# sourceMappingURL=bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/cctp-bridge/bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EAEjB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,cAAc,EACpB,MAAM,wBAAwB,CAAC;AAEhC,KAAK,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC;AAGxD,KAAK,kBAAkB,GAAG,GAAG,CAAC;AAE9B,MAAM,WAAW,gBAAgB;IAC/B,mDAAmD;IACnD,MAAM,EAAE;QACN,OAAO,EAAE,gBAAgB,CAAC;QAC1B,KAAK,EAAE,qBAAqB,CAAC;QAC7B,yDAAyD;QACzD,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF;;;OAGG;IACH,WAAW,EAAE;QACX,OAAO,EAAE,gBAAgB,CAAC;QAC1B,KAAK,EAAE,qBAAqB,CAAC;QAC7B,yDAAyD;QACzD,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,8DAA8D;QAC9D,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC9C,6CAA6C;IAC7C,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAChD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC7C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACpD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAC9C;AAED;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,YAAY,CAAC,CAIvB;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,GAAG;IAC9C,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC,GAAG;QAC5D,KAAK,CAAC,EAAE,qBAAqB,CAAC;KAC/B,CAAC;CACH,GACA,OAAO,CAAC,YAAY,CAAC,CAQvB;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,IAAI,CACV,gBAAgB,EAChB,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,eAAe,GAAG,QAAQ,CAChE,GACA,OAAO,CAAC,cAAc,CAAC,CAGzB"}
@@ -0,0 +1,74 @@
1
+ import { BridgeChain, BridgeKit, } from "@circle-fin/bridge-kit";
2
+ /**
3
+ * Bridge USDC cross-chain via Circle CCTPv2.
4
+ *
5
+ * Runs the full approve → burn → attest → mint flow in one call. Returns a
6
+ * `BridgeResult` whose `state` is `'success'` or `'error'`; inspect `steps`
7
+ * for per-action details. Recoverable failures can be resumed with
8
+ * `BridgeKit.retry()` — see bridge-kit's retry guide.
9
+ */
10
+ export async function bridgeUsdc(params) {
11
+ const kit = new BridgeKit();
12
+ attachListeners(kit, params);
13
+ return kit.bridge(buildBridgeParams(params));
14
+ }
15
+ /**
16
+ * Bridge USDC from any CCTPv2-supported chain into Arbitrum.
17
+ *
18
+ * Convenience for the common Lendaswap flow: land USDC on Arbitrum so the
19
+ * existing Arbitrum USDC → BTC HTLC swap can run against it.
20
+ */
21
+ export async function bridgeUsdcToArbitrum(params) {
22
+ return bridgeUsdc({
23
+ ...params,
24
+ destination: {
25
+ ...params.destination,
26
+ chain: params.destination.chain ?? BridgeChain.Arbitrum,
27
+ },
28
+ });
29
+ }
30
+ /**
31
+ * Estimate CCTPv2 bridge costs (protocol fee + gas on source and destination)
32
+ * without executing anything. Requires an adapter on both sides because gas
33
+ * estimation depends on the specific wallet/account.
34
+ */
35
+ export async function estimateUsdcBridgeFees(params) {
36
+ const kit = new BridgeKit();
37
+ return kit.estimate(buildBridgeParams(params));
38
+ }
39
+ function buildBridgeParams(params) {
40
+ const from = {
41
+ adapter: params.source.adapter,
42
+ chain: params.source.chain,
43
+ ...(params.source.address ? { address: params.source.address } : {}),
44
+ };
45
+ const to = {
46
+ adapter: params.destination.adapter,
47
+ chain: params.destination.chain,
48
+ ...(params.destination.address
49
+ ? { address: params.destination.address }
50
+ : {}),
51
+ ...(params.destination.recipientAddress
52
+ ? { recipientAddress: params.destination.recipientAddress }
53
+ : {}),
54
+ };
55
+ return {
56
+ from,
57
+ to,
58
+ amount: params.amount,
59
+ ...(params.config ? { config: params.config } : {}),
60
+ };
61
+ }
62
+ function attachListeners(kit, params) {
63
+ if (params.onEvent)
64
+ kit.on("*", params.onEvent);
65
+ if (params.onApprove)
66
+ kit.on("approve", params.onApprove);
67
+ if (params.onBurn)
68
+ kit.on("burn", params.onBurn);
69
+ if (params.onAttestation)
70
+ kit.on("fetchAttestation", params.onAttestation);
71
+ if (params.onMint)
72
+ kit.on("mint", params.onMint);
73
+ }
74
+ //# sourceMappingURL=bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/cctp-bridge/bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAGX,SAAS,GAIV,MAAM,wBAAwB,CAAC;AAuChC;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAwB;IAExB,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC;IAC5B,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAIC;IAED,OAAO,UAAU,CAAC;QAChB,GAAG,MAAM;QACT,WAAW,EAAE;YACX,GAAG,MAAM,CAAC,WAAW;YACrB,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,QAAQ;SACxD;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAGC;IAED,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC;IAC5B,OAAO,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAwB;IACjD,MAAM,IAAI,GAAG;QACX,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;QAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK;QAC1B,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7C,CAAC;IAE1B,MAAM,EAAE,GAAG;QACT,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO;QACnC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK;QAC/B,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO;YAC5B,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE;YACzC,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB;YACrC,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,gBAAgB,EAAE;YAC3D,CAAC,CAAC,EAAE,CAAC;KACc,CAAC;IAExB,OAAO;QACL,IAAI;QACJ,EAAE;QACF,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpD,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,GAAc,EAAE,MAAwB;IAC/D,IAAI,MAAM,CAAC,OAAO;QAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,MAAM,CAAC,SAAS;QAAE,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAC1D,IAAI,MAAM,CAAC,MAAM;QAAE,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACjD,IAAI,MAAM,CAAC,aAAa;QAAE,GAAG,CAAC,EAAE,CAAC,kBAAkB,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IAC3E,IAAI,MAAM,CAAC,MAAM;QAAE,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * CCTP bridge (source-side) — wraps Circle's @circle-fin/bridge-kit.
3
+ *
4
+ * Used for bridging USDC from any CCTPv2-supported chain into Arbitrum,
5
+ * so it can feed into an Arbitrum USDC → BTC swap. Exposed as a subpath
6
+ * export so bridge-kit + its viem adapter stay optional peer deps; consumers
7
+ * that don't import from `@lendasat/lendaswap-sdk-pure/cctp-bridge` don't
8
+ * pay the bundle cost.
9
+ *
10
+ * Attestation tracking for the *target* side of an existing swap (Circle's
11
+ * forwarding service) still lives in `../cctp` — that flow isn't what
12
+ * bridge-kit drives.
13
+ */
14
+ export type { AdapterContext, BridgeChainIdentifier, BridgeConfig, BridgeParams, EstimateResult, } from "@circle-fin/bridge-kit";
15
+ export { BridgeChain, BridgeKit, type BridgeResult, TransferSpeed, } from "@circle-fin/bridge-kit";
16
+ export { type BridgeUsdcParams, bridgeUsdc, bridgeUsdcToArbitrum, estimateUsdcBridgeFees, } from "./bridge.js";
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cctp-bridge/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,cAAc,GACf,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,WAAW,EACX,SAAS,EACT,KAAK,YAAY,EACjB,aAAa,GACd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,KAAK,gBAAgB,EACrB,UAAU,EACV,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * CCTP bridge (source-side) — wraps Circle's @circle-fin/bridge-kit.
3
+ *
4
+ * Used for bridging USDC from any CCTPv2-supported chain into Arbitrum,
5
+ * so it can feed into an Arbitrum USDC → BTC swap. Exposed as a subpath
6
+ * export so bridge-kit + its viem adapter stay optional peer deps; consumers
7
+ * that don't import from `@lendasat/lendaswap-sdk-pure/cctp-bridge` don't
8
+ * pay the bundle cost.
9
+ *
10
+ * Attestation tracking for the *target* side of an existing swap (Circle's
11
+ * forwarding service) still lives in `../cctp` — that flow isn't what
12
+ * bridge-kit drives.
13
+ */
14
+ export { BridgeChain, BridgeKit, TransferSpeed, } from "@circle-fin/bridge-kit";
15
+ export { bridgeUsdc, bridgeUsdcToArbitrum, estimateUsdcBridgeFees, } from "./bridge.js";
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cctp-bridge/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAUH,OAAO,EACL,WAAW,EACX,SAAS,EAET,aAAa,GACd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,UAAU,EACV,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,aAAa,CAAC"}