@avalabs/fusion-sdk 0.0.0-additive-fee-allowance-buffer-20260325170134

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 (428) 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/_virtual/_rolldown/runtime.cjs +1 -0
  12. package/dist/constants.cjs +2 -0
  13. package/dist/constants.cjs.map +1 -0
  14. package/dist/constants.d.cts +102 -0
  15. package/dist/constants.d.ts +102 -0
  16. package/dist/constants.js +2 -0
  17. package/dist/constants.js.map +1 -0
  18. package/dist/errors.cjs +2 -0
  19. package/dist/errors.cjs.map +1 -0
  20. package/dist/errors.d.cts +117 -0
  21. package/dist/errors.d.ts +117 -0
  22. package/dist/errors.js +2 -0
  23. package/dist/errors.js.map +1 -0
  24. package/dist/mod.cjs +1 -0
  25. package/dist/mod.d.cts +20 -0
  26. package/dist/mod.d.ts +20 -0
  27. package/dist/mod.js +1 -0
  28. package/dist/quoter/_utils.cjs +2 -0
  29. package/dist/quoter/_utils.cjs.map +1 -0
  30. package/dist/quoter/_utils.js +2 -0
  31. package/dist/quoter/_utils.js.map +1 -0
  32. package/dist/quoter/constants.cjs +2 -0
  33. package/dist/quoter/constants.cjs.map +1 -0
  34. package/dist/quoter/constants.js +2 -0
  35. package/dist/quoter/constants.js.map +1 -0
  36. package/dist/quoter/quoter.cjs +2 -0
  37. package/dist/quoter/quoter.cjs.map +1 -0
  38. package/dist/quoter/quoter.d.cts +31 -0
  39. package/dist/quoter/quoter.d.ts +34 -0
  40. package/dist/quoter/quoter.js +2 -0
  41. package/dist/quoter/quoter.js.map +1 -0
  42. package/dist/transfer-manager.cjs +2 -0
  43. package/dist/transfer-manager.cjs.map +1 -0
  44. package/dist/transfer-manager.d.cts +17 -0
  45. package/dist/transfer-manager.d.ts +17 -0
  46. package/dist/transfer-manager.js +2 -0
  47. package/dist/transfer-manager.js.map +1 -0
  48. package/dist/transfer-service/_abis.cjs +2 -0
  49. package/dist/transfer-service/_abis.cjs.map +1 -0
  50. package/dist/transfer-service/_abis.js +2 -0
  51. package/dist/transfer-service/_abis.js.map +1 -0
  52. package/dist/transfer-service/_evm-gas.cjs +2 -0
  53. package/dist/transfer-service/_evm-gas.cjs.map +1 -0
  54. package/dist/transfer-service/_evm-gas.js +2 -0
  55. package/dist/transfer-service/_evm-gas.js.map +1 -0
  56. package/dist/transfer-service/_tracking-utilities.cjs +2 -0
  57. package/dist/transfer-service/_tracking-utilities.cjs.map +1 -0
  58. package/dist/transfer-service/_tracking-utilities.js +2 -0
  59. package/dist/transfer-service/_tracking-utilities.js.map +1 -0
  60. package/dist/transfer-service/_transfer-utilities.cjs +2 -0
  61. package/dist/transfer-service/_transfer-utilities.cjs.map +1 -0
  62. package/dist/transfer-service/_transfer-utilities.js +2 -0
  63. package/dist/transfer-service/_transfer-utilities.js.map +1 -0
  64. package/dist/transfer-service/_utils.cjs +2 -0
  65. package/dist/transfer-service/_utils.cjs.map +1 -0
  66. package/dist/transfer-service/_utils.js +2 -0
  67. package/dist/transfer-service/_utils.js.map +1 -0
  68. package/dist/transfer-service/_warden-config-schema.cjs +2 -0
  69. package/dist/transfer-service/_warden-config-schema.cjs.map +1 -0
  70. package/dist/transfer-service/_warden-config-schema.js +2 -0
  71. package/dist/transfer-service/_warden-config-schema.js.map +1 -0
  72. package/dist/transfer-service/_warden-config.cjs +2 -0
  73. package/dist/transfer-service/_warden-config.cjs.map +1 -0
  74. package/dist/transfer-service/_warden-config.js +2 -0
  75. package/dist/transfer-service/_warden-config.js.map +1 -0
  76. package/dist/transfer-service/avalanche-evm/_constants.cjs +2 -0
  77. package/dist/transfer-service/avalanche-evm/_constants.cjs.map +1 -0
  78. package/dist/transfer-service/avalanche-evm/_constants.js +2 -0
  79. package/dist/transfer-service/avalanche-evm/_constants.js.map +1 -0
  80. package/dist/transfer-service/avalanche-evm/_handlers/analyze-support.cjs +2 -0
  81. package/dist/transfer-service/avalanche-evm/_handlers/analyze-support.cjs.map +1 -0
  82. package/dist/transfer-service/avalanche-evm/_handlers/analyze-support.js +2 -0
  83. package/dist/transfer-service/avalanche-evm/_handlers/analyze-support.js.map +1 -0
  84. package/dist/transfer-service/avalanche-evm/_handlers/estimate-native-fee.cjs +2 -0
  85. package/dist/transfer-service/avalanche-evm/_handlers/estimate-native-fee.cjs.map +1 -0
  86. package/dist/transfer-service/avalanche-evm/_handlers/estimate-native-fee.js +2 -0
  87. package/dist/transfer-service/avalanche-evm/_handlers/estimate-native-fee.js.map +1 -0
  88. package/dist/transfer-service/avalanche-evm/_handlers/get-assets.cjs +2 -0
  89. package/dist/transfer-service/avalanche-evm/_handlers/get-assets.cjs.map +1 -0
  90. package/dist/transfer-service/avalanche-evm/_handlers/get-assets.js +2 -0
  91. package/dist/transfer-service/avalanche-evm/_handlers/get-assets.js.map +1 -0
  92. package/dist/transfer-service/avalanche-evm/_handlers/get-bridgeable-assets.cjs +2 -0
  93. package/dist/transfer-service/avalanche-evm/_handlers/get-bridgeable-assets.cjs.map +1 -0
  94. package/dist/transfer-service/avalanche-evm/_handlers/get-bridgeable-assets.js +2 -0
  95. package/dist/transfer-service/avalanche-evm/_handlers/get-bridgeable-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-bridgeable-assets.cjs +2 -0
  185. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/get-bridgeable-assets.cjs.map +1 -0
  186. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/get-bridgeable-assets.js +2 -0
  187. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/get-bridgeable-assets.js.map +1 -0
  188. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/get-minimum-transfer-amount.cjs +2 -0
  189. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/get-minimum-transfer-amount.cjs.map +1 -0
  190. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/get-minimum-transfer-amount.js +2 -0
  191. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/get-minimum-transfer-amount.js.map +1 -0
  192. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/stream-quotes.cjs +2 -0
  193. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/stream-quotes.cjs.map +1 -0
  194. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/stream-quotes.js +2 -0
  195. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/stream-quotes.js.map +1 -0
  196. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/track-transfer.cjs +2 -0
  197. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/track-transfer.cjs.map +1 -0
  198. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/track-transfer.js +2 -0
  199. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/track-transfer.js.map +1 -0
  200. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/transfer-asset.cjs +2 -0
  201. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/transfer-asset.cjs.map +1 -0
  202. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/transfer-asset.js +2 -0
  203. package/dist/transfer-service/lombard/btc-to-btcb/_handlers/transfer-asset.js.map +1 -0
  204. package/dist/transfer-service/lombard/btc-to-btcb-service.cjs +2 -0
  205. package/dist/transfer-service/lombard/btc-to-btcb-service.cjs.map +1 -0
  206. package/dist/transfer-service/lombard/btc-to-btcb-service.js +2 -0
  207. package/dist/transfer-service/lombard/btc-to-btcb-service.js.map +1 -0
  208. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/analyze-support.cjs +2 -0
  209. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/analyze-support.cjs.map +1 -0
  210. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/analyze-support.js +2 -0
  211. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/analyze-support.js.map +1 -0
  212. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/estimate-native-fee.cjs +2 -0
  213. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/estimate-native-fee.cjs.map +1 -0
  214. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/estimate-native-fee.js +2 -0
  215. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/estimate-native-fee.js.map +1 -0
  216. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/get-assets.cjs +2 -0
  217. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/get-assets.cjs.map +1 -0
  218. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/get-assets.js +2 -0
  219. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/get-assets.js.map +1 -0
  220. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/get-bridgeable-assets.cjs +2 -0
  221. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/get-bridgeable-assets.cjs.map +1 -0
  222. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/get-bridgeable-assets.js +2 -0
  223. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/get-bridgeable-assets.js.map +1 -0
  224. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/stream-quotes.cjs +2 -0
  225. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/stream-quotes.cjs.map +1 -0
  226. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/stream-quotes.js +2 -0
  227. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/stream-quotes.js.map +1 -0
  228. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/track-transfer.cjs +2 -0
  229. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/track-transfer.cjs.map +1 -0
  230. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/track-transfer.js +2 -0
  231. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/track-transfer.js.map +1 -0
  232. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/transfer-asset.cjs +2 -0
  233. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/transfer-asset.cjs.map +1 -0
  234. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/transfer-asset.js +2 -0
  235. package/dist/transfer-service/lombard/btcb-to-btc/_handlers/transfer-asset.js.map +1 -0
  236. package/dist/transfer-service/lombard/btcb-to-btc-service.cjs +2 -0
  237. package/dist/transfer-service/lombard/btcb-to-btc-service.cjs.map +1 -0
  238. package/dist/transfer-service/lombard/btcb-to-btc-service.js +2 -0
  239. package/dist/transfer-service/lombard/btcb-to-btc-service.js.map +1 -0
  240. package/dist/transfer-service/lombard/constants.cjs +2 -0
  241. package/dist/transfer-service/lombard/constants.cjs.map +1 -0
  242. package/dist/transfer-service/lombard/constants.js +2 -0
  243. package/dist/transfer-service/lombard/constants.js.map +1 -0
  244. package/dist/transfer-service/markr/_abis/cross-chain-swap-wrapper-abi.cjs +2 -0
  245. package/dist/transfer-service/markr/_abis/cross-chain-swap-wrapper-abi.cjs.map +1 -0
  246. package/dist/transfer-service/markr/_abis/cross-chain-swap-wrapper-abi.js +2 -0
  247. package/dist/transfer-service/markr/_abis/cross-chain-swap-wrapper-abi.js.map +1 -0
  248. package/dist/transfer-service/markr/_abis/swap-wrapper-abi.cjs +2 -0
  249. package/dist/transfer-service/markr/_abis/swap-wrapper-abi.cjs.map +1 -0
  250. package/dist/transfer-service/markr/_abis/swap-wrapper-abi.js +2 -0
  251. package/dist/transfer-service/markr/_abis/swap-wrapper-abi.js.map +1 -0
  252. package/dist/transfer-service/markr/_api.cjs +2 -0
  253. package/dist/transfer-service/markr/_api.cjs.map +1 -0
  254. package/dist/transfer-service/markr/_api.js +2 -0
  255. package/dist/transfer-service/markr/_api.js.map +1 -0
  256. package/dist/transfer-service/markr/_handlers/analyze-support.cjs +2 -0
  257. package/dist/transfer-service/markr/_handlers/analyze-support.cjs.map +1 -0
  258. package/dist/transfer-service/markr/_handlers/analyze-support.js +2 -0
  259. package/dist/transfer-service/markr/_handlers/analyze-support.js.map +1 -0
  260. package/dist/transfer-service/markr/_handlers/estimate-native-fee.cjs +2 -0
  261. package/dist/transfer-service/markr/_handlers/estimate-native-fee.cjs.map +1 -0
  262. package/dist/transfer-service/markr/_handlers/estimate-native-fee.js +2 -0
  263. package/dist/transfer-service/markr/_handlers/estimate-native-fee.js.map +1 -0
  264. package/dist/transfer-service/markr/_handlers/get-assets.cjs +2 -0
  265. package/dist/transfer-service/markr/_handlers/get-assets.cjs.map +1 -0
  266. package/dist/transfer-service/markr/_handlers/get-assets.js +2 -0
  267. package/dist/transfer-service/markr/_handlers/get-assets.js.map +1 -0
  268. package/dist/transfer-service/markr/_handlers/get-bridgeable-assets.cjs +2 -0
  269. package/dist/transfer-service/markr/_handlers/get-bridgeable-assets.cjs.map +1 -0
  270. package/dist/transfer-service/markr/_handlers/get-bridgeable-assets.js +2 -0
  271. package/dist/transfer-service/markr/_handlers/get-bridgeable-assets.js.map +1 -0
  272. package/dist/transfer-service/markr/_handlers/get-minimum-transfer-amount.cjs +2 -0
  273. package/dist/transfer-service/markr/_handlers/get-minimum-transfer-amount.cjs.map +1 -0
  274. package/dist/transfer-service/markr/_handlers/get-minimum-transfer-amount.js +2 -0
  275. package/dist/transfer-service/markr/_handlers/get-minimum-transfer-amount.js.map +1 -0
  276. package/dist/transfer-service/markr/_handlers/stream-quotes.cjs +2 -0
  277. package/dist/transfer-service/markr/_handlers/stream-quotes.cjs.map +1 -0
  278. package/dist/transfer-service/markr/_handlers/stream-quotes.js +2 -0
  279. package/dist/transfer-service/markr/_handlers/stream-quotes.js.map +1 -0
  280. package/dist/transfer-service/markr/_handlers/track-transfer.cjs +2 -0
  281. package/dist/transfer-service/markr/_handlers/track-transfer.cjs.map +1 -0
  282. package/dist/transfer-service/markr/_handlers/track-transfer.js +2 -0
  283. package/dist/transfer-service/markr/_handlers/track-transfer.js.map +1 -0
  284. package/dist/transfer-service/markr/_handlers/transfer-asset.cjs +2 -0
  285. package/dist/transfer-service/markr/_handlers/transfer-asset.cjs.map +1 -0
  286. package/dist/transfer-service/markr/_handlers/transfer-asset.js +2 -0
  287. package/dist/transfer-service/markr/_handlers/transfer-asset.js.map +1 -0
  288. package/dist/transfer-service/markr/_schema.cjs +2 -0
  289. package/dist/transfer-service/markr/_schema.cjs.map +1 -0
  290. package/dist/transfer-service/markr/_schema.js +2 -0
  291. package/dist/transfer-service/markr/_schema.js.map +1 -0
  292. package/dist/transfer-service/markr/_solana-utils.cjs +2 -0
  293. package/dist/transfer-service/markr/_solana-utils.cjs.map +1 -0
  294. package/dist/transfer-service/markr/_solana-utils.js +2 -0
  295. package/dist/transfer-service/markr/_solana-utils.js.map +1 -0
  296. package/dist/transfer-service/markr/_type-guards.cjs +2 -0
  297. package/dist/transfer-service/markr/_type-guards.cjs.map +1 -0
  298. package/dist/transfer-service/markr/_type-guards.js +2 -0
  299. package/dist/transfer-service/markr/_type-guards.js.map +1 -0
  300. package/dist/transfer-service/markr/_utils.cjs +2 -0
  301. package/dist/transfer-service/markr/_utils.cjs.map +1 -0
  302. package/dist/transfer-service/markr/_utils.js +2 -0
  303. package/dist/transfer-service/markr/_utils.js.map +1 -0
  304. package/dist/transfer-service/markr/constants.cjs +2 -0
  305. package/dist/transfer-service/markr/constants.cjs.map +1 -0
  306. package/dist/transfer-service/markr/constants.js +2 -0
  307. package/dist/transfer-service/markr/constants.js.map +1 -0
  308. package/dist/transfer-service/markr/markr-service.cjs +2 -0
  309. package/dist/transfer-service/markr/markr-service.cjs.map +1 -0
  310. package/dist/transfer-service/markr/markr-service.js +2 -0
  311. package/dist/transfer-service/markr/markr-service.js.map +1 -0
  312. package/dist/transfer-service/service-schemas.cjs +2 -0
  313. package/dist/transfer-service/service-schemas.cjs.map +1 -0
  314. package/dist/transfer-service/service-schemas.js +2 -0
  315. package/dist/transfer-service/service-schemas.js.map +1 -0
  316. package/dist/transfer-service/wrap-unwrap/_handlers/analyze-support.cjs +2 -0
  317. package/dist/transfer-service/wrap-unwrap/_handlers/analyze-support.cjs.map +1 -0
  318. package/dist/transfer-service/wrap-unwrap/_handlers/analyze-support.js +2 -0
  319. package/dist/transfer-service/wrap-unwrap/_handlers/analyze-support.js.map +1 -0
  320. package/dist/transfer-service/wrap-unwrap/_handlers/estimate-native-fee.cjs +2 -0
  321. package/dist/transfer-service/wrap-unwrap/_handlers/estimate-native-fee.cjs.map +1 -0
  322. package/dist/transfer-service/wrap-unwrap/_handlers/estimate-native-fee.js +2 -0
  323. package/dist/transfer-service/wrap-unwrap/_handlers/estimate-native-fee.js.map +1 -0
  324. package/dist/transfer-service/wrap-unwrap/_handlers/get-assets.cjs +2 -0
  325. package/dist/transfer-service/wrap-unwrap/_handlers/get-assets.cjs.map +1 -0
  326. package/dist/transfer-service/wrap-unwrap/_handlers/get-assets.js +2 -0
  327. package/dist/transfer-service/wrap-unwrap/_handlers/get-assets.js.map +1 -0
  328. package/dist/transfer-service/wrap-unwrap/_handlers/get-bridgeable-assets.cjs +2 -0
  329. package/dist/transfer-service/wrap-unwrap/_handlers/get-bridgeable-assets.cjs.map +1 -0
  330. package/dist/transfer-service/wrap-unwrap/_handlers/get-bridgeable-assets.js +2 -0
  331. package/dist/transfer-service/wrap-unwrap/_handlers/get-bridgeable-assets.js.map +1 -0
  332. package/dist/transfer-service/wrap-unwrap/_handlers/get-minimum-transfer-amount.cjs +2 -0
  333. package/dist/transfer-service/wrap-unwrap/_handlers/get-minimum-transfer-amount.cjs.map +1 -0
  334. package/dist/transfer-service/wrap-unwrap/_handlers/get-minimum-transfer-amount.js +2 -0
  335. package/dist/transfer-service/wrap-unwrap/_handlers/get-minimum-transfer-amount.js.map +1 -0
  336. package/dist/transfer-service/wrap-unwrap/_handlers/stream-quotes.cjs +2 -0
  337. package/dist/transfer-service/wrap-unwrap/_handlers/stream-quotes.cjs.map +1 -0
  338. package/dist/transfer-service/wrap-unwrap/_handlers/stream-quotes.js +2 -0
  339. package/dist/transfer-service/wrap-unwrap/_handlers/stream-quotes.js.map +1 -0
  340. package/dist/transfer-service/wrap-unwrap/_handlers/track-transfer.cjs +2 -0
  341. package/dist/transfer-service/wrap-unwrap/_handlers/track-transfer.cjs.map +1 -0
  342. package/dist/transfer-service/wrap-unwrap/_handlers/track-transfer.js +2 -0
  343. package/dist/transfer-service/wrap-unwrap/_handlers/track-transfer.js.map +1 -0
  344. package/dist/transfer-service/wrap-unwrap/_handlers/transfer-asset.cjs +2 -0
  345. package/dist/transfer-service/wrap-unwrap/_handlers/transfer-asset.cjs.map +1 -0
  346. package/dist/transfer-service/wrap-unwrap/_handlers/transfer-asset.js +2 -0
  347. package/dist/transfer-service/wrap-unwrap/_handlers/transfer-asset.js.map +1 -0
  348. package/dist/transfer-service/wrap-unwrap/_utils.cjs +2 -0
  349. package/dist/transfer-service/wrap-unwrap/_utils.cjs.map +1 -0
  350. package/dist/transfer-service/wrap-unwrap/_utils.js +2 -0
  351. package/dist/transfer-service/wrap-unwrap/_utils.js.map +1 -0
  352. package/dist/transfer-service/wrap-unwrap/constants.cjs +2 -0
  353. package/dist/transfer-service/wrap-unwrap/constants.cjs.map +1 -0
  354. package/dist/transfer-service/wrap-unwrap/constants.js +2 -0
  355. package/dist/transfer-service/wrap-unwrap/constants.js.map +1 -0
  356. package/dist/transfer-service/wrap-unwrap/wrap-unwrap-service.cjs +2 -0
  357. package/dist/transfer-service/wrap-unwrap/wrap-unwrap-service.cjs.map +1 -0
  358. package/dist/transfer-service/wrap-unwrap/wrap-unwrap-service.js +2 -0
  359. package/dist/transfer-service/wrap-unwrap/wrap-unwrap-service.js.map +1 -0
  360. package/dist/type-guards.cjs +2 -0
  361. package/dist/type-guards.cjs.map +1 -0
  362. package/dist/type-guards.d.cts +16 -0
  363. package/dist/type-guards.d.ts +16 -0
  364. package/dist/type-guards.js +2 -0
  365. package/dist/type-guards.js.map +1 -0
  366. package/dist/types/asset.d.cts +66 -0
  367. package/dist/types/asset.d.ts +66 -0
  368. package/dist/types/bitcoin.d.cts +66 -0
  369. package/dist/types/bitcoin.d.ts +66 -0
  370. package/dist/types/caip.d.cts +30 -0
  371. package/dist/types/caip.d.ts +30 -0
  372. package/dist/types/chain.d.cts +17 -0
  373. package/dist/types/chain.d.ts +17 -0
  374. package/dist/types/fee.d.cts +13 -0
  375. package/dist/types/fee.d.ts +13 -0
  376. package/dist/types/quote.d.cts +165 -0
  377. package/dist/types/quote.d.ts +165 -0
  378. package/dist/types/service.d.cts +247 -0
  379. package/dist/types/service.d.ts +247 -0
  380. package/dist/types/signer.d.cts +52 -0
  381. package/dist/types/signer.d.ts +52 -0
  382. package/dist/types/transfer-manager.d.cts +119 -0
  383. package/dist/types/transfer-manager.d.ts +119 -0
  384. package/dist/types/transfer.d.cts +126 -0
  385. package/dist/types/transfer.d.ts +126 -0
  386. package/dist/types/utility-types.d.cts +21 -0
  387. package/dist/types/utility-types.d.ts +21 -0
  388. package/dist/utils/asset-id.cjs +2 -0
  389. package/dist/utils/asset-id.cjs.map +1 -0
  390. package/dist/utils/asset-id.js +2 -0
  391. package/dist/utils/asset-id.js.map +1 -0
  392. package/dist/utils/bitcoin-address.cjs +2 -0
  393. package/dist/utils/bitcoin-address.cjs.map +1 -0
  394. package/dist/utils/bitcoin-address.js +2 -0
  395. package/dist/utils/bitcoin-address.js.map +1 -0
  396. package/dist/utils/caip.cjs +2 -0
  397. package/dist/utils/caip.cjs.map +1 -0
  398. package/dist/utils/caip.d.cts +49 -0
  399. package/dist/utils/caip.d.ts +49 -0
  400. package/dist/utils/caip.js +2 -0
  401. package/dist/utils/caip.js.map +1 -0
  402. package/dist/utils/evm-address.cjs +2 -0
  403. package/dist/utils/evm-address.cjs.map +1 -0
  404. package/dist/utils/evm-address.js +2 -0
  405. package/dist/utils/evm-address.js.map +1 -0
  406. package/dist/utils/price-impact.cjs +2 -0
  407. package/dist/utils/price-impact.cjs.map +1 -0
  408. package/dist/utils/price-impact.d.cts +31 -0
  409. package/dist/utils/price-impact.d.ts +31 -0
  410. package/dist/utils/price-impact.js +2 -0
  411. package/dist/utils/price-impact.js.map +1 -0
  412. package/dist/utils/quote-fees.cjs +2 -0
  413. package/dist/utils/quote-fees.cjs.map +1 -0
  414. package/dist/utils/quote-fees.js +2 -0
  415. package/dist/utils/quote-fees.js.map +1 -0
  416. package/dist/utils/sol-address.cjs +2 -0
  417. package/dist/utils/sol-address.cjs.map +1 -0
  418. package/dist/utils/sol-address.js +2 -0
  419. package/dist/utils/sol-address.js.map +1 -0
  420. package/dist/utils/solana-transaction.d.cts +15 -0
  421. package/dist/utils/solana-transaction.d.ts +17 -0
  422. package/dist/utils/transfer-utils.cjs +2 -0
  423. package/dist/utils/transfer-utils.cjs.map +1 -0
  424. package/dist/utils/transfer-utils.d.cts +8 -0
  425. package/dist/utils/transfer-utils.d.ts +8 -0
  426. package/dist/utils/transfer-utils.js +2 -0
  427. package/dist/utils/transfer-utils.js.map +1 -0
  428. package/package.json +63 -0
@@ -0,0 +1,2 @@
1
+ const e=require(`../../_tracking-utilities.cjs`);function t(){return t=>e.trackSameChainEvmTransfer(t)}exports.trackTransferFactory=t;
2
+ //# sourceMappingURL=track-transfer.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"track-transfer.cjs","names":["trackSameChainEvmTransfer"],"sources":["../../../../src/transfer-service/wrap-unwrap/_handlers/track-transfer.ts"],"sourcesContent":["import type { TransferService } from '../../../types/service';\nimport { trackSameChainEvmTransfer } from '../../_tracking-utilities';\n\nexport function trackTransferFactory(): TransferService['trackTransfer'] {\n return (props) => trackSameChainEvmTransfer(props);\n}\n"],"mappings":"iDAGA,SAAgB,GAAyD,CACvE,MAAQ,IAAUA,EAAAA,0BAA0B,EAAM"}
@@ -0,0 +1,2 @@
1
+ import{trackSameChainEvmTransfer as e}from"../../_tracking-utilities.js";function t(){return t=>e(t)}export{t as trackTransferFactory};
2
+ //# sourceMappingURL=track-transfer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"track-transfer.js","names":[],"sources":["../../../../src/transfer-service/wrap-unwrap/_handlers/track-transfer.ts"],"sourcesContent":["import type { TransferService } from '../../../types/service';\nimport { trackSameChainEvmTransfer } from '../../_tracking-utilities';\n\nexport function trackTransferFactory(): TransferService['trackTransfer'] {\n return (props) => trackSameChainEvmTransfer(props);\n}\n"],"mappings":"yEAGA,SAAgB,GAAyD,CACvE,MAAQ,IAAU,EAA0B,EAAM"}
@@ -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.cjs`),i=require(`../_utils.cjs`),a=require(`../../_transfer-utilities.cjs`);let o=require(`viem`);function s({chainConfigs:s,environment:c,evmSigner:l}){return async({quote:u,gasSettings:d,onStepChange:f})=>{if(u.serviceType!==e.ServiceType.WRAP_UNWRAP)throw new t.SdkError(t.ErrorReason.INCORRECT_PROVIDER_PROVIDED,t.ErrorCode.INVALID_PARAMS);let p=Math.floor(Date.now()/1e3);if(u.expiresAt<=p)throw new t.SdkError(t.ErrorReason.QUOTE_EXPIRED,t.ErrorCode.INVALID_PARAMS);let m=u.fromAddress;if(!(0,o.isAddress)(m))throw new t.SdkError(t.ErrorReason.INVALID_PARAMS,t.ErrorCode.INVALID_PARAMS,{details:`fromAddress is not a valid EVM address.`});let h=u.sourceChain.chainId,g=i.getWrapDirection(u.assetIn,u.assetOut,h,s);if(!g)throw new t.SdkError(t.ErrorReason.INVALID_PARAMS,t.ErrorCode.INVALID_PARAMS,{details:`Quote does not represent a valid wrap/unwrap pair.`});let _=i.getWrapperContractAddress(h,s),v=g===`wrap`,y=i.encodeWrapUnwrapData(g,u.amountIn),b=r.getEvmClientForChain({chain:u.sourceChain}),x=await i.estimateWrapUnwrapGas({direction:g,amountIn:u.amountIn,contractAddress:_,fromAddress:m,client:b,estimateGasMarginBps:d?.estimateGasMarginBps}),S={chainId:n.caip2ToEip155HexChainId(u.sourceChain.chainId),data:y,from:m,gas:x,to:_,value:v?u.amountIn:0n,...d?.maxFeePerGas===void 0?null:{maxFeePerGas:d.maxFeePerGas,maxPriorityFeePerGas:d.maxPriorityFeePerGas}},C={currentSignature:1,currentSignatureReason:e.TransferSignatureReason.WrapToken,quote:u,requiredSignatures:1};f?.(C);let w=Date.now();return a.sourcePendingTransferFromQuote(u,{environment:c,txHash:await l.sign(S,async e=>b.sendRawTransaction({serializedTransaction:e}),C),startedAtMs:w,requiredConfirmationCount:1})}}exports.transferAssetFactory=s;
2
+ //# sourceMappingURL=transfer-asset.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfer-asset.cjs","names":["ServiceType","SdkError","ErrorReason","ErrorCode","getWrapDirection","getWrapperContractAddress","encodeWrapUnwrapData","getEvmClientForChain","estimateWrapUnwrapGas","caip2ToEip155HexChainId","TransferSignatureReason","sourcePendingTransferFromQuote"],"sources":["../../../../src/transfer-service/wrap-unwrap/_handlers/transfer-asset.ts"],"sourcesContent":["import { isAddress } from 'viem';\nimport { ServiceType, TransferSignatureReason } from '../../../constants';\nimport type { Environment } from '../../../constants';\nimport { ErrorCode, ErrorReason, SdkError } from '../../../errors';\nimport type { TransferService } from '../../../types/service';\nimport type { EvmSigner, EvmTransactionRequest } from '../../../types/signer';\nimport type { TransferStepDetails } from '../../../types/transfer';\nimport type { Caip2ChainId } from '../../../types/caip';\nimport { caip2ToEip155HexChainId } from '../../../utils/caip';\nimport { getEvmClientForChain } from '../../_utils';\nimport { sourcePendingTransferFromQuote } from '../../_transfer-utilities';\nimport { getWrapDirection, getWrapperContractAddress, encodeWrapUnwrapData, estimateWrapUnwrapGas } from '../_utils';\nimport type { WrapChainConfig } from '../constants';\n\nexport interface TransferAssetFactoryConfig {\n chainConfigs: ReadonlyMap<Caip2ChainId, WrapChainConfig>;\n environment: Environment;\n evmSigner: EvmSigner;\n}\n\nexport function transferAssetFactory({\n chainConfigs,\n environment,\n evmSigner,\n}: TransferAssetFactoryConfig): TransferService['transferAsset'] {\n return async ({ quote, gasSettings, onStepChange }) => {\n if (quote.serviceType !== ServiceType.WRAP_UNWRAP) {\n throw new SdkError(ErrorReason.INCORRECT_PROVIDER_PROVIDED, ErrorCode.INVALID_PARAMS);\n }\n\n const now = Math.floor(Date.now() / 1_000);\n if (quote.expiresAt <= now) {\n throw new SdkError(ErrorReason.QUOTE_EXPIRED, ErrorCode.INVALID_PARAMS);\n }\n\n const fromAddress = quote.fromAddress;\n if (!isAddress(fromAddress)) {\n throw new SdkError(ErrorReason.INVALID_PARAMS, ErrorCode.INVALID_PARAMS, {\n details: 'fromAddress is not a valid EVM address.',\n });\n }\n\n const chainId = quote.sourceChain.chainId as Caip2ChainId;\n const direction = getWrapDirection(quote.assetIn, quote.assetOut, chainId, chainConfigs);\n if (!direction) {\n throw new SdkError(ErrorReason.INVALID_PARAMS, ErrorCode.INVALID_PARAMS, {\n details: 'Quote does not represent a valid wrap/unwrap pair.',\n });\n }\n\n const contractAddress = getWrapperContractAddress(chainId, chainConfigs);\n const isWrapping = direction === 'wrap';\n const data = encodeWrapUnwrapData(direction, quote.amountIn);\n\n const sourceClient = getEvmClientForChain({ chain: quote.sourceChain });\n\n const gas = await estimateWrapUnwrapGas({\n direction,\n amountIn: quote.amountIn,\n contractAddress,\n fromAddress,\n client: sourceClient,\n estimateGasMarginBps: gasSettings?.estimateGasMarginBps,\n });\n\n const request: EvmTransactionRequest = {\n chainId: caip2ToEip155HexChainId(quote.sourceChain.chainId),\n data,\n from: fromAddress,\n gas,\n to: contractAddress,\n value: isWrapping ? quote.amountIn : 0n,\n ...(gasSettings?.maxFeePerGas !== undefined\n ? {\n maxFeePerGas: gasSettings.maxFeePerGas,\n maxPriorityFeePerGas: gasSettings.maxPriorityFeePerGas,\n }\n : null),\n };\n\n const step: TransferStepDetails = {\n currentSignature: 1,\n currentSignatureReason: TransferSignatureReason.WrapToken,\n quote,\n requiredSignatures: 1,\n };\n\n onStepChange?.(step);\n\n const startedAtMs = Date.now();\n\n const txHash = await evmSigner.sign(\n request,\n async (signedTxHash) => sourceClient.sendRawTransaction({ serializedTransaction: signedTxHash }),\n step,\n );\n\n return sourcePendingTransferFromQuote(quote, {\n environment,\n txHash,\n startedAtMs,\n requiredConfirmationCount: 1,\n });\n };\n}\n"],"mappings":"6RAoBA,SAAgB,EAAqB,CACnC,eACA,cACA,aAC+D,CAC/D,OAAO,MAAO,CAAE,QAAO,cAAa,kBAAmB,CACrD,GAAI,EAAM,cAAgBA,EAAAA,YAAY,YACpC,MAAM,IAAIC,EAAAA,SAASC,EAAAA,YAAY,4BAA6BC,EAAAA,UAAU,eAAe,CAGvF,IAAM,EAAM,KAAK,MAAM,KAAK,KAAK,CAAG,IAAM,CAC1C,GAAI,EAAM,WAAa,EACrB,MAAM,IAAIF,EAAAA,SAASC,EAAAA,YAAY,cAAeC,EAAAA,UAAU,eAAe,CAGzE,IAAM,EAAc,EAAM,YAC1B,GAAI,EAAA,EAAA,EAAA,WAAW,EAAY,CACzB,MAAM,IAAIF,EAAAA,SAASC,EAAAA,YAAY,eAAgBC,EAAAA,UAAU,eAAgB,CACvE,QAAS,0CACV,CAAC,CAGJ,IAAM,EAAU,EAAM,YAAY,QAC5B,EAAYC,EAAAA,iBAAiB,EAAM,QAAS,EAAM,SAAU,EAAS,EAAa,CACxF,GAAI,CAAC,EACH,MAAM,IAAIH,EAAAA,SAASC,EAAAA,YAAY,eAAgBC,EAAAA,UAAU,eAAgB,CACvE,QAAS,qDACV,CAAC,CAGJ,IAAM,EAAkBE,EAAAA,0BAA0B,EAAS,EAAa,CAClE,EAAa,IAAc,OAC3B,EAAOC,EAAAA,qBAAqB,EAAW,EAAM,SAAS,CAEtD,EAAeC,EAAAA,qBAAqB,CAAE,MAAO,EAAM,YAAa,CAAC,CAEjE,EAAM,MAAMC,EAAAA,sBAAsB,CACtC,YACA,SAAU,EAAM,SAChB,kBACA,cACA,OAAQ,EACR,qBAAsB,GAAa,qBACpC,CAAC,CAEI,EAAiC,CACrC,QAASC,EAAAA,wBAAwB,EAAM,YAAY,QAAQ,CAC3D,OACA,KAAM,EACN,MACA,GAAI,EACJ,MAAO,EAAa,EAAM,SAAW,GACrC,GAAI,GAAa,eAAiB,IAAA,GAK9B,KAJA,CACE,aAAc,EAAY,aAC1B,qBAAsB,EAAY,qBACnC,CAEN,CAEK,EAA4B,CAChC,iBAAkB,EAClB,uBAAwBC,EAAAA,wBAAwB,UAChD,QACA,mBAAoB,EACrB,CAED,IAAe,EAAK,CAEpB,IAAM,EAAc,KAAK,KAAK,CAQ9B,OAAOC,EAAAA,+BAA+B,EAAO,CAC3C,cACA,OARa,MAAM,EAAU,KAC7B,EACA,KAAO,IAAiB,EAAa,mBAAmB,CAAE,sBAAuB,EAAc,CAAC,CAChG,EACD,CAKC,cACA,0BAA2B,EAC5B,CAAC"}
@@ -0,0 +1,2 @@
1
+ import{ServiceType as e,TransferSignatureReason as t}from"../../../constants.js";import{ErrorCode as n,ErrorReason as r,SdkError as i}from"../../../errors.js";import{caip2ToEip155HexChainId as a}from"../../../utils/caip.js";import{getEvmClientForChain as o}from"../../_utils.js";import{encodeWrapUnwrapData as s,estimateWrapUnwrapGas as c,getWrapDirection as l,getWrapperContractAddress as u}from"../_utils.js";import{sourcePendingTransferFromQuote as d}from"../../_transfer-utilities.js";import{isAddress as f}from"viem";function p({chainConfigs:p,environment:m,evmSigner:h}){return async({quote:g,gasSettings:_,onStepChange:v})=>{if(g.serviceType!==e.WRAP_UNWRAP)throw new i(r.INCORRECT_PROVIDER_PROVIDED,n.INVALID_PARAMS);let y=Math.floor(Date.now()/1e3);if(g.expiresAt<=y)throw new i(r.QUOTE_EXPIRED,n.INVALID_PARAMS);let b=g.fromAddress;if(!f(b))throw new i(r.INVALID_PARAMS,n.INVALID_PARAMS,{details:`fromAddress is not a valid EVM address.`});let x=g.sourceChain.chainId,S=l(g.assetIn,g.assetOut,x,p);if(!S)throw new i(r.INVALID_PARAMS,n.INVALID_PARAMS,{details:`Quote does not represent a valid wrap/unwrap pair.`});let C=u(x,p),w=S===`wrap`,T=s(S,g.amountIn),E=o({chain:g.sourceChain}),D=await c({direction:S,amountIn:g.amountIn,contractAddress:C,fromAddress:b,client:E,estimateGasMarginBps:_?.estimateGasMarginBps}),O={chainId:a(g.sourceChain.chainId),data:T,from:b,gas:D,to:C,value:w?g.amountIn:0n,..._?.maxFeePerGas===void 0?null:{maxFeePerGas:_.maxFeePerGas,maxPriorityFeePerGas:_.maxPriorityFeePerGas}},k={currentSignature:1,currentSignatureReason:t.WrapToken,quote:g,requiredSignatures:1};v?.(k);let A=Date.now();return d(g,{environment:m,txHash:await h.sign(O,async e=>E.sendRawTransaction({serializedTransaction:e}),k),startedAtMs:A,requiredConfirmationCount:1})}}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/wrap-unwrap/_handlers/transfer-asset.ts"],"sourcesContent":["import { isAddress } from 'viem';\nimport { ServiceType, TransferSignatureReason } from '../../../constants';\nimport type { Environment } from '../../../constants';\nimport { ErrorCode, ErrorReason, SdkError } from '../../../errors';\nimport type { TransferService } from '../../../types/service';\nimport type { EvmSigner, EvmTransactionRequest } from '../../../types/signer';\nimport type { TransferStepDetails } from '../../../types/transfer';\nimport type { Caip2ChainId } from '../../../types/caip';\nimport { caip2ToEip155HexChainId } from '../../../utils/caip';\nimport { getEvmClientForChain } from '../../_utils';\nimport { sourcePendingTransferFromQuote } from '../../_transfer-utilities';\nimport { getWrapDirection, getWrapperContractAddress, encodeWrapUnwrapData, estimateWrapUnwrapGas } from '../_utils';\nimport type { WrapChainConfig } from '../constants';\n\nexport interface TransferAssetFactoryConfig {\n chainConfigs: ReadonlyMap<Caip2ChainId, WrapChainConfig>;\n environment: Environment;\n evmSigner: EvmSigner;\n}\n\nexport function transferAssetFactory({\n chainConfigs,\n environment,\n evmSigner,\n}: TransferAssetFactoryConfig): TransferService['transferAsset'] {\n return async ({ quote, gasSettings, onStepChange }) => {\n if (quote.serviceType !== ServiceType.WRAP_UNWRAP) {\n throw new SdkError(ErrorReason.INCORRECT_PROVIDER_PROVIDED, ErrorCode.INVALID_PARAMS);\n }\n\n const now = Math.floor(Date.now() / 1_000);\n if (quote.expiresAt <= now) {\n throw new SdkError(ErrorReason.QUOTE_EXPIRED, ErrorCode.INVALID_PARAMS);\n }\n\n const fromAddress = quote.fromAddress;\n if (!isAddress(fromAddress)) {\n throw new SdkError(ErrorReason.INVALID_PARAMS, ErrorCode.INVALID_PARAMS, {\n details: 'fromAddress is not a valid EVM address.',\n });\n }\n\n const chainId = quote.sourceChain.chainId as Caip2ChainId;\n const direction = getWrapDirection(quote.assetIn, quote.assetOut, chainId, chainConfigs);\n if (!direction) {\n throw new SdkError(ErrorReason.INVALID_PARAMS, ErrorCode.INVALID_PARAMS, {\n details: 'Quote does not represent a valid wrap/unwrap pair.',\n });\n }\n\n const contractAddress = getWrapperContractAddress(chainId, chainConfigs);\n const isWrapping = direction === 'wrap';\n const data = encodeWrapUnwrapData(direction, quote.amountIn);\n\n const sourceClient = getEvmClientForChain({ chain: quote.sourceChain });\n\n const gas = await estimateWrapUnwrapGas({\n direction,\n amountIn: quote.amountIn,\n contractAddress,\n fromAddress,\n client: sourceClient,\n estimateGasMarginBps: gasSettings?.estimateGasMarginBps,\n });\n\n const request: EvmTransactionRequest = {\n chainId: caip2ToEip155HexChainId(quote.sourceChain.chainId),\n data,\n from: fromAddress,\n gas,\n to: contractAddress,\n value: isWrapping ? quote.amountIn : 0n,\n ...(gasSettings?.maxFeePerGas !== undefined\n ? {\n maxFeePerGas: gasSettings.maxFeePerGas,\n maxPriorityFeePerGas: gasSettings.maxPriorityFeePerGas,\n }\n : null),\n };\n\n const step: TransferStepDetails = {\n currentSignature: 1,\n currentSignatureReason: TransferSignatureReason.WrapToken,\n quote,\n requiredSignatures: 1,\n };\n\n onStepChange?.(step);\n\n const startedAtMs = Date.now();\n\n const txHash = await evmSigner.sign(\n request,\n async (signedTxHash) => sourceClient.sendRawTransaction({ serializedTransaction: signedTxHash }),\n step,\n );\n\n return sourcePendingTransferFromQuote(quote, {\n environment,\n txHash,\n startedAtMs,\n requiredConfirmationCount: 1,\n });\n };\n}\n"],"mappings":"0gBAoBA,SAAgB,EAAqB,CACnC,eACA,cACA,aAC+D,CAC/D,OAAO,MAAO,CAAE,QAAO,cAAa,kBAAmB,CACrD,GAAI,EAAM,cAAgB,EAAY,YACpC,MAAM,IAAI,EAAS,EAAY,4BAA6B,EAAU,eAAe,CAGvF,IAAM,EAAM,KAAK,MAAM,KAAK,KAAK,CAAG,IAAM,CAC1C,GAAI,EAAM,WAAa,EACrB,MAAM,IAAI,EAAS,EAAY,cAAe,EAAU,eAAe,CAGzE,IAAM,EAAc,EAAM,YAC1B,GAAI,CAAC,EAAU,EAAY,CACzB,MAAM,IAAI,EAAS,EAAY,eAAgB,EAAU,eAAgB,CACvE,QAAS,0CACV,CAAC,CAGJ,IAAM,EAAU,EAAM,YAAY,QAC5B,EAAY,EAAiB,EAAM,QAAS,EAAM,SAAU,EAAS,EAAa,CACxF,GAAI,CAAC,EACH,MAAM,IAAI,EAAS,EAAY,eAAgB,EAAU,eAAgB,CACvE,QAAS,qDACV,CAAC,CAGJ,IAAM,EAAkB,EAA0B,EAAS,EAAa,CAClE,EAAa,IAAc,OAC3B,EAAO,EAAqB,EAAW,EAAM,SAAS,CAEtD,EAAe,EAAqB,CAAE,MAAO,EAAM,YAAa,CAAC,CAEjE,EAAM,MAAM,EAAsB,CACtC,YACA,SAAU,EAAM,SAChB,kBACA,cACA,OAAQ,EACR,qBAAsB,GAAa,qBACpC,CAAC,CAEI,EAAiC,CACrC,QAAS,EAAwB,EAAM,YAAY,QAAQ,CAC3D,OACA,KAAM,EACN,MACA,GAAI,EACJ,MAAO,EAAa,EAAM,SAAW,GACrC,GAAI,GAAa,eAAiB,IAAA,GAK9B,KAJA,CACE,aAAc,EAAY,aAC1B,qBAAsB,EAAY,qBACnC,CAEN,CAEK,EAA4B,CAChC,iBAAkB,EAClB,uBAAwB,EAAwB,UAChD,QACA,mBAAoB,EACrB,CAED,IAAe,EAAK,CAEpB,IAAM,EAAc,KAAK,KAAK,CAQ9B,OAAO,EAA+B,EAAO,CAC3C,cACA,OARa,MAAM,EAAU,KAC7B,EACA,KAAO,IAAiB,EAAa,mBAAmB,CAAE,sBAAuB,EAAc,CAAC,CAChG,EACD,CAKC,cACA,0BAA2B,EAC5B,CAAC"}
@@ -0,0 +1,2 @@
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants.cjs`),t=require(`../../errors.cjs`),n=require(`../_utils.cjs`),r=require(`../_abis.cjs`);let i=require(`viem`);function a(t,n,r,a){let o=a.get(r);return o?t.type===e.TokenType.NATIVE&&n.type===e.TokenType.ERC20&&(0,i.isAddressEqual)(n.address,o.wrappedTokenAddress)?`wrap`:n.type===e.TokenType.NATIVE&&t.type===e.TokenType.ERC20&&(0,i.isAddressEqual)(t.address,o.wrappedTokenAddress)?`unwrap`:null:null}function o(e,n){let r=n.get(e);if(!r)throw new t.SdkError(t.ErrorReason.CHAIN_NOT_SUPPORTED,t.ErrorCode.INVALID_PARAMS,{details:`No wrap/unwrap config for chain ${e}`});return r.wrappedTokenAddress}function s(e,t){return e===`wrap`?(0,i.encodeFunctionData)({abi:r.WETH_ABI,functionName:`deposit`}):(0,i.encodeFunctionData)({abi:r.WETH_ABI,functionName:`withdraw`,args:[t]})}async function c(e){let i=e.client;try{return n.applyFeeUnitsBpsMargin(e.direction===`wrap`?await i.estimateContractGas({address:e.contractAddress,abi:r.WETH_ABI,functionName:`deposit`,value:e.amountIn,account:e.fromAddress}):await i.estimateContractGas({address:e.contractAddress,abi:r.WETH_ABI,functionName:`withdraw`,args:[e.amountIn],account:e.fromAddress}),e.estimateGasMarginBps)}catch(n){throw new t.SdkError(`Error during gas estimation`,t.ErrorCode.VIEM_ERROR,{cause:n,details:`Failed to estimate gas for ${e.direction} transaction.`})}}exports.encodeWrapUnwrapData=s,exports.estimateWrapUnwrapGas=c,exports.getWrapDirection=a,exports.getWrapperContractAddress=o;
2
+ //# sourceMappingURL=_utils.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_utils.cjs","names":["TokenType","SdkError","ErrorReason","ErrorCode","WETH_ABI","applyFeeUnitsBpsMargin"],"sources":["../../../src/transfer-service/wrap-unwrap/_utils.ts"],"sourcesContent":["import { encodeFunctionData, isAddressEqual, type Address } from 'viem';\nimport { TokenType } from '../../constants';\nimport { ErrorCode, ErrorReason, SdkError } from '../../errors';\nimport type { Asset } from '../../types/asset';\nimport type { Caip2ChainId } from '../../types/caip';\nimport { applyFeeUnitsBpsMargin, getEvmClientForChain } from '../_utils';\nimport { WETH_ABI } from '../_abis';\nimport type { WrapChainConfig } from './constants';\n\nexport type WrapDirection = 'wrap' | 'unwrap';\n\n/**\n * Determine whether the source->target asset pair represents a wrap or unwrap\n * on the given chain. Returns `null` when the pair is not a valid wrap/unwrap.\n */\nexport function getWrapDirection(\n sourceAsset: Asset,\n targetAsset: Asset,\n chainId: Caip2ChainId,\n chainConfigs: ReadonlyMap<Caip2ChainId, WrapChainConfig>,\n): WrapDirection | null {\n const config = chainConfigs.get(chainId);\n if (!config) return null;\n\n if (sourceAsset.type === TokenType.NATIVE && targetAsset.type === TokenType.ERC20) {\n if (isAddressEqual(targetAsset.address, config.wrappedTokenAddress)) {\n return 'wrap';\n }\n }\n\n if (targetAsset.type === TokenType.NATIVE && sourceAsset.type === TokenType.ERC20) {\n if (isAddressEqual(sourceAsset.address, config.wrappedTokenAddress)) {\n return 'unwrap';\n }\n }\n\n return null;\n}\n\n/**\n * Get the wrapper contract address for a given chain.\n * Throws if the chain is not in the config.\n */\nexport function getWrapperContractAddress(\n chainId: Caip2ChainId,\n chainConfigs: ReadonlyMap<Caip2ChainId, WrapChainConfig>,\n): Address {\n const config = chainConfigs.get(chainId);\n if (!config) {\n throw new SdkError(ErrorReason.CHAIN_NOT_SUPPORTED, ErrorCode.INVALID_PARAMS, {\n details: `No wrap/unwrap config for chain ${chainId}`,\n });\n }\n return config.wrappedTokenAddress;\n}\n\n/**\n * Encode the calldata for a wrap or unwrap operation.\n */\nexport function encodeWrapUnwrapData(direction: WrapDirection, amountIn: bigint): `0x${string}` {\n return direction === 'wrap'\n ? encodeFunctionData({ abi: WETH_ABI, functionName: 'deposit' })\n : encodeFunctionData({ abi: WETH_ABI, functionName: 'withdraw', args: [amountIn] });\n}\n\n/**\n * Estimate gas for a wrap or unwrap transaction.\n */\nexport async function estimateWrapUnwrapGas(opts: {\n client: ReturnType<typeof getEvmClientForChain>;\n direction: WrapDirection;\n amountIn: bigint;\n contractAddress: Address;\n fromAddress: `0x${string}`;\n estimateGasMarginBps?: number;\n}): Promise<bigint> {\n const client = opts.client;\n\n try {\n const gasEstimate =\n opts.direction === 'wrap'\n ? await client.estimateContractGas({\n address: opts.contractAddress,\n abi: WETH_ABI,\n functionName: 'deposit',\n value: opts.amountIn,\n account: opts.fromAddress,\n })\n : await client.estimateContractGas({\n address: opts.contractAddress,\n abi: WETH_ABI,\n functionName: 'withdraw',\n args: [opts.amountIn],\n account: opts.fromAddress,\n });\n\n return applyFeeUnitsBpsMargin(gasEstimate, opts.estimateGasMarginBps);\n } catch (err) {\n throw new SdkError('Error during gas estimation', ErrorCode.VIEM_ERROR, {\n cause: err,\n details: `Failed to estimate gas for ${opts.direction} transaction.`,\n });\n }\n}\n"],"mappings":"gMAeA,SAAgB,EACd,EACA,EACA,EACA,EACsB,CACtB,IAAM,EAAS,EAAa,IAAI,EAAQ,CAexC,OAdK,EAED,EAAY,OAASA,EAAAA,UAAU,QAAU,EAAY,OAASA,EAAAA,UAAU,4BACvD,EAAY,QAAS,EAAO,oBAAoB,CAC1D,OAIP,EAAY,OAASA,EAAAA,UAAU,QAAU,EAAY,OAASA,EAAAA,UAAU,4BACvD,EAAY,QAAS,EAAO,oBAAoB,CAC1D,SAIJ,KAda,KAqBtB,SAAgB,EACd,EACA,EACS,CACT,IAAM,EAAS,EAAa,IAAI,EAAQ,CACxC,GAAI,CAAC,EACH,MAAM,IAAIC,EAAAA,SAASC,EAAAA,YAAY,oBAAqBC,EAAAA,UAAU,eAAgB,CAC5E,QAAS,mCAAmC,IAC7C,CAAC,CAEJ,OAAO,EAAO,oBAMhB,SAAgB,EAAqB,EAA0B,EAAiC,CAC9F,OAAO,IAAc,QAAA,EAAA,EAAA,oBACE,CAAE,IAAKC,EAAAA,SAAU,aAAc,UAAW,CAAC,EAAA,EAAA,EAAA,oBAC3C,CAAE,IAAKA,EAAAA,SAAU,aAAc,WAAY,KAAM,CAAC,EAAS,CAAE,CAAC,CAMvF,eAAsB,EAAsB,EAOxB,CAClB,IAAM,EAAS,EAAK,OAEpB,GAAI,CAkBF,OAAOC,EAAAA,uBAhBL,EAAK,YAAc,OACf,MAAM,EAAO,oBAAoB,CAC/B,QAAS,EAAK,gBACd,IAAKD,EAAAA,SACL,aAAc,UACd,MAAO,EAAK,SACZ,QAAS,EAAK,YACf,CAAC,CACF,MAAM,EAAO,oBAAoB,CAC/B,QAAS,EAAK,gBACd,IAAKA,EAAAA,SACL,aAAc,WACd,KAAM,CAAC,EAAK,SAAS,CACrB,QAAS,EAAK,YACf,CAAC,CAEmC,EAAK,qBAAqB,OAC9D,EAAK,CACZ,MAAM,IAAIH,EAAAA,SAAS,8BAA+BE,EAAAA,UAAU,WAAY,CACtE,MAAO,EACP,QAAS,8BAA8B,EAAK,UAAU,eACvD,CAAC"}
@@ -0,0 +1,2 @@
1
+ import{TokenType as e}from"../../constants.js";import{ErrorCode as t,ErrorReason as n,SdkError as r}from"../../errors.js";import{applyFeeUnitsBpsMargin as i}from"../_utils.js";import{WETH_ABI as a}from"../_abis.js";import{encodeFunctionData as o,isAddressEqual as s}from"viem";function c(t,n,r,i){let a=i.get(r);return a?t.type===e.NATIVE&&n.type===e.ERC20&&s(n.address,a.wrappedTokenAddress)?`wrap`:n.type===e.NATIVE&&t.type===e.ERC20&&s(t.address,a.wrappedTokenAddress)?`unwrap`:null:null}function l(e,i){let a=i.get(e);if(!a)throw new r(n.CHAIN_NOT_SUPPORTED,t.INVALID_PARAMS,{details:`No wrap/unwrap config for chain ${e}`});return a.wrappedTokenAddress}function u(e,t){return o(e===`wrap`?{abi:a,functionName:`deposit`}:{abi:a,functionName:`withdraw`,args:[t]})}async function d(e){let n=e.client;try{return i(e.direction===`wrap`?await n.estimateContractGas({address:e.contractAddress,abi:a,functionName:`deposit`,value:e.amountIn,account:e.fromAddress}):await n.estimateContractGas({address:e.contractAddress,abi:a,functionName:`withdraw`,args:[e.amountIn],account:e.fromAddress}),e.estimateGasMarginBps)}catch(n){throw new r(`Error during gas estimation`,t.VIEM_ERROR,{cause:n,details:`Failed to estimate gas for ${e.direction} transaction.`})}}export{u as encodeWrapUnwrapData,d as estimateWrapUnwrapGas,c as getWrapDirection,l as getWrapperContractAddress};
2
+ //# sourceMappingURL=_utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_utils.js","names":[],"sources":["../../../src/transfer-service/wrap-unwrap/_utils.ts"],"sourcesContent":["import { encodeFunctionData, isAddressEqual, type Address } from 'viem';\nimport { TokenType } from '../../constants';\nimport { ErrorCode, ErrorReason, SdkError } from '../../errors';\nimport type { Asset } from '../../types/asset';\nimport type { Caip2ChainId } from '../../types/caip';\nimport { applyFeeUnitsBpsMargin, getEvmClientForChain } from '../_utils';\nimport { WETH_ABI } from '../_abis';\nimport type { WrapChainConfig } from './constants';\n\nexport type WrapDirection = 'wrap' | 'unwrap';\n\n/**\n * Determine whether the source->target asset pair represents a wrap or unwrap\n * on the given chain. Returns `null` when the pair is not a valid wrap/unwrap.\n */\nexport function getWrapDirection(\n sourceAsset: Asset,\n targetAsset: Asset,\n chainId: Caip2ChainId,\n chainConfigs: ReadonlyMap<Caip2ChainId, WrapChainConfig>,\n): WrapDirection | null {\n const config = chainConfigs.get(chainId);\n if (!config) return null;\n\n if (sourceAsset.type === TokenType.NATIVE && targetAsset.type === TokenType.ERC20) {\n if (isAddressEqual(targetAsset.address, config.wrappedTokenAddress)) {\n return 'wrap';\n }\n }\n\n if (targetAsset.type === TokenType.NATIVE && sourceAsset.type === TokenType.ERC20) {\n if (isAddressEqual(sourceAsset.address, config.wrappedTokenAddress)) {\n return 'unwrap';\n }\n }\n\n return null;\n}\n\n/**\n * Get the wrapper contract address for a given chain.\n * Throws if the chain is not in the config.\n */\nexport function getWrapperContractAddress(\n chainId: Caip2ChainId,\n chainConfigs: ReadonlyMap<Caip2ChainId, WrapChainConfig>,\n): Address {\n const config = chainConfigs.get(chainId);\n if (!config) {\n throw new SdkError(ErrorReason.CHAIN_NOT_SUPPORTED, ErrorCode.INVALID_PARAMS, {\n details: `No wrap/unwrap config for chain ${chainId}`,\n });\n }\n return config.wrappedTokenAddress;\n}\n\n/**\n * Encode the calldata for a wrap or unwrap operation.\n */\nexport function encodeWrapUnwrapData(direction: WrapDirection, amountIn: bigint): `0x${string}` {\n return direction === 'wrap'\n ? encodeFunctionData({ abi: WETH_ABI, functionName: 'deposit' })\n : encodeFunctionData({ abi: WETH_ABI, functionName: 'withdraw', args: [amountIn] });\n}\n\n/**\n * Estimate gas for a wrap or unwrap transaction.\n */\nexport async function estimateWrapUnwrapGas(opts: {\n client: ReturnType<typeof getEvmClientForChain>;\n direction: WrapDirection;\n amountIn: bigint;\n contractAddress: Address;\n fromAddress: `0x${string}`;\n estimateGasMarginBps?: number;\n}): Promise<bigint> {\n const client = opts.client;\n\n try {\n const gasEstimate =\n opts.direction === 'wrap'\n ? await client.estimateContractGas({\n address: opts.contractAddress,\n abi: WETH_ABI,\n functionName: 'deposit',\n value: opts.amountIn,\n account: opts.fromAddress,\n })\n : await client.estimateContractGas({\n address: opts.contractAddress,\n abi: WETH_ABI,\n functionName: 'withdraw',\n args: [opts.amountIn],\n account: opts.fromAddress,\n });\n\n return applyFeeUnitsBpsMargin(gasEstimate, opts.estimateGasMarginBps);\n } catch (err) {\n throw new SdkError('Error during gas estimation', ErrorCode.VIEM_ERROR, {\n cause: err,\n details: `Failed to estimate gas for ${opts.direction} transaction.`,\n });\n }\n}\n"],"mappings":"qRAeA,SAAgB,EACd,EACA,EACA,EACA,EACsB,CACtB,IAAM,EAAS,EAAa,IAAI,EAAQ,CAexC,OAdK,EAED,EAAY,OAAS,EAAU,QAAU,EAAY,OAAS,EAAU,OACtE,EAAe,EAAY,QAAS,EAAO,oBAAoB,CAC1D,OAIP,EAAY,OAAS,EAAU,QAAU,EAAY,OAAS,EAAU,OACtE,EAAe,EAAY,QAAS,EAAO,oBAAoB,CAC1D,SAIJ,KAda,KAqBtB,SAAgB,EACd,EACA,EACS,CACT,IAAM,EAAS,EAAa,IAAI,EAAQ,CACxC,GAAI,CAAC,EACH,MAAM,IAAI,EAAS,EAAY,oBAAqB,EAAU,eAAgB,CAC5E,QAAS,mCAAmC,IAC7C,CAAC,CAEJ,OAAO,EAAO,oBAMhB,SAAgB,EAAqB,EAA0B,EAAiC,CAC9F,OACI,EADG,IAAc,OACE,CAAE,IAAK,EAAU,aAAc,UAAW,CAC1C,CAAE,IAAK,EAAU,aAAc,WAAY,KAAM,CAAC,EAAS,CAAE,CAAC,CAMvF,eAAsB,EAAsB,EAOxB,CAClB,IAAM,EAAS,EAAK,OAEpB,GAAI,CAkBF,OAAO,EAhBL,EAAK,YAAc,OACf,MAAM,EAAO,oBAAoB,CAC/B,QAAS,EAAK,gBACd,IAAK,EACL,aAAc,UACd,MAAO,EAAK,SACZ,QAAS,EAAK,YACf,CAAC,CACF,MAAM,EAAO,oBAAoB,CAC/B,QAAS,EAAK,gBACd,IAAK,EACL,aAAc,WACd,KAAM,CAAC,EAAK,SAAS,CACrB,QAAS,EAAK,YACf,CAAC,CAEmC,EAAK,qBAAqB,OAC9D,EAAK,CACZ,MAAM,IAAI,EAAS,8BAA+B,EAAU,WAAY,CACtE,MAAO,EACP,QAAS,8BAA8B,EAAK,UAAU,eACvD,CAAC"}
@@ -0,0 +1,2 @@
1
+ const e=require(`../../constants.cjs`),t=`0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7`,n=`0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2`,r=`0xd00ae08403B9bbb9124bB305C09058E32C39A48c`,i=`0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14`,a=`https://images.ctfassets.net/gcj8jwzm6086/687e413f-7b24-48ff-a490-e61bd741bc8e/b68081167fa0c23d501092de0e767bd7/1-0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2.png`;function o(t,n){return{type:e.TokenType.ERC20,name:`Wrapped AVAX`,symbol:`WAVAX`,decimals:18,address:t,logoUri:n}}function s(t,n){return{type:e.TokenType.ERC20,name:`Wrapped Ether`,symbol:`WETH`,decimals:18,address:t,logoUri:n}}const c=new Map([[e.AvalancheChainIds.MAINNET,{chain:e.AVALANCHE_MAINNET_CHAIN,wrappedTokenAddress:t,nativeAsset:e.NATIVE_AVAX,wrappedAsset:o(t,`https://images.ctfassets.net/gcj8jwzm6086/0921c633-a8d2-4de6-b9f3-6508c641c44c/8b92abcbf0f59c9ad3188b0d9e8e3e3b/43114-0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7.png`)}],[e.EthereumChainIds.MAINNET,{chain:e.ETHEREUM_MAINNET_CHAIN,wrappedTokenAddress:n,nativeAsset:e.NATIVE_ETH,wrappedAsset:s(n,a)}]]),l=new Map([[e.AvalancheChainIds.FUJI,{chain:e.AVALANCHE_FUJI_CHAIN,wrappedTokenAddress:r,nativeAsset:e.NATIVE_AVAX,wrappedAsset:o(r,`https://images.ctfassets.net/gcj8jwzm6086/55f2e7e7-d9df-4827-ba2f-44f8ea357457/be31ef169362713370499782332df33d/43113-0xd00ae08403B9bbb9124bB305C09058E32C39A48c.png`)}],[e.EthereumChainIds.SEPOLIA,{chain:e.ETHEREUM_SEPOLIA_CHAIN,wrappedTokenAddress:i,nativeAsset:e.NATIVE_ETH,wrappedAsset:s(i,a)}]]);function u(t){return t===e.Environment.TEST?l:c}exports.WRAP_UNWRAP_QUOTE_TTL_SECONDS=3600,exports.getChainConfigs=u;
2
+ //# sourceMappingURL=constants.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.cjs","names":["TokenType","AvalancheChainIds","AVALANCHE_MAINNET_CHAIN","NATIVE_AVAX","EthereumChainIds","ETHEREUM_MAINNET_CHAIN","NATIVE_ETH","AVALANCHE_FUJI_CHAIN","ETHEREUM_SEPOLIA_CHAIN","Environment"],"sources":["../../../src/transfer-service/wrap-unwrap/constants.ts"],"sourcesContent":["import type { Address } from 'viem';\nimport {\n AvalancheChainIds,\n Environment,\n EthereumChainIds,\n NATIVE_AVAX,\n NATIVE_ETH,\n TokenType,\n AVALANCHE_FUJI_CHAIN,\n AVALANCHE_MAINNET_CHAIN,\n ETHEREUM_MAINNET_CHAIN,\n ETHEREUM_SEPOLIA_CHAIN,\n} from '../../constants';\nimport type { Erc20Asset, NativeAsset } from '../../types/asset';\nimport type { Caip2ChainId } from '../../types/caip';\nimport type { Chain } from '../../types/chain';\n\nexport const WRAP_UNWRAP_QUOTE_TTL_SECONDS = 3_600;\n\nexport interface WrapChainConfig {\n readonly chain: Chain;\n readonly wrappedTokenAddress: Address;\n readonly nativeAsset: NativeAsset;\n readonly wrappedAsset: Erc20Asset;\n}\n\n// --- Mainnet addresses ---\n\nconst WAVAX_MAINNET: Address = '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7';\nconst WETH_MAINNET: Address = '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2';\n\n// --- Testnet addresses ---\n\nconst WAVAX_FUJI: Address = '0xd00ae08403B9bbb9124bB305C09058E32C39A48c';\nconst WETH_SEPOLIA: Address = '0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14';\n\n// --- Logo URIs ---\n\nconst WAVAX_MAINNET_LOGO_URI =\n 'https://images.ctfassets.net/gcj8jwzm6086/0921c633-a8d2-4de6-b9f3-6508c641c44c/8b92abcbf0f59c9ad3188b0d9e8e3e3b/43114-0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7.png';\nconst WAVAX_FUJI_LOGO_URI =\n 'https://images.ctfassets.net/gcj8jwzm6086/55f2e7e7-d9df-4827-ba2f-44f8ea357457/be31ef169362713370499782332df33d/43113-0xd00ae08403B9bbb9124bB305C09058E32C39A48c.png';\nconst WETH_LOGO_URI =\n 'https://images.ctfassets.net/gcj8jwzm6086/687e413f-7b24-48ff-a490-e61bd741bc8e/b68081167fa0c23d501092de0e767bd7/1-0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2.png';\n\n// --- Asset helpers ---\n\nfunction wrappedAvax(address: Address, logoUri: string): Erc20Asset {\n return { type: TokenType.ERC20, name: 'Wrapped AVAX', symbol: 'WAVAX', decimals: 18, address, logoUri };\n}\n\nfunction wrappedEth(address: Address, logoUri: string): Erc20Asset {\n return { type: TokenType.ERC20, name: 'Wrapped Ether', symbol: 'WETH', decimals: 18, address, logoUri };\n}\n\n// --- Per-environment chain configs ---\n\nconst MAINNET_CONFIGS = new Map<Caip2ChainId, WrapChainConfig>([\n [\n AvalancheChainIds.MAINNET,\n {\n chain: AVALANCHE_MAINNET_CHAIN,\n wrappedTokenAddress: WAVAX_MAINNET,\n nativeAsset: NATIVE_AVAX,\n wrappedAsset: wrappedAvax(WAVAX_MAINNET, WAVAX_MAINNET_LOGO_URI),\n },\n ],\n [\n EthereumChainIds.MAINNET,\n {\n chain: ETHEREUM_MAINNET_CHAIN,\n wrappedTokenAddress: WETH_MAINNET,\n nativeAsset: NATIVE_ETH,\n wrappedAsset: wrappedEth(WETH_MAINNET, WETH_LOGO_URI),\n },\n ],\n]);\n\nconst TESTNET_CONFIGS = new Map<Caip2ChainId, WrapChainConfig>([\n [\n AvalancheChainIds.FUJI,\n {\n chain: AVALANCHE_FUJI_CHAIN,\n wrappedTokenAddress: WAVAX_FUJI,\n nativeAsset: NATIVE_AVAX,\n wrappedAsset: wrappedAvax(WAVAX_FUJI, WAVAX_FUJI_LOGO_URI),\n },\n ],\n [\n EthereumChainIds.SEPOLIA,\n {\n chain: ETHEREUM_SEPOLIA_CHAIN,\n wrappedTokenAddress: WETH_SEPOLIA,\n nativeAsset: NATIVE_ETH,\n wrappedAsset: wrappedEth(WETH_SEPOLIA, WETH_LOGO_URI),\n },\n ],\n]);\n\nexport function getChainConfigs(environment: Environment): ReadonlyMap<Caip2ChainId, WrapChainConfig> {\n return environment === Environment.TEST ? TESTNET_CONFIGS : MAINNET_CONFIGS;\n}\n"],"mappings":"uCA4BM,EAAyB,6CACzB,EAAwB,6CAIxB,EAAsB,6CACtB,EAAwB,6CAQxB,EACJ,mKAIF,SAAS,EAAY,EAAkB,EAA6B,CAClE,MAAO,CAAE,KAAMA,EAAAA,UAAU,MAAO,KAAM,eAAgB,OAAQ,QAAS,SAAU,GAAI,UAAS,UAAS,CAGzG,SAAS,EAAW,EAAkB,EAA6B,CACjE,MAAO,CAAE,KAAMA,EAAAA,UAAU,MAAO,KAAM,gBAAiB,OAAQ,OAAQ,SAAU,GAAI,UAAS,UAAS,CAKzG,MAAM,EAAkB,IAAI,IAAmC,CAC7D,CACEC,EAAAA,kBAAkB,QAClB,CACE,MAAOC,EAAAA,wBACP,oBAAqB,EACrB,YAAaC,EAAAA,YACb,aAAc,EAAY,EAAe,uKAAuB,CACjE,CACF,CACD,CACEC,EAAAA,iBAAiB,QACjB,CACE,MAAOC,EAAAA,uBACP,oBAAqB,EACrB,YAAaC,EAAAA,WACb,aAAc,EAAW,EAAc,EAAc,CACtD,CACF,CACF,CAAC,CAEI,EAAkB,IAAI,IAAmC,CAC7D,CACEL,EAAAA,kBAAkB,KAClB,CACE,MAAOM,EAAAA,qBACP,oBAAqB,EACrB,YAAaJ,EAAAA,YACb,aAAc,EAAY,EAAY,uKAAoB,CAC3D,CACF,CACD,CACEC,EAAAA,iBAAiB,QACjB,CACE,MAAOI,EAAAA,uBACP,oBAAqB,EACrB,YAAaF,EAAAA,WACb,aAAc,EAAW,EAAc,EAAc,CACtD,CACF,CACF,CAAC,CAEF,SAAgB,EAAgB,EAAsE,CACpG,OAAO,IAAgBG,EAAAA,YAAY,KAAO,EAAkB"}
@@ -0,0 +1,2 @@
1
+ import{AVALANCHE_FUJI_CHAIN as e,AVALANCHE_MAINNET_CHAIN as t,AvalancheChainIds as n,ETHEREUM_MAINNET_CHAIN as r,ETHEREUM_SEPOLIA_CHAIN as i,Environment as a,EthereumChainIds as o,NATIVE_AVAX as s,NATIVE_ETH as c,TokenType as l}from"../../constants.js";const u=3600,d=`0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7`,f=`0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2`,p=`0xd00ae08403B9bbb9124bB305C09058E32C39A48c`,m=`0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14`,h=`https://images.ctfassets.net/gcj8jwzm6086/687e413f-7b24-48ff-a490-e61bd741bc8e/b68081167fa0c23d501092de0e767bd7/1-0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2.png`;function g(e,t){return{type:l.ERC20,name:`Wrapped AVAX`,symbol:`WAVAX`,decimals:18,address:e,logoUri:t}}function _(e,t){return{type:l.ERC20,name:`Wrapped Ether`,symbol:`WETH`,decimals:18,address:e,logoUri:t}}const v=new Map([[n.MAINNET,{chain:t,wrappedTokenAddress:d,nativeAsset:s,wrappedAsset:g(d,`https://images.ctfassets.net/gcj8jwzm6086/0921c633-a8d2-4de6-b9f3-6508c641c44c/8b92abcbf0f59c9ad3188b0d9e8e3e3b/43114-0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7.png`)}],[o.MAINNET,{chain:r,wrappedTokenAddress:f,nativeAsset:c,wrappedAsset:_(f,h)}]]),y=new Map([[n.FUJI,{chain:e,wrappedTokenAddress:p,nativeAsset:s,wrappedAsset:g(p,`https://images.ctfassets.net/gcj8jwzm6086/55f2e7e7-d9df-4827-ba2f-44f8ea357457/be31ef169362713370499782332df33d/43113-0xd00ae08403B9bbb9124bB305C09058E32C39A48c.png`)}],[o.SEPOLIA,{chain:i,wrappedTokenAddress:m,nativeAsset:c,wrappedAsset:_(m,h)}]]);function b(e){return e===a.TEST?y:v}export{u as WRAP_UNWRAP_QUOTE_TTL_SECONDS,b as getChainConfigs};
2
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","names":[],"sources":["../../../src/transfer-service/wrap-unwrap/constants.ts"],"sourcesContent":["import type { Address } from 'viem';\nimport {\n AvalancheChainIds,\n Environment,\n EthereumChainIds,\n NATIVE_AVAX,\n NATIVE_ETH,\n TokenType,\n AVALANCHE_FUJI_CHAIN,\n AVALANCHE_MAINNET_CHAIN,\n ETHEREUM_MAINNET_CHAIN,\n ETHEREUM_SEPOLIA_CHAIN,\n} from '../../constants';\nimport type { Erc20Asset, NativeAsset } from '../../types/asset';\nimport type { Caip2ChainId } from '../../types/caip';\nimport type { Chain } from '../../types/chain';\n\nexport const WRAP_UNWRAP_QUOTE_TTL_SECONDS = 3_600;\n\nexport interface WrapChainConfig {\n readonly chain: Chain;\n readonly wrappedTokenAddress: Address;\n readonly nativeAsset: NativeAsset;\n readonly wrappedAsset: Erc20Asset;\n}\n\n// --- Mainnet addresses ---\n\nconst WAVAX_MAINNET: Address = '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7';\nconst WETH_MAINNET: Address = '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2';\n\n// --- Testnet addresses ---\n\nconst WAVAX_FUJI: Address = '0xd00ae08403B9bbb9124bB305C09058E32C39A48c';\nconst WETH_SEPOLIA: Address = '0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14';\n\n// --- Logo URIs ---\n\nconst WAVAX_MAINNET_LOGO_URI =\n 'https://images.ctfassets.net/gcj8jwzm6086/0921c633-a8d2-4de6-b9f3-6508c641c44c/8b92abcbf0f59c9ad3188b0d9e8e3e3b/43114-0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7.png';\nconst WAVAX_FUJI_LOGO_URI =\n 'https://images.ctfassets.net/gcj8jwzm6086/55f2e7e7-d9df-4827-ba2f-44f8ea357457/be31ef169362713370499782332df33d/43113-0xd00ae08403B9bbb9124bB305C09058E32C39A48c.png';\nconst WETH_LOGO_URI =\n 'https://images.ctfassets.net/gcj8jwzm6086/687e413f-7b24-48ff-a490-e61bd741bc8e/b68081167fa0c23d501092de0e767bd7/1-0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2.png';\n\n// --- Asset helpers ---\n\nfunction wrappedAvax(address: Address, logoUri: string): Erc20Asset {\n return { type: TokenType.ERC20, name: 'Wrapped AVAX', symbol: 'WAVAX', decimals: 18, address, logoUri };\n}\n\nfunction wrappedEth(address: Address, logoUri: string): Erc20Asset {\n return { type: TokenType.ERC20, name: 'Wrapped Ether', symbol: 'WETH', decimals: 18, address, logoUri };\n}\n\n// --- Per-environment chain configs ---\n\nconst MAINNET_CONFIGS = new Map<Caip2ChainId, WrapChainConfig>([\n [\n AvalancheChainIds.MAINNET,\n {\n chain: AVALANCHE_MAINNET_CHAIN,\n wrappedTokenAddress: WAVAX_MAINNET,\n nativeAsset: NATIVE_AVAX,\n wrappedAsset: wrappedAvax(WAVAX_MAINNET, WAVAX_MAINNET_LOGO_URI),\n },\n ],\n [\n EthereumChainIds.MAINNET,\n {\n chain: ETHEREUM_MAINNET_CHAIN,\n wrappedTokenAddress: WETH_MAINNET,\n nativeAsset: NATIVE_ETH,\n wrappedAsset: wrappedEth(WETH_MAINNET, WETH_LOGO_URI),\n },\n ],\n]);\n\nconst TESTNET_CONFIGS = new Map<Caip2ChainId, WrapChainConfig>([\n [\n AvalancheChainIds.FUJI,\n {\n chain: AVALANCHE_FUJI_CHAIN,\n wrappedTokenAddress: WAVAX_FUJI,\n nativeAsset: NATIVE_AVAX,\n wrappedAsset: wrappedAvax(WAVAX_FUJI, WAVAX_FUJI_LOGO_URI),\n },\n ],\n [\n EthereumChainIds.SEPOLIA,\n {\n chain: ETHEREUM_SEPOLIA_CHAIN,\n wrappedTokenAddress: WETH_SEPOLIA,\n nativeAsset: NATIVE_ETH,\n wrappedAsset: wrappedEth(WETH_SEPOLIA, WETH_LOGO_URI),\n },\n ],\n]);\n\nexport function getChainConfigs(environment: Environment): ReadonlyMap<Caip2ChainId, WrapChainConfig> {\n return environment === Environment.TEST ? TESTNET_CONFIGS : MAINNET_CONFIGS;\n}\n"],"mappings":"6PAiBA,MAAa,EAAgC,KAWvC,EAAyB,6CACzB,EAAwB,6CAIxB,EAAsB,6CACtB,EAAwB,6CAQxB,EACJ,mKAIF,SAAS,EAAY,EAAkB,EAA6B,CAClE,MAAO,CAAE,KAAM,EAAU,MAAO,KAAM,eAAgB,OAAQ,QAAS,SAAU,GAAI,UAAS,UAAS,CAGzG,SAAS,EAAW,EAAkB,EAA6B,CACjE,MAAO,CAAE,KAAM,EAAU,MAAO,KAAM,gBAAiB,OAAQ,OAAQ,SAAU,GAAI,UAAS,UAAS,CAKzG,MAAM,EAAkB,IAAI,IAAmC,CAC7D,CACE,EAAkB,QAClB,CACE,MAAO,EACP,oBAAqB,EACrB,YAAa,EACb,aAAc,EAAY,EAAe,uKAAuB,CACjE,CACF,CACD,CACE,EAAiB,QACjB,CACE,MAAO,EACP,oBAAqB,EACrB,YAAa,EACb,aAAc,EAAW,EAAc,EAAc,CACtD,CACF,CACF,CAAC,CAEI,EAAkB,IAAI,IAAmC,CAC7D,CACE,EAAkB,KAClB,CACE,MAAO,EACP,oBAAqB,EACrB,YAAa,EACb,aAAc,EAAY,EAAY,uKAAoB,CAC3D,CACF,CACD,CACE,EAAiB,QACjB,CACE,MAAO,EACP,oBAAqB,EACrB,YAAa,EACb,aAAc,EAAW,EAAc,EAAc,CACtD,CACF,CACF,CAAC,CAEF,SAAgB,EAAgB,EAAsE,CACpG,OAAO,IAAgB,EAAY,KAAO,EAAkB"}
@@ -0,0 +1,2 @@
1
+ const e=require(`../../constants.cjs`),t=require(`./constants.cjs`),n=require(`./_handlers/analyze-support.cjs`),r=require(`./_handlers/estimate-native-fee.cjs`),i=require(`./_handlers/get-assets.cjs`),a=require(`./_handlers/get-bridgeable-assets.cjs`),o=require(`./_handlers/get-minimum-transfer-amount.cjs`),s=require(`./_handlers/stream-quotes.cjs`),c=require(`./_handlers/track-transfer.cjs`),l=require(`./_handlers/transfer-asset.cjs`);async function u({environment:u,evmSigner:d}){let f=t.getChainConfigs(u);return{analyzeSupport:n.analyzeSupportFactory({chainConfigs:f}),estimateNativeFee:r.estimateNativeFeeFactory({chainConfigs:f}),getAssets:i.getAssetsFactory({chainConfigs:f}),getBridgeableAssets:a.getBridgeableAssetsFactory({chainConfigs:f}),getMinimumTransferAmount:o.getMinimumTransferAmountFactory(),getSupportedChains:async()=>{let e=new Map;for(let t of f.keys())e.set(t,new Set([t]));return e},streamQuotes:s.streamQuotesFactory(),trackTransfer:c.trackTransferFactory(),transferAsset:l.transferAssetFactory({chainConfigs:f,environment:u,evmSigner:d}),type:e.ServiceType.WRAP_UNWRAP}}exports.createWrapUnwrapService=u;
2
+ //# sourceMappingURL=wrap-unwrap-service.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrap-unwrap-service.cjs","names":["getChainConfigs","analyzeSupportFactory","estimateNativeFeeFactory","getAssetsFactory","getBridgeableAssetsFactory","getMinimumTransferAmountFactory","streamQuotesFactory","trackTransferFactory","transferAssetFactory","ServiceType"],"sources":["../../../src/transfer-service/wrap-unwrap/wrap-unwrap-service.ts"],"sourcesContent":["import { ServiceType } from '../../constants';\nimport type { Environment } from '../../constants';\nimport type { EvmSigner } from '../../types/signer';\nimport type { MutableGetSupportedChainsResult, TransferService } from '../../types/service';\nimport { getChainConfigs } from './constants';\nimport { analyzeSupportFactory } from './_handlers/analyze-support';\nimport { estimateNativeFeeFactory } from './_handlers/estimate-native-fee';\nimport { getAssetsFactory } from './_handlers/get-assets';\nimport { getBridgeableAssetsFactory } from './_handlers/get-bridgeable-assets';\nimport { getMinimumTransferAmountFactory } from './_handlers/get-minimum-transfer-amount';\nimport { streamQuotesFactory } from './_handlers/stream-quotes';\nimport { trackTransferFactory } from './_handlers/track-transfer';\nimport { transferAssetFactory } from './_handlers/transfer-asset';\nimport type { Fetch } from '../../types/utility-types';\n\nexport interface WrapUnwrapServiceOptions {\n environment: Environment;\n evmSigner: EvmSigner;\n fetch?: Fetch;\n}\n\nexport async function createWrapUnwrapService({\n environment,\n evmSigner,\n}: WrapUnwrapServiceOptions): Promise<TransferService> {\n const chainConfigs = getChainConfigs(environment);\n\n return {\n analyzeSupport: analyzeSupportFactory({ chainConfigs }),\n estimateNativeFee: estimateNativeFeeFactory({ chainConfigs }),\n getAssets: getAssetsFactory({ chainConfigs }),\n getBridgeableAssets: getBridgeableAssetsFactory({ chainConfigs }),\n getMinimumTransferAmount: getMinimumTransferAmountFactory(),\n getSupportedChains: async () => {\n const supportedChainsMap: MutableGetSupportedChainsResult = new Map();\n\n for (const chainId of chainConfigs.keys()) {\n supportedChainsMap.set(chainId, new Set([chainId]));\n }\n\n return supportedChainsMap;\n },\n streamQuotes: streamQuotesFactory(),\n trackTransfer: trackTransferFactory(),\n transferAsset: transferAssetFactory({ chainConfigs, environment, evmSigner }),\n type: ServiceType.WRAP_UNWRAP,\n } satisfies TransferService;\n}\n"],"mappings":"ybAqBA,eAAsB,EAAwB,CAC5C,cACA,aACqD,CACrD,IAAM,EAAeA,EAAAA,gBAAgB,EAAY,CAEjD,MAAO,CACL,eAAgBC,EAAAA,sBAAsB,CAAE,eAAc,CAAC,CACvD,kBAAmBC,EAAAA,yBAAyB,CAAE,eAAc,CAAC,CAC7D,UAAWC,EAAAA,iBAAiB,CAAE,eAAc,CAAC,CAC7C,oBAAqBC,EAAAA,2BAA2B,CAAE,eAAc,CAAC,CACjE,yBAA0BC,EAAAA,iCAAiC,CAC3D,mBAAoB,SAAY,CAC9B,IAAM,EAAsD,IAAI,IAEhE,IAAK,IAAM,KAAW,EAAa,MAAM,CACvC,EAAmB,IAAI,EAAS,IAAI,IAAI,CAAC,EAAQ,CAAC,CAAC,CAGrD,OAAO,GAET,aAAcC,EAAAA,qBAAqB,CACnC,cAAeC,EAAAA,sBAAsB,CACrC,cAAeC,EAAAA,qBAAqB,CAAE,eAAc,cAAa,YAAW,CAAC,CAC7E,KAAMC,EAAAA,YAAY,YACnB"}
@@ -0,0 +1,2 @@
1
+ import{ServiceType as e}from"../../constants.js";import{getChainConfigs as t}from"./constants.js";import{analyzeSupportFactory as n}from"./_handlers/analyze-support.js";import{estimateNativeFeeFactory as r}from"./_handlers/estimate-native-fee.js";import{getAssetsFactory as i}from"./_handlers/get-assets.js";import{getBridgeableAssetsFactory as a}from"./_handlers/get-bridgeable-assets.js";import{getMinimumTransferAmountFactory as o}from"./_handlers/get-minimum-transfer-amount.js";import{streamQuotesFactory as s}from"./_handlers/stream-quotes.js";import{trackTransferFactory as c}from"./_handlers/track-transfer.js";import{transferAssetFactory as l}from"./_handlers/transfer-asset.js";async function u({environment:u,evmSigner:d}){let f=t(u);return{analyzeSupport:n({chainConfigs:f}),estimateNativeFee:r({chainConfigs:f}),getAssets:i({chainConfigs:f}),getBridgeableAssets:a({chainConfigs:f}),getMinimumTransferAmount:o(),getSupportedChains:async()=>{let e=new Map;for(let t of f.keys())e.set(t,new Set([t]));return e},streamQuotes:s(),trackTransfer:c(),transferAsset:l({chainConfigs:f,environment:u,evmSigner:d}),type:e.WRAP_UNWRAP}}export{u as createWrapUnwrapService};
2
+ //# sourceMappingURL=wrap-unwrap-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrap-unwrap-service.js","names":[],"sources":["../../../src/transfer-service/wrap-unwrap/wrap-unwrap-service.ts"],"sourcesContent":["import { ServiceType } from '../../constants';\nimport type { Environment } from '../../constants';\nimport type { EvmSigner } from '../../types/signer';\nimport type { MutableGetSupportedChainsResult, TransferService } from '../../types/service';\nimport { getChainConfigs } from './constants';\nimport { analyzeSupportFactory } from './_handlers/analyze-support';\nimport { estimateNativeFeeFactory } from './_handlers/estimate-native-fee';\nimport { getAssetsFactory } from './_handlers/get-assets';\nimport { getBridgeableAssetsFactory } from './_handlers/get-bridgeable-assets';\nimport { getMinimumTransferAmountFactory } from './_handlers/get-minimum-transfer-amount';\nimport { streamQuotesFactory } from './_handlers/stream-quotes';\nimport { trackTransferFactory } from './_handlers/track-transfer';\nimport { transferAssetFactory } from './_handlers/transfer-asset';\nimport type { Fetch } from '../../types/utility-types';\n\nexport interface WrapUnwrapServiceOptions {\n environment: Environment;\n evmSigner: EvmSigner;\n fetch?: Fetch;\n}\n\nexport async function createWrapUnwrapService({\n environment,\n evmSigner,\n}: WrapUnwrapServiceOptions): Promise<TransferService> {\n const chainConfigs = getChainConfigs(environment);\n\n return {\n analyzeSupport: analyzeSupportFactory({ chainConfigs }),\n estimateNativeFee: estimateNativeFeeFactory({ chainConfigs }),\n getAssets: getAssetsFactory({ chainConfigs }),\n getBridgeableAssets: getBridgeableAssetsFactory({ chainConfigs }),\n getMinimumTransferAmount: getMinimumTransferAmountFactory(),\n getSupportedChains: async () => {\n const supportedChainsMap: MutableGetSupportedChainsResult = new Map();\n\n for (const chainId of chainConfigs.keys()) {\n supportedChainsMap.set(chainId, new Set([chainId]));\n }\n\n return supportedChainsMap;\n },\n streamQuotes: streamQuotesFactory(),\n trackTransfer: trackTransferFactory(),\n transferAsset: transferAssetFactory({ chainConfigs, environment, evmSigner }),\n type: ServiceType.WRAP_UNWRAP,\n } satisfies TransferService;\n}\n"],"mappings":"grBAqBA,eAAsB,EAAwB,CAC5C,cACA,aACqD,CACrD,IAAM,EAAe,EAAgB,EAAY,CAEjD,MAAO,CACL,eAAgB,EAAsB,CAAE,eAAc,CAAC,CACvD,kBAAmB,EAAyB,CAAE,eAAc,CAAC,CAC7D,UAAW,EAAiB,CAAE,eAAc,CAAC,CAC7C,oBAAqB,EAA2B,CAAE,eAAc,CAAC,CACjE,yBAA0B,GAAiC,CAC3D,mBAAoB,SAAY,CAC9B,IAAM,EAAsD,IAAI,IAEhE,IAAK,IAAM,KAAW,EAAa,MAAM,CACvC,EAAmB,IAAI,EAAS,IAAI,IAAI,CAAC,EAAQ,CAAC,CAAC,CAGrD,OAAO,GAET,aAAc,GAAqB,CACnC,cAAe,GAAsB,CACrC,cAAe,EAAqB,CAAE,eAAc,cAAa,YAAW,CAAC,CAC7E,KAAM,EAAY,YACnB"}
@@ -0,0 +1,2 @@
1
+ const e=require(`./constants.cjs`),t=t=>typeof t==`string`&&Object.values(e.Environment).some(e=>e===t),n=t=>e.EVM_SERVICE_TYPES.includes(t.type),r=t=>t.type===e.ServiceType.LOMBARD_BTC_TO_BTCB||t.type===e.ServiceType.LOMBARD_BTCB_TO_BTC,i=t=>t.type===e.ServiceType.MARKR,a=t=>typeof t==`object`&&!!t&&`type`in t&&typeof t.type==`string`&&Object.values(e.ServiceType).some(e=>e===t.type),o=t=>t.type===e.TokenType.ERC20,s=t=>t.type===e.TokenType.NATIVE,c=t=>t.type===e.TokenType.SPL;exports.isEnvironment=t,exports.isErc20Asset=o,exports.isEvmBridgeInitializer=n,exports.isLombardServiceInitializer=r,exports.isMarkrServiceInitializer=i,exports.isNativeAsset=s,exports.isServiceInitializer=a,exports.isSplAsset=c;
2
+ //# sourceMappingURL=type-guards.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-guards.cjs","names":["Environment","EVM_SERVICE_TYPES","ServiceType","TokenType"],"sources":["../src/type-guards.ts"],"sourcesContent":["import { Environment, EVM_SERVICE_TYPES, ServiceType, TokenType } from './constants';\nimport type { Asset, Erc20Asset, NativeAsset, SplAsset } from './types/asset';\nimport type {\n EvmServiceInitializer,\n MarkrServiceInitializer,\n ServiceInitializer,\n LombardServiceInitializer,\n} from './types/service';\n\nexport const isEnvironment = (env: unknown): env is Environment => {\n return typeof env === 'string' && Object.values(Environment).some((e) => e === env);\n};\n\nexport const isEvmBridgeInitializer = (initializer: ServiceInitializer): initializer is EvmServiceInitializer => {\n return (EVM_SERVICE_TYPES as readonly ServiceType[]).includes(initializer.type);\n};\n\nexport const isLombardServiceInitializer = (\n initializer: ServiceInitializer,\n): initializer is LombardServiceInitializer => {\n return initializer.type === ServiceType.LOMBARD_BTC_TO_BTCB || initializer.type === ServiceType.LOMBARD_BTCB_TO_BTC;\n};\n\nexport const isMarkrServiceInitializer = (initializer: ServiceInitializer): initializer is MarkrServiceInitializer => {\n return initializer.type === ServiceType.MARKR;\n};\n\nexport const isServiceInitializer = (initializer: unknown): initializer is ServiceInitializer => {\n return (\n typeof initializer === 'object' &&\n initializer !== null &&\n 'type' in initializer &&\n typeof initializer.type === 'string' &&\n Object.values(ServiceType).some((t) => t === initializer.type)\n );\n};\n\nexport const isErc20Asset = (asset: Asset): asset is Erc20Asset => asset.type === TokenType.ERC20;\nexport const isNativeAsset = (asset: Asset): asset is NativeAsset => asset.type === TokenType.NATIVE;\nexport const isSplAsset = (asset: Asset): asset is SplAsset => asset.type === TokenType.SPL;\n"],"mappings":"mCASa,EAAiB,GACrB,OAAO,GAAQ,UAAY,OAAO,OAAOA,EAAAA,YAAY,CAAC,KAAM,GAAM,IAAM,EAAI,CAGxE,EAA0B,GAC7BC,EAAAA,kBAA6C,SAAS,EAAY,KAAK,CAGpE,EACX,GAEO,EAAY,OAASC,EAAAA,YAAY,qBAAuB,EAAY,OAASA,EAAAA,YAAY,oBAGrF,EAA6B,GACjC,EAAY,OAASA,EAAAA,YAAY,MAG7B,EAAwB,GAEjC,OAAO,GAAgB,YACvB,GACA,SAAU,GACV,OAAO,EAAY,MAAS,UAC5B,OAAO,OAAOA,EAAAA,YAAY,CAAC,KAAM,GAAM,IAAM,EAAY,KAAK,CAIrD,EAAgB,GAAsC,EAAM,OAASC,EAAAA,UAAU,MAC/E,EAAiB,GAAuC,EAAM,OAASA,EAAAA,UAAU,OACjF,EAAc,GAAoC,EAAM,OAASA,EAAAA,UAAU"}
@@ -0,0 +1,16 @@
1
+ import { Environment } from "./constants.cjs";
2
+ import { Asset, Erc20Asset, NativeAsset, SplAsset } from "./types/asset.cjs";
3
+ import { EvmServiceInitializer, LombardServiceInitializer, MarkrServiceInitializer, ServiceInitializer } from "./types/service.cjs";
4
+
5
+ //#region src/type-guards.d.ts
6
+ declare const isEnvironment: (env: unknown) => env is Environment;
7
+ declare const isEvmBridgeInitializer: (initializer: ServiceInitializer) => initializer is EvmServiceInitializer;
8
+ declare const isLombardServiceInitializer: (initializer: ServiceInitializer) => initializer is LombardServiceInitializer;
9
+ declare const isMarkrServiceInitializer: (initializer: ServiceInitializer) => initializer is MarkrServiceInitializer;
10
+ declare const isServiceInitializer: (initializer: unknown) => initializer is ServiceInitializer;
11
+ declare const isErc20Asset: (asset: Asset) => asset is Erc20Asset;
12
+ declare const isNativeAsset: (asset: Asset) => asset is NativeAsset;
13
+ declare const isSplAsset: (asset: Asset) => asset is SplAsset;
14
+ //#endregion
15
+ export { isEnvironment, isErc20Asset, isEvmBridgeInitializer, isLombardServiceInitializer, isMarkrServiceInitializer, isNativeAsset, isServiceInitializer, isSplAsset };
16
+ //# sourceMappingURL=type-guards.d.cts.map
@@ -0,0 +1,16 @@
1
+ import { Environment } from "./constants.js";
2
+ import { Asset, Erc20Asset, NativeAsset, SplAsset } from "./types/asset.js";
3
+ import { EvmServiceInitializer, LombardServiceInitializer, MarkrServiceInitializer, ServiceInitializer } from "./types/service.js";
4
+
5
+ //#region src/type-guards.d.ts
6
+ declare const isEnvironment: (env: unknown) => env is Environment;
7
+ declare const isEvmBridgeInitializer: (initializer: ServiceInitializer) => initializer is EvmServiceInitializer;
8
+ declare const isLombardServiceInitializer: (initializer: ServiceInitializer) => initializer is LombardServiceInitializer;
9
+ declare const isMarkrServiceInitializer: (initializer: ServiceInitializer) => initializer is MarkrServiceInitializer;
10
+ declare const isServiceInitializer: (initializer: unknown) => initializer is ServiceInitializer;
11
+ declare const isErc20Asset: (asset: Asset) => asset is Erc20Asset;
12
+ declare const isNativeAsset: (asset: Asset) => asset is NativeAsset;
13
+ declare const isSplAsset: (asset: Asset) => asset is SplAsset;
14
+ //#endregion
15
+ export { isEnvironment, isErc20Asset, isEvmBridgeInitializer, isLombardServiceInitializer, isMarkrServiceInitializer, isNativeAsset, isServiceInitializer, isSplAsset };
16
+ //# sourceMappingURL=type-guards.d.ts.map
@@ -0,0 +1,2 @@
1
+ import{EVM_SERVICE_TYPES as e,Environment as t,ServiceType as n,TokenType as r}from"./constants.js";const i=e=>typeof e==`string`&&Object.values(t).some(t=>t===e),a=t=>e.includes(t.type),o=e=>e.type===n.LOMBARD_BTC_TO_BTCB||e.type===n.LOMBARD_BTCB_TO_BTC,s=e=>e.type===n.MARKR,c=e=>typeof e==`object`&&!!e&&`type`in e&&typeof e.type==`string`&&Object.values(n).some(t=>t===e.type),l=e=>e.type===r.ERC20,u=e=>e.type===r.NATIVE,d=e=>e.type===r.SPL;export{i as isEnvironment,l as isErc20Asset,a as isEvmBridgeInitializer,o as isLombardServiceInitializer,s as isMarkrServiceInitializer,u as isNativeAsset,c as isServiceInitializer,d as isSplAsset};
2
+ //# sourceMappingURL=type-guards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-guards.js","names":[],"sources":["../src/type-guards.ts"],"sourcesContent":["import { Environment, EVM_SERVICE_TYPES, ServiceType, TokenType } from './constants';\nimport type { Asset, Erc20Asset, NativeAsset, SplAsset } from './types/asset';\nimport type {\n EvmServiceInitializer,\n MarkrServiceInitializer,\n ServiceInitializer,\n LombardServiceInitializer,\n} from './types/service';\n\nexport const isEnvironment = (env: unknown): env is Environment => {\n return typeof env === 'string' && Object.values(Environment).some((e) => e === env);\n};\n\nexport const isEvmBridgeInitializer = (initializer: ServiceInitializer): initializer is EvmServiceInitializer => {\n return (EVM_SERVICE_TYPES as readonly ServiceType[]).includes(initializer.type);\n};\n\nexport const isLombardServiceInitializer = (\n initializer: ServiceInitializer,\n): initializer is LombardServiceInitializer => {\n return initializer.type === ServiceType.LOMBARD_BTC_TO_BTCB || initializer.type === ServiceType.LOMBARD_BTCB_TO_BTC;\n};\n\nexport const isMarkrServiceInitializer = (initializer: ServiceInitializer): initializer is MarkrServiceInitializer => {\n return initializer.type === ServiceType.MARKR;\n};\n\nexport const isServiceInitializer = (initializer: unknown): initializer is ServiceInitializer => {\n return (\n typeof initializer === 'object' &&\n initializer !== null &&\n 'type' in initializer &&\n typeof initializer.type === 'string' &&\n Object.values(ServiceType).some((t) => t === initializer.type)\n );\n};\n\nexport const isErc20Asset = (asset: Asset): asset is Erc20Asset => asset.type === TokenType.ERC20;\nexport const isNativeAsset = (asset: Asset): asset is NativeAsset => asset.type === TokenType.NATIVE;\nexport const isSplAsset = (asset: Asset): asset is SplAsset => asset.type === TokenType.SPL;\n"],"mappings":"oGASA,MAAa,EAAiB,GACrB,OAAO,GAAQ,UAAY,OAAO,OAAO,EAAY,CAAC,KAAM,GAAM,IAAM,EAAI,CAGxE,EAA0B,GAC7B,EAA6C,SAAS,EAAY,KAAK,CAGpE,EACX,GAEO,EAAY,OAAS,EAAY,qBAAuB,EAAY,OAAS,EAAY,oBAGrF,EAA6B,GACjC,EAAY,OAAS,EAAY,MAG7B,EAAwB,GAEjC,OAAO,GAAgB,YACvB,GACA,SAAU,GACV,OAAO,EAAY,MAAS,UAC5B,OAAO,OAAO,EAAY,CAAC,KAAM,GAAM,IAAM,EAAY,KAAK,CAIrD,EAAgB,GAAsC,EAAM,OAAS,EAAU,MAC/E,EAAiB,GAAuC,EAAM,OAAS,EAAU,OACjF,EAAc,GAAoC,EAAM,OAAS,EAAU"}
@@ -0,0 +1,66 @@
1
+ import { Caip2ChainId } from "./caip.cjs";
2
+ import { ServiceType, TokenType } from "../constants.cjs";
3
+ import { Address } from "viem";
4
+ import { Address as Address$1 } from "@solana/kit";
5
+
6
+ //#region src/types/asset.d.ts
7
+ interface AssetBase {
8
+ /** Asset display name, e.g. 'Avalanche'. */
9
+ readonly name: string;
10
+ /** Symbol/ticker, e.g. 'AVAX' or 'USDC'. */
11
+ readonly symbol: string;
12
+ /** Number of decimals for smallest unit. */
13
+ readonly decimals: number;
14
+ readonly type: TokenType;
15
+ readonly logoUri?: string;
16
+ }
17
+ /** ERC-20 token asset. */
18
+ interface Erc20Asset extends AssetBase {
19
+ readonly type: TokenType.ERC20;
20
+ /** Contract address on its chain. */
21
+ readonly address: Address;
22
+ }
23
+ /** Native coin asset (no contract address). */
24
+ interface NativeAsset extends AssetBase {
25
+ readonly type: TokenType.NATIVE;
26
+ }
27
+ /** SPL token asset. */
28
+ interface SplAsset extends AssetBase {
29
+ readonly type: TokenType.SPL;
30
+ /** Mint address on Solana. */
31
+ readonly address: Address$1;
32
+ }
33
+ /** Chain-local assets (ERC-20 or native). */
34
+ type Asset = Erc20Asset | NativeAsset | SplAsset;
35
+ /**
36
+ * Asset with capabilities for transfer planning.
37
+ * - `destinations`: possible bridged target chains by ServiceType
38
+ * - `swapProviders`: swap providers available on the source chain
39
+ */
40
+ type TransferableAsset = Asset & {
41
+ /** Possible bridged target chains keyed by chain and listing bridge-capable ServiceTypes. */readonly destinations: {
42
+ readonly [chain: Caip2ChainId]: {
43
+ /**
44
+ * This is the address of the asset on the destination chain.
45
+ */
46
+ readonly address: string;
47
+ readonly bridgeProviders: readonly ServiceType[];
48
+ };
49
+ }; /** Swap-capable services (same-chain) available for this asset on its source chain. */
50
+ readonly swapProviders: readonly ServiceType[];
51
+ };
52
+ /** Map of CAIP-2 chain IDs to assets supported on that chain. */
53
+ type ChainAssetMap = {
54
+ readonly [chain: Caip2ChainId]: readonly TransferableAsset[];
55
+ };
56
+ type DestinationInfo = Record<string, {
57
+ address: string;
58
+ bridgeProviders: ServiceType[];
59
+ }>;
60
+ /** Asset enriched with bridge providers that support it as a destination. */
61
+ type BridgeableUiAsset = Asset & {
62
+ readonly bridgeProviders: readonly ServiceType[];
63
+ };
64
+ //#endregion
65
+ export { Asset, BridgeableUiAsset, ChainAssetMap, DestinationInfo, Erc20Asset, NativeAsset, SplAsset, TransferableAsset };
66
+ //# sourceMappingURL=asset.d.cts.map
@@ -0,0 +1,66 @@
1
+ import { Caip2ChainId } from "./caip.js";
2
+ import { ServiceType, TokenType } from "../constants.js";
3
+ import { Address } from "viem";
4
+ import { Address as Address$1 } from "@solana/kit";
5
+
6
+ //#region src/types/asset.d.ts
7
+ interface AssetBase {
8
+ /** Asset display name, e.g. 'Avalanche'. */
9
+ readonly name: string;
10
+ /** Symbol/ticker, e.g. 'AVAX' or 'USDC'. */
11
+ readonly symbol: string;
12
+ /** Number of decimals for smallest unit. */
13
+ readonly decimals: number;
14
+ readonly type: TokenType;
15
+ readonly logoUri?: string;
16
+ }
17
+ /** ERC-20 token asset. */
18
+ interface Erc20Asset extends AssetBase {
19
+ readonly type: TokenType.ERC20;
20
+ /** Contract address on its chain. */
21
+ readonly address: Address;
22
+ }
23
+ /** Native coin asset (no contract address). */
24
+ interface NativeAsset extends AssetBase {
25
+ readonly type: TokenType.NATIVE;
26
+ }
27
+ /** SPL token asset. */
28
+ interface SplAsset extends AssetBase {
29
+ readonly type: TokenType.SPL;
30
+ /** Mint address on Solana. */
31
+ readonly address: Address$1;
32
+ }
33
+ /** Chain-local assets (ERC-20 or native). */
34
+ type Asset = Erc20Asset | NativeAsset | SplAsset;
35
+ /**
36
+ * Asset with capabilities for transfer planning.
37
+ * - `destinations`: possible bridged target chains by ServiceType
38
+ * - `swapProviders`: swap providers available on the source chain
39
+ */
40
+ type TransferableAsset = Asset & {
41
+ /** Possible bridged target chains keyed by chain and listing bridge-capable ServiceTypes. */readonly destinations: {
42
+ readonly [chain: Caip2ChainId]: {
43
+ /**
44
+ * This is the address of the asset on the destination chain.
45
+ */
46
+ readonly address: string;
47
+ readonly bridgeProviders: readonly ServiceType[];
48
+ };
49
+ }; /** Swap-capable services (same-chain) available for this asset on its source chain. */
50
+ readonly swapProviders: readonly ServiceType[];
51
+ };
52
+ /** Map of CAIP-2 chain IDs to assets supported on that chain. */
53
+ type ChainAssetMap = {
54
+ readonly [chain: Caip2ChainId]: readonly TransferableAsset[];
55
+ };
56
+ type DestinationInfo = Record<string, {
57
+ address: string;
58
+ bridgeProviders: ServiceType[];
59
+ }>;
60
+ /** Asset enriched with bridge providers that support it as a destination. */
61
+ type BridgeableUiAsset = Asset & {
62
+ readonly bridgeProviders: readonly ServiceType[];
63
+ };
64
+ //#endregion
65
+ export { Asset, BridgeableUiAsset, ChainAssetMap, DestinationInfo, Erc20Asset, NativeAsset, SplAsset, TransferableAsset };
66
+ //# sourceMappingURL=asset.d.ts.map
@@ -0,0 +1,66 @@
1
+ //#region src/types/bitcoin.d.ts
2
+ /**
3
+ * This file should only contain types and interfaces.
4
+ * No runtime code.
5
+ */
6
+ interface BitcoinInputUTXO {
7
+ blockHeight: number;
8
+ confirmations: number;
9
+ index: number;
10
+ script: string;
11
+ txHash: string;
12
+ txHex?: string;
13
+ value: number;
14
+ }
15
+ interface BitcoinInputUTXOWithOptionalScript extends Omit<BitcoinInputUTXO, "script"> {
16
+ script?: string;
17
+ }
18
+ interface BitcoinOutputUTXO {
19
+ address: string;
20
+ value: number;
21
+ }
22
+ interface BitcoinTx {
23
+ hash: string;
24
+ fees: number;
25
+ block: number;
26
+ amount: number;
27
+ confirmations: number;
28
+ blockTime: number;
29
+ addresses: string[];
30
+ inputs: {
31
+ txid: string;
32
+ vout: number;
33
+ sequence: number;
34
+ n: number;
35
+ addresses: string[];
36
+ isAddress: boolean;
37
+ value: number;
38
+ }[];
39
+ outputs: {
40
+ addresses: string[];
41
+ value: number;
42
+ n: number;
43
+ spent: boolean;
44
+ hex: string;
45
+ isAddress: boolean;
46
+ }[];
47
+ }
48
+ type BitcoinFeeRateTier = "low" | "medium" | "high";
49
+ interface BitcoinFunctions {
50
+ getChainHeight: () => Promise<number>;
51
+ getUTXOs: (address: string, withScripts?: boolean) => Promise<{
52
+ confirmed: BitcoinInputUTXOWithOptionalScript[];
53
+ unconfirmed: BitcoinInputUTXOWithOptionalScript[];
54
+ }>;
55
+ getTransaction: (hash: string) => Promise<BitcoinTx>;
56
+ getFeeRates: () => Promise<Readonly<Record<BitcoinFeeRateTier, number>>>;
57
+ getUtxoBalance: (address: string, withScripts?: boolean) => Promise<{
58
+ utxos: BitcoinInputUTXOWithOptionalScript[];
59
+ utxosUnconfirmed: BitcoinInputUTXOWithOptionalScript[];
60
+ }>;
61
+ getScriptsForUtxos: (utxos: BitcoinInputUTXOWithOptionalScript[]) => Promise<BitcoinInputUTXO[]>;
62
+ issueRawTx: (tx: string) => Promise<string>;
63
+ }
64
+ //#endregion
65
+ export { BitcoinFeeRateTier, BitcoinFunctions, BitcoinInputUTXO, BitcoinInputUTXOWithOptionalScript, BitcoinOutputUTXO, BitcoinTx };
66
+ //# sourceMappingURL=bitcoin.d.cts.map
@@ -0,0 +1,66 @@
1
+ //#region src/types/bitcoin.d.ts
2
+ /**
3
+ * This file should only contain types and interfaces.
4
+ * No runtime code.
5
+ */
6
+ interface BitcoinInputUTXO {
7
+ blockHeight: number;
8
+ confirmations: number;
9
+ index: number;
10
+ script: string;
11
+ txHash: string;
12
+ txHex?: string;
13
+ value: number;
14
+ }
15
+ interface BitcoinInputUTXOWithOptionalScript extends Omit<BitcoinInputUTXO, "script"> {
16
+ script?: string;
17
+ }
18
+ interface BitcoinOutputUTXO {
19
+ address: string;
20
+ value: number;
21
+ }
22
+ interface BitcoinTx {
23
+ hash: string;
24
+ fees: number;
25
+ block: number;
26
+ amount: number;
27
+ confirmations: number;
28
+ blockTime: number;
29
+ addresses: string[];
30
+ inputs: {
31
+ txid: string;
32
+ vout: number;
33
+ sequence: number;
34
+ n: number;
35
+ addresses: string[];
36
+ isAddress: boolean;
37
+ value: number;
38
+ }[];
39
+ outputs: {
40
+ addresses: string[];
41
+ value: number;
42
+ n: number;
43
+ spent: boolean;
44
+ hex: string;
45
+ isAddress: boolean;
46
+ }[];
47
+ }
48
+ type BitcoinFeeRateTier = "low" | "medium" | "high";
49
+ interface BitcoinFunctions {
50
+ getChainHeight: () => Promise<number>;
51
+ getUTXOs: (address: string, withScripts?: boolean) => Promise<{
52
+ confirmed: BitcoinInputUTXOWithOptionalScript[];
53
+ unconfirmed: BitcoinInputUTXOWithOptionalScript[];
54
+ }>;
55
+ getTransaction: (hash: string) => Promise<BitcoinTx>;
56
+ getFeeRates: () => Promise<Readonly<Record<BitcoinFeeRateTier, number>>>;
57
+ getUtxoBalance: (address: string, withScripts?: boolean) => Promise<{
58
+ utxos: BitcoinInputUTXOWithOptionalScript[];
59
+ utxosUnconfirmed: BitcoinInputUTXOWithOptionalScript[];
60
+ }>;
61
+ getScriptsForUtxos: (utxos: BitcoinInputUTXOWithOptionalScript[]) => Promise<BitcoinInputUTXO[]>;
62
+ issueRawTx: (tx: string) => Promise<string>;
63
+ }
64
+ //#endregion
65
+ export { BitcoinFeeRateTier, BitcoinFunctions, BitcoinInputUTXO, BitcoinInputUTXOWithOptionalScript, BitcoinOutputUTXO, BitcoinTx };
66
+ //# sourceMappingURL=bitcoin.d.ts.map
@@ -0,0 +1,30 @@
1
+ //#region src/types/caip.d.ts
2
+ /**
3
+ * This file should only contain types and interfaces.
4
+ * No runtime code.
5
+ */
6
+ /**
7
+ * CAIP-2 formatted chain ID.
8
+ *
9
+ * Format: `{namespace}:{reference}`
10
+ * namespace: [-a-z0-9]{3,8}
11
+ * reference: [-_a-zA-Z0-9]{1,32}
12
+ *
13
+ * {@link https://chainagnostic.org/CAIPs/caip-2 | CAIP-2 Blockchain ID Specification}
14
+ *
15
+ * @example 'eip155:1' (Ethereum Mainnet)
16
+ * @example 'eip155:43114' (Avalanche C-Chain)
17
+ * @example 'bip122:000000000019d6689c085ae165831e93' (Bitcoin Mainnet)
18
+ * @example 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp' (Solana Mainnet)
19
+ * @example 'solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1' (Solana Devnet)
20
+ */
21
+ type Caip2ChainId = `${string}:${string}`;
22
+ /**
23
+ * CAIP-10 formatted account ID.
24
+ * Format: `{chainId}:{accountAddress}`.
25
+ * @see https://chainagnostic.org/CAIPs/caip-10
26
+ */
27
+ type Caip10AccountId = `${Caip2ChainId}:${string}`;
28
+ //#endregion
29
+ export { Caip10AccountId, Caip2ChainId };
30
+ //# sourceMappingURL=caip.d.cts.map
@@ -0,0 +1,30 @@
1
+ //#region src/types/caip.d.ts
2
+ /**
3
+ * This file should only contain types and interfaces.
4
+ * No runtime code.
5
+ */
6
+ /**
7
+ * CAIP-2 formatted chain ID.
8
+ *
9
+ * Format: `{namespace}:{reference}`
10
+ * namespace: [-a-z0-9]{3,8}
11
+ * reference: [-_a-zA-Z0-9]{1,32}
12
+ *
13
+ * {@link https://chainagnostic.org/CAIPs/caip-2 | CAIP-2 Blockchain ID Specification}
14
+ *
15
+ * @example 'eip155:1' (Ethereum Mainnet)
16
+ * @example 'eip155:43114' (Avalanche C-Chain)
17
+ * @example 'bip122:000000000019d6689c085ae165831e93' (Bitcoin Mainnet)
18
+ * @example 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp' (Solana Mainnet)
19
+ * @example 'solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1' (Solana Devnet)
20
+ */
21
+ type Caip2ChainId = `${string}:${string}`;
22
+ /**
23
+ * CAIP-10 formatted account ID.
24
+ * Format: `{chainId}:{accountAddress}`.
25
+ * @see https://chainagnostic.org/CAIPs/caip-10
26
+ */
27
+ type Caip10AccountId = `${Caip2ChainId}:${string}`;
28
+ //#endregion
29
+ export { Caip10AccountId, Caip2ChainId };
30
+ //# sourceMappingURL=caip.d.ts.map
@@ -0,0 +1,17 @@
1
+ import { Caip2ChainId } from "./caip.cjs";
2
+ import { NativeAsset } from "./asset.cjs";
3
+ import { Address } from "viem";
4
+
5
+ //#region src/types/chain.d.ts
6
+ interface Chain {
7
+ chainId: Caip2ChainId;
8
+ chainName: string;
9
+ networkToken: NativeAsset;
10
+ rpcUrl: string;
11
+ utilityAddresses?: {
12
+ multicall: Address;
13
+ };
14
+ }
15
+ //#endregion
16
+ export { Chain };
17
+ //# sourceMappingURL=chain.d.cts.map
@@ -0,0 +1,17 @@
1
+ import { Caip2ChainId } from "./caip.js";
2
+ import { NativeAsset } from "./asset.js";
3
+ import { Address } from "viem";
4
+
5
+ //#region src/types/chain.d.ts
6
+ interface Chain {
7
+ chainId: Caip2ChainId;
8
+ chainName: string;
9
+ networkToken: NativeAsset;
10
+ rpcUrl: string;
11
+ utilityAddresses?: {
12
+ multicall: Address;
13
+ };
14
+ }
15
+ //#endregion
16
+ export { Chain };
17
+ //# sourceMappingURL=chain.d.ts.map
@@ -0,0 +1,13 @@
1
+ //#region src/types/fee.d.ts
2
+ /**
3
+ * Unified fee-rate tier used across the SDK for selecting fee urgency.
4
+ *
5
+ * - **EVM (C-Chain 43114 / 43113):** Maps directly to the tiers returned by the
6
+ * `eth_suggestPriceOptions` custom RPC method. Non-C-Chain EVM chains ignore
7
+ * this value and use `estimateFeesPerGas` instead.
8
+ * - **Bitcoin:** Mapped to `BitcoinFeeRateTier` via {@link FEE_RATE_TIER_TO_BITCOIN}.
9
+ */
10
+ type FeeRateTier = "slow" | "normal" | "fast";
11
+ //#endregion
12
+ export { FeeRateTier };
13
+ //# sourceMappingURL=fee.d.cts.map