@avalabs/fusion-sdk 0.1.0

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 (398) hide show
  1. package/LICENSE +9 -0
  2. package/README.md +264 -0
  3. package/dist/_utils/chain.cjs +2 -0
  4. package/dist/_utils/chain.cjs.map +1 -0
  5. package/dist/_utils/chain.js +2 -0
  6. package/dist/_utils/chain.js.map +1 -0
  7. package/dist/_utils/math.cjs +2 -0
  8. package/dist/_utils/math.cjs.map +1 -0
  9. package/dist/_utils/math.js +2 -0
  10. package/dist/_utils/math.js.map +1 -0
  11. package/dist/_utils/merge-assets.cjs +2 -0
  12. package/dist/_utils/merge-assets.cjs.map +1 -0
  13. package/dist/_utils/merge-assets.js +2 -0
  14. package/dist/_utils/merge-assets.js.map +1 -0
  15. package/dist/_virtual/_rolldown/runtime.cjs +1 -0
  16. package/dist/constants.cjs +2 -0
  17. package/dist/constants.cjs.map +1 -0
  18. package/dist/constants.d.cts +102 -0
  19. package/dist/constants.d.ts +102 -0
  20. package/dist/constants.js +2 -0
  21. package/dist/constants.js.map +1 -0
  22. package/dist/errors.cjs +2 -0
  23. package/dist/errors.cjs.map +1 -0
  24. package/dist/errors.d.cts +115 -0
  25. package/dist/errors.d.ts +115 -0
  26. package/dist/errors.js +2 -0
  27. package/dist/errors.js.map +1 -0
  28. package/dist/mod.cjs +1 -0
  29. package/dist/mod.d.cts +19 -0
  30. package/dist/mod.d.ts +19 -0
  31. package/dist/mod.js +1 -0
  32. package/dist/quoter/_utils.cjs +2 -0
  33. package/dist/quoter/_utils.cjs.map +1 -0
  34. package/dist/quoter/_utils.js +2 -0
  35. package/dist/quoter/_utils.js.map +1 -0
  36. package/dist/quoter/constants.cjs +2 -0
  37. package/dist/quoter/constants.cjs.map +1 -0
  38. package/dist/quoter/constants.js +2 -0
  39. package/dist/quoter/constants.js.map +1 -0
  40. package/dist/quoter/quoter.cjs +2 -0
  41. package/dist/quoter/quoter.cjs.map +1 -0
  42. package/dist/quoter/quoter.d.cts +31 -0
  43. package/dist/quoter/quoter.d.ts +34 -0
  44. package/dist/quoter/quoter.js +2 -0
  45. package/dist/quoter/quoter.js.map +1 -0
  46. package/dist/transfer-manager.cjs +2 -0
  47. package/dist/transfer-manager.cjs.map +1 -0
  48. package/dist/transfer-manager.d.cts +17 -0
  49. package/dist/transfer-manager.d.ts +17 -0
  50. package/dist/transfer-manager.js +2 -0
  51. package/dist/transfer-manager.js.map +1 -0
  52. package/dist/transfer-service/_abis.cjs +2 -0
  53. package/dist/transfer-service/_abis.cjs.map +1 -0
  54. package/dist/transfer-service/_abis.js +2 -0
  55. package/dist/transfer-service/_abis.js.map +1 -0
  56. package/dist/transfer-service/_evm-gas.cjs +2 -0
  57. package/dist/transfer-service/_evm-gas.cjs.map +1 -0
  58. package/dist/transfer-service/_evm-gas.js +2 -0
  59. package/dist/transfer-service/_evm-gas.js.map +1 -0
  60. package/dist/transfer-service/_tracking-utilities.cjs +2 -0
  61. package/dist/transfer-service/_tracking-utilities.cjs.map +1 -0
  62. package/dist/transfer-service/_tracking-utilities.js +2 -0
  63. package/dist/transfer-service/_tracking-utilities.js.map +1 -0
  64. package/dist/transfer-service/_transfer-utilities.cjs +2 -0
  65. package/dist/transfer-service/_transfer-utilities.cjs.map +1 -0
  66. package/dist/transfer-service/_transfer-utilities.js +2 -0
  67. package/dist/transfer-service/_transfer-utilities.js.map +1 -0
  68. package/dist/transfer-service/_utils.cjs +2 -0
  69. package/dist/transfer-service/_utils.cjs.map +1 -0
  70. package/dist/transfer-service/_utils.js +2 -0
  71. package/dist/transfer-service/_utils.js.map +1 -0
  72. package/dist/transfer-service/_warden-config-schema.cjs +2 -0
  73. package/dist/transfer-service/_warden-config-schema.cjs.map +1 -0
  74. package/dist/transfer-service/_warden-config-schema.js +2 -0
  75. package/dist/transfer-service/_warden-config-schema.js.map +1 -0
  76. package/dist/transfer-service/_warden-config.cjs +2 -0
  77. package/dist/transfer-service/_warden-config.cjs.map +1 -0
  78. package/dist/transfer-service/_warden-config.js +2 -0
  79. package/dist/transfer-service/_warden-config.js.map +1 -0
  80. package/dist/transfer-service/avalanche-evm/_constants.cjs +2 -0
  81. package/dist/transfer-service/avalanche-evm/_constants.cjs.map +1 -0
  82. package/dist/transfer-service/avalanche-evm/_constants.js +2 -0
  83. package/dist/transfer-service/avalanche-evm/_constants.js.map +1 -0
  84. package/dist/transfer-service/avalanche-evm/_handlers/analyze-support.cjs +2 -0
  85. package/dist/transfer-service/avalanche-evm/_handlers/analyze-support.cjs.map +1 -0
  86. package/dist/transfer-service/avalanche-evm/_handlers/analyze-support.js +2 -0
  87. package/dist/transfer-service/avalanche-evm/_handlers/analyze-support.js.map +1 -0
  88. package/dist/transfer-service/avalanche-evm/_handlers/estimate-native-fee.cjs +2 -0
  89. package/dist/transfer-service/avalanche-evm/_handlers/estimate-native-fee.cjs.map +1 -0
  90. package/dist/transfer-service/avalanche-evm/_handlers/estimate-native-fee.js +2 -0
  91. package/dist/transfer-service/avalanche-evm/_handlers/estimate-native-fee.js.map +1 -0
  92. package/dist/transfer-service/avalanche-evm/_handlers/get-assets.cjs +2 -0
  93. package/dist/transfer-service/avalanche-evm/_handlers/get-assets.cjs.map +1 -0
  94. package/dist/transfer-service/avalanche-evm/_handlers/get-assets.js +2 -0
  95. package/dist/transfer-service/avalanche-evm/_handlers/get-assets.js.map +1 -0
  96. package/dist/transfer-service/avalanche-evm/_handlers/get-minimum-transfer-amount.cjs +2 -0
  97. package/dist/transfer-service/avalanche-evm/_handlers/get-minimum-transfer-amount.cjs.map +1 -0
  98. package/dist/transfer-service/avalanche-evm/_handlers/get-minimum-transfer-amount.js +2 -0
  99. package/dist/transfer-service/avalanche-evm/_handlers/get-minimum-transfer-amount.js.map +1 -0
  100. package/dist/transfer-service/avalanche-evm/_handlers/get-supported-chains.cjs +2 -0
  101. package/dist/transfer-service/avalanche-evm/_handlers/get-supported-chains.cjs.map +1 -0
  102. package/dist/transfer-service/avalanche-evm/_handlers/get-supported-chains.js +2 -0
  103. package/dist/transfer-service/avalanche-evm/_handlers/get-supported-chains.js.map +1 -0
  104. package/dist/transfer-service/avalanche-evm/_handlers/stream-quotes.cjs +2 -0
  105. package/dist/transfer-service/avalanche-evm/_handlers/stream-quotes.cjs.map +1 -0
  106. package/dist/transfer-service/avalanche-evm/_handlers/stream-quotes.js +2 -0
  107. package/dist/transfer-service/avalanche-evm/_handlers/stream-quotes.js.map +1 -0
  108. package/dist/transfer-service/avalanche-evm/_handlers/track-transfer.cjs +2 -0
  109. package/dist/transfer-service/avalanche-evm/_handlers/track-transfer.cjs.map +1 -0
  110. package/dist/transfer-service/avalanche-evm/_handlers/track-transfer.js +2 -0
  111. package/dist/transfer-service/avalanche-evm/_handlers/track-transfer.js.map +1 -0
  112. package/dist/transfer-service/avalanche-evm/_handlers/transfer-asset.cjs +2 -0
  113. package/dist/transfer-service/avalanche-evm/_handlers/transfer-asset.cjs.map +1 -0
  114. package/dist/transfer-service/avalanche-evm/_handlers/transfer-asset.js +2 -0
  115. package/dist/transfer-service/avalanche-evm/_handlers/transfer-asset.js.map +1 -0
  116. package/dist/transfer-service/avalanche-evm/_utils/fee.cjs +2 -0
  117. package/dist/transfer-service/avalanche-evm/_utils/fee.cjs.map +1 -0
  118. package/dist/transfer-service/avalanche-evm/_utils/fee.js +2 -0
  119. package/dist/transfer-service/avalanche-evm/_utils/fee.js.map +1 -0
  120. package/dist/transfer-service/avalanche-evm/_utils/get-config.cjs +2 -0
  121. package/dist/transfer-service/avalanche-evm/_utils/get-config.cjs.map +1 -0
  122. package/dist/transfer-service/avalanche-evm/_utils/get-config.js +2 -0
  123. package/dist/transfer-service/avalanche-evm/_utils/get-config.js.map +1 -0
  124. package/dist/transfer-service/avalanche-evm/_utils/transfer-data.cjs +2 -0
  125. package/dist/transfer-service/avalanche-evm/_utils/transfer-data.cjs.map +1 -0
  126. package/dist/transfer-service/avalanche-evm/_utils/transfer-data.js +2 -0
  127. package/dist/transfer-service/avalanche-evm/_utils/transfer-data.js.map +1 -0
  128. package/dist/transfer-service/avalanche-evm/_utils/unwrap.cjs +2 -0
  129. package/dist/transfer-service/avalanche-evm/_utils/unwrap.cjs.map +1 -0
  130. package/dist/transfer-service/avalanche-evm/_utils/unwrap.js +2 -0
  131. package/dist/transfer-service/avalanche-evm/_utils/unwrap.js.map +1 -0
  132. package/dist/transfer-service/avalanche-evm/_utils/validations.cjs +2 -0
  133. package/dist/transfer-service/avalanche-evm/_utils/validations.cjs.map +1 -0
  134. package/dist/transfer-service/avalanche-evm/_utils/validations.js +2 -0
  135. package/dist/transfer-service/avalanche-evm/_utils/validations.js.map +1 -0
  136. package/dist/transfer-service/avalanche-evm/_utils/wrap.cjs +2 -0
  137. package/dist/transfer-service/avalanche-evm/_utils/wrap.cjs.map +1 -0
  138. package/dist/transfer-service/avalanche-evm/_utils/wrap.js +2 -0
  139. package/dist/transfer-service/avalanche-evm/_utils/wrap.js.map +1 -0
  140. package/dist/transfer-service/avalanche-evm/avalanche-evm-service.cjs +2 -0
  141. package/dist/transfer-service/avalanche-evm/avalanche-evm-service.cjs.map +1 -0
  142. package/dist/transfer-service/avalanche-evm/avalanche-evm-service.js +2 -0
  143. package/dist/transfer-service/avalanche-evm/avalanche-evm-service.js.map +1 -0
  144. package/dist/transfer-service/fetch-utilities.cjs +4 -0
  145. package/dist/transfer-service/fetch-utilities.cjs.map +1 -0
  146. package/dist/transfer-service/fetch-utilities.js +4 -0
  147. package/dist/transfer-service/fetch-utilities.js.map +1 -0
  148. package/dist/transfer-service/lombard/_schema.cjs +2 -0
  149. package/dist/transfer-service/lombard/_schema.cjs.map +1 -0
  150. package/dist/transfer-service/lombard/_schema.js +2 -0
  151. package/dist/transfer-service/lombard/_schema.js.map +1 -0
  152. package/dist/transfer-service/lombard/_utils/asset.cjs +2 -0
  153. package/dist/transfer-service/lombard/_utils/asset.cjs.map +1 -0
  154. package/dist/transfer-service/lombard/_utils/asset.js +2 -0
  155. package/dist/transfer-service/lombard/_utils/asset.js.map +1 -0
  156. package/dist/transfer-service/lombard/_utils/chain.cjs +2 -0
  157. package/dist/transfer-service/lombard/_utils/chain.cjs.map +1 -0
  158. package/dist/transfer-service/lombard/_utils/chain.js +2 -0
  159. package/dist/transfer-service/lombard/_utils/chain.js.map +1 -0
  160. package/dist/transfer-service/lombard/_utils/fee.cjs +2 -0
  161. package/dist/transfer-service/lombard/_utils/fee.cjs.map +1 -0
  162. package/dist/transfer-service/lombard/_utils/fee.js +2 -0
  163. package/dist/transfer-service/lombard/_utils/fee.js.map +1 -0
  164. package/dist/transfer-service/lombard/_utils/metadata.cjs +2 -0
  165. package/dist/transfer-service/lombard/_utils/metadata.cjs.map +1 -0
  166. package/dist/transfer-service/lombard/_utils/metadata.js +2 -0
  167. package/dist/transfer-service/lombard/_utils/metadata.js.map +1 -0
  168. package/dist/transfer-service/lombard/_utils/utxo.cjs +2 -0
  169. package/dist/transfer-service/lombard/_utils/utxo.cjs.map +1 -0
  170. package/dist/transfer-service/lombard/_utils/utxo.js +2 -0
  171. package/dist/transfer-service/lombard/_utils/utxo.js.map +1 -0
  172. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/analyze-support.cjs +2 -0
  173. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/analyze-support.cjs.map +1 -0
  174. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/analyze-support.js +2 -0
  175. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/analyze-support.js.map +1 -0
  176. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/estimate-native-fee.cjs +2 -0
  177. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/estimate-native-fee.cjs.map +1 -0
  178. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/estimate-native-fee.js +2 -0
  179. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/estimate-native-fee.js.map +1 -0
  180. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/get-assets.cjs +2 -0
  181. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/get-assets.cjs.map +1 -0
  182. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/get-assets.js +2 -0
  183. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/get-assets.js.map +1 -0
  184. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/get-minimum-transfer-amount.cjs +2 -0
  185. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/get-minimum-transfer-amount.cjs.map +1 -0
  186. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/get-minimum-transfer-amount.js +2 -0
  187. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/get-minimum-transfer-amount.js.map +1 -0
  188. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/stream-quotes.cjs +2 -0
  189. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/stream-quotes.cjs.map +1 -0
  190. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/stream-quotes.js +2 -0
  191. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/stream-quotes.js.map +1 -0
  192. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/track-transfer.cjs +2 -0
  193. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/track-transfer.cjs.map +1 -0
  194. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/track-transfer.js +2 -0
  195. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/track-transfer.js.map +1 -0
  196. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/transfer-asset.cjs +2 -0
  197. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/transfer-asset.cjs.map +1 -0
  198. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/transfer-asset.js +2 -0
  199. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/transfer-asset.js.map +1 -0
  200. package/dist/transfer-service/lombard/btc-to-btcb-service.cjs +2 -0
  201. package/dist/transfer-service/lombard/btc-to-btcb-service.cjs.map +1 -0
  202. package/dist/transfer-service/lombard/btc-to-btcb-service.js +2 -0
  203. package/dist/transfer-service/lombard/btc-to-btcb-service.js.map +1 -0
  204. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/analyze-support.cjs +2 -0
  205. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/analyze-support.cjs.map +1 -0
  206. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/analyze-support.js +2 -0
  207. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/analyze-support.js.map +1 -0
  208. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/estimate-native-fee.cjs +2 -0
  209. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/estimate-native-fee.cjs.map +1 -0
  210. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/estimate-native-fee.js +2 -0
  211. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/estimate-native-fee.js.map +1 -0
  212. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/get-assets.cjs +2 -0
  213. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/get-assets.cjs.map +1 -0
  214. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/get-assets.js +2 -0
  215. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/get-assets.js.map +1 -0
  216. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/stream-quotes.cjs +2 -0
  217. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/stream-quotes.cjs.map +1 -0
  218. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/stream-quotes.js +2 -0
  219. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/stream-quotes.js.map +1 -0
  220. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/track-transfer.cjs +2 -0
  221. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/track-transfer.cjs.map +1 -0
  222. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/track-transfer.js +2 -0
  223. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/track-transfer.js.map +1 -0
  224. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/transfer-asset.cjs +2 -0
  225. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/transfer-asset.cjs.map +1 -0
  226. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/transfer-asset.js +2 -0
  227. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/transfer-asset.js.map +1 -0
  228. package/dist/transfer-service/lombard/btcb-to-btc-service.cjs +2 -0
  229. package/dist/transfer-service/lombard/btcb-to-btc-service.cjs.map +1 -0
  230. package/dist/transfer-service/lombard/btcb-to-btc-service.js +2 -0
  231. package/dist/transfer-service/lombard/btcb-to-btc-service.js.map +1 -0
  232. package/dist/transfer-service/lombard/constants.cjs +2 -0
  233. package/dist/transfer-service/lombard/constants.cjs.map +1 -0
  234. package/dist/transfer-service/lombard/constants.js +2 -0
  235. package/dist/transfer-service/lombard/constants.js.map +1 -0
  236. package/dist/transfer-service/markr/_abis/cross-chain-swap-wrapper-abi.cjs +2 -0
  237. package/dist/transfer-service/markr/_abis/cross-chain-swap-wrapper-abi.cjs.map +1 -0
  238. package/dist/transfer-service/markr/_abis/cross-chain-swap-wrapper-abi.js +2 -0
  239. package/dist/transfer-service/markr/_abis/cross-chain-swap-wrapper-abi.js.map +1 -0
  240. package/dist/transfer-service/markr/_abis/swap-wrapper-abi.cjs +2 -0
  241. package/dist/transfer-service/markr/_abis/swap-wrapper-abi.cjs.map +1 -0
  242. package/dist/transfer-service/markr/_abis/swap-wrapper-abi.js +2 -0
  243. package/dist/transfer-service/markr/_abis/swap-wrapper-abi.js.map +1 -0
  244. package/dist/transfer-service/markr/_api.cjs +2 -0
  245. package/dist/transfer-service/markr/_api.cjs.map +1 -0
  246. package/dist/transfer-service/markr/_api.js +2 -0
  247. package/dist/transfer-service/markr/_api.js.map +1 -0
  248. package/dist/transfer-service/markr/_handlers/analyze-support.cjs +2 -0
  249. package/dist/transfer-service/markr/_handlers/analyze-support.cjs.map +1 -0
  250. package/dist/transfer-service/markr/_handlers/analyze-support.js +2 -0
  251. package/dist/transfer-service/markr/_handlers/analyze-support.js.map +1 -0
  252. package/dist/transfer-service/markr/_handlers/estimate-native-fee.cjs +2 -0
  253. package/dist/transfer-service/markr/_handlers/estimate-native-fee.cjs.map +1 -0
  254. package/dist/transfer-service/markr/_handlers/estimate-native-fee.js +2 -0
  255. package/dist/transfer-service/markr/_handlers/estimate-native-fee.js.map +1 -0
  256. package/dist/transfer-service/markr/_handlers/get-assets.cjs +2 -0
  257. package/dist/transfer-service/markr/_handlers/get-assets.cjs.map +1 -0
  258. package/dist/transfer-service/markr/_handlers/get-assets.js +2 -0
  259. package/dist/transfer-service/markr/_handlers/get-assets.js.map +1 -0
  260. package/dist/transfer-service/markr/_handlers/get-minimum-transfer-amount.cjs +2 -0
  261. package/dist/transfer-service/markr/_handlers/get-minimum-transfer-amount.cjs.map +1 -0
  262. package/dist/transfer-service/markr/_handlers/get-minimum-transfer-amount.js +2 -0
  263. package/dist/transfer-service/markr/_handlers/get-minimum-transfer-amount.js.map +1 -0
  264. package/dist/transfer-service/markr/_handlers/stream-quotes.cjs +2 -0
  265. package/dist/transfer-service/markr/_handlers/stream-quotes.cjs.map +1 -0
  266. package/dist/transfer-service/markr/_handlers/stream-quotes.js +2 -0
  267. package/dist/transfer-service/markr/_handlers/stream-quotes.js.map +1 -0
  268. package/dist/transfer-service/markr/_handlers/track-transfer.cjs +2 -0
  269. package/dist/transfer-service/markr/_handlers/track-transfer.cjs.map +1 -0
  270. package/dist/transfer-service/markr/_handlers/track-transfer.js +2 -0
  271. package/dist/transfer-service/markr/_handlers/track-transfer.js.map +1 -0
  272. package/dist/transfer-service/markr/_handlers/transfer-asset.cjs +2 -0
  273. package/dist/transfer-service/markr/_handlers/transfer-asset.cjs.map +1 -0
  274. package/dist/transfer-service/markr/_handlers/transfer-asset.js +2 -0
  275. package/dist/transfer-service/markr/_handlers/transfer-asset.js.map +1 -0
  276. package/dist/transfer-service/markr/_schema.cjs +2 -0
  277. package/dist/transfer-service/markr/_schema.cjs.map +1 -0
  278. package/dist/transfer-service/markr/_schema.js +2 -0
  279. package/dist/transfer-service/markr/_schema.js.map +1 -0
  280. package/dist/transfer-service/markr/_type-guards.cjs +2 -0
  281. package/dist/transfer-service/markr/_type-guards.cjs.map +1 -0
  282. package/dist/transfer-service/markr/_type-guards.js +2 -0
  283. package/dist/transfer-service/markr/_type-guards.js.map +1 -0
  284. package/dist/transfer-service/markr/_utils.cjs +2 -0
  285. package/dist/transfer-service/markr/_utils.cjs.map +1 -0
  286. package/dist/transfer-service/markr/_utils.js +2 -0
  287. package/dist/transfer-service/markr/_utils.js.map +1 -0
  288. package/dist/transfer-service/markr/constants.cjs +2 -0
  289. package/dist/transfer-service/markr/constants.cjs.map +1 -0
  290. package/dist/transfer-service/markr/constants.js +2 -0
  291. package/dist/transfer-service/markr/constants.js.map +1 -0
  292. package/dist/transfer-service/markr/markr-service.cjs +2 -0
  293. package/dist/transfer-service/markr/markr-service.cjs.map +1 -0
  294. package/dist/transfer-service/markr/markr-service.js +2 -0
  295. package/dist/transfer-service/markr/markr-service.js.map +1 -0
  296. package/dist/transfer-service/service-schemas.cjs +2 -0
  297. package/dist/transfer-service/service-schemas.cjs.map +1 -0
  298. package/dist/transfer-service/service-schemas.js +2 -0
  299. package/dist/transfer-service/service-schemas.js.map +1 -0
  300. package/dist/transfer-service/wrap-unwrap/_handlers/analyze-support.cjs +2 -0
  301. package/dist/transfer-service/wrap-unwrap/_handlers/analyze-support.cjs.map +1 -0
  302. package/dist/transfer-service/wrap-unwrap/_handlers/analyze-support.js +2 -0
  303. package/dist/transfer-service/wrap-unwrap/_handlers/analyze-support.js.map +1 -0
  304. package/dist/transfer-service/wrap-unwrap/_handlers/estimate-native-fee.cjs +2 -0
  305. package/dist/transfer-service/wrap-unwrap/_handlers/estimate-native-fee.cjs.map +1 -0
  306. package/dist/transfer-service/wrap-unwrap/_handlers/estimate-native-fee.js +2 -0
  307. package/dist/transfer-service/wrap-unwrap/_handlers/estimate-native-fee.js.map +1 -0
  308. package/dist/transfer-service/wrap-unwrap/_handlers/get-assets.cjs +2 -0
  309. package/dist/transfer-service/wrap-unwrap/_handlers/get-assets.cjs.map +1 -0
  310. package/dist/transfer-service/wrap-unwrap/_handlers/get-assets.js +2 -0
  311. package/dist/transfer-service/wrap-unwrap/_handlers/get-assets.js.map +1 -0
  312. package/dist/transfer-service/wrap-unwrap/_handlers/get-minimum-transfer-amount.cjs +2 -0
  313. package/dist/transfer-service/wrap-unwrap/_handlers/get-minimum-transfer-amount.cjs.map +1 -0
  314. package/dist/transfer-service/wrap-unwrap/_handlers/get-minimum-transfer-amount.js +2 -0
  315. package/dist/transfer-service/wrap-unwrap/_handlers/get-minimum-transfer-amount.js.map +1 -0
  316. package/dist/transfer-service/wrap-unwrap/_handlers/stream-quotes.cjs +2 -0
  317. package/dist/transfer-service/wrap-unwrap/_handlers/stream-quotes.cjs.map +1 -0
  318. package/dist/transfer-service/wrap-unwrap/_handlers/stream-quotes.js +2 -0
  319. package/dist/transfer-service/wrap-unwrap/_handlers/stream-quotes.js.map +1 -0
  320. package/dist/transfer-service/wrap-unwrap/_handlers/track-transfer.cjs +2 -0
  321. package/dist/transfer-service/wrap-unwrap/_handlers/track-transfer.cjs.map +1 -0
  322. package/dist/transfer-service/wrap-unwrap/_handlers/track-transfer.js +2 -0
  323. package/dist/transfer-service/wrap-unwrap/_handlers/track-transfer.js.map +1 -0
  324. package/dist/transfer-service/wrap-unwrap/_handlers/transfer-asset.cjs +2 -0
  325. package/dist/transfer-service/wrap-unwrap/_handlers/transfer-asset.cjs.map +1 -0
  326. package/dist/transfer-service/wrap-unwrap/_handlers/transfer-asset.js +2 -0
  327. package/dist/transfer-service/wrap-unwrap/_handlers/transfer-asset.js.map +1 -0
  328. package/dist/transfer-service/wrap-unwrap/_utils.cjs +2 -0
  329. package/dist/transfer-service/wrap-unwrap/_utils.cjs.map +1 -0
  330. package/dist/transfer-service/wrap-unwrap/_utils.js +2 -0
  331. package/dist/transfer-service/wrap-unwrap/_utils.js.map +1 -0
  332. package/dist/transfer-service/wrap-unwrap/constants.cjs +2 -0
  333. package/dist/transfer-service/wrap-unwrap/constants.cjs.map +1 -0
  334. package/dist/transfer-service/wrap-unwrap/constants.js +2 -0
  335. package/dist/transfer-service/wrap-unwrap/constants.js.map +1 -0
  336. package/dist/transfer-service/wrap-unwrap/wrap-unwrap-service.cjs +2 -0
  337. package/dist/transfer-service/wrap-unwrap/wrap-unwrap-service.cjs.map +1 -0
  338. package/dist/transfer-service/wrap-unwrap/wrap-unwrap-service.js +2 -0
  339. package/dist/transfer-service/wrap-unwrap/wrap-unwrap-service.js.map +1 -0
  340. package/dist/type-guards.cjs +2 -0
  341. package/dist/type-guards.cjs.map +1 -0
  342. package/dist/type-guards.d.cts +16 -0
  343. package/dist/type-guards.d.ts +16 -0
  344. package/dist/type-guards.js +2 -0
  345. package/dist/type-guards.js.map +1 -0
  346. package/dist/types/asset.d.cts +61 -0
  347. package/dist/types/asset.d.ts +61 -0
  348. package/dist/types/bitcoin.d.cts +66 -0
  349. package/dist/types/bitcoin.d.ts +66 -0
  350. package/dist/types/caip.d.cts +30 -0
  351. package/dist/types/caip.d.ts +30 -0
  352. package/dist/types/chain.d.cts +17 -0
  353. package/dist/types/chain.d.ts +17 -0
  354. package/dist/types/fee.d.cts +13 -0
  355. package/dist/types/fee.d.ts +13 -0
  356. package/dist/types/quote.d.cts +140 -0
  357. package/dist/types/quote.d.ts +140 -0
  358. package/dist/types/service.d.cts +224 -0
  359. package/dist/types/service.d.ts +224 -0
  360. package/dist/types/signer.d.cts +50 -0
  361. package/dist/types/signer.d.ts +50 -0
  362. package/dist/types/transfer-manager.d.cts +115 -0
  363. package/dist/types/transfer-manager.d.ts +115 -0
  364. package/dist/types/transfer.d.cts +107 -0
  365. package/dist/types/transfer.d.ts +107 -0
  366. package/dist/types/utility-types.d.cts +21 -0
  367. package/dist/types/utility-types.d.ts +21 -0
  368. package/dist/utils/bitcoin-address.cjs +2 -0
  369. package/dist/utils/bitcoin-address.cjs.map +1 -0
  370. package/dist/utils/bitcoin-address.js +2 -0
  371. package/dist/utils/bitcoin-address.js.map +1 -0
  372. package/dist/utils/caip.cjs +2 -0
  373. package/dist/utils/caip.cjs.map +1 -0
  374. package/dist/utils/caip.d.cts +49 -0
  375. package/dist/utils/caip.d.ts +49 -0
  376. package/dist/utils/caip.js +2 -0
  377. package/dist/utils/caip.js.map +1 -0
  378. package/dist/utils/evm-address.cjs +2 -0
  379. package/dist/utils/evm-address.cjs.map +1 -0
  380. package/dist/utils/evm-address.js +2 -0
  381. package/dist/utils/evm-address.js.map +1 -0
  382. package/dist/utils/quote-fees.cjs +2 -0
  383. package/dist/utils/quote-fees.cjs.map +1 -0
  384. package/dist/utils/quote-fees.js +2 -0
  385. package/dist/utils/quote-fees.js.map +1 -0
  386. package/dist/utils/sol-address.cjs +2 -0
  387. package/dist/utils/sol-address.cjs.map +1 -0
  388. package/dist/utils/sol-address.js +2 -0
  389. package/dist/utils/sol-address.js.map +1 -0
  390. package/dist/utils/solana-transaction.d.cts +15 -0
  391. package/dist/utils/solana-transaction.d.ts +17 -0
  392. package/dist/utils/transfer-utils.cjs +2 -0
  393. package/dist/utils/transfer-utils.cjs.map +1 -0
  394. package/dist/utils/transfer-utils.d.cts +8 -0
  395. package/dist/utils/transfer-utils.d.ts +8 -0
  396. package/dist/utils/transfer-utils.js +2 -0
  397. package/dist/utils/transfer-utils.js.map +1 -0
  398. package/package.json +63 -0
@@ -0,0 +1,2 @@
1
+ import{TokenType as e}from"../../../../constants.js";import{isAddressEqual as t}from"viem";function n({config:n}){return({sourceChainId:r,targetChainId:i,sourceAsset:a,targetAsset:o})=>r===n.sourceChain&&i===n.targetChain&&a.type===e.ERC20&&o.type===e.NATIVE&&t(a.address,n.sourceAsset.address)}export{n as analyzeSupportFactory};
2
+ //# sourceMappingURL=analyze-support.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze-support.js","names":[],"sources":["../../../../../src/transfer-service/lombard/btcb-to-btc/_handlers/analyze-support.ts"],"sourcesContent":["import { isAddressEqual } from 'viem';\nimport type { BtcbToBtcConfig } from '../../types';\nimport { TokenType } from '../../../../constants';\nimport type { TransferService } from '../../../../types/service';\n\nexport interface AnalyzeSupportFactoryOptions {\n config: BtcbToBtcConfig;\n}\n\nexport function analyzeSupportFactory({ config }: AnalyzeSupportFactoryOptions): TransferService['analyzeSupport'] {\n return ({ sourceChainId, targetChainId, sourceAsset, targetAsset }) => {\n return (\n sourceChainId === config.sourceChain &&\n targetChainId === config.targetChain &&\n sourceAsset.type === TokenType.ERC20 &&\n targetAsset.type === TokenType.NATIVE &&\n isAddressEqual(sourceAsset.address, config.sourceAsset.address)\n );\n };\n}\n"],"mappings":"2FASA,SAAgB,EAAsB,CAAE,UAA2E,CACjH,OAAQ,CAAE,gBAAe,gBAAe,cAAa,iBAEjD,IAAkB,EAAO,aACzB,IAAkB,EAAO,aACzB,EAAY,OAAS,EAAU,OAC/B,EAAY,OAAS,EAAU,QAC/B,EAAe,EAAY,QAAS,EAAO,YAAY,QAAQ"}
@@ -0,0 +1,2 @@
1
+ require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../../errors.cjs`),t=require(`../../../_utils.cjs`),n=require(`../../../_evm-gas.cjs`);let r=require(`viem`);const i=60000n,a=300000n,o=({config:o})=>async({amountIn:s,fromAddress:c,sourceChain:l},u)=>{if(!(0,r.isAddress)(c))throw new e.InvalidParamsError(e.ErrorReason.INVALID_PARAMS,`Invalid fromAddress: ${c}`);let d=t.getEvmClientForChain({chain:l}),f=await d.readContract({address:o.sourceAsset.address,abi:r.erc20Abi,functionName:`allowance`,args:[c,o.adapterAddress]})<s,p=t.applyFeeUnitsBpsMargin(f?i+a:a,u?.feeUnitsMarginBps),m=await n.estimateEvmFeesPerGas(d,l,u?.overrides?.feeRateTier),h=u?.overrides?.maxFeePerGas??m.maxFeePerGas,g=u?.overrides?.maxPriorityFeePerGas??m.maxPriorityFeePerGas,_=p*h;return{asset:l.networkToken,totalFee:_,meta:{approvalFee:f?i*h:void 0,maxFeePerGas:h,maxPriorityFeePerGas:g}}};exports.estimateNativeFeeFactory=o;
2
+ //# sourceMappingURL=estimate-native-fee.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"estimate-native-fee.cjs","names":["InvalidParamsError","ErrorReason","getEvmClientForChain","erc20Abi","applyFeeUnitsBpsMargin","estimateEvmFeesPerGas"],"sources":["../../../../../src/transfer-service/lombard/btcb-to-btc/_handlers/estimate-native-fee.ts"],"sourcesContent":["import { erc20Abi, isAddress } from 'viem';\nimport type { BtcbToBtcConfig } from '../../types';\nimport { ErrorReason, InvalidParamsError } from '../../../../errors';\nimport type { TransferService } from '../../../../types/service';\nimport { applyFeeUnitsBpsMargin, getEvmClientForChain } from '../../../_utils';\nimport { estimateEvmFeesPerGas } from '../../../_evm-gas';\n\n// Hardcoded gas estimates for BTCb redemption on Avalanche.\n// These are approximations used for UI display only - DO NOT use as gasLimit.\n// Based on typical ERC20 approval and AssetRouter.redeemForBtc call costs.\nexport const AVAX_APPROVAL_GAS_ESTIMATE = 60_000n; // Standard ERC20 approval (~55k + buffer)\nexport const AVAX_REDEEM_GAS_ESTIMATE = 300_000n; // AssetRouter.redeemForBtc (~250k + buffer)\n\nexport interface EstimateNativeFeeFactoryOptions {\n config: BtcbToBtcConfig;\n}\n\n/**\n * Estimates gas for BTCb-to-BTC redemption on Avalanche.\n *\n * The redemption consists of up to two transactions:\n * 1. Token spend approval to the adapter contract (if needed)\n * 2. Redeem call via the AssetRouter contract\n *\n * Since the redeem needs the approval to be complete, we can't call estimateGas()\n * on the actual contract. Instead, we use hardcoded estimates.\n */\nexport const estimateNativeFeeFactory = ({\n config,\n}: EstimateNativeFeeFactoryOptions): TransferService['estimateNativeFee'] => {\n return async ({ amountIn, fromAddress, sourceChain }, options) => {\n if (!isAddress(fromAddress)) {\n throw new InvalidParamsError(ErrorReason.INVALID_PARAMS, `Invalid fromAddress: ${fromAddress}`);\n }\n\n const client = getEvmClientForChain({ chain: sourceChain });\n\n // Check if approval is already granted to the adapter\n const allowance = await client.readContract({\n address: config.sourceAsset.address,\n abi: erc20Abi,\n functionName: 'allowance',\n args: [fromAddress, config.adapterAddress],\n });\n\n const needsApproval = allowance < amountIn;\n\n const totalGas = needsApproval ? AVAX_APPROVAL_GAS_ESTIMATE + AVAX_REDEEM_GAS_ESTIMATE : AVAX_REDEEM_GAS_ESTIMATE;\n\n const gasWithMargin = applyFeeUnitsBpsMargin(totalGas, options?.feeUnitsMarginBps);\n\n const fees = await estimateEvmFeesPerGas(client, sourceChain, options?.overrides?.feeRateTier);\n\n const maxFeePerGas = options?.overrides?.maxFeePerGas ?? fees.maxFeePerGas;\n const maxPriorityFeePerGas = options?.overrides?.maxPriorityFeePerGas ?? fees.maxPriorityFeePerGas;\n\n const totalFee = gasWithMargin * maxFeePerGas;\n\n return {\n asset: sourceChain.networkToken,\n totalFee,\n meta: {\n approvalFee: needsApproval ? AVAX_APPROVAL_GAS_ESTIMATE * maxFeePerGas : undefined,\n maxFeePerGas,\n maxPriorityFeePerGas,\n },\n };\n };\n};\n"],"mappings":"0LAUA,MAAa,EAA6B,OAC7B,EAA2B,QAgB3B,GAA4B,CACvC,YAEO,MAAO,CAAE,WAAU,cAAa,eAAe,IAAY,CAChE,GAAI,EAAA,EAAA,EAAA,WAAW,EAAY,CACzB,MAAM,IAAIA,EAAAA,mBAAmBC,EAAAA,YAAY,eAAgB,wBAAwB,IAAc,CAGjG,IAAM,EAASC,EAAAA,qBAAqB,CAAE,MAAO,EAAa,CAAC,CAUrD,EAPY,MAAM,EAAO,aAAa,CAC1C,QAAS,EAAO,YAAY,QAC5B,IAAKC,EAAAA,SACL,aAAc,YACd,KAAM,CAAC,EAAa,EAAO,eAAe,CAC3C,CAAC,CAEgC,EAI5B,EAAgBC,EAAAA,uBAFL,EAAgB,EAA6B,EAA2B,EAElC,GAAS,kBAAkB,CAE5E,EAAO,MAAMC,EAAAA,sBAAsB,EAAQ,EAAa,GAAS,WAAW,YAAY,CAExF,EAAe,GAAS,WAAW,cAAgB,EAAK,aACxD,EAAuB,GAAS,WAAW,sBAAwB,EAAK,qBAExE,EAAW,EAAgB,EAEjC,MAAO,CACL,MAAO,EAAY,aACnB,WACA,KAAM,CACJ,YAAa,EAAgB,EAA6B,EAAe,IAAA,GACzE,eACA,uBACD,CACF"}
@@ -0,0 +1,2 @@
1
+ import{ErrorReason as e,InvalidParamsError as t}from"../../../../errors.js";import{applyFeeUnitsBpsMargin as n,getEvmClientForChain as r}from"../../../_utils.js";import{estimateEvmFeesPerGas as i}from"../../../_evm-gas.js";import{erc20Abi as a,isAddress as o}from"viem";const s=60000n,c=300000n,l=({config:l})=>async({amountIn:u,fromAddress:d,sourceChain:f},p)=>{if(!o(d))throw new t(e.INVALID_PARAMS,`Invalid fromAddress: ${d}`);let m=r({chain:f}),h=await m.readContract({address:l.sourceAsset.address,abi:a,functionName:`allowance`,args:[d,l.adapterAddress]})<u,g=n(h?s+c:c,p?.feeUnitsMarginBps),_=await i(m,f,p?.overrides?.feeRateTier),v=p?.overrides?.maxFeePerGas??_.maxFeePerGas,y=p?.overrides?.maxPriorityFeePerGas??_.maxPriorityFeePerGas,b=g*v;return{asset:f.networkToken,totalFee:b,meta:{approvalFee:h?s*v:void 0,maxFeePerGas:v,maxPriorityFeePerGas:y}}};export{l as estimateNativeFeeFactory};
2
+ //# sourceMappingURL=estimate-native-fee.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"estimate-native-fee.js","names":[],"sources":["../../../../../src/transfer-service/lombard/btcb-to-btc/_handlers/estimate-native-fee.ts"],"sourcesContent":["import { erc20Abi, isAddress } from 'viem';\nimport type { BtcbToBtcConfig } from '../../types';\nimport { ErrorReason, InvalidParamsError } from '../../../../errors';\nimport type { TransferService } from '../../../../types/service';\nimport { applyFeeUnitsBpsMargin, getEvmClientForChain } from '../../../_utils';\nimport { estimateEvmFeesPerGas } from '../../../_evm-gas';\n\n// Hardcoded gas estimates for BTCb redemption on Avalanche.\n// These are approximations used for UI display only - DO NOT use as gasLimit.\n// Based on typical ERC20 approval and AssetRouter.redeemForBtc call costs.\nexport const AVAX_APPROVAL_GAS_ESTIMATE = 60_000n; // Standard ERC20 approval (~55k + buffer)\nexport const AVAX_REDEEM_GAS_ESTIMATE = 300_000n; // AssetRouter.redeemForBtc (~250k + buffer)\n\nexport interface EstimateNativeFeeFactoryOptions {\n config: BtcbToBtcConfig;\n}\n\n/**\n * Estimates gas for BTCb-to-BTC redemption on Avalanche.\n *\n * The redemption consists of up to two transactions:\n * 1. Token spend approval to the adapter contract (if needed)\n * 2. Redeem call via the AssetRouter contract\n *\n * Since the redeem needs the approval to be complete, we can't call estimateGas()\n * on the actual contract. Instead, we use hardcoded estimates.\n */\nexport const estimateNativeFeeFactory = ({\n config,\n}: EstimateNativeFeeFactoryOptions): TransferService['estimateNativeFee'] => {\n return async ({ amountIn, fromAddress, sourceChain }, options) => {\n if (!isAddress(fromAddress)) {\n throw new InvalidParamsError(ErrorReason.INVALID_PARAMS, `Invalid fromAddress: ${fromAddress}`);\n }\n\n const client = getEvmClientForChain({ chain: sourceChain });\n\n // Check if approval is already granted to the adapter\n const allowance = await client.readContract({\n address: config.sourceAsset.address,\n abi: erc20Abi,\n functionName: 'allowance',\n args: [fromAddress, config.adapterAddress],\n });\n\n const needsApproval = allowance < amountIn;\n\n const totalGas = needsApproval ? AVAX_APPROVAL_GAS_ESTIMATE + AVAX_REDEEM_GAS_ESTIMATE : AVAX_REDEEM_GAS_ESTIMATE;\n\n const gasWithMargin = applyFeeUnitsBpsMargin(totalGas, options?.feeUnitsMarginBps);\n\n const fees = await estimateEvmFeesPerGas(client, sourceChain, options?.overrides?.feeRateTier);\n\n const maxFeePerGas = options?.overrides?.maxFeePerGas ?? fees.maxFeePerGas;\n const maxPriorityFeePerGas = options?.overrides?.maxPriorityFeePerGas ?? fees.maxPriorityFeePerGas;\n\n const totalFee = gasWithMargin * maxFeePerGas;\n\n return {\n asset: sourceChain.networkToken,\n totalFee,\n meta: {\n approvalFee: needsApproval ? AVAX_APPROVAL_GAS_ESTIMATE * maxFeePerGas : undefined,\n maxFeePerGas,\n maxPriorityFeePerGas,\n },\n };\n };\n};\n"],"mappings":"8QAUA,MAAa,EAA6B,OAC7B,EAA2B,QAgB3B,GAA4B,CACvC,YAEO,MAAO,CAAE,WAAU,cAAa,eAAe,IAAY,CAChE,GAAI,CAAC,EAAU,EAAY,CACzB,MAAM,IAAI,EAAmB,EAAY,eAAgB,wBAAwB,IAAc,CAGjG,IAAM,EAAS,EAAqB,CAAE,MAAO,EAAa,CAAC,CAUrD,EAPY,MAAM,EAAO,aAAa,CAC1C,QAAS,EAAO,YAAY,QAC5B,IAAK,EACL,aAAc,YACd,KAAM,CAAC,EAAa,EAAO,eAAe,CAC3C,CAAC,CAEgC,EAI5B,EAAgB,EAFL,EAAgB,EAA6B,EAA2B,EAElC,GAAS,kBAAkB,CAE5E,EAAO,MAAM,EAAsB,EAAQ,EAAa,GAAS,WAAW,YAAY,CAExF,EAAe,GAAS,WAAW,cAAgB,EAAK,aACxD,EAAuB,GAAS,WAAW,sBAAwB,EAAK,qBAExE,EAAW,EAAgB,EAEjC,MAAO,CACL,MAAO,EAAY,aACnB,WACA,KAAM,CACJ,YAAa,EAAgB,EAA6B,EAAe,IAAA,GACzE,eACA,uBACD,CACF"}
@@ -0,0 +1,2 @@
1
+ const e=require(`../../../../constants.cjs`);function t({config:{sourceAsset:t,sourceChain:n,targetChain:r}}){return async()=>({[n]:[{...t,destinations:{[r]:{address:e.TokenType.NATIVE,bridgeProviders:[e.ServiceType.LOMBARD_BTCB_TO_BTC]}},swapProviders:[]}]})}exports.getAssetsFactory=t;
2
+ //# sourceMappingURL=get-assets.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-assets.cjs","names":["TokenType","ServiceType"],"sources":["../../../../../src/transfer-service/lombard/btcb-to-btc/_handlers/get-assets.ts"],"sourcesContent":["import type { BtcbToBtcConfig } from '../../types';\nimport { ServiceType, TokenType } from '../../../../constants';\nimport type { TransferService } from '../../../../types/service';\n\nexport interface GetAssetsFactoryOptions {\n config: BtcbToBtcConfig;\n}\n\nexport function getAssetsFactory({\n config: { sourceAsset, sourceChain, targetChain },\n}: GetAssetsFactoryOptions): TransferService['getAssets'] {\n return async () => {\n return {\n [sourceChain]: [\n {\n ...sourceAsset,\n destinations: {\n [targetChain]: {\n // This service maps to a native token, so we use TokenType.NATIVE as the \"address\"\n address: TokenType.NATIVE,\n bridgeProviders: [ServiceType.LOMBARD_BTCB_TO_BTC],\n },\n },\n swapProviders: [],\n },\n ],\n };\n };\n}\n"],"mappings":"6CAQA,SAAgB,EAAiB,CAC/B,OAAQ,CAAE,cAAa,cAAa,gBACoB,CACxD,OAAO,UACE,EACJ,GAAc,CACb,CACE,GAAG,EACH,aAAc,EACX,GAAc,CAEb,QAASA,EAAAA,UAAU,OACnB,gBAAiB,CAACC,EAAAA,YAAY,oBAAoB,CACnD,CACF,CACD,cAAe,EAAE,CAClB,CACF,CACF"}
@@ -0,0 +1,2 @@
1
+ import{ServiceType as e,TokenType as t}from"../../../../constants.js";function n({config:{sourceAsset:n,sourceChain:r,targetChain:i}}){return async()=>({[r]:[{...n,destinations:{[i]:{address:t.NATIVE,bridgeProviders:[e.LOMBARD_BTCB_TO_BTC]}},swapProviders:[]}]})}export{n as getAssetsFactory};
2
+ //# sourceMappingURL=get-assets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-assets.js","names":[],"sources":["../../../../../src/transfer-service/lombard/btcb-to-btc/_handlers/get-assets.ts"],"sourcesContent":["import type { BtcbToBtcConfig } from '../../types';\nimport { ServiceType, TokenType } from '../../../../constants';\nimport type { TransferService } from '../../../../types/service';\n\nexport interface GetAssetsFactoryOptions {\n config: BtcbToBtcConfig;\n}\n\nexport function getAssetsFactory({\n config: { sourceAsset, sourceChain, targetChain },\n}: GetAssetsFactoryOptions): TransferService['getAssets'] {\n return async () => {\n return {\n [sourceChain]: [\n {\n ...sourceAsset,\n destinations: {\n [targetChain]: {\n // This service maps to a native token, so we use TokenType.NATIVE as the \"address\"\n address: TokenType.NATIVE,\n bridgeProviders: [ServiceType.LOMBARD_BTCB_TO_BTC],\n },\n },\n swapProviders: [],\n },\n ],\n };\n };\n}\n"],"mappings":"sEAQA,SAAgB,EAAiB,CAC/B,OAAQ,CAAE,cAAa,cAAa,gBACoB,CACxD,OAAO,UACE,EACJ,GAAc,CACb,CACE,GAAG,EACH,aAAc,EACX,GAAc,CAEb,QAAS,EAAU,OACnB,gBAAiB,CAAC,EAAY,oBAAoB,CACnD,CACF,CACD,cAAe,EAAE,CAClB,CACF,CACF"}
@@ -0,0 +1,2 @@
1
+ const e=require(`../../../../constants.cjs`),t=require(`../../../../errors.cjs`),n=require(`../../../../utils/evm-address.cjs`),r=require(`../../../../utils/bitcoin-address.cjs`),i=require(`../../../../utils/quote-fees.cjs`),a=require(`./analyze-support.cjs`);function o({config:o}){let s=a.analyzeSupportFactory({config:o});return(a,c)=>{let l=new AbortController,u=()=>{l.abort()};return!s({sourceAsset:a.sourceAsset,sourceChainId:a.sourceChain.chainId,targetAsset:a.targetAsset,targetChainId:a.targetChain.chainId})||!n.isEvmAddress(a.fromAddress)||!r.isBech32AddressInNetwork(a.toAddress,o.targetChain===e.BitcoinChainIds.MAINNET)?(l.signal.aborted||(c(`error`,new t.InvalidParamsError(t.ErrorReason.INVALID_PARAMS,`Invalid addresses, assets, or chains provided.`)),c(`done`)),{cancel:u}):((async()=>{let n=o.minRedeemAmount;if(a.amount<n){l.signal.aborted||(c(`error`,new t.InvalidParamsError(t.ErrorReason.INVALID_PARAMS,`Transfer amount is below the minimum transfer amount of ${n.toString()}.`)),c(`done`));return}let r={aggregator:{name:`Lombard`,id:`lombard-btcb-to-btc`},amountIn:a.amount,amountOut:a.amount-o.redeemFee,assetIn:a.sourceAsset,assetOut:a.targetAsset,expiresAt:Math.floor(Date.now()/1e3)+60,fees:[{type:`bridge`,name:`Bridge Fee`,amount:o.redeemFee,chainId:a.sourceChain.chainId,token:i.assetToQuoteFeeToken(a.sourceAsset)}],fromAddress:a.fromAddress,id:crypto.randomUUID(),partnerFeeBps:null,serviceType:e.ServiceType.LOMBARD_BTCB_TO_BTC,slippageBps:a.slippageBps??0,sourceChain:a.sourceChain,targetChain:a.targetChain,toAddress:a.toAddress};l.signal.aborted||(c(`quote`,r),c(`done`))})().catch(e=>{l.signal.aborted||(c(`error`,new t.SdkError(t.ErrorReason.UNKNOWN,t.ErrorCode.UNKNOWN,{cause:e,details:`Failed to stream quotes`})),c(`done`))}),{cancel:u})}}exports.streamQuotesFactory=o;
2
+ //# sourceMappingURL=stream-quotes.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-quotes.cjs","names":["analyzeSupportFactory","isEvmAddress","isBech32AddressInNetwork","BitcoinChainIds","InvalidParamsError","ErrorReason","assetToQuoteFeeToken","ServiceType","SdkError","ErrorCode"],"sources":["../../../../../src/transfer-service/lombard/btcb-to-btc/_handlers/stream-quotes.ts"],"sourcesContent":["import { BitcoinChainIds, ServiceType } from '../../../../constants';\nimport { ErrorCode, ErrorReason, InvalidParamsError, SdkError } from '../../../../errors';\nimport type { Quote } from '../../../../types/quote';\nimport type { TransferService } from '../../../../types/service';\nimport type { Mutable } from '../../../../types/utility-types';\nimport { isBech32AddressInNetwork } from '../../../../utils/bitcoin-address';\nimport { isEvmAddress } from '../../../../utils/evm-address';\nimport { assetToQuoteFeeToken } from '../../../../utils/quote-fees';\nimport type { BtcbToBtcConfig } from '../../types';\nimport { analyzeSupportFactory } from './analyze-support';\n\nexport interface StreamQuotesFactoryOptions {\n config: BtcbToBtcConfig;\n}\n\nexport function streamQuotesFactory({ config }: StreamQuotesFactoryOptions): TransferService['streamQuotes'] {\n const analyzeSupport = analyzeSupportFactory({ config });\n\n return (props, handler) => {\n const ac = new AbortController();\n const cancel = () => {\n ac.abort();\n };\n\n const hasValidAssetsAndChains = analyzeSupport({\n sourceAsset: props.sourceAsset,\n sourceChainId: props.sourceChain.chainId,\n targetAsset: props.targetAsset,\n targetChainId: props.targetChain.chainId,\n });\n\n if (\n !hasValidAssetsAndChains ||\n !isEvmAddress(props.fromAddress) ||\n !isBech32AddressInNetwork(props.toAddress, config.targetChain === BitcoinChainIds.MAINNET)\n ) {\n if (!ac.signal.aborted) {\n handler(\n 'error',\n new InvalidParamsError(ErrorReason.INVALID_PARAMS, 'Invalid addresses, assets, or chains provided.'),\n );\n handler('done');\n }\n\n return { cancel };\n }\n\n (async () => {\n const minimumAmount = config.minRedeemAmount;\n\n if (props.amount < minimumAmount) {\n if (!ac.signal.aborted) {\n handler(\n 'error',\n new InvalidParamsError(\n ErrorReason.INVALID_PARAMS,\n `Transfer amount is below the minimum transfer amount of ${minimumAmount.toString()}.`,\n ),\n );\n handler('done');\n }\n\n return;\n }\n\n const quote: Mutable<Quote> = {\n aggregator: {\n name: 'Lombard',\n id: 'lombard-btcb-to-btc',\n },\n amountIn: props.amount,\n amountOut: props.amount - config.redeemFee,\n assetIn: props.sourceAsset,\n assetOut: props.targetAsset,\n // Set the expiration time further out since the amountOut isn't expected to change,\n // since the fee is fixed in the config at service initialization.\n expiresAt: Math.floor(Date.now() / 1_000) + 60,\n fees: [\n {\n type: 'bridge',\n name: 'Bridge Fee',\n amount: config.redeemFee,\n chainId: props.sourceChain.chainId,\n token: assetToQuoteFeeToken(props.sourceAsset),\n },\n ],\n fromAddress: props.fromAddress,\n id: crypto.randomUUID(),\n partnerFeeBps: null,\n serviceType: ServiceType.LOMBARD_BTCB_TO_BTC,\n slippageBps: props.slippageBps ?? 0,\n sourceChain: props.sourceChain,\n targetChain: props.targetChain,\n toAddress: props.toAddress,\n };\n\n if (!ac.signal.aborted) {\n handler('quote', quote);\n handler('done');\n }\n })().catch((error) => {\n if (!ac.signal.aborted) {\n handler(\n 'error',\n new SdkError(ErrorReason.UNKNOWN, ErrorCode.UNKNOWN, { cause: error, details: 'Failed to stream quotes' }),\n );\n handler('done');\n }\n });\n\n return {\n cancel,\n };\n };\n}\n"],"mappings":"oQAeA,SAAgB,EAAoB,CAAE,UAAuE,CAC3G,IAAM,EAAiBA,EAAAA,sBAAsB,CAAE,SAAQ,CAAC,CAExD,OAAQ,EAAO,IAAY,CACzB,IAAM,EAAK,IAAI,gBACT,MAAe,CACnB,EAAG,OAAO,EAyFZ,MA9EE,CAR8B,EAAe,CAC7C,YAAa,EAAM,YACnB,cAAe,EAAM,YAAY,QACjC,YAAa,EAAM,YACnB,cAAe,EAAM,YAAY,QAClC,CAAC,EAIA,CAACC,EAAAA,aAAa,EAAM,YAAY,EAChC,CAACC,EAAAA,yBAAyB,EAAM,UAAW,EAAO,cAAgBC,EAAAA,gBAAgB,QAAQ,EAErF,EAAG,OAAO,UACb,EACE,QACA,IAAIC,EAAAA,mBAAmBC,EAAAA,YAAY,eAAgB,iDAAiD,CACrG,CACD,EAAQ,OAAO,EAGV,CAAE,SAAQ,IAGlB,SAAY,CACX,IAAM,EAAgB,EAAO,gBAE7B,GAAI,EAAM,OAAS,EAAe,CAC3B,EAAG,OAAO,UACb,EACE,QACA,IAAID,EAAAA,mBACFC,EAAAA,YAAY,eACZ,2DAA2D,EAAc,UAAU,CAAC,GACrF,CACF,CACD,EAAQ,OAAO,EAGjB,OAGF,IAAM,EAAwB,CAC5B,WAAY,CACV,KAAM,UACN,GAAI,sBACL,CACD,SAAU,EAAM,OAChB,UAAW,EAAM,OAAS,EAAO,UACjC,QAAS,EAAM,YACf,SAAU,EAAM,YAGhB,UAAW,KAAK,MAAM,KAAK,KAAK,CAAG,IAAM,CAAG,GAC5C,KAAM,CACJ,CACE,KAAM,SACN,KAAM,aACN,OAAQ,EAAO,UACf,QAAS,EAAM,YAAY,QAC3B,MAAOC,EAAAA,qBAAqB,EAAM,YAAY,CAC/C,CACF,CACD,YAAa,EAAM,YACnB,GAAI,OAAO,YAAY,CACvB,cAAe,KACf,YAAaC,EAAAA,YAAY,oBACzB,YAAa,EAAM,aAAe,EAClC,YAAa,EAAM,YACnB,YAAa,EAAM,YACnB,UAAW,EAAM,UAClB,CAEI,EAAG,OAAO,UACb,EAAQ,QAAS,EAAM,CACvB,EAAQ,OAAO,KAEf,CAAC,MAAO,GAAU,CACf,EAAG,OAAO,UACb,EACE,QACA,IAAIC,EAAAA,SAASH,EAAAA,YAAY,QAASI,EAAAA,UAAU,QAAS,CAAE,MAAO,EAAO,QAAS,0BAA2B,CAAC,CAC3G,CACD,EAAQ,OAAO,GAEjB,CAEK,CACL,SACD"}
@@ -0,0 +1,2 @@
1
+ import{BitcoinChainIds as e,ServiceType as t}from"../../../../constants.js";import{ErrorCode as n,ErrorReason as r,InvalidParamsError as i,SdkError as a}from"../../../../errors.js";import{isEvmAddress as o}from"../../../../utils/evm-address.js";import{isBech32AddressInNetwork as s}from"../../../../utils/bitcoin-address.js";import{assetToQuoteFeeToken as c}from"../../../../utils/quote-fees.js";import{analyzeSupportFactory as l}from"./analyze-support.js";function u({config:u}){let d=l({config:u});return(l,f)=>{let p=new AbortController,m=()=>{p.abort()};return!d({sourceAsset:l.sourceAsset,sourceChainId:l.sourceChain.chainId,targetAsset:l.targetAsset,targetChainId:l.targetChain.chainId})||!o(l.fromAddress)||!s(l.toAddress,u.targetChain===e.MAINNET)?(p.signal.aborted||(f(`error`,new i(r.INVALID_PARAMS,`Invalid addresses, assets, or chains provided.`)),f(`done`)),{cancel:m}):((async()=>{let e=u.minRedeemAmount;if(l.amount<e){p.signal.aborted||(f(`error`,new i(r.INVALID_PARAMS,`Transfer amount is below the minimum transfer amount of ${e.toString()}.`)),f(`done`));return}let n={aggregator:{name:`Lombard`,id:`lombard-btcb-to-btc`},amountIn:l.amount,amountOut:l.amount-u.redeemFee,assetIn:l.sourceAsset,assetOut:l.targetAsset,expiresAt:Math.floor(Date.now()/1e3)+60,fees:[{type:`bridge`,name:`Bridge Fee`,amount:u.redeemFee,chainId:l.sourceChain.chainId,token:c(l.sourceAsset)}],fromAddress:l.fromAddress,id:crypto.randomUUID(),partnerFeeBps:null,serviceType:t.LOMBARD_BTCB_TO_BTC,slippageBps:l.slippageBps??0,sourceChain:l.sourceChain,targetChain:l.targetChain,toAddress:l.toAddress};p.signal.aborted||(f(`quote`,n),f(`done`))})().catch(e=>{p.signal.aborted||(f(`error`,new a(r.UNKNOWN,n.UNKNOWN,{cause:e,details:`Failed to stream quotes`})),f(`done`))}),{cancel:m})}}export{u as streamQuotesFactory};
2
+ //# sourceMappingURL=stream-quotes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-quotes.js","names":[],"sources":["../../../../../src/transfer-service/lombard/btcb-to-btc/_handlers/stream-quotes.ts"],"sourcesContent":["import { BitcoinChainIds, ServiceType } from '../../../../constants';\nimport { ErrorCode, ErrorReason, InvalidParamsError, SdkError } from '../../../../errors';\nimport type { Quote } from '../../../../types/quote';\nimport type { TransferService } from '../../../../types/service';\nimport type { Mutable } from '../../../../types/utility-types';\nimport { isBech32AddressInNetwork } from '../../../../utils/bitcoin-address';\nimport { isEvmAddress } from '../../../../utils/evm-address';\nimport { assetToQuoteFeeToken } from '../../../../utils/quote-fees';\nimport type { BtcbToBtcConfig } from '../../types';\nimport { analyzeSupportFactory } from './analyze-support';\n\nexport interface StreamQuotesFactoryOptions {\n config: BtcbToBtcConfig;\n}\n\nexport function streamQuotesFactory({ config }: StreamQuotesFactoryOptions): TransferService['streamQuotes'] {\n const analyzeSupport = analyzeSupportFactory({ config });\n\n return (props, handler) => {\n const ac = new AbortController();\n const cancel = () => {\n ac.abort();\n };\n\n const hasValidAssetsAndChains = analyzeSupport({\n sourceAsset: props.sourceAsset,\n sourceChainId: props.sourceChain.chainId,\n targetAsset: props.targetAsset,\n targetChainId: props.targetChain.chainId,\n });\n\n if (\n !hasValidAssetsAndChains ||\n !isEvmAddress(props.fromAddress) ||\n !isBech32AddressInNetwork(props.toAddress, config.targetChain === BitcoinChainIds.MAINNET)\n ) {\n if (!ac.signal.aborted) {\n handler(\n 'error',\n new InvalidParamsError(ErrorReason.INVALID_PARAMS, 'Invalid addresses, assets, or chains provided.'),\n );\n handler('done');\n }\n\n return { cancel };\n }\n\n (async () => {\n const minimumAmount = config.minRedeemAmount;\n\n if (props.amount < minimumAmount) {\n if (!ac.signal.aborted) {\n handler(\n 'error',\n new InvalidParamsError(\n ErrorReason.INVALID_PARAMS,\n `Transfer amount is below the minimum transfer amount of ${minimumAmount.toString()}.`,\n ),\n );\n handler('done');\n }\n\n return;\n }\n\n const quote: Mutable<Quote> = {\n aggregator: {\n name: 'Lombard',\n id: 'lombard-btcb-to-btc',\n },\n amountIn: props.amount,\n amountOut: props.amount - config.redeemFee,\n assetIn: props.sourceAsset,\n assetOut: props.targetAsset,\n // Set the expiration time further out since the amountOut isn't expected to change,\n // since the fee is fixed in the config at service initialization.\n expiresAt: Math.floor(Date.now() / 1_000) + 60,\n fees: [\n {\n type: 'bridge',\n name: 'Bridge Fee',\n amount: config.redeemFee,\n chainId: props.sourceChain.chainId,\n token: assetToQuoteFeeToken(props.sourceAsset),\n },\n ],\n fromAddress: props.fromAddress,\n id: crypto.randomUUID(),\n partnerFeeBps: null,\n serviceType: ServiceType.LOMBARD_BTCB_TO_BTC,\n slippageBps: props.slippageBps ?? 0,\n sourceChain: props.sourceChain,\n targetChain: props.targetChain,\n toAddress: props.toAddress,\n };\n\n if (!ac.signal.aborted) {\n handler('quote', quote);\n handler('done');\n }\n })().catch((error) => {\n if (!ac.signal.aborted) {\n handler(\n 'error',\n new SdkError(ErrorReason.UNKNOWN, ErrorCode.UNKNOWN, { cause: error, details: 'Failed to stream quotes' }),\n );\n handler('done');\n }\n });\n\n return {\n cancel,\n };\n };\n}\n"],"mappings":"ycAeA,SAAgB,EAAoB,CAAE,UAAuE,CAC3G,IAAM,EAAiB,EAAsB,CAAE,SAAQ,CAAC,CAExD,OAAQ,EAAO,IAAY,CACzB,IAAM,EAAK,IAAI,gBACT,MAAe,CACnB,EAAG,OAAO,EAyFZ,MA9EE,CAR8B,EAAe,CAC7C,YAAa,EAAM,YACnB,cAAe,EAAM,YAAY,QACjC,YAAa,EAAM,YACnB,cAAe,EAAM,YAAY,QAClC,CAAC,EAIA,CAAC,EAAa,EAAM,YAAY,EAChC,CAAC,EAAyB,EAAM,UAAW,EAAO,cAAgB,EAAgB,QAAQ,EAErF,EAAG,OAAO,UACb,EACE,QACA,IAAI,EAAmB,EAAY,eAAgB,iDAAiD,CACrG,CACD,EAAQ,OAAO,EAGV,CAAE,SAAQ,IAGlB,SAAY,CACX,IAAM,EAAgB,EAAO,gBAE7B,GAAI,EAAM,OAAS,EAAe,CAC3B,EAAG,OAAO,UACb,EACE,QACA,IAAI,EACF,EAAY,eACZ,2DAA2D,EAAc,UAAU,CAAC,GACrF,CACF,CACD,EAAQ,OAAO,EAGjB,OAGF,IAAM,EAAwB,CAC5B,WAAY,CACV,KAAM,UACN,GAAI,sBACL,CACD,SAAU,EAAM,OAChB,UAAW,EAAM,OAAS,EAAO,UACjC,QAAS,EAAM,YACf,SAAU,EAAM,YAGhB,UAAW,KAAK,MAAM,KAAK,KAAK,CAAG,IAAM,CAAG,GAC5C,KAAM,CACJ,CACE,KAAM,SACN,KAAM,aACN,OAAQ,EAAO,UACf,QAAS,EAAM,YAAY,QAC3B,MAAO,EAAqB,EAAM,YAAY,CAC/C,CACF,CACD,YAAa,EAAM,YACnB,GAAI,OAAO,YAAY,CACvB,cAAe,KACf,YAAa,EAAY,oBACzB,YAAa,EAAM,aAAe,EAClC,YAAa,EAAM,YACnB,YAAa,EAAM,YACnB,UAAW,EAAM,UAClB,CAEI,EAAG,OAAO,UACb,EAAQ,QAAS,EAAM,CACvB,EAAQ,OAAO,KAEf,CAAC,MAAO,GAAU,CACf,EAAG,OAAO,UACb,EACE,QACA,IAAI,EAAS,EAAY,QAAS,EAAU,QAAS,CAAE,MAAO,EAAO,QAAS,0BAA2B,CAAC,CAC3G,CACD,EAAQ,OAAO,GAEjB,CAEK,CACL,SACD"}
@@ -0,0 +1,2 @@
1
+ require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../../errors.cjs`),t=require(`../../../_utils.cjs`);let n=require(`viem`),r=require(`@lombard.finance/sdk`);function i({bitcoinFunctions:e,config:n}){return({transfer:r,updateListener:i})=>{let s=new AbortController,c=()=>{s.abort()};return r.status===`completed`||r.status===`failed`?{cancel:c,result:Promise.resolve(r)}:{cancel:c,result:(async()=>{let c=structuredClone(r),l=t.getEvmClientForChain({chain:r.sourceChain});for(;!s.signal.aborted;){let r=c.status;switch(c.status){case`source-pending`:c=await a({currentTransfer:c,signal:s.signal,sourceClient:l}),s.signal.aborted||i(c);break;case`source-completed`:case`target-pending`:c=await o({bitcoinFunctions:e,config:n,currentTransfer:c,signal:s.signal}),s.signal.aborted||i(c);break;default:return c}c.status===r&&await t.waitForTimeoutOrAbort({timeoutMs:6e4,signal:s.signal})}return c})()}}}async function a({currentTransfer:r,signal:i,sourceClient:a}){let{confirmationCount:o,requiredConfirmationCount:s,txHash:c}=r.source;if(!(0,n.isHash)(c))return{...r,errorCode:e.ErrorCode.INVALID_PARAMS,errorReason:`Invalid source transaction hash`,failedAtMs:Date.now(),status:`failed`};if(o>=s)return{...r,status:`source-completed`};try{let n=await t.awaitOrAbort(a.waitForTransactionReceipt({confirmations:Math.min(o+1,s),hash:c}),i);if(n.status===`aborted`)return r;let l=n.value;if(l.status===`reverted`)return{...r,errorCode:e.ErrorCode.TRANSACTION_REVERTED,failedAtMs:Date.now(),status:`failed`};let u=await a.getTransactionConfirmations({transactionReceipt:l}).then(e=>Number(e)).catch(()=>o+1);return u<s?{...r,source:{...r.source,confirmationCount:u}}:{...r,source:{...r.source,confirmationCount:u},status:`source-completed`}}catch(e){return{...r,errorCode:t.getErrorCodeForViemError(e),failedAtMs:Date.now(),status:`failed`}}}async function o({bitcoinFunctions:n,config:i,currentTransfer:a,signal:o}){switch(a.status){case`source-completed`:{let e=await t.awaitOrAbort((0,r.getUnstakesByAddress)({address:a.fromAddress,env:i.env}),o);if(e.status===`aborted`)return a;let n=e.value.find(e=>e.txHash.toLowerCase()===a.source.txHash.toLowerCase());return n?.payoutTxHash?{...a,status:`target-pending`,target:{confirmationCount:0,requiredConfirmationCount:1,startedAtMs:Date.now(),txHash:n.payoutTxHash}}:a}default:{if(!a.target?.txHash)return{...a,errorCode:e.ErrorCode.UNKNOWN,errorReason:`Missing target transaction hash`,failedAtMs:Date.now(),status:`failed`};let r=await t.awaitOrAbort(n.getTransaction(a.target.txHash),o);if(r.status===`aborted`)return a;let i=r.value.confirmations;return i<a.target.requiredConfirmationCount?{...a,target:{...a.target,confirmationCount:i}}:{...a,completedAtMs:Date.now(),target:{...a.target,confirmationCount:i},status:`completed`}}}}exports.trackTransferFactory=i;
2
+ //# sourceMappingURL=track-transfer.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"track-transfer.cjs","names":["getEvmClientForChain","waitForTimeoutOrAbort","ErrorCode","awaitOrAbort","getErrorCodeForViemError"],"sources":["../../../../../src/transfer-service/lombard/btcb-to-btc/_handlers/track-transfer.ts"],"sourcesContent":["import { isHash } from 'viem';\nimport { ErrorCode } from '../../../../errors';\nimport type { BitcoinFunctions } from '../../../../types/bitcoin';\nimport type { TransferService } from '../../../../types/service';\nimport type {\n CompletedTransfer,\n FailedTransfer,\n SourceCompletedTransfer,\n SourcePendingTransfer,\n TargetPendingTransfer,\n Transfer,\n} from '../../../../types/transfer';\nimport type { BtcbToBtcConfig } from '../../types';\nimport { awaitOrAbort, getErrorCodeForViemError, getEvmClientForChain, waitForTimeoutOrAbort } from '../../../_utils';\nimport { getUnstakesByAddress } from '@lombard.finance/sdk';\n\n// Polling interval for BTC redemptions (60 seconds - BTC confirmations are slow)\nconst REDEMPTION_POLLING_INTERVAL_MS = 1000 * 60;\n\nexport interface TrackTransferFactoryOptions {\n bitcoinFunctions: BitcoinFunctions;\n config: BtcbToBtcConfig;\n}\n\nexport function trackTransferFactory({\n bitcoinFunctions,\n config,\n}: TrackTransferFactoryOptions): TransferService['trackTransfer'] {\n return ({ transfer, updateListener }) => {\n const ac = new AbortController();\n const cancel = () => {\n ac.abort();\n };\n\n if (transfer.status === 'completed' || transfer.status === 'failed') {\n return {\n cancel,\n result: Promise.resolve(transfer),\n };\n }\n\n const executeTracking = async (): Promise<Transfer> => {\n let currentTransfer: Transfer = structuredClone(transfer);\n\n const sourceClient = getEvmClientForChain({ chain: transfer.sourceChain });\n\n while (!ac.signal.aborted) {\n const statusBeforeTracking = currentTransfer.status;\n\n switch (currentTransfer.status) {\n case 'source-pending': {\n currentTransfer = await _trackSourceTx({\n currentTransfer,\n signal: ac.signal,\n sourceClient,\n });\n\n if (!ac.signal.aborted) {\n updateListener(currentTransfer);\n }\n\n break;\n }\n case 'source-completed':\n case 'target-pending': {\n currentTransfer = await _trackTargetTx({\n bitcoinFunctions,\n config,\n currentTransfer,\n signal: ac.signal,\n });\n\n if (!ac.signal.aborted) {\n updateListener(currentTransfer);\n }\n\n break;\n }\n default: {\n return currentTransfer;\n }\n }\n\n const hasStatusChanged = currentTransfer.status !== statusBeforeTracking;\n\n if (!hasStatusChanged) {\n await waitForTimeoutOrAbort({ timeoutMs: REDEMPTION_POLLING_INTERVAL_MS, signal: ac.signal });\n }\n }\n\n return currentTransfer;\n };\n\n return {\n cancel,\n result: executeTracking(),\n };\n };\n}\n\nexport interface TrackBaseParams {\n currentTransfer: Transfer;\n signal: AbortSignal;\n}\n\nexport interface TrackSourceTxParams extends TrackBaseParams {\n currentTransfer: SourcePendingTransfer;\n sourceClient: ReturnType<typeof getEvmClientForChain>;\n}\n\nexport interface TrackTargetTxParams extends TrackBaseParams {\n bitcoinFunctions: BitcoinFunctions;\n config: BtcbToBtcConfig;\n currentTransfer: SourceCompletedTransfer | TargetPendingTransfer;\n}\n\nexport async function _trackSourceTx({\n currentTransfer,\n signal,\n sourceClient,\n}: TrackSourceTxParams): Promise<SourcePendingTransfer | SourceCompletedTransfer | FailedTransfer> {\n const { confirmationCount, requiredConfirmationCount, txHash } = currentTransfer.source;\n\n if (!isHash(txHash)) {\n const failedTransfer: FailedTransfer = {\n ...currentTransfer,\n errorCode: ErrorCode.INVALID_PARAMS,\n errorReason: 'Invalid source transaction hash',\n failedAtMs: Date.now(),\n status: 'failed',\n };\n\n return failedTransfer;\n }\n\n if (confirmationCount >= requiredConfirmationCount) {\n // Move to next stage\n\n const updatedTransfer: SourceCompletedTransfer = {\n ...currentTransfer,\n status: 'source-completed',\n };\n\n return updatedTransfer;\n }\n\n try {\n const receiptResult = await awaitOrAbort(\n sourceClient.waitForTransactionReceipt({\n confirmations: Math.min(confirmationCount + 1, requiredConfirmationCount),\n hash: txHash,\n }),\n signal,\n );\n\n if (receiptResult.status === 'aborted') {\n return currentTransfer;\n }\n\n const transactionReceipt = receiptResult.value;\n\n if (transactionReceipt.status === 'reverted') {\n return {\n ...currentTransfer,\n errorCode: ErrorCode.TRANSACTION_REVERTED,\n failedAtMs: Date.now(),\n status: 'failed',\n } satisfies FailedTransfer;\n }\n\n const newConfirmationCount: number = await sourceClient\n .getTransactionConfirmations({\n transactionReceipt,\n })\n .then((count) => Number(count))\n .catch(() => confirmationCount + 1);\n\n // If still not enough confirmations, update the count\n if (newConfirmationCount < requiredConfirmationCount) {\n return {\n ...currentTransfer,\n source: {\n ...currentTransfer.source,\n confirmationCount: newConfirmationCount,\n },\n } satisfies SourcePendingTransfer;\n }\n\n // Move to next stage\n return {\n ...currentTransfer,\n source: {\n ...currentTransfer.source,\n confirmationCount: newConfirmationCount,\n },\n status: 'source-completed',\n } satisfies SourceCompletedTransfer;\n } catch (error) {\n return {\n ...currentTransfer,\n errorCode: getErrorCodeForViemError(error),\n failedAtMs: Date.now(),\n status: 'failed',\n } satisfies FailedTransfer;\n }\n}\n\nexport async function _trackTargetTx({\n bitcoinFunctions,\n config,\n currentTransfer,\n signal,\n}: TrackTargetTxParams): Promise<SourceCompletedTransfer | TargetPendingTransfer | FailedTransfer | CompletedTransfer> {\n switch (currentTransfer.status) {\n case 'source-completed': {\n const unstakesResult = await awaitOrAbort(\n getUnstakesByAddress({ address: currentTransfer.fromAddress, env: config.env }),\n signal,\n );\n\n if (unstakesResult.status === 'aborted') {\n return currentTransfer;\n }\n\n const transferUnstake = unstakesResult.value.find(\n (d) => d.txHash.toLowerCase() === currentTransfer.source.txHash.toLowerCase(),\n );\n\n if (transferUnstake?.payoutTxHash) {\n const updatedTransfer: TargetPendingTransfer = {\n ...currentTransfer,\n status: 'target-pending',\n target: {\n confirmationCount: 0,\n requiredConfirmationCount: 1,\n startedAtMs: Date.now(),\n txHash: transferUnstake.payoutTxHash,\n },\n };\n\n return updatedTransfer;\n }\n\n return currentTransfer;\n }\n default: {\n // target-pending\n if (!currentTransfer.target?.txHash) {\n // Fail if no target tx hash, should not reach here\n return {\n ...currentTransfer,\n errorCode: ErrorCode.UNKNOWN,\n errorReason: 'Missing target transaction hash',\n failedAtMs: Date.now(),\n status: 'failed',\n } satisfies FailedTransfer;\n }\n\n const receiptResult = await awaitOrAbort(bitcoinFunctions.getTransaction(currentTransfer.target.txHash), signal);\n\n if (receiptResult.status === 'aborted') {\n return currentTransfer;\n }\n\n const targetConfirmationCount = receiptResult.value.confirmations;\n\n if (targetConfirmationCount < currentTransfer.target.requiredConfirmationCount) {\n return {\n ...currentTransfer,\n target: {\n ...currentTransfer.target,\n confirmationCount: targetConfirmationCount,\n },\n } satisfies TargetPendingTransfer;\n }\n\n // Completed\n return {\n ...currentTransfer,\n completedAtMs: Date.now(),\n target: {\n ...currentTransfer.target,\n confirmationCount: targetConfirmationCount,\n },\n status: 'completed',\n } satisfies CompletedTransfer;\n }\n }\n}\n"],"mappings":"yLAwBA,SAAgB,EAAqB,CACnC,mBACA,UACgE,CAChE,OAAQ,CAAE,WAAU,oBAAqB,CACvC,IAAM,EAAK,IAAI,gBACT,MAAe,CACnB,EAAG,OAAO,EA8DZ,OA3DI,EAAS,SAAW,aAAe,EAAS,SAAW,SAClD,CACL,SACA,OAAQ,QAAQ,QAAQ,EAAS,CAClC,CAuDI,CACL,SACA,QAtDsB,SAA+B,CACrD,IAAI,EAA4B,gBAAgB,EAAS,CAEnD,EAAeA,EAAAA,qBAAqB,CAAE,MAAO,EAAS,YAAa,CAAC,CAE1E,KAAO,CAAC,EAAG,OAAO,SAAS,CACzB,IAAM,EAAuB,EAAgB,OAE7C,OAAQ,EAAgB,OAAxB,CACE,IAAK,iBACH,EAAkB,MAAM,EAAe,CACrC,kBACA,OAAQ,EAAG,OACX,eACD,CAAC,CAEG,EAAG,OAAO,SACb,EAAe,EAAgB,CAGjC,MAEF,IAAK,mBACL,IAAK,iBACH,EAAkB,MAAM,EAAe,CACrC,mBACA,SACA,kBACA,OAAQ,EAAG,OACZ,CAAC,CAEG,EAAG,OAAO,SACb,EAAe,EAAgB,CAGjC,MAEF,QACE,OAAO,EAIc,EAAgB,SAAW,GAGlD,MAAMC,EAAAA,sBAAsB,CAAE,UAAW,IAAgC,OAAQ,EAAG,OAAQ,CAAC,CAIjG,OAAO,KAKkB,CAC1B,EAoBL,eAAsB,EAAe,CACnC,kBACA,SACA,gBACiG,CACjG,GAAM,CAAE,oBAAmB,4BAA2B,UAAW,EAAgB,OAEjF,GAAI,EAAA,EAAA,EAAA,QAAQ,EAAO,CASjB,MARuC,CACrC,GAAG,EACH,UAAWC,EAAAA,UAAU,eACrB,YAAa,kCACb,WAAY,KAAK,KAAK,CACtB,OAAQ,SACT,CAKH,GAAI,GAAqB,EAQvB,MALiD,CAC/C,GAAG,EACH,OAAQ,mBACT,CAKH,GAAI,CACF,IAAM,EAAgB,MAAMC,EAAAA,aAC1B,EAAa,0BAA0B,CACrC,cAAe,KAAK,IAAI,EAAoB,EAAG,EAA0B,CACzE,KAAM,EACP,CAAC,CACF,EACD,CAED,GAAI,EAAc,SAAW,UAC3B,OAAO,EAGT,IAAM,EAAqB,EAAc,MAEzC,GAAI,EAAmB,SAAW,WAChC,MAAO,CACL,GAAG,EACH,UAAWD,EAAAA,UAAU,qBACrB,WAAY,KAAK,KAAK,CACtB,OAAQ,SACT,CAGH,IAAM,EAA+B,MAAM,EACxC,4BAA4B,CAC3B,qBACD,CAAC,CACD,KAAM,GAAU,OAAO,EAAM,CAAC,CAC9B,UAAY,EAAoB,EAAE,CAcrC,OAXI,EAAuB,EAClB,CACL,GAAG,EACH,OAAQ,CACN,GAAG,EAAgB,OACnB,kBAAmB,EACpB,CACF,CAII,CACL,GAAG,EACH,OAAQ,CACN,GAAG,EAAgB,OACnB,kBAAmB,EACpB,CACD,OAAQ,mBACT,OACM,EAAO,CACd,MAAO,CACL,GAAG,EACH,UAAWE,EAAAA,yBAAyB,EAAM,CAC1C,WAAY,KAAK,KAAK,CACtB,OAAQ,SACT,EAIL,eAAsB,EAAe,CACnC,mBACA,SACA,kBACA,UACqH,CACrH,OAAQ,EAAgB,OAAxB,CACE,IAAK,mBAAoB,CACvB,IAAM,EAAiB,MAAMD,EAAAA,cAAAA,EAAAA,EAAAA,sBACN,CAAE,QAAS,EAAgB,YAAa,IAAK,EAAO,IAAK,CAAC,CAC/E,EACD,CAED,GAAI,EAAe,SAAW,UAC5B,OAAO,EAGT,IAAM,EAAkB,EAAe,MAAM,KAC1C,GAAM,EAAE,OAAO,aAAa,GAAK,EAAgB,OAAO,OAAO,aAAa,CAC9E,CAiBD,OAfI,GAAiB,aAC4B,CAC7C,GAAG,EACH,OAAQ,iBACR,OAAQ,CACN,kBAAmB,EACnB,0BAA2B,EAC3B,YAAa,KAAK,KAAK,CACvB,OAAQ,EAAgB,aACzB,CACF,CAKI,EAET,QAAS,CAEP,GAAI,CAAC,EAAgB,QAAQ,OAE3B,MAAO,CACL,GAAG,EACH,UAAWD,EAAAA,UAAU,QACrB,YAAa,kCACb,WAAY,KAAK,KAAK,CACtB,OAAQ,SACT,CAGH,IAAM,EAAgB,MAAMC,EAAAA,aAAa,EAAiB,eAAe,EAAgB,OAAO,OAAO,CAAE,EAAO,CAEhH,GAAI,EAAc,SAAW,UAC3B,OAAO,EAGT,IAAM,EAA0B,EAAc,MAAM,cAapD,OAXI,EAA0B,EAAgB,OAAO,0BAC5C,CACL,GAAG,EACH,OAAQ,CACN,GAAG,EAAgB,OACnB,kBAAmB,EACpB,CACF,CAII,CACL,GAAG,EACH,cAAe,KAAK,KAAK,CACzB,OAAQ,CACN,GAAG,EAAgB,OACnB,kBAAmB,EACpB,CACD,OAAQ,YACT"}
@@ -0,0 +1,2 @@
1
+ import{ErrorCode as e}from"../../../../errors.js";import{awaitOrAbort as t,getErrorCodeForViemError as n,getEvmClientForChain as r,waitForTimeoutOrAbort as i}from"../../../_utils.js";import{isHash as a}from"viem";import{getUnstakesByAddress as o}from"@lombard.finance/sdk";function s({bitcoinFunctions:e,config:t}){return({transfer:n,updateListener:a})=>{let o=new AbortController,s=()=>{o.abort()};return n.status===`completed`||n.status===`failed`?{cancel:s,result:Promise.resolve(n)}:{cancel:s,result:(async()=>{let s=structuredClone(n),u=r({chain:n.sourceChain});for(;!o.signal.aborted;){let n=s.status;switch(s.status){case`source-pending`:s=await c({currentTransfer:s,signal:o.signal,sourceClient:u}),o.signal.aborted||a(s);break;case`source-completed`:case`target-pending`:s=await l({bitcoinFunctions:e,config:t,currentTransfer:s,signal:o.signal}),o.signal.aborted||a(s);break;default:return s}s.status===n&&await i({timeoutMs:6e4,signal:o.signal})}return s})()}}}async function c({currentTransfer:r,signal:i,sourceClient:o}){let{confirmationCount:s,requiredConfirmationCount:c,txHash:l}=r.source;if(!a(l))return{...r,errorCode:e.INVALID_PARAMS,errorReason:`Invalid source transaction hash`,failedAtMs:Date.now(),status:`failed`};if(s>=c)return{...r,status:`source-completed`};try{let n=await t(o.waitForTransactionReceipt({confirmations:Math.min(s+1,c),hash:l}),i);if(n.status===`aborted`)return r;let a=n.value;if(a.status===`reverted`)return{...r,errorCode:e.TRANSACTION_REVERTED,failedAtMs:Date.now(),status:`failed`};let u=await o.getTransactionConfirmations({transactionReceipt:a}).then(e=>Number(e)).catch(()=>s+1);return u<c?{...r,source:{...r.source,confirmationCount:u}}:{...r,source:{...r.source,confirmationCount:u},status:`source-completed`}}catch(e){return{...r,errorCode:n(e),failedAtMs:Date.now(),status:`failed`}}}async function l({bitcoinFunctions:n,config:r,currentTransfer:i,signal:a}){switch(i.status){case`source-completed`:{let e=await t(o({address:i.fromAddress,env:r.env}),a);if(e.status===`aborted`)return i;let n=e.value.find(e=>e.txHash.toLowerCase()===i.source.txHash.toLowerCase());return n?.payoutTxHash?{...i,status:`target-pending`,target:{confirmationCount:0,requiredConfirmationCount:1,startedAtMs:Date.now(),txHash:n.payoutTxHash}}:i}default:{if(!i.target?.txHash)return{...i,errorCode:e.UNKNOWN,errorReason:`Missing target transaction hash`,failedAtMs:Date.now(),status:`failed`};let r=await t(n.getTransaction(i.target.txHash),a);if(r.status===`aborted`)return i;let o=r.value.confirmations;return o<i.target.requiredConfirmationCount?{...i,target:{...i.target,confirmationCount:o}}:{...i,completedAtMs:Date.now(),target:{...i.target,confirmationCount:o},status:`completed`}}}}export{s as trackTransferFactory};
2
+ //# sourceMappingURL=track-transfer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"track-transfer.js","names":[],"sources":["../../../../../src/transfer-service/lombard/btcb-to-btc/_handlers/track-transfer.ts"],"sourcesContent":["import { isHash } from 'viem';\nimport { ErrorCode } from '../../../../errors';\nimport type { BitcoinFunctions } from '../../../../types/bitcoin';\nimport type { TransferService } from '../../../../types/service';\nimport type {\n CompletedTransfer,\n FailedTransfer,\n SourceCompletedTransfer,\n SourcePendingTransfer,\n TargetPendingTransfer,\n Transfer,\n} from '../../../../types/transfer';\nimport type { BtcbToBtcConfig } from '../../types';\nimport { awaitOrAbort, getErrorCodeForViemError, getEvmClientForChain, waitForTimeoutOrAbort } from '../../../_utils';\nimport { getUnstakesByAddress } from '@lombard.finance/sdk';\n\n// Polling interval for BTC redemptions (60 seconds - BTC confirmations are slow)\nconst REDEMPTION_POLLING_INTERVAL_MS = 1000 * 60;\n\nexport interface TrackTransferFactoryOptions {\n bitcoinFunctions: BitcoinFunctions;\n config: BtcbToBtcConfig;\n}\n\nexport function trackTransferFactory({\n bitcoinFunctions,\n config,\n}: TrackTransferFactoryOptions): TransferService['trackTransfer'] {\n return ({ transfer, updateListener }) => {\n const ac = new AbortController();\n const cancel = () => {\n ac.abort();\n };\n\n if (transfer.status === 'completed' || transfer.status === 'failed') {\n return {\n cancel,\n result: Promise.resolve(transfer),\n };\n }\n\n const executeTracking = async (): Promise<Transfer> => {\n let currentTransfer: Transfer = structuredClone(transfer);\n\n const sourceClient = getEvmClientForChain({ chain: transfer.sourceChain });\n\n while (!ac.signal.aborted) {\n const statusBeforeTracking = currentTransfer.status;\n\n switch (currentTransfer.status) {\n case 'source-pending': {\n currentTransfer = await _trackSourceTx({\n currentTransfer,\n signal: ac.signal,\n sourceClient,\n });\n\n if (!ac.signal.aborted) {\n updateListener(currentTransfer);\n }\n\n break;\n }\n case 'source-completed':\n case 'target-pending': {\n currentTransfer = await _trackTargetTx({\n bitcoinFunctions,\n config,\n currentTransfer,\n signal: ac.signal,\n });\n\n if (!ac.signal.aborted) {\n updateListener(currentTransfer);\n }\n\n break;\n }\n default: {\n return currentTransfer;\n }\n }\n\n const hasStatusChanged = currentTransfer.status !== statusBeforeTracking;\n\n if (!hasStatusChanged) {\n await waitForTimeoutOrAbort({ timeoutMs: REDEMPTION_POLLING_INTERVAL_MS, signal: ac.signal });\n }\n }\n\n return currentTransfer;\n };\n\n return {\n cancel,\n result: executeTracking(),\n };\n };\n}\n\nexport interface TrackBaseParams {\n currentTransfer: Transfer;\n signal: AbortSignal;\n}\n\nexport interface TrackSourceTxParams extends TrackBaseParams {\n currentTransfer: SourcePendingTransfer;\n sourceClient: ReturnType<typeof getEvmClientForChain>;\n}\n\nexport interface TrackTargetTxParams extends TrackBaseParams {\n bitcoinFunctions: BitcoinFunctions;\n config: BtcbToBtcConfig;\n currentTransfer: SourceCompletedTransfer | TargetPendingTransfer;\n}\n\nexport async function _trackSourceTx({\n currentTransfer,\n signal,\n sourceClient,\n}: TrackSourceTxParams): Promise<SourcePendingTransfer | SourceCompletedTransfer | FailedTransfer> {\n const { confirmationCount, requiredConfirmationCount, txHash } = currentTransfer.source;\n\n if (!isHash(txHash)) {\n const failedTransfer: FailedTransfer = {\n ...currentTransfer,\n errorCode: ErrorCode.INVALID_PARAMS,\n errorReason: 'Invalid source transaction hash',\n failedAtMs: Date.now(),\n status: 'failed',\n };\n\n return failedTransfer;\n }\n\n if (confirmationCount >= requiredConfirmationCount) {\n // Move to next stage\n\n const updatedTransfer: SourceCompletedTransfer = {\n ...currentTransfer,\n status: 'source-completed',\n };\n\n return updatedTransfer;\n }\n\n try {\n const receiptResult = await awaitOrAbort(\n sourceClient.waitForTransactionReceipt({\n confirmations: Math.min(confirmationCount + 1, requiredConfirmationCount),\n hash: txHash,\n }),\n signal,\n );\n\n if (receiptResult.status === 'aborted') {\n return currentTransfer;\n }\n\n const transactionReceipt = receiptResult.value;\n\n if (transactionReceipt.status === 'reverted') {\n return {\n ...currentTransfer,\n errorCode: ErrorCode.TRANSACTION_REVERTED,\n failedAtMs: Date.now(),\n status: 'failed',\n } satisfies FailedTransfer;\n }\n\n const newConfirmationCount: number = await sourceClient\n .getTransactionConfirmations({\n transactionReceipt,\n })\n .then((count) => Number(count))\n .catch(() => confirmationCount + 1);\n\n // If still not enough confirmations, update the count\n if (newConfirmationCount < requiredConfirmationCount) {\n return {\n ...currentTransfer,\n source: {\n ...currentTransfer.source,\n confirmationCount: newConfirmationCount,\n },\n } satisfies SourcePendingTransfer;\n }\n\n // Move to next stage\n return {\n ...currentTransfer,\n source: {\n ...currentTransfer.source,\n confirmationCount: newConfirmationCount,\n },\n status: 'source-completed',\n } satisfies SourceCompletedTransfer;\n } catch (error) {\n return {\n ...currentTransfer,\n errorCode: getErrorCodeForViemError(error),\n failedAtMs: Date.now(),\n status: 'failed',\n } satisfies FailedTransfer;\n }\n}\n\nexport async function _trackTargetTx({\n bitcoinFunctions,\n config,\n currentTransfer,\n signal,\n}: TrackTargetTxParams): Promise<SourceCompletedTransfer | TargetPendingTransfer | FailedTransfer | CompletedTransfer> {\n switch (currentTransfer.status) {\n case 'source-completed': {\n const unstakesResult = await awaitOrAbort(\n getUnstakesByAddress({ address: currentTransfer.fromAddress, env: config.env }),\n signal,\n );\n\n if (unstakesResult.status === 'aborted') {\n return currentTransfer;\n }\n\n const transferUnstake = unstakesResult.value.find(\n (d) => d.txHash.toLowerCase() === currentTransfer.source.txHash.toLowerCase(),\n );\n\n if (transferUnstake?.payoutTxHash) {\n const updatedTransfer: TargetPendingTransfer = {\n ...currentTransfer,\n status: 'target-pending',\n target: {\n confirmationCount: 0,\n requiredConfirmationCount: 1,\n startedAtMs: Date.now(),\n txHash: transferUnstake.payoutTxHash,\n },\n };\n\n return updatedTransfer;\n }\n\n return currentTransfer;\n }\n default: {\n // target-pending\n if (!currentTransfer.target?.txHash) {\n // Fail if no target tx hash, should not reach here\n return {\n ...currentTransfer,\n errorCode: ErrorCode.UNKNOWN,\n errorReason: 'Missing target transaction hash',\n failedAtMs: Date.now(),\n status: 'failed',\n } satisfies FailedTransfer;\n }\n\n const receiptResult = await awaitOrAbort(bitcoinFunctions.getTransaction(currentTransfer.target.txHash), signal);\n\n if (receiptResult.status === 'aborted') {\n return currentTransfer;\n }\n\n const targetConfirmationCount = receiptResult.value.confirmations;\n\n if (targetConfirmationCount < currentTransfer.target.requiredConfirmationCount) {\n return {\n ...currentTransfer,\n target: {\n ...currentTransfer.target,\n confirmationCount: targetConfirmationCount,\n },\n } satisfies TargetPendingTransfer;\n }\n\n // Completed\n return {\n ...currentTransfer,\n completedAtMs: Date.now(),\n target: {\n ...currentTransfer.target,\n confirmationCount: targetConfirmationCount,\n },\n status: 'completed',\n } satisfies CompletedTransfer;\n }\n }\n}\n"],"mappings":"iRAwBA,SAAgB,EAAqB,CACnC,mBACA,UACgE,CAChE,OAAQ,CAAE,WAAU,oBAAqB,CACvC,IAAM,EAAK,IAAI,gBACT,MAAe,CACnB,EAAG,OAAO,EA8DZ,OA3DI,EAAS,SAAW,aAAe,EAAS,SAAW,SAClD,CACL,SACA,OAAQ,QAAQ,QAAQ,EAAS,CAClC,CAuDI,CACL,SACA,QAtDsB,SAA+B,CACrD,IAAI,EAA4B,gBAAgB,EAAS,CAEnD,EAAe,EAAqB,CAAE,MAAO,EAAS,YAAa,CAAC,CAE1E,KAAO,CAAC,EAAG,OAAO,SAAS,CACzB,IAAM,EAAuB,EAAgB,OAE7C,OAAQ,EAAgB,OAAxB,CACE,IAAK,iBACH,EAAkB,MAAM,EAAe,CACrC,kBACA,OAAQ,EAAG,OACX,eACD,CAAC,CAEG,EAAG,OAAO,SACb,EAAe,EAAgB,CAGjC,MAEF,IAAK,mBACL,IAAK,iBACH,EAAkB,MAAM,EAAe,CACrC,mBACA,SACA,kBACA,OAAQ,EAAG,OACZ,CAAC,CAEG,EAAG,OAAO,SACb,EAAe,EAAgB,CAGjC,MAEF,QACE,OAAO,EAIc,EAAgB,SAAW,GAGlD,MAAM,EAAsB,CAAE,UAAW,IAAgC,OAAQ,EAAG,OAAQ,CAAC,CAIjG,OAAO,KAKkB,CAC1B,EAoBL,eAAsB,EAAe,CACnC,kBACA,SACA,gBACiG,CACjG,GAAM,CAAE,oBAAmB,4BAA2B,UAAW,EAAgB,OAEjF,GAAI,CAAC,EAAO,EAAO,CASjB,MARuC,CACrC,GAAG,EACH,UAAW,EAAU,eACrB,YAAa,kCACb,WAAY,KAAK,KAAK,CACtB,OAAQ,SACT,CAKH,GAAI,GAAqB,EAQvB,MALiD,CAC/C,GAAG,EACH,OAAQ,mBACT,CAKH,GAAI,CACF,IAAM,EAAgB,MAAM,EAC1B,EAAa,0BAA0B,CACrC,cAAe,KAAK,IAAI,EAAoB,EAAG,EAA0B,CACzE,KAAM,EACP,CAAC,CACF,EACD,CAED,GAAI,EAAc,SAAW,UAC3B,OAAO,EAGT,IAAM,EAAqB,EAAc,MAEzC,GAAI,EAAmB,SAAW,WAChC,MAAO,CACL,GAAG,EACH,UAAW,EAAU,qBACrB,WAAY,KAAK,KAAK,CACtB,OAAQ,SACT,CAGH,IAAM,EAA+B,MAAM,EACxC,4BAA4B,CAC3B,qBACD,CAAC,CACD,KAAM,GAAU,OAAO,EAAM,CAAC,CAC9B,UAAY,EAAoB,EAAE,CAcrC,OAXI,EAAuB,EAClB,CACL,GAAG,EACH,OAAQ,CACN,GAAG,EAAgB,OACnB,kBAAmB,EACpB,CACF,CAII,CACL,GAAG,EACH,OAAQ,CACN,GAAG,EAAgB,OACnB,kBAAmB,EACpB,CACD,OAAQ,mBACT,OACM,EAAO,CACd,MAAO,CACL,GAAG,EACH,UAAW,EAAyB,EAAM,CAC1C,WAAY,KAAK,KAAK,CACtB,OAAQ,SACT,EAIL,eAAsB,EAAe,CACnC,mBACA,SACA,kBACA,UACqH,CACrH,OAAQ,EAAgB,OAAxB,CACE,IAAK,mBAAoB,CACvB,IAAM,EAAiB,MAAM,EAC3B,EAAqB,CAAE,QAAS,EAAgB,YAAa,IAAK,EAAO,IAAK,CAAC,CAC/E,EACD,CAED,GAAI,EAAe,SAAW,UAC5B,OAAO,EAGT,IAAM,EAAkB,EAAe,MAAM,KAC1C,GAAM,EAAE,OAAO,aAAa,GAAK,EAAgB,OAAO,OAAO,aAAa,CAC9E,CAiBD,OAfI,GAAiB,aAC4B,CAC7C,GAAG,EACH,OAAQ,iBACR,OAAQ,CACN,kBAAmB,EACnB,0BAA2B,EAC3B,YAAa,KAAK,KAAK,CACvB,OAAQ,EAAgB,aACzB,CACF,CAKI,EAET,QAAS,CAEP,GAAI,CAAC,EAAgB,QAAQ,OAE3B,MAAO,CACL,GAAG,EACH,UAAW,EAAU,QACrB,YAAa,kCACb,WAAY,KAAK,KAAK,CACtB,OAAQ,SACT,CAGH,IAAM,EAAgB,MAAM,EAAa,EAAiB,eAAe,EAAgB,OAAO,OAAO,CAAE,EAAO,CAEhH,GAAI,EAAc,SAAW,UAC3B,OAAO,EAGT,IAAM,EAA0B,EAAc,MAAM,cAapD,OAXI,EAA0B,EAAgB,OAAO,0BAC5C,CACL,GAAG,EACH,OAAQ,CACN,GAAG,EAAgB,OACnB,kBAAmB,EACpB,CACF,CAII,CACL,GAAG,EACH,cAAe,KAAK,KAAK,CACzB,OAAQ,CACN,GAAG,EAAgB,OACnB,kBAAmB,EACpB,CACD,OAAQ,YACT"}
@@ -0,0 +1,2 @@
1
+ require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../../constants.cjs`),t=require(`../../../../errors.cjs`),n=require(`../../../../utils/caip.cjs`),r=require(`../../../../utils/bitcoin-address.cjs`),i=require(`../../constants.cjs`);let a=require(`viem`),o=require(`@lombard.finance/sdk`);function s({bitcoinFunctions:s,config:c,evmSigner:l}){return async({quote:u})=>{if(!(0,a.isAddress)(u.fromAddress))throw new t.InvalidParamsError(t.ErrorReason.INCORRECT_ADDRESS_PROVIDED,`Invalid fromAddress was provided. Must be a valid EVM address.`);if(!r.isBech32AddressInNetwork(u.toAddress,c.environment===e.Environment.PROD))throw new t.InvalidParamsError(t.ErrorReason.INCORRECT_ADDRESS_PROVIDED,`Invalid toAddress was provided. Make sure it is a BTC address from correct environment.`);let d=Date.now(),f;try{f=BigInt(await s.getChainHeight())}catch{return{amountIn:u.amountIn,amountOut:u.amountOut,environment:c.environment,errorCode:t.ErrorCode.UNKNOWN,errorReason:`Unable to fetch target chain height`,failedAtMs:Date.now(),fees:u.fees,fromAddress:u.fromAddress,id:u.id,partnerFeeBps:u.partnerFeeBps,sourceAsset:u.assetIn,sourceChain:u.sourceChain,status:`failed`,targetAsset:u.assetOut,targetChain:u.targetChain,toAddress:u.toAddress,type:e.ServiceType.LOMBARD_BTCB_TO_BTC}}let p=await(0,o.redeemToken)({account:u.fromAddress,btcAddress:u.toAddress,amount:(0,o.fromBaseDenomination)(u.amountIn.toString(),c.sourceAsset.decimals),chainId:c.sourceChainId,signer:{sign:async(t,r)=>l.sign({...t,chainId:t.chainId??n.caip2ToEip155HexChainId(c.sourceChain)},r,{currentSignature:1,currentSignatureReason:e.TransferSignatureReason.TokensTransfer,quote:u,requiredSignatures:1})},tokenIn:o.Token.BTCb,tokenOut:void 0,env:c.env});return{amountIn:u.amountIn,amountOut:u.amountOut,environment:c.environment,fees:u.fees,fromAddress:u.fromAddress,id:u.id,partnerFeeBps:u.partnerFeeBps,source:{confirmationCount:0,requiredConfirmationCount:i.EVM_CONFIRMATION_COUNT,startedAtMs:d,targetStartBlockNumber:f,txHash:p},sourceAsset:u.assetIn,sourceChain:u.sourceChain,status:`source-pending`,targetAsset:u.assetOut,targetChain:u.targetChain,toAddress:u.toAddress,type:e.ServiceType.LOMBARD_BTCB_TO_BTC}}}exports.transferAssetFactory=s;
2
+ //# sourceMappingURL=transfer-asset.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfer-asset.cjs","names":["InvalidParamsError","ErrorReason","isBech32AddressInNetwork","Environment","ErrorCode","ServiceType","caip2ToEip155HexChainId","TransferSignatureReason","Token","EVM_CONFIRMATION_COUNT"],"sources":["../../../../../src/transfer-service/lombard/btcb-to-btc/_handlers/transfer-asset.ts"],"sourcesContent":["import { isAddress } from 'viem';\nimport { Environment, ServiceType, TransferSignatureReason } from '../../../../constants';\nimport { ErrorCode, ErrorReason, InvalidParamsError } from '../../../../errors';\nimport { caip2ToEip155HexChainId } from '../../../../utils/caip';\nimport type { BitcoinFunctions } from '../../../../types/bitcoin';\nimport type { TransferService } from '../../../../types/service';\nimport type { EvmSignerWithMessage } from '../../../../types/signer';\nimport type { FailedTransfer, SourcePendingTransfer } from '../../../../types/transfer';\nimport type { BtcbToBtcConfig } from '../../types';\nimport { isBech32AddressInNetwork } from '../../../../utils/bitcoin-address';\nimport { fromBaseDenomination, redeemToken, Token } from '@lombard.finance/sdk';\nimport { EVM_CONFIRMATION_COUNT } from '../../constants';\n\nexport interface TransferAssetFactoryOptions {\n bitcoinFunctions: BitcoinFunctions;\n config: BtcbToBtcConfig;\n evmSigner: EvmSignerWithMessage;\n}\n\nexport function transferAssetFactory({\n bitcoinFunctions,\n config,\n evmSigner,\n}: TransferAssetFactoryOptions): TransferService['transferAsset'] {\n return async ({ quote }) => {\n if (!isAddress(quote.fromAddress)) {\n throw new InvalidParamsError(\n ErrorReason.INCORRECT_ADDRESS_PROVIDED,\n 'Invalid fromAddress was provided. Must be a valid EVM address.',\n );\n }\n\n if (!isBech32AddressInNetwork(quote.toAddress, config.environment === Environment.PROD)) {\n throw new InvalidParamsError(\n ErrorReason.INCORRECT_ADDRESS_PROVIDED,\n 'Invalid toAddress was provided. Make sure it is a BTC address from correct environment.',\n );\n }\n\n const startedAtMs = Date.now();\n\n let targetStartBlockNumber: bigint;\n\n try {\n targetStartBlockNumber = BigInt(await bitcoinFunctions.getChainHeight());\n } catch {\n // Unable to get chain height. Not able to track from this point.\n\n return {\n amountIn: quote.amountIn,\n amountOut: quote.amountOut,\n environment: config.environment,\n errorCode: ErrorCode.UNKNOWN,\n errorReason: 'Unable to fetch target chain height',\n failedAtMs: Date.now(),\n fees: quote.fees,\n fromAddress: quote.fromAddress,\n id: quote.id,\n partnerFeeBps: quote.partnerFeeBps,\n sourceAsset: quote.assetIn,\n sourceChain: quote.sourceChain,\n status: 'failed',\n targetAsset: quote.assetOut,\n targetChain: quote.targetChain,\n toAddress: quote.toAddress,\n type: ServiceType.LOMBARD_BTCB_TO_BTC,\n } satisfies FailedTransfer;\n }\n\n const txHash = await redeemToken({\n account: quote.fromAddress,\n btcAddress: quote.toAddress,\n amount: fromBaseDenomination(quote.amountIn.toString(), config.sourceAsset.decimals),\n chainId: config.sourceChainId,\n signer: {\n sign: async (tx, dispatch) => {\n return evmSigner.sign(\n {\n ...tx,\n chainId: tx.chainId ?? caip2ToEip155HexChainId(config.sourceChain),\n },\n dispatch,\n {\n currentSignature: 1,\n currentSignatureReason: TransferSignatureReason.TokensTransfer,\n quote,\n requiredSignatures: 1,\n },\n );\n },\n },\n tokenIn: Token.BTCb,\n tokenOut: undefined,\n env: config.env,\n });\n\n return {\n amountIn: quote.amountIn,\n amountOut: quote.amountOut,\n environment: config.environment,\n fees: quote.fees,\n fromAddress: quote.fromAddress,\n id: quote.id,\n partnerFeeBps: quote.partnerFeeBps,\n source: {\n confirmationCount: 0,\n requiredConfirmationCount: EVM_CONFIRMATION_COUNT,\n startedAtMs,\n targetStartBlockNumber,\n txHash,\n },\n sourceAsset: quote.assetIn,\n sourceChain: quote.sourceChain,\n status: 'source-pending',\n targetAsset: quote.assetOut,\n targetChain: quote.targetChain,\n toAddress: quote.toAddress,\n type: ServiceType.LOMBARD_BTCB_TO_BTC,\n } satisfies SourcePendingTransfer;\n };\n}\n"],"mappings":"2TAmBA,SAAgB,EAAqB,CACnC,mBACA,SACA,aACgE,CAChE,OAAO,MAAO,CAAE,WAAY,CAC1B,GAAI,EAAA,EAAA,EAAA,WAAW,EAAM,YAAY,CAC/B,MAAM,IAAIA,EAAAA,mBACRC,EAAAA,YAAY,2BACZ,iEACD,CAGH,GAAI,CAACC,EAAAA,yBAAyB,EAAM,UAAW,EAAO,cAAgBC,EAAAA,YAAY,KAAK,CACrF,MAAM,IAAIH,EAAAA,mBACRC,EAAAA,YAAY,2BACZ,0FACD,CAGH,IAAM,EAAc,KAAK,KAAK,CAE1B,EAEJ,GAAI,CACF,EAAyB,OAAO,MAAM,EAAiB,gBAAgB,CAAC,MAClE,CAGN,MAAO,CACL,SAAU,EAAM,SAChB,UAAW,EAAM,UACjB,YAAa,EAAO,YACpB,UAAWG,EAAAA,UAAU,QACrB,YAAa,sCACb,WAAY,KAAK,KAAK,CACtB,KAAM,EAAM,KACZ,YAAa,EAAM,YACnB,GAAI,EAAM,GACV,cAAe,EAAM,cACrB,YAAa,EAAM,QACnB,YAAa,EAAM,YACnB,OAAQ,SACR,YAAa,EAAM,SACnB,YAAa,EAAM,YACnB,UAAW,EAAM,UACjB,KAAMC,EAAAA,YAAY,oBACnB,CAGH,IAAM,EAAS,MAAA,EAAA,EAAA,aAAkB,CAC/B,QAAS,EAAM,YACf,WAAY,EAAM,UAClB,QAAA,EAAA,EAAA,sBAA6B,EAAM,SAAS,UAAU,CAAE,EAAO,YAAY,SAAS,CACpF,QAAS,EAAO,cAChB,OAAQ,CACN,KAAM,MAAO,EAAI,IACR,EAAU,KACf,CACE,GAAG,EACH,QAAS,EAAG,SAAWC,EAAAA,wBAAwB,EAAO,YAAY,CACnE,CACD,EACA,CACE,iBAAkB,EAClB,uBAAwBC,EAAAA,wBAAwB,eAChD,QACA,mBAAoB,EACrB,CACF,CAEJ,CACD,QAASC,EAAAA,MAAM,KACf,SAAU,IAAA,GACV,IAAK,EAAO,IACb,CAAC,CAEF,MAAO,CACL,SAAU,EAAM,SAChB,UAAW,EAAM,UACjB,YAAa,EAAO,YACpB,KAAM,EAAM,KACZ,YAAa,EAAM,YACnB,GAAI,EAAM,GACV,cAAe,EAAM,cACrB,OAAQ,CACN,kBAAmB,EACnB,0BAA2BC,EAAAA,uBAC3B,cACA,yBACA,SACD,CACD,YAAa,EAAM,QACnB,YAAa,EAAM,YACnB,OAAQ,iBACR,YAAa,EAAM,SACnB,YAAa,EAAM,YACnB,UAAW,EAAM,UACjB,KAAMJ,EAAAA,YAAY,oBACnB"}
@@ -0,0 +1,2 @@
1
+ import{Environment as e,ServiceType as t,TransferSignatureReason as n}from"../../../../constants.js";import{ErrorCode as r,ErrorReason as i,InvalidParamsError as a}from"../../../../errors.js";import{caip2ToEip155HexChainId as o}from"../../../../utils/caip.js";import{isBech32AddressInNetwork as s}from"../../../../utils/bitcoin-address.js";import{EVM_CONFIRMATION_COUNT as c}from"../../constants.js";import{isAddress as l}from"viem";import{Token as u,fromBaseDenomination as d,redeemToken as f}from"@lombard.finance/sdk";function p({bitcoinFunctions:p,config:m,evmSigner:h}){return async({quote:g})=>{if(!l(g.fromAddress))throw new a(i.INCORRECT_ADDRESS_PROVIDED,`Invalid fromAddress was provided. Must be a valid EVM address.`);if(!s(g.toAddress,m.environment===e.PROD))throw new a(i.INCORRECT_ADDRESS_PROVIDED,`Invalid toAddress was provided. Make sure it is a BTC address from correct environment.`);let _=Date.now(),v;try{v=BigInt(await p.getChainHeight())}catch{return{amountIn:g.amountIn,amountOut:g.amountOut,environment:m.environment,errorCode:r.UNKNOWN,errorReason:`Unable to fetch target chain height`,failedAtMs:Date.now(),fees:g.fees,fromAddress:g.fromAddress,id:g.id,partnerFeeBps:g.partnerFeeBps,sourceAsset:g.assetIn,sourceChain:g.sourceChain,status:`failed`,targetAsset:g.assetOut,targetChain:g.targetChain,toAddress:g.toAddress,type:t.LOMBARD_BTCB_TO_BTC}}let y=await f({account:g.fromAddress,btcAddress:g.toAddress,amount:d(g.amountIn.toString(),m.sourceAsset.decimals),chainId:m.sourceChainId,signer:{sign:async(e,t)=>h.sign({...e,chainId:e.chainId??o(m.sourceChain)},t,{currentSignature:1,currentSignatureReason:n.TokensTransfer,quote:g,requiredSignatures:1})},tokenIn:u.BTCb,tokenOut:void 0,env:m.env});return{amountIn:g.amountIn,amountOut:g.amountOut,environment:m.environment,fees:g.fees,fromAddress:g.fromAddress,id:g.id,partnerFeeBps:g.partnerFeeBps,source:{confirmationCount:0,requiredConfirmationCount:c,startedAtMs:_,targetStartBlockNumber:v,txHash:y},sourceAsset:g.assetIn,sourceChain:g.sourceChain,status:`source-pending`,targetAsset:g.assetOut,targetChain:g.targetChain,toAddress:g.toAddress,type:t.LOMBARD_BTCB_TO_BTC}}}export{p as transferAssetFactory};
2
+ //# sourceMappingURL=transfer-asset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfer-asset.js","names":[],"sources":["../../../../../src/transfer-service/lombard/btcb-to-btc/_handlers/transfer-asset.ts"],"sourcesContent":["import { isAddress } from 'viem';\nimport { Environment, ServiceType, TransferSignatureReason } from '../../../../constants';\nimport { ErrorCode, ErrorReason, InvalidParamsError } from '../../../../errors';\nimport { caip2ToEip155HexChainId } from '../../../../utils/caip';\nimport type { BitcoinFunctions } from '../../../../types/bitcoin';\nimport type { TransferService } from '../../../../types/service';\nimport type { EvmSignerWithMessage } from '../../../../types/signer';\nimport type { FailedTransfer, SourcePendingTransfer } from '../../../../types/transfer';\nimport type { BtcbToBtcConfig } from '../../types';\nimport { isBech32AddressInNetwork } from '../../../../utils/bitcoin-address';\nimport { fromBaseDenomination, redeemToken, Token } from '@lombard.finance/sdk';\nimport { EVM_CONFIRMATION_COUNT } from '../../constants';\n\nexport interface TransferAssetFactoryOptions {\n bitcoinFunctions: BitcoinFunctions;\n config: BtcbToBtcConfig;\n evmSigner: EvmSignerWithMessage;\n}\n\nexport function transferAssetFactory({\n bitcoinFunctions,\n config,\n evmSigner,\n}: TransferAssetFactoryOptions): TransferService['transferAsset'] {\n return async ({ quote }) => {\n if (!isAddress(quote.fromAddress)) {\n throw new InvalidParamsError(\n ErrorReason.INCORRECT_ADDRESS_PROVIDED,\n 'Invalid fromAddress was provided. Must be a valid EVM address.',\n );\n }\n\n if (!isBech32AddressInNetwork(quote.toAddress, config.environment === Environment.PROD)) {\n throw new InvalidParamsError(\n ErrorReason.INCORRECT_ADDRESS_PROVIDED,\n 'Invalid toAddress was provided. Make sure it is a BTC address from correct environment.',\n );\n }\n\n const startedAtMs = Date.now();\n\n let targetStartBlockNumber: bigint;\n\n try {\n targetStartBlockNumber = BigInt(await bitcoinFunctions.getChainHeight());\n } catch {\n // Unable to get chain height. Not able to track from this point.\n\n return {\n amountIn: quote.amountIn,\n amountOut: quote.amountOut,\n environment: config.environment,\n errorCode: ErrorCode.UNKNOWN,\n errorReason: 'Unable to fetch target chain height',\n failedAtMs: Date.now(),\n fees: quote.fees,\n fromAddress: quote.fromAddress,\n id: quote.id,\n partnerFeeBps: quote.partnerFeeBps,\n sourceAsset: quote.assetIn,\n sourceChain: quote.sourceChain,\n status: 'failed',\n targetAsset: quote.assetOut,\n targetChain: quote.targetChain,\n toAddress: quote.toAddress,\n type: ServiceType.LOMBARD_BTCB_TO_BTC,\n } satisfies FailedTransfer;\n }\n\n const txHash = await redeemToken({\n account: quote.fromAddress,\n btcAddress: quote.toAddress,\n amount: fromBaseDenomination(quote.amountIn.toString(), config.sourceAsset.decimals),\n chainId: config.sourceChainId,\n signer: {\n sign: async (tx, dispatch) => {\n return evmSigner.sign(\n {\n ...tx,\n chainId: tx.chainId ?? caip2ToEip155HexChainId(config.sourceChain),\n },\n dispatch,\n {\n currentSignature: 1,\n currentSignatureReason: TransferSignatureReason.TokensTransfer,\n quote,\n requiredSignatures: 1,\n },\n );\n },\n },\n tokenIn: Token.BTCb,\n tokenOut: undefined,\n env: config.env,\n });\n\n return {\n amountIn: quote.amountIn,\n amountOut: quote.amountOut,\n environment: config.environment,\n fees: quote.fees,\n fromAddress: quote.fromAddress,\n id: quote.id,\n partnerFeeBps: quote.partnerFeeBps,\n source: {\n confirmationCount: 0,\n requiredConfirmationCount: EVM_CONFIRMATION_COUNT,\n startedAtMs,\n targetStartBlockNumber,\n txHash,\n },\n sourceAsset: quote.assetIn,\n sourceChain: quote.sourceChain,\n status: 'source-pending',\n targetAsset: quote.assetOut,\n targetChain: quote.targetChain,\n toAddress: quote.toAddress,\n type: ServiceType.LOMBARD_BTCB_TO_BTC,\n } satisfies SourcePendingTransfer;\n };\n}\n"],"mappings":"ygBAmBA,SAAgB,EAAqB,CACnC,mBACA,SACA,aACgE,CAChE,OAAO,MAAO,CAAE,WAAY,CAC1B,GAAI,CAAC,EAAU,EAAM,YAAY,CAC/B,MAAM,IAAI,EACR,EAAY,2BACZ,iEACD,CAGH,GAAI,CAAC,EAAyB,EAAM,UAAW,EAAO,cAAgB,EAAY,KAAK,CACrF,MAAM,IAAI,EACR,EAAY,2BACZ,0FACD,CAGH,IAAM,EAAc,KAAK,KAAK,CAE1B,EAEJ,GAAI,CACF,EAAyB,OAAO,MAAM,EAAiB,gBAAgB,CAAC,MAClE,CAGN,MAAO,CACL,SAAU,EAAM,SAChB,UAAW,EAAM,UACjB,YAAa,EAAO,YACpB,UAAW,EAAU,QACrB,YAAa,sCACb,WAAY,KAAK,KAAK,CACtB,KAAM,EAAM,KACZ,YAAa,EAAM,YACnB,GAAI,EAAM,GACV,cAAe,EAAM,cACrB,YAAa,EAAM,QACnB,YAAa,EAAM,YACnB,OAAQ,SACR,YAAa,EAAM,SACnB,YAAa,EAAM,YACnB,UAAW,EAAM,UACjB,KAAM,EAAY,oBACnB,CAGH,IAAM,EAAS,MAAM,EAAY,CAC/B,QAAS,EAAM,YACf,WAAY,EAAM,UAClB,OAAQ,EAAqB,EAAM,SAAS,UAAU,CAAE,EAAO,YAAY,SAAS,CACpF,QAAS,EAAO,cAChB,OAAQ,CACN,KAAM,MAAO,EAAI,IACR,EAAU,KACf,CACE,GAAG,EACH,QAAS,EAAG,SAAW,EAAwB,EAAO,YAAY,CACnE,CACD,EACA,CACE,iBAAkB,EAClB,uBAAwB,EAAwB,eAChD,QACA,mBAAoB,EACrB,CACF,CAEJ,CACD,QAAS,EAAM,KACf,SAAU,IAAA,GACV,IAAK,EAAO,IACb,CAAC,CAEF,MAAO,CACL,SAAU,EAAM,SAChB,UAAW,EAAM,UACjB,YAAa,EAAO,YACpB,KAAM,EAAM,KACZ,YAAa,EAAM,YACnB,GAAI,EAAM,GACV,cAAe,EAAM,cACrB,OAAQ,CACN,kBAAmB,EACnB,0BAA2B,EAC3B,cACA,yBACA,SACD,CACD,YAAa,EAAM,QACnB,YAAa,EAAM,YACnB,OAAQ,iBACR,YAAa,EAAM,SACnB,YAAa,EAAM,YACnB,UAAW,EAAM,UACjB,KAAM,EAAY,oBACnB"}
@@ -0,0 +1,2 @@
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants.cjs`),t=require(`../../errors.cjs`),n=require(`../../utils/caip.cjs`),r=require(`./constants.cjs`),i=require(`./_utils/asset.cjs`),a=require(`./_utils/chain.cjs`),o=require(`./_utils/fee.cjs`),s=require(`./btcb-to-btc/_handlers/analyze-support.cjs`),c=require(`./btcb-to-btc/_handlers/get-assets.cjs`),l=require(`./btcb-to-btc/_handlers/estimate-native-fee.cjs`),u=require(`./btcb-to-btc/_handlers/stream-quotes.cjs`),d=require(`./btcb-to-btc/_handlers/track-transfer.cjs`),f=require(`./btcb-to-btc/_handlers/transfer-asset.cjs`);let p=require(`@lombard.finance/sdk`);async function m({bitcoinFunctions:m,environment:h,evmSigner:g}){let _=r.ENV_MAP[h],v=_===p.Env.prod?e.AvalancheChainIds.MAINNET:e.AvalancheChainIds.FUJI,y=_===p.Env.prod?e.BitcoinChainIds.MAINNET:e.BitcoinChainIds.TESTNET,b=n.caip2ToEip155ChainId(v);a.assertSupportedChainId(b);let x=i.getBTCbAsset(b,_),S=r.BTCB_ADAPTER_ADDRESSES[_]?.[b];if(!S)throw new t.ServiceInitializationError;let C=await o.getFees(p.Token.BTCb,b,_),w={environment:h,env:_,sourceChain:v,targetChain:y,sourceChainId:b,sourceAsset:x,adapterAddress:S,targetAsset:r.BTC_NATIVE_ASSET,redeemFee:C.redeemFee,minRedeemAmount:C.minRedeemAmount};return{analyzeSupport:s.analyzeSupportFactory({config:w}),estimateNativeFee:l.estimateNativeFeeFactory({config:w}),getAssets:c.getAssetsFactory({config:w}),getMinimumTransferAmount:async()=>w.minRedeemAmount+w.redeemFee,getSupportedChains:async()=>new Map([[v,new Set([y])]]),streamQuotes:u.streamQuotesFactory({config:w}),trackTransfer:d.trackTransferFactory({bitcoinFunctions:m,config:w}),transferAsset:f.transferAssetFactory({bitcoinFunctions:m,config:w,evmSigner:g}),type:e.ServiceType.LOMBARD_BTCB_TO_BTC}}exports.createBtcbToBtcService=m;
2
+ //# sourceMappingURL=btcb-to-btc-service.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"btcb-to-btc-service.cjs","names":["ENV_MAP","Env","AvalancheChainIds","BitcoinChainIds","caip2ToEip155ChainId","getBTCbAsset","BTCB_ADAPTER_ADDRESSES","ServiceInitializationError","getFees","Token","BTC_NATIVE_ASSET","analyzeSupportFactory","estimateNativeFeeFactory","getAssetsFactory","streamQuotesFactory","trackTransferFactory","transferAssetFactory","ServiceType"],"sources":["../../../src/transfer-service/lombard/btcb-to-btc-service.ts"],"sourcesContent":["import { Env, Token } from '@lombard.finance/sdk';\nimport { AvalancheChainIds, BitcoinChainIds, ServiceType } from '../../constants';\nimport type { Environment } from '../../constants';\nimport { ServiceInitializationError } from '../../errors';\nimport { caip2ToEip155ChainId } from '../../utils/caip';\nimport type { BitcoinFunctions } from '../../types/bitcoin';\nimport type { TransferService } from '../../types/service';\nimport type { EvmSignerWithMessage } from '../../types/signer';\nimport { BTC_NATIVE_ASSET, BTCB_ADAPTER_ADDRESSES, ENV_MAP } from './constants';\nimport { getBTCbAsset } from './_utils/asset';\nimport { assertSupportedChainId } from './_utils/chain';\nimport type { BtcbToBtcConfig } from './types';\nimport { getFees } from './_utils/fee';\nimport { analyzeSupportFactory } from './btcb-to-btc/_handlers/analyze-support';\nimport { getAssetsFactory } from './btcb-to-btc/_handlers/get-assets';\nimport { estimateNativeFeeFactory } from './btcb-to-btc/_handlers/estimate-native-fee';\nimport { streamQuotesFactory } from './btcb-to-btc/_handlers/stream-quotes';\nimport { trackTransferFactory } from './btcb-to-btc/_handlers/track-transfer';\nimport { transferAssetFactory } from './btcb-to-btc/_handlers/transfer-asset';\nimport type { Fetch } from '../../types/utility-types';\n\nexport interface BtcbToBtcServiceOptions {\n bitcoinFunctions: BitcoinFunctions;\n environment: Environment;\n evmSigner: EvmSignerWithMessage;\n fetch?: Fetch;\n}\n\nexport async function createBtcbToBtcService({\n bitcoinFunctions,\n environment,\n evmSigner,\n}: BtcbToBtcServiceOptions): Promise<TransferService> {\n const env = ENV_MAP[environment];\n\n const sourceChain = env === Env.prod ? AvalancheChainIds.MAINNET : AvalancheChainIds.FUJI;\n const targetChain = env === Env.prod ? BitcoinChainIds.MAINNET : BitcoinChainIds.TESTNET;\n const sourceChainId = caip2ToEip155ChainId(sourceChain);\n\n assertSupportedChainId(sourceChainId);\n\n const sourceAsset = getBTCbAsset(sourceChainId, env);\n\n const adapterAddress = BTCB_ADAPTER_ADDRESSES[env]?.[sourceChainId];\n\n if (!adapterAddress) {\n throw new ServiceInitializationError();\n }\n\n const fees = await getFees(Token.BTCb, sourceChainId, env);\n\n const config: BtcbToBtcConfig = {\n environment,\n env,\n sourceChain,\n targetChain,\n sourceChainId,\n sourceAsset,\n adapterAddress,\n targetAsset: BTC_NATIVE_ASSET,\n redeemFee: fees.redeemFee,\n minRedeemAmount: fees.minRedeemAmount,\n };\n\n return {\n analyzeSupport: analyzeSupportFactory({ config }),\n estimateNativeFee: estimateNativeFeeFactory({ config }),\n getAssets: getAssetsFactory({ config }),\n getMinimumTransferAmount: async () => {\n return config.minRedeemAmount + config.redeemFee;\n },\n getSupportedChains: async () => {\n return new Map([[sourceChain, new Set([targetChain])]]);\n },\n streamQuotes: streamQuotesFactory({ config }),\n trackTransfer: trackTransferFactory({ bitcoinFunctions, config }),\n transferAsset: transferAssetFactory({ bitcoinFunctions, config, evmSigner }),\n type: ServiceType.LOMBARD_BTCB_TO_BTC,\n } satisfies TransferService;\n}\n"],"mappings":"yoBA4BA,eAAsB,EAAuB,CAC3C,mBACA,cACA,aACoD,CACpD,IAAM,EAAMA,EAAAA,QAAQ,GAEd,EAAc,IAAQC,EAAAA,IAAI,KAAOC,EAAAA,kBAAkB,QAAUA,EAAAA,kBAAkB,KAC/E,EAAc,IAAQD,EAAAA,IAAI,KAAOE,EAAAA,gBAAgB,QAAUA,EAAAA,gBAAgB,QAC3E,EAAgBC,EAAAA,qBAAqB,EAAY,CAEvD,EAAA,uBAAuB,EAAc,CAErC,IAAM,EAAcC,EAAAA,aAAa,EAAe,EAAI,CAE9C,EAAiBC,EAAAA,uBAAuB,KAAO,GAErD,GAAI,CAAC,EACH,MAAM,IAAIC,EAAAA,2BAGZ,IAAM,EAAO,MAAMC,EAAAA,QAAQC,EAAAA,MAAM,KAAM,EAAe,EAAI,CAEpD,EAA0B,CAC9B,cACA,MACA,cACA,cACA,gBACA,cACA,iBACA,YAAaC,EAAAA,iBACb,UAAW,EAAK,UAChB,gBAAiB,EAAK,gBACvB,CAED,MAAO,CACL,eAAgBC,EAAAA,sBAAsB,CAAE,SAAQ,CAAC,CACjD,kBAAmBC,EAAAA,yBAAyB,CAAE,SAAQ,CAAC,CACvD,UAAWC,EAAAA,iBAAiB,CAAE,SAAQ,CAAC,CACvC,yBAA0B,SACjB,EAAO,gBAAkB,EAAO,UAEzC,mBAAoB,SACX,IAAI,IAAI,CAAC,CAAC,EAAa,IAAI,IAAI,CAAC,EAAY,CAAC,CAAC,CAAC,CAAC,CAEzD,aAAcC,EAAAA,oBAAoB,CAAE,SAAQ,CAAC,CAC7C,cAAeC,EAAAA,qBAAqB,CAAE,mBAAkB,SAAQ,CAAC,CACjE,cAAeC,EAAAA,qBAAqB,CAAE,mBAAkB,SAAQ,YAAW,CAAC,CAC5E,KAAMC,EAAAA,YAAY,oBACnB"}
@@ -0,0 +1,2 @@
1
+ import{AvalancheChainIds as e,BitcoinChainIds as t,ServiceType as n}from"../../constants.js";import{ServiceInitializationError as r}from"../../errors.js";import{caip2ToEip155ChainId as i}from"../../utils/caip.js";import{BTCB_ADAPTER_ADDRESSES as a,BTC_NATIVE_ASSET as o,ENV_MAP as s}from"./constants.js";import{getBTCbAsset as c}from"./_utils/asset.js";import{assertSupportedChainId as l}from"./_utils/chain.js";import{getFees as u}from"./_utils/fee.js";import{analyzeSupportFactory as d}from"./btcb-to-btc/_handlers/analyze-support.js";import{getAssetsFactory as f}from"./btcb-to-btc/_handlers/get-assets.js";import{estimateNativeFeeFactory as p}from"./btcb-to-btc/_handlers/estimate-native-fee.js";import{streamQuotesFactory as m}from"./btcb-to-btc/_handlers/stream-quotes.js";import{trackTransferFactory as h}from"./btcb-to-btc/_handlers/track-transfer.js";import{transferAssetFactory as g}from"./btcb-to-btc/_handlers/transfer-asset.js";import{Env as _,Token as v}from"@lombard.finance/sdk";async function y({bitcoinFunctions:y,environment:b,evmSigner:x}){let S=s[b],C=S===_.prod?e.MAINNET:e.FUJI,w=S===_.prod?t.MAINNET:t.TESTNET,T=i(C);l(T);let E=c(T,S),D=a[S]?.[T];if(!D)throw new r;let O=await u(v.BTCb,T,S),k={environment:b,env:S,sourceChain:C,targetChain:w,sourceChainId:T,sourceAsset:E,adapterAddress:D,targetAsset:o,redeemFee:O.redeemFee,minRedeemAmount:O.minRedeemAmount};return{analyzeSupport:d({config:k}),estimateNativeFee:p({config:k}),getAssets:f({config:k}),getMinimumTransferAmount:async()=>k.minRedeemAmount+k.redeemFee,getSupportedChains:async()=>new Map([[C,new Set([w])]]),streamQuotes:m({config:k}),trackTransfer:h({bitcoinFunctions:y,config:k}),transferAsset:g({bitcoinFunctions:y,config:k,evmSigner:x}),type:n.LOMBARD_BTCB_TO_BTC}}export{y as createBtcbToBtcService};
2
+ //# sourceMappingURL=btcb-to-btc-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"btcb-to-btc-service.js","names":[],"sources":["../../../src/transfer-service/lombard/btcb-to-btc-service.ts"],"sourcesContent":["import { Env, Token } from '@lombard.finance/sdk';\nimport { AvalancheChainIds, BitcoinChainIds, ServiceType } from '../../constants';\nimport type { Environment } from '../../constants';\nimport { ServiceInitializationError } from '../../errors';\nimport { caip2ToEip155ChainId } from '../../utils/caip';\nimport type { BitcoinFunctions } from '../../types/bitcoin';\nimport type { TransferService } from '../../types/service';\nimport type { EvmSignerWithMessage } from '../../types/signer';\nimport { BTC_NATIVE_ASSET, BTCB_ADAPTER_ADDRESSES, ENV_MAP } from './constants';\nimport { getBTCbAsset } from './_utils/asset';\nimport { assertSupportedChainId } from './_utils/chain';\nimport type { BtcbToBtcConfig } from './types';\nimport { getFees } from './_utils/fee';\nimport { analyzeSupportFactory } from './btcb-to-btc/_handlers/analyze-support';\nimport { getAssetsFactory } from './btcb-to-btc/_handlers/get-assets';\nimport { estimateNativeFeeFactory } from './btcb-to-btc/_handlers/estimate-native-fee';\nimport { streamQuotesFactory } from './btcb-to-btc/_handlers/stream-quotes';\nimport { trackTransferFactory } from './btcb-to-btc/_handlers/track-transfer';\nimport { transferAssetFactory } from './btcb-to-btc/_handlers/transfer-asset';\nimport type { Fetch } from '../../types/utility-types';\n\nexport interface BtcbToBtcServiceOptions {\n bitcoinFunctions: BitcoinFunctions;\n environment: Environment;\n evmSigner: EvmSignerWithMessage;\n fetch?: Fetch;\n}\n\nexport async function createBtcbToBtcService({\n bitcoinFunctions,\n environment,\n evmSigner,\n}: BtcbToBtcServiceOptions): Promise<TransferService> {\n const env = ENV_MAP[environment];\n\n const sourceChain = env === Env.prod ? AvalancheChainIds.MAINNET : AvalancheChainIds.FUJI;\n const targetChain = env === Env.prod ? BitcoinChainIds.MAINNET : BitcoinChainIds.TESTNET;\n const sourceChainId = caip2ToEip155ChainId(sourceChain);\n\n assertSupportedChainId(sourceChainId);\n\n const sourceAsset = getBTCbAsset(sourceChainId, env);\n\n const adapterAddress = BTCB_ADAPTER_ADDRESSES[env]?.[sourceChainId];\n\n if (!adapterAddress) {\n throw new ServiceInitializationError();\n }\n\n const fees = await getFees(Token.BTCb, sourceChainId, env);\n\n const config: BtcbToBtcConfig = {\n environment,\n env,\n sourceChain,\n targetChain,\n sourceChainId,\n sourceAsset,\n adapterAddress,\n targetAsset: BTC_NATIVE_ASSET,\n redeemFee: fees.redeemFee,\n minRedeemAmount: fees.minRedeemAmount,\n };\n\n return {\n analyzeSupport: analyzeSupportFactory({ config }),\n estimateNativeFee: estimateNativeFeeFactory({ config }),\n getAssets: getAssetsFactory({ config }),\n getMinimumTransferAmount: async () => {\n return config.minRedeemAmount + config.redeemFee;\n },\n getSupportedChains: async () => {\n return new Map([[sourceChain, new Set([targetChain])]]);\n },\n streamQuotes: streamQuotesFactory({ config }),\n trackTransfer: trackTransferFactory({ bitcoinFunctions, config }),\n transferAsset: transferAssetFactory({ bitcoinFunctions, config, evmSigner }),\n type: ServiceType.LOMBARD_BTCB_TO_BTC,\n } satisfies TransferService;\n}\n"],"mappings":"m+BA4BA,eAAsB,EAAuB,CAC3C,mBACA,cACA,aACoD,CACpD,IAAM,EAAM,EAAQ,GAEd,EAAc,IAAQ,EAAI,KAAO,EAAkB,QAAU,EAAkB,KAC/E,EAAc,IAAQ,EAAI,KAAO,EAAgB,QAAU,EAAgB,QAC3E,EAAgB,EAAqB,EAAY,CAEvD,EAAuB,EAAc,CAErC,IAAM,EAAc,EAAa,EAAe,EAAI,CAE9C,EAAiB,EAAuB,KAAO,GAErD,GAAI,CAAC,EACH,MAAM,IAAI,EAGZ,IAAM,EAAO,MAAM,EAAQ,EAAM,KAAM,EAAe,EAAI,CAEpD,EAA0B,CAC9B,cACA,MACA,cACA,cACA,gBACA,cACA,iBACA,YAAa,EACb,UAAW,EAAK,UAChB,gBAAiB,EAAK,gBACvB,CAED,MAAO,CACL,eAAgB,EAAsB,CAAE,SAAQ,CAAC,CACjD,kBAAmB,EAAyB,CAAE,SAAQ,CAAC,CACvD,UAAW,EAAiB,CAAE,SAAQ,CAAC,CACvC,yBAA0B,SACjB,EAAO,gBAAkB,EAAO,UAEzC,mBAAoB,SACX,IAAI,IAAI,CAAC,CAAC,EAAa,IAAI,IAAI,CAAC,EAAY,CAAC,CAAC,CAAC,CAAC,CAEzD,aAAc,EAAoB,CAAE,SAAQ,CAAC,CAC7C,cAAe,EAAqB,CAAE,mBAAkB,SAAQ,CAAC,CACjE,cAAe,EAAqB,CAAE,mBAAkB,SAAQ,YAAW,CAAC,CAC5E,KAAM,EAAY,oBACnB"}
@@ -0,0 +1,2 @@
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants.cjs`);let t=require(`@lombard.finance/sdk`);const n={[e.Environment.DEV]:t.Env.dev,[e.Environment.TEST]:t.Env.ibc,[e.Environment.PROD]:t.Env.prod},r={type:e.TokenType.NATIVE,name:`Bitcoin`,symbol:`BTC`,decimals:8},i={[t.Env.dev]:{43113:`0x7fbdc44bfebde80c970ba622b678dab36cee31f6`},[t.Env.ibc]:{43113:`0x71ba2b8dc58e7ca1b6d81a60729e31aefa37ae02`},[t.Env.stage]:{43113:`0x7fbdc44bfebde80c970ba622b678dab36cee31f6`},[t.Env.testnet]:{43113:`0xb14f240714bd23bda103a7189d512a90326e4d01`},[t.Env.prod]:{43114:`0x152b9d0fdc40c096757f570a51e494bd4b943e50`}},a={[t.Env.dev]:{43113:`0x0a65c37d07c32e5ea8ea40495b7f249cde26935e`},[t.Env.ibc]:{43113:`0x1391f9ac408cf13214ddb71d359002658eaf9ebb`},[t.Env.stage]:{43113:`0x0a65c37d07c32e5ea8ea40495b7f249cde26935e`},[t.Env.testnet]:{43113:`0x41bcd71e7c92b1c8dde53037f9b2c4aa2058b1cb`},[t.Env.prod]:{43114:`0x85d1d52e11290f174444d21c2a167bedbe36e4d2`}};exports.BTCB_ADAPTER_ADDRESSES=a,exports.BTCB_ADDRESSES=i,exports.BTC_CONFIRMATION_COUNT=6,exports.BTC_NATIVE_ASSET=r,exports.ENV_MAP=n,exports.EVM_CONFIRMATION_COUNT=1,exports.LOMBARD_PARTNER_ID=`core`,exports.MIN_DEPOSIT_BTC_AMOUNT_SATOSHI=20000n;
2
+ //# sourceMappingURL=constants.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.cjs","names":["Environment","Env","TokenType"],"sources":["../../../src/transfer-service/lombard/constants.ts"],"sourcesContent":["import { type ChainId, Env } from '@lombard.finance/sdk';\nimport type { Address as EvmAddress } from 'viem';\nimport { Environment, TokenType } from '../../constants';\nimport type { NativeAsset } from '../../types/asset';\n\n/** The Lombard partner ID */\nexport const LOMBARD_PARTNER_ID = 'core';\n\n/**\n * The number of confirmations needed on BTC network for\n * the deposit to be picked up by claimer.\n */\nexport const BTC_CONFIRMATION_COUNT = 6;\n\n/** The number of confirmations on EVM network */\nexport const EVM_CONFIRMATION_COUNT = 1;\n\n/** The mapping of SDK environments to Lombard's SDK env. */\nexport const ENV_MAP: Record<Environment, Env> = {\n [Environment.DEV]: Env.dev,\n [Environment.TEST]: Env.ibc,\n [Environment.PROD]: Env.prod,\n};\n\n/** The minimum BTC amount eligible for depositing (in Satoshis). */\nexport const MIN_DEPOSIT_BTC_AMOUNT_SATOSHI = 20000n;\n\n/** Estimated bridging time in hours for BTCb to BTC direction */\nexport const ESTIMATED_BRIDGING_TIME_BTCB_TO_BTC_HOURS = 6;\n\nexport const BTC_NATIVE_ASSET: NativeAsset = {\n type: TokenType.NATIVE,\n name: 'Bitcoin',\n symbol: 'BTC',\n decimals: 8,\n};\n\n/**\n * BTCb token contract addresses by environment and chain ID.\n * These are the ERC20 token contracts for BTCb.\n * Organized as: Env -> ChainId -> Address\n */\nexport const BTCB_ADDRESSES: Record<Env, Partial<Record<ChainId, EvmAddress>>> = {\n [Env.dev]: {\n 43113: '0x7fbdc44bfebde80c970ba622b678dab36cee31f6',\n },\n [Env.ibc]: {\n 43113: '0x71ba2b8dc58e7ca1b6d81a60729e31aefa37ae02',\n },\n [Env.stage]: {\n 43113: '0x7fbdc44bfebde80c970ba622b678dab36cee31f6',\n },\n [Env.testnet]: {\n 43113: '0xb14f240714bd23bda103a7189d512a90326e4d01',\n },\n [Env.prod]: {\n 43114: '0x152b9d0fdc40c096757f570a51e494bd4b943e50',\n },\n};\n\n/**\n * BTCb adapter contract addresses by environment and chain ID.\n * On Avalanche, BTCb uses a dual-contract architecture:\n * - Token contract: ERC20 for balances, permits, approvals\n * - Adapter contract: For bridge operations (burn/mint), needs approval for redemptions\n * Organized as: Env -> ChainId -> Address\n */\nexport const BTCB_ADAPTER_ADDRESSES: Record<Env, Partial<Record<ChainId, EvmAddress>>> = {\n [Env.dev]: {\n 43113: '0x0a65c37d07c32e5ea8ea40495b7f249cde26935e',\n },\n [Env.ibc]: {\n 43113: '0x1391f9ac408cf13214ddb71d359002658eaf9ebb',\n },\n [Env.stage]: {\n 43113: '0x0a65c37d07c32e5ea8ea40495b7f249cde26935e',\n },\n [Env.testnet]: {\n 43113: '0x41bcd71e7c92b1c8dde53037f9b2c4aa2058b1cb',\n },\n [Env.prod]: {\n 43114: '0x85d1d52e11290f174444d21c2a167bedbe36e4d2',\n },\n};\n"],"mappings":"6HAMA,MAYa,EAAoC,EAC9CA,EAAAA,YAAY,KAAMC,EAAAA,IAAI,KACtBD,EAAAA,YAAY,MAAOC,EAAAA,IAAI,KACvBD,EAAAA,YAAY,MAAOC,EAAAA,IAAI,KACzB,CAQY,EAAgC,CAC3C,KAAMC,EAAAA,UAAU,OAChB,KAAM,UACN,OAAQ,MACR,SAAU,EACX,CAOY,EAAoE,EAC9ED,EAAAA,IAAI,KAAM,CACT,MAAO,6CACR,EACAA,EAAAA,IAAI,KAAM,CACT,MAAO,6CACR,EACAA,EAAAA,IAAI,OAAQ,CACX,MAAO,6CACR,EACAA,EAAAA,IAAI,SAAU,CACb,MAAO,6CACR,EACAA,EAAAA,IAAI,MAAO,CACV,MAAO,6CACR,CACF,CASY,EAA4E,EACtFA,EAAAA,IAAI,KAAM,CACT,MAAO,6CACR,EACAA,EAAAA,IAAI,KAAM,CACT,MAAO,6CACR,EACAA,EAAAA,IAAI,OAAQ,CACX,MAAO,6CACR,EACAA,EAAAA,IAAI,SAAU,CACb,MAAO,6CACR,EACAA,EAAAA,IAAI,MAAO,CACV,MAAO,6CACR,CACF"}
@@ -0,0 +1,2 @@
1
+ import{Environment as e,TokenType as t}from"../../constants.js";import{Env as n}from"@lombard.finance/sdk";const r=`core`,i=6,a=1,o={[e.DEV]:n.dev,[e.TEST]:n.ibc,[e.PROD]:n.prod},s=20000n,c={type:t.NATIVE,name:`Bitcoin`,symbol:`BTC`,decimals:8},l={[n.dev]:{43113:`0x7fbdc44bfebde80c970ba622b678dab36cee31f6`},[n.ibc]:{43113:`0x71ba2b8dc58e7ca1b6d81a60729e31aefa37ae02`},[n.stage]:{43113:`0x7fbdc44bfebde80c970ba622b678dab36cee31f6`},[n.testnet]:{43113:`0xb14f240714bd23bda103a7189d512a90326e4d01`},[n.prod]:{43114:`0x152b9d0fdc40c096757f570a51e494bd4b943e50`}},u={[n.dev]:{43113:`0x0a65c37d07c32e5ea8ea40495b7f249cde26935e`},[n.ibc]:{43113:`0x1391f9ac408cf13214ddb71d359002658eaf9ebb`},[n.stage]:{43113:`0x0a65c37d07c32e5ea8ea40495b7f249cde26935e`},[n.testnet]:{43113:`0x41bcd71e7c92b1c8dde53037f9b2c4aa2058b1cb`},[n.prod]:{43114:`0x85d1d52e11290f174444d21c2a167bedbe36e4d2`}};export{u as BTCB_ADAPTER_ADDRESSES,l as BTCB_ADDRESSES,i as BTC_CONFIRMATION_COUNT,c as BTC_NATIVE_ASSET,o as ENV_MAP,a as EVM_CONFIRMATION_COUNT,r as LOMBARD_PARTNER_ID,s as MIN_DEPOSIT_BTC_AMOUNT_SATOSHI};
2
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","names":[],"sources":["../../../src/transfer-service/lombard/constants.ts"],"sourcesContent":["import { type ChainId, Env } from '@lombard.finance/sdk';\nimport type { Address as EvmAddress } from 'viem';\nimport { Environment, TokenType } from '../../constants';\nimport type { NativeAsset } from '../../types/asset';\n\n/** The Lombard partner ID */\nexport const LOMBARD_PARTNER_ID = 'core';\n\n/**\n * The number of confirmations needed on BTC network for\n * the deposit to be picked up by claimer.\n */\nexport const BTC_CONFIRMATION_COUNT = 6;\n\n/** The number of confirmations on EVM network */\nexport const EVM_CONFIRMATION_COUNT = 1;\n\n/** The mapping of SDK environments to Lombard's SDK env. */\nexport const ENV_MAP: Record<Environment, Env> = {\n [Environment.DEV]: Env.dev,\n [Environment.TEST]: Env.ibc,\n [Environment.PROD]: Env.prod,\n};\n\n/** The minimum BTC amount eligible for depositing (in Satoshis). */\nexport const MIN_DEPOSIT_BTC_AMOUNT_SATOSHI = 20000n;\n\n/** Estimated bridging time in hours for BTCb to BTC direction */\nexport const ESTIMATED_BRIDGING_TIME_BTCB_TO_BTC_HOURS = 6;\n\nexport const BTC_NATIVE_ASSET: NativeAsset = {\n type: TokenType.NATIVE,\n name: 'Bitcoin',\n symbol: 'BTC',\n decimals: 8,\n};\n\n/**\n * BTCb token contract addresses by environment and chain ID.\n * These are the ERC20 token contracts for BTCb.\n * Organized as: Env -> ChainId -> Address\n */\nexport const BTCB_ADDRESSES: Record<Env, Partial<Record<ChainId, EvmAddress>>> = {\n [Env.dev]: {\n 43113: '0x7fbdc44bfebde80c970ba622b678dab36cee31f6',\n },\n [Env.ibc]: {\n 43113: '0x71ba2b8dc58e7ca1b6d81a60729e31aefa37ae02',\n },\n [Env.stage]: {\n 43113: '0x7fbdc44bfebde80c970ba622b678dab36cee31f6',\n },\n [Env.testnet]: {\n 43113: '0xb14f240714bd23bda103a7189d512a90326e4d01',\n },\n [Env.prod]: {\n 43114: '0x152b9d0fdc40c096757f570a51e494bd4b943e50',\n },\n};\n\n/**\n * BTCb adapter contract addresses by environment and chain ID.\n * On Avalanche, BTCb uses a dual-contract architecture:\n * - Token contract: ERC20 for balances, permits, approvals\n * - Adapter contract: For bridge operations (burn/mint), needs approval for redemptions\n * Organized as: Env -> ChainId -> Address\n */\nexport const BTCB_ADAPTER_ADDRESSES: Record<Env, Partial<Record<ChainId, EvmAddress>>> = {\n [Env.dev]: {\n 43113: '0x0a65c37d07c32e5ea8ea40495b7f249cde26935e',\n },\n [Env.ibc]: {\n 43113: '0x1391f9ac408cf13214ddb71d359002658eaf9ebb',\n },\n [Env.stage]: {\n 43113: '0x0a65c37d07c32e5ea8ea40495b7f249cde26935e',\n },\n [Env.testnet]: {\n 43113: '0x41bcd71e7c92b1c8dde53037f9b2c4aa2058b1cb',\n },\n [Env.prod]: {\n 43114: '0x85d1d52e11290f174444d21c2a167bedbe36e4d2',\n },\n};\n"],"mappings":"2GAMA,MAAa,EAAqB,OAMrB,EAAyB,EAGzB,EAAyB,EAGzB,EAAoC,EAC9C,EAAY,KAAM,EAAI,KACtB,EAAY,MAAO,EAAI,KACvB,EAAY,MAAO,EAAI,KACzB,CAGY,EAAiC,OAKjC,EAAgC,CAC3C,KAAM,EAAU,OAChB,KAAM,UACN,OAAQ,MACR,SAAU,EACX,CAOY,EAAoE,EAC9E,EAAI,KAAM,CACT,MAAO,6CACR,EACA,EAAI,KAAM,CACT,MAAO,6CACR,EACA,EAAI,OAAQ,CACX,MAAO,6CACR,EACA,EAAI,SAAU,CACb,MAAO,6CACR,EACA,EAAI,MAAO,CACV,MAAO,6CACR,CACF,CASY,EAA4E,EACtF,EAAI,KAAM,CACT,MAAO,6CACR,EACA,EAAI,KAAM,CACT,MAAO,6CACR,EACA,EAAI,OAAQ,CACX,MAAO,6CACR,EACA,EAAI,SAAU,CACb,MAAO,6CACR,EACA,EAAI,MAAO,CACV,MAAO,6CACR,CACF"}
@@ -0,0 +1,2 @@
1
+ const e=[{inputs:[{internalType:`address`,name:`_ccipRouter`,type:`address`},{internalType:`address`,name:`_swapWrapper`,type:`address`},{internalType:`address`,name:`_usdcToken`,type:`address`},{internalType:`address`,name:`_treasury`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[{internalType:`address`,name:`target`,type:`address`}],name:`AddressEmptyCode`,type:`error`},{inputs:[{internalType:`address`,name:`account`,type:`address`}],name:`AddressInsufficientBalance`,type:`error`},{inputs:[{internalType:`uint256`,name:`timeRemaining`,type:`uint256`}],name:`CancellationTooEarly`,type:`error`},{inputs:[{internalType:`uint64`,name:`chainSelector`,type:`uint64`}],name:`ChainNotSupported`,type:`error`},{inputs:[],name:`EnforcedPause`,type:`error`},{inputs:[{internalType:`bytes32`,name:`key`,type:`bytes32`}],name:`EnumerableMapNonexistentKey`,type:`error`},{inputs:[],name:`ExpectedPause`,type:`error`},{inputs:[],name:`FailedInnerCall`,type:`error`},{inputs:[{internalType:`bytes32`,name:`messageId`,type:`bytes32`}],name:`MessageAlreadyProcessed`,type:`error`},{inputs:[{internalType:`bytes32`,name:`messageId`,type:`bytes32`}],name:`MessageNotFailed`,type:`error`},{inputs:[],name:`MissingDestinationGasLimit`,type:`error`},{inputs:[{internalType:`uint64`,name:`chainSelector`,type:`uint64`}],name:`NoTrustedRemote`,type:`error`},{inputs:[],name:`OnlySelf`,type:`error`},{inputs:[],name:`OnlySwapUser`,type:`error`},{inputs:[{internalType:`address`,name:`owner`,type:`address`}],name:`OwnableInvalidOwner`,type:`error`},{inputs:[{internalType:`address`,name:`account`,type:`address`}],name:`OwnableUnauthorizedAccount`,type:`error`},{inputs:[],name:`ReentrancyGuardReentrantCall`,type:`error`},{inputs:[{internalType:`address`,name:`token`,type:`address`}],name:`SafeERC20FailedOperation`,type:`error`},{inputs:[],name:`SwapExecutionFailed`,type:`error`},{inputs:[{internalType:`bytes32`,name:`messageId`,type:`bytes32`}],name:`SwapNotPending`,type:`error`},{inputs:[],name:`TransactionExpired`,type:`error`},{inputs:[{internalType:`address`,name:`caller`,type:`address`}],name:`UnauthorizedCaller`,type:`error`},{inputs:[],name:`UnauthorizedRelayer`,type:`error`},{inputs:[],name:`ZeroAddress`,type:`error`},{inputs:[],name:`ZeroAmount`,type:`error`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`messageId`,type:`bytes32`},{indexed:!0,internalType:`address`,name:`user`,type:`address`},{indexed:!1,internalType:`uint256`,name:`usdcAmount`,type:`uint256`}],name:`DirectTransferCompleted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`messageId`,type:`bytes32`},{indexed:!1,internalType:`bytes`,name:`reason`,type:`bytes`}],name:`MessageFailed`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`messageId`,type:`bytes32`},{indexed:!0,internalType:`address`,name:`user`,type:`address`}],name:`MessageProcessed`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`messageId`,type:`bytes32`}],name:`MessageRecovered`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`messageId`,type:`bytes32`},{indexed:!1,internalType:`string`,name:`reason`,type:`string`}],name:`MessageRejected`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`account`,type:`address`}],name:`Paused`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`messageId`,type:`bytes32`},{indexed:!0,internalType:`address`,name:`relayer`,type:`address`},{indexed:!1,internalType:`bytes`,name:`reason`,type:`bytes`}],name:`SwapExecutionAttemptFailed`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`messageId`,type:`bytes32`},{indexed:!0,internalType:`address`,name:`user`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenOut`,type:`address`},{indexed:!1,internalType:`uint256`,name:`usdcAmount`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`minAmountOut`,type:`uint256`}],name:`SwapPending`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`account`,type:`address`}],name:`Unpaused`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`relayer`,type:`address`}],name:`addWhitelistedRelayer`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`messageId`,type:`bytes32`}],name:`cancelPendingSwap`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`bytes32`,name:`messageId`,type:`bytes32`},{internalType:`uint64`,name:`sourceChainSelector`,type:`uint64`},{internalType:`bytes`,name:`sender`,type:`bytes`},{internalType:`bytes`,name:`data`,type:`bytes`},{components:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`}],internalType:`struct Client.EVMTokenAmount[]`,name:`destTokenAmounts`,type:`tuple[]`}],internalType:`struct Client.Any2EVMMessage`,name:`message`,type:`tuple`}],name:`ccipReceive`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint64`,name:`destinationChainSelector`,type:`uint64`},{internalType:`address`,name:`tokenIn`,type:`address`},{internalType:`address`,name:`tokenOut`,type:`address`},{internalType:`uint256`,name:`amountIn`,type:`uint256`},{internalType:`uint256`,name:`minUsdcAmount`,type:`uint256`},{internalType:`uint256`,name:`minAmountOut`,type:`uint256`},{internalType:`bytes32`,name:`partnerId`,type:`bytes32`},{internalType:`address`,name:`sourceSwapTarget`,type:`address`},{internalType:`bytes`,name:`sourceSwapCallData`,type:`bytes`},{internalType:`uint256`,name:`deadline`,type:`uint256`},{internalType:`uint256`,name:`baseGasLimit`,type:`uint256`},{internalType:`uint256`,name:`destinationChainSwapGasLimit`,type:`uint256`},{internalType:`bool`,name:`isDestinationDirectTransfer`,type:`bool`}],name:`crossChainSwap`,outputs:[{internalType:`bytes32`,name:`messageId`,type:`bytes32`}],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint64`,name:`destinationChainSelector`,type:`uint64`},{internalType:`address`,name:`tokenOut`,type:`address`},{internalType:`uint256`,name:`usdcAmount`,type:`uint256`},{internalType:`uint256`,name:`minAmountOut`,type:`uint256`},{internalType:`bytes32`,name:`partnerId`,type:`bytes32`},{internalType:`uint256`,name:`gasLimit`,type:`uint256`}],name:`estimateCCIPFee`,outputs:[{internalType:`uint256`,name:`totalFee`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes32`,name:`messageId`,type:`bytes32`},{internalType:`address`,name:`target`,type:`address`},{internalType:`bytes`,name:`callData`,type:`bytes`},{internalType:`uint256`,name:`deadline`,type:`uint256`}],name:`executeSwap`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`messageId`,type:`bytes32`}],name:`getPendingSwap`,outputs:[{internalType:`address`,name:`user`,type:`address`},{internalType:`address`,name:`tokenOut`,type:`address`},{internalType:`uint256`,name:`usdcAmount`,type:`uint256`},{internalType:`uint256`,name:`minAmountOut`,type:`uint256`},{internalType:`bytes32`,name:`partnerId`,type:`bytes32`},{internalType:`uint256`,name:`timestamp`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getRouter`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getSwapWrapper`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getTreasury`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint64`,name:`chainSelector`,type:`uint64`}],name:`getTrustedRemote`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getUSDCToken`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`i_ccipRouter`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint64`,name:`chainSelector`,type:`uint64`}],name:`isChainSupported`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`relayer`,type:`address`}],name:`isRelayerWhitelisted`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pause`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`paused`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],name:`pendingSwaps`,outputs:[{internalType:`address`,name:`user`,type:`address`},{internalType:`address`,name:`tokenOut`,type:`address`},{internalType:`uint256`,name:`usdcAmount`,type:`uint256`},{internalType:`uint256`,name:`minAmountOut`,type:`uint256`},{internalType:`bytes32`,name:`partnerId`,type:`bytes32`},{internalType:`uint256`,name:`timestamp`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`bytes32`,name:`messageId`,type:`bytes32`},{internalType:`uint64`,name:`sourceChainSelector`,type:`uint64`},{internalType:`bytes`,name:`sender`,type:`bytes`},{internalType:`bytes`,name:`data`,type:`bytes`},{components:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`}],internalType:`struct Client.EVMTokenAmount[]`,name:`destTokenAmounts`,type:`tuple[]`}],internalType:`struct Client.Any2EVMMessage`,name:`message`,type:`tuple`}],name:`processMessage`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`relayer`,type:`address`}],name:`removeWhitelistedRelayer`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`to`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`}],name:`rescueNative`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`address`,name:`to`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`}],name:`rescueTokens`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`messageId`,type:`bytes32`}],name:`retryFailedMessage`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_swapWrapper`,type:`address`}],name:`setSwapWrapper`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_treasury`,type:`address`}],name:`setTreasury`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint64`,name:`chainSelector`,type:`uint64`},{internalType:`address`,name:`remoteAddress`,type:`address`}],name:`setTrustedRemote`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint64`,name:``,type:`uint64`}],name:`supportedChains`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes4`,name:`interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`swapWrapper`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`treasury`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint64`,name:``,type:`uint64`}],name:`trustedRemotes`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`unpause`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`usdcToken`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`whitelistedRelayers`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{stateMutability:`payable`,type:`receive`}];exports.MARKR_CROSS_CHAIN_SWAP_WRAPPER_ABI=e;
2
+ //# sourceMappingURL=cross-chain-swap-wrapper-abi.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cross-chain-swap-wrapper-abi.cjs","names":[],"sources":["../../../../src/transfer-service/markr/_abis/cross-chain-swap-wrapper-abi.ts"],"sourcesContent":["export const MARKR_CROSS_CHAIN_SWAP_WRAPPER_ABI = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_ccipRouter',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_swapWrapper',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_usdcToken',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_treasury',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n ],\n name: 'AddressEmptyCode',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'AddressInsufficientBalance',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'timeRemaining',\n type: 'uint256',\n },\n ],\n name: 'CancellationTooEarly',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'uint64',\n name: 'chainSelector',\n type: 'uint64',\n },\n ],\n name: 'ChainNotSupported',\n type: 'error',\n },\n {\n inputs: [],\n name: 'EnforcedPause',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'key',\n type: 'bytes32',\n },\n ],\n name: 'EnumerableMapNonexistentKey',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ExpectedPause',\n type: 'error',\n },\n {\n inputs: [],\n name: 'FailedInnerCall',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n ],\n name: 'MessageAlreadyProcessed',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n ],\n name: 'MessageNotFailed',\n type: 'error',\n },\n {\n inputs: [],\n name: 'MissingDestinationGasLimit',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'uint64',\n name: 'chainSelector',\n type: 'uint64',\n },\n ],\n name: 'NoTrustedRemote',\n type: 'error',\n },\n {\n inputs: [],\n name: 'OnlySelf',\n type: 'error',\n },\n {\n inputs: [],\n name: 'OnlySwapUser',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'owner',\n type: 'address',\n },\n ],\n name: 'OwnableInvalidOwner',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'OwnableUnauthorizedAccount',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ReentrancyGuardReentrantCall',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'SafeERC20FailedOperation',\n type: 'error',\n },\n {\n inputs: [],\n name: 'SwapExecutionFailed',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n ],\n name: 'SwapNotPending',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TransactionExpired',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'caller',\n type: 'address',\n },\n ],\n name: 'UnauthorizedCaller',\n type: 'error',\n },\n {\n inputs: [],\n name: 'UnauthorizedRelayer',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ZeroAddress',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ZeroAmount',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'usdcAmount',\n type: 'uint256',\n },\n ],\n name: 'DirectTransferCompleted',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n {\n indexed: false,\n internalType: 'bytes',\n name: 'reason',\n type: 'bytes',\n },\n ],\n name: 'MessageFailed',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n ],\n name: 'MessageProcessed',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n ],\n name: 'MessageRecovered',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n {\n indexed: false,\n internalType: 'string',\n name: 'reason',\n type: 'string',\n },\n ],\n name: 'MessageRejected',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'previousOwner',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'OwnershipTransferStarted',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'previousOwner',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'OwnershipTransferred',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'Paused',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'relayer',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'bytes',\n name: 'reason',\n type: 'bytes',\n },\n ],\n name: 'SwapExecutionAttemptFailed',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'tokenOut',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'usdcAmount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'minAmountOut',\n type: 'uint256',\n },\n ],\n name: 'SwapPending',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'Unpaused',\n type: 'event',\n },\n {\n inputs: [],\n name: 'acceptOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'relayer',\n type: 'address',\n },\n ],\n name: 'addWhitelistedRelayer',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n ],\n name: 'cancelPendingSwap',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n {\n internalType: 'uint64',\n name: 'sourceChainSelector',\n type: 'uint64',\n },\n {\n internalType: 'bytes',\n name: 'sender',\n type: 'bytes',\n },\n {\n internalType: 'bytes',\n name: 'data',\n type: 'bytes',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n internalType: 'struct Client.EVMTokenAmount[]',\n name: 'destTokenAmounts',\n type: 'tuple[]',\n },\n ],\n internalType: 'struct Client.Any2EVMMessage',\n name: 'message',\n type: 'tuple',\n },\n ],\n name: 'ccipReceive',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint64',\n name: 'destinationChainSelector',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'tokenIn',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'tokenOut',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amountIn',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'minUsdcAmount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'minAmountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'partnerId',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'sourceSwapTarget',\n type: 'address',\n },\n {\n internalType: 'bytes',\n name: 'sourceSwapCallData',\n type: 'bytes',\n },\n {\n internalType: 'uint256',\n name: 'deadline',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'baseGasLimit',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'destinationChainSwapGasLimit',\n type: 'uint256',\n },\n {\n internalType: 'bool',\n name: 'isDestinationDirectTransfer',\n type: 'bool',\n },\n ],\n name: 'crossChainSwap',\n outputs: [\n {\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint64',\n name: 'destinationChainSelector',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'tokenOut',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'usdcAmount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'minAmountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'partnerId',\n type: 'bytes32',\n },\n {\n internalType: 'uint256',\n name: 'gasLimit',\n type: 'uint256',\n },\n ],\n name: 'estimateCCIPFee',\n outputs: [\n {\n internalType: 'uint256',\n name: 'totalFee',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n {\n internalType: 'bytes',\n name: 'callData',\n type: 'bytes',\n },\n {\n internalType: 'uint256',\n name: 'deadline',\n type: 'uint256',\n },\n ],\n name: 'executeSwap',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n ],\n name: 'getPendingSwap',\n outputs: [\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'tokenOut',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'usdcAmount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'minAmountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'partnerId',\n type: 'bytes32',\n },\n {\n internalType: 'uint256',\n name: 'timestamp',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getRouter',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getSwapWrapper',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getTreasury',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint64',\n name: 'chainSelector',\n type: 'uint64',\n },\n ],\n name: 'getTrustedRemote',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getUSDCToken',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'i_ccipRouter',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint64',\n name: 'chainSelector',\n type: 'uint64',\n },\n ],\n name: 'isChainSupported',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'relayer',\n type: 'address',\n },\n ],\n name: 'isRelayerWhitelisted',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'owner',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'pause',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'paused',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'pendingOwner',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n name: 'pendingSwaps',\n outputs: [\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'tokenOut',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'usdcAmount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'minAmountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'partnerId',\n type: 'bytes32',\n },\n {\n internalType: 'uint256',\n name: 'timestamp',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n {\n internalType: 'uint64',\n name: 'sourceChainSelector',\n type: 'uint64',\n },\n {\n internalType: 'bytes',\n name: 'sender',\n type: 'bytes',\n },\n {\n internalType: 'bytes',\n name: 'data',\n type: 'bytes',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n internalType: 'struct Client.EVMTokenAmount[]',\n name: 'destTokenAmounts',\n type: 'tuple[]',\n },\n ],\n internalType: 'struct Client.Any2EVMMessage',\n name: 'message',\n type: 'tuple',\n },\n ],\n name: 'processMessage',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'relayer',\n type: 'address',\n },\n ],\n name: 'removeWhitelistedRelayer',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'renounceOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'rescueNative',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'rescueTokens',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n ],\n name: 'retryFailedMessage',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_swapWrapper',\n type: 'address',\n },\n ],\n name: 'setSwapWrapper',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_treasury',\n type: 'address',\n },\n ],\n name: 'setTreasury',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint64',\n name: 'chainSelector',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'remoteAddress',\n type: 'address',\n },\n ],\n name: 'setTrustedRemote',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint64',\n name: '',\n type: 'uint64',\n },\n ],\n name: 'supportedChains',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes4',\n name: 'interfaceId',\n type: 'bytes4',\n },\n ],\n name: 'supportsInterface',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'pure',\n type: 'function',\n },\n {\n inputs: [],\n name: 'swapWrapper',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'transferOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'treasury',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint64',\n name: '',\n type: 'uint64',\n },\n ],\n name: 'trustedRemotes',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'unpause',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'usdcToken',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n name: 'whitelistedRelayers',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n stateMutability: 'payable',\n type: 'receive',\n },\n] as const;\n"],"mappings":"AAAA,MAAa,EAAqC,CAChD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,cACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,aACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,gBAAiB,aACjB,KAAM,cACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,mBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,6BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,gBACN,KAAM,UACP,CACF,CACD,KAAM,uBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,SACd,KAAM,gBACN,KAAM,SACP,CACF,CACD,KAAM,oBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,gBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,MACN,KAAM,UACP,CACF,CACD,KAAM,8BACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,gBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,kBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,0BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,mBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,6BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,SACd,KAAM,gBACN,KAAM,SACP,CACF,CACD,KAAM,kBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,WACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,eACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,QACN,KAAM,UACP,CACF,CACD,KAAM,sBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,6BACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,+BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,QACN,KAAM,UACP,CACF,CACD,KAAM,2BACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,sBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,iBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,qBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,qBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,sBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,cACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,aACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,aACN,KAAM,UACP,CACF,CACD,KAAM,0BACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,QACd,KAAM,SACN,KAAM,QACP,CACF,CACD,KAAM,gBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACF,CACD,KAAM,mBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,mBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,SACd,KAAM,SACN,KAAM,SACP,CACF,CACD,KAAM,kBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,gBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,2BACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,gBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,uBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,SACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,QACd,KAAM,SACN,KAAM,QACP,CACF,CACD,KAAM,6BACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,aACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACF,CACD,KAAM,cACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,WACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,kBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,wBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,oBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,WAAY,CACV,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,aAAc,SACd,KAAM,sBACN,KAAM,SACP,CACD,CACE,aAAc,QACd,KAAM,SACN,KAAM,QACP,CACD,CACE,aAAc,QACd,KAAM,OACN,KAAM,QACP,CACD,CACE,WAAY,CACV,CACE,aAAc,UACd,KAAM,QACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,aAAc,iCACd,KAAM,mBACN,KAAM,UACP,CACF,CACD,aAAc,+BACd,KAAM,UACN,KAAM,QACP,CACF,CACD,KAAM,cACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,SACd,KAAM,2BACN,KAAM,SACP,CACD,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,gBACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,mBACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,qBACN,KAAM,QACP,CACD,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,+BACN,KAAM,UACP,CACD,CACE,aAAc,OACd,KAAM,8BACN,KAAM,OACP,CACF,CACD,KAAM,iBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,gBAAiB,UACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,SACd,KAAM,2BACN,KAAM,SACP,CACD,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,aACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,kBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,WACN,KAAM,QACP,CACD,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,cACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,iBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,aACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,YACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,iBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,cACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,SACd,KAAM,gBACN,KAAM,SACP,CACF,CACD,KAAM,mBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,eACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,eACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,SACd,KAAM,gBACN,KAAM,SACP,CACF,CACD,KAAM,mBACN,QAAS,CACP,CACE,aAAc,OACd,KAAM,GACN,KAAM,OACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,uBACN,QAAS,CACP,CACE,aAAc,OACd,KAAM,GACN,KAAM,OACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,QACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,QACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,SACN,QAAS,CACP,CACE,aAAc,OACd,KAAM,GACN,KAAM,OACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,eACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,KAAM,eACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,aACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,WAAY,CACV,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,aAAc,SACd,KAAM,sBACN,KAAM,SACP,CACD,CACE,aAAc,QACd,KAAM,SACN,KAAM,QACP,CACD,CACE,aAAc,QACd,KAAM,OACN,KAAM,QACP,CACD,CACE,WAAY,CACV,CACE,aAAc,UACd,KAAM,QACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,aAAc,iCACd,KAAM,mBACN,KAAM,UACP,CACF,CACD,aAAc,+BACd,KAAM,UACN,KAAM,QACP,CACF,CACD,KAAM,iBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,2BACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,oBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,eACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,QACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,eACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,qBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACF,CACD,KAAM,iBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,cACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,SACd,KAAM,gBACN,KAAM,SACP,CACD,CACE,aAAc,UACd,KAAM,gBACN,KAAM,UACP,CACF,CACD,KAAM,mBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,SACd,KAAM,GACN,KAAM,SACP,CACF,CACD,KAAM,kBACN,QAAS,CACP,CACE,aAAc,OACd,KAAM,GACN,KAAM,OACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,SACd,KAAM,cACN,KAAM,SACP,CACF,CACD,KAAM,oBACN,QAAS,CACP,CACE,aAAc,OACd,KAAM,GACN,KAAM,OACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,cACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,oBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,WACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,SACd,KAAM,GACN,KAAM,SACP,CACF,CACD,KAAM,iBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,UACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,YACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,KAAM,sBACN,QAAS,CACP,CACE,aAAc,OACd,KAAM,GACN,KAAM,OACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,gBAAiB,UACjB,KAAM,UACP,CACF"}
@@ -0,0 +1,2 @@
1
+ const e=[{inputs:[{internalType:`address`,name:`_ccipRouter`,type:`address`},{internalType:`address`,name:`_swapWrapper`,type:`address`},{internalType:`address`,name:`_usdcToken`,type:`address`},{internalType:`address`,name:`_treasury`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[{internalType:`address`,name:`target`,type:`address`}],name:`AddressEmptyCode`,type:`error`},{inputs:[{internalType:`address`,name:`account`,type:`address`}],name:`AddressInsufficientBalance`,type:`error`},{inputs:[{internalType:`uint256`,name:`timeRemaining`,type:`uint256`}],name:`CancellationTooEarly`,type:`error`},{inputs:[{internalType:`uint64`,name:`chainSelector`,type:`uint64`}],name:`ChainNotSupported`,type:`error`},{inputs:[],name:`EnforcedPause`,type:`error`},{inputs:[{internalType:`bytes32`,name:`key`,type:`bytes32`}],name:`EnumerableMapNonexistentKey`,type:`error`},{inputs:[],name:`ExpectedPause`,type:`error`},{inputs:[],name:`FailedInnerCall`,type:`error`},{inputs:[{internalType:`bytes32`,name:`messageId`,type:`bytes32`}],name:`MessageAlreadyProcessed`,type:`error`},{inputs:[{internalType:`bytes32`,name:`messageId`,type:`bytes32`}],name:`MessageNotFailed`,type:`error`},{inputs:[],name:`MissingDestinationGasLimit`,type:`error`},{inputs:[{internalType:`uint64`,name:`chainSelector`,type:`uint64`}],name:`NoTrustedRemote`,type:`error`},{inputs:[],name:`OnlySelf`,type:`error`},{inputs:[],name:`OnlySwapUser`,type:`error`},{inputs:[{internalType:`address`,name:`owner`,type:`address`}],name:`OwnableInvalidOwner`,type:`error`},{inputs:[{internalType:`address`,name:`account`,type:`address`}],name:`OwnableUnauthorizedAccount`,type:`error`},{inputs:[],name:`ReentrancyGuardReentrantCall`,type:`error`},{inputs:[{internalType:`address`,name:`token`,type:`address`}],name:`SafeERC20FailedOperation`,type:`error`},{inputs:[],name:`SwapExecutionFailed`,type:`error`},{inputs:[{internalType:`bytes32`,name:`messageId`,type:`bytes32`}],name:`SwapNotPending`,type:`error`},{inputs:[],name:`TransactionExpired`,type:`error`},{inputs:[{internalType:`address`,name:`caller`,type:`address`}],name:`UnauthorizedCaller`,type:`error`},{inputs:[],name:`UnauthorizedRelayer`,type:`error`},{inputs:[],name:`ZeroAddress`,type:`error`},{inputs:[],name:`ZeroAmount`,type:`error`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`messageId`,type:`bytes32`},{indexed:!0,internalType:`address`,name:`user`,type:`address`},{indexed:!1,internalType:`uint256`,name:`usdcAmount`,type:`uint256`}],name:`DirectTransferCompleted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`messageId`,type:`bytes32`},{indexed:!1,internalType:`bytes`,name:`reason`,type:`bytes`}],name:`MessageFailed`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`messageId`,type:`bytes32`},{indexed:!0,internalType:`address`,name:`user`,type:`address`}],name:`MessageProcessed`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`messageId`,type:`bytes32`}],name:`MessageRecovered`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`messageId`,type:`bytes32`},{indexed:!1,internalType:`string`,name:`reason`,type:`string`}],name:`MessageRejected`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`account`,type:`address`}],name:`Paused`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`messageId`,type:`bytes32`},{indexed:!0,internalType:`address`,name:`relayer`,type:`address`},{indexed:!1,internalType:`bytes`,name:`reason`,type:`bytes`}],name:`SwapExecutionAttemptFailed`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`messageId`,type:`bytes32`},{indexed:!0,internalType:`address`,name:`user`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenOut`,type:`address`},{indexed:!1,internalType:`uint256`,name:`usdcAmount`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`minAmountOut`,type:`uint256`}],name:`SwapPending`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`account`,type:`address`}],name:`Unpaused`,type:`event`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`relayer`,type:`address`}],name:`addWhitelistedRelayer`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`messageId`,type:`bytes32`}],name:`cancelPendingSwap`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{components:[{internalType:`bytes32`,name:`messageId`,type:`bytes32`},{internalType:`uint64`,name:`sourceChainSelector`,type:`uint64`},{internalType:`bytes`,name:`sender`,type:`bytes`},{internalType:`bytes`,name:`data`,type:`bytes`},{components:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`}],internalType:`struct Client.EVMTokenAmount[]`,name:`destTokenAmounts`,type:`tuple[]`}],internalType:`struct Client.Any2EVMMessage`,name:`message`,type:`tuple`}],name:`ccipReceive`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint64`,name:`destinationChainSelector`,type:`uint64`},{internalType:`address`,name:`tokenIn`,type:`address`},{internalType:`address`,name:`tokenOut`,type:`address`},{internalType:`uint256`,name:`amountIn`,type:`uint256`},{internalType:`uint256`,name:`minUsdcAmount`,type:`uint256`},{internalType:`uint256`,name:`minAmountOut`,type:`uint256`},{internalType:`bytes32`,name:`partnerId`,type:`bytes32`},{internalType:`address`,name:`sourceSwapTarget`,type:`address`},{internalType:`bytes`,name:`sourceSwapCallData`,type:`bytes`},{internalType:`uint256`,name:`deadline`,type:`uint256`},{internalType:`uint256`,name:`baseGasLimit`,type:`uint256`},{internalType:`uint256`,name:`destinationChainSwapGasLimit`,type:`uint256`},{internalType:`bool`,name:`isDestinationDirectTransfer`,type:`bool`}],name:`crossChainSwap`,outputs:[{internalType:`bytes32`,name:`messageId`,type:`bytes32`}],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`uint64`,name:`destinationChainSelector`,type:`uint64`},{internalType:`address`,name:`tokenOut`,type:`address`},{internalType:`uint256`,name:`usdcAmount`,type:`uint256`},{internalType:`uint256`,name:`minAmountOut`,type:`uint256`},{internalType:`bytes32`,name:`partnerId`,type:`bytes32`},{internalType:`uint256`,name:`gasLimit`,type:`uint256`}],name:`estimateCCIPFee`,outputs:[{internalType:`uint256`,name:`totalFee`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes32`,name:`messageId`,type:`bytes32`},{internalType:`address`,name:`target`,type:`address`},{internalType:`bytes`,name:`callData`,type:`bytes`},{internalType:`uint256`,name:`deadline`,type:`uint256`}],name:`executeSwap`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`messageId`,type:`bytes32`}],name:`getPendingSwap`,outputs:[{internalType:`address`,name:`user`,type:`address`},{internalType:`address`,name:`tokenOut`,type:`address`},{internalType:`uint256`,name:`usdcAmount`,type:`uint256`},{internalType:`uint256`,name:`minAmountOut`,type:`uint256`},{internalType:`bytes32`,name:`partnerId`,type:`bytes32`},{internalType:`uint256`,name:`timestamp`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getRouter`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getSwapWrapper`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getTreasury`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint64`,name:`chainSelector`,type:`uint64`}],name:`getTrustedRemote`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getUSDCToken`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`i_ccipRouter`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint64`,name:`chainSelector`,type:`uint64`}],name:`isChainSupported`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`relayer`,type:`address`}],name:`isRelayerWhitelisted`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pause`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`paused`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],name:`pendingSwaps`,outputs:[{internalType:`address`,name:`user`,type:`address`},{internalType:`address`,name:`tokenOut`,type:`address`},{internalType:`uint256`,name:`usdcAmount`,type:`uint256`},{internalType:`uint256`,name:`minAmountOut`,type:`uint256`},{internalType:`bytes32`,name:`partnerId`,type:`bytes32`},{internalType:`uint256`,name:`timestamp`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{components:[{internalType:`bytes32`,name:`messageId`,type:`bytes32`},{internalType:`uint64`,name:`sourceChainSelector`,type:`uint64`},{internalType:`bytes`,name:`sender`,type:`bytes`},{internalType:`bytes`,name:`data`,type:`bytes`},{components:[{internalType:`address`,name:`token`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`}],internalType:`struct Client.EVMTokenAmount[]`,name:`destTokenAmounts`,type:`tuple[]`}],internalType:`struct Client.Any2EVMMessage`,name:`message`,type:`tuple`}],name:`processMessage`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`relayer`,type:`address`}],name:`removeWhitelistedRelayer`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`to`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`}],name:`rescueNative`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`address`,name:`to`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`}],name:`rescueTokens`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`messageId`,type:`bytes32`}],name:`retryFailedMessage`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_swapWrapper`,type:`address`}],name:`setSwapWrapper`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`_treasury`,type:`address`}],name:`setTreasury`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint64`,name:`chainSelector`,type:`uint64`},{internalType:`address`,name:`remoteAddress`,type:`address`}],name:`setTrustedRemote`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint64`,name:``,type:`uint64`}],name:`supportedChains`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes4`,name:`interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`pure`,type:`function`},{inputs:[],name:`swapWrapper`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`treasury`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint64`,name:``,type:`uint64`}],name:`trustedRemotes`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`unpause`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`usdcToken`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`whitelistedRelayers`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{stateMutability:`payable`,type:`receive`}];export{e as MARKR_CROSS_CHAIN_SWAP_WRAPPER_ABI};
2
+ //# sourceMappingURL=cross-chain-swap-wrapper-abi.js.map