@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
@@ -23,11 +23,37 @@ exports.chainIdToRelayChainId = {
23
23
  [caip_1.gnosisChainId]: chains_1.gnosis.id,
24
24
  [caip_1.avalancheChainId]: chains_1.avalanche.id,
25
25
  [caip_1.bscChainId]: chains_1.bsc.id,
26
- [caip_1.tronChainId]: 728126428,
26
+ // DISABLED: Tron deposits are built as simple TRC20 transfers instead of depositErc20() vault calls,
27
+ // and the Relay indexer notification is never sent for non-EVM chains. This causes deposits to be
28
+ // untracked by Relay, resulting in stuck/lost funds. Re-enable once the Tron transaction building
29
+ // is verified to use the Relay quote calldata (depositErc20) correctly.
30
+ // [tronChainId]: 728126428,
27
31
  [caip_1.monadChainId]: chains_1.monad.id,
28
32
  [caip_1.hyperEvmChainId]: chains_1.hyperEvm.id,
33
+ [caip_1.mantleChainId]: chains_1.mantle.id,
34
+ [caip_1.inkChainId]: chains_1.ink.id,
35
+ [caip_1.megaethChainId]: 4326,
29
36
  [caip_1.plasmaChainId]: chains_1.plasma.id,
30
37
  [caip_1.katanaChainId]: chains_1.katana.id,
38
+ [caip_1.etherealChainId]: 5064014,
39
+ [caip_1.celoChainId]: chains_1.celo.id,
40
+ [caip_1.flowEvmChainId]: chains_1.flowMainnet.id,
41
+ [caip_1.plumeChainId]: chains_1.plumeMainnet.id,
42
+ [caip_1.storyChainId]: chains_1.story.id,
43
+ [caip_1.zkSyncEraChainId]: chains_1.zksync.id,
44
+ [caip_1.blastChainId]: chains_1.blast.id,
45
+ [caip_1.worldChainChainId]: chains_1.worldchain.id,
46
+ [caip_1.hemiChainId]: chains_1.hemi.id,
47
+ [caip_1.lineaChainId]: chains_1.linea.id,
48
+ [caip_1.berachainChainId]: chains_1.berachain.id,
49
+ [caip_1.scrollChainId]: chains_1.scroll.id,
50
+ [caip_1.cronosChainId]: chains_1.cronos.id,
51
+ [caip_1.sonicChainId]: chains_1.sonic.id,
52
+ [caip_1.unichainChainId]: chains_1.unichain.id,
53
+ [caip_1.bobChainId]: chains_1.bob.id,
54
+ [caip_1.modeChainId]: chains_1.mode.id,
55
+ [caip_1.soneiumChainId]: chains_1.soneium.id,
56
+ [caip_1.seiChainId]: chains_1.sei.id,
31
57
  };
32
58
  var RelayStatusMessage;
33
59
  (function (RelayStatusMessage) {
@@ -1,2 +1,2 @@
1
1
  import type { ChainId } from '@shapeshiftoss/caip';
2
- export declare const getRelayDefaultUserAddress: (chainId: ChainId) => "0x000000000000000000000000000000000000dead" | "bc1q4vxn43l44h30nkluqfxd9eckf45vr2awz38lwa" | "CbKGgVKLJFb8bBrf58DnAkdryX6ubewVytn7X957YwNr" | "TLsV52sRDL79HXGGm9yzwKibb6BeruhUzy";
2
+ export declare const getRelayDefaultUserAddress: (chainId: ChainId) => "0x000000000000000000000000000000000000dead" | "CbKGgVKLJFb8bBrf58DnAkdryX6ubewVytn7X957YwNr" | "bc1q4vxn43l44h30nkluqfxd9eckf45vr2awz38lwa" | "TLsV52sRDL79HXGGm9yzwKibb6BeruhUzy";
@@ -14,6 +14,7 @@ const viem_1 = require("viem");
14
14
  const types_1 = require("../../../types");
15
15
  const utils_2 = require("../../../utils");
16
16
  const tenderly_1 = require("../../../utils/tenderly");
17
+ const affiliateFee_1 = require("../../utils/affiliateFee");
17
18
  const helpers_1 = require("../../utils/helpers/helpers");
18
19
  const constant_1 = require("../constant");
19
20
  const getRelayAssetAddress_1 = require("../utils/getRelayAssetAddress");
@@ -142,6 +143,13 @@ async function getTrade({ input, deps, relayChainMap, }) {
142
143
  }));
143
144
  }
144
145
  const { data: quote } = maybeQuote.unwrap();
146
+ const orderId = quote.protocol?.v2?.orderId;
147
+ if (!orderId && sellAsset.chainId === caip_1.btcChainId) {
148
+ return (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
149
+ message: 'Relay quote missing protocol.v2.orderId',
150
+ code: types_1.TradeQuoteError.UnknownError,
151
+ }));
152
+ }
145
153
  const { slippageTolerance, currencyOut, timeEstimate } = quote.details;
146
154
  const buyAmountAfterFeesCryptoBaseUnit = currencyOut.amount;
147
155
  const rate = (0, utils_2.getInputOutputRate)({
@@ -336,7 +344,7 @@ async function getTrade({ input, deps, relayChainMap, }) {
336
344
  value: sellAmountIncludingProtocolFeesCryptoBaseUnit,
337
345
  chainSpecific: {
338
346
  pubkey: xpub ?? (0, getRelayDefaultUserAddress_1.getRelayDefaultUserAddress)(sellAsset.chainId),
339
- opReturnData: firstStep.requestId,
347
+ opReturnData: orderId,
340
348
  },
341
349
  sendMax: false,
342
350
  };
@@ -389,7 +397,7 @@ async function getTrade({ input, deps, relayChainMap, }) {
389
397
  // Fallback to Relay's gas amount
390
398
  return quote.fees.gas.amount;
391
399
  })();
392
- const steps = swapSteps.map((quoteStep) => {
400
+ const steps = await Promise.all(swapSteps.map(async (quoteStep) => {
393
401
  const selectedItem = quoteStep.items?.[0];
394
402
  if (!selectedItem)
395
403
  throw new Error('Relay quote step contains no items');
@@ -399,7 +407,7 @@ async function getTrade({ input, deps, relayChainMap, }) {
399
407
  .plus(relayerFeesBuyAssetCryptoBaseUnit)
400
408
  .plus(appFeesBaseUnit)
401
409
  .toFixed();
402
- const { allowanceContract, relayTransactionMetadata, solanaTransactionMetadata } = (() => {
410
+ const { allowanceContract, relayTransactionMetadata, solanaTransactionMetadata } = await (async () => {
403
411
  if (!selectedItem.data)
404
412
  throw new Error('Relay quote step contains no data');
405
413
  if ((0, types_2.isRelayQuoteUtxoItemData)(selectedItem.data)) {
@@ -411,9 +419,10 @@ async function getTrade({ input, deps, relayChainMap, }) {
411
419
  relayTransactionMetadata: {
412
420
  from: sendAddress,
413
421
  psbt: selectedItem.data.psbt,
414
- opReturnData: quoteStep.requestId,
422
+ opReturnData: orderId,
415
423
  to: relayer,
416
424
  relayId: quote.steps[0].requestId,
425
+ orderId,
417
426
  },
418
427
  solanaTransactionMetadata: undefined,
419
428
  };
@@ -431,19 +440,48 @@ async function getTrade({ input, deps, relayChainMap, }) {
431
440
  gasLimit: selectedItem.data?.gas,
432
441
  chainId: Number((0, caip_1.fromChainId)(sellAsset.chainId).chainReference),
433
442
  relayId: quote.steps[0].requestId,
443
+ orderId,
434
444
  },
435
445
  solanaTransactionMetadata: undefined,
436
446
  };
437
447
  }
438
448
  if ((0, types_2.isRelayQuoteSolanaItemData)(selectedItem.data)) {
449
+ const solanaInstructions = selectedItem.data?.instructions?.map(convertSolanaInstruction);
450
+ const addressLookupTableAddresses = selectedItem.data?.addressLookupTableAddresses;
451
+ // Build a trial VersionedTransaction to check if it exceeds the 1232-byte Solana tx size limit
452
+ const isOversized = await (async () => {
453
+ if (!solanaInstructions?.length || !sendAddress)
454
+ return false;
455
+ try {
456
+ const adapter = deps.assertGetSolanaChainAdapter(sellAsset.chainId);
457
+ const lookupTableInfos = await adapter.getAddressLookupTableAccounts(addressLookupTableAddresses);
458
+ const lookupTableAccounts = lookupTableInfos.map(info => new web3_js_1.AddressLookupTableAccount({
459
+ key: new web3_js_1.PublicKey(info.key),
460
+ state: web3_js_1.AddressLookupTableAccount.deserialize(new Uint8Array(info.data)),
461
+ }));
462
+ const messageV0 = web3_js_1.MessageV0.compile({
463
+ payerKey: new web3_js_1.PublicKey(sendAddress),
464
+ instructions: solanaInstructions,
465
+ recentBlockhash: web3_js_1.PublicKey.default.toString(),
466
+ addressLookupTableAccounts: lookupTableAccounts,
467
+ });
468
+ const txBytes = new web3_js_1.VersionedTransaction(messageV0).serialize();
469
+ return txBytes.length > 1232;
470
+ }
471
+ catch {
472
+ return false;
473
+ }
474
+ })();
439
475
  return {
440
476
  allowanceContract: '',
441
477
  solanaTransactionMetadata: {
442
- addressLookupTableAddresses: selectedItem.data?.addressLookupTableAddresses,
443
- instructions: selectedItem.data?.instructions?.map(convertSolanaInstruction),
478
+ addressLookupTableAddresses,
479
+ instructions: solanaInstructions,
480
+ isOversized,
444
481
  },
445
482
  relayTransactionMetadata: {
446
483
  relayId: quote.steps[0].requestId,
484
+ orderId,
447
485
  },
448
486
  };
449
487
  }
@@ -453,6 +491,7 @@ async function getTrade({ input, deps, relayChainMap, }) {
453
491
  solanaTransactionMetadata: undefined,
454
492
  relayTransactionMetadata: {
455
493
  relayId: quote.steps[0].requestId,
494
+ orderId,
456
495
  to: selectedItem.data?.parameter?.contract_address,
457
496
  },
458
497
  };
@@ -483,8 +522,19 @@ async function getTrade({ input, deps, relayChainMap, }) {
483
522
  estimatedExecutionTimeMs: timeEstimate * 1000,
484
523
  solanaTransactionMetadata,
485
524
  relayTransactionMetadata,
525
+ affiliateFee: (0, affiliateFee_1.buildAffiliateFee)({
526
+ strategy: 'fixed_asset',
527
+ affiliateBps,
528
+ sellAsset,
529
+ buyAsset,
530
+ sellAmountCryptoBaseUnit: sellAmountIncludingProtocolFeesCryptoBaseUnit,
531
+ buyAmountCryptoBaseUnit: buyAmountAfterFeesCryptoBaseUnit,
532
+ fixedAssetId: (0, utils_1.chainIdToFeeAssetId)(caip_1.baseChainId),
533
+ fixedAsset: deps.assetsById[(0, utils_1.chainIdToFeeAssetId)(caip_1.baseChainId)],
534
+ isEstimate: true,
535
+ }),
486
536
  };
487
- });
537
+ }));
488
538
  const baseQuoteOrRate = {
489
539
  id: quote.steps[0].requestId,
490
540
  rate,
@@ -112,11 +112,121 @@ const relayTokenToAssetId = (relayToken) => {
112
112
  assetReference: caip_1.ASSET_REFERENCE.Plasma,
113
113
  assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
114
114
  };
115
+ case caip_1.CHAIN_REFERENCE.MantleMainnet:
116
+ return {
117
+ assetReference: caip_1.ASSET_REFERENCE.Mantle,
118
+ assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
119
+ };
120
+ case caip_1.CHAIN_REFERENCE.InkMainnet:
121
+ return {
122
+ assetReference: caip_1.ASSET_REFERENCE.Ink,
123
+ assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
124
+ };
125
+ case caip_1.CHAIN_REFERENCE.MegaEthMainnet:
126
+ return {
127
+ assetReference: caip_1.ASSET_REFERENCE.MegaEth,
128
+ assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
129
+ };
130
+ case caip_1.CHAIN_REFERENCE.BerachainMainnet:
131
+ return {
132
+ assetReference: caip_1.ASSET_REFERENCE.Berachain,
133
+ assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
134
+ };
115
135
  case caip_1.CHAIN_REFERENCE.KatanaMainnet:
116
136
  return {
117
137
  assetReference: caip_1.ASSET_REFERENCE.Katana,
118
138
  assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
119
139
  };
140
+ case caip_1.CHAIN_REFERENCE.EtherealMainnet:
141
+ return {
142
+ assetReference: caip_1.ASSET_REFERENCE.Ethereal,
143
+ assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
144
+ };
145
+ case caip_1.CHAIN_REFERENCE.CeloMainnet:
146
+ return {
147
+ assetReference: caip_1.ASSET_REFERENCE.Celo,
148
+ assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
149
+ };
150
+ case caip_1.CHAIN_REFERENCE.FlowEvmMainnet:
151
+ return {
152
+ assetReference: caip_1.ASSET_REFERENCE.FlowEvm,
153
+ assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
154
+ };
155
+ case caip_1.CHAIN_REFERENCE.PlumeMainnet:
156
+ return {
157
+ assetReference: caip_1.ASSET_REFERENCE.Plume,
158
+ assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
159
+ };
160
+ case caip_1.CHAIN_REFERENCE.StoryMainnet:
161
+ return {
162
+ assetReference: caip_1.ASSET_REFERENCE.Story,
163
+ assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
164
+ };
165
+ case caip_1.CHAIN_REFERENCE.ZkSyncEraMainnet:
166
+ return {
167
+ assetReference: caip_1.ASSET_REFERENCE.ZkSyncEra,
168
+ assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
169
+ };
170
+ case caip_1.CHAIN_REFERENCE.BlastMainnet:
171
+ return {
172
+ assetReference: caip_1.ASSET_REFERENCE.Blast,
173
+ assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
174
+ };
175
+ case caip_1.CHAIN_REFERENCE.WorldChainMainnet:
176
+ return {
177
+ assetReference: caip_1.ASSET_REFERENCE.WorldChain,
178
+ assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
179
+ };
180
+ case caip_1.CHAIN_REFERENCE.HemiMainnet:
181
+ return {
182
+ assetReference: caip_1.ASSET_REFERENCE.Hemi,
183
+ assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
184
+ };
185
+ case caip_1.CHAIN_REFERENCE.LineaMainnet:
186
+ return {
187
+ assetReference: caip_1.ASSET_REFERENCE.Linea,
188
+ assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
189
+ };
190
+ case caip_1.CHAIN_REFERENCE.ScrollMainnet:
191
+ return {
192
+ assetReference: caip_1.ASSET_REFERENCE.Scroll,
193
+ assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
194
+ };
195
+ case caip_1.CHAIN_REFERENCE.CronosMainnet:
196
+ return {
197
+ assetReference: caip_1.ASSET_REFERENCE.Cronos,
198
+ assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
199
+ };
200
+ case caip_1.CHAIN_REFERENCE.SonicMainnet:
201
+ return {
202
+ assetReference: caip_1.ASSET_REFERENCE.Sonic,
203
+ assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
204
+ };
205
+ case caip_1.CHAIN_REFERENCE.UnichainMainnet:
206
+ return {
207
+ assetReference: caip_1.ASSET_REFERENCE.Unichain,
208
+ assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
209
+ };
210
+ case caip_1.CHAIN_REFERENCE.BobMainnet:
211
+ return {
212
+ assetReference: caip_1.ASSET_REFERENCE.Bob,
213
+ assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
214
+ };
215
+ case caip_1.CHAIN_REFERENCE.ModeMainnet:
216
+ return {
217
+ assetReference: caip_1.ASSET_REFERENCE.Mode,
218
+ assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
219
+ };
220
+ case caip_1.CHAIN_REFERENCE.SoneiumMainnet:
221
+ return {
222
+ assetReference: caip_1.ASSET_REFERENCE.Soneium,
223
+ assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
224
+ };
225
+ case caip_1.CHAIN_REFERENCE.SeiMainnet:
226
+ return {
227
+ assetReference: caip_1.ASSET_REFERENCE.Sei,
228
+ assetNamespace: caip_1.ASSET_NAMESPACE.slip44,
229
+ };
120
230
  default:
121
231
  throw Error(`chainId '${relayToken.chainId}' not supported`);
122
232
  }
@@ -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';
2
+ export declare const stonfiSwapper: Swapper;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.stonfiSwapper = void 0;
4
+ exports.stonfiSwapper = {
5
+ executeTonTransaction: (txToSign, { signAndBroadcastTransaction }) => {
6
+ return signAndBroadcastTransaction(txToSign);
7
+ },
8
+ };
@@ -0,0 +1,2 @@
1
+ import type { SwapperApi } from '../../types';
2
+ export declare const stonfiApi: SwapperApi;
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.stonfiApi = void 0;
4
+ const chain_adapters_1 = require("@shapeshiftoss/chain-adapters");
5
+ const unchained_client_1 = require("@shapeshiftoss/unchained-client");
6
+ const omniston_sdk_1 = require("@ston-fi/omniston-sdk");
7
+ const utils_1 = require("../../utils");
8
+ const getTradeQuote_1 = require("./swapperApi/getTradeQuote");
9
+ const getTradeRate_1 = require("./swapperApi/getTradeRate");
10
+ const omnistonManager_1 = require("./utils/omnistonManager");
11
+ const TRADE_TRACKING_TIMEOUT_MS = 60000;
12
+ const waitForFirstTradeStatus = (request, timeoutMs) => {
13
+ const omniston = omnistonManager_1.omnistonManager.getInstance();
14
+ return new Promise(resolve => {
15
+ const timer = setTimeout(() => {
16
+ subscription.unsubscribe();
17
+ resolve(null);
18
+ }, timeoutMs);
19
+ const subscription = omniston.trackTrade(request).subscribe({
20
+ next: (status) => {
21
+ clearTimeout(timer);
22
+ subscription.unsubscribe();
23
+ resolve(status);
24
+ },
25
+ error: err => {
26
+ console.error('[Stonfi] trackTrade error:', err);
27
+ clearTimeout(timer);
28
+ resolve(null);
29
+ },
30
+ });
31
+ });
32
+ };
33
+ exports.stonfiApi = {
34
+ getTradeQuote: (input, _deps) => (0, getTradeQuote_1.getTradeQuote)(input),
35
+ getTradeRate: input => (0, getTradeRate_1.getTradeRate)(input),
36
+ getUnsignedTonTransaction: async ({ stepIndex, tradeQuote, from, assertGetTonChainAdapter }) => {
37
+ if (!(0, utils_1.isExecutableTradeQuote)(tradeQuote)) {
38
+ throw new Error('Unable to execute a trade rate quote');
39
+ }
40
+ const step = (0, utils_1.getExecutableTradeStep)(tradeQuote, stepIndex);
41
+ const { accountNumber, sellAsset, stonfiSpecific } = step;
42
+ if (!stonfiSpecific) {
43
+ throw new Error('stonfiSpecific is required');
44
+ }
45
+ const adapter = assertGetTonChainAdapter(sellAsset.chainId);
46
+ const storedQuote = {
47
+ quoteId: stonfiSpecific.quoteId,
48
+ resolverId: stonfiSpecific.resolverId,
49
+ resolverName: stonfiSpecific.resolverName,
50
+ bidAssetAddress: stonfiSpecific.bidAssetAddress,
51
+ askAssetAddress: stonfiSpecific.askAssetAddress,
52
+ bidUnits: stonfiSpecific.bidUnits,
53
+ askUnits: stonfiSpecific.askUnits,
54
+ referrerAddress: stonfiSpecific.referrerAddress,
55
+ referrerFeeAsset: stonfiSpecific.referrerFeeAsset,
56
+ referrerFeeUnits: stonfiSpecific.referrerFeeUnits,
57
+ protocolFeeAsset: stonfiSpecific.protocolFeeAsset,
58
+ protocolFeeUnits: stonfiSpecific.protocolFeeUnits,
59
+ quoteTimestamp: stonfiSpecific.quoteTimestamp,
60
+ tradeStartDeadline: stonfiSpecific.tradeStartDeadline,
61
+ gasBudget: stonfiSpecific.gasBudget,
62
+ estimatedGasConsumption: stonfiSpecific.estimatedGasConsumption,
63
+ params: stonfiSpecific.params,
64
+ };
65
+ const omniston = omnistonManager_1.omnistonManager.getInstance();
66
+ const maxRetries = 3;
67
+ let lastError = null;
68
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
69
+ try {
70
+ const txResponse = await omniston.buildTransfer({
71
+ sourceAddress: { blockchain: omniston_sdk_1.Blockchain.TON, address: from },
72
+ destinationAddress: {
73
+ blockchain: omniston_sdk_1.Blockchain.TON,
74
+ address: tradeQuote.receiveAddress,
75
+ },
76
+ quote: storedQuote,
77
+ useRecommendedSlippage: true,
78
+ });
79
+ if (!txResponse?.ton?.messages || txResponse.ton.messages.length === 0) {
80
+ throw new Error('No TON messages returned from buildTransfer');
81
+ }
82
+ const expireAt = Math.floor(Date.now() / 1000) + 300;
83
+ const convertBase64ToHex = (base64) => {
84
+ if (!base64)
85
+ return '';
86
+ return Buffer.from(base64, 'base64').toString('hex');
87
+ };
88
+ const rawMessages = txResponse.ton.messages.map(msg => ({
89
+ targetAddress: msg.targetAddress,
90
+ sendAmount: msg.sendAmount,
91
+ payload: convertBase64ToHex(msg.payload),
92
+ stateInit: convertBase64ToHex(msg.jettonWalletStateInit),
93
+ }));
94
+ const seqno = await adapter.getSeqno(from);
95
+ return {
96
+ addressNList: (0, chain_adapters_1.toAddressNList)(adapter.getBip44Params({ accountNumber })),
97
+ rawMessages,
98
+ seqno,
99
+ expireAt,
100
+ };
101
+ }
102
+ catch (err) {
103
+ lastError = err instanceof Error ? err : new Error(String(err));
104
+ console.error(`[Stonfi] buildTransfer attempt ${attempt}/${maxRetries} failed:`, lastError.message);
105
+ if (attempt < maxRetries) {
106
+ await new Promise(resolve => setTimeout(resolve, 1000 * attempt));
107
+ }
108
+ }
109
+ }
110
+ throw lastError ?? new Error('Failed to build transfer after retries');
111
+ },
112
+ getTonTransactionFees: ({ tradeQuote, stepIndex }) => {
113
+ if (!(0, utils_1.isExecutableTradeQuote)(tradeQuote)) {
114
+ throw new Error('Unable to execute a trade rate quote');
115
+ }
116
+ const step = (0, utils_1.getExecutableTradeStep)(tradeQuote, stepIndex);
117
+ if (!step.feeData.networkFeeCryptoBaseUnit) {
118
+ throw new Error('Missing network fee in quote');
119
+ }
120
+ return Promise.resolve(step.feeData.networkFeeCryptoBaseUnit);
121
+ },
122
+ checkTradeStatus: async ({ swap, assertGetTonChainAdapter }) => {
123
+ if (!swap?.sellTxHash) {
124
+ return (0, utils_1.createDefaultStatusResponse)();
125
+ }
126
+ const { sellTxHash } = swap;
127
+ const checkTxStatusViaChainAdapter = async () => {
128
+ try {
129
+ const adapter = assertGetTonChainAdapter(swap.sellAsset.chainId);
130
+ const tx = await adapter.parseTx(sellTxHash, '');
131
+ return {
132
+ status: tx.status,
133
+ buyTxHash: tx.status === unchained_client_1.TxStatus.Confirmed ? sellTxHash : undefined,
134
+ message: undefined,
135
+ };
136
+ }
137
+ catch (err) {
138
+ console.error('[Stonfi] Error checking tx status via chain adapter:', err);
139
+ return (0, utils_1.createDefaultStatusResponse)(sellTxHash);
140
+ }
141
+ };
142
+ const { metadata } = swap;
143
+ if (!metadata?.quoteId) {
144
+ return checkTxStatusViaChainAdapter();
145
+ }
146
+ try {
147
+ const tradeStatus = await waitForFirstTradeStatus({
148
+ quoteId: metadata.quoteId,
149
+ traderWalletAddress: {
150
+ blockchain: omniston_sdk_1.Blockchain.TON,
151
+ address: swap.sellAccountId.split(':')[2] ?? '',
152
+ },
153
+ outgoingTxHash: sellTxHash,
154
+ }, TRADE_TRACKING_TIMEOUT_MS);
155
+ if (!tradeStatus?.status) {
156
+ return checkTxStatusViaChainAdapter();
157
+ }
158
+ const statusOneOf = tradeStatus.status;
159
+ if (statusOneOf.awaitingTransfer ||
160
+ statusOneOf.transferring ||
161
+ statusOneOf.swapping ||
162
+ statusOneOf.receivingFunds) {
163
+ const chainStatus = await checkTxStatusViaChainAdapter();
164
+ if (chainStatus.status === unchained_client_1.TxStatus.Confirmed) {
165
+ return chainStatus;
166
+ }
167
+ if (statusOneOf.awaitingTransfer) {
168
+ return {
169
+ status: unchained_client_1.TxStatus.Pending,
170
+ buyTxHash: undefined,
171
+ message: 'trade.statuses.awaitingDeposit',
172
+ };
173
+ }
174
+ if (statusOneOf.transferring) {
175
+ return {
176
+ status: unchained_client_1.TxStatus.Pending,
177
+ buyTxHash: undefined,
178
+ message: 'trade.statuses.depositing',
179
+ };
180
+ }
181
+ if (statusOneOf.swapping) {
182
+ return {
183
+ status: unchained_client_1.TxStatus.Pending,
184
+ buyTxHash: undefined,
185
+ message: 'trade.statuses.swapping',
186
+ };
187
+ }
188
+ if (statusOneOf.receivingFunds) {
189
+ return {
190
+ status: unchained_client_1.TxStatus.Pending,
191
+ buyTxHash: undefined,
192
+ message: 'trade.statuses.receivingFunds',
193
+ };
194
+ }
195
+ }
196
+ if (statusOneOf.tradeSettled) {
197
+ const result = statusOneOf.tradeSettled.result;
198
+ if (result === 'TRADE_RESULT_FULLY_FILLED') {
199
+ return {
200
+ status: unchained_client_1.TxStatus.Confirmed,
201
+ buyTxHash: sellTxHash,
202
+ message: undefined,
203
+ };
204
+ }
205
+ if (result === 'TRADE_RESULT_PARTIALLY_FILLED') {
206
+ return {
207
+ status: unchained_client_1.TxStatus.Confirmed,
208
+ buyTxHash: sellTxHash,
209
+ message: 'trade.statuses.partiallyFilled',
210
+ };
211
+ }
212
+ if (result === 'TRADE_RESULT_ABORTED') {
213
+ return {
214
+ status: unchained_client_1.TxStatus.Failed,
215
+ buyTxHash: undefined,
216
+ message: 'trade.statuses.aborted',
217
+ };
218
+ }
219
+ }
220
+ return checkTxStatusViaChainAdapter();
221
+ }
222
+ catch (err) {
223
+ console.error('[Stonfi] Error checking trade status via Omniston:', err);
224
+ return checkTxStatusViaChainAdapter();
225
+ }
226
+ },
227
+ };
@@ -0,0 +1,4 @@
1
+ export { stonfiApi } from './endpoints';
2
+ export { stonfiSwapper } from './StonfiSwapper';
3
+ export * from './types';
4
+ export { STONFI_SUPPORTED_CHAIN_IDS, STONFI_WEBSOCKET_URL } from './utils/constants';
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.STONFI_WEBSOCKET_URL = exports.STONFI_SUPPORTED_CHAIN_IDS = exports.stonfiSwapper = exports.stonfiApi = void 0;
18
+ var endpoints_1 = require("./endpoints");
19
+ Object.defineProperty(exports, "stonfiApi", { enumerable: true, get: function () { return endpoints_1.stonfiApi; } });
20
+ var StonfiSwapper_1 = require("./StonfiSwapper");
21
+ Object.defineProperty(exports, "stonfiSwapper", { enumerable: true, get: function () { return StonfiSwapper_1.stonfiSwapper; } });
22
+ __exportStar(require("./types"), exports);
23
+ var constants_1 = require("./utils/constants");
24
+ Object.defineProperty(exports, "STONFI_SUPPORTED_CHAIN_IDS", { enumerable: true, get: function () { return constants_1.STONFI_SUPPORTED_CHAIN_IDS; } });
25
+ Object.defineProperty(exports, "STONFI_WEBSOCKET_URL", { enumerable: true, get: function () { return constants_1.STONFI_WEBSOCKET_URL; } });
@@ -0,0 +1,2 @@
1
+ import type { CommonTradeQuoteInput, TradeQuoteResult } from '../../../types';
2
+ export declare const getTradeQuote: (input: CommonTradeQuoteInput) => Promise<TradeQuoteResult>;