@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
@@ -2,7 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.cetusApi = void 0;
4
4
  const aggregator_sdk_1 = require("@cetusprotocol/aggregator-sdk");
5
- const transactions_1 = require("@cetusprotocol/aggregator-sdk/node_modules/@mysten/sui/transactions");
5
+ const transactions_1 = require("@mysten/sui/transactions");
6
+ const chain_adapters_1 = require("@shapeshiftoss/chain-adapters");
6
7
  const unchained_client_1 = require("@shapeshiftoss/unchained-client");
7
8
  const utils_1 = require("@shapeshiftoss/utils");
8
9
  const constants_1 = require("../../constants");
@@ -54,13 +55,7 @@ exports.cetusApi = {
54
55
  intentMessage[2] = 0;
55
56
  intentMessage.set(transactionBytes, 3);
56
57
  const bip44Params = adapter.getBip44Params({ accountNumber });
57
- const addressNList = [
58
- bip44Params.purpose,
59
- bip44Params.coinType,
60
- bip44Params.accountNumber,
61
- ...(bip44Params.isChange !== undefined ? [bip44Params.isChange ? 1 : 0] : []),
62
- ...(bip44Params.addressIndex !== undefined ? [bip44Params.addressIndex] : []),
63
- ];
58
+ const addressNList = (0, chain_adapters_1.toAddressNList)(bip44Params);
64
59
  return {
65
60
  addressNList,
66
61
  intentMessageBytes: intentMessage,
@@ -1,13 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getTradeQuote = void 0;
4
- const transactions_1 = require("@cetusprotocol/aggregator-sdk/node_modules/@mysten/sui/transactions");
4
+ const transactions_1 = require("@mysten/sui/transactions");
5
5
  const utils_1 = require("@shapeshiftoss/utils");
6
6
  const monads_1 = require("@sniptt/monads");
7
7
  const uuid_1 = require("uuid");
8
8
  const constants_1 = require("../../../constants");
9
9
  const types_1 = require("../../../types");
10
10
  const utils_2 = require("../../../utils");
11
+ const affiliateFee_1 = require("../../utils/affiliateFee");
11
12
  const helpers_1 = require("../utils/helpers");
12
13
  const getCetusTradeData_1 = require("./getCetusTradeData");
13
14
  const getTradeQuote = async (input, deps) => {
@@ -81,6 +82,15 @@ const getTradeQuote = async (input, deps) => {
81
82
  sellAsset,
82
83
  allowanceContract: '0x0',
83
84
  estimatedExecutionTimeMs: undefined,
85
+ affiliateFee: (0, affiliateFee_1.buildAffiliateFee)({
86
+ strategy: 'buy_asset',
87
+ affiliateBps,
88
+ sellAsset,
89
+ buyAsset,
90
+ sellAmountCryptoBaseUnit: sellAmount,
91
+ buyAmountCryptoBaseUnit: buyAmountAfterFeesCryptoBaseUnit,
92
+ isEstimate: true,
93
+ }),
84
94
  },
85
95
  ],
86
96
  };
@@ -1,13 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getTradeRate = void 0;
4
- const transactions_1 = require("@cetusprotocol/aggregator-sdk/node_modules/@mysten/sui/transactions");
4
+ const transactions_1 = require("@mysten/sui/transactions");
5
5
  const utils_1 = require("@shapeshiftoss/utils");
6
6
  const monads_1 = require("@sniptt/monads");
7
7
  const uuid_1 = require("uuid");
8
8
  const constants_1 = require("../../../constants");
9
9
  const types_1 = require("../../../types");
10
10
  const utils_2 = require("../../../utils");
11
+ const affiliateFee_1 = require("../../utils/affiliateFee");
11
12
  const helpers_1 = require("../utils/helpers");
12
13
  const getCetusTradeData_1 = require("./getCetusTradeData");
13
14
  const getTradeRate = async (input, deps) => {
@@ -79,6 +80,15 @@ const getTradeRate = async (input, deps) => {
79
80
  sellAsset,
80
81
  allowanceContract: '0x0',
81
82
  estimatedExecutionTimeMs: undefined,
83
+ affiliateFee: (0, affiliateFee_1.buildAffiliateFee)({
84
+ strategy: 'buy_asset',
85
+ affiliateBps,
86
+ sellAsset,
87
+ buyAsset,
88
+ sellAmountCryptoBaseUnit: sellAmount,
89
+ buyAmountCryptoBaseUnit: buyAmountAfterFeesCryptoBaseUnit,
90
+ isEstimate: true,
91
+ }),
82
92
  },
83
93
  ],
84
94
  };
@@ -1,6 +1,6 @@
1
1
  import type { RouterDataV3 } from '@cetusprotocol/aggregator-sdk';
2
2
  import { AggregatorClient } from '@cetusprotocol/aggregator-sdk';
3
- import { SuiClient } from '@cetusprotocol/aggregator-sdk/node_modules/@mysten/sui/client';
3
+ import { SuiClient } from '@mysten/sui/client';
4
4
  import type { Asset } from '@shapeshiftoss/types';
5
5
  export declare const getAggregatorClient: (rpcUrl: string) => AggregatorClient;
6
6
  export declare const getSuiClient: (rpcUrl: string) => SuiClient;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.findBestRoute = exports.getCoinType = exports.getSuiClient = exports.getAggregatorClient = void 0;
4
4
  const aggregator_sdk_1 = require("@cetusprotocol/aggregator-sdk");
5
- const client_1 = require("@cetusprotocol/aggregator-sdk/node_modules/@mysten/sui/client");
5
+ const client_1 = require("@mysten/sui/client");
6
6
  const caip_1 = require("@shapeshiftoss/caip");
7
7
  let suiClientInstance;
8
8
  let aggregatorClientInstance;
@@ -14,10 +14,14 @@ exports.ChainflipSupportedChainIds = [
14
14
  types_1.KnownChainIds.SolanaMainnet,
15
15
  ];
16
16
  exports.ChainflipSupportedAssetIdsByChainId = {
17
- [types_1.KnownChainIds.EthereumMainnet]: [caip_1.ethAssetId, caip_1.flipAssetId, caip_1.usdcAssetId, caip_1.usdtAssetId],
18
- [types_1.KnownChainIds.ArbitrumMainnet]: [caip_1.arbitrumAssetId, caip_1.usdcOnArbitrumOneAssetId],
17
+ [types_1.KnownChainIds.EthereumMainnet]: [caip_1.ethAssetId, caip_1.flipAssetId, caip_1.usdcAssetId, caip_1.usdtAssetId, caip_1.wbtcAssetId],
18
+ [types_1.KnownChainIds.ArbitrumMainnet]: [
19
+ caip_1.arbitrumAssetId,
20
+ caip_1.usdcOnArbitrumOneAssetId,
21
+ caip_1.usdtOnArbitrumOneAssetId,
22
+ ],
19
23
  [types_1.KnownChainIds.BitcoinMainnet]: [caip_1.btcAssetId],
20
- [types_1.KnownChainIds.SolanaMainnet]: [caip_1.solAssetId, caip_1.usdcOnSolanaAssetId],
24
+ [types_1.KnownChainIds.SolanaMainnet]: [caip_1.solAssetId, caip_1.usdcOnSolanaAssetId, caip_1.usdtOnSolanaAssetId],
21
25
  };
22
26
  exports.chainIdToChainflipNetwork = {
23
27
  [types_1.KnownChainIds.EthereumMainnet]: types_3.ChainflipNetwork.Ethereum,
@@ -8,6 +8,7 @@ const uuid_1 = require("uuid");
8
8
  const constants_1 = require("../../../constants");
9
9
  const types_1 = require("../../../types");
10
10
  const utils_2 = require("../../../utils");
11
+ const affiliateFee_1 = require("../../utils/affiliateFee");
11
12
  const constants_2 = require("../constants");
12
13
  const chainflipService_1 = require("./chainflipService");
13
14
  const getEvmTxFees_1 = require("./getEvmTxFees");
@@ -69,11 +70,11 @@ const getQuoteOrRate = async (input, deps) => {
69
70
  if (maybeQuoteResponse.isErr()) {
70
71
  const error = maybeQuoteResponse.unwrapErr();
71
72
  const cause = error.cause;
72
- if (cause.message.includes('code 400') &&
73
- cause.response?.data.detail.includes('Amount outside asset bounds')) {
73
+ if (cause?.message?.includes('code 400') &&
74
+ cause?.response?.data?.detail?.includes('Amount outside asset bounds')) {
74
75
  return (0, monads_1.Err)((0, utils_2.createTradeAmountTooSmallErr)({
75
76
  assetId: sellAsset.assetId,
76
- minAmountCryptoBaseUnit: cause.response?.data.errors.minimalAmountNative[0],
77
+ minAmountCryptoBaseUnit: cause.response?.data?.errors?.minimalAmountNative?.[0],
77
78
  }));
78
79
  }
79
80
  return (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
@@ -202,7 +203,10 @@ const getQuoteOrRate = async (input, deps) => {
202
203
  const boostRate = getChainflipQuoteRate(singleQuoteResponse.boostQuote.ingressAmountNative, singleQuoteResponse.boostQuote.egressAmountNative);
203
204
  // This is not really a buyAmount before fees but rather an input/output calculation to get the sell amount
204
205
  // prorated to the buy asset price to determine price impact
205
- const buyAmountBeforeFeesCryptoBaseUnit = (0, utils_1.toBaseUnit)((0, utils_1.bnOrZero)(singleQuoteResponse.boostQuote.ingressAmount).times((0, utils_1.bnOrZero)(singleQuoteResponse.estimatedPrice)), buyAsset.precision);
206
+ const buyAmountBeforeFeesCryptoBaseUnit = utils_1.BigAmount.fromPrecision({
207
+ value: (0, utils_1.bnOrZero)(singleQuoteResponse.boostQuote.ingressAmount).times((0, utils_1.bnOrZero)(singleQuoteResponse.estimatedPrice)),
208
+ precision: buyAsset.precision,
209
+ }).toBaseUnit();
206
210
  const boostTradeRateOrQuote = {
207
211
  id: (0, uuid_1.v4)(),
208
212
  rate: boostRate,
@@ -239,6 +243,14 @@ const getQuoteOrRate = async (input, deps) => {
239
243
  : undefined,
240
244
  chainflipMaxBoostFee: getMaxBoostFee(),
241
245
  },
246
+ affiliateFee: (0, affiliateFee_1.buildAffiliateFee)({
247
+ strategy: 'buy_asset',
248
+ affiliateBps: commissionBps,
249
+ sellAsset,
250
+ buyAsset,
251
+ sellAmountCryptoBaseUnit: singleQuoteResponse.boostQuote.ingressAmountNative,
252
+ buyAmountCryptoBaseUnit: singleQuoteResponse.boostQuote.egressAmountNative,
253
+ }),
242
254
  },
243
255
  ],
244
256
  };
@@ -249,7 +261,10 @@ const getQuoteOrRate = async (input, deps) => {
249
261
  : '0';
250
262
  // This is not really a buyAmount before fees but rather an input/output calculation to get the sell amount
251
263
  // prorated to the buy asset price to determine price impact
252
- const buyAmountBeforeFeesCryptoBaseUnit = (0, utils_1.toBaseUnit)((0, utils_1.bnOrZero)(singleQuoteResponse.ingressAmount).times((0, utils_1.bnOrZero)(singleQuoteResponse.estimatedPrice)), buyAsset.precision);
264
+ const buyAmountBeforeFeesCryptoBaseUnit = utils_1.BigAmount.fromPrecision({
265
+ value: (0, utils_1.bnOrZero)(singleQuoteResponse.ingressAmount).times((0, utils_1.bnOrZero)(singleQuoteResponse.estimatedPrice)),
266
+ precision: buyAsset.precision,
267
+ }).toBaseUnit();
253
268
  const tradeRateOrQuote = {
254
269
  id: (0, uuid_1.v4)(),
255
270
  rate,
@@ -287,6 +302,14 @@ const getQuoteOrRate = async (input, deps) => {
287
302
  : undefined,
288
303
  chainflipMaxBoostFee: 0,
289
304
  },
305
+ affiliateFee: (0, affiliateFee_1.buildAffiliateFee)({
306
+ strategy: 'buy_asset',
307
+ affiliateBps: commissionBps,
308
+ sellAsset,
309
+ buyAsset,
310
+ sellAmountCryptoBaseUnit: singleQuoteResponse.ingressAmountNative ?? '0',
311
+ buyAmountCryptoBaseUnit: singleQuoteResponse.egressAmountNative ?? '0',
312
+ }),
290
313
  },
291
314
  ],
292
315
  };
@@ -20,8 +20,14 @@ const isSupportedAssetId = (chainId, assetId) => {
20
20
  };
21
21
  exports.isSupportedAssetId = isSupportedAssetId;
22
22
  const calculateChainflipMinPrice = ({ sellAmountIncludingProtocolFeesCryptoBaseUnit, buyAmountAfterFeesCryptoBaseUnit, slippageTolerancePercentageDecimal, sellAsset, buyAsset, }) => {
23
- const sellAmountCryptoPrecision = (0, utils_1.fromBaseUnit)(sellAmountIncludingProtocolFeesCryptoBaseUnit, sellAsset.precision);
24
- const buyAmountCryptoPrecision = (0, utils_1.fromBaseUnit)(buyAmountAfterFeesCryptoBaseUnit, buyAsset.precision);
23
+ const sellAmountCryptoPrecision = utils_1.BigAmount.fromBaseUnit({
24
+ value: sellAmountIncludingProtocolFeesCryptoBaseUnit,
25
+ precision: sellAsset.precision,
26
+ }).toPrecision();
27
+ const buyAmountCryptoPrecision = utils_1.BigAmount.fromBaseUnit({
28
+ value: buyAmountAfterFeesCryptoBaseUnit,
29
+ precision: buyAsset.precision,
30
+ }).toPrecision();
25
31
  const estimatedPrice = (0, utils_1.bn)(buyAmountCryptoPrecision).div(sellAmountCryptoPrecision);
26
32
  // This is called minimumPrice upstream but this really is a rate, let's not honour confusing terminology
27
33
  const minimumRate = estimatedPrice
@@ -12,7 +12,7 @@ exports.cowSwapper = {
12
12
  throw Error('Missing appDataHash');
13
13
  const signature = await (0, cowswap_utils_1.signCowOrder)(orderToSign, chainId, signMessage);
14
14
  const network = (0, cowswap_utils_1.assertGetCowNetwork)(chainId);
15
- const maybeOrdersResponse = await cowService_1.cowService.post(`${config.VITE_COWSWAP_BASE_URL}/${network}/api/v1/orders/`, {
15
+ const maybeOrdersResponse = await cowService_1.cowService.post(`${config.VITE_COWSWAP_BASE_URL}/${network}/api/v1/orders`, {
16
16
  ...orderToSign,
17
17
  signingScheme: types_1.SigningScheme.EIP712,
18
18
  signature,
@@ -11,6 +11,7 @@ const cowswap_utils_1 = require("../../../cowswap-utils");
11
11
  const constants_2 = require("../../../cowswap-utils/constants");
12
12
  const types_2 = require("../../../types");
13
13
  const utils_2 = require("../../../utils");
14
+ const affiliateFee_1 = require("../../utils/affiliateFee");
14
15
  const helpers_1 = require("../../utils/helpers/helpers");
15
16
  const cowService_1 = require("../utils/cowService");
16
17
  const helpers_2 = require("../utils/helpers/helpers");
@@ -42,7 +43,7 @@ async function getCowSwapTradeQuote(input, config) {
42
43
  });
43
44
  const { appData, appDataHash } = await (0, cowswap_utils_1.getFullAppData)(slippageTolerancePercentageDecimal, affiliateAppDataFragment, 'market');
44
45
  // https://api.cow.fi/docs/#/default/post_api_v1_quote
45
- const maybeQuoteResponse = await cowService_1.cowService.post(`${config.VITE_COWSWAP_BASE_URL}/${network}/api/v1/quote/`, {
46
+ const maybeQuoteResponse = await cowService_1.cowService.post(`${config.VITE_COWSWAP_BASE_URL}/${network}/api/v1/quote`, {
46
47
  sellToken: (0, caip_1.fromAssetId)(sellAsset.assetId).assetReference,
47
48
  buyToken,
48
49
  receiver: receiveAddress,
@@ -116,6 +117,15 @@ async function getCowSwapTradeQuote(input, config) {
116
117
  buyAmountBeforeFeesCryptoBaseUnit,
117
118
  buyAmountAfterFeesCryptoBaseUnit,
118
119
  source: types_2.SwapperName.CowSwap,
120
+ affiliateFee: (0, affiliateFee_1.buildAffiliateFee)({
121
+ strategy: 'buy_asset',
122
+ affiliateBps,
123
+ sellAsset,
124
+ buyAsset,
125
+ sellAmountCryptoBaseUnit: sellAmountIncludingProtocolFeesCryptoBaseUnit,
126
+ buyAmountCryptoBaseUnit: buyAmountAfterFeesCryptoBaseUnit,
127
+ isEstimate: true,
128
+ }),
119
129
  buyAsset,
120
130
  sellAsset,
121
131
  accountNumber,
@@ -385,7 +385,7 @@ const expectedTradeQuoteSmallAmountWethToFox = {
385
385
  const maybeTradeQuote = await (0, getCowSwapTradeQuote_1.getCowSwapTradeQuote)(input, MOCK_COWSWAP_CONFIG);
386
386
  (0, vitest_1.expect)(maybeTradeQuote.isOk()).toBe(true);
387
387
  (0, vitest_1.expect)(maybeTradeQuote.unwrap()).toEqual(expectedTradeQuoteWethToFox);
388
- (0, vitest_1.expect)(cowService_1.cowService.post).toHaveBeenCalledWith('https://api.cow.fi/mainnet/api/v1/quote/', expectedApiInputWethToFox);
388
+ (0, vitest_1.expect)(cowService_1.cowService.post).toHaveBeenCalledWith('https://api.cow.fi/mainnet/api/v1/quote', expectedApiInputWethToFox);
389
389
  });
390
390
  (0, vitest_1.it)('should call cowService with correct parameters, handle the fees and return the correct trade quote when buying ETH', async () => {
391
391
  const input = {
@@ -418,7 +418,7 @@ const expectedTradeQuoteSmallAmountWethToFox = {
418
418
  const maybeTradeQuote = await (0, getCowSwapTradeQuote_1.getCowSwapTradeQuote)(input, MOCK_COWSWAP_CONFIG);
419
419
  (0, vitest_1.expect)(maybeTradeQuote.isOk()).toBe(true);
420
420
  (0, vitest_1.expect)(maybeTradeQuote.unwrap()).toEqual(expectedTradeQuoteFoxToEth);
421
- (0, vitest_1.expect)(cowService_1.cowService.post).toHaveBeenCalledWith('https://api.cow.fi/mainnet/api/v1/quote/', expectedApiInputFoxToEth);
421
+ (0, vitest_1.expect)(cowService_1.cowService.post).toHaveBeenCalledWith('https://api.cow.fi/mainnet/api/v1/quote', expectedApiInputFoxToEth);
422
422
  });
423
423
  (0, vitest_1.it)('should call cowService with correct parameters, handle the fees and return the correct trade quote when buying XDAI', async () => {
424
424
  const input = {
@@ -451,7 +451,7 @@ const expectedTradeQuoteSmallAmountWethToFox = {
451
451
  const maybeTradeQuote = await (0, getCowSwapTradeQuote_1.getCowSwapTradeQuote)(input, MOCK_COWSWAP_CONFIG);
452
452
  (0, vitest_1.expect)(maybeTradeQuote.isOk()).toBe(true);
453
453
  (0, vitest_1.expect)(maybeTradeQuote.unwrap()).toEqual(expectedTradeQuoteUsdcToXdai);
454
- (0, vitest_1.expect)(cowService_1.cowService.post).toHaveBeenCalledWith('https://api.cow.fi/xdai/api/v1/quote/', expectedApiInputUsdcGnosisToXdai);
454
+ (0, vitest_1.expect)(cowService_1.cowService.post).toHaveBeenCalledWith('https://api.cow.fi/xdai/api/v1/quote', expectedApiInputUsdcGnosisToXdai);
455
455
  });
456
456
  (0, vitest_1.it)('should call cowService with correct parameters, handle the fees and return the correct trade quote when buying ETH on Arbitrum', async () => {
457
457
  const input = {
@@ -484,7 +484,7 @@ const expectedTradeQuoteSmallAmountWethToFox = {
484
484
  const maybeTradeQuote = await (0, getCowSwapTradeQuote_1.getCowSwapTradeQuote)(input, MOCK_COWSWAP_CONFIG);
485
485
  (0, vitest_1.expect)(maybeTradeQuote.isOk()).toBe(true);
486
486
  (0, vitest_1.expect)(maybeTradeQuote.unwrap()).toEqual(expectedTradeQuoteUsdcToEthArbitrum);
487
- (0, vitest_1.expect)(cowService_1.cowService.post).toHaveBeenCalledWith('https://api.cow.fi/arbitrum_one/api/v1/quote/', expectedApiInputUsdcToEthArbitrum);
487
+ (0, vitest_1.expect)(cowService_1.cowService.post).toHaveBeenCalledWith('https://api.cow.fi/arbitrum_one/api/v1/quote', expectedApiInputUsdcToEthArbitrum);
488
488
  });
489
489
  (0, vitest_1.it)('should call cowService with correct parameters and return quote with original sellAmount when selling a very small amount of WETH', async () => {
490
490
  const input = {
@@ -517,6 +517,6 @@ const expectedTradeQuoteSmallAmountWethToFox = {
517
517
  const maybeTradeQuote = await (0, getCowSwapTradeQuote_1.getCowSwapTradeQuote)(input, MOCK_COWSWAP_CONFIG);
518
518
  (0, vitest_1.expect)(maybeTradeQuote.isErr()).toBe(false);
519
519
  (0, vitest_1.expect)(maybeTradeQuote.unwrap()).toEqual(expectedTradeQuoteSmallAmountWethToFox);
520
- (0, vitest_1.expect)(cowService_1.cowService.post).toHaveBeenCalledWith('https://api.cow.fi/mainnet/api/v1/quote/', expectedApiInputSmallAmountWethToFox);
520
+ (0, vitest_1.expect)(cowService_1.cowService.post).toHaveBeenCalledWith('https://api.cow.fi/mainnet/api/v1/quote', expectedApiInputSmallAmountWethToFox);
521
521
  });
522
522
  });
@@ -11,6 +11,7 @@ const cowswap_utils_1 = require("../../../cowswap-utils");
11
11
  const constants_2 = require("../../../cowswap-utils/constants");
12
12
  const types_2 = require("../../../types");
13
13
  const utils_2 = require("../../../utils");
14
+ const affiliateFee_1 = require("../../utils/affiliateFee");
14
15
  const helpers_1 = require("../../utils/helpers/helpers");
15
16
  const cowService_1 = require("../utils/cowService");
16
17
  const helpers_2 = require("../utils/helpers/helpers");
@@ -42,7 +43,7 @@ async function getCowSwapTradeRate(input, config) {
42
43
  });
43
44
  const { appData, appDataHash } = await (0, cowswap_utils_1.getFullAppData)(slippageTolerancePercentageDecimal, affiliateAppDataFragment, 'market');
44
45
  // https://api.cow.fi/docs/#/default/post_api_v1_quote
45
- const maybeQuoteResponse = await cowService_1.cowService.post(`${config.VITE_COWSWAP_BASE_URL}/${network}/api/v1/quote/`, {
46
+ const maybeQuoteResponse = await cowService_1.cowService.post(`${config.VITE_COWSWAP_BASE_URL}/${network}/api/v1/quote`, {
46
47
  sellToken: (0, caip_1.fromAssetId)(sellAsset.assetId).assetReference,
47
48
  buyToken,
48
49
  receiver: receiveAddress,
@@ -116,6 +117,14 @@ async function getCowSwapTradeRate(input, config) {
116
117
  buyAmountBeforeFeesCryptoBaseUnit,
117
118
  buyAmountAfterFeesCryptoBaseUnit,
118
119
  source: types_2.SwapperName.CowSwap,
120
+ affiliateFee: (0, affiliateFee_1.buildAffiliateFee)({
121
+ strategy: 'buy_asset',
122
+ affiliateBps,
123
+ sellAsset,
124
+ buyAsset,
125
+ sellAmountCryptoBaseUnit: sellAmountIncludingProtocolFeesCryptoBaseUnit,
126
+ buyAmountCryptoBaseUnit: buyAmountAfterFeesCryptoBaseUnit,
127
+ }),
119
128
  buyAsset,
120
129
  sellAsset,
121
130
  accountNumber,
@@ -63,8 +63,14 @@ const getValuesFromQuoteResponse = ({ buyAsset, sellAsset, response, affiliateBp
63
63
  amount: buyAmountAfterAffiliateFeesCryptoBaseUnit,
64
64
  slippageTolerancePercentageDecimal,
65
65
  });
66
- const buyAmountAfterAffiliateFeesCryptoPrecision = (0, utils_1.fromBaseUnit)(buyAmountAfterAffiliateFeesCryptoBaseUnit, buyAsset.precision);
67
- const sellAmountCryptoPrecision = (0, utils_1.fromBaseUnit)(sellAmountAfterFeesCryptoBaseUnit, sellAsset.precision);
66
+ const buyAmountAfterAffiliateFeesCryptoPrecision = utils_1.BigAmount.fromBaseUnit({
67
+ value: buyAmountAfterAffiliateFeesCryptoBaseUnit,
68
+ precision: buyAsset.precision,
69
+ }).toPrecision();
70
+ const sellAmountCryptoPrecision = utils_1.BigAmount.fromBaseUnit({
71
+ value: sellAmountAfterFeesCryptoBaseUnit,
72
+ precision: sellAsset.precision,
73
+ }).toPrecision();
68
74
  const rate = (0, utils_1.bnOrZero)(buyAmountAfterAffiliateFeesCryptoPrecision)
69
75
  .div(sellAmountCryptoPrecision)
70
76
  .toString();
@@ -0,0 +1,2 @@
1
+ import type { Swapper } from '../../types';
2
+ export declare const debridgeSwapper: Swapper;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.debridgeSwapper = void 0;
4
+ const utils_1 = require("../../utils");
5
+ exports.debridgeSwapper = {
6
+ executeEvmTransaction: utils_1.executeEvmTransaction,
7
+ };
@@ -0,0 +1,5 @@
1
+ export declare const chainIdToDebridgeChainId: Record<string, number>;
2
+ export declare const debridgeChainIdToChainId: import("lodash").Dictionary<string>;
3
+ export declare const DEBRIDGE_SUPPORTED_CHAIN_IDS: string[];
4
+ export declare const DEFAULT_DEBRIDGE_TOKEN_ADDRESS: "0x0000000000000000000000000000000000000000";
5
+ export declare const DEFAULT_DEBRIDGE_USER_ADDRESS = "0x000000000000000000000000000000000000dead";
@@ -0,0 +1,36 @@
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.DEFAULT_DEBRIDGE_USER_ADDRESS = exports.DEFAULT_DEBRIDGE_TOKEN_ADDRESS = exports.DEBRIDGE_SUPPORTED_CHAIN_IDS = exports.debridgeChainIdToChainId = exports.chainIdToDebridgeChainId = void 0;
7
+ const caip_1 = require("@shapeshiftoss/caip");
8
+ const invert_1 = __importDefault(require("lodash/invert"));
9
+ const viem_1 = require("viem");
10
+ exports.chainIdToDebridgeChainId = {
11
+ [caip_1.ethChainId]: 1,
12
+ [caip_1.optimismChainId]: 10,
13
+ [caip_1.bscChainId]: 56,
14
+ [caip_1.gnosisChainId]: 100000002,
15
+ [caip_1.polygonChainId]: 137,
16
+ [caip_1.monadChainId]: 100000030,
17
+ [caip_1.hyperEvmChainId]: 100000022,
18
+ [caip_1.seiChainId]: 100000027,
19
+ [caip_1.baseChainId]: 8453,
20
+ [caip_1.plasmaChainId]: 100000028,
21
+ [caip_1.arbitrumChainId]: 42161,
22
+ [caip_1.avalancheChainId]: 43114,
23
+ [caip_1.mantleChainId]: 100000023,
24
+ [caip_1.cronosChainId]: 100000019,
25
+ [caip_1.berachainChainId]: 100000020,
26
+ [caip_1.lineaChainId]: 59144,
27
+ [caip_1.bobChainId]: 100000021,
28
+ [caip_1.sonicChainId]: 100000014,
29
+ [caip_1.storyChainId]: 100000013,
30
+ [caip_1.flowEvmChainId]: 100000009,
31
+ [caip_1.megaethChainId]: 100000031,
32
+ };
33
+ exports.debridgeChainIdToChainId = (0, invert_1.default)(exports.chainIdToDebridgeChainId);
34
+ exports.DEBRIDGE_SUPPORTED_CHAIN_IDS = Object.keys(exports.chainIdToDebridgeChainId);
35
+ exports.DEFAULT_DEBRIDGE_TOKEN_ADDRESS = viem_1.zeroAddress;
36
+ exports.DEFAULT_DEBRIDGE_USER_ADDRESS = '0x000000000000000000000000000000000000dead';
@@ -0,0 +1,2 @@
1
+ import type { SwapperApi } from '../../types';
2
+ export declare const debridgeApi: SwapperApi;
@@ -0,0 +1,217 @@
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.debridgeApi = void 0;
7
+ const chain_adapters_1 = require("@shapeshiftoss/chain-adapters");
8
+ const unchained_client_1 = require("@shapeshiftoss/unchained-client");
9
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
10
+ const utils_1 = require("../../utils");
11
+ const getTradeQuote_1 = require("./getTradeQuote/getTradeQuote");
12
+ const getTradeRate_1 = require("./getTradeRate/getTradeRate");
13
+ const debridgeService_1 = require("./utils/debridgeService");
14
+ const DEBRIDGE_STATS_API_URL = 'https://stats-api.dln.trade';
15
+ exports.debridgeApi = {
16
+ getTradeQuote: (input, deps) => (0, getTradeQuote_1.getTradeQuote)(input, deps),
17
+ getTradeRate: (input, deps) => (0, getTradeRate_1.getTradeRate)(input, deps),
18
+ getEvmTransactionFees: async ({ from, stepIndex, tradeQuote, supportsEIP1559, assertGetEvmChainAdapter, }) => {
19
+ if (!(0, utils_1.isExecutableTradeQuote)(tradeQuote))
20
+ throw new Error('Unable to execute a trade rate quote');
21
+ const step = (0, utils_1.getExecutableTradeStep)(tradeQuote, stepIndex);
22
+ const { debridgeTransactionMetadata, sellAsset } = step;
23
+ if (!debridgeTransactionMetadata)
24
+ throw new Error('Missing deBridge transaction metadata');
25
+ const { to, value, data, gasLimit: gasLimitFromApi } = debridgeTransactionMetadata;
26
+ const adapter = assertGetEvmChainAdapter(sellAsset.chainId);
27
+ try {
28
+ const feeData = await chain_adapters_1.evm.getFees({ adapter, data, to, value, from, supportsEIP1559 });
29
+ return feeData.networkFeeCryptoBaseUnit;
30
+ }
31
+ catch (e) {
32
+ console.error('[deBridge] getEvmTransactionFees: gas estimation failed, using API fallback', {
33
+ error: e,
34
+ chainId: sellAsset.chainId,
35
+ to,
36
+ value,
37
+ });
38
+ if (!gasLimitFromApi)
39
+ throw new Error('Gas estimation failed and no API gas limit fallback');
40
+ const { average } = await adapter.getGasFeeData();
41
+ return chain_adapters_1.evm.calcNetworkFeeCryptoBaseUnit({
42
+ ...average,
43
+ supportsEIP1559,
44
+ gasLimit: gasLimitFromApi,
45
+ });
46
+ }
47
+ },
48
+ getUnsignedEvmTransaction: async ({ from, stepIndex, tradeQuote, supportsEIP1559, assertGetEvmChainAdapter, }) => {
49
+ if (!(0, utils_1.isExecutableTradeQuote)(tradeQuote))
50
+ throw new Error('Unable to execute a trade rate quote');
51
+ const step = (0, utils_1.getExecutableTradeStep)(tradeQuote, stepIndex);
52
+ const { accountNumber, debridgeTransactionMetadata, sellAsset } = step;
53
+ if (!debridgeTransactionMetadata)
54
+ throw new Error('Missing deBridge transaction metadata');
55
+ const { to, value, data, gasLimit: gasLimitFromApi } = debridgeTransactionMetadata;
56
+ const adapter = assertGetEvmChainAdapter(sellAsset.chainId);
57
+ const feeData = await (async () => {
58
+ try {
59
+ const fees = await chain_adapters_1.evm.getFees({ adapter, data, to, value, from, supportsEIP1559 });
60
+ const result = {
61
+ ...fees,
62
+ gasLimit: (0, bignumber_js_1.default)(fees.gasLimit).times('1.2').toFixed(0),
63
+ };
64
+ console.log('[deBridge] getUnsignedEvmTransaction feeData', JSON.stringify({
65
+ chainId: sellAsset.chainId,
66
+ to,
67
+ value,
68
+ supportsEIP1559,
69
+ feesFromEstimate: fees,
70
+ gasLimitWithBuffer: result.gasLimit,
71
+ }));
72
+ return result;
73
+ }
74
+ catch (e) {
75
+ console.error('[deBridge] getUnsignedEvmTransaction: gas estimation failed, using API fallback', { error: e, chainId: sellAsset.chainId, to, value });
76
+ if (!gasLimitFromApi)
77
+ throw new Error('Gas estimation failed and no API gas limit fallback');
78
+ const { average } = await adapter.getGasFeeData();
79
+ const networkFeeCryptoBaseUnit = chain_adapters_1.evm.calcNetworkFeeCryptoBaseUnit({
80
+ ...average,
81
+ supportsEIP1559,
82
+ gasLimit: gasLimitFromApi,
83
+ });
84
+ const { gasPrice, maxFeePerGas, maxPriorityFeePerGas } = average;
85
+ if (supportsEIP1559 && maxFeePerGas && maxPriorityFeePerGas) {
86
+ return {
87
+ networkFeeCryptoBaseUnit,
88
+ gasLimit: gasLimitFromApi,
89
+ maxFeePerGas,
90
+ maxPriorityFeePerGas,
91
+ };
92
+ }
93
+ return { networkFeeCryptoBaseUnit, gasLimit: gasLimitFromApi, gasPrice };
94
+ }
95
+ })();
96
+ const unsignedTx = await adapter.buildCustomApiTx({
97
+ accountNumber,
98
+ data,
99
+ from,
100
+ to,
101
+ value,
102
+ ...feeData,
103
+ });
104
+ return unsignedTx;
105
+ },
106
+ checkTradeStatus: async ({ txHash, chainId, address, swap, config, fetchIsSmartContractAddressQuery, assertGetEvmChainAdapter, }) => {
107
+ const isSameChainSwap = swap?.metadata.debridgeTransactionMetadata?.isSameChainSwap === true;
108
+ if (isSameChainSwap) {
109
+ return (0, utils_1.checkEvmSwapStatus)({
110
+ txHash,
111
+ chainId,
112
+ address,
113
+ assertGetEvmChainAdapter,
114
+ fetchIsSmartContractAddressQuery,
115
+ });
116
+ }
117
+ let resolvedTxHash = txHash;
118
+ if ((0, chain_adapters_1.isEvmChainId)(chainId)) {
119
+ const sourceTxStatus = await (0, utils_1.checkEvmSwapStatus)({
120
+ txHash,
121
+ chainId,
122
+ address,
123
+ assertGetEvmChainAdapter,
124
+ fetchIsSmartContractAddressQuery,
125
+ });
126
+ if (sourceTxStatus.status !== unchained_client_1.TxStatus.Confirmed)
127
+ return sourceTxStatus;
128
+ resolvedTxHash = sourceTxStatus.buyTxHash ?? txHash;
129
+ }
130
+ const maybeOrderIdsResponse = await debridgeService_1.debridgeService.get(`${DEBRIDGE_STATS_API_URL}/api/Transaction/${resolvedTxHash}/orderIds`);
131
+ if (maybeOrderIdsResponse.isErr()) {
132
+ console.error('[deBridge] checkTradeStatus: failed to fetch orderIds', {
133
+ error: maybeOrderIdsResponse.unwrapErr(),
134
+ txHash: resolvedTxHash,
135
+ chainId,
136
+ });
137
+ return {
138
+ buyTxHash: undefined,
139
+ status: unchained_client_1.TxStatus.Pending,
140
+ message: 'Waiting for order confirmation...',
141
+ };
142
+ }
143
+ const { data: orderIdsResponse } = maybeOrderIdsResponse.unwrap();
144
+ if (!orderIdsResponse.orderIds?.length) {
145
+ return {
146
+ buyTxHash: undefined,
147
+ status: unchained_client_1.TxStatus.Pending,
148
+ message: 'Waiting for order confirmation...',
149
+ };
150
+ }
151
+ const orderId = orderIdsResponse.orderIds[0].stringValue;
152
+ const maybeStatusResponse = await debridgeService_1.debridgeService.get(`${config.VITE_DEBRIDGE_API_URL}/dln/order/${orderId}/status`);
153
+ if (maybeStatusResponse.isErr()) {
154
+ console.error('[deBridge] checkTradeStatus: failed to fetch order status', {
155
+ error: maybeStatusResponse.unwrapErr(),
156
+ orderId,
157
+ txHash: resolvedTxHash,
158
+ chainId,
159
+ });
160
+ return {
161
+ buyTxHash: undefined,
162
+ status: unchained_client_1.TxStatus.Unknown,
163
+ message: undefined,
164
+ };
165
+ }
166
+ const { data: statusResponse } = maybeStatusResponse.unwrap();
167
+ const status = (() => {
168
+ switch (statusResponse.status) {
169
+ case 'Fulfilled':
170
+ case 'SentUnlock':
171
+ case 'ClaimedUnlock':
172
+ return unchained_client_1.TxStatus.Confirmed;
173
+ case 'Created':
174
+ case 'None':
175
+ return unchained_client_1.TxStatus.Pending;
176
+ case 'OrderCancelled':
177
+ case 'SentOrderCancel':
178
+ case 'ClaimedOrderCancel':
179
+ return unchained_client_1.TxStatus.Failed;
180
+ default:
181
+ return unchained_client_1.TxStatus.Unknown;
182
+ }
183
+ })();
184
+ const message = (() => {
185
+ switch (statusResponse.status) {
186
+ case 'Created':
187
+ case 'None':
188
+ return 'Order created, waiting for solver fulfillment...';
189
+ case 'Fulfilled':
190
+ return 'Order fulfilled, unlocking funds...';
191
+ case 'SentUnlock':
192
+ return 'Unlock transaction sent...';
193
+ case 'OrderCancelled':
194
+ return 'Order was cancelled';
195
+ case 'SentOrderCancel':
196
+ return 'Cancellation in progress...';
197
+ case 'ClaimedOrderCancel':
198
+ return 'Order cancelled and refunded';
199
+ default:
200
+ return undefined;
201
+ }
202
+ })();
203
+ const buyTxHash = await (async () => {
204
+ if (status !== unchained_client_1.TxStatus.Confirmed)
205
+ return undefined;
206
+ const maybeOrderDetail = await debridgeService_1.debridgeService.get(`${DEBRIDGE_STATS_API_URL}/api/Orders/${orderId}`);
207
+ if (maybeOrderDetail.isErr())
208
+ return undefined;
209
+ return maybeOrderDetail.unwrap().data.fulfilledDstEventMetadata?.transactionHash?.stringValue;
210
+ })();
211
+ return {
212
+ status,
213
+ buyTxHash,
214
+ message,
215
+ };
216
+ },
217
+ };
@@ -0,0 +1,3 @@
1
+ import type { Result } from '@sniptt/monads';
2
+ import type { CommonTradeQuoteInput, SwapErrorRight, SwapperDeps, TradeQuote } from '../../../types';
3
+ export declare const getTradeQuote: (input: CommonTradeQuoteInput, deps: SwapperDeps) => Promise<Result<TradeQuote[], SwapErrorRight>>;