@lendasat/lendaswap-sdk-pure 0.2.42 → 0.2.44

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 (252) hide show
  1. package/dist/_esm-7KJOBTZC.js +3660 -0
  2. package/dist/_esm-7KJOBTZC.js.map +1 -0
  3. package/dist/_esm-UGRDSVEV.cjs +3662 -0
  4. package/dist/_esm-UGRDSVEV.cjs.map +1 -0
  5. package/dist/api/client.d.ts +0 -4
  6. package/dist/api/client.d.ts.map +1 -1
  7. package/dist/base-2KYNAFR3.cjs +109 -0
  8. package/dist/base-2KYNAFR3.cjs.map +1 -0
  9. package/dist/base-B6OGU65B.js +7 -0
  10. package/dist/base-B6OGU65B.js.map +1 -0
  11. package/dist/ccip-MPMAZOUF.js +5 -0
  12. package/dist/ccip-MPMAZOUF.js.map +1 -0
  13. package/dist/ccip-PD37NJHA.cjs +26 -0
  14. package/dist/ccip-PD37NJHA.cjs.map +1 -0
  15. package/dist/cctp-bridge/index.cjs +67 -0
  16. package/dist/cctp-bridge/index.cjs.map +1 -0
  17. package/dist/cctp-bridge/index.js +51 -15
  18. package/dist/cctp-bridge/index.js.map +1 -1
  19. package/dist/cctp-inbound/client.d.ts +21 -19
  20. package/dist/cctp-inbound/client.d.ts.map +1 -1
  21. package/dist/cctp-inbound/smartAccount.d.ts +21 -19
  22. package/dist/cctp-inbound/smartAccount.d.ts.map +1 -1
  23. package/dist/chunk-3JWT4OW2.js +369 -0
  24. package/dist/chunk-3JWT4OW2.js.map +1 -0
  25. package/dist/chunk-A4GKKURK.cjs +430 -0
  26. package/dist/chunk-A4GKKURK.cjs.map +1 -0
  27. package/dist/chunk-BZU3R5DJ.cjs +554 -0
  28. package/dist/chunk-BZU3R5DJ.cjs.map +1 -0
  29. package/dist/chunk-C4YXYD24.js +418 -0
  30. package/dist/chunk-C4YXYD24.js.map +1 -0
  31. package/dist/chunk-CZNQYFDP.js +6141 -0
  32. package/dist/chunk-CZNQYFDP.js.map +1 -0
  33. package/dist/chunk-DKTFDGIU.js +2207 -0
  34. package/dist/chunk-DKTFDGIU.js.map +1 -0
  35. package/dist/chunk-DNSJDKTP.cjs +96 -0
  36. package/dist/chunk-DNSJDKTP.cjs.map +1 -0
  37. package/dist/chunk-EPKFLKTM.js +47093 -0
  38. package/dist/chunk-EPKFLKTM.js.map +1 -0
  39. package/dist/chunk-JBVKWKD4.cjs +50 -0
  40. package/dist/chunk-JBVKWKD4.cjs.map +1 -0
  41. package/dist/chunk-NPFJAXKV.js +551 -0
  42. package/dist/chunk-NPFJAXKV.js.map +1 -0
  43. package/dist/chunk-PKDJZJMV.cjs +2214 -0
  44. package/dist/chunk-PKDJZJMV.cjs.map +1 -0
  45. package/dist/chunk-PLDDJCW6.js +43 -0
  46. package/dist/chunk-PLDDJCW6.js.map +1 -0
  47. package/dist/chunk-RIOT5VOJ.cjs +47240 -0
  48. package/dist/chunk-RIOT5VOJ.cjs.map +1 -0
  49. package/dist/chunk-WVZSHRV7.cjs +431 -0
  50. package/dist/chunk-WVZSHRV7.cjs.map +1 -0
  51. package/dist/chunk-YEZOPVAH.js +86 -0
  52. package/dist/chunk-YEZOPVAH.js.map +1 -0
  53. package/dist/chunk-YLWPBHMV.cjs +6311 -0
  54. package/dist/chunk-YLWPBHMV.cjs.map +1 -0
  55. package/dist/client.d.ts +68 -1
  56. package/dist/client.d.ts.map +1 -1
  57. package/dist/compose-quote.d.ts +77 -0
  58. package/dist/compose-quote.d.ts.map +1 -0
  59. package/dist/delegate.cjs +23 -0
  60. package/dist/delegate.cjs.map +1 -0
  61. package/dist/delegate.js +5 -269
  62. package/dist/delegate.js.map +1 -1
  63. package/dist/dist-NE2R4YCX.js +5 -0
  64. package/dist/dist-NE2R4YCX.js.map +1 -0
  65. package/dist/dist-VEHYC67F.cjs +550 -0
  66. package/dist/dist-VEHYC67F.cjs.map +1 -0
  67. package/dist/esplora.d.ts +14 -0
  68. package/dist/esplora.d.ts.map +1 -1
  69. package/dist/generated/api.d.ts +235 -38
  70. package/dist/generated/api.d.ts.map +1 -1
  71. package/dist/index.cjs +35461 -0
  72. package/dist/index.cjs.map +1 -0
  73. package/dist/index.d.ts +2 -1
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/index.js +35309 -32
  76. package/dist/index.js.map +1 -1
  77. package/dist/mine.wasm-JJEJEODX.js +9 -0
  78. package/dist/mine.wasm-JJEJEODX.js.map +1 -0
  79. package/dist/mine.wasm-Z3ORSBKN.cjs +12 -0
  80. package/dist/mine.wasm-Z3ORSBKN.cjs.map +1 -0
  81. package/dist/node.cjs +166 -0
  82. package/dist/node.cjs.map +1 -0
  83. package/dist/node.js +157 -18
  84. package/dist/node.js.map +1 -1
  85. package/dist/secp256k1-PJCSE4N6.cjs +30 -0
  86. package/dist/secp256k1-PJCSE4N6.cjs.map +1 -0
  87. package/dist/secp256k1-VZNNVEPN.js +5 -0
  88. package/dist/secp256k1-VZNNVEPN.js.map +1 -0
  89. package/dist/tokens.d.ts +2 -1
  90. package/dist/tokens.d.ts.map +1 -1
  91. package/dist/types/chain-config.d.ts +50 -0
  92. package/dist/types/chain-config.d.ts.map +1 -0
  93. package/dist/types/chain.d.ts +11 -0
  94. package/dist/types/chain.d.ts.map +1 -0
  95. package/dist/types/dex-quote.d.ts +85 -0
  96. package/dist/types/dex-quote.d.ts.map +1 -0
  97. package/dist/types/index.d.ts +15 -0
  98. package/dist/types/index.d.ts.map +1 -0
  99. package/dist/types/network-fees.d.ts +43 -0
  100. package/dist/types/network-fees.d.ts.map +1 -0
  101. package/dist/types/quote.d.ts +87 -0
  102. package/dist/types/quote.d.ts.map +1 -0
  103. package/dist/types/swap-pairs.d.ts +37 -0
  104. package/dist/types/swap-pairs.d.ts.map +1 -0
  105. package/dist/version.d.ts +2 -2
  106. package/dist/wallet-SCGRX3EN.js +4 -0
  107. package/dist/wallet-SCGRX3EN.js.map +1 -0
  108. package/dist/wallet-SZJDXAY7.cjs +45 -0
  109. package/dist/wallet-SZJDXAY7.cjs.map +1 -0
  110. package/package.json +23 -10
  111. package/dist/api/client.js +0 -13
  112. package/dist/api/client.js.map +0 -1
  113. package/dist/arkade-network.js +0 -40
  114. package/dist/arkade-network.js.map +0 -1
  115. package/dist/arkade.js +0 -61
  116. package/dist/arkade.js.map +0 -1
  117. package/dist/cctp/attestation.js +0 -149
  118. package/dist/cctp/attestation.js.map +0 -1
  119. package/dist/cctp/constants.js +0 -92
  120. package/dist/cctp/constants.js.map +0 -1
  121. package/dist/cctp/fee.js +0 -70
  122. package/dist/cctp/fee.js.map +0 -1
  123. package/dist/cctp/index.js +0 -13
  124. package/dist/cctp/index.js.map +0 -1
  125. package/dist/cctp/types.js +0 -5
  126. package/dist/cctp/types.js.map +0 -1
  127. package/dist/cctp/utils.js +0 -91
  128. package/dist/cctp/utils.js.map +0 -1
  129. package/dist/cctp-bridge/bridge.js +0 -74
  130. package/dist/cctp-bridge/bridge.js.map +0 -1
  131. package/dist/cctp-inbound/approveAndBurn.js +0 -95
  132. package/dist/cctp-inbound/approveAndBurn.js.map +0 -1
  133. package/dist/cctp-inbound/burn.js +0 -66
  134. package/dist/cctp-inbound/burn.js.map +0 -1
  135. package/dist/cctp-inbound/chainMap.js +0 -128
  136. package/dist/cctp-inbound/chainMap.js.map +0 -1
  137. package/dist/cctp-inbound/client.js +0 -125
  138. package/dist/cctp-inbound/client.js.map +0 -1
  139. package/dist/cctp-inbound/eip2612.js +0 -95
  140. package/dist/cctp-inbound/eip2612.js.map +0 -1
  141. package/dist/cctp-inbound/evmSignerAdapter.js +0 -82
  142. package/dist/cctp-inbound/evmSignerAdapter.js.map +0 -1
  143. package/dist/cctp-inbound/fundSwap.js +0 -95
  144. package/dist/cctp-inbound/fundSwap.js.map +0 -1
  145. package/dist/cctp-inbound/index.js +0 -34
  146. package/dist/cctp-inbound/index.js.map +0 -1
  147. package/dist/cctp-inbound/permit2.js +0 -32
  148. package/dist/cctp-inbound/permit2.js.map +0 -1
  149. package/dist/cctp-inbound/preflight.js +0 -84
  150. package/dist/cctp-inbound/preflight.js.map +0 -1
  151. package/dist/cctp-inbound/recover.js +0 -177
  152. package/dist/cctp-inbound/recover.js.map +0 -1
  153. package/dist/cctp-inbound/smartAccount.js +0 -117
  154. package/dist/cctp-inbound/smartAccount.js.map +0 -1
  155. package/dist/cctp-inbound/submit.js +0 -136
  156. package/dist/cctp-inbound/submit.js.map +0 -1
  157. package/dist/cctp-inbound/types.js +0 -5
  158. package/dist/cctp-inbound/types.js.map +0 -1
  159. package/dist/cctp-inbound/userOp.js +0 -151
  160. package/dist/cctp-inbound/userOp.js.map +0 -1
  161. package/dist/client.js +0 -4126
  162. package/dist/client.js.map +0 -1
  163. package/dist/create/arkade-to-lightning.js +0 -76
  164. package/dist/create/arkade-to-lightning.js.map +0 -1
  165. package/dist/create/arkade.js +0 -86
  166. package/dist/create/arkade.js.map +0 -1
  167. package/dist/create/bitcoin-to-arkade.js +0 -76
  168. package/dist/create/bitcoin-to-arkade.js.map +0 -1
  169. package/dist/create/bitcoin.js +0 -77
  170. package/dist/create/bitcoin.js.map +0 -1
  171. package/dist/create/evm-to-arkade.js +0 -80
  172. package/dist/create/evm-to-arkade.js.map +0 -1
  173. package/dist/create/evm-to-bitcoin.js +0 -82
  174. package/dist/create/evm-to-bitcoin.js.map +0 -1
  175. package/dist/create/evm-to-lightning.js +0 -89
  176. package/dist/create/evm-to-lightning.js.map +0 -1
  177. package/dist/create/index.js +0 -21
  178. package/dist/create/index.js.map +0 -1
  179. package/dist/create/lightning-to-arkade.js +0 -69
  180. package/dist/create/lightning-to-arkade.js.map +0 -1
  181. package/dist/create/lightning.js +0 -61
  182. package/dist/create/lightning.js.map +0 -1
  183. package/dist/create/retry.js +0 -71
  184. package/dist/create/retry.js.map +0 -1
  185. package/dist/create/types.js +0 -5
  186. package/dist/create/types.js.map +0 -1
  187. package/dist/escrow/index.js +0 -115
  188. package/dist/escrow/index.js.map +0 -1
  189. package/dist/esplora.js +0 -47
  190. package/dist/esplora.js.map +0 -1
  191. package/dist/evm/coordinator.js +0 -714
  192. package/dist/evm/coordinator.js.map +0 -1
  193. package/dist/evm/htlc.js +0 -278
  194. package/dist/evm/htlc.js.map +0 -1
  195. package/dist/evm/index.js +0 -10
  196. package/dist/evm/index.js.map +0 -1
  197. package/dist/evm/signing.js +0 -70
  198. package/dist/evm/signing.js.map +0 -1
  199. package/dist/evm/wallet.js +0 -133
  200. package/dist/evm/wallet.js.map +0 -1
  201. package/dist/generated/api.js +0 -6
  202. package/dist/generated/api.js.map +0 -1
  203. package/dist/logging.js +0 -130
  204. package/dist/logging.js.map +0 -1
  205. package/dist/price-calculations.js +0 -135
  206. package/dist/price-calculations.js.map +0 -1
  207. package/dist/redeem/arkade.js +0 -416
  208. package/dist/redeem/arkade.js.map +0 -1
  209. package/dist/redeem/ethereum.js +0 -206
  210. package/dist/redeem/ethereum.js.map +0 -1
  211. package/dist/redeem/gasless.js +0 -73
  212. package/dist/redeem/gasless.js.map +0 -1
  213. package/dist/redeem/index.js +0 -189
  214. package/dist/redeem/index.js.map +0 -1
  215. package/dist/redeem/types.js +0 -36
  216. package/dist/redeem/types.js.map +0 -1
  217. package/dist/refund/arkade.js +0 -200
  218. package/dist/refund/arkade.js.map +0 -1
  219. package/dist/refund/collab-arkade-evm.js +0 -307
  220. package/dist/refund/collab-arkade-evm.js.map +0 -1
  221. package/dist/refund/collab-arkade-lightning.js +0 -245
  222. package/dist/refund/collab-arkade-lightning.js.map +0 -1
  223. package/dist/refund/index.js +0 -12
  224. package/dist/refund/index.js.map +0 -1
  225. package/dist/refund/onchain.js +0 -366
  226. package/dist/refund/onchain.js.map +0 -1
  227. package/dist/signer/index.js +0 -249
  228. package/dist/signer/index.js.map +0 -1
  229. package/dist/storage/idb.js +0 -236
  230. package/dist/storage/idb.js.map +0 -1
  231. package/dist/storage/index.js +0 -98
  232. package/dist/storage/index.js.map +0 -1
  233. package/dist/storage/sqlite.js +0 -206
  234. package/dist/storage/sqlite.js.map +0 -1
  235. package/dist/storage/types.js +0 -9
  236. package/dist/storage/types.js.map +0 -1
  237. package/dist/tokens.js +0 -322
  238. package/dist/tokens.js.map +0 -1
  239. package/dist/usd-price.js +0 -96
  240. package/dist/usd-price.js.map +0 -1
  241. package/dist/usdt0-bridge/constants.js +0 -71
  242. package/dist/usdt0-bridge/constants.js.map +0 -1
  243. package/dist/usdt0-bridge/index.js +0 -11
  244. package/dist/usdt0-bridge/index.js.map +0 -1
  245. package/dist/usdt0-bridge/tracking.js +0 -123
  246. package/dist/usdt0-bridge/tracking.js.map +0 -1
  247. package/dist/usdt0-bridge/utils.js +0 -51
  248. package/dist/usdt0-bridge/utils.js.map +0 -1
  249. package/dist/version.js +0 -6
  250. package/dist/version.js.map +0 -1
  251. package/dist/ws.js +0 -145
  252. package/dist/ws.js.map +0 -1
@@ -1,151 +0,0 @@
1
- /**
2
- * Compose the `executeBatch` calldata for a CCTP-inbound UserOperation.
3
- *
4
- * The smart account's batch atomically runs:
5
- * 1. `MessageTransmitter.receiveMessage(message, attestation)` — mints
6
- * USDC to the smart account.
7
- * 2. `USDC.approve(Permit2, max)` — idempotent.
8
- * 3. `HTLCCoordinator.executeAndCreateWithPermit2(...)` — uses an
9
- * ERC-1271 signature from the smart account as `depositor`.
10
- *
11
- * All three calls execute with `msg.sender = smartAccount`, so CCTPv2's
12
- * `destinationCaller` gate (pinned to the same address on the burn) is
13
- * satisfied.
14
- */
15
- import { encodeAbiParameters, encodeFunctionData, isErc6492Signature, maxUint256, parseAbi, parseErc6492Signature, } from "viem";
16
- import { buildPermit2TypedData } from "../evm/coordinator.js";
17
- /** MessageTransmitter v2 — same on every CCTPv2 EVM chain. */
18
- const MESSAGE_TRANSMITTER_V2 = "0x81D40F21F12A8F0E3252Bccb954D722d4c464B64";
19
- /** Canonical Permit2 deployment — same on all EVM chains. */
20
- const PERMIT2_ADDRESS = "0x000000000022D473030F116dDEE9F6B43aC78BA3";
21
- const MESSAGE_TRANSMITTER_ABI = parseAbi([
22
- "function receiveMessage(bytes message, bytes attestation) external returns (bool)",
23
- ]);
24
- const ERC20_APPROVE_ABI = parseAbi([
25
- "function approve(address spender, uint256 amount) external returns (bool)",
26
- ]);
27
- const HTLC_COORDINATOR_ABI = parseAbi([
28
- "struct TokenPermissions { address token; uint256 amount; }",
29
- "struct PermitTransferFrom { TokenPermissions permitted; uint256 nonce; uint256 deadline; }",
30
- "struct Call { address target; uint256 value; bytes callData; }",
31
- "function executeAndCreateWithPermit2(Call[] calls, bytes32 preimageHash, address token, address claimAddress, uint256 timelock, address depositor, PermitTransferFrom permit, bytes signature) external",
32
- ]);
33
- /**
34
- * Returns the list of calls the smart account's `executeBatch` will run.
35
- * The Permit2 signature is produced via the Kernel smart account's
36
- * `signTypedData` — Kernel wraps the hash before signing so the sig
37
- * passes its own ERC-1271 verification once the account is deployed.
38
- */
39
- export async function buildCctpInboundBatch(params) {
40
- const { server, smartAccountAddress, signTypedData, cctpMessage, cctpAttestation, chainId, skipReceiveMessage, } = params;
41
- const calls = [];
42
- // 1. receiveMessage — skip if USDC already landed (front-runner / retry).
43
- if (!skipReceiveMessage) {
44
- const receiveMessageData = encodeFunctionData({
45
- abi: MESSAGE_TRANSMITTER_ABI,
46
- functionName: "receiveMessage",
47
- args: [cctpMessage, cctpAttestation],
48
- });
49
- calls.push({
50
- to: MESSAGE_TRANSMITTER_V2,
51
- data: receiveMessageData,
52
- value: 0n,
53
- });
54
- }
55
- // 2. USDC.approve(Permit2, max) — idempotent; lets Permit2 pull from us.
56
- const approveData = encodeFunctionData({
57
- abi: ERC20_APPROVE_ABI,
58
- functionName: "approve",
59
- args: [PERMIT2_ADDRESS, maxUint256],
60
- });
61
- calls.push({
62
- to: server.source_token_address,
63
- data: approveData,
64
- value: 0n,
65
- });
66
- // 3. Permit2 witness signature, produced via the smart account.
67
- // Kernel's signTypedData applies its message-marker wrap so the
68
- // resulting sig passes ERC-1271 when Permit2 calls back into the
69
- // (by then-deployed) account.
70
- const nonceBytes = new Uint8Array(32);
71
- crypto.getRandomValues(nonceBytes);
72
- const permit2Nonce = BigInt(`0x${Array.from(nonceBytes)
73
- .map((b) => b.toString(16).padStart(2, "0"))
74
- .join("")}`);
75
- const permit2Deadline = BigInt(Math.floor(Date.now() / 1000) + 30 * 60);
76
- const sourceAmount = BigInt(server.source_amount);
77
- const typedData = buildPermit2TypedData({
78
- chainId,
79
- coordinatorAddress: server.coordinator_address,
80
- sourceToken: server.source_token_address,
81
- sourceAmount,
82
- preimageHash: server.preimage_hash,
83
- lockToken: server.lock_token_address,
84
- claimAddress: server.claim_address,
85
- refundAddress: server.coordinator_address,
86
- timelock: server.timelock,
87
- callsHash: server.calls_hash,
88
- nonce: permit2Nonce,
89
- deadline: permit2Deadline,
90
- });
91
- const rawSignature = (await signTypedData({
92
- domain: typedData.domain,
93
- types: typedData.types,
94
- primaryType: typedData.primaryType,
95
- message: typedData.message,
96
- }));
97
- // viem's `toSmartAccount` auto-wraps `signTypedData` output in ERC-6492
98
- // whenever the account's factory/factoryData are non-empty. Permit2 is
99
- // not ERC-6492-aware, so strip the wrapper and pass the raw Kernel
100
- // signature. The account will be deployed by factoryData during the
101
- // UserOp *before* Permit2 verifies, so Permit2 takes the ERC-1271
102
- // path and Kernel's `isValidSignature` accepts the raw sig.
103
- const permit2Signature = isErc6492Signature(rawSignature)
104
- ? parseErc6492Signature(rawSignature).signature
105
- : rawSignature;
106
- // 4. executeAndCreateWithPermit2
107
- const dexCalls = server.calls.map((c) => ({
108
- target: c.target,
109
- value: BigInt(c.value),
110
- callData: c.call_data,
111
- }));
112
- const executeData = encodeFunctionData({
113
- abi: HTLC_COORDINATOR_ABI,
114
- functionName: "executeAndCreateWithPermit2",
115
- args: [
116
- dexCalls,
117
- server.preimage_hash,
118
- server.lock_token_address,
119
- server.claim_address,
120
- BigInt(server.timelock),
121
- smartAccountAddress,
122
- {
123
- permitted: {
124
- token: server.source_token_address,
125
- amount: sourceAmount,
126
- },
127
- nonce: permit2Nonce,
128
- deadline: permit2Deadline,
129
- },
130
- permit2Signature,
131
- ],
132
- });
133
- calls.push({
134
- to: server.coordinator_address,
135
- data: executeData,
136
- value: 0n,
137
- });
138
- return {
139
- calls,
140
- permit2Nonce,
141
- permit2Deadline,
142
- };
143
- }
144
- /**
145
- * Convert an EVM address (20 bytes) into the bytes32 form CCTPv2's
146
- * `depositForBurn` expects for `mintRecipient` and `destinationCaller`.
147
- */
148
- export function addressToBytes32Hex(address) {
149
- return encodeAbiParameters([{ type: "address" }], [address]);
150
- }
151
- //# sourceMappingURL=userOp.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"userOp.js","sourceRoot":"","sources":["../../src/cctp-inbound/userOp.ts"],"names":[],"mappings":"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"}