@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
@@ -109,11 +109,121 @@ export const relayTokenToAssetId = (relayToken) => {
109
109
  assetReference: ASSET_REFERENCE.Plasma,
110
110
  assetNamespace: ASSET_NAMESPACE.slip44,
111
111
  };
112
+ case CHAIN_REFERENCE.MantleMainnet:
113
+ return {
114
+ assetReference: ASSET_REFERENCE.Mantle,
115
+ assetNamespace: ASSET_NAMESPACE.slip44,
116
+ };
117
+ case CHAIN_REFERENCE.InkMainnet:
118
+ return {
119
+ assetReference: ASSET_REFERENCE.Ink,
120
+ assetNamespace: ASSET_NAMESPACE.slip44,
121
+ };
122
+ case CHAIN_REFERENCE.MegaEthMainnet:
123
+ return {
124
+ assetReference: ASSET_REFERENCE.MegaEth,
125
+ assetNamespace: ASSET_NAMESPACE.slip44,
126
+ };
127
+ case CHAIN_REFERENCE.BerachainMainnet:
128
+ return {
129
+ assetReference: ASSET_REFERENCE.Berachain,
130
+ assetNamespace: ASSET_NAMESPACE.slip44,
131
+ };
112
132
  case CHAIN_REFERENCE.KatanaMainnet:
113
133
  return {
114
134
  assetReference: ASSET_REFERENCE.Katana,
115
135
  assetNamespace: ASSET_NAMESPACE.slip44,
116
136
  };
137
+ case CHAIN_REFERENCE.EtherealMainnet:
138
+ return {
139
+ assetReference: ASSET_REFERENCE.Ethereal,
140
+ assetNamespace: ASSET_NAMESPACE.slip44,
141
+ };
142
+ case CHAIN_REFERENCE.CeloMainnet:
143
+ return {
144
+ assetReference: ASSET_REFERENCE.Celo,
145
+ assetNamespace: ASSET_NAMESPACE.slip44,
146
+ };
147
+ case CHAIN_REFERENCE.FlowEvmMainnet:
148
+ return {
149
+ assetReference: ASSET_REFERENCE.FlowEvm,
150
+ assetNamespace: ASSET_NAMESPACE.slip44,
151
+ };
152
+ case CHAIN_REFERENCE.PlumeMainnet:
153
+ return {
154
+ assetReference: ASSET_REFERENCE.Plume,
155
+ assetNamespace: ASSET_NAMESPACE.slip44,
156
+ };
157
+ case CHAIN_REFERENCE.StoryMainnet:
158
+ return {
159
+ assetReference: ASSET_REFERENCE.Story,
160
+ assetNamespace: ASSET_NAMESPACE.slip44,
161
+ };
162
+ case CHAIN_REFERENCE.ZkSyncEraMainnet:
163
+ return {
164
+ assetReference: ASSET_REFERENCE.ZkSyncEra,
165
+ assetNamespace: ASSET_NAMESPACE.slip44,
166
+ };
167
+ case CHAIN_REFERENCE.BlastMainnet:
168
+ return {
169
+ assetReference: ASSET_REFERENCE.Blast,
170
+ assetNamespace: ASSET_NAMESPACE.slip44,
171
+ };
172
+ case CHAIN_REFERENCE.WorldChainMainnet:
173
+ return {
174
+ assetReference: ASSET_REFERENCE.WorldChain,
175
+ assetNamespace: ASSET_NAMESPACE.slip44,
176
+ };
177
+ case CHAIN_REFERENCE.HemiMainnet:
178
+ return {
179
+ assetReference: ASSET_REFERENCE.Hemi,
180
+ assetNamespace: ASSET_NAMESPACE.slip44,
181
+ };
182
+ case CHAIN_REFERENCE.LineaMainnet:
183
+ return {
184
+ assetReference: ASSET_REFERENCE.Linea,
185
+ assetNamespace: ASSET_NAMESPACE.slip44,
186
+ };
187
+ case CHAIN_REFERENCE.ScrollMainnet:
188
+ return {
189
+ assetReference: ASSET_REFERENCE.Scroll,
190
+ assetNamespace: ASSET_NAMESPACE.slip44,
191
+ };
192
+ case CHAIN_REFERENCE.CronosMainnet:
193
+ return {
194
+ assetReference: ASSET_REFERENCE.Cronos,
195
+ assetNamespace: ASSET_NAMESPACE.slip44,
196
+ };
197
+ case CHAIN_REFERENCE.SonicMainnet:
198
+ return {
199
+ assetReference: ASSET_REFERENCE.Sonic,
200
+ assetNamespace: ASSET_NAMESPACE.slip44,
201
+ };
202
+ case CHAIN_REFERENCE.UnichainMainnet:
203
+ return {
204
+ assetReference: ASSET_REFERENCE.Unichain,
205
+ assetNamespace: ASSET_NAMESPACE.slip44,
206
+ };
207
+ case CHAIN_REFERENCE.BobMainnet:
208
+ return {
209
+ assetReference: ASSET_REFERENCE.Bob,
210
+ assetNamespace: ASSET_NAMESPACE.slip44,
211
+ };
212
+ case CHAIN_REFERENCE.ModeMainnet:
213
+ return {
214
+ assetReference: ASSET_REFERENCE.Mode,
215
+ assetNamespace: ASSET_NAMESPACE.slip44,
216
+ };
217
+ case CHAIN_REFERENCE.SoneiumMainnet:
218
+ return {
219
+ assetReference: ASSET_REFERENCE.Soneium,
220
+ assetNamespace: ASSET_NAMESPACE.slip44,
221
+ };
222
+ case CHAIN_REFERENCE.SeiMainnet:
223
+ return {
224
+ assetReference: ASSET_REFERENCE.Sei,
225
+ assetNamespace: ASSET_NAMESPACE.slip44,
226
+ };
117
227
  default:
118
228
  throw Error(`chainId '${relayToken.chainId}' not supported`);
119
229
  }
@@ -22,6 +22,7 @@ export type RelayTransactionMetadata = {
22
22
  psbt?: string;
23
23
  opReturnData?: string;
24
24
  relayId: string;
25
+ orderId: string | undefined;
25
26
  };
26
27
  export type RelayStatus = {
27
28
  status: 'success' | 'failed' | 'pending' | 'refund' | 'delayed' | 'waiting';
@@ -120,10 +121,24 @@ export type RelayQuoteStep = {
120
121
  requestId: string;
121
122
  items?: RelayQuoteItem[];
122
123
  };
124
+ export type RelayProtocolV2 = {
125
+ orderId: string | undefined;
126
+ orderData?: unknown;
127
+ paymentDetails?: {
128
+ chainId: string;
129
+ depository: string;
130
+ currency: string;
131
+ amount: string;
132
+ };
133
+ };
134
+ export type RelayProtocol = {
135
+ v2?: RelayProtocolV2;
136
+ };
123
137
  export type RelayQuote = {
124
138
  fees: RelayFees;
125
139
  details: QuoteDetails;
126
140
  steps: RelayQuoteStep[];
141
+ protocol?: RelayProtocol;
127
142
  };
128
143
  export declare const isRelayQuoteUtxoItemData: (item: RelayQuoteUtxoItemData | RelayQuoteEvmItemData | RelayQuoteSolanaItemData | RelayQuoteTronItemData) => item is RelayQuoteUtxoItemData;
129
144
  export declare const isRelayQuoteEvmItemData: (item: RelayQuoteUtxoItemData | RelayQuoteEvmItemData | RelayQuoteSolanaItemData | RelayQuoteTronItemData) => item is RelayQuoteEvmItemData;
@@ -0,0 +1,2 @@
1
+ import type { Swapper } from '../../types.js';
2
+ export declare const stonfiSwapper: Swapper;
@@ -0,0 +1,5 @@
1
+ export const stonfiSwapper = {
2
+ executeTonTransaction: (txToSign, { signAndBroadcastTransaction }) => {
3
+ return signAndBroadcastTransaction(txToSign);
4
+ },
5
+ };
@@ -0,0 +1,2 @@
1
+ import type { SwapperApi } from '../../types.js';
2
+ export declare const stonfiApi: SwapperApi;
@@ -0,0 +1,224 @@
1
+ import { toAddressNList } from '@shapeshiftoss/chain-adapters';
2
+ import { TxStatus } from '@shapeshiftoss/unchained-client';
3
+ import { Blockchain } from '@ston-fi/omniston-sdk';
4
+ import { createDefaultStatusResponse, getExecutableTradeStep, isExecutableTradeQuote, } from '../../utils.js';
5
+ import { getTradeQuote } from './swapperApi/getTradeQuote.js';
6
+ import { getTradeRate } from './swapperApi/getTradeRate.js';
7
+ import { omnistonManager } from './utils/omnistonManager.js';
8
+ const TRADE_TRACKING_TIMEOUT_MS = 60000;
9
+ const waitForFirstTradeStatus = (request, timeoutMs) => {
10
+ const omniston = omnistonManager.getInstance();
11
+ return new Promise(resolve => {
12
+ const timer = setTimeout(() => {
13
+ subscription.unsubscribe();
14
+ resolve(null);
15
+ }, timeoutMs);
16
+ const subscription = omniston.trackTrade(request).subscribe({
17
+ next: (status) => {
18
+ clearTimeout(timer);
19
+ subscription.unsubscribe();
20
+ resolve(status);
21
+ },
22
+ error: err => {
23
+ console.error('[Stonfi] trackTrade error:', err);
24
+ clearTimeout(timer);
25
+ resolve(null);
26
+ },
27
+ });
28
+ });
29
+ };
30
+ export const stonfiApi = {
31
+ getTradeQuote: (input, _deps) => getTradeQuote(input),
32
+ getTradeRate: input => getTradeRate(input),
33
+ getUnsignedTonTransaction: async ({ stepIndex, tradeQuote, from, assertGetTonChainAdapter }) => {
34
+ if (!isExecutableTradeQuote(tradeQuote)) {
35
+ throw new Error('Unable to execute a trade rate quote');
36
+ }
37
+ const step = getExecutableTradeStep(tradeQuote, stepIndex);
38
+ const { accountNumber, sellAsset, stonfiSpecific } = step;
39
+ if (!stonfiSpecific) {
40
+ throw new Error('stonfiSpecific is required');
41
+ }
42
+ const adapter = assertGetTonChainAdapter(sellAsset.chainId);
43
+ const storedQuote = {
44
+ quoteId: stonfiSpecific.quoteId,
45
+ resolverId: stonfiSpecific.resolverId,
46
+ resolverName: stonfiSpecific.resolverName,
47
+ bidAssetAddress: stonfiSpecific.bidAssetAddress,
48
+ askAssetAddress: stonfiSpecific.askAssetAddress,
49
+ bidUnits: stonfiSpecific.bidUnits,
50
+ askUnits: stonfiSpecific.askUnits,
51
+ referrerAddress: stonfiSpecific.referrerAddress,
52
+ referrerFeeAsset: stonfiSpecific.referrerFeeAsset,
53
+ referrerFeeUnits: stonfiSpecific.referrerFeeUnits,
54
+ protocolFeeAsset: stonfiSpecific.protocolFeeAsset,
55
+ protocolFeeUnits: stonfiSpecific.protocolFeeUnits,
56
+ quoteTimestamp: stonfiSpecific.quoteTimestamp,
57
+ tradeStartDeadline: stonfiSpecific.tradeStartDeadline,
58
+ gasBudget: stonfiSpecific.gasBudget,
59
+ estimatedGasConsumption: stonfiSpecific.estimatedGasConsumption,
60
+ params: stonfiSpecific.params,
61
+ };
62
+ const omniston = omnistonManager.getInstance();
63
+ const maxRetries = 3;
64
+ let lastError = null;
65
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
66
+ try {
67
+ const txResponse = await omniston.buildTransfer({
68
+ sourceAddress: { blockchain: Blockchain.TON, address: from },
69
+ destinationAddress: {
70
+ blockchain: Blockchain.TON,
71
+ address: tradeQuote.receiveAddress,
72
+ },
73
+ quote: storedQuote,
74
+ useRecommendedSlippage: true,
75
+ });
76
+ if (!txResponse?.ton?.messages || txResponse.ton.messages.length === 0) {
77
+ throw new Error('No TON messages returned from buildTransfer');
78
+ }
79
+ const expireAt = Math.floor(Date.now() / 1000) + 300;
80
+ const convertBase64ToHex = (base64) => {
81
+ if (!base64)
82
+ return '';
83
+ return Buffer.from(base64, 'base64').toString('hex');
84
+ };
85
+ const rawMessages = txResponse.ton.messages.map(msg => ({
86
+ targetAddress: msg.targetAddress,
87
+ sendAmount: msg.sendAmount,
88
+ payload: convertBase64ToHex(msg.payload),
89
+ stateInit: convertBase64ToHex(msg.jettonWalletStateInit),
90
+ }));
91
+ const seqno = await adapter.getSeqno(from);
92
+ return {
93
+ addressNList: toAddressNList(adapter.getBip44Params({ accountNumber })),
94
+ rawMessages,
95
+ seqno,
96
+ expireAt,
97
+ };
98
+ }
99
+ catch (err) {
100
+ lastError = err instanceof Error ? err : new Error(String(err));
101
+ console.error(`[Stonfi] buildTransfer attempt ${attempt}/${maxRetries} failed:`, lastError.message);
102
+ if (attempt < maxRetries) {
103
+ await new Promise(resolve => setTimeout(resolve, 1000 * attempt));
104
+ }
105
+ }
106
+ }
107
+ throw lastError ?? new Error('Failed to build transfer after retries');
108
+ },
109
+ getTonTransactionFees: ({ tradeQuote, stepIndex }) => {
110
+ if (!isExecutableTradeQuote(tradeQuote)) {
111
+ throw new Error('Unable to execute a trade rate quote');
112
+ }
113
+ const step = getExecutableTradeStep(tradeQuote, stepIndex);
114
+ if (!step.feeData.networkFeeCryptoBaseUnit) {
115
+ throw new Error('Missing network fee in quote');
116
+ }
117
+ return Promise.resolve(step.feeData.networkFeeCryptoBaseUnit);
118
+ },
119
+ checkTradeStatus: async ({ swap, assertGetTonChainAdapter }) => {
120
+ if (!swap?.sellTxHash) {
121
+ return createDefaultStatusResponse();
122
+ }
123
+ const { sellTxHash } = swap;
124
+ const checkTxStatusViaChainAdapter = async () => {
125
+ try {
126
+ const adapter = assertGetTonChainAdapter(swap.sellAsset.chainId);
127
+ const tx = await adapter.parseTx(sellTxHash, '');
128
+ return {
129
+ status: tx.status,
130
+ buyTxHash: tx.status === TxStatus.Confirmed ? sellTxHash : undefined,
131
+ message: undefined,
132
+ };
133
+ }
134
+ catch (err) {
135
+ console.error('[Stonfi] Error checking tx status via chain adapter:', err);
136
+ return createDefaultStatusResponse(sellTxHash);
137
+ }
138
+ };
139
+ const { metadata } = swap;
140
+ if (!metadata?.quoteId) {
141
+ return checkTxStatusViaChainAdapter();
142
+ }
143
+ try {
144
+ const tradeStatus = await waitForFirstTradeStatus({
145
+ quoteId: metadata.quoteId,
146
+ traderWalletAddress: {
147
+ blockchain: Blockchain.TON,
148
+ address: swap.sellAccountId.split(':')[2] ?? '',
149
+ },
150
+ outgoingTxHash: sellTxHash,
151
+ }, TRADE_TRACKING_TIMEOUT_MS);
152
+ if (!tradeStatus?.status) {
153
+ return checkTxStatusViaChainAdapter();
154
+ }
155
+ const statusOneOf = tradeStatus.status;
156
+ if (statusOneOf.awaitingTransfer ||
157
+ statusOneOf.transferring ||
158
+ statusOneOf.swapping ||
159
+ statusOneOf.receivingFunds) {
160
+ const chainStatus = await checkTxStatusViaChainAdapter();
161
+ if (chainStatus.status === TxStatus.Confirmed) {
162
+ return chainStatus;
163
+ }
164
+ if (statusOneOf.awaitingTransfer) {
165
+ return {
166
+ status: TxStatus.Pending,
167
+ buyTxHash: undefined,
168
+ message: 'trade.statuses.awaitingDeposit',
169
+ };
170
+ }
171
+ if (statusOneOf.transferring) {
172
+ return {
173
+ status: TxStatus.Pending,
174
+ buyTxHash: undefined,
175
+ message: 'trade.statuses.depositing',
176
+ };
177
+ }
178
+ if (statusOneOf.swapping) {
179
+ return {
180
+ status: TxStatus.Pending,
181
+ buyTxHash: undefined,
182
+ message: 'trade.statuses.swapping',
183
+ };
184
+ }
185
+ if (statusOneOf.receivingFunds) {
186
+ return {
187
+ status: TxStatus.Pending,
188
+ buyTxHash: undefined,
189
+ message: 'trade.statuses.receivingFunds',
190
+ };
191
+ }
192
+ }
193
+ if (statusOneOf.tradeSettled) {
194
+ const result = statusOneOf.tradeSettled.result;
195
+ if (result === 'TRADE_RESULT_FULLY_FILLED') {
196
+ return {
197
+ status: TxStatus.Confirmed,
198
+ buyTxHash: sellTxHash,
199
+ message: undefined,
200
+ };
201
+ }
202
+ if (result === 'TRADE_RESULT_PARTIALLY_FILLED') {
203
+ return {
204
+ status: TxStatus.Confirmed,
205
+ buyTxHash: sellTxHash,
206
+ message: 'trade.statuses.partiallyFilled',
207
+ };
208
+ }
209
+ if (result === 'TRADE_RESULT_ABORTED') {
210
+ return {
211
+ status: TxStatus.Failed,
212
+ buyTxHash: undefined,
213
+ message: 'trade.statuses.aborted',
214
+ };
215
+ }
216
+ }
217
+ return checkTxStatusViaChainAdapter();
218
+ }
219
+ catch (err) {
220
+ console.error('[Stonfi] Error checking trade status via Omniston:', err);
221
+ return checkTxStatusViaChainAdapter();
222
+ }
223
+ },
224
+ };
@@ -0,0 +1,4 @@
1
+ export { stonfiApi } from './endpoints.js';
2
+ export { stonfiSwapper } from './StonfiSwapper.js';
3
+ export * from './types.js';
4
+ export { STONFI_SUPPORTED_CHAIN_IDS, STONFI_WEBSOCKET_URL } from './utils/constants.js';
@@ -0,0 +1,4 @@
1
+ export { stonfiApi } from './endpoints.js';
2
+ export { stonfiSwapper } from './StonfiSwapper.js';
3
+ export * from './types.js';
4
+ export { STONFI_SUPPORTED_CHAIN_IDS, STONFI_WEBSOCKET_URL } from './utils/constants.js';
@@ -0,0 +1,2 @@
1
+ import type { CommonTradeQuoteInput, TradeQuoteResult } from '../../../types.js';
2
+ export declare const getTradeQuote: (input: CommonTradeQuoteInput) => Promise<TradeQuoteResult>;
@@ -0,0 +1,125 @@
1
+ import { Err, Ok } from '@sniptt/monads';
2
+ import { SettlementMethod } from '@ston-fi/omniston-sdk';
3
+ import { SwapperName, TradeQuoteError } from '../../../types.js';
4
+ import { makeSwapErrorRight } from '../../../utils.js';
5
+ import { buildAffiliateFee } from '../../utils/affiliateFee.js';
6
+ import { getTreasuryAddressFromChainId } from '../../utils/helpers/helpers.js';
7
+ import { STONFI_DEFAULT_SLIPPAGE_BPS, STONFI_QUOTE_TIMEOUT_MS } from '../utils/constants.js';
8
+ import { affiliateBpsToNumber, calculateRate, slippageDecimalToBps, tonAddressToOmnistonAddress, validateTonAssets, waitForQuote, } from '../utils/helpers.js';
9
+ import { omnistonManager } from '../utils/omnistonManager.js';
10
+ const buildStonfiSpecific = (quote, bidAssetAddress, askAssetAddress) => ({
11
+ quoteId: quote.quoteId,
12
+ resolverId: quote.resolverId,
13
+ resolverName: quote.resolverName,
14
+ tradeStartDeadline: quote.tradeStartDeadline,
15
+ gasBudget: quote.gasBudget,
16
+ bidAssetAddress: quote.bidAssetAddress ?? bidAssetAddress,
17
+ askAssetAddress: quote.askAssetAddress ?? askAssetAddress,
18
+ bidUnits: quote.bidUnits,
19
+ askUnits: quote.askUnits,
20
+ referrerAddress: quote.referrerAddress,
21
+ referrerFeeAsset: quote.referrerFeeAsset,
22
+ referrerFeeUnits: quote.referrerFeeUnits,
23
+ protocolFeeAsset: quote.protocolFeeAsset,
24
+ protocolFeeUnits: quote.protocolFeeUnits,
25
+ quoteTimestamp: quote.quoteTimestamp,
26
+ estimatedGasConsumption: quote.estimatedGasConsumption,
27
+ params: quote.params,
28
+ });
29
+ export const getTradeQuote = async (input) => {
30
+ const { sellAsset, buyAsset, sellAmountIncludingProtocolFeesCryptoBaseUnit, receiveAddress, accountNumber, slippageTolerancePercentageDecimal, affiliateBps, } = input;
31
+ const validation = validateTonAssets(sellAsset, buyAsset);
32
+ if (!validation.isValid) {
33
+ return validation.error;
34
+ }
35
+ const { bidAssetAddress, askAssetAddress } = validation;
36
+ const omniston = omnistonManager.getInstance();
37
+ try {
38
+ const slippageBps = slippageDecimalToBps(slippageTolerancePercentageDecimal, STONFI_DEFAULT_SLIPPAGE_BPS);
39
+ const referrerFeeBps = affiliateBpsToNumber(affiliateBps);
40
+ const tonTreasuryAddress = getTreasuryAddressFromChainId(sellAsset.chainId);
41
+ const referrerAddress = tonAddressToOmnistonAddress(tonTreasuryAddress);
42
+ const quoteResult = await waitForQuote(omniston, {
43
+ settlementMethods: [SettlementMethod.SETTLEMENT_METHOD_SWAP],
44
+ bidAssetAddress,
45
+ askAssetAddress,
46
+ amount: { bidUnits: sellAmountIncludingProtocolFeesCryptoBaseUnit },
47
+ referrerAddress,
48
+ referrerFeeBps,
49
+ settlementParams: {
50
+ maxPriceSlippageBps: slippageBps,
51
+ gaslessSettlement: 'GASLESS_SETTLEMENT_PROHIBITED',
52
+ flexibleReferrerFee: true,
53
+ },
54
+ }, STONFI_QUOTE_TIMEOUT_MS);
55
+ if (quoteResult.type === 'error') {
56
+ console.error('[Stonfi] Quote request error:', quoteResult.error);
57
+ return Err(makeSwapErrorRight({
58
+ message: `[Stonfi] Connection error while fetching quote`,
59
+ code: TradeQuoteError.QueryFailed,
60
+ cause: quoteResult.error,
61
+ }));
62
+ }
63
+ if (quoteResult.type === 'timeout') {
64
+ return Err(makeSwapErrorRight({
65
+ message: `[Stonfi] Quote request timed out`,
66
+ code: TradeQuoteError.QueryFailed,
67
+ }));
68
+ }
69
+ if (quoteResult.type === 'noQuote') {
70
+ return Err(makeSwapErrorRight({
71
+ message: `[Stonfi] No quote available for this pair`,
72
+ code: TradeQuoteError.NoRouteFound,
73
+ }));
74
+ }
75
+ const quote = quoteResult.quote;
76
+ const buyAmountCryptoBaseUnit = quote.askUnits;
77
+ const networkFeeCryptoBaseUnit = quote.gasBudget;
78
+ const rate = calculateRate(buyAmountCryptoBaseUnit, sellAmountIncludingProtocolFeesCryptoBaseUnit, buyAsset.precision, sellAsset.precision);
79
+ const tradeQuote = {
80
+ id: quote.quoteId,
81
+ rate,
82
+ receiveAddress,
83
+ affiliateBps,
84
+ slippageTolerancePercentageDecimal: slippageTolerancePercentageDecimal ?? String(STONFI_DEFAULT_SLIPPAGE_BPS / 10000),
85
+ quoteOrRate: 'quote',
86
+ swapperName: SwapperName.Stonfi,
87
+ steps: [
88
+ {
89
+ buyAmountBeforeFeesCryptoBaseUnit: buyAmountCryptoBaseUnit,
90
+ buyAmountAfterFeesCryptoBaseUnit: buyAmountCryptoBaseUnit,
91
+ sellAmountIncludingProtocolFeesCryptoBaseUnit,
92
+ feeData: {
93
+ networkFeeCryptoBaseUnit,
94
+ protocolFees: undefined,
95
+ },
96
+ rate,
97
+ source: SwapperName.Stonfi,
98
+ buyAsset,
99
+ sellAsset,
100
+ accountNumber,
101
+ allowanceContract: '0x0',
102
+ estimatedExecutionTimeMs: 30000,
103
+ stonfiSpecific: buildStonfiSpecific(quote, bidAssetAddress, askAssetAddress),
104
+ affiliateFee: buildAffiliateFee({
105
+ strategy: 'buy_asset',
106
+ affiliateBps,
107
+ sellAsset,
108
+ buyAsset,
109
+ sellAmountCryptoBaseUnit: sellAmountIncludingProtocolFeesCryptoBaseUnit,
110
+ buyAmountCryptoBaseUnit,
111
+ isEstimate: true,
112
+ }),
113
+ },
114
+ ],
115
+ };
116
+ return Ok([tradeQuote]);
117
+ }
118
+ catch (err) {
119
+ return Err(makeSwapErrorRight({
120
+ message: `[Stonfi] Error getting quote: ${err}`,
121
+ code: TradeQuoteError.QueryFailed,
122
+ cause: err,
123
+ }));
124
+ }
125
+ };
@@ -0,0 +1,2 @@
1
+ import type { GetTradeRateInput, TradeRateResult } from '../../../types.js';
2
+ export declare const getTradeRate: (input: GetTradeRateInput) => Promise<TradeRateResult>;
@@ -0,0 +1,111 @@
1
+ import { Err, Ok } from '@sniptt/monads';
2
+ import { SettlementMethod } from '@ston-fi/omniston-sdk';
3
+ import { SwapperName, TradeQuoteError } from '../../../types.js';
4
+ import { makeSwapErrorRight } from '../../../utils.js';
5
+ import { buildAffiliateFee } from '../../utils/affiliateFee.js';
6
+ import { getTreasuryAddressFromChainId } from '../../utils/helpers/helpers.js';
7
+ import { STONFI_DEFAULT_SLIPPAGE_BPS, STONFI_QUOTE_TIMEOUT_MS } from '../utils/constants.js';
8
+ import { affiliateBpsToNumber, calculateRate, slippageDecimalToBps, tonAddressToOmnistonAddress, validateTonAssets, waitForQuote, } from '../utils/helpers.js';
9
+ import { omnistonManager } from '../utils/omnistonManager.js';
10
+ const buildStonfiSpecific = (quote, bidAssetAddress, askAssetAddress) => ({
11
+ quoteId: quote.quoteId,
12
+ resolverId: quote.resolverId,
13
+ resolverName: quote.resolverName,
14
+ tradeStartDeadline: quote.tradeStartDeadline,
15
+ gasBudget: quote.gasBudget,
16
+ bidAssetAddress: quote.bidAssetAddress ?? bidAssetAddress,
17
+ askAssetAddress: quote.askAssetAddress ?? askAssetAddress,
18
+ bidUnits: quote.bidUnits,
19
+ askUnits: quote.askUnits,
20
+ referrerAddress: quote.referrerAddress,
21
+ referrerFeeAsset: quote.referrerFeeAsset,
22
+ referrerFeeUnits: quote.referrerFeeUnits,
23
+ protocolFeeAsset: quote.protocolFeeAsset,
24
+ protocolFeeUnits: quote.protocolFeeUnits,
25
+ quoteTimestamp: quote.quoteTimestamp,
26
+ estimatedGasConsumption: quote.estimatedGasConsumption,
27
+ params: quote.params,
28
+ });
29
+ export const getTradeRate = async (input) => {
30
+ const { sellAsset, buyAsset, sellAmountIncludingProtocolFeesCryptoBaseUnit, receiveAddress, slippageTolerancePercentageDecimal, affiliateBps, } = input;
31
+ const validation = validateTonAssets(sellAsset, buyAsset);
32
+ if (!validation.isValid) {
33
+ return validation.error;
34
+ }
35
+ const { bidAssetAddress, askAssetAddress } = validation;
36
+ const omniston = omnistonManager.getInstance();
37
+ try {
38
+ const slippageBps = slippageDecimalToBps(slippageTolerancePercentageDecimal, STONFI_DEFAULT_SLIPPAGE_BPS);
39
+ const referrerFeeBps = affiliateBpsToNumber(affiliateBps);
40
+ const tonTreasuryAddress = getTreasuryAddressFromChainId(sellAsset.chainId);
41
+ const referrerAddress = tonAddressToOmnistonAddress(tonTreasuryAddress);
42
+ const quoteResult = await waitForQuote(omniston, {
43
+ settlementMethods: [SettlementMethod.SETTLEMENT_METHOD_SWAP],
44
+ bidAssetAddress,
45
+ askAssetAddress,
46
+ amount: { bidUnits: sellAmountIncludingProtocolFeesCryptoBaseUnit },
47
+ referrerAddress,
48
+ referrerFeeBps,
49
+ settlementParams: {
50
+ maxPriceSlippageBps: slippageBps,
51
+ gaslessSettlement: 'GASLESS_SETTLEMENT_PROHIBITED',
52
+ flexibleReferrerFee: true,
53
+ },
54
+ }, STONFI_QUOTE_TIMEOUT_MS);
55
+ if (quoteResult.type !== 'success') {
56
+ return Err(makeSwapErrorRight({
57
+ message: `[Stonfi] No quote available for this pair`,
58
+ code: TradeQuoteError.NoRouteFound,
59
+ }));
60
+ }
61
+ const quote = quoteResult.quote;
62
+ const buyAmountCryptoBaseUnit = quote.askUnits;
63
+ const networkFeeCryptoBaseUnit = quote.gasBudget;
64
+ const rate = calculateRate(buyAmountCryptoBaseUnit, sellAmountIncludingProtocolFeesCryptoBaseUnit, buyAsset.precision, sellAsset.precision);
65
+ const tradeRate = {
66
+ id: quote.quoteId,
67
+ rate,
68
+ receiveAddress,
69
+ affiliateBps,
70
+ slippageTolerancePercentageDecimal: slippageTolerancePercentageDecimal ?? String(STONFI_DEFAULT_SLIPPAGE_BPS / 10000),
71
+ quoteOrRate: 'rate',
72
+ swapperName: SwapperName.Stonfi,
73
+ steps: [
74
+ {
75
+ buyAmountBeforeFeesCryptoBaseUnit: buyAmountCryptoBaseUnit,
76
+ buyAmountAfterFeesCryptoBaseUnit: buyAmountCryptoBaseUnit,
77
+ sellAmountIncludingProtocolFeesCryptoBaseUnit,
78
+ feeData: {
79
+ networkFeeCryptoBaseUnit,
80
+ protocolFees: undefined,
81
+ },
82
+ rate,
83
+ source: SwapperName.Stonfi,
84
+ buyAsset,
85
+ sellAsset,
86
+ accountNumber: undefined,
87
+ allowanceContract: '0x0000000000000000000000000000000000000000',
88
+ estimatedExecutionTimeMs: 30000,
89
+ stonfiSpecific: buildStonfiSpecific(quote, bidAssetAddress, askAssetAddress),
90
+ affiliateFee: buildAffiliateFee({
91
+ strategy: 'buy_asset',
92
+ affiliateBps,
93
+ sellAsset,
94
+ buyAsset,
95
+ sellAmountCryptoBaseUnit: sellAmountIncludingProtocolFeesCryptoBaseUnit,
96
+ buyAmountCryptoBaseUnit,
97
+ isEstimate: true,
98
+ }),
99
+ },
100
+ ],
101
+ };
102
+ return Ok([tradeRate]);
103
+ }
104
+ catch (err) {
105
+ return Err(makeSwapErrorRight({
106
+ message: `[Stonfi] Error getting rate: ${err}`,
107
+ code: TradeQuoteError.QueryFailed,
108
+ cause: err,
109
+ }));
110
+ }
111
+ };