@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,129 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTradeQuote = void 0;
4
+ const monads_1 = require("@sniptt/monads");
5
+ const omniston_sdk_1 = require("@ston-fi/omniston-sdk");
6
+ const types_1 = require("../../../types");
7
+ const utils_1 = require("../../../utils");
8
+ const affiliateFee_1 = require("../../utils/affiliateFee");
9
+ const helpers_1 = require("../../utils/helpers/helpers");
10
+ const constants_1 = require("../utils/constants");
11
+ const helpers_2 = require("../utils/helpers");
12
+ const omnistonManager_1 = require("../utils/omnistonManager");
13
+ const buildStonfiSpecific = (quote, bidAssetAddress, askAssetAddress) => ({
14
+ quoteId: quote.quoteId,
15
+ resolverId: quote.resolverId,
16
+ resolverName: quote.resolverName,
17
+ tradeStartDeadline: quote.tradeStartDeadline,
18
+ gasBudget: quote.gasBudget,
19
+ bidAssetAddress: quote.bidAssetAddress ?? bidAssetAddress,
20
+ askAssetAddress: quote.askAssetAddress ?? askAssetAddress,
21
+ bidUnits: quote.bidUnits,
22
+ askUnits: quote.askUnits,
23
+ referrerAddress: quote.referrerAddress,
24
+ referrerFeeAsset: quote.referrerFeeAsset,
25
+ referrerFeeUnits: quote.referrerFeeUnits,
26
+ protocolFeeAsset: quote.protocolFeeAsset,
27
+ protocolFeeUnits: quote.protocolFeeUnits,
28
+ quoteTimestamp: quote.quoteTimestamp,
29
+ estimatedGasConsumption: quote.estimatedGasConsumption,
30
+ params: quote.params,
31
+ });
32
+ const getTradeQuote = async (input) => {
33
+ const { sellAsset, buyAsset, sellAmountIncludingProtocolFeesCryptoBaseUnit, receiveAddress, accountNumber, slippageTolerancePercentageDecimal, affiliateBps, } = input;
34
+ const validation = (0, helpers_2.validateTonAssets)(sellAsset, buyAsset);
35
+ if (!validation.isValid) {
36
+ return validation.error;
37
+ }
38
+ const { bidAssetAddress, askAssetAddress } = validation;
39
+ const omniston = omnistonManager_1.omnistonManager.getInstance();
40
+ try {
41
+ const slippageBps = (0, helpers_2.slippageDecimalToBps)(slippageTolerancePercentageDecimal, constants_1.STONFI_DEFAULT_SLIPPAGE_BPS);
42
+ const referrerFeeBps = (0, helpers_2.affiliateBpsToNumber)(affiliateBps);
43
+ const tonTreasuryAddress = (0, helpers_1.getTreasuryAddressFromChainId)(sellAsset.chainId);
44
+ const referrerAddress = (0, helpers_2.tonAddressToOmnistonAddress)(tonTreasuryAddress);
45
+ const quoteResult = await (0, helpers_2.waitForQuote)(omniston, {
46
+ settlementMethods: [omniston_sdk_1.SettlementMethod.SETTLEMENT_METHOD_SWAP],
47
+ bidAssetAddress,
48
+ askAssetAddress,
49
+ amount: { bidUnits: sellAmountIncludingProtocolFeesCryptoBaseUnit },
50
+ referrerAddress,
51
+ referrerFeeBps,
52
+ settlementParams: {
53
+ maxPriceSlippageBps: slippageBps,
54
+ gaslessSettlement: 'GASLESS_SETTLEMENT_PROHIBITED',
55
+ flexibleReferrerFee: true,
56
+ },
57
+ }, constants_1.STONFI_QUOTE_TIMEOUT_MS);
58
+ if (quoteResult.type === 'error') {
59
+ console.error('[Stonfi] Quote request error:', quoteResult.error);
60
+ return (0, monads_1.Err)((0, utils_1.makeSwapErrorRight)({
61
+ message: `[Stonfi] Connection error while fetching quote`,
62
+ code: types_1.TradeQuoteError.QueryFailed,
63
+ cause: quoteResult.error,
64
+ }));
65
+ }
66
+ if (quoteResult.type === 'timeout') {
67
+ return (0, monads_1.Err)((0, utils_1.makeSwapErrorRight)({
68
+ message: `[Stonfi] Quote request timed out`,
69
+ code: types_1.TradeQuoteError.QueryFailed,
70
+ }));
71
+ }
72
+ if (quoteResult.type === 'noQuote') {
73
+ return (0, monads_1.Err)((0, utils_1.makeSwapErrorRight)({
74
+ message: `[Stonfi] No quote available for this pair`,
75
+ code: types_1.TradeQuoteError.NoRouteFound,
76
+ }));
77
+ }
78
+ const quote = quoteResult.quote;
79
+ const buyAmountCryptoBaseUnit = quote.askUnits;
80
+ const networkFeeCryptoBaseUnit = quote.gasBudget;
81
+ const rate = (0, helpers_2.calculateRate)(buyAmountCryptoBaseUnit, sellAmountIncludingProtocolFeesCryptoBaseUnit, buyAsset.precision, sellAsset.precision);
82
+ const tradeQuote = {
83
+ id: quote.quoteId,
84
+ rate,
85
+ receiveAddress,
86
+ affiliateBps,
87
+ slippageTolerancePercentageDecimal: slippageTolerancePercentageDecimal ?? String(constants_1.STONFI_DEFAULT_SLIPPAGE_BPS / 10000),
88
+ quoteOrRate: 'quote',
89
+ swapperName: types_1.SwapperName.Stonfi,
90
+ steps: [
91
+ {
92
+ buyAmountBeforeFeesCryptoBaseUnit: buyAmountCryptoBaseUnit,
93
+ buyAmountAfterFeesCryptoBaseUnit: buyAmountCryptoBaseUnit,
94
+ sellAmountIncludingProtocolFeesCryptoBaseUnit,
95
+ feeData: {
96
+ networkFeeCryptoBaseUnit,
97
+ protocolFees: undefined,
98
+ },
99
+ rate,
100
+ source: types_1.SwapperName.Stonfi,
101
+ buyAsset,
102
+ sellAsset,
103
+ accountNumber,
104
+ allowanceContract: '0x0',
105
+ estimatedExecutionTimeMs: 30000,
106
+ stonfiSpecific: buildStonfiSpecific(quote, bidAssetAddress, askAssetAddress),
107
+ affiliateFee: (0, affiliateFee_1.buildAffiliateFee)({
108
+ strategy: 'buy_asset',
109
+ affiliateBps,
110
+ sellAsset,
111
+ buyAsset,
112
+ sellAmountCryptoBaseUnit: sellAmountIncludingProtocolFeesCryptoBaseUnit,
113
+ buyAmountCryptoBaseUnit,
114
+ isEstimate: true,
115
+ }),
116
+ },
117
+ ],
118
+ };
119
+ return (0, monads_1.Ok)([tradeQuote]);
120
+ }
121
+ catch (err) {
122
+ return (0, monads_1.Err)((0, utils_1.makeSwapErrorRight)({
123
+ message: `[Stonfi] Error getting quote: ${err}`,
124
+ code: types_1.TradeQuoteError.QueryFailed,
125
+ cause: err,
126
+ }));
127
+ }
128
+ };
129
+ exports.getTradeQuote = getTradeQuote;
@@ -0,0 +1,2 @@
1
+ import type { GetTradeRateInput, TradeRateResult } from '../../../types';
2
+ export declare const getTradeRate: (input: GetTradeRateInput) => Promise<TradeRateResult>;
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTradeRate = void 0;
4
+ const monads_1 = require("@sniptt/monads");
5
+ const omniston_sdk_1 = require("@ston-fi/omniston-sdk");
6
+ const types_1 = require("../../../types");
7
+ const utils_1 = require("../../../utils");
8
+ const affiliateFee_1 = require("../../utils/affiliateFee");
9
+ const helpers_1 = require("../../utils/helpers/helpers");
10
+ const constants_1 = require("../utils/constants");
11
+ const helpers_2 = require("../utils/helpers");
12
+ const omnistonManager_1 = require("../utils/omnistonManager");
13
+ const buildStonfiSpecific = (quote, bidAssetAddress, askAssetAddress) => ({
14
+ quoteId: quote.quoteId,
15
+ resolverId: quote.resolverId,
16
+ resolverName: quote.resolverName,
17
+ tradeStartDeadline: quote.tradeStartDeadline,
18
+ gasBudget: quote.gasBudget,
19
+ bidAssetAddress: quote.bidAssetAddress ?? bidAssetAddress,
20
+ askAssetAddress: quote.askAssetAddress ?? askAssetAddress,
21
+ bidUnits: quote.bidUnits,
22
+ askUnits: quote.askUnits,
23
+ referrerAddress: quote.referrerAddress,
24
+ referrerFeeAsset: quote.referrerFeeAsset,
25
+ referrerFeeUnits: quote.referrerFeeUnits,
26
+ protocolFeeAsset: quote.protocolFeeAsset,
27
+ protocolFeeUnits: quote.protocolFeeUnits,
28
+ quoteTimestamp: quote.quoteTimestamp,
29
+ estimatedGasConsumption: quote.estimatedGasConsumption,
30
+ params: quote.params,
31
+ });
32
+ const getTradeRate = async (input) => {
33
+ const { sellAsset, buyAsset, sellAmountIncludingProtocolFeesCryptoBaseUnit, receiveAddress, slippageTolerancePercentageDecimal, affiliateBps, } = input;
34
+ const validation = (0, helpers_2.validateTonAssets)(sellAsset, buyAsset);
35
+ if (!validation.isValid) {
36
+ return validation.error;
37
+ }
38
+ const { bidAssetAddress, askAssetAddress } = validation;
39
+ const omniston = omnistonManager_1.omnistonManager.getInstance();
40
+ try {
41
+ const slippageBps = (0, helpers_2.slippageDecimalToBps)(slippageTolerancePercentageDecimal, constants_1.STONFI_DEFAULT_SLIPPAGE_BPS);
42
+ const referrerFeeBps = (0, helpers_2.affiliateBpsToNumber)(affiliateBps);
43
+ const tonTreasuryAddress = (0, helpers_1.getTreasuryAddressFromChainId)(sellAsset.chainId);
44
+ const referrerAddress = (0, helpers_2.tonAddressToOmnistonAddress)(tonTreasuryAddress);
45
+ const quoteResult = await (0, helpers_2.waitForQuote)(omniston, {
46
+ settlementMethods: [omniston_sdk_1.SettlementMethod.SETTLEMENT_METHOD_SWAP],
47
+ bidAssetAddress,
48
+ askAssetAddress,
49
+ amount: { bidUnits: sellAmountIncludingProtocolFeesCryptoBaseUnit },
50
+ referrerAddress,
51
+ referrerFeeBps,
52
+ settlementParams: {
53
+ maxPriceSlippageBps: slippageBps,
54
+ gaslessSettlement: 'GASLESS_SETTLEMENT_PROHIBITED',
55
+ flexibleReferrerFee: true,
56
+ },
57
+ }, constants_1.STONFI_QUOTE_TIMEOUT_MS);
58
+ if (quoteResult.type !== 'success') {
59
+ return (0, monads_1.Err)((0, utils_1.makeSwapErrorRight)({
60
+ message: `[Stonfi] No quote available for this pair`,
61
+ code: types_1.TradeQuoteError.NoRouteFound,
62
+ }));
63
+ }
64
+ const quote = quoteResult.quote;
65
+ const buyAmountCryptoBaseUnit = quote.askUnits;
66
+ const networkFeeCryptoBaseUnit = quote.gasBudget;
67
+ const rate = (0, helpers_2.calculateRate)(buyAmountCryptoBaseUnit, sellAmountIncludingProtocolFeesCryptoBaseUnit, buyAsset.precision, sellAsset.precision);
68
+ const tradeRate = {
69
+ id: quote.quoteId,
70
+ rate,
71
+ receiveAddress,
72
+ affiliateBps,
73
+ slippageTolerancePercentageDecimal: slippageTolerancePercentageDecimal ?? String(constants_1.STONFI_DEFAULT_SLIPPAGE_BPS / 10000),
74
+ quoteOrRate: 'rate',
75
+ swapperName: types_1.SwapperName.Stonfi,
76
+ steps: [
77
+ {
78
+ buyAmountBeforeFeesCryptoBaseUnit: buyAmountCryptoBaseUnit,
79
+ buyAmountAfterFeesCryptoBaseUnit: buyAmountCryptoBaseUnit,
80
+ sellAmountIncludingProtocolFeesCryptoBaseUnit,
81
+ feeData: {
82
+ networkFeeCryptoBaseUnit,
83
+ protocolFees: undefined,
84
+ },
85
+ rate,
86
+ source: types_1.SwapperName.Stonfi,
87
+ buyAsset,
88
+ sellAsset,
89
+ accountNumber: undefined,
90
+ allowanceContract: '0x0000000000000000000000000000000000000000',
91
+ estimatedExecutionTimeMs: 30000,
92
+ stonfiSpecific: buildStonfiSpecific(quote, bidAssetAddress, askAssetAddress),
93
+ affiliateFee: (0, affiliateFee_1.buildAffiliateFee)({
94
+ strategy: 'buy_asset',
95
+ affiliateBps,
96
+ sellAsset,
97
+ buyAsset,
98
+ sellAmountCryptoBaseUnit: sellAmountIncludingProtocolFeesCryptoBaseUnit,
99
+ buyAmountCryptoBaseUnit,
100
+ isEstimate: true,
101
+ }),
102
+ },
103
+ ],
104
+ };
105
+ return (0, monads_1.Ok)([tradeRate]);
106
+ }
107
+ catch (err) {
108
+ return (0, monads_1.Err)((0, utils_1.makeSwapErrorRight)({
109
+ message: `[Stonfi] Error getting rate: ${err}`,
110
+ code: types_1.TradeQuoteError.QueryFailed,
111
+ cause: err,
112
+ }));
113
+ }
114
+ };
115
+ exports.getTradeRate = getTradeRate;
@@ -0,0 +1,60 @@
1
+ import { KnownChainIds } from '@shapeshiftoss/types';
2
+ import type { Result } from '@sniptt/monads';
3
+ import type { Quote } from '@ston-fi/omniston-sdk';
4
+ import type { SwapErrorRight } from '../../types';
5
+ export type StonfiSupportedChainId = typeof KnownChainIds.TonMainnet;
6
+ export declare const stonfiSupportedChainIds: readonly [KnownChainIds.TonMainnet];
7
+ export type OmnistonAssetAddress = {
8
+ blockchain: number;
9
+ address: string;
10
+ };
11
+ export type TonAssetValidationResult = {
12
+ isValid: true;
13
+ bidAssetAddress: OmnistonAssetAddress;
14
+ askAssetAddress: OmnistonAssetAddress;
15
+ } | {
16
+ isValid: false;
17
+ error: Result<never, SwapErrorRight>;
18
+ };
19
+ export type QuoteResult = {
20
+ type: 'success';
21
+ quote: Quote;
22
+ } | {
23
+ type: 'noQuote';
24
+ } | {
25
+ type: 'timeout';
26
+ } | {
27
+ type: 'error';
28
+ error: unknown;
29
+ };
30
+ export type StonfiQuote = {
31
+ quoteId: string;
32
+ resolverId: string;
33
+ resolverName: string;
34
+ bidAssetAddress: string;
35
+ askAssetAddress: string;
36
+ bidUnits: string;
37
+ askUnits: string;
38
+ gasBudget: string;
39
+ estimatedGasConsumption: string;
40
+ tradeStartDeadline: number;
41
+ };
42
+ export type StonfiTradeSpecific = {
43
+ quoteId: string;
44
+ resolverId: string;
45
+ resolverName: string;
46
+ tradeStartDeadline: number;
47
+ gasBudget: string;
48
+ bidAssetAddress: OmnistonAssetAddress;
49
+ askAssetAddress: OmnistonAssetAddress;
50
+ bidUnits: string;
51
+ askUnits: string;
52
+ referrerAddress?: OmnistonAssetAddress;
53
+ referrerFeeAsset?: OmnistonAssetAddress;
54
+ referrerFeeUnits: string;
55
+ protocolFeeAsset?: OmnistonAssetAddress;
56
+ protocolFeeUnits: string;
57
+ quoteTimestamp: number;
58
+ estimatedGasConsumption: string;
59
+ params?: unknown;
60
+ };
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.stonfiSupportedChainIds = void 0;
4
+ const types_1 = require("@shapeshiftoss/types");
5
+ exports.stonfiSupportedChainIds = [types_1.KnownChainIds.TonMainnet];
@@ -0,0 +1,5 @@
1
+ import { KnownChainIds } from '@shapeshiftoss/types';
2
+ export declare const STONFI_SUPPORTED_CHAIN_IDS: readonly [KnownChainIds.TonMainnet];
3
+ export declare const STONFI_WEBSOCKET_URL = "wss://omni-ws.ston.fi";
4
+ export declare const STONFI_DEFAULT_SLIPPAGE_BPS = 100;
5
+ export declare const STONFI_QUOTE_TIMEOUT_MS = 30000;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.STONFI_QUOTE_TIMEOUT_MS = exports.STONFI_DEFAULT_SLIPPAGE_BPS = exports.STONFI_WEBSOCKET_URL = exports.STONFI_SUPPORTED_CHAIN_IDS = void 0;
4
+ const types_1 = require("@shapeshiftoss/types");
5
+ exports.STONFI_SUPPORTED_CHAIN_IDS = [types_1.KnownChainIds.TonMainnet];
6
+ exports.STONFI_WEBSOCKET_URL = 'wss://omni-ws.ston.fi';
7
+ exports.STONFI_DEFAULT_SLIPPAGE_BPS = 100;
8
+ exports.STONFI_QUOTE_TIMEOUT_MS = 30000;
@@ -0,0 +1,11 @@
1
+ import type { Asset } from '@shapeshiftoss/types';
2
+ import type { Omniston, QuoteRequest } from '@ston-fi/omniston-sdk';
3
+ import type { OmnistonAssetAddress, QuoteResult, TonAssetValidationResult } from '../types';
4
+ export declare const isTonAsset: (asset: Asset) => boolean;
5
+ export declare const assetToOmnistonAddress: (asset: Asset) => OmnistonAssetAddress | null;
6
+ export declare const validateTonAssets: (sellAsset: Asset, buyAsset: Asset) => TonAssetValidationResult;
7
+ export declare const calculateRate: (buyAmountCryptoBaseUnit: string, sellAmountCryptoBaseUnit: string, buyAssetPrecision: number, sellAssetPrecision: number) => string;
8
+ export declare const slippageDecimalToBps: (slippageTolerancePercentageDecimal: string | undefined, defaultSlippageBps: number) => number;
9
+ export declare const tonAddressToOmnistonAddress: (address: string) => OmnistonAssetAddress;
10
+ export declare const affiliateBpsToNumber: (affiliateBps: string | undefined) => number;
11
+ export declare const waitForQuote: (omniston: Omniston, request: QuoteRequest, timeoutMs: number) => Promise<QuoteResult>;
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.waitForQuote = exports.affiliateBpsToNumber = exports.tonAddressToOmnistonAddress = exports.slippageDecimalToBps = exports.calculateRate = exports.validateTonAssets = exports.assetToOmnistonAddress = exports.isTonAsset = void 0;
4
+ const caip_1 = require("@shapeshiftoss/caip");
5
+ const types_1 = require("@shapeshiftoss/types");
6
+ const utils_1 = require("@shapeshiftoss/utils");
7
+ const monads_1 = require("@sniptt/monads");
8
+ const omniston_sdk_1 = require("@ston-fi/omniston-sdk");
9
+ const types_2 = require("../../../types");
10
+ const utils_2 = require("../../../utils");
11
+ const isTonAsset = (asset) => {
12
+ return asset.chainId === types_1.KnownChainIds.TonMainnet;
13
+ };
14
+ exports.isTonAsset = isTonAsset;
15
+ const assetToOmnistonAddress = (asset) => {
16
+ if (!(0, exports.isTonAsset)(asset))
17
+ return null;
18
+ const { assetNamespace, assetReference } = (0, caip_1.fromAssetId)(asset.assetId);
19
+ if (assetNamespace === 'slip44') {
20
+ return {
21
+ blockchain: omniston_sdk_1.Blockchain.TON,
22
+ address: 'EQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM9c',
23
+ };
24
+ }
25
+ if (assetNamespace === 'jetton') {
26
+ return { blockchain: omniston_sdk_1.Blockchain.TON, address: assetReference };
27
+ }
28
+ return null;
29
+ };
30
+ exports.assetToOmnistonAddress = assetToOmnistonAddress;
31
+ const validateTonAssets = (sellAsset, buyAsset) => {
32
+ if (sellAsset.chainId !== types_1.KnownChainIds.TonMainnet) {
33
+ return {
34
+ isValid: false,
35
+ error: (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
36
+ message: `[Stonfi] Unsupported sell asset chain: ${sellAsset.chainId}`,
37
+ code: types_2.TradeQuoteError.UnsupportedChain,
38
+ })),
39
+ };
40
+ }
41
+ if (buyAsset.chainId !== types_1.KnownChainIds.TonMainnet) {
42
+ return {
43
+ isValid: false,
44
+ error: (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
45
+ message: `[Stonfi] Cross-chain swaps not supported`,
46
+ code: types_2.TradeQuoteError.CrossChainNotSupported,
47
+ })),
48
+ };
49
+ }
50
+ const bidAssetAddress = (0, exports.assetToOmnistonAddress)(sellAsset);
51
+ const askAssetAddress = (0, exports.assetToOmnistonAddress)(buyAsset);
52
+ if (!bidAssetAddress || !askAssetAddress) {
53
+ return {
54
+ isValid: false,
55
+ error: (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
56
+ message: `[Stonfi] Unable to convert assets to Omniston addresses`,
57
+ code: types_2.TradeQuoteError.UnsupportedTradePair,
58
+ })),
59
+ };
60
+ }
61
+ return {
62
+ isValid: true,
63
+ bidAssetAddress,
64
+ askAssetAddress,
65
+ };
66
+ };
67
+ exports.validateTonAssets = validateTonAssets;
68
+ const calculateRate = (buyAmountCryptoBaseUnit, sellAmountCryptoBaseUnit, buyAssetPrecision, sellAssetPrecision) => {
69
+ if ((0, utils_1.bn)(buyAmountCryptoBaseUnit).gt(0) && (0, utils_1.bn)(sellAmountCryptoBaseUnit).gt(0)) {
70
+ return (0, utils_1.convertPrecision)({
71
+ value: buyAmountCryptoBaseUnit,
72
+ inputExponent: buyAssetPrecision,
73
+ outputExponent: sellAssetPrecision,
74
+ })
75
+ .dividedBy((0, utils_1.bn)(sellAmountCryptoBaseUnit))
76
+ .toFixed();
77
+ }
78
+ return '0';
79
+ };
80
+ exports.calculateRate = calculateRate;
81
+ const slippageDecimalToBps = (slippageTolerancePercentageDecimal, defaultSlippageBps) => {
82
+ if (!slippageTolerancePercentageDecimal) {
83
+ return defaultSlippageBps;
84
+ }
85
+ const parsed = parseFloat(slippageTolerancePercentageDecimal);
86
+ if (Number.isNaN(parsed) || !Number.isFinite(parsed) || parsed < 0) {
87
+ return defaultSlippageBps;
88
+ }
89
+ return Math.round(parsed * 10000);
90
+ };
91
+ exports.slippageDecimalToBps = slippageDecimalToBps;
92
+ const tonAddressToOmnistonAddress = (address) => {
93
+ return {
94
+ blockchain: omniston_sdk_1.Blockchain.TON,
95
+ address,
96
+ };
97
+ };
98
+ exports.tonAddressToOmnistonAddress = tonAddressToOmnistonAddress;
99
+ const affiliateBpsToNumber = (affiliateBps) => {
100
+ if (!affiliateBps)
101
+ return 0;
102
+ const parsed = parseInt(affiliateBps, 10);
103
+ if (Number.isNaN(parsed) || !Number.isFinite(parsed) || parsed < 0)
104
+ return 0;
105
+ return parsed;
106
+ };
107
+ exports.affiliateBpsToNumber = affiliateBpsToNumber;
108
+ const waitForQuote = (omniston, request, timeoutMs) => {
109
+ return new Promise(resolve => {
110
+ const timer = setTimeout(() => {
111
+ subscription.unsubscribe();
112
+ resolve({ type: 'timeout' });
113
+ }, timeoutMs);
114
+ const subscription = omniston.requestForQuote(request).subscribe({
115
+ next: (event) => {
116
+ if (event.type === 'quoteUpdated' && event.quote) {
117
+ clearTimeout(timer);
118
+ subscription.unsubscribe();
119
+ resolve({ type: 'success', quote: event.quote });
120
+ }
121
+ else if (event.type === 'noQuote') {
122
+ clearTimeout(timer);
123
+ subscription.unsubscribe();
124
+ resolve({ type: 'noQuote' });
125
+ }
126
+ },
127
+ error: err => {
128
+ clearTimeout(timer);
129
+ subscription.unsubscribe();
130
+ resolve({ type: 'error', error: err });
131
+ },
132
+ });
133
+ });
134
+ };
135
+ exports.waitForQuote = waitForQuote;
@@ -0,0 +1,5 @@
1
+ import { Omniston } from '@ston-fi/omniston-sdk';
2
+ export declare const omnistonManager: {
3
+ getInstance: () => Omniston;
4
+ disconnect: () => void;
5
+ };
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.omnistonManager = void 0;
4
+ const omniston_sdk_1 = require("@ston-fi/omniston-sdk");
5
+ const constants_1 = require("./constants");
6
+ let cachedOmniston = null;
7
+ exports.omnistonManager = {
8
+ getInstance: () => {
9
+ if (!cachedOmniston) {
10
+ cachedOmniston = new omniston_sdk_1.Omniston({ apiUrl: constants_1.STONFI_WEBSOCKET_URL });
11
+ }
12
+ return cachedOmniston;
13
+ },
14
+ disconnect: () => {
15
+ if (cachedOmniston) {
16
+ cachedOmniston.close();
17
+ cachedOmniston = null;
18
+ }
19
+ },
20
+ };
@@ -46,7 +46,7 @@ exports.sunioApi = {
46
46
  const tronWeb = new tronweb_1.TronWeb({
47
47
  fullHost: rpcUrl,
48
48
  });
49
- const routeParams = (0, buildSwapRouteParameters_1.buildSwapRouteParameters)(sunioMetadata.route, step.sellAmountIncludingProtocolFeesCryptoBaseUnit, step.buyAmountAfterFeesCryptoBaseUnit, from, slippageTolerancePercentageDecimal);
49
+ const routeParams = (0, buildSwapRouteParameters_1.buildSwapRouteParameters)(sunioMetadata.route, step.sellAmountIncludingProtocolFeesCryptoBaseUnit, step.buyAmountAfterFeesCryptoBaseUnit, tradeQuote.receiveAddress, slippageTolerancePercentageDecimal);
50
50
  const parameters = [
51
51
  { type: 'address[]', value: routeParams.path },
52
52
  { type: 'string[]', value: routeParams.poolVersion },
@@ -7,6 +7,7 @@ const monads_1 = require("@sniptt/monads");
7
7
  const tronweb_1 = require("tronweb");
8
8
  const types_1 = require("../../../types");
9
9
  const utils_2 = require("../../../utils");
10
+ const affiliateFee_1 = require("../../utils/affiliateFee");
10
11
  const constants_1 = require("./constants");
11
12
  const fetchFromSunio_1 = require("./fetchFromSunio");
12
13
  const helpers_1 = require("./helpers/helpers");
@@ -136,9 +137,10 @@ async function getQuoteOrRate(input, deps) {
136
137
  }
137
138
  }
138
139
  }
139
- const buyAmountCryptoBaseUnit = (0, utils_1.bn)(bestRoute.amountOut)
140
- .times((0, utils_1.bn)(10).pow(buyAsset.precision))
141
- .toFixed(0);
140
+ const buyAmountCryptoBaseUnit = utils_1.BigAmount.fromPrecision({
141
+ value: bestRoute.amountOut,
142
+ precision: buyAsset.precision,
143
+ }).toBaseUnit();
142
144
  // Calculate protocol fees only for quotes
143
145
  const protocolFeeCryptoBaseUnit = isQuote
144
146
  ? (0, utils_1.bn)(bestRoute.fee).times(sellAmountIncludingProtocolFeesCryptoBaseUnit).toFixed(0)
@@ -186,6 +188,15 @@ async function getQuoteOrRate(input, deps) {
186
188
  route: bestRoute,
187
189
  },
188
190
  }),
191
+ affiliateFee: (0, affiliateFee_1.buildAffiliateFee)({
192
+ strategy: 'buy_asset',
193
+ affiliateBps,
194
+ sellAsset,
195
+ buyAsset,
196
+ sellAmountCryptoBaseUnit: sellAmountIncludingProtocolFeesCryptoBaseUnit,
197
+ buyAmountCryptoBaseUnit: buyAmountAfterFeesCryptoBaseUnit,
198
+ isEstimate: true,
199
+ }),
189
200
  },
190
201
  ],
191
202
  swapperName: types_1.SwapperName.Sunio,
@@ -10,6 +10,9 @@ exports.thorchainSwapper = {
10
10
  executeUtxoTransaction: (txToSign, { signAndBroadcastTransaction }) => {
11
11
  return signAndBroadcastTransaction(txToSign);
12
12
  },
13
+ executeSolanaTransaction: (txToSign, { signAndBroadcastTransaction }) => {
14
+ return signAndBroadcastTransaction(txToSign);
15
+ },
13
16
  executeTronTransaction: (txToSign, { signAndBroadcastTransaction }) => {
14
17
  return signAndBroadcastTransaction(txToSign);
15
18
  },
@@ -15,6 +15,8 @@ exports.thorchainApi = {
15
15
  getEvmTransactionFees: input => thorchain_utils_1.evm.getEvmTransactionFees(input, swapperName),
16
16
  getUnsignedUtxoTransaction: input => thorchain_utils_1.utxo.getUnsignedUtxoTransaction(input, swapperName),
17
17
  getUtxoTransactionFees: input => thorchain_utils_1.utxo.getUtxoTransactionFees(input, swapperName),
18
+ getUnsignedSolanaTransaction: input => thorchain_utils_1.solana.getUnsignedSolanaTransaction(input, swapperName),
19
+ getSolanaTransactionFees: input => thorchain_utils_1.solana.getSolanaTransactionFees(input, swapperName),
18
20
  getUnsignedTronTransaction: input => thorchain_utils_1.tron.getUnsignedTronTransaction(input, swapperName),
19
21
  getTronTransactionFees: input => thorchain_utils_1.tron.getTronTransactionFees(input, swapperName),
20
22
  getUnsignedCosmosSdkTransaction: async ({ tradeQuote, stepIndex, from, config, assertGetCosmosSdkChainAdapter, }) => {
@@ -37,6 +37,7 @@
37
37
  "ETH.YFI-0X0BC529C00C6401AEF6D220BE8C6EA1667F6AD93E": "eip155:1/erc20:0x0bc529c00c6401aef6d220be8c6ea1667f6ad93e",
38
38
  "GAIA.ATOM": "cosmos:cosmoshub-4/slip44:118",
39
39
  "LTC.LTC": "bip122:12a765e31ffd4059bada1e25190f6e98/slip44:2",
40
+ "SOL.SOL": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/slip44:501",
40
41
  "THOR.RUJI": "cosmos:thorchain-1/slip44:ruji",
41
42
  "THOR.TCY": "cosmos:thorchain-1/slip44:tcy",
42
43
  "TRON.TRX": "tron:0x2b6653dc/slip44:195",
@@ -1,5 +1,5 @@
1
1
  import type { AssetId } from '@shapeshiftoss/caip';
2
- export declare const assetIdToThorPoolAssetIdMap: import("lodash").Dictionary<string>;
2
+ export declare const assetIdToThorPoolAssetIdMap: Record<string, string>;
3
3
  export declare const thorPoolAssetIdToAssetId: (id: string) => AssetId | undefined;
4
4
  export declare const assetIdToThorPoolAssetId: ({ assetId }: {
5
5
  assetId: AssetId;
@@ -8,7 +8,8 @@ const invert_1 = __importDefault(require("lodash/invert"));
8
8
  const generatedTradableAssetMap_json_1 = __importDefault(require("../../generated/generatedTradableAssetMap.json"));
9
9
  const thorPoolIdAssetIdSymbolMap = generatedTradableAssetMap_json_1.default;
10
10
  exports.assetIdToThorPoolAssetIdMap = (0, invert_1.default)(thorPoolIdAssetIdSymbolMap);
11
+ const assetIdToThorPoolAssetIdMapLower = Object.fromEntries(Object.entries(exports.assetIdToThorPoolAssetIdMap).map(([k, v]) => [k.toLowerCase(), v]));
11
12
  const thorPoolAssetIdToAssetId = (id) => thorPoolIdAssetIdSymbolMap[id.toUpperCase()];
12
13
  exports.thorPoolAssetIdToAssetId = thorPoolAssetIdToAssetId;
13
- const assetIdToThorPoolAssetId = ({ assetId }) => exports.assetIdToThorPoolAssetIdMap[assetId.toLowerCase()];
14
+ const assetIdToThorPoolAssetId = ({ assetId }) => assetIdToThorPoolAssetIdMapLower[assetId.toLowerCase()];
14
15
  exports.assetIdToThorPoolAssetId = assetIdToThorPoolAssetId;
@@ -18,6 +18,10 @@ const poolAssetHelpers_1 = require("./poolAssetHelpers");
18
18
  const result = (0, poolAssetHelpers_1.thorPoolAssetIdToAssetId)('ETH.USDC-0XA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48');
19
19
  (0, vitest_1.expect)(result).toEqual(usdcAssetId);
20
20
  });
21
+ (0, vitest_1.it)('returns Solana assetId when poolAssetId is SOL.SOL', () => {
22
+ const result = (0, poolAssetHelpers_1.thorPoolAssetIdToAssetId)('SOL.SOL');
23
+ (0, vitest_1.expect)(result).toEqual(caip_1.solAssetId);
24
+ });
21
25
  (0, vitest_1.it)('returns undefined for an asset we dont support', () => {
22
26
  const result = (0, poolAssetHelpers_1.thorPoolAssetIdToAssetId)('BNB.AVA-645');
23
27
  (0, vitest_1.expect)(result).toEqual(undefined);
@@ -46,6 +50,12 @@ const poolAssetHelpers_1 = require("./poolAssetHelpers");
46
50
  const poolAssetId = 'ETH.USDC-0XA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48';
47
51
  (0, vitest_1.expect)(result).toEqual(poolAssetId);
48
52
  });
53
+ (0, vitest_1.it)('returns SOL pool when assetId is solAssetId (base58 case-sensitive)', () => {
54
+ const assetId = caip_1.solAssetId;
55
+ const result = (0, poolAssetHelpers_1.assetIdToThorPoolAssetId)({ assetId });
56
+ const poolAssetId = 'SOL.SOL';
57
+ (0, vitest_1.expect)(result).toEqual(poolAssetId);
58
+ });
49
59
  (0, vitest_1.it)('returns undefined for an unsupported asset', () => {
50
60
  const assetId = 'foobar';
51
61
  const result = (0, poolAssetHelpers_1.assetIdToThorPoolAssetId)({ assetId });
@@ -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 fetchFromZrx_1 = require("../utils/fetchFromZrx");
14
15
  const helpers_2 = require("../utils/helpers/helpers");
@@ -99,6 +100,14 @@ async function getZrxTradeQuote(input, assertGetEvmChainAdapter, assetsById, zrx
99
100
  buyAmountAfterFeesCryptoBaseUnit: buyAmount,
100
101
  sellAmountIncludingProtocolFeesCryptoBaseUnit,
101
102
  source: types_1.SwapperName.Zrx,
103
+ affiliateFee: (0, affiliateFee_1.buildAffiliateFee)({
104
+ strategy: 'buy_asset',
105
+ affiliateBps,
106
+ sellAsset,
107
+ buyAsset,
108
+ sellAmountCryptoBaseUnit: sellAmountIncludingProtocolFeesCryptoBaseUnit,
109
+ buyAmountCryptoBaseUnit: buyAmount,
110
+ }),
102
111
  permit2Eip712: permit2Eip712,
103
112
  zrxTransactionMetadata: transactionMetadata,
104
113
  },