@shapeshiftoss/swapper 17.6.9 → 17.6.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) hide show
  1. package/LICENSE.md +21 -0
  2. package/dist/cjs/.tsbuildinfo +1 -1
  3. package/dist/cjs/constants.js +72 -43
  4. package/dist/cjs/cowswap-utils/constants.js +3 -0
  5. package/dist/cjs/cowswap-utils/index.js +6 -0
  6. package/dist/cjs/index.d.ts +1 -0
  7. package/dist/cjs/index.js +1 -0
  8. package/dist/cjs/swappers/AcrossSwapper/AcrossSwapper.d.ts +2 -0
  9. package/dist/cjs/swappers/AcrossSwapper/AcrossSwapper.js +8 -0
  10. package/dist/cjs/swappers/AcrossSwapper/constant.d.ts +9 -0
  11. package/dist/cjs/swappers/AcrossSwapper/constant.js +50 -0
  12. package/dist/cjs/swappers/AcrossSwapper/endpoints.d.ts +2 -0
  13. package/dist/cjs/swappers/AcrossSwapper/endpoints.js +113 -0
  14. package/dist/cjs/swappers/AcrossSwapper/getTradeQuote/getTradeQuote.d.ts +3 -0
  15. package/dist/cjs/swappers/AcrossSwapper/getTradeQuote/getTradeQuote.js +31 -0
  16. package/dist/cjs/swappers/AcrossSwapper/getTradeRate/getTradeRate.d.ts +3 -0
  17. package/dist/cjs/swappers/AcrossSwapper/getTradeRate/getTradeRate.js +19 -0
  18. package/dist/cjs/swappers/AcrossSwapper/index.d.ts +1 -0
  19. package/dist/cjs/swappers/AcrossSwapper/index.js +5 -0
  20. package/dist/cjs/swappers/AcrossSwapper/utils/acrossService.d.ts +5 -0
  21. package/dist/cjs/swappers/AcrossSwapper/utils/acrossService.js +17 -0
  22. package/dist/cjs/swappers/AcrossSwapper/utils/fetchAcrossTrade.d.ts +19 -0
  23. package/dist/cjs/swappers/AcrossSwapper/utils/fetchAcrossTrade.js +27 -0
  24. package/dist/cjs/swappers/AcrossSwapper/utils/getTrade.d.ts +11 -0
  25. package/dist/cjs/swappers/AcrossSwapper/utils/getTrade.js +349 -0
  26. package/dist/cjs/swappers/AcrossSwapper/utils/types.d.ts +177 -0
  27. package/dist/cjs/swappers/AcrossSwapper/utils/types.js +17 -0
  28. package/dist/cjs/swappers/AvnuSwapper/endpoints.js +42 -14
  29. package/dist/cjs/swappers/AvnuSwapper/swapperApi/getTradeQuote.js +19 -5
  30. package/dist/cjs/swappers/AvnuSwapper/swapperApi/getTradeRate.js +17 -4
  31. package/dist/cjs/swappers/BebopSwapper/BebopSwapper.js +2 -0
  32. package/dist/cjs/swappers/BebopSwapper/endpoints.js +35 -2
  33. package/dist/cjs/swappers/BebopSwapper/executeSolanaMessage.d.ts +2 -0
  34. package/dist/cjs/swappers/BebopSwapper/executeSolanaMessage.js +47 -0
  35. package/dist/cjs/swappers/BebopSwapper/getBebopSolanaTradeQuote/getBebopSolanaTradeQuote.d.ts +4 -0
  36. package/dist/cjs/swappers/BebopSwapper/getBebopSolanaTradeQuote/getBebopSolanaTradeQuote.js +91 -0
  37. package/dist/cjs/swappers/BebopSwapper/getBebopSolanaTradeRate/getBebopSolanaTradeRate.d.ts +4 -0
  38. package/dist/cjs/swappers/BebopSwapper/getBebopSolanaTradeRate/getBebopSolanaTradeRate.js +88 -0
  39. package/dist/cjs/swappers/BebopSwapper/getBebopTradeQuote/getBebopTradeQuote.js +10 -0
  40. package/dist/cjs/swappers/BebopSwapper/getBebopTradeRate/getBebopTradeRate.js +10 -0
  41. package/dist/cjs/swappers/BebopSwapper/types.d.ts +49 -1
  42. package/dist/cjs/swappers/BebopSwapper/types.js +9 -2
  43. package/dist/cjs/swappers/BebopSwapper/utils/fetchFromBebop.d.ts +19 -1
  44. package/dist/cjs/swappers/BebopSwapper/utils/fetchFromBebop.js +86 -1
  45. package/dist/cjs/swappers/BebopSwapper/utils/helpers/helpers.d.ts +14 -2
  46. package/dist/cjs/swappers/BebopSwapper/utils/helpers/helpers.js +47 -1
  47. package/dist/cjs/swappers/ButterSwap/ButterSwap.js +1 -0
  48. package/dist/cjs/swappers/ButterSwap/endpoints.js +56 -0
  49. package/dist/cjs/swappers/ButterSwap/swapperApi/checkTradeStatus.js +19 -0
  50. package/dist/cjs/swappers/ButterSwap/swapperApi/getTradeQuote.js +44 -15
  51. package/dist/cjs/swappers/ButterSwap/swapperApi/getTradeQuote.test.js +1 -0
  52. package/dist/cjs/swappers/ButterSwap/swapperApi/getTradeRate.js +33 -16
  53. package/dist/cjs/swappers/ButterSwap/swapperApi/getTradeRate.test.js +2 -0
  54. package/dist/cjs/swappers/ButterSwap/types.d.ts +1 -0
  55. package/dist/cjs/swappers/ButterSwap/utils/helpers.js +1 -0
  56. package/dist/cjs/swappers/ButterSwap/xhr.d.ts +2 -2
  57. package/dist/cjs/swappers/ButterSwap/xhr.js +7 -2
  58. package/dist/cjs/swappers/CetusSwapper/endpoints.js +3 -8
  59. package/dist/cjs/swappers/CetusSwapper/swapperApi/getTradeQuote.js +11 -1
  60. package/dist/cjs/swappers/CetusSwapper/swapperApi/getTradeRate.js +11 -1
  61. package/dist/cjs/swappers/CetusSwapper/utils/helpers.d.ts +1 -1
  62. package/dist/cjs/swappers/CetusSwapper/utils/helpers.js +1 -1
  63. package/dist/cjs/swappers/ChainflipSwapper/constants.js +7 -3
  64. package/dist/cjs/swappers/ChainflipSwapper/utils/getQuoteOrRate.js +28 -5
  65. package/dist/cjs/swappers/ChainflipSwapper/utils/helpers.js +8 -2
  66. package/dist/cjs/swappers/CowSwapper/CowSwapper.js +1 -1
  67. package/dist/cjs/swappers/CowSwapper/getCowSwapTradeQuote/getCowSwapTradeQuote.js +11 -1
  68. package/dist/cjs/swappers/CowSwapper/getCowSwapTradeQuote/getCowSwapTradeQuote.test.js +5 -5
  69. package/dist/cjs/swappers/CowSwapper/getCowSwapTradeRate/getCowSwapTradeRate.js +10 -1
  70. package/dist/cjs/swappers/CowSwapper/utils/helpers/helpers.js +8 -2
  71. package/dist/cjs/swappers/DebridgeSwapper/DebridgeSwapper.d.ts +2 -0
  72. package/dist/cjs/swappers/DebridgeSwapper/DebridgeSwapper.js +7 -0
  73. package/dist/cjs/swappers/DebridgeSwapper/constant.d.ts +5 -0
  74. package/dist/cjs/swappers/DebridgeSwapper/constant.js +36 -0
  75. package/dist/cjs/swappers/DebridgeSwapper/endpoints.d.ts +2 -0
  76. package/dist/cjs/swappers/DebridgeSwapper/endpoints.js +217 -0
  77. package/dist/cjs/swappers/DebridgeSwapper/getTradeQuote/getTradeQuote.d.ts +3 -0
  78. package/dist/cjs/swappers/DebridgeSwapper/getTradeQuote/getTradeQuote.js +31 -0
  79. package/dist/cjs/swappers/DebridgeSwapper/getTradeRate/getTradeRate.d.ts +3 -0
  80. package/dist/cjs/swappers/DebridgeSwapper/getTradeRate/getTradeRate.js +19 -0
  81. package/dist/cjs/swappers/DebridgeSwapper/index.d.ts +1 -0
  82. package/dist/cjs/swappers/DebridgeSwapper/index.js +5 -0
  83. package/dist/cjs/swappers/DebridgeSwapper/utils/debridgeService.d.ts +5 -0
  84. package/dist/cjs/swappers/DebridgeSwapper/utils/debridgeService.js +17 -0
  85. package/dist/cjs/swappers/DebridgeSwapper/utils/fetchDebridgeSingleChainTrade.d.ts +16 -0
  86. package/dist/cjs/swappers/DebridgeSwapper/utils/fetchDebridgeSingleChainTrade.js +23 -0
  87. package/dist/cjs/swappers/DebridgeSwapper/utils/fetchDebridgeTrade.d.ts +20 -0
  88. package/dist/cjs/swappers/DebridgeSwapper/utils/fetchDebridgeTrade.js +29 -0
  89. package/dist/cjs/swappers/DebridgeSwapper/utils/getTrade.d.ts +11 -0
  90. package/dist/cjs/swappers/DebridgeSwapper/utils/getTrade.js +369 -0
  91. package/dist/cjs/swappers/DebridgeSwapper/utils/types.d.ts +155 -0
  92. package/dist/cjs/swappers/DebridgeSwapper/utils/types.js +9 -0
  93. package/dist/cjs/swappers/JupiterSwapper/swapperApi/getTradeQuote.js +32 -0
  94. package/dist/cjs/swappers/JupiterSwapper/swapperApi/getTradeRate.js +9 -0
  95. package/dist/cjs/swappers/MayachainSwapper/utils/poolAssetHelpers/poolAssetHelpers.js +1 -1
  96. package/dist/cjs/swappers/NearIntentsSwapper/NearIntentsSwapper.js +1 -0
  97. package/dist/cjs/swappers/NearIntentsSwapper/endpoints.js +31 -0
  98. package/dist/cjs/swappers/NearIntentsSwapper/swapperApi/getTradeQuote.js +48 -1
  99. package/dist/cjs/swappers/NearIntentsSwapper/swapperApi/getTradeRate.js +73 -1
  100. package/dist/cjs/swappers/NearIntentsSwapper/types.d.ts +1 -1
  101. package/dist/cjs/swappers/NearIntentsSwapper/types.js +6 -0
  102. package/dist/cjs/swappers/NearIntentsSwapper/utils/helpers/helpers.js +23 -4
  103. package/dist/cjs/swappers/PortalsSwapper/getPortalsTradeQuote/getPortalsTradeQuote.js +10 -0
  104. package/dist/cjs/swappers/PortalsSwapper/getPortalsTradeRate/getPortalsTradeRate.js +8 -3
  105. package/dist/cjs/swappers/RelaySwapper/constant.js +27 -1
  106. package/dist/cjs/swappers/RelaySwapper/utils/getRelayDefaultUserAddress.d.ts +1 -1
  107. package/dist/cjs/swappers/RelaySwapper/utils/getTrade.js +57 -7
  108. package/dist/cjs/swappers/RelaySwapper/utils/relayTokenToAssetId.js +110 -0
  109. package/dist/cjs/swappers/RelaySwapper/utils/types.d.ts +15 -0
  110. package/dist/cjs/swappers/StonfiSwapper/StonfiSwapper.d.ts +2 -0
  111. package/dist/cjs/swappers/StonfiSwapper/StonfiSwapper.js +8 -0
  112. package/dist/cjs/swappers/StonfiSwapper/endpoints.d.ts +2 -0
  113. package/dist/cjs/swappers/StonfiSwapper/endpoints.js +227 -0
  114. package/dist/cjs/swappers/StonfiSwapper/index.d.ts +4 -0
  115. package/dist/cjs/swappers/StonfiSwapper/index.js +25 -0
  116. package/dist/cjs/swappers/StonfiSwapper/swapperApi/getTradeQuote.d.ts +2 -0
  117. package/dist/cjs/swappers/StonfiSwapper/swapperApi/getTradeQuote.js +129 -0
  118. package/dist/cjs/swappers/StonfiSwapper/swapperApi/getTradeRate.d.ts +2 -0
  119. package/dist/cjs/swappers/StonfiSwapper/swapperApi/getTradeRate.js +115 -0
  120. package/dist/cjs/swappers/StonfiSwapper/types.d.ts +60 -0
  121. package/dist/cjs/swappers/StonfiSwapper/types.js +5 -0
  122. package/dist/cjs/swappers/StonfiSwapper/utils/constants.d.ts +5 -0
  123. package/dist/cjs/swappers/StonfiSwapper/utils/constants.js +8 -0
  124. package/dist/cjs/swappers/StonfiSwapper/utils/helpers.d.ts +11 -0
  125. package/dist/cjs/swappers/StonfiSwapper/utils/helpers.js +135 -0
  126. package/dist/cjs/swappers/StonfiSwapper/utils/omnistonManager.d.ts +5 -0
  127. package/dist/cjs/swappers/StonfiSwapper/utils/omnistonManager.js +20 -0
  128. package/dist/cjs/swappers/SunioSwapper/endpoints.js +1 -1
  129. package/dist/cjs/swappers/SunioSwapper/utils/getQuoteOrRate.js +14 -3
  130. package/dist/cjs/swappers/ThorchainSwapper/ThorchainSwapper.js +3 -0
  131. package/dist/cjs/swappers/ThorchainSwapper/endpoints.js +2 -0
  132. package/dist/cjs/swappers/ThorchainSwapper/generated/generatedTradableAssetMap.json +1 -0
  133. package/dist/cjs/swappers/ThorchainSwapper/utils/poolAssetHelpers/poolAssetHelpers.d.ts +1 -1
  134. package/dist/cjs/swappers/ThorchainSwapper/utils/poolAssetHelpers/poolAssetHelpers.js +2 -1
  135. package/dist/cjs/swappers/ThorchainSwapper/utils/poolAssetHelpers/poolAssetHelpers.test.js +10 -0
  136. package/dist/cjs/swappers/ZrxSwapper/getZrxTradeQuote/getZrxTradeQuote.js +9 -0
  137. package/dist/cjs/swappers/ZrxSwapper/getZrxTradeRate/getZrxTradeRate.js +9 -0
  138. package/dist/cjs/swappers/ZrxSwapper/utils/helpers/helpers.d.ts +1 -1
  139. package/dist/cjs/swappers/utils/affiliateFee.d.ts +17 -0
  140. package/dist/cjs/swappers/utils/affiliateFee.js +43 -0
  141. package/dist/cjs/swappers/utils/filterBuyAssetsBySellAssetId/filterBuyAssetsBySellAssetId.js +2 -5
  142. package/dist/cjs/swappers/utils/helpers/helpers.js +3 -0
  143. package/dist/cjs/thorchain-utils/getCallDataFromQuote.d.ts +1 -1
  144. package/dist/cjs/thorchain-utils/getL1RateOrQuote.js +87 -9
  145. package/dist/cjs/thorchain-utils/getQuote.js +8 -2
  146. package/dist/cjs/thorchain-utils/index.d.ts +2 -1
  147. package/dist/cjs/thorchain-utils/index.js +2 -1
  148. package/dist/cjs/thorchain-utils/solana/constants.d.ts +1 -0
  149. package/dist/cjs/thorchain-utils/solana/constants.js +6 -0
  150. package/dist/cjs/thorchain-utils/solana/getSolanaTransactionFees.d.ts +2 -0
  151. package/dist/cjs/thorchain-utils/solana/getSolanaTransactionFees.js +41 -0
  152. package/dist/cjs/thorchain-utils/solana/getThorTxData.d.ts +12 -0
  153. package/dist/cjs/thorchain-utils/solana/getThorTxData.js +14 -0
  154. package/dist/cjs/thorchain-utils/solana/getUnsignedSolanaTransaction.d.ts +3 -0
  155. package/dist/cjs/thorchain-utils/solana/getUnsignedSolanaTransaction.js +64 -0
  156. package/dist/cjs/thorchain-utils/solana/index.d.ts +3 -0
  157. package/dist/cjs/thorchain-utils/solana/index.js +19 -0
  158. package/dist/cjs/tron-utils/getUnsignedTronTransaction.js +22 -2
  159. package/dist/cjs/types.d.ts +118 -8
  160. package/dist/cjs/types.js +3 -0
  161. package/dist/cjs/utils.d.ts +4 -3
  162. package/dist/cjs/utils.js +35 -7
  163. package/dist/esm/.tsbuildinfo +1 -1
  164. package/dist/esm/constants.js +42 -13
  165. package/dist/esm/cowswap-utils/constants.js +3 -0
  166. package/dist/esm/cowswap-utils/index.js +6 -0
  167. package/dist/esm/index.d.ts +1 -0
  168. package/dist/esm/index.js +1 -0
  169. package/dist/esm/swappers/AcrossSwapper/AcrossSwapper.d.ts +2 -0
  170. package/dist/esm/swappers/AcrossSwapper/AcrossSwapper.js +5 -0
  171. package/dist/esm/swappers/AcrossSwapper/constant.d.ts +9 -0
  172. package/dist/esm/swappers/AcrossSwapper/constant.js +44 -0
  173. package/dist/esm/swappers/AcrossSwapper/endpoints.d.ts +2 -0
  174. package/dist/esm/swappers/AcrossSwapper/endpoints.js +107 -0
  175. package/dist/esm/swappers/AcrossSwapper/getTradeQuote/getTradeQuote.d.ts +3 -0
  176. package/dist/esm/swappers/AcrossSwapper/getTradeQuote/getTradeQuote.js +27 -0
  177. package/dist/esm/swappers/AcrossSwapper/getTradeRate/getTradeRate.d.ts +3 -0
  178. package/dist/esm/swappers/AcrossSwapper/getTradeRate/getTradeRate.js +15 -0
  179. package/dist/esm/swappers/AcrossSwapper/index.d.ts +1 -0
  180. package/dist/esm/swappers/AcrossSwapper/index.js +1 -0
  181. package/dist/esm/swappers/AcrossSwapper/utils/acrossService.d.ts +5 -0
  182. package/dist/esm/swappers/AcrossSwapper/utils/acrossService.js +11 -0
  183. package/dist/esm/swappers/AcrossSwapper/utils/fetchAcrossTrade.d.ts +19 -0
  184. package/dist/esm/swappers/AcrossSwapper/utils/fetchAcrossTrade.js +23 -0
  185. package/dist/esm/swappers/AcrossSwapper/utils/getTrade.d.ts +11 -0
  186. package/dist/esm/swappers/AcrossSwapper/utils/getTrade.js +342 -0
  187. package/dist/esm/swappers/AcrossSwapper/utils/types.d.ts +177 -0
  188. package/dist/esm/swappers/AcrossSwapper/utils/types.js +13 -0
  189. package/dist/esm/swappers/AvnuSwapper/endpoints.js +43 -15
  190. package/dist/esm/swappers/AvnuSwapper/swapperApi/getTradeQuote.js +19 -5
  191. package/dist/esm/swappers/AvnuSwapper/swapperApi/getTradeRate.js +17 -4
  192. package/dist/esm/swappers/BebopSwapper/BebopSwapper.js +2 -0
  193. package/dist/esm/swappers/BebopSwapper/endpoints.js +36 -3
  194. package/dist/esm/swappers/BebopSwapper/executeSolanaMessage.d.ts +2 -0
  195. package/dist/esm/swappers/BebopSwapper/executeSolanaMessage.js +40 -0
  196. package/dist/esm/swappers/BebopSwapper/getBebopSolanaTradeQuote/getBebopSolanaTradeQuote.d.ts +4 -0
  197. package/dist/esm/swappers/BebopSwapper/getBebopSolanaTradeQuote/getBebopSolanaTradeQuote.js +87 -0
  198. package/dist/esm/swappers/BebopSwapper/getBebopSolanaTradeRate/getBebopSolanaTradeRate.d.ts +4 -0
  199. package/dist/esm/swappers/BebopSwapper/getBebopSolanaTradeRate/getBebopSolanaTradeRate.js +84 -0
  200. package/dist/esm/swappers/BebopSwapper/getBebopTradeQuote/getBebopTradeQuote.js +10 -0
  201. package/dist/esm/swappers/BebopSwapper/getBebopTradeRate/getBebopTradeRate.js +10 -0
  202. package/dist/esm/swappers/BebopSwapper/types.d.ts +49 -1
  203. package/dist/esm/swappers/BebopSwapper/types.js +8 -1
  204. package/dist/esm/swappers/BebopSwapper/utils/fetchFromBebop.d.ts +19 -1
  205. package/dist/esm/swappers/BebopSwapper/utils/fetchFromBebop.js +85 -2
  206. package/dist/esm/swappers/BebopSwapper/utils/helpers/helpers.d.ts +14 -2
  207. package/dist/esm/swappers/BebopSwapper/utils/helpers/helpers.js +44 -1
  208. package/dist/esm/swappers/ButterSwap/ButterSwap.js +2 -1
  209. package/dist/esm/swappers/ButterSwap/endpoints.js +56 -0
  210. package/dist/esm/swappers/ButterSwap/swapperApi/checkTradeStatus.js +20 -1
  211. package/dist/esm/swappers/ButterSwap/swapperApi/getTradeQuote.js +46 -17
  212. package/dist/esm/swappers/ButterSwap/swapperApi/getTradeQuote.test.js +1 -0
  213. package/dist/esm/swappers/ButterSwap/swapperApi/getTradeRate.js +35 -18
  214. package/dist/esm/swappers/ButterSwap/swapperApi/getTradeRate.test.js +2 -0
  215. package/dist/esm/swappers/ButterSwap/types.d.ts +1 -0
  216. package/dist/esm/swappers/ButterSwap/utils/helpers.js +1 -0
  217. package/dist/esm/swappers/ButterSwap/xhr.d.ts +2 -2
  218. package/dist/esm/swappers/ButterSwap/xhr.js +8 -3
  219. package/dist/esm/swappers/CetusSwapper/endpoints.js +3 -8
  220. package/dist/esm/swappers/CetusSwapper/swapperApi/getTradeQuote.js +11 -1
  221. package/dist/esm/swappers/CetusSwapper/swapperApi/getTradeRate.js +11 -1
  222. package/dist/esm/swappers/CetusSwapper/utils/helpers.d.ts +1 -1
  223. package/dist/esm/swappers/CetusSwapper/utils/helpers.js +1 -1
  224. package/dist/esm/swappers/ChainflipSwapper/constants.js +8 -4
  225. package/dist/esm/swappers/ChainflipSwapper/utils/getQuoteOrRate.js +29 -6
  226. package/dist/esm/swappers/ChainflipSwapper/utils/helpers.js +9 -3
  227. package/dist/esm/swappers/CowSwapper/CowSwapper.js +1 -1
  228. package/dist/esm/swappers/CowSwapper/getCowSwapTradeQuote/getCowSwapTradeQuote.js +11 -1
  229. package/dist/esm/swappers/CowSwapper/getCowSwapTradeQuote/getCowSwapTradeQuote.test.js +5 -5
  230. package/dist/esm/swappers/CowSwapper/getCowSwapTradeRate/getCowSwapTradeRate.js +10 -1
  231. package/dist/esm/swappers/CowSwapper/utils/helpers/helpers.js +9 -3
  232. package/dist/esm/swappers/DebridgeSwapper/DebridgeSwapper.d.ts +2 -0
  233. package/dist/esm/swappers/DebridgeSwapper/DebridgeSwapper.js +4 -0
  234. package/dist/esm/swappers/DebridgeSwapper/constant.d.ts +5 -0
  235. package/dist/esm/swappers/DebridgeSwapper/constant.js +30 -0
  236. package/dist/esm/swappers/DebridgeSwapper/endpoints.d.ts +2 -0
  237. package/dist/esm/swappers/DebridgeSwapper/endpoints.js +211 -0
  238. package/dist/esm/swappers/DebridgeSwapper/getTradeQuote/getTradeQuote.d.ts +3 -0
  239. package/dist/esm/swappers/DebridgeSwapper/getTradeQuote/getTradeQuote.js +27 -0
  240. package/dist/esm/swappers/DebridgeSwapper/getTradeRate/getTradeRate.d.ts +3 -0
  241. package/dist/esm/swappers/DebridgeSwapper/getTradeRate/getTradeRate.js +15 -0
  242. package/dist/esm/swappers/DebridgeSwapper/index.d.ts +1 -0
  243. package/dist/esm/swappers/DebridgeSwapper/index.js +1 -0
  244. package/dist/esm/swappers/DebridgeSwapper/utils/debridgeService.d.ts +5 -0
  245. package/dist/esm/swappers/DebridgeSwapper/utils/debridgeService.js +11 -0
  246. package/dist/esm/swappers/DebridgeSwapper/utils/fetchDebridgeSingleChainTrade.d.ts +16 -0
  247. package/dist/esm/swappers/DebridgeSwapper/utils/fetchDebridgeSingleChainTrade.js +19 -0
  248. package/dist/esm/swappers/DebridgeSwapper/utils/fetchDebridgeTrade.d.ts +20 -0
  249. package/dist/esm/swappers/DebridgeSwapper/utils/fetchDebridgeTrade.js +25 -0
  250. package/dist/esm/swappers/DebridgeSwapper/utils/getTrade.d.ts +11 -0
  251. package/dist/esm/swappers/DebridgeSwapper/utils/getTrade.js +362 -0
  252. package/dist/esm/swappers/DebridgeSwapper/utils/types.d.ts +155 -0
  253. package/dist/esm/swappers/DebridgeSwapper/utils/types.js +5 -0
  254. package/dist/esm/swappers/JupiterSwapper/swapperApi/getTradeQuote.js +33 -1
  255. package/dist/esm/swappers/JupiterSwapper/swapperApi/getTradeRate.js +9 -0
  256. package/dist/esm/swappers/MayachainSwapper/utils/poolAssetHelpers/poolAssetHelpers.js +1 -1
  257. package/dist/esm/swappers/NearIntentsSwapper/NearIntentsSwapper.js +2 -1
  258. package/dist/esm/swappers/NearIntentsSwapper/endpoints.js +31 -0
  259. package/dist/esm/swappers/NearIntentsSwapper/swapperApi/getTradeQuote.js +50 -3
  260. package/dist/esm/swappers/NearIntentsSwapper/swapperApi/getTradeRate.js +75 -3
  261. package/dist/esm/swappers/NearIntentsSwapper/types.d.ts +1 -1
  262. package/dist/esm/swappers/NearIntentsSwapper/types.js +6 -0
  263. package/dist/esm/swappers/NearIntentsSwapper/utils/helpers/helpers.js +23 -4
  264. package/dist/esm/swappers/PortalsSwapper/getPortalsTradeQuote/getPortalsTradeQuote.js +10 -0
  265. package/dist/esm/swappers/PortalsSwapper/getPortalsTradeRate/getPortalsTradeRate.js +8 -3
  266. package/dist/esm/swappers/RelaySwapper/constant.js +29 -3
  267. package/dist/esm/swappers/RelaySwapper/utils/getRelayDefaultUserAddress.d.ts +1 -1
  268. package/dist/esm/swappers/RelaySwapper/utils/getTrade.js +60 -10
  269. package/dist/esm/swappers/RelaySwapper/utils/relayTokenToAssetId.js +110 -0
  270. package/dist/esm/swappers/RelaySwapper/utils/types.d.ts +15 -0
  271. package/dist/esm/swappers/StonfiSwapper/StonfiSwapper.d.ts +2 -0
  272. package/dist/esm/swappers/StonfiSwapper/StonfiSwapper.js +5 -0
  273. package/dist/esm/swappers/StonfiSwapper/endpoints.d.ts +2 -0
  274. package/dist/esm/swappers/StonfiSwapper/endpoints.js +224 -0
  275. package/dist/esm/swappers/StonfiSwapper/index.d.ts +4 -0
  276. package/dist/esm/swappers/StonfiSwapper/index.js +4 -0
  277. package/dist/esm/swappers/StonfiSwapper/swapperApi/getTradeQuote.d.ts +2 -0
  278. package/dist/esm/swappers/StonfiSwapper/swapperApi/getTradeQuote.js +125 -0
  279. package/dist/esm/swappers/StonfiSwapper/swapperApi/getTradeRate.d.ts +2 -0
  280. package/dist/esm/swappers/StonfiSwapper/swapperApi/getTradeRate.js +111 -0
  281. package/dist/esm/swappers/StonfiSwapper/types.d.ts +60 -0
  282. package/dist/esm/swappers/StonfiSwapper/types.js +2 -0
  283. package/dist/esm/swappers/StonfiSwapper/utils/constants.d.ts +5 -0
  284. package/dist/esm/swappers/StonfiSwapper/utils/constants.js +5 -0
  285. package/dist/esm/swappers/StonfiSwapper/utils/helpers.d.ts +11 -0
  286. package/dist/esm/swappers/StonfiSwapper/utils/helpers.js +124 -0
  287. package/dist/esm/swappers/StonfiSwapper/utils/omnistonManager.d.ts +5 -0
  288. package/dist/esm/swappers/StonfiSwapper/utils/omnistonManager.js +17 -0
  289. package/dist/esm/swappers/SunioSwapper/endpoints.js +1 -1
  290. package/dist/esm/swappers/SunioSwapper/utils/getQuoteOrRate.js +15 -4
  291. package/dist/esm/swappers/ThorchainSwapper/ThorchainSwapper.js +3 -0
  292. package/dist/esm/swappers/ThorchainSwapper/endpoints.js +3 -1
  293. package/dist/esm/swappers/ThorchainSwapper/generated/generatedTradableAssetMap.json +1 -0
  294. package/dist/esm/swappers/ThorchainSwapper/utils/poolAssetHelpers/poolAssetHelpers.d.ts +1 -1
  295. package/dist/esm/swappers/ThorchainSwapper/utils/poolAssetHelpers/poolAssetHelpers.js +2 -1
  296. package/dist/esm/swappers/ThorchainSwapper/utils/poolAssetHelpers/poolAssetHelpers.test.js +11 -1
  297. package/dist/esm/swappers/ZrxSwapper/getZrxTradeQuote/getZrxTradeQuote.js +9 -0
  298. package/dist/esm/swappers/ZrxSwapper/getZrxTradeRate/getZrxTradeRate.js +9 -0
  299. package/dist/esm/swappers/ZrxSwapper/utils/helpers/helpers.d.ts +1 -1
  300. package/dist/esm/swappers/utils/affiliateFee.d.ts +17 -0
  301. package/dist/esm/swappers/utils/affiliateFee.js +39 -0
  302. package/dist/esm/swappers/utils/filterBuyAssetsBySellAssetId/filterBuyAssetsBySellAssetId.js +2 -5
  303. package/dist/esm/swappers/utils/helpers/helpers.js +4 -1
  304. package/dist/esm/thorchain-utils/getCallDataFromQuote.d.ts +1 -1
  305. package/dist/esm/thorchain-utils/getL1RateOrQuote.js +88 -10
  306. package/dist/esm/thorchain-utils/getQuote.js +9 -3
  307. package/dist/esm/thorchain-utils/index.d.ts +2 -1
  308. package/dist/esm/thorchain-utils/index.js +1 -0
  309. package/dist/esm/thorchain-utils/solana/constants.d.ts +1 -0
  310. package/dist/esm/thorchain-utils/solana/constants.js +3 -0
  311. package/dist/esm/thorchain-utils/solana/getSolanaTransactionFees.d.ts +2 -0
  312. package/dist/esm/thorchain-utils/solana/getSolanaTransactionFees.js +37 -0
  313. package/dist/esm/thorchain-utils/solana/getThorTxData.d.ts +12 -0
  314. package/dist/esm/thorchain-utils/solana/getThorTxData.js +10 -0
  315. package/dist/esm/thorchain-utils/solana/getUnsignedSolanaTransaction.d.ts +3 -0
  316. package/dist/esm/thorchain-utils/solana/getUnsignedSolanaTransaction.js +60 -0
  317. package/dist/esm/thorchain-utils/solana/index.d.ts +3 -0
  318. package/dist/esm/thorchain-utils/solana/index.js +3 -0
  319. package/dist/esm/tron-utils/getUnsignedTronTransaction.js +22 -2
  320. package/dist/esm/types.d.ts +118 -8
  321. package/dist/esm/types.js +3 -0
  322. package/dist/esm/utils.d.ts +4 -3
  323. package/dist/esm/utils.js +34 -7
  324. package/package.json +27 -24
@@ -0,0 +1,155 @@
1
+ import type { Asset } from '@shapeshiftoss/types';
2
+ export type DebridgeTradeBaseParams = {
3
+ buyAsset: Asset;
4
+ sellAsset: Asset;
5
+ sellAmountIncludingProtocolFeesCryptoBaseUnit: string;
6
+ affiliateBps: string;
7
+ };
8
+ export type DebridgeTradeInputParams<T extends 'rate' | 'quote'> = DebridgeTradeBaseParams & {
9
+ quoteOrRate: T;
10
+ receiveAddress: T extends 'rate' ? string | undefined : string;
11
+ sendAddress: T extends 'rate' ? undefined : string;
12
+ accountNumber: T extends 'rate' ? undefined : number;
13
+ slippageTolerancePercentageDecimal?: string;
14
+ };
15
+ export type DebridgeTransactionMetadata = {
16
+ to: string;
17
+ data: string;
18
+ value: string;
19
+ gasLimit?: string;
20
+ orderId?: string;
21
+ isSameChainSwap?: boolean;
22
+ };
23
+ export type DebridgeTokenInfo = {
24
+ address: string;
25
+ chainId: number;
26
+ decimals: number;
27
+ name: string;
28
+ symbol: string;
29
+ amount: string;
30
+ approximateOperatingExpense?: string;
31
+ mutatedWithOperatingExpense?: boolean;
32
+ approximateUsdValue?: number;
33
+ maxRefundAmount?: string;
34
+ };
35
+ export type DebridgeCostDetail = {
36
+ type: 'DlnProtocolFee' | 'TakerMargin' | 'EstimatedOperatingExpenses' | 'InputTokenFee' | 'OutputTokenFee';
37
+ payload: {
38
+ feeAmount: string;
39
+ feeBps?: string;
40
+ chain?: string;
41
+ tokenAddress?: string;
42
+ };
43
+ };
44
+ export type DebridgeEstimation = {
45
+ srcChainTokenIn: DebridgeTokenInfo;
46
+ srcChainTokenOut?: DebridgeTokenInfo;
47
+ dstChainTokenOut: DebridgeTokenInfo & {
48
+ recommendedAmount: string;
49
+ };
50
+ costsDetails: DebridgeCostDetail[];
51
+ recommendedSlippage: number;
52
+ };
53
+ export type DebridgeTx = {
54
+ to: string;
55
+ data: string;
56
+ value: string;
57
+ };
58
+ export type DebridgeOrder = {
59
+ approximateFulfillmentDelay: number;
60
+ salt: number;
61
+ metadata: string;
62
+ };
63
+ export type DebridgeCreateTxResponse = {
64
+ estimation: DebridgeEstimation;
65
+ tx: DebridgeTx;
66
+ orderId: string;
67
+ order: DebridgeOrder;
68
+ fixFee: string;
69
+ prependedOperatingExpenseCost?: string;
70
+ estimatedTransactionFee?: DebridgeSingleChainEstimatedTransactionFee;
71
+ };
72
+ export type DebridgeOrderStatus = {
73
+ orderId: string;
74
+ status: 'None' | 'Created' | 'Fulfilled' | 'SentUnlock' | 'ClaimedUnlock' | 'OrderCancelled' | 'SentOrderCancel' | 'ClaimedOrderCancel';
75
+ };
76
+ export type DebridgeHashObject = {
77
+ stringValue: string;
78
+ bytesValue: string;
79
+ bytesArrayValue: string;
80
+ };
81
+ export type DebridgeOrderDetail = {
82
+ orderId: DebridgeHashObject;
83
+ fulfilledDstEventMetadata?: {
84
+ transactionHash?: DebridgeHashObject;
85
+ };
86
+ };
87
+ export type DebridgeOrderId = {
88
+ bytesValue: string;
89
+ bytesArrayValue: string;
90
+ stringValue: string;
91
+ };
92
+ export type DebridgeOrderIdsResponse = {
93
+ orderIds: DebridgeOrderId[];
94
+ };
95
+ export type DebridgeSingleChainTokenInfo = {
96
+ address: string;
97
+ name: string;
98
+ symbol: string;
99
+ decimals: number;
100
+ amount: string;
101
+ approximateUsdValue?: number;
102
+ };
103
+ export type DebridgeSingleChainTokenOut = DebridgeSingleChainTokenInfo & {
104
+ minAmount: string;
105
+ };
106
+ export type DebridgeSingleChainCostDetail = {
107
+ chain: string;
108
+ tokenIn: string;
109
+ tokenOut: string;
110
+ amountIn: string;
111
+ amountOut: string;
112
+ type: string;
113
+ payload: {
114
+ feeAmount?: string;
115
+ feeBps?: string;
116
+ amountOutBeforeCorrection?: string;
117
+ estimatedVolatilityBps?: string;
118
+ actualFeeAmount?: string;
119
+ actualFeeBps?: string;
120
+ subsidyAmount?: string;
121
+ feeApproximateUsdValue?: string;
122
+ };
123
+ };
124
+ export type DebridgeSingleChainEstimatedTransactionFee = {
125
+ total: string;
126
+ details: {
127
+ gasLimit: string;
128
+ baseFee?: string;
129
+ maxFeePerGas?: string;
130
+ maxPriorityFeePerGas?: string;
131
+ };
132
+ approximateUsdValue?: number;
133
+ };
134
+ export type DebridgeSingleChainTransactionResponse = {
135
+ tokenIn: DebridgeSingleChainTokenInfo;
136
+ tokenOut: DebridgeSingleChainTokenOut;
137
+ slippage: number;
138
+ recommendedSlippage: number;
139
+ protocolFee?: string;
140
+ costsDetails: DebridgeSingleChainCostDetail[];
141
+ estimatedTransactionFee?: DebridgeSingleChainEstimatedTransactionFee;
142
+ tx: {
143
+ to: string;
144
+ data: string;
145
+ value: string;
146
+ };
147
+ };
148
+ export type DebridgeError = {
149
+ errorCode?: number;
150
+ errorId?: string;
151
+ errorMessage?: string;
152
+ statusCode?: number;
153
+ message?: string;
154
+ };
155
+ export declare const isDebridgeError: (error: unknown) => error is DebridgeError;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isDebridgeError = void 0;
4
+ const isDebridgeError = (error) => {
5
+ return (typeof error === 'object' &&
6
+ error !== null &&
7
+ ('errorCode' in error || 'errorId' in error || 'errorMessage' in error));
8
+ };
9
+ exports.isDebridgeError = isDebridgeError;
@@ -8,6 +8,7 @@ const web3_js_1 = require("@solana/web3.js");
8
8
  const uuid_1 = require("uuid");
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_1 = require("../utils/constants");
12
13
  const helpers_1 = require("../utils/helpers");
13
14
  const getTradeQuote = async (input, deps) => {
@@ -92,6 +93,28 @@ const getTradeQuote = async (input, deps) => {
92
93
  adapter,
93
94
  jupiterUrl,
94
95
  });
96
+ // Build a trial VersionedTransaction to check if it exceeds the 1232-byte Solana tx size limit
97
+ const isOversized = await (async () => {
98
+ try {
99
+ const lookupTableInfos = await adapter.getAddressLookupTableAccounts(addressLookupTableAddresses);
100
+ const lookupTableAccounts = lookupTableInfos.map(info => new web3_js_1.AddressLookupTableAccount({
101
+ key: new web3_js_1.PublicKey(info.key),
102
+ state: web3_js_1.AddressLookupTableAccount.deserialize(new Uint8Array(info.data)),
103
+ }));
104
+ const messageV0 = web3_js_1.MessageV0.compile({
105
+ payerKey: new web3_js_1.PublicKey(sendAddress),
106
+ instructions,
107
+ // Blockhash doesn't affect size, use a dummy one
108
+ recentBlockhash: web3_js_1.PublicKey.default.toString(),
109
+ addressLookupTableAccounts: lookupTableAccounts,
110
+ });
111
+ const txBytes = new web3_js_1.VersionedTransaction(messageV0).serialize();
112
+ return txBytes.length > 1232;
113
+ }
114
+ catch {
115
+ return false;
116
+ }
117
+ })();
95
118
  const getFeeData = async () => {
96
119
  const sellAdapter = deps.assertGetSolanaChainAdapter(sellAsset.chainId);
97
120
  const getFeeDataInput = {
@@ -169,6 +192,7 @@ const getTradeQuote = async (input, deps) => {
169
192
  solanaTransactionMetadata: {
170
193
  addressLookupTableAddresses,
171
194
  instructions,
195
+ isOversized,
172
196
  },
173
197
  feeData: {
174
198
  protocolFees,
@@ -182,6 +206,14 @@ const getTradeQuote = async (input, deps) => {
182
206
  allowanceContract: '0x0',
183
207
  // Swap are so fasts on solana that times are under 100ms displaying 0 or very small amount of time is not user friendly
184
208
  estimatedExecutionTimeMs: undefined,
209
+ affiliateFee: (0, affiliateFee_1.buildAffiliateFee)({
210
+ strategy: 'buy_asset',
211
+ affiliateBps,
212
+ sellAsset,
213
+ buyAsset,
214
+ sellAmountCryptoBaseUnit: priceResponse.inAmount,
215
+ buyAmountCryptoBaseUnit: priceResponse.outAmount,
216
+ }),
185
217
  },
186
218
  ],
187
219
  };
@@ -8,6 +8,7 @@ const web3_js_1 = require("@solana/web3.js");
8
8
  const uuid_1 = require("uuid");
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_1 = require("../utils/constants");
12
13
  const helpers_1 = require("../utils/helpers");
13
14
  const getTradeRate = async (input, deps) => {
@@ -163,6 +164,14 @@ const getTradeRate = async (input, deps) => {
163
164
  allowanceContract: '0x0',
164
165
  // Swap are so fasts on solana that times are under 100ms displaying 0 or very small amount of time is not user friendly
165
166
  estimatedExecutionTimeMs: undefined,
167
+ affiliateFee: (0, affiliateFee_1.buildAffiliateFee)({
168
+ strategy: 'buy_asset',
169
+ affiliateBps,
170
+ sellAsset,
171
+ buyAsset,
172
+ sellAmountCryptoBaseUnit: priceResponse.inAmount,
173
+ buyAmountCryptoBaseUnit: priceResponse.outAmount,
174
+ }),
166
175
  },
167
176
  ],
168
177
  };
@@ -10,5 +10,5 @@ const mayaPoolIdAssetIdSymbolMap = generatedTradableAssetMap_json_1.default;
10
10
  exports.assetIdToMayaPoolAssetIdMap = (0, invert_1.default)(mayaPoolIdAssetIdSymbolMap);
11
11
  const mayaPoolAssetIdToAssetId = (id) => mayaPoolIdAssetIdSymbolMap[id.toUpperCase()];
12
12
  exports.mayaPoolAssetIdToAssetId = mayaPoolAssetIdToAssetId;
13
- const assetIdToMayaPoolAssetId = ({ assetId }) => exports.assetIdToMayaPoolAssetIdMap[assetId.toLowerCase()];
13
+ const assetIdToMayaPoolAssetId = ({ assetId }) => exports.assetIdToMayaPoolAssetIdMap[assetId];
14
14
  exports.assetIdToMayaPoolAssetId = assetIdToMayaPoolAssetId;
@@ -9,6 +9,7 @@ exports.nearIntentsSwapper = {
9
9
  executeTronTransaction: utils_1.executeTronTransaction,
10
10
  executeSuiTransaction: utils_1.executeSuiTransaction,
11
11
  executeNearTransaction: utils_1.executeNearTransaction,
12
+ executeTonTransaction: utils_1.executeTonTransaction,
12
13
  executeUtxoTransaction: (txToSign, { signAndBroadcastTransaction }) => {
13
14
  return signAndBroadcastTransaction(txToSign);
14
15
  },
@@ -248,6 +248,37 @@ exports.nearIntentsApi = {
248
248
  }
249
249
  return Promise.resolve(step.feeData.networkFeeCryptoBaseUnit);
250
250
  },
251
+ getUnsignedTonTransaction: ({ stepIndex, tradeQuote, from, assertGetTonChainAdapter, }) => {
252
+ if (!(0, utils_2.isExecutableTradeQuote)(tradeQuote))
253
+ throw new Error('Unable to execute a trade rate quote');
254
+ const step = (0, utils_2.getExecutableTradeStep)(tradeQuote, stepIndex);
255
+ const { accountNumber, sellAsset, nearIntentsSpecific } = step;
256
+ if (!nearIntentsSpecific)
257
+ throw new Error('nearIntentsSpecific is required');
258
+ const adapter = assertGetTonChainAdapter(sellAsset.chainId);
259
+ const to = nearIntentsSpecific.depositAddress;
260
+ const value = step.sellAmountIncludingProtocolFeesCryptoBaseUnit;
261
+ const contractAddress = (0, utils_1.contractAddressOrUndefined)(sellAsset.assetId);
262
+ return adapter.buildSendApiTransaction({
263
+ to,
264
+ from,
265
+ value,
266
+ accountNumber,
267
+ chainSpecific: {
268
+ contractAddress,
269
+ memo: nearIntentsSpecific.depositMemo,
270
+ },
271
+ });
272
+ },
273
+ getTonTransactionFees: ({ tradeQuote, stepIndex }) => {
274
+ if (!(0, utils_2.isExecutableTradeQuote)(tradeQuote))
275
+ throw new Error('Unable to execute a trade rate quote');
276
+ const step = (0, utils_2.getExecutableTradeStep)(tradeQuote, stepIndex);
277
+ if (!step.feeData.networkFeeCryptoBaseUnit) {
278
+ throw new Error('Missing network fee in quote');
279
+ }
280
+ return Promise.resolve(step.feeData.networkFeeCryptoBaseUnit);
281
+ },
251
282
  checkTradeStatus: async ({ config, swap }) => {
252
283
  const { nearIntentsSpecific } = swap?.metadata ?? {};
253
284
  if (!nearIntentsSpecific?.depositAddress) {
@@ -9,6 +9,7 @@ const uuid_1 = require("uuid");
9
9
  const constants_1 = require("../../../constants");
10
10
  const types_1 = require("../../../types");
11
11
  const utils_2 = require("../../../utils");
12
+ const affiliateFee_1 = require("../../utils/affiliateFee");
12
13
  const helpers_1 = require("../../utils/helpers/helpers");
13
14
  const constants_2 = require("../constants");
14
15
  const types_2 = require("../types");
@@ -74,7 +75,27 @@ const getTradeQuote = async (input, deps) => {
74
75
  },
75
76
  ],
76
77
  };
77
- const quoteResponse = await oneClickService_1.OneClickService.getQuote(quoteRequest);
78
+ const maxRetries = 3;
79
+ let quoteResponse = null;
80
+ let lastError = null;
81
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
82
+ try {
83
+ quoteResponse = await oneClickService_1.OneClickService.getQuote(quoteRequest);
84
+ break;
85
+ }
86
+ catch (err) {
87
+ lastError = err instanceof Error ? err : new Error(String(err));
88
+ const isWebSocketError = lastError.message.includes('WebSocket is not ready');
89
+ if (isWebSocketError && attempt < maxRetries) {
90
+ await new Promise(resolve => setTimeout(resolve, 1000 * attempt));
91
+ continue;
92
+ }
93
+ throw lastError;
94
+ }
95
+ }
96
+ if (!quoteResponse) {
97
+ throw lastError ?? new Error('Failed to get quote after retries');
98
+ }
78
99
  const { quote } = quoteResponse;
79
100
  if (!quote.depositAddress) {
80
101
  throw new Error('Missing deposit address in quote response');
@@ -200,6 +221,21 @@ const getTradeQuote = async (input, deps) => {
200
221
  });
201
222
  return { networkFeeCryptoBaseUnit: feeData.fast.txFee };
202
223
  }
224
+ case caip_1.CHAIN_NAMESPACE.Ton: {
225
+ const sellAdapter = deps.assertGetTonChainAdapter(sellAsset.chainId);
226
+ const contractAddress = (0, utils_1.isToken)(sellAsset.assetId)
227
+ ? (0, caip_1.fromAssetId)(sellAsset.assetId).assetReference
228
+ : undefined;
229
+ const feeData = await sellAdapter.getFeeData({
230
+ to: depositAddress,
231
+ value: sellAmount,
232
+ chainSpecific: {
233
+ from,
234
+ contractAddress,
235
+ },
236
+ });
237
+ return { networkFeeCryptoBaseUnit: feeData.fast.txFee };
238
+ }
203
239
  default:
204
240
  throw new Error(`Unsupported chain namespace: ${chainNamespace}`);
205
241
  }
@@ -243,6 +279,17 @@ const getTradeQuote = async (input, deps) => {
243
279
  timeEstimate: quote.timeEstimate,
244
280
  deadline: quote.deadline ?? '',
245
281
  },
282
+ affiliateFee: (0, affiliateFee_1.buildAffiliateFee)({
283
+ strategy: 'fixed_asset',
284
+ affiliateBps,
285
+ sellAsset,
286
+ buyAsset,
287
+ sellAmountCryptoBaseUnit: quote.amountIn,
288
+ buyAmountCryptoBaseUnit: quote.amountOut,
289
+ fixedAssetId: (0, utils_1.chainIdToFeeAssetId)(caip_1.nearChainId),
290
+ fixedAsset: deps.assetsById[(0, utils_1.chainIdToFeeAssetId)(caip_1.nearChainId)],
291
+ isEstimate: true,
292
+ }),
246
293
  },
247
294
  ],
248
295
  };
@@ -11,6 +11,7 @@ const constants_1 = require("../../../constants");
11
11
  const types_1 = require("../../../types");
12
12
  const utils_2 = require("../../../utils");
13
13
  const tenderly_1 = require("../../../utils/tenderly");
14
+ const affiliateFee_1 = require("../../utils/affiliateFee");
14
15
  const helpers_1 = require("../../utils/helpers/helpers");
15
16
  const constants_2 = require("../constants");
16
17
  const types_2 = require("../types");
@@ -64,7 +65,27 @@ const getTradeRate = async (input, deps) => {
64
65
  },
65
66
  ],
66
67
  };
67
- const quoteResponse = await oneClickService_1.OneClickService.getQuote(quoteRequest);
68
+ const maxRetries = 3;
69
+ let quoteResponse = null;
70
+ let lastError = null;
71
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
72
+ try {
73
+ quoteResponse = await oneClickService_1.OneClickService.getQuote(quoteRequest);
74
+ break;
75
+ }
76
+ catch (err) {
77
+ lastError = err instanceof Error ? err : new Error(String(err));
78
+ const isWebSocketError = lastError.message.includes('WebSocket is not ready');
79
+ if (isWebSocketError && attempt < maxRetries) {
80
+ await new Promise(resolve => setTimeout(resolve, 1000 * attempt));
81
+ continue;
82
+ }
83
+ throw lastError;
84
+ }
85
+ }
86
+ if (!quoteResponse) {
87
+ throw lastError ?? new Error('Failed to get quote after retries');
88
+ }
68
89
  const { quote } = quoteResponse;
69
90
  if (!quote.depositAddress) {
70
91
  throw new Error('Missing deposit address in quote response');
@@ -241,6 +262,46 @@ const getTradeRate = async (input, deps) => {
241
262
  return '0';
242
263
  }
243
264
  }
265
+ case caip_1.CHAIN_NAMESPACE.Near: {
266
+ try {
267
+ const sellAdapter = deps.assertGetNearChainAdapter(sellAsset.chainId);
268
+ if (!sendAddress) {
269
+ return '0';
270
+ }
271
+ const feeData = await sellAdapter.getFeeData({
272
+ to: depositAddress,
273
+ value: sellAmount,
274
+ chainSpecific: { from: sendAddress },
275
+ });
276
+ return feeData.fast.txFee;
277
+ }
278
+ catch (error) {
279
+ return '0';
280
+ }
281
+ }
282
+ case caip_1.CHAIN_NAMESPACE.Ton: {
283
+ try {
284
+ const sellAdapter = deps.assertGetTonChainAdapter(sellAsset.chainId);
285
+ const contractAddress = (0, utils_1.isToken)(sellAsset.assetId)
286
+ ? (0, caip_1.fromAssetId)(sellAsset.assetId).assetReference
287
+ : undefined;
288
+ if (!sendAddress) {
289
+ return '0';
290
+ }
291
+ const feeData = await sellAdapter.getFeeData({
292
+ to: depositAddress,
293
+ value: sellAmount,
294
+ chainSpecific: {
295
+ from: sendAddress,
296
+ contractAddress,
297
+ },
298
+ });
299
+ return feeData.fast.txFee;
300
+ }
301
+ catch (error) {
302
+ return '0';
303
+ }
304
+ }
244
305
  default:
245
306
  return undefined;
246
307
  }
@@ -277,6 +338,17 @@ const getTradeRate = async (input, deps) => {
277
338
  sellAsset,
278
339
  source: types_1.SwapperName.NearIntents,
279
340
  estimatedExecutionTimeMs: quote.timeEstimate ? quote.timeEstimate * 1000 : undefined,
341
+ affiliateFee: (0, affiliateFee_1.buildAffiliateFee)({
342
+ strategy: 'fixed_asset',
343
+ affiliateBps,
344
+ sellAsset,
345
+ buyAsset,
346
+ sellAmountCryptoBaseUnit: quote.amountIn,
347
+ buyAmountCryptoBaseUnit: quote.amountOut,
348
+ fixedAssetId: (0, utils_1.chainIdToFeeAssetId)(caip_1.nearChainId),
349
+ fixedAsset: deps.assetsById[(0, utils_1.chainIdToFeeAssetId)(caip_1.nearChainId)],
350
+ isEstimate: true,
351
+ }),
280
352
  },
281
353
  ],
282
354
  };
@@ -1,6 +1,6 @@
1
1
  import { KnownChainIds } from '@shapeshiftoss/types';
2
2
  export { QuoteRequest } from '@defuse-protocol/one-click-sdk-typescript';
3
3
  export type { GetExecutionStatusResponse, QuoteResponse, TokenResponse, } from '@defuse-protocol/one-click-sdk-typescript';
4
- export declare const nearIntentsSupportedChainIds: readonly [KnownChainIds.EthereumMainnet, KnownChainIds.ArbitrumMainnet, KnownChainIds.BaseMainnet, KnownChainIds.GnosisMainnet, KnownChainIds.BnbSmartChainMainnet, KnownChainIds.PolygonMainnet, KnownChainIds.AvalancheMainnet, KnownChainIds.OptimismMainnet, KnownChainIds.BitcoinMainnet, KnownChainIds.DogecoinMainnet, KnownChainIds.ZcashMainnet, KnownChainIds.SolanaMainnet, KnownChainIds.TronMainnet, KnownChainIds.SuiMainnet, KnownChainIds.StarknetMainnet, KnownChainIds.MonadMainnet, KnownChainIds.NearMainnet];
4
+ export declare const nearIntentsSupportedChainIds: readonly [KnownChainIds.EthereumMainnet, KnownChainIds.ArbitrumMainnet, KnownChainIds.BaseMainnet, KnownChainIds.GnosisMainnet, KnownChainIds.BnbSmartChainMainnet, KnownChainIds.PolygonMainnet, KnownChainIds.AvalancheMainnet, KnownChainIds.OptimismMainnet, KnownChainIds.BitcoinMainnet, KnownChainIds.BitcoinCashMainnet, KnownChainIds.DogecoinMainnet, KnownChainIds.ZcashMainnet, KnownChainIds.SolanaMainnet, KnownChainIds.TronMainnet, KnownChainIds.SuiMainnet, KnownChainIds.StarknetMainnet, KnownChainIds.MonadMainnet, KnownChainIds.NearMainnet, KnownChainIds.PlasmaMainnet, KnownChainIds.TonMainnet];
5
5
  export type NearIntentsSupportedChainId = (typeof nearIntentsSupportedChainIds)[number];
6
6
  export declare const chainIdToNearIntentsChain: Record<NearIntentsSupportedChainId, string>;
@@ -14,6 +14,7 @@ exports.nearIntentsSupportedChainIds = [
14
14
  types_1.KnownChainIds.AvalancheMainnet,
15
15
  types_1.KnownChainIds.OptimismMainnet,
16
16
  types_1.KnownChainIds.BitcoinMainnet,
17
+ types_1.KnownChainIds.BitcoinCashMainnet,
17
18
  types_1.KnownChainIds.DogecoinMainnet,
18
19
  types_1.KnownChainIds.ZcashMainnet,
19
20
  types_1.KnownChainIds.SolanaMainnet,
@@ -22,6 +23,8 @@ exports.nearIntentsSupportedChainIds = [
22
23
  types_1.KnownChainIds.StarknetMainnet,
23
24
  types_1.KnownChainIds.MonadMainnet,
24
25
  types_1.KnownChainIds.NearMainnet,
26
+ types_1.KnownChainIds.PlasmaMainnet,
27
+ types_1.KnownChainIds.TonMainnet,
25
28
  ];
26
29
  exports.chainIdToNearIntentsChain = {
27
30
  [types_1.KnownChainIds.EthereumMainnet]: 'eth',
@@ -33,12 +36,15 @@ exports.chainIdToNearIntentsChain = {
33
36
  [types_1.KnownChainIds.AvalancheMainnet]: 'avax',
34
37
  [types_1.KnownChainIds.OptimismMainnet]: 'op',
35
38
  [types_1.KnownChainIds.BitcoinMainnet]: 'btc',
39
+ [types_1.KnownChainIds.BitcoinCashMainnet]: 'bch',
36
40
  [types_1.KnownChainIds.DogecoinMainnet]: 'doge',
37
41
  [types_1.KnownChainIds.ZcashMainnet]: 'zec',
42
+ [types_1.KnownChainIds.PlasmaMainnet]: 'plasma',
38
43
  [types_1.KnownChainIds.SolanaMainnet]: 'sol',
39
44
  [types_1.KnownChainIds.TronMainnet]: 'tron',
40
45
  [types_1.KnownChainIds.SuiMainnet]: 'sui',
41
46
  [types_1.KnownChainIds.StarknetMainnet]: 'starknet',
42
47
  [types_1.KnownChainIds.MonadMainnet]: 'monad',
43
48
  [types_1.KnownChainIds.NearMainnet]: 'near',
49
+ [types_1.KnownChainIds.TonMainnet]: 'ton',
44
50
  };
@@ -8,6 +8,25 @@ const utils_1 = require("@shapeshiftoss/utils");
8
8
  const viem_1 = require("viem");
9
9
  const types_1 = require("../../types");
10
10
  const oneClickService_1 = require("../oneClickService");
11
+ const getTokensWithRetry = async () => {
12
+ const maxRetries = 3;
13
+ let lastError = null;
14
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
15
+ try {
16
+ return await oneClickService_1.OneClickService.getTokens();
17
+ }
18
+ catch (err) {
19
+ lastError = err instanceof Error ? err : new Error(String(err));
20
+ const isWebSocketError = lastError.message.includes('WebSocket is not ready');
21
+ if (isWebSocketError && attempt < maxRetries) {
22
+ await new Promise(resolve => setTimeout(resolve, 1000 * attempt));
23
+ continue;
24
+ }
25
+ throw lastError;
26
+ }
27
+ }
28
+ throw lastError ?? new Error('Failed to get tokens after retries');
29
+ };
11
30
  const ATA_RENT_LAMPORTS = 2040000;
12
31
  const calculateAccountCreationCosts = (instructions) => {
13
32
  let totalCost = (0, utils_1.bnOrZero)(0);
@@ -28,8 +47,8 @@ const getNearIntentsAsset = ({ nearNetwork, contractAddress, }) => {
28
47
  return `nep141:${nearNetwork}-${contractAddress.toLowerCase()}.omft.near`;
29
48
  };
30
49
  exports.getNearIntentsAsset = getNearIntentsAsset;
31
- const NEP245_CHAINS = ['bsc', 'pol', 'avax', 'op', 'tron', 'monad'];
32
- const TOKEN_LOOKUP_CHAINS = ['sui', 'starknet'];
50
+ const NEP245_CHAINS = ['bsc', 'pol', 'avax', 'op', 'tron', 'monad', 'plasma'];
51
+ const TOKEN_LOOKUP_CHAINS = ['sui', 'starknet', 'ton'];
33
52
  const NEAR_CHAIN = 'near';
34
53
  const WNEAR_CONTRACT_ADDRESS = 'wrap.near';
35
54
  const isNep245Chain = (chain) => {
@@ -45,7 +64,7 @@ const assetToNearIntentsAsset = async (asset) => {
45
64
  // NEAR chain requires special handling
46
65
  // Native NEAR maps to wNEAR (wrap.near)
47
66
  if (nearNetwork === NEAR_CHAIN) {
48
- const tokens = await oneClickService_1.OneClickService.getTokens();
67
+ const tokens = await getTokensWithRetry();
49
68
  const { assetNamespace, assetReference } = (0, caip_1.fromAssetId)(asset.assetId);
50
69
  const isNativeAsset = assetNamespace === 'slip44';
51
70
  // Native NEAR maps to wNEAR, tokens use their contract address directly
@@ -61,7 +80,7 @@ const assetToNearIntentsAsset = async (asset) => {
61
80
  // Asset IDs use hashed format that can't be generated from contract addresses
62
81
  const requiresLookup = isNep245Chain(nearNetwork) || isTokenLookupChain(nearNetwork) || asset.chainId === caip_1.solanaChainId;
63
82
  if (requiresLookup) {
64
- const tokens = await oneClickService_1.OneClickService.getTokens();
83
+ const tokens = await getTokensWithRetry();
65
84
  const { assetNamespace, assetReference } = (0, caip_1.fromAssetId)(asset.assetId);
66
85
  const isNativeAsset = assetNamespace === 'slip44';
67
86
  const contractAddress = !isNativeAsset ? assetReference.toLowerCase() : null;
@@ -9,6 +9,7 @@ const viem_1 = require("viem");
9
9
  const __1 = require("../../..");
10
10
  const types_1 = require("../../../types");
11
11
  const utils_2 = require("../../../utils");
12
+ const affiliateFee_1 = require("../../utils/affiliateFee");
12
13
  const helpers_1 = require("../../utils/helpers/helpers");
13
14
  const constants_1 = require("../constants");
14
15
  const fetchPortalsTradeOrder_1 = require("../utils/fetchPortalsTradeOrder");
@@ -204,6 +205,15 @@ async function getPortalsTradeQuote(input, assertGetEvmChainAdapter, swapperConf
204
205
  steps: portalsTradeOrderResponse.context.steps,
205
206
  route: portalsTradeOrderResponse.context.route,
206
207
  },
208
+ affiliateFee: (0, affiliateFee_1.buildAffiliateFee)({
209
+ strategy: 'buy_asset',
210
+ affiliateBps,
211
+ sellAsset,
212
+ buyAsset,
213
+ sellAmountCryptoBaseUnit: input.sellAmountIncludingProtocolFeesCryptoBaseUnit,
214
+ buyAmountCryptoBaseUnit: buyAmountAfterFeesCryptoBaseUnit,
215
+ isEstimate: true,
216
+ }),
207
217
  },
208
218
  ],
209
219
  };
@@ -17,7 +17,6 @@ const fetchPortalsTradeOrder_1 = require("../utils/fetchPortalsTradeOrder");
17
17
  const helpers_2 = require("../utils/helpers");
18
18
  async function getPortalsTradeRate(input, assertGetEvmChainAdapter, swapperConfig) {
19
19
  const { sellAsset, buyAsset, accountNumber, affiliateBps, chainId, sellAmountIncludingProtocolFeesCryptoBaseUnit, receiveAddress, supportsEIP1559, } = input;
20
- const adapter = assertGetEvmChainAdapter(chainId);
21
20
  const sellAssetChainId = sellAsset.chainId;
22
21
  const buyAssetChainId = buyAsset.chainId;
23
22
  if (!(0, helpers_2.isSupportedChainId)(sellAssetChainId)) {
@@ -34,10 +33,16 @@ async function getPortalsTradeRate(input, assertGetEvmChainAdapter, swapperConfi
34
33
  details: { chainId: sellAsset.chainId },
35
34
  }));
36
35
  }
36
+ if (!(0, helpers_2.isSupportedChainId)(chainId)) {
37
+ return (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
38
+ message: `unsupported chainId`,
39
+ code: types_1.TradeQuoteError.UnsupportedChain,
40
+ details: { chainId },
41
+ }));
42
+ }
43
+ const adapter = assertGetEvmChainAdapter(chainId);
37
44
  const isCrossChain = sellAssetChainId !== buyAssetChainId;
38
45
  try {
39
- if (!(0, helpers_2.isSupportedChainId)(chainId))
40
- throw new Error(`Unsupported chainId ${sellAsset.chainId}`);
41
46
  const sellPortalsNetwork = constants_1.chainIdToPortalsNetwork[sellAssetChainId];
42
47
  const buyPortalsNetwork = constants_1.chainIdToPortalsNetwork[buyAssetChainId];
43
48
  if (!sellPortalsNetwork) {