@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
@@ -1,4 +1,4 @@
1
- import { fromAssetId, solanaChainId } from '@shapeshiftoss/caip';
1
+ import { fromAssetId, solanaChainId, tronChainId } from '@shapeshiftoss/caip';
2
2
  import { chainIdToFeeAssetId } from '@shapeshiftoss/utils';
3
3
  import { Err, Ok } from '@sniptt/monads';
4
4
  import { zeroAddress } from 'viem';
@@ -20,7 +20,8 @@ export var ButterSwapErrorCode;
20
20
  ButterSwapErrorCode[ButterSwapErrorCode["InvalidAddress"] = 2007] = "InvalidAddress";
21
21
  })(ButterSwapErrorCode || (ButterSwapErrorCode = {}));
22
22
  const SOLANA_NATIVE_ADDRESS = 'So11111111111111111111111111111111111111112';
23
- export const getButterRoute = async ({ sellAsset, buyAsset, sellAmountCryptoBaseUnit, slippage, affiliate, }) => {
23
+ const TRON_NATIVE_ADDRESS = 'T9yD14Nj9j7xAB4dbGeiX9h8unkKHxuWwb';
24
+ export const getButterRoute = async ({ sellAsset, buyAsset, sellAmountCryptoPrecision, slippage, affiliate, }) => {
24
25
  const butterFromChainId = chainIdToButterSwapChainId(sellAsset.chainId);
25
26
  const butterToChainId = chainIdToButterSwapChainId(buyAsset.chainId);
26
27
  if (!butterFromChainId || !butterToChainId) {
@@ -37,6 +38,8 @@ export const getButterRoute = async ({ sellAsset, buyAsset, sellAmountCryptoBase
37
38
  const sellAssetAddress = (() => {
38
39
  if (sellAsset.chainId === solanaChainId && sellAssetIsNative)
39
40
  return SOLANA_NATIVE_ADDRESS;
41
+ if (sellAsset.chainId === tronChainId && sellAssetIsNative)
42
+ return TRON_NATIVE_ADDRESS;
40
43
  if (sellAssetIsNative)
41
44
  return zeroAddress;
42
45
  return sellAssetAddressRaw;
@@ -44,6 +47,8 @@ export const getButterRoute = async ({ sellAsset, buyAsset, sellAmountCryptoBase
44
47
  const buyAssetAddress = (() => {
45
48
  if (buyAsset.chainId === solanaChainId && buyAssetIsNative)
46
49
  return SOLANA_NATIVE_ADDRESS;
50
+ if (buyAsset.chainId === tronChainId && buyAssetIsNative)
51
+ return TRON_NATIVE_ADDRESS;
47
52
  if (buyAssetIsNative)
48
53
  return zeroAddress;
49
54
  return buyAssetAddressRaw;
@@ -54,7 +59,7 @@ export const getButterRoute = async ({ sellAsset, buyAsset, sellAmountCryptoBase
54
59
  tokenInAddress: sellAssetAddress,
55
60
  toChainId: butterToChainId,
56
61
  tokenOutAddress: buyAssetAddress,
57
- amount: sellAmountCryptoBaseUnit,
62
+ amount: sellAmountCryptoPrecision,
58
63
  type: 'exactIn',
59
64
  slippage,
60
65
  entrance: 'shapeshift',
@@ -1,5 +1,6 @@
1
1
  import { getProvidersExcluding } from '@cetusprotocol/aggregator-sdk';
2
- import { Transaction } from '@cetusprotocol/aggregator-sdk/node_modules/@mysten/sui/transactions';
2
+ import { Transaction } from '@mysten/sui/transactions';
3
+ import { toAddressNList } from '@shapeshiftoss/chain-adapters';
3
4
  import { TxStatus } from '@shapeshiftoss/unchained-client';
4
5
  import { bnOrZero } from '@shapeshiftoss/utils';
5
6
  import { getDefaultSlippageDecimalPercentageForSwapper } from '../../constants.js';
@@ -51,13 +52,7 @@ export const cetusApi = {
51
52
  intentMessage[2] = 0;
52
53
  intentMessage.set(transactionBytes, 3);
53
54
  const bip44Params = adapter.getBip44Params({ accountNumber });
54
- const addressNList = [
55
- bip44Params.purpose,
56
- bip44Params.coinType,
57
- bip44Params.accountNumber,
58
- ...(bip44Params.isChange !== undefined ? [bip44Params.isChange ? 1 : 0] : []),
59
- ...(bip44Params.addressIndex !== undefined ? [bip44Params.addressIndex] : []),
60
- ];
55
+ const addressNList = toAddressNList(bip44Params);
61
56
  return {
62
57
  addressNList,
63
58
  intentMessageBytes: intentMessage,
@@ -1,10 +1,11 @@
1
- import { Transaction } from '@cetusprotocol/aggregator-sdk/node_modules/@mysten/sui/transactions';
1
+ import { Transaction } from '@mysten/sui/transactions';
2
2
  import { bnOrZero } from '@shapeshiftoss/utils';
3
3
  import { Err } from '@sniptt/monads';
4
4
  import { v4 as uuid } from 'uuid';
5
5
  import { getDefaultSlippageDecimalPercentageForSwapper } from '../../../constants.js';
6
6
  import { SwapperName, TradeQuoteError } from '../../../types.js';
7
7
  import { makeSwapErrorRight } from '../../../utils.js';
8
+ import { buildAffiliateFee } from '../../utils/affiliateFee.js';
8
9
  import { getAggregatorClient, getSuiClient } from '../utils/helpers.js';
9
10
  import { getCetusTradeData } from './getCetusTradeData.js';
10
11
  export const getTradeQuote = async (input, deps) => {
@@ -78,6 +79,15 @@ export const getTradeQuote = async (input, deps) => {
78
79
  sellAsset,
79
80
  allowanceContract: '0x0',
80
81
  estimatedExecutionTimeMs: undefined,
82
+ affiliateFee: buildAffiliateFee({
83
+ strategy: 'buy_asset',
84
+ affiliateBps,
85
+ sellAsset,
86
+ buyAsset,
87
+ sellAmountCryptoBaseUnit: sellAmount,
88
+ buyAmountCryptoBaseUnit: buyAmountAfterFeesCryptoBaseUnit,
89
+ isEstimate: true,
90
+ }),
81
91
  },
82
92
  ],
83
93
  };
@@ -1,10 +1,11 @@
1
- import { Transaction } from '@cetusprotocol/aggregator-sdk/node_modules/@mysten/sui/transactions';
1
+ import { Transaction } from '@mysten/sui/transactions';
2
2
  import { bnOrZero } from '@shapeshiftoss/utils';
3
3
  import { Err } from '@sniptt/monads';
4
4
  import { v4 as uuid } from 'uuid';
5
5
  import { getDefaultSlippageDecimalPercentageForSwapper } from '../../../constants.js';
6
6
  import { SwapperName, TradeQuoteError } from '../../../types.js';
7
7
  import { makeSwapErrorRight } from '../../../utils.js';
8
+ import { buildAffiliateFee } from '../../utils/affiliateFee.js';
8
9
  import { getAggregatorClient, getSuiClient } from '../utils/helpers.js';
9
10
  import { getCetusTradeData } from './getCetusTradeData.js';
10
11
  export const getTradeRate = async (input, deps) => {
@@ -76,6 +77,15 @@ export const getTradeRate = async (input, deps) => {
76
77
  sellAsset,
77
78
  allowanceContract: '0x0',
78
79
  estimatedExecutionTimeMs: undefined,
80
+ affiliateFee: buildAffiliateFee({
81
+ strategy: 'buy_asset',
82
+ affiliateBps,
83
+ sellAsset,
84
+ buyAsset,
85
+ sellAmountCryptoBaseUnit: sellAmount,
86
+ buyAmountCryptoBaseUnit: buyAmountAfterFeesCryptoBaseUnit,
87
+ isEstimate: true,
88
+ }),
79
89
  },
80
90
  ],
81
91
  };
@@ -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;
@@ -1,5 +1,5 @@
1
1
  import { AggregatorClient, Env } from '@cetusprotocol/aggregator-sdk';
2
- import { SuiClient } from '@cetusprotocol/aggregator-sdk/node_modules/@mysten/sui/client';
2
+ import { SuiClient } from '@mysten/sui/client';
3
3
  import { fromAssetId } from '@shapeshiftoss/caip';
4
4
  let suiClientInstance;
5
5
  let aggregatorClientInstance;
@@ -1,4 +1,4 @@
1
- import { arbitrumAssetId, btcAssetId, ethAssetId, flipAssetId, solAssetId, usdcAssetId, usdcOnArbitrumOneAssetId, usdcOnSolanaAssetId, usdtAssetId, } from '@shapeshiftoss/caip';
1
+ import { arbitrumAssetId, btcAssetId, ethAssetId, flipAssetId, solAssetId, usdcAssetId, usdcOnArbitrumOneAssetId, usdcOnSolanaAssetId, usdtAssetId, usdtOnArbitrumOneAssetId, usdtOnSolanaAssetId, wbtcAssetId, } from '@shapeshiftoss/caip';
2
2
  import { KnownChainIds } from '@shapeshiftoss/types';
3
3
  import { SwapperName } from '../../types.js';
4
4
  import { ChainflipNetwork } from './types.js';
@@ -11,10 +11,14 @@ export const ChainflipSupportedChainIds = [
11
11
  KnownChainIds.SolanaMainnet,
12
12
  ];
13
13
  export const ChainflipSupportedAssetIdsByChainId = {
14
- [KnownChainIds.EthereumMainnet]: [ethAssetId, flipAssetId, usdcAssetId, usdtAssetId],
15
- [KnownChainIds.ArbitrumMainnet]: [arbitrumAssetId, usdcOnArbitrumOneAssetId],
14
+ [KnownChainIds.EthereumMainnet]: [ethAssetId, flipAssetId, usdcAssetId, usdtAssetId, wbtcAssetId],
15
+ [KnownChainIds.ArbitrumMainnet]: [
16
+ arbitrumAssetId,
17
+ usdcOnArbitrumOneAssetId,
18
+ usdtOnArbitrumOneAssetId,
19
+ ],
16
20
  [KnownChainIds.BitcoinMainnet]: [btcAssetId],
17
- [KnownChainIds.SolanaMainnet]: [solAssetId, usdcOnSolanaAssetId],
21
+ [KnownChainIds.SolanaMainnet]: [solAssetId, usdcOnSolanaAssetId, usdtOnSolanaAssetId],
18
22
  };
19
23
  export const chainIdToChainflipNetwork = {
20
24
  [KnownChainIds.EthereumMainnet]: ChainflipNetwork.Ethereum,
@@ -1,10 +1,11 @@
1
1
  import { CHAIN_NAMESPACE, fromAssetId, solAssetId } from '@shapeshiftoss/caip';
2
- import { assertUnreachable, bnOrZero, toBaseUnit } from '@shapeshiftoss/utils';
2
+ import { assertUnreachable, BigAmount, bnOrZero } from '@shapeshiftoss/utils';
3
3
  import { Err, Ok } from '@sniptt/monads';
4
4
  import { v4 as uuid } from 'uuid';
5
5
  import { getDefaultSlippageDecimalPercentageForSwapper } from '../../../constants.js';
6
6
  import { SwapperName, TradeQuoteError } from '../../../types.js';
7
7
  import { createTradeAmountTooSmallErr, getInputOutputRate, makeSwapErrorRight, } from '../../../utils.js';
8
+ import { buildAffiliateFee } from '../../utils/affiliateFee.js';
8
9
  import { CHAINFLIP_BOOST_SWAP_SOURCE, CHAINFLIP_DCA_BOOST_SWAP_SOURCE, CHAINFLIP_DCA_QUOTE, CHAINFLIP_DCA_SWAP_SOURCE, CHAINFLIP_REGULAR_QUOTE, CHAINFLIP_SWAP_SOURCE, usdcAsset, } from '../constants.js';
9
10
  import { chainflipService } from './chainflipService.js';
10
11
  import { getEvmTxFees } from './getEvmTxFees.js';
@@ -66,11 +67,11 @@ export const getQuoteOrRate = async (input, deps) => {
66
67
  if (maybeQuoteResponse.isErr()) {
67
68
  const error = maybeQuoteResponse.unwrapErr();
68
69
  const cause = error.cause;
69
- if (cause.message.includes('code 400') &&
70
- cause.response?.data.detail.includes('Amount outside asset bounds')) {
70
+ if (cause?.message?.includes('code 400') &&
71
+ cause?.response?.data?.detail?.includes('Amount outside asset bounds')) {
71
72
  return Err(createTradeAmountTooSmallErr({
72
73
  assetId: sellAsset.assetId,
73
- minAmountCryptoBaseUnit: cause.response?.data.errors.minimalAmountNative[0],
74
+ minAmountCryptoBaseUnit: cause.response?.data?.errors?.minimalAmountNative?.[0],
74
75
  }));
75
76
  }
76
77
  return Err(makeSwapErrorRight({
@@ -199,7 +200,10 @@ export const getQuoteOrRate = async (input, deps) => {
199
200
  const boostRate = getChainflipQuoteRate(singleQuoteResponse.boostQuote.ingressAmountNative, singleQuoteResponse.boostQuote.egressAmountNative);
200
201
  // This is not really a buyAmount before fees but rather an input/output calculation to get the sell amount
201
202
  // prorated to the buy asset price to determine price impact
202
- const buyAmountBeforeFeesCryptoBaseUnit = toBaseUnit(bnOrZero(singleQuoteResponse.boostQuote.ingressAmount).times(bnOrZero(singleQuoteResponse.estimatedPrice)), buyAsset.precision);
203
+ const buyAmountBeforeFeesCryptoBaseUnit = BigAmount.fromPrecision({
204
+ value: bnOrZero(singleQuoteResponse.boostQuote.ingressAmount).times(bnOrZero(singleQuoteResponse.estimatedPrice)),
205
+ precision: buyAsset.precision,
206
+ }).toBaseUnit();
203
207
  const boostTradeRateOrQuote = {
204
208
  id: uuid(),
205
209
  rate: boostRate,
@@ -236,6 +240,14 @@ export const getQuoteOrRate = async (input, deps) => {
236
240
  : undefined,
237
241
  chainflipMaxBoostFee: getMaxBoostFee(),
238
242
  },
243
+ affiliateFee: buildAffiliateFee({
244
+ strategy: 'buy_asset',
245
+ affiliateBps: commissionBps,
246
+ sellAsset,
247
+ buyAsset,
248
+ sellAmountCryptoBaseUnit: singleQuoteResponse.boostQuote.ingressAmountNative,
249
+ buyAmountCryptoBaseUnit: singleQuoteResponse.boostQuote.egressAmountNative,
250
+ }),
239
251
  },
240
252
  ],
241
253
  };
@@ -246,7 +258,10 @@ export const getQuoteOrRate = async (input, deps) => {
246
258
  : '0';
247
259
  // This is not really a buyAmount before fees but rather an input/output calculation to get the sell amount
248
260
  // prorated to the buy asset price to determine price impact
249
- const buyAmountBeforeFeesCryptoBaseUnit = toBaseUnit(bnOrZero(singleQuoteResponse.ingressAmount).times(bnOrZero(singleQuoteResponse.estimatedPrice)), buyAsset.precision);
261
+ const buyAmountBeforeFeesCryptoBaseUnit = BigAmount.fromPrecision({
262
+ value: bnOrZero(singleQuoteResponse.ingressAmount).times(bnOrZero(singleQuoteResponse.estimatedPrice)),
263
+ precision: buyAsset.precision,
264
+ }).toBaseUnit();
250
265
  const tradeRateOrQuote = {
251
266
  id: uuid(),
252
267
  rate,
@@ -284,6 +299,14 @@ export const getQuoteOrRate = async (input, deps) => {
284
299
  : undefined,
285
300
  chainflipMaxBoostFee: 0,
286
301
  },
302
+ affiliateFee: buildAffiliateFee({
303
+ strategy: 'buy_asset',
304
+ affiliateBps: commissionBps,
305
+ sellAsset,
306
+ buyAsset,
307
+ sellAmountCryptoBaseUnit: singleQuoteResponse.ingressAmountNative ?? '0',
308
+ buyAmountCryptoBaseUnit: singleQuoteResponse.egressAmountNative ?? '0',
309
+ }),
287
310
  },
288
311
  ],
289
312
  };
@@ -1,5 +1,5 @@
1
1
  import { fromAssetId } from '@shapeshiftoss/caip';
2
- import { bn, bnOrZero, fromBaseUnit, isToken } from '@shapeshiftoss/utils';
2
+ import { BigAmount, bn, bnOrZero, isToken } from '@shapeshiftoss/utils';
3
3
  import { Err, Ok } from '@sniptt/monads';
4
4
  import { TradeQuoteError } from '../../../types.js';
5
5
  import { makeSwapErrorRight } from '../../../utils.js';
@@ -15,8 +15,14 @@ export const isSupportedAssetId = (chainId, assetId) => {
15
15
  return supportedAssetIds.includes(assetId);
16
16
  };
17
17
  export const calculateChainflipMinPrice = ({ sellAmountIncludingProtocolFeesCryptoBaseUnit, buyAmountAfterFeesCryptoBaseUnit, slippageTolerancePercentageDecimal, sellAsset, buyAsset, }) => {
18
- const sellAmountCryptoPrecision = fromBaseUnit(sellAmountIncludingProtocolFeesCryptoBaseUnit, sellAsset.precision);
19
- const buyAmountCryptoPrecision = fromBaseUnit(buyAmountAfterFeesCryptoBaseUnit, buyAsset.precision);
18
+ const sellAmountCryptoPrecision = BigAmount.fromBaseUnit({
19
+ value: sellAmountIncludingProtocolFeesCryptoBaseUnit,
20
+ precision: sellAsset.precision,
21
+ }).toPrecision();
22
+ const buyAmountCryptoPrecision = BigAmount.fromBaseUnit({
23
+ value: buyAmountAfterFeesCryptoBaseUnit,
24
+ precision: buyAsset.precision,
25
+ }).toPrecision();
20
26
  const estimatedPrice = bn(buyAmountCryptoPrecision).div(sellAmountCryptoPrecision);
21
27
  // This is called minimumPrice upstream but this really is a rate, let's not honour confusing terminology
22
28
  const minimumRate = estimatedPrice
@@ -9,7 +9,7 @@ export const cowSwapper = {
9
9
  throw Error('Missing appDataHash');
10
10
  const signature = await signCowOrder(orderToSign, chainId, signMessage);
11
11
  const network = assertGetCowNetwork(chainId);
12
- const maybeOrdersResponse = await cowService.post(`${config.VITE_COWSWAP_BASE_URL}/${network}/api/v1/orders/`, {
12
+ const maybeOrdersResponse = await cowService.post(`${config.VITE_COWSWAP_BASE_URL}/${network}/api/v1/orders`, {
13
13
  ...orderToSign,
14
14
  signingScheme: SigningScheme.EIP712,
15
15
  signature,
@@ -8,6 +8,7 @@ import { getAffiliateAppDataFragmentByChainId, getCowNetwork, getFullAppData, }
8
8
  import { COW_SWAP_NATIVE_ASSET_MARKER_ADDRESS, COW_SWAP_VAULT_RELAYER_ADDRESS, SUPPORTED_CHAIN_IDS, } from '../../../cowswap-utils/constants.js';
9
9
  import { SwapperName, TradeQuoteError } from '../../../types.js';
10
10
  import { createTradeAmountTooSmallErr, getInputOutputRate, makeSwapErrorRight, } from '../../../utils.js';
11
+ import { buildAffiliateFee } from '../../utils/affiliateFee.js';
11
12
  import { isNativeEvmAsset } from '../../utils/helpers/helpers.js';
12
13
  import { cowService } from '../utils/cowService.js';
13
14
  import { assertValidTrade, getNowPlusThirtyMinutesTimestamp, getValuesFromQuoteResponse, } from '../utils/helpers/helpers.js';
@@ -39,7 +40,7 @@ export async function getCowSwapTradeQuote(input, config) {
39
40
  });
40
41
  const { appData, appDataHash } = await getFullAppData(slippageTolerancePercentageDecimal, affiliateAppDataFragment, 'market');
41
42
  // https://api.cow.fi/docs/#/default/post_api_v1_quote
42
- const maybeQuoteResponse = await cowService.post(`${config.VITE_COWSWAP_BASE_URL}/${network}/api/v1/quote/`, {
43
+ const maybeQuoteResponse = await cowService.post(`${config.VITE_COWSWAP_BASE_URL}/${network}/api/v1/quote`, {
43
44
  sellToken: fromAssetId(sellAsset.assetId).assetReference,
44
45
  buyToken,
45
46
  receiver: receiveAddress,
@@ -113,6 +114,15 @@ export async function getCowSwapTradeQuote(input, config) {
113
114
  buyAmountBeforeFeesCryptoBaseUnit,
114
115
  buyAmountAfterFeesCryptoBaseUnit,
115
116
  source: SwapperName.CowSwap,
117
+ affiliateFee: buildAffiliateFee({
118
+ strategy: 'buy_asset',
119
+ affiliateBps,
120
+ sellAsset,
121
+ buyAsset,
122
+ sellAmountCryptoBaseUnit: sellAmountIncludingProtocolFeesCryptoBaseUnit,
123
+ buyAmountCryptoBaseUnit: buyAmountAfterFeesCryptoBaseUnit,
124
+ isEstimate: true,
125
+ }),
116
126
  buyAsset,
117
127
  sellAsset,
118
128
  accountNumber,
@@ -383,7 +383,7 @@ describe('getCowSwapTradeQuote', () => {
383
383
  const maybeTradeQuote = await getCowSwapTradeQuote(input, MOCK_COWSWAP_CONFIG);
384
384
  expect(maybeTradeQuote.isOk()).toBe(true);
385
385
  expect(maybeTradeQuote.unwrap()).toEqual(expectedTradeQuoteWethToFox);
386
- expect(cowService.post).toHaveBeenCalledWith('https://api.cow.fi/mainnet/api/v1/quote/', expectedApiInputWethToFox);
386
+ expect(cowService.post).toHaveBeenCalledWith('https://api.cow.fi/mainnet/api/v1/quote', expectedApiInputWethToFox);
387
387
  });
388
388
  it('should call cowService with correct parameters, handle the fees and return the correct trade quote when buying ETH', async () => {
389
389
  const input = {
@@ -416,7 +416,7 @@ describe('getCowSwapTradeQuote', () => {
416
416
  const maybeTradeQuote = await getCowSwapTradeQuote(input, MOCK_COWSWAP_CONFIG);
417
417
  expect(maybeTradeQuote.isOk()).toBe(true);
418
418
  expect(maybeTradeQuote.unwrap()).toEqual(expectedTradeQuoteFoxToEth);
419
- expect(cowService.post).toHaveBeenCalledWith('https://api.cow.fi/mainnet/api/v1/quote/', expectedApiInputFoxToEth);
419
+ expect(cowService.post).toHaveBeenCalledWith('https://api.cow.fi/mainnet/api/v1/quote', expectedApiInputFoxToEth);
420
420
  });
421
421
  it('should call cowService with correct parameters, handle the fees and return the correct trade quote when buying XDAI', async () => {
422
422
  const input = {
@@ -449,7 +449,7 @@ describe('getCowSwapTradeQuote', () => {
449
449
  const maybeTradeQuote = await getCowSwapTradeQuote(input, MOCK_COWSWAP_CONFIG);
450
450
  expect(maybeTradeQuote.isOk()).toBe(true);
451
451
  expect(maybeTradeQuote.unwrap()).toEqual(expectedTradeQuoteUsdcToXdai);
452
- expect(cowService.post).toHaveBeenCalledWith('https://api.cow.fi/xdai/api/v1/quote/', expectedApiInputUsdcGnosisToXdai);
452
+ expect(cowService.post).toHaveBeenCalledWith('https://api.cow.fi/xdai/api/v1/quote', expectedApiInputUsdcGnosisToXdai);
453
453
  });
454
454
  it('should call cowService with correct parameters, handle the fees and return the correct trade quote when buying ETH on Arbitrum', async () => {
455
455
  const input = {
@@ -482,7 +482,7 @@ describe('getCowSwapTradeQuote', () => {
482
482
  const maybeTradeQuote = await getCowSwapTradeQuote(input, MOCK_COWSWAP_CONFIG);
483
483
  expect(maybeTradeQuote.isOk()).toBe(true);
484
484
  expect(maybeTradeQuote.unwrap()).toEqual(expectedTradeQuoteUsdcToEthArbitrum);
485
- expect(cowService.post).toHaveBeenCalledWith('https://api.cow.fi/arbitrum_one/api/v1/quote/', expectedApiInputUsdcToEthArbitrum);
485
+ expect(cowService.post).toHaveBeenCalledWith('https://api.cow.fi/arbitrum_one/api/v1/quote', expectedApiInputUsdcToEthArbitrum);
486
486
  });
487
487
  it('should call cowService with correct parameters and return quote with original sellAmount when selling a very small amount of WETH', async () => {
488
488
  const input = {
@@ -515,6 +515,6 @@ describe('getCowSwapTradeQuote', () => {
515
515
  const maybeTradeQuote = await getCowSwapTradeQuote(input, MOCK_COWSWAP_CONFIG);
516
516
  expect(maybeTradeQuote.isErr()).toBe(false);
517
517
  expect(maybeTradeQuote.unwrap()).toEqual(expectedTradeQuoteSmallAmountWethToFox);
518
- expect(cowService.post).toHaveBeenCalledWith('https://api.cow.fi/mainnet/api/v1/quote/', expectedApiInputSmallAmountWethToFox);
518
+ expect(cowService.post).toHaveBeenCalledWith('https://api.cow.fi/mainnet/api/v1/quote', expectedApiInputSmallAmountWethToFox);
519
519
  });
520
520
  });
@@ -8,6 +8,7 @@ import { getAffiliateAppDataFragmentByChainId, getCowNetwork, getFullAppData, }
8
8
  import { COW_SWAP_NATIVE_ASSET_MARKER_ADDRESS, COW_SWAP_VAULT_RELAYER_ADDRESS, SUPPORTED_CHAIN_IDS, } from '../../../cowswap-utils/constants.js';
9
9
  import { SwapperName, TradeQuoteError } from '../../../types.js';
10
10
  import { createTradeAmountTooSmallErr, getInputOutputRate, makeSwapErrorRight, } from '../../../utils.js';
11
+ import { buildAffiliateFee } from '../../utils/affiliateFee.js';
11
12
  import { isNativeEvmAsset } from '../../utils/helpers/helpers.js';
12
13
  import { cowService } from '../utils/cowService.js';
13
14
  import { assertValidTrade, getNowPlusThirtyMinutesTimestamp, getValuesFromQuoteResponse, } from '../utils/helpers/helpers.js';
@@ -39,7 +40,7 @@ export async function getCowSwapTradeRate(input, config) {
39
40
  });
40
41
  const { appData, appDataHash } = await getFullAppData(slippageTolerancePercentageDecimal, affiliateAppDataFragment, 'market');
41
42
  // https://api.cow.fi/docs/#/default/post_api_v1_quote
42
- const maybeQuoteResponse = await cowService.post(`${config.VITE_COWSWAP_BASE_URL}/${network}/api/v1/quote/`, {
43
+ const maybeQuoteResponse = await cowService.post(`${config.VITE_COWSWAP_BASE_URL}/${network}/api/v1/quote`, {
43
44
  sellToken: fromAssetId(sellAsset.assetId).assetReference,
44
45
  buyToken,
45
46
  receiver: receiveAddress,
@@ -113,6 +114,14 @@ export async function getCowSwapTradeRate(input, config) {
113
114
  buyAmountBeforeFeesCryptoBaseUnit,
114
115
  buyAmountAfterFeesCryptoBaseUnit,
115
116
  source: SwapperName.CowSwap,
117
+ affiliateFee: buildAffiliateFee({
118
+ strategy: 'buy_asset',
119
+ affiliateBps,
120
+ sellAsset,
121
+ buyAsset,
122
+ sellAmountCryptoBaseUnit: sellAmountIncludingProtocolFeesCryptoBaseUnit,
123
+ buyAmountCryptoBaseUnit: buyAmountAfterFeesCryptoBaseUnit,
124
+ }),
116
125
  buyAsset,
117
126
  sellAsset,
118
127
  accountNumber,
@@ -1,5 +1,5 @@
1
1
  import { fromAssetId } from '@shapeshiftoss/caip';
2
- import { bn, bnOrZero, convertBasisPointsToDecimalPercentage, convertPrecision, fromBaseUnit, } from '@shapeshiftoss/utils';
2
+ import { BigAmount, bn, bnOrZero, convertBasisPointsToDecimalPercentage, convertPrecision, } from '@shapeshiftoss/utils';
3
3
  import { Err, Ok } from '@sniptt/monads';
4
4
  import { TradeQuoteError } from '../../../../types.js';
5
5
  import { makeSwapErrorRight } from '../../../../utils.js';
@@ -56,8 +56,14 @@ export const getValuesFromQuoteResponse = ({ buyAsset, sellAsset, response, affi
56
56
  amount: buyAmountAfterAffiliateFeesCryptoBaseUnit,
57
57
  slippageTolerancePercentageDecimal,
58
58
  });
59
- const buyAmountAfterAffiliateFeesCryptoPrecision = fromBaseUnit(buyAmountAfterAffiliateFeesCryptoBaseUnit, buyAsset.precision);
60
- const sellAmountCryptoPrecision = fromBaseUnit(sellAmountAfterFeesCryptoBaseUnit, sellAsset.precision);
59
+ const buyAmountAfterAffiliateFeesCryptoPrecision = BigAmount.fromBaseUnit({
60
+ value: buyAmountAfterAffiliateFeesCryptoBaseUnit,
61
+ precision: buyAsset.precision,
62
+ }).toPrecision();
63
+ const sellAmountCryptoPrecision = BigAmount.fromBaseUnit({
64
+ value: sellAmountAfterFeesCryptoBaseUnit,
65
+ precision: sellAsset.precision,
66
+ }).toPrecision();
61
67
  const rate = bnOrZero(buyAmountAfterAffiliateFeesCryptoPrecision)
62
68
  .div(sellAmountCryptoPrecision)
63
69
  .toString();
@@ -0,0 +1,2 @@
1
+ import type { Swapper } from '../../types.js';
2
+ export declare const debridgeSwapper: Swapper;
@@ -0,0 +1,4 @@
1
+ import { executeEvmTransaction } from '../../utils.js';
2
+ export const debridgeSwapper = {
3
+ executeEvmTransaction,
4
+ };
@@ -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,30 @@
1
+ import { arbitrumChainId, avalancheChainId, baseChainId, berachainChainId, bobChainId, bscChainId, cronosChainId, ethChainId, flowEvmChainId, gnosisChainId, hyperEvmChainId, lineaChainId, mantleChainId, megaethChainId, monadChainId, optimismChainId, plasmaChainId, polygonChainId, seiChainId, sonicChainId, storyChainId, } from '@shapeshiftoss/caip';
2
+ import invert from 'lodash/invert';
3
+ import { zeroAddress } from 'viem';
4
+ export const chainIdToDebridgeChainId = {
5
+ [ethChainId]: 1,
6
+ [optimismChainId]: 10,
7
+ [bscChainId]: 56,
8
+ [gnosisChainId]: 100000002,
9
+ [polygonChainId]: 137,
10
+ [monadChainId]: 100000030,
11
+ [hyperEvmChainId]: 100000022,
12
+ [seiChainId]: 100000027,
13
+ [baseChainId]: 8453,
14
+ [plasmaChainId]: 100000028,
15
+ [arbitrumChainId]: 42161,
16
+ [avalancheChainId]: 43114,
17
+ [mantleChainId]: 100000023,
18
+ [cronosChainId]: 100000019,
19
+ [berachainChainId]: 100000020,
20
+ [lineaChainId]: 59144,
21
+ [bobChainId]: 100000021,
22
+ [sonicChainId]: 100000014,
23
+ [storyChainId]: 100000013,
24
+ [flowEvmChainId]: 100000009,
25
+ [megaethChainId]: 100000031,
26
+ };
27
+ export const debridgeChainIdToChainId = invert(chainIdToDebridgeChainId);
28
+ export const DEBRIDGE_SUPPORTED_CHAIN_IDS = Object.keys(chainIdToDebridgeChainId);
29
+ export const DEFAULT_DEBRIDGE_TOKEN_ADDRESS = zeroAddress;
30
+ export const DEFAULT_DEBRIDGE_USER_ADDRESS = '0x000000000000000000000000000000000000dead';
@@ -0,0 +1,2 @@
1
+ import type { SwapperApi } from '../../types.js';
2
+ export declare const debridgeApi: SwapperApi;