@shapeshiftoss/swapper 17.6.9 → 17.6.11

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 (324) hide show
  1. package/LICENSE.md +21 -0
  2. package/dist/cjs/.tsbuildinfo +1 -1
  3. package/dist/cjs/constants.js +72 -43
  4. package/dist/cjs/cowswap-utils/constants.js +3 -0
  5. package/dist/cjs/cowswap-utils/index.js +6 -0
  6. package/dist/cjs/index.d.ts +1 -0
  7. package/dist/cjs/index.js +1 -0
  8. package/dist/cjs/swappers/AcrossSwapper/AcrossSwapper.d.ts +2 -0
  9. package/dist/cjs/swappers/AcrossSwapper/AcrossSwapper.js +8 -0
  10. package/dist/cjs/swappers/AcrossSwapper/constant.d.ts +9 -0
  11. package/dist/cjs/swappers/AcrossSwapper/constant.js +50 -0
  12. package/dist/cjs/swappers/AcrossSwapper/endpoints.d.ts +2 -0
  13. package/dist/cjs/swappers/AcrossSwapper/endpoints.js +113 -0
  14. package/dist/cjs/swappers/AcrossSwapper/getTradeQuote/getTradeQuote.d.ts +3 -0
  15. package/dist/cjs/swappers/AcrossSwapper/getTradeQuote/getTradeQuote.js +31 -0
  16. package/dist/cjs/swappers/AcrossSwapper/getTradeRate/getTradeRate.d.ts +3 -0
  17. package/dist/cjs/swappers/AcrossSwapper/getTradeRate/getTradeRate.js +19 -0
  18. package/dist/cjs/swappers/AcrossSwapper/index.d.ts +1 -0
  19. package/dist/cjs/swappers/AcrossSwapper/index.js +5 -0
  20. package/dist/cjs/swappers/AcrossSwapper/utils/acrossService.d.ts +5 -0
  21. package/dist/cjs/swappers/AcrossSwapper/utils/acrossService.js +17 -0
  22. package/dist/cjs/swappers/AcrossSwapper/utils/fetchAcrossTrade.d.ts +19 -0
  23. package/dist/cjs/swappers/AcrossSwapper/utils/fetchAcrossTrade.js +27 -0
  24. package/dist/cjs/swappers/AcrossSwapper/utils/getTrade.d.ts +11 -0
  25. package/dist/cjs/swappers/AcrossSwapper/utils/getTrade.js +349 -0
  26. package/dist/cjs/swappers/AcrossSwapper/utils/types.d.ts +177 -0
  27. package/dist/cjs/swappers/AcrossSwapper/utils/types.js +17 -0
  28. package/dist/cjs/swappers/AvnuSwapper/endpoints.js +42 -14
  29. package/dist/cjs/swappers/AvnuSwapper/swapperApi/getTradeQuote.js +19 -5
  30. package/dist/cjs/swappers/AvnuSwapper/swapperApi/getTradeRate.js +17 -4
  31. package/dist/cjs/swappers/BebopSwapper/BebopSwapper.js +2 -0
  32. package/dist/cjs/swappers/BebopSwapper/endpoints.js +35 -2
  33. package/dist/cjs/swappers/BebopSwapper/executeSolanaMessage.d.ts +2 -0
  34. package/dist/cjs/swappers/BebopSwapper/executeSolanaMessage.js +47 -0
  35. package/dist/cjs/swappers/BebopSwapper/getBebopSolanaTradeQuote/getBebopSolanaTradeQuote.d.ts +4 -0
  36. package/dist/cjs/swappers/BebopSwapper/getBebopSolanaTradeQuote/getBebopSolanaTradeQuote.js +91 -0
  37. package/dist/cjs/swappers/BebopSwapper/getBebopSolanaTradeRate/getBebopSolanaTradeRate.d.ts +4 -0
  38. package/dist/cjs/swappers/BebopSwapper/getBebopSolanaTradeRate/getBebopSolanaTradeRate.js +88 -0
  39. package/dist/cjs/swappers/BebopSwapper/getBebopTradeQuote/getBebopTradeQuote.js +10 -0
  40. package/dist/cjs/swappers/BebopSwapper/getBebopTradeRate/getBebopTradeRate.js +10 -0
  41. package/dist/cjs/swappers/BebopSwapper/types.d.ts +49 -1
  42. package/dist/cjs/swappers/BebopSwapper/types.js +9 -2
  43. package/dist/cjs/swappers/BebopSwapper/utils/fetchFromBebop.d.ts +19 -1
  44. package/dist/cjs/swappers/BebopSwapper/utils/fetchFromBebop.js +86 -1
  45. package/dist/cjs/swappers/BebopSwapper/utils/helpers/helpers.d.ts +14 -2
  46. package/dist/cjs/swappers/BebopSwapper/utils/helpers/helpers.js +47 -1
  47. package/dist/cjs/swappers/ButterSwap/ButterSwap.js +1 -0
  48. package/dist/cjs/swappers/ButterSwap/endpoints.js +56 -0
  49. package/dist/cjs/swappers/ButterSwap/swapperApi/checkTradeStatus.js +19 -0
  50. package/dist/cjs/swappers/ButterSwap/swapperApi/getTradeQuote.js +44 -15
  51. package/dist/cjs/swappers/ButterSwap/swapperApi/getTradeQuote.test.js +1 -0
  52. package/dist/cjs/swappers/ButterSwap/swapperApi/getTradeRate.js +33 -16
  53. package/dist/cjs/swappers/ButterSwap/swapperApi/getTradeRate.test.js +2 -0
  54. package/dist/cjs/swappers/ButterSwap/types.d.ts +1 -0
  55. package/dist/cjs/swappers/ButterSwap/utils/helpers.js +1 -0
  56. package/dist/cjs/swappers/ButterSwap/xhr.d.ts +2 -2
  57. package/dist/cjs/swappers/ButterSwap/xhr.js +7 -2
  58. package/dist/cjs/swappers/CetusSwapper/endpoints.js +3 -8
  59. package/dist/cjs/swappers/CetusSwapper/swapperApi/getTradeQuote.js +11 -1
  60. package/dist/cjs/swappers/CetusSwapper/swapperApi/getTradeRate.js +11 -1
  61. package/dist/cjs/swappers/CetusSwapper/utils/helpers.d.ts +1 -1
  62. package/dist/cjs/swappers/CetusSwapper/utils/helpers.js +1 -1
  63. package/dist/cjs/swappers/ChainflipSwapper/constants.js +7 -3
  64. package/dist/cjs/swappers/ChainflipSwapper/utils/getQuoteOrRate.js +28 -5
  65. package/dist/cjs/swappers/ChainflipSwapper/utils/helpers.js +8 -2
  66. package/dist/cjs/swappers/CowSwapper/CowSwapper.js +1 -1
  67. package/dist/cjs/swappers/CowSwapper/getCowSwapTradeQuote/getCowSwapTradeQuote.js +11 -1
  68. package/dist/cjs/swappers/CowSwapper/getCowSwapTradeQuote/getCowSwapTradeQuote.test.js +5 -5
  69. package/dist/cjs/swappers/CowSwapper/getCowSwapTradeRate/getCowSwapTradeRate.js +10 -1
  70. package/dist/cjs/swappers/CowSwapper/utils/helpers/helpers.js +8 -2
  71. package/dist/cjs/swappers/DebridgeSwapper/DebridgeSwapper.d.ts +2 -0
  72. package/dist/cjs/swappers/DebridgeSwapper/DebridgeSwapper.js +7 -0
  73. package/dist/cjs/swappers/DebridgeSwapper/constant.d.ts +5 -0
  74. package/dist/cjs/swappers/DebridgeSwapper/constant.js +36 -0
  75. package/dist/cjs/swappers/DebridgeSwapper/endpoints.d.ts +2 -0
  76. package/dist/cjs/swappers/DebridgeSwapper/endpoints.js +217 -0
  77. package/dist/cjs/swappers/DebridgeSwapper/getTradeQuote/getTradeQuote.d.ts +3 -0
  78. package/dist/cjs/swappers/DebridgeSwapper/getTradeQuote/getTradeQuote.js +31 -0
  79. package/dist/cjs/swappers/DebridgeSwapper/getTradeRate/getTradeRate.d.ts +3 -0
  80. package/dist/cjs/swappers/DebridgeSwapper/getTradeRate/getTradeRate.js +19 -0
  81. package/dist/cjs/swappers/DebridgeSwapper/index.d.ts +1 -0
  82. package/dist/cjs/swappers/DebridgeSwapper/index.js +5 -0
  83. package/dist/cjs/swappers/DebridgeSwapper/utils/debridgeService.d.ts +5 -0
  84. package/dist/cjs/swappers/DebridgeSwapper/utils/debridgeService.js +17 -0
  85. package/dist/cjs/swappers/DebridgeSwapper/utils/fetchDebridgeSingleChainTrade.d.ts +16 -0
  86. package/dist/cjs/swappers/DebridgeSwapper/utils/fetchDebridgeSingleChainTrade.js +23 -0
  87. package/dist/cjs/swappers/DebridgeSwapper/utils/fetchDebridgeTrade.d.ts +20 -0
  88. package/dist/cjs/swappers/DebridgeSwapper/utils/fetchDebridgeTrade.js +29 -0
  89. package/dist/cjs/swappers/DebridgeSwapper/utils/getTrade.d.ts +11 -0
  90. package/dist/cjs/swappers/DebridgeSwapper/utils/getTrade.js +369 -0
  91. package/dist/cjs/swappers/DebridgeSwapper/utils/types.d.ts +155 -0
  92. package/dist/cjs/swappers/DebridgeSwapper/utils/types.js +9 -0
  93. package/dist/cjs/swappers/JupiterSwapper/swapperApi/getTradeQuote.js +32 -0
  94. package/dist/cjs/swappers/JupiterSwapper/swapperApi/getTradeRate.js +9 -0
  95. package/dist/cjs/swappers/MayachainSwapper/utils/poolAssetHelpers/poolAssetHelpers.js +1 -1
  96. package/dist/cjs/swappers/NearIntentsSwapper/NearIntentsSwapper.js +1 -0
  97. package/dist/cjs/swappers/NearIntentsSwapper/endpoints.js +31 -0
  98. package/dist/cjs/swappers/NearIntentsSwapper/swapperApi/getTradeQuote.js +48 -1
  99. package/dist/cjs/swappers/NearIntentsSwapper/swapperApi/getTradeRate.js +73 -1
  100. package/dist/cjs/swappers/NearIntentsSwapper/types.d.ts +1 -1
  101. package/dist/cjs/swappers/NearIntentsSwapper/types.js +6 -0
  102. package/dist/cjs/swappers/NearIntentsSwapper/utils/helpers/helpers.js +23 -4
  103. package/dist/cjs/swappers/PortalsSwapper/getPortalsTradeQuote/getPortalsTradeQuote.js +10 -0
  104. package/dist/cjs/swappers/PortalsSwapper/getPortalsTradeRate/getPortalsTradeRate.js +8 -3
  105. package/dist/cjs/swappers/RelaySwapper/constant.js +27 -1
  106. package/dist/cjs/swappers/RelaySwapper/utils/getRelayDefaultUserAddress.d.ts +1 -1
  107. package/dist/cjs/swappers/RelaySwapper/utils/getTrade.js +57 -7
  108. package/dist/cjs/swappers/RelaySwapper/utils/relayTokenToAssetId.js +110 -0
  109. package/dist/cjs/swappers/RelaySwapper/utils/types.d.ts +15 -0
  110. package/dist/cjs/swappers/StonfiSwapper/StonfiSwapper.d.ts +2 -0
  111. package/dist/cjs/swappers/StonfiSwapper/StonfiSwapper.js +8 -0
  112. package/dist/cjs/swappers/StonfiSwapper/endpoints.d.ts +2 -0
  113. package/dist/cjs/swappers/StonfiSwapper/endpoints.js +227 -0
  114. package/dist/cjs/swappers/StonfiSwapper/index.d.ts +4 -0
  115. package/dist/cjs/swappers/StonfiSwapper/index.js +25 -0
  116. package/dist/cjs/swappers/StonfiSwapper/swapperApi/getTradeQuote.d.ts +2 -0
  117. package/dist/cjs/swappers/StonfiSwapper/swapperApi/getTradeQuote.js +129 -0
  118. package/dist/cjs/swappers/StonfiSwapper/swapperApi/getTradeRate.d.ts +2 -0
  119. package/dist/cjs/swappers/StonfiSwapper/swapperApi/getTradeRate.js +115 -0
  120. package/dist/cjs/swappers/StonfiSwapper/types.d.ts +60 -0
  121. package/dist/cjs/swappers/StonfiSwapper/types.js +5 -0
  122. package/dist/cjs/swappers/StonfiSwapper/utils/constants.d.ts +5 -0
  123. package/dist/cjs/swappers/StonfiSwapper/utils/constants.js +8 -0
  124. package/dist/cjs/swappers/StonfiSwapper/utils/helpers.d.ts +11 -0
  125. package/dist/cjs/swappers/StonfiSwapper/utils/helpers.js +135 -0
  126. package/dist/cjs/swappers/StonfiSwapper/utils/omnistonManager.d.ts +5 -0
  127. package/dist/cjs/swappers/StonfiSwapper/utils/omnistonManager.js +20 -0
  128. package/dist/cjs/swappers/SunioSwapper/endpoints.js +1 -1
  129. package/dist/cjs/swappers/SunioSwapper/utils/getQuoteOrRate.js +14 -3
  130. package/dist/cjs/swappers/ThorchainSwapper/ThorchainSwapper.js +3 -0
  131. package/dist/cjs/swappers/ThorchainSwapper/endpoints.js +2 -0
  132. package/dist/cjs/swappers/ThorchainSwapper/generated/generatedTradableAssetMap.json +1 -0
  133. package/dist/cjs/swappers/ThorchainSwapper/utils/poolAssetHelpers/poolAssetHelpers.d.ts +1 -1
  134. package/dist/cjs/swappers/ThorchainSwapper/utils/poolAssetHelpers/poolAssetHelpers.js +2 -1
  135. package/dist/cjs/swappers/ThorchainSwapper/utils/poolAssetHelpers/poolAssetHelpers.test.js +10 -0
  136. package/dist/cjs/swappers/ZrxSwapper/getZrxTradeQuote/getZrxTradeQuote.js +9 -0
  137. package/dist/cjs/swappers/ZrxSwapper/getZrxTradeRate/getZrxTradeRate.js +9 -0
  138. package/dist/cjs/swappers/ZrxSwapper/utils/helpers/helpers.d.ts +1 -1
  139. package/dist/cjs/swappers/utils/affiliateFee.d.ts +17 -0
  140. package/dist/cjs/swappers/utils/affiliateFee.js +43 -0
  141. package/dist/cjs/swappers/utils/filterBuyAssetsBySellAssetId/filterBuyAssetsBySellAssetId.js +2 -5
  142. package/dist/cjs/swappers/utils/helpers/helpers.js +3 -0
  143. package/dist/cjs/thorchain-utils/getCallDataFromQuote.d.ts +1 -1
  144. package/dist/cjs/thorchain-utils/getL1RateOrQuote.js +87 -9
  145. package/dist/cjs/thorchain-utils/getQuote.js +8 -2
  146. package/dist/cjs/thorchain-utils/index.d.ts +2 -1
  147. package/dist/cjs/thorchain-utils/index.js +2 -1
  148. package/dist/cjs/thorchain-utils/solana/constants.d.ts +1 -0
  149. package/dist/cjs/thorchain-utils/solana/constants.js +6 -0
  150. package/dist/cjs/thorchain-utils/solana/getSolanaTransactionFees.d.ts +2 -0
  151. package/dist/cjs/thorchain-utils/solana/getSolanaTransactionFees.js +41 -0
  152. package/dist/cjs/thorchain-utils/solana/getThorTxData.d.ts +12 -0
  153. package/dist/cjs/thorchain-utils/solana/getThorTxData.js +14 -0
  154. package/dist/cjs/thorchain-utils/solana/getUnsignedSolanaTransaction.d.ts +3 -0
  155. package/dist/cjs/thorchain-utils/solana/getUnsignedSolanaTransaction.js +64 -0
  156. package/dist/cjs/thorchain-utils/solana/index.d.ts +3 -0
  157. package/dist/cjs/thorchain-utils/solana/index.js +19 -0
  158. package/dist/cjs/tron-utils/getUnsignedTronTransaction.js +22 -2
  159. package/dist/cjs/types.d.ts +118 -8
  160. package/dist/cjs/types.js +3 -0
  161. package/dist/cjs/utils.d.ts +4 -3
  162. package/dist/cjs/utils.js +35 -7
  163. package/dist/esm/.tsbuildinfo +1 -1
  164. package/dist/esm/constants.js +42 -13
  165. package/dist/esm/cowswap-utils/constants.js +3 -0
  166. package/dist/esm/cowswap-utils/index.js +6 -0
  167. package/dist/esm/index.d.ts +1 -0
  168. package/dist/esm/index.js +1 -0
  169. package/dist/esm/swappers/AcrossSwapper/AcrossSwapper.d.ts +2 -0
  170. package/dist/esm/swappers/AcrossSwapper/AcrossSwapper.js +5 -0
  171. package/dist/esm/swappers/AcrossSwapper/constant.d.ts +9 -0
  172. package/dist/esm/swappers/AcrossSwapper/constant.js +44 -0
  173. package/dist/esm/swappers/AcrossSwapper/endpoints.d.ts +2 -0
  174. package/dist/esm/swappers/AcrossSwapper/endpoints.js +107 -0
  175. package/dist/esm/swappers/AcrossSwapper/getTradeQuote/getTradeQuote.d.ts +3 -0
  176. package/dist/esm/swappers/AcrossSwapper/getTradeQuote/getTradeQuote.js +27 -0
  177. package/dist/esm/swappers/AcrossSwapper/getTradeRate/getTradeRate.d.ts +3 -0
  178. package/dist/esm/swappers/AcrossSwapper/getTradeRate/getTradeRate.js +15 -0
  179. package/dist/esm/swappers/AcrossSwapper/index.d.ts +1 -0
  180. package/dist/esm/swappers/AcrossSwapper/index.js +1 -0
  181. package/dist/esm/swappers/AcrossSwapper/utils/acrossService.d.ts +5 -0
  182. package/dist/esm/swappers/AcrossSwapper/utils/acrossService.js +11 -0
  183. package/dist/esm/swappers/AcrossSwapper/utils/fetchAcrossTrade.d.ts +19 -0
  184. package/dist/esm/swappers/AcrossSwapper/utils/fetchAcrossTrade.js +23 -0
  185. package/dist/esm/swappers/AcrossSwapper/utils/getTrade.d.ts +11 -0
  186. package/dist/esm/swappers/AcrossSwapper/utils/getTrade.js +342 -0
  187. package/dist/esm/swappers/AcrossSwapper/utils/types.d.ts +177 -0
  188. package/dist/esm/swappers/AcrossSwapper/utils/types.js +13 -0
  189. package/dist/esm/swappers/AvnuSwapper/endpoints.js +43 -15
  190. package/dist/esm/swappers/AvnuSwapper/swapperApi/getTradeQuote.js +19 -5
  191. package/dist/esm/swappers/AvnuSwapper/swapperApi/getTradeRate.js +17 -4
  192. package/dist/esm/swappers/BebopSwapper/BebopSwapper.js +2 -0
  193. package/dist/esm/swappers/BebopSwapper/endpoints.js +36 -3
  194. package/dist/esm/swappers/BebopSwapper/executeSolanaMessage.d.ts +2 -0
  195. package/dist/esm/swappers/BebopSwapper/executeSolanaMessage.js +40 -0
  196. package/dist/esm/swappers/BebopSwapper/getBebopSolanaTradeQuote/getBebopSolanaTradeQuote.d.ts +4 -0
  197. package/dist/esm/swappers/BebopSwapper/getBebopSolanaTradeQuote/getBebopSolanaTradeQuote.js +87 -0
  198. package/dist/esm/swappers/BebopSwapper/getBebopSolanaTradeRate/getBebopSolanaTradeRate.d.ts +4 -0
  199. package/dist/esm/swappers/BebopSwapper/getBebopSolanaTradeRate/getBebopSolanaTradeRate.js +84 -0
  200. package/dist/esm/swappers/BebopSwapper/getBebopTradeQuote/getBebopTradeQuote.js +10 -0
  201. package/dist/esm/swappers/BebopSwapper/getBebopTradeRate/getBebopTradeRate.js +10 -0
  202. package/dist/esm/swappers/BebopSwapper/types.d.ts +49 -1
  203. package/dist/esm/swappers/BebopSwapper/types.js +8 -1
  204. package/dist/esm/swappers/BebopSwapper/utils/fetchFromBebop.d.ts +19 -1
  205. package/dist/esm/swappers/BebopSwapper/utils/fetchFromBebop.js +85 -2
  206. package/dist/esm/swappers/BebopSwapper/utils/helpers/helpers.d.ts +14 -2
  207. package/dist/esm/swappers/BebopSwapper/utils/helpers/helpers.js +44 -1
  208. package/dist/esm/swappers/ButterSwap/ButterSwap.js +2 -1
  209. package/dist/esm/swappers/ButterSwap/endpoints.js +56 -0
  210. package/dist/esm/swappers/ButterSwap/swapperApi/checkTradeStatus.js +20 -1
  211. package/dist/esm/swappers/ButterSwap/swapperApi/getTradeQuote.js +46 -17
  212. package/dist/esm/swappers/ButterSwap/swapperApi/getTradeQuote.test.js +1 -0
  213. package/dist/esm/swappers/ButterSwap/swapperApi/getTradeRate.js +35 -18
  214. package/dist/esm/swappers/ButterSwap/swapperApi/getTradeRate.test.js +2 -0
  215. package/dist/esm/swappers/ButterSwap/types.d.ts +1 -0
  216. package/dist/esm/swappers/ButterSwap/utils/helpers.js +1 -0
  217. package/dist/esm/swappers/ButterSwap/xhr.d.ts +2 -2
  218. package/dist/esm/swappers/ButterSwap/xhr.js +8 -3
  219. package/dist/esm/swappers/CetusSwapper/endpoints.js +3 -8
  220. package/dist/esm/swappers/CetusSwapper/swapperApi/getTradeQuote.js +11 -1
  221. package/dist/esm/swappers/CetusSwapper/swapperApi/getTradeRate.js +11 -1
  222. package/dist/esm/swappers/CetusSwapper/utils/helpers.d.ts +1 -1
  223. package/dist/esm/swappers/CetusSwapper/utils/helpers.js +1 -1
  224. package/dist/esm/swappers/ChainflipSwapper/constants.js +8 -4
  225. package/dist/esm/swappers/ChainflipSwapper/utils/getQuoteOrRate.js +29 -6
  226. package/dist/esm/swappers/ChainflipSwapper/utils/helpers.js +9 -3
  227. package/dist/esm/swappers/CowSwapper/CowSwapper.js +1 -1
  228. package/dist/esm/swappers/CowSwapper/getCowSwapTradeQuote/getCowSwapTradeQuote.js +11 -1
  229. package/dist/esm/swappers/CowSwapper/getCowSwapTradeQuote/getCowSwapTradeQuote.test.js +5 -5
  230. package/dist/esm/swappers/CowSwapper/getCowSwapTradeRate/getCowSwapTradeRate.js +10 -1
  231. package/dist/esm/swappers/CowSwapper/utils/helpers/helpers.js +9 -3
  232. package/dist/esm/swappers/DebridgeSwapper/DebridgeSwapper.d.ts +2 -0
  233. package/dist/esm/swappers/DebridgeSwapper/DebridgeSwapper.js +4 -0
  234. package/dist/esm/swappers/DebridgeSwapper/constant.d.ts +5 -0
  235. package/dist/esm/swappers/DebridgeSwapper/constant.js +30 -0
  236. package/dist/esm/swappers/DebridgeSwapper/endpoints.d.ts +2 -0
  237. package/dist/esm/swappers/DebridgeSwapper/endpoints.js +211 -0
  238. package/dist/esm/swappers/DebridgeSwapper/getTradeQuote/getTradeQuote.d.ts +3 -0
  239. package/dist/esm/swappers/DebridgeSwapper/getTradeQuote/getTradeQuote.js +27 -0
  240. package/dist/esm/swappers/DebridgeSwapper/getTradeRate/getTradeRate.d.ts +3 -0
  241. package/dist/esm/swappers/DebridgeSwapper/getTradeRate/getTradeRate.js +15 -0
  242. package/dist/esm/swappers/DebridgeSwapper/index.d.ts +1 -0
  243. package/dist/esm/swappers/DebridgeSwapper/index.js +1 -0
  244. package/dist/esm/swappers/DebridgeSwapper/utils/debridgeService.d.ts +5 -0
  245. package/dist/esm/swappers/DebridgeSwapper/utils/debridgeService.js +11 -0
  246. package/dist/esm/swappers/DebridgeSwapper/utils/fetchDebridgeSingleChainTrade.d.ts +16 -0
  247. package/dist/esm/swappers/DebridgeSwapper/utils/fetchDebridgeSingleChainTrade.js +19 -0
  248. package/dist/esm/swappers/DebridgeSwapper/utils/fetchDebridgeTrade.d.ts +20 -0
  249. package/dist/esm/swappers/DebridgeSwapper/utils/fetchDebridgeTrade.js +25 -0
  250. package/dist/esm/swappers/DebridgeSwapper/utils/getTrade.d.ts +11 -0
  251. package/dist/esm/swappers/DebridgeSwapper/utils/getTrade.js +362 -0
  252. package/dist/esm/swappers/DebridgeSwapper/utils/types.d.ts +155 -0
  253. package/dist/esm/swappers/DebridgeSwapper/utils/types.js +5 -0
  254. package/dist/esm/swappers/JupiterSwapper/swapperApi/getTradeQuote.js +33 -1
  255. package/dist/esm/swappers/JupiterSwapper/swapperApi/getTradeRate.js +9 -0
  256. package/dist/esm/swappers/MayachainSwapper/utils/poolAssetHelpers/poolAssetHelpers.js +1 -1
  257. package/dist/esm/swappers/NearIntentsSwapper/NearIntentsSwapper.js +2 -1
  258. package/dist/esm/swappers/NearIntentsSwapper/endpoints.js +31 -0
  259. package/dist/esm/swappers/NearIntentsSwapper/swapperApi/getTradeQuote.js +50 -3
  260. package/dist/esm/swappers/NearIntentsSwapper/swapperApi/getTradeRate.js +75 -3
  261. package/dist/esm/swappers/NearIntentsSwapper/types.d.ts +1 -1
  262. package/dist/esm/swappers/NearIntentsSwapper/types.js +6 -0
  263. package/dist/esm/swappers/NearIntentsSwapper/utils/helpers/helpers.js +23 -4
  264. package/dist/esm/swappers/PortalsSwapper/getPortalsTradeQuote/getPortalsTradeQuote.js +10 -0
  265. package/dist/esm/swappers/PortalsSwapper/getPortalsTradeRate/getPortalsTradeRate.js +8 -3
  266. package/dist/esm/swappers/RelaySwapper/constant.js +29 -3
  267. package/dist/esm/swappers/RelaySwapper/utils/getRelayDefaultUserAddress.d.ts +1 -1
  268. package/dist/esm/swappers/RelaySwapper/utils/getTrade.js +60 -10
  269. package/dist/esm/swappers/RelaySwapper/utils/relayTokenToAssetId.js +110 -0
  270. package/dist/esm/swappers/RelaySwapper/utils/types.d.ts +15 -0
  271. package/dist/esm/swappers/StonfiSwapper/StonfiSwapper.d.ts +2 -0
  272. package/dist/esm/swappers/StonfiSwapper/StonfiSwapper.js +5 -0
  273. package/dist/esm/swappers/StonfiSwapper/endpoints.d.ts +2 -0
  274. package/dist/esm/swappers/StonfiSwapper/endpoints.js +224 -0
  275. package/dist/esm/swappers/StonfiSwapper/index.d.ts +4 -0
  276. package/dist/esm/swappers/StonfiSwapper/index.js +4 -0
  277. package/dist/esm/swappers/StonfiSwapper/swapperApi/getTradeQuote.d.ts +2 -0
  278. package/dist/esm/swappers/StonfiSwapper/swapperApi/getTradeQuote.js +125 -0
  279. package/dist/esm/swappers/StonfiSwapper/swapperApi/getTradeRate.d.ts +2 -0
  280. package/dist/esm/swappers/StonfiSwapper/swapperApi/getTradeRate.js +111 -0
  281. package/dist/esm/swappers/StonfiSwapper/types.d.ts +60 -0
  282. package/dist/esm/swappers/StonfiSwapper/types.js +2 -0
  283. package/dist/esm/swappers/StonfiSwapper/utils/constants.d.ts +5 -0
  284. package/dist/esm/swappers/StonfiSwapper/utils/constants.js +5 -0
  285. package/dist/esm/swappers/StonfiSwapper/utils/helpers.d.ts +11 -0
  286. package/dist/esm/swappers/StonfiSwapper/utils/helpers.js +124 -0
  287. package/dist/esm/swappers/StonfiSwapper/utils/omnistonManager.d.ts +5 -0
  288. package/dist/esm/swappers/StonfiSwapper/utils/omnistonManager.js +17 -0
  289. package/dist/esm/swappers/SunioSwapper/endpoints.js +1 -1
  290. package/dist/esm/swappers/SunioSwapper/utils/getQuoteOrRate.js +15 -4
  291. package/dist/esm/swappers/ThorchainSwapper/ThorchainSwapper.js +3 -0
  292. package/dist/esm/swappers/ThorchainSwapper/endpoints.js +3 -1
  293. package/dist/esm/swappers/ThorchainSwapper/generated/generatedTradableAssetMap.json +1 -0
  294. package/dist/esm/swappers/ThorchainSwapper/utils/poolAssetHelpers/poolAssetHelpers.d.ts +1 -1
  295. package/dist/esm/swappers/ThorchainSwapper/utils/poolAssetHelpers/poolAssetHelpers.js +2 -1
  296. package/dist/esm/swappers/ThorchainSwapper/utils/poolAssetHelpers/poolAssetHelpers.test.js +11 -1
  297. package/dist/esm/swappers/ZrxSwapper/getZrxTradeQuote/getZrxTradeQuote.js +9 -0
  298. package/dist/esm/swappers/ZrxSwapper/getZrxTradeRate/getZrxTradeRate.js +9 -0
  299. package/dist/esm/swappers/ZrxSwapper/utils/helpers/helpers.d.ts +1 -1
  300. package/dist/esm/swappers/utils/affiliateFee.d.ts +17 -0
  301. package/dist/esm/swappers/utils/affiliateFee.js +39 -0
  302. package/dist/esm/swappers/utils/filterBuyAssetsBySellAssetId/filterBuyAssetsBySellAssetId.js +2 -5
  303. package/dist/esm/swappers/utils/helpers/helpers.js +4 -1
  304. package/dist/esm/thorchain-utils/getCallDataFromQuote.d.ts +1 -1
  305. package/dist/esm/thorchain-utils/getL1RateOrQuote.js +88 -10
  306. package/dist/esm/thorchain-utils/getQuote.js +9 -3
  307. package/dist/esm/thorchain-utils/index.d.ts +2 -1
  308. package/dist/esm/thorchain-utils/index.js +1 -0
  309. package/dist/esm/thorchain-utils/solana/constants.d.ts +1 -0
  310. package/dist/esm/thorchain-utils/solana/constants.js +3 -0
  311. package/dist/esm/thorchain-utils/solana/getSolanaTransactionFees.d.ts +2 -0
  312. package/dist/esm/thorchain-utils/solana/getSolanaTransactionFees.js +37 -0
  313. package/dist/esm/thorchain-utils/solana/getThorTxData.d.ts +12 -0
  314. package/dist/esm/thorchain-utils/solana/getThorTxData.js +10 -0
  315. package/dist/esm/thorchain-utils/solana/getUnsignedSolanaTransaction.d.ts +3 -0
  316. package/dist/esm/thorchain-utils/solana/getUnsignedSolanaTransaction.js +60 -0
  317. package/dist/esm/thorchain-utils/solana/index.d.ts +3 -0
  318. package/dist/esm/thorchain-utils/solana/index.js +3 -0
  319. package/dist/esm/tron-utils/getUnsignedTronTransaction.js +22 -2
  320. package/dist/esm/types.d.ts +118 -8
  321. package/dist/esm/types.js +3 -0
  322. package/dist/esm/utils.d.ts +4 -3
  323. package/dist/esm/utils.js +34 -7
  324. package/package.json +27 -24
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTradeQuote = void 0;
4
+ const monads_1 = require("@sniptt/monads");
5
+ const utils_1 = require("../../../utils");
6
+ const getTrade_1 = require("../utils/getTrade");
7
+ const getTradeQuote = (input, deps) => {
8
+ if (!input.sendAddress) {
9
+ return Promise.resolve((0, monads_1.Err)((0, utils_1.makeSwapErrorRight)({
10
+ message: 'sendAddress is required',
11
+ })));
12
+ }
13
+ if (!input.receiveAddress) {
14
+ return Promise.resolve((0, monads_1.Err)((0, utils_1.makeSwapErrorRight)({
15
+ message: 'receiveAddress is required',
16
+ })));
17
+ }
18
+ const args = {
19
+ buyAsset: input.buyAsset,
20
+ receiveAddress: input.receiveAddress,
21
+ sellAmountIncludingProtocolFeesCryptoBaseUnit: input.sellAmountIncludingProtocolFeesCryptoBaseUnit,
22
+ sellAsset: input.sellAsset,
23
+ sendAddress: input.sendAddress,
24
+ quoteOrRate: 'quote',
25
+ accountNumber: input.accountNumber,
26
+ affiliateBps: input.affiliateBps,
27
+ slippageTolerancePercentageDecimal: input.slippageTolerancePercentageDecimal,
28
+ };
29
+ return (0, getTrade_1.getTrade)({ input: args, deps });
30
+ };
31
+ exports.getTradeQuote = getTradeQuote;
@@ -0,0 +1,3 @@
1
+ import type { Result } from '@sniptt/monads';
2
+ import type { GetTradeRateInput, SwapErrorRight, SwapperDeps, TradeRate } from '../../../types';
3
+ export declare const getTradeRate: (input: GetTradeRateInput, deps: SwapperDeps) => Promise<Result<TradeRate[], SwapErrorRight>>;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTradeRate = void 0;
4
+ const getTrade_1 = require("../utils/getTrade");
5
+ const getTradeRate = (input, deps) => {
6
+ const args = {
7
+ quoteOrRate: 'rate',
8
+ buyAsset: input.buyAsset,
9
+ receiveAddress: input.receiveAddress,
10
+ sellAmountIncludingProtocolFeesCryptoBaseUnit: input.sellAmountIncludingProtocolFeesCryptoBaseUnit,
11
+ sellAsset: input.sellAsset,
12
+ sendAddress: input.sendAddress,
13
+ accountNumber: input.accountNumber,
14
+ affiliateBps: input.affiliateBps,
15
+ slippageTolerancePercentageDecimal: input.slippageTolerancePercentageDecimal,
16
+ };
17
+ return (0, getTrade_1.getTrade)({ input: args, deps });
18
+ };
19
+ exports.getTradeRate = getTradeRate;
@@ -0,0 +1 @@
1
+ export { debridgeSwapper } from './DebridgeSwapper';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.debridgeSwapper = void 0;
4
+ var DebridgeSwapper_1 = require("./DebridgeSwapper");
5
+ Object.defineProperty(exports, "debridgeSwapper", { enumerable: true, get: function () { return DebridgeSwapper_1.debridgeSwapper; } });
@@ -0,0 +1,5 @@
1
+ export declare const debridgeService: {
2
+ get: <T = any>(url: string, config?: import("axios").AxiosRequestConfig<any> | undefined) => Promise<import("@sniptt/monads").Result<import("axios").AxiosResponse<T, any, {}>, import("../../..").SwapErrorRight>>;
3
+ post: <T_1 = any>(url: string, data: any, config?: import("axios").AxiosRequestConfig<any> | undefined) => Promise<import("@sniptt/monads").Result<import("axios").AxiosResponse<T_1, any, {}>, import("../../..").SwapErrorRight>>;
4
+ delete: <T_2 = any>(url: string, data: any, config?: import("axios").AxiosRequestConfig<any> | undefined) => Promise<import("@sniptt/monads").Result<import("axios").AxiosResponse<T_2, any, {}>, import("../../..").SwapErrorRight>>;
5
+ };
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.debridgeService = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const utils_1 = require("../../../utils");
9
+ const axiosConfig = {
10
+ timeout: 30000,
11
+ headers: {
12
+ Accept: 'application/json',
13
+ 'Content-Type': 'application/json',
14
+ },
15
+ };
16
+ const debridgeServiceBase = axios_1.default.create(axiosConfig);
17
+ exports.debridgeService = (0, utils_1.makeSwapperAxiosServiceMonadic)(debridgeServiceBase);
@@ -0,0 +1,16 @@
1
+ import type { Result } from '@sniptt/monads';
2
+ import type { AxiosResponse } from 'axios';
3
+ import type { SwapErrorRight, SwapperConfig } from '../../../types';
4
+ import type { DebridgeSingleChainTransactionResponse } from './types';
5
+ export type DebridgeSingleChainFetchParams = {
6
+ chainId: number;
7
+ tokenIn: string;
8
+ tokenInAmount: string;
9
+ tokenOut: string;
10
+ tokenOutRecipient?: string;
11
+ senderAddress?: string;
12
+ slippage?: string;
13
+ affiliateFeePercent?: string;
14
+ affiliateFeeRecipient?: string;
15
+ };
16
+ export declare const fetchDebridgeSingleChainTrade: (params: DebridgeSingleChainFetchParams, config: SwapperConfig) => Promise<Result<AxiosResponse<DebridgeSingleChainTransactionResponse>, SwapErrorRight>>;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchDebridgeSingleChainTrade = void 0;
4
+ const debridgeService_1 = require("./debridgeService");
5
+ const fetchDebridgeSingleChainTrade = (params, config) => {
6
+ const searchParams = new URLSearchParams();
7
+ searchParams.set('chainId', params.chainId.toString());
8
+ searchParams.set('tokenIn', params.tokenIn);
9
+ searchParams.set('tokenInAmount', params.tokenInAmount);
10
+ searchParams.set('tokenOut', params.tokenOut);
11
+ searchParams.set('slippage', params.slippage ?? 'auto');
12
+ if (params.tokenOutRecipient)
13
+ searchParams.set('tokenOutRecipient', params.tokenOutRecipient);
14
+ if (params.senderAddress)
15
+ searchParams.set('senderAddress', params.senderAddress);
16
+ if (params.affiliateFeePercent && params.affiliateFeeRecipient) {
17
+ searchParams.set('affiliateFeePercent', params.affiliateFeePercent);
18
+ searchParams.set('affiliateFeeRecipient', params.affiliateFeeRecipient);
19
+ }
20
+ const url = `${config.VITE_DEBRIDGE_API_URL}/chain/transaction?${searchParams.toString()}`;
21
+ return debridgeService_1.debridgeService.get(url);
22
+ };
23
+ exports.fetchDebridgeSingleChainTrade = fetchDebridgeSingleChainTrade;
@@ -0,0 +1,20 @@
1
+ import type { Result } from '@sniptt/monads';
2
+ import type { AxiosResponse } from 'axios';
3
+ import type { SwapErrorRight, SwapperConfig } from '../../../types';
4
+ import type { DebridgeCreateTxResponse } from './types';
5
+ export type DebridgeFetchQuoteParams = {
6
+ srcChainId: number;
7
+ srcChainTokenIn: string;
8
+ srcChainTokenInAmount: string;
9
+ dstChainId: number;
10
+ dstChainTokenOut: string;
11
+ dstChainTokenOutAmount: 'auto';
12
+ dstChainTokenOutRecipient?: string;
13
+ srcChainOrderAuthorityAddress?: string;
14
+ dstChainOrderAuthorityAddress?: string;
15
+ senderAddress?: string;
16
+ prependOperatingExpenses: 'true';
17
+ affiliateFeePercent?: string;
18
+ affiliateFeeRecipient?: string;
19
+ };
20
+ export declare const fetchDebridgeTrade: (params: DebridgeFetchQuoteParams, config: SwapperConfig) => Promise<Result<AxiosResponse<DebridgeCreateTxResponse>, SwapErrorRight>>;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchDebridgeTrade = void 0;
4
+ const debridgeService_1 = require("./debridgeService");
5
+ const fetchDebridgeTrade = (params, config) => {
6
+ const searchParams = new URLSearchParams();
7
+ searchParams.set('srcChainId', params.srcChainId.toString());
8
+ searchParams.set('srcChainTokenIn', params.srcChainTokenIn);
9
+ searchParams.set('srcChainTokenInAmount', params.srcChainTokenInAmount);
10
+ searchParams.set('dstChainId', params.dstChainId.toString());
11
+ searchParams.set('dstChainTokenOut', params.dstChainTokenOut);
12
+ searchParams.set('dstChainTokenOutAmount', params.dstChainTokenOutAmount);
13
+ searchParams.set('prependOperatingExpenses', params.prependOperatingExpenses);
14
+ if (params.dstChainTokenOutRecipient)
15
+ searchParams.set('dstChainTokenOutRecipient', params.dstChainTokenOutRecipient);
16
+ if (params.srcChainOrderAuthorityAddress)
17
+ searchParams.set('srcChainOrderAuthorityAddress', params.srcChainOrderAuthorityAddress);
18
+ if (params.dstChainOrderAuthorityAddress)
19
+ searchParams.set('dstChainOrderAuthorityAddress', params.dstChainOrderAuthorityAddress);
20
+ if (params.senderAddress)
21
+ searchParams.set('senderAddress', params.senderAddress);
22
+ if (params.affiliateFeePercent && params.affiliateFeeRecipient) {
23
+ searchParams.set('affiliateFeePercent', params.affiliateFeePercent);
24
+ searchParams.set('affiliateFeeRecipient', params.affiliateFeeRecipient);
25
+ }
26
+ const url = `${config.VITE_DEBRIDGE_API_URL}/dln/order/create-tx?${searchParams.toString()}`;
27
+ return debridgeService_1.debridgeService.get(url);
28
+ };
29
+ exports.fetchDebridgeTrade = fetchDebridgeTrade;
@@ -0,0 +1,11 @@
1
+ import type { Result } from '@sniptt/monads';
2
+ import type { SwapErrorRight, SwapperDeps, TradeQuote, TradeRate } from '../../../types';
3
+ import type { DebridgeTradeInputParams } from './types';
4
+ export declare function getTrade(args: {
5
+ input: DebridgeTradeInputParams<'quote'>;
6
+ deps: SwapperDeps;
7
+ }): Promise<Result<TradeQuote[], SwapErrorRight>>;
8
+ export declare function getTrade(args: {
9
+ input: DebridgeTradeInputParams<'rate'>;
10
+ deps: SwapperDeps;
11
+ }): Promise<Result<TradeRate[], SwapErrorRight>>;
@@ -0,0 +1,369 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getTrade = void 0;
7
+ const caip_1 = require("@shapeshiftoss/caip");
8
+ const chain_adapters_1 = require("@shapeshiftoss/chain-adapters");
9
+ const utils_1 = require("@shapeshiftoss/utils");
10
+ const monads_1 = require("@sniptt/monads");
11
+ const axios_1 = __importDefault(require("axios"));
12
+ const uuid_1 = require("uuid");
13
+ const viem_1 = require("viem");
14
+ const types_1 = require("../../../types");
15
+ const utils_2 = require("../../../utils");
16
+ const helpers_1 = require("../../utils/helpers/helpers");
17
+ const constant_1 = require("../constant");
18
+ const fetchDebridgeSingleChainTrade_1 = require("./fetchDebridgeSingleChainTrade");
19
+ const fetchDebridgeTrade_1 = require("./fetchDebridgeTrade");
20
+ const types_2 = require("./types");
21
+ const getDebridgeAssetAddress = (assetId) => {
22
+ if ((0, helpers_1.isNativeEvmAsset)(assetId))
23
+ return constant_1.DEFAULT_DEBRIDGE_TOKEN_ADDRESS;
24
+ const { assetReference } = (0, caip_1.fromAssetId)(assetId);
25
+ return (0, caip_1.isAssetReference)(assetReference) ? viem_1.zeroAddress : assetReference;
26
+ };
27
+ async function getTrade({ input, deps, }) {
28
+ const { sellAsset, buyAsset, sellAmountIncludingProtocolFeesCryptoBaseUnit, affiliateBps } = input;
29
+ const isSameChainSwap = sellAsset.chainId === buyAsset.chainId;
30
+ const sellDebridgeChainId = constant_1.chainIdToDebridgeChainId[sellAsset.chainId];
31
+ if (sellDebridgeChainId === undefined) {
32
+ return (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
33
+ message: `Sell asset chain '${sellAsset.chainId}' not supported by deBridge`,
34
+ code: types_1.TradeQuoteError.UnsupportedChain,
35
+ }));
36
+ }
37
+ if (!isSameChainSwap) {
38
+ const buyDebridgeChainId = constant_1.chainIdToDebridgeChainId[buyAsset.chainId];
39
+ if (buyDebridgeChainId === undefined) {
40
+ return (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
41
+ message: `Buy asset chain '${buyAsset.chainId}' not supported by deBridge`,
42
+ code: types_1.TradeQuoteError.UnsupportedChain,
43
+ }));
44
+ }
45
+ }
46
+ const senderAddress = (() => {
47
+ if (input.quoteOrRate === 'rate') {
48
+ if (input.sendAddress)
49
+ return input.sendAddress;
50
+ return constant_1.DEFAULT_DEBRIDGE_USER_ADDRESS;
51
+ }
52
+ return input.sendAddress ?? constant_1.DEFAULT_DEBRIDGE_USER_ADDRESS;
53
+ })();
54
+ const recipientAddress = (() => {
55
+ if (input.quoteOrRate === 'rate') {
56
+ if (input.receiveAddress)
57
+ return input.receiveAddress;
58
+ return constant_1.DEFAULT_DEBRIDGE_USER_ADDRESS;
59
+ }
60
+ return input.receiveAddress;
61
+ })();
62
+ const affiliateFeePercent = (() => {
63
+ if (!(0, utils_1.isTreasuryChainId)(buyAsset.chainId))
64
+ return undefined;
65
+ const bps = (0, utils_1.bnOrZero)(affiliateBps);
66
+ if (!bps.isFinite() || bps.lte(0))
67
+ return undefined;
68
+ return bps.div(100).toFixed();
69
+ })();
70
+ const affiliateFeeRecipient = (() => {
71
+ if (affiliateFeePercent === undefined)
72
+ return undefined;
73
+ try {
74
+ return (0, helpers_1.getTreasuryAddressFromChainId)(buyAsset.chainId).toLowerCase();
75
+ }
76
+ catch (e) {
77
+ console.error(`[getTrade] Failed to get treasury address for chainId ${buyAsset.chainId}, affiliate fee will not be applied`, e);
78
+ return undefined;
79
+ }
80
+ })();
81
+ if (isSameChainSwap) {
82
+ return getSameChainTrade({
83
+ input,
84
+ deps,
85
+ sellDebridgeChainId,
86
+ senderAddress,
87
+ recipientAddress,
88
+ affiliateFeePercent,
89
+ affiliateFeeRecipient,
90
+ });
91
+ }
92
+ const buyDebridgeChainId = constant_1.chainIdToDebridgeChainId[buyAsset.chainId];
93
+ if (buyDebridgeChainId === undefined) {
94
+ return (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
95
+ message: `Buy asset chain '${buyAsset.chainId}' not supported by deBridge`,
96
+ code: types_1.TradeQuoteError.UnsupportedChain,
97
+ }));
98
+ }
99
+ const maybeQuote = await (0, fetchDebridgeTrade_1.fetchDebridgeTrade)({
100
+ srcChainId: sellDebridgeChainId,
101
+ srcChainTokenIn: getDebridgeAssetAddress(sellAsset.assetId),
102
+ srcChainTokenInAmount: sellAmountIncludingProtocolFeesCryptoBaseUnit,
103
+ dstChainId: buyDebridgeChainId,
104
+ dstChainTokenOut: getDebridgeAssetAddress(buyAsset.assetId),
105
+ dstChainTokenOutAmount: 'auto',
106
+ dstChainTokenOutRecipient: recipientAddress,
107
+ srcChainOrderAuthorityAddress: senderAddress,
108
+ dstChainOrderAuthorityAddress: recipientAddress,
109
+ senderAddress,
110
+ prependOperatingExpenses: 'true',
111
+ affiliateFeePercent,
112
+ affiliateFeeRecipient,
113
+ }, deps.config);
114
+ if (maybeQuote.isErr()) {
115
+ return handleDebridgeError(maybeQuote.unwrapErr());
116
+ }
117
+ const { data: quote } = maybeQuote.unwrap();
118
+ const buyAmountAfterFeesCryptoBaseUnit = quote.estimation.dstChainTokenOut.recommendedAmount;
119
+ const rate = (0, utils_2.getInputOutputRate)({
120
+ sellAmountCryptoBaseUnit: sellAmountIncludingProtocolFeesCryptoBaseUnit,
121
+ buyAmountCryptoBaseUnit: buyAmountAfterFeesCryptoBaseUnit,
122
+ sellAsset,
123
+ buyAsset,
124
+ });
125
+ const nativePreFee = (0, utils_1.bnOrZero)(quote.fixFee)
126
+ .plus((0, utils_1.bnOrZero)(quote.prependedOperatingExpenseCost))
127
+ .toFixed();
128
+ const buyAmountBeforeFeesCryptoBaseUnit = buyAmountAfterFeesCryptoBaseUnit;
129
+ const allowanceContract = (0, chain_adapters_1.isEvmChainId)(sellAsset.chainId) ? quote.tx.to : '';
130
+ const debridgeTransactionMetadata = {
131
+ to: quote.tx.to,
132
+ data: quote.tx.data,
133
+ value: quote.tx.value,
134
+ orderId: quote.orderId,
135
+ gasLimit: quote.estimatedTransactionFee?.details.gasLimit,
136
+ };
137
+ const networkFeeCryptoBaseUnit = await getNetworkFee({
138
+ sellAsset,
139
+ debridgeTransactionMetadata,
140
+ senderAddress,
141
+ deps,
142
+ });
143
+ const protocolFeeAssetCaipChainId = constant_1.debridgeChainIdToChainId[sellDebridgeChainId.toString()];
144
+ const protocolFeeAssetIdForFees = (() => {
145
+ if (!protocolFeeAssetCaipChainId)
146
+ return undefined;
147
+ return (0, utils_1.chainIdToFeeAssetId)(protocolFeeAssetCaipChainId);
148
+ })();
149
+ const accountNumber = input.accountNumber;
150
+ const step = {
151
+ allowanceContract,
152
+ rate,
153
+ buyAmountBeforeFeesCryptoBaseUnit,
154
+ buyAmountAfterFeesCryptoBaseUnit,
155
+ sellAmountIncludingProtocolFeesCryptoBaseUnit,
156
+ buyAsset,
157
+ sellAsset,
158
+ accountNumber,
159
+ feeData: {
160
+ networkFeeCryptoBaseUnit,
161
+ protocolFees: protocolFeeAssetIdForFees && (0, utils_1.bnOrZero)(nativePreFee).gt(0)
162
+ ? {
163
+ [protocolFeeAssetIdForFees]: {
164
+ amountCryptoBaseUnit: nativePreFee,
165
+ asset: (0, utils_1.getBaseAsset)(sellAsset.chainId),
166
+ requiresBalance: true,
167
+ },
168
+ }
169
+ : {},
170
+ },
171
+ source: types_1.SwapperName.Debridge,
172
+ estimatedExecutionTimeMs: quote.order.approximateFulfillmentDelay * 1000,
173
+ debridgeTransactionMetadata,
174
+ };
175
+ const baseQuoteOrRate = {
176
+ id: quote.orderId,
177
+ rate,
178
+ swapperName: types_1.SwapperName.Debridge,
179
+ affiliateBps,
180
+ slippageTolerancePercentageDecimal: input.slippageTolerancePercentageDecimal,
181
+ };
182
+ if (input.quoteOrRate === 'quote') {
183
+ if (!input.receiveAddress) {
184
+ return (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
185
+ message: 'Receive address is required for quote',
186
+ code: types_1.TradeQuoteError.InternalError,
187
+ }));
188
+ }
189
+ const tradeQuote = {
190
+ ...baseQuoteOrRate,
191
+ steps: [step],
192
+ receiveAddress: input.receiveAddress,
193
+ quoteOrRate: 'quote',
194
+ };
195
+ return (0, monads_1.Ok)([tradeQuote]);
196
+ }
197
+ const tradeRate = {
198
+ ...baseQuoteOrRate,
199
+ steps: [step],
200
+ receiveAddress: recipientAddress,
201
+ quoteOrRate: 'rate',
202
+ };
203
+ return (0, monads_1.Ok)([tradeRate]);
204
+ }
205
+ exports.getTrade = getTrade;
206
+ function handleDebridgeError(error) {
207
+ if (!axios_1.default.isAxiosError(error.cause)) {
208
+ return (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
209
+ message: 'Unknown error',
210
+ code: types_1.TradeQuoteError.UnknownError,
211
+ }));
212
+ }
213
+ const debridgeError = error.cause?.response?.data;
214
+ if (!(0, types_2.isDebridgeError)(debridgeError)) {
215
+ return (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
216
+ message: 'Unknown error',
217
+ code: types_1.TradeQuoteError.UnknownError,
218
+ }));
219
+ }
220
+ const errorMessage = debridgeError.errorMessage ?? debridgeError.message ?? 'Unknown error';
221
+ return (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
222
+ message: errorMessage,
223
+ code: types_1.TradeQuoteError.UnknownError,
224
+ }));
225
+ }
226
+ async function getNetworkFee({ sellAsset, debridgeTransactionMetadata, senderAddress, deps, }) {
227
+ if (!(0, chain_adapters_1.isEvmChainId)(sellAsset.chainId))
228
+ return undefined;
229
+ const adapter = deps.assertGetEvmChainAdapter(sellAsset.chainId);
230
+ const { average } = await adapter.getGasFeeData();
231
+ const supportsEIP1559 = 'maxFeePerGas' in average;
232
+ try {
233
+ const feeData = await chain_adapters_1.evm.getFees({
234
+ adapter,
235
+ data: debridgeTransactionMetadata.data,
236
+ to: debridgeTransactionMetadata.to,
237
+ value: debridgeTransactionMetadata.value,
238
+ from: senderAddress,
239
+ supportsEIP1559,
240
+ });
241
+ return feeData.networkFeeCryptoBaseUnit;
242
+ }
243
+ catch {
244
+ const gasLimitFromApi = debridgeTransactionMetadata.gasLimit;
245
+ if (!gasLimitFromApi)
246
+ return undefined;
247
+ return chain_adapters_1.evm.calcNetworkFeeCryptoBaseUnit({
248
+ ...average,
249
+ gasLimit: gasLimitFromApi,
250
+ supportsEIP1559,
251
+ });
252
+ }
253
+ }
254
+ async function getSameChainTrade({ input, deps, sellDebridgeChainId, senderAddress, recipientAddress, affiliateFeePercent, affiliateFeeRecipient, }) {
255
+ const { sellAsset, buyAsset, sellAmountIncludingProtocolFeesCryptoBaseUnit, affiliateBps } = input;
256
+ const slippage = input.slippageTolerancePercentageDecimal
257
+ ? (0, utils_1.bnOrZero)(input.slippageTolerancePercentageDecimal).times(100).toFixed()
258
+ : '5';
259
+ const maybeQuote = await (0, fetchDebridgeSingleChainTrade_1.fetchDebridgeSingleChainTrade)({
260
+ chainId: sellDebridgeChainId,
261
+ tokenIn: getDebridgeAssetAddress(sellAsset.assetId),
262
+ tokenInAmount: sellAmountIncludingProtocolFeesCryptoBaseUnit,
263
+ tokenOut: getDebridgeAssetAddress(buyAsset.assetId),
264
+ tokenOutRecipient: recipientAddress,
265
+ senderAddress,
266
+ slippage,
267
+ affiliateFeePercent,
268
+ affiliateFeeRecipient,
269
+ }, deps.config);
270
+ if (maybeQuote.isErr()) {
271
+ return handleDebridgeError(maybeQuote.unwrapErr());
272
+ }
273
+ const { data: quote } = maybeQuote.unwrap();
274
+ const buyAmountAfterFeesCryptoBaseUnit = quote.tokenOut.amount;
275
+ const rate = (0, utils_2.getInputOutputRate)({
276
+ sellAmountCryptoBaseUnit: sellAmountIncludingProtocolFeesCryptoBaseUnit,
277
+ buyAmountCryptoBaseUnit: buyAmountAfterFeesCryptoBaseUnit,
278
+ sellAsset,
279
+ buyAsset,
280
+ });
281
+ const protocolFeeAmount = quote.protocolFee ?? '0';
282
+ const buyAmountBeforeFeesCryptoBaseUnit = (() => {
283
+ if (protocolFeeAmount === '0')
284
+ return buyAmountAfterFeesCryptoBaseUnit;
285
+ return utils_1.BigAmount.fromBaseUnit({
286
+ value: buyAmountAfterFeesCryptoBaseUnit,
287
+ precision: buyAsset.precision,
288
+ })
289
+ .plus(utils_1.BigAmount.fromBaseUnit({
290
+ value: protocolFeeAmount,
291
+ precision: buyAsset.precision,
292
+ }))
293
+ .toBaseUnit();
294
+ })();
295
+ const allowanceContract = (0, chain_adapters_1.isEvmChainId)(sellAsset.chainId) ? quote.tx.to : '';
296
+ const debridgeTransactionMetadata = {
297
+ to: quote.tx.to,
298
+ data: quote.tx.data,
299
+ value: quote.tx.value,
300
+ gasLimit: quote.estimatedTransactionFee?.details.gasLimit,
301
+ isSameChainSwap: true,
302
+ };
303
+ const networkFeeCryptoBaseUnit = await getNetworkFee({
304
+ sellAsset,
305
+ debridgeTransactionMetadata,
306
+ senderAddress,
307
+ deps,
308
+ });
309
+ const tradeId = (0, uuid_1.v4)();
310
+ const step = {
311
+ allowanceContract,
312
+ rate,
313
+ buyAmountBeforeFeesCryptoBaseUnit,
314
+ buyAmountAfterFeesCryptoBaseUnit,
315
+ sellAmountIncludingProtocolFeesCryptoBaseUnit,
316
+ buyAsset,
317
+ sellAsset,
318
+ accountNumber: input.accountNumber,
319
+ feeData: {
320
+ networkFeeCryptoBaseUnit,
321
+ protocolFees: protocolFeeAmount !== '0'
322
+ ? {
323
+ [buyAsset.assetId]: {
324
+ amountCryptoBaseUnit: protocolFeeAmount,
325
+ asset: {
326
+ symbol: quote.tokenOut.symbol,
327
+ chainId: buyAsset.chainId,
328
+ precision: buyAsset.precision,
329
+ },
330
+ requiresBalance: false,
331
+ },
332
+ }
333
+ : {},
334
+ },
335
+ source: types_1.SwapperName.Debridge,
336
+ estimatedExecutionTimeMs: 15_000,
337
+ debridgeTransactionMetadata,
338
+ };
339
+ const baseQuoteOrRate = {
340
+ id: tradeId,
341
+ rate,
342
+ swapperName: types_1.SwapperName.Debridge,
343
+ affiliateBps,
344
+ slippageTolerancePercentageDecimal: input.slippageTolerancePercentageDecimal ??
345
+ (quote.slippage ? (0, utils_1.bnOrZero)(quote.slippage).div(100).toString() : undefined),
346
+ };
347
+ if (input.quoteOrRate === 'quote') {
348
+ if (!input.receiveAddress) {
349
+ return (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
350
+ message: 'Receive address is required for quote',
351
+ code: types_1.TradeQuoteError.InternalError,
352
+ }));
353
+ }
354
+ const tradeQuote = {
355
+ ...baseQuoteOrRate,
356
+ steps: [step],
357
+ receiveAddress: input.receiveAddress,
358
+ quoteOrRate: 'quote',
359
+ };
360
+ return (0, monads_1.Ok)([tradeQuote]);
361
+ }
362
+ const tradeRate = {
363
+ ...baseQuoteOrRate,
364
+ steps: [step],
365
+ receiveAddress: recipientAddress,
366
+ quoteOrRate: 'rate',
367
+ };
368
+ return (0, monads_1.Ok)([tradeRate]);
369
+ }