@shapeshiftoss/swapper 20.2.0 → 20.4.0

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 (361) hide show
  1. package/dist/cjs/.tsbuildinfo +1 -1
  2. package/dist/cjs/constants.js +15 -0
  3. package/dist/cjs/index.d.ts +2 -0
  4. package/dist/cjs/index.js +2 -0
  5. package/dist/cjs/swappers/ArbitrumBridgeSwapper/getTradeQuote/getTradeQuote.js +0 -2
  6. package/dist/cjs/swappers/AvnuSwapper/swapperApi/getTradeQuote.js +1 -2
  7. package/dist/cjs/swappers/BebopSwapper/utils/fetchFromBebop.d.ts +2 -1
  8. package/dist/cjs/swappers/BebopSwapper/utils/fetchFromBebop.js +21 -15
  9. package/dist/cjs/swappers/BebopSwapper/utils/getBebopSolanaTradeContext.js +1 -0
  10. package/dist/cjs/swappers/BobGatewaySwapper/BobGatewaySwapper.js +10 -1
  11. package/dist/cjs/swappers/BobGatewaySwapper/endpoints.js +2 -33
  12. package/dist/cjs/swappers/BobGatewaySwapper/swapperApi/getTradeQuote.js +5 -10
  13. package/dist/cjs/swappers/BobGatewaySwapper/swapperApi/getTradeRate.js +1 -2
  14. package/dist/cjs/swappers/BobGatewaySwapper/types.d.ts +3 -3
  15. package/dist/cjs/swappers/BobGatewaySwapper/utils/constants.d.ts +3 -2
  16. package/dist/cjs/swappers/BobGatewaySwapper/utils/constants.js +8 -5
  17. package/dist/cjs/swappers/BobGatewaySwapper/utils/getBobGatewayStepData.d.ts +2 -2
  18. package/dist/cjs/swappers/BobGatewaySwapper/utils/getBobGatewayStepData.js +30 -34
  19. package/dist/cjs/swappers/BobGatewaySwapper/utils/getBobGatewayStepData.test.d.ts +1 -0
  20. package/dist/cjs/swappers/BobGatewaySwapper/utils/getBobGatewayStepData.test.js +117 -0
  21. package/dist/cjs/swappers/BobGatewaySwapper/utils/getBobGatewayTradeContext.js +1 -2
  22. package/dist/cjs/swappers/BobGatewaySwapper/utils/helpers.d.ts +8 -11
  23. package/dist/cjs/swappers/BobGatewaySwapper/utils/helpers.js +36 -31
  24. package/dist/cjs/swappers/ButterSwap/swapperApi/getTradeQuote.js +2 -5
  25. package/dist/cjs/swappers/ButterSwap/types.d.ts +0 -11
  26. package/dist/cjs/swappers/ButterSwap/utils/constants.d.ts +2 -0
  27. package/dist/cjs/swappers/ButterSwap/utils/constants.js +4 -1
  28. package/dist/cjs/swappers/ButterSwap/utils/getButterSwapStepData.d.ts +2 -3
  29. package/dist/cjs/swappers/ButterSwap/utils/getButterSwapStepData.js +42 -14
  30. package/dist/cjs/swappers/ButterSwap/utils/getButterSwapStepData.test.js +120 -17
  31. package/dist/cjs/swappers/ButterSwap/utils/helpers.js +1 -2
  32. package/dist/cjs/swappers/ButterSwap/xhr.js +3 -3
  33. package/dist/cjs/swappers/CetusSwapper/swapperApi/getTradeQuote.js +0 -2
  34. package/dist/cjs/swappers/ChainflipSwapper/endpoints.js +3 -19
  35. package/dist/cjs/swappers/ChainflipSwapper/swapperApi/getTradeQuote.js +1 -2
  36. package/dist/cjs/swappers/ChainflipSwapper/types.d.ts +1 -0
  37. package/dist/cjs/swappers/ChainflipSwapper/utils/getChainflipStepData.d.ts +1 -1
  38. package/dist/cjs/swappers/ChainflipSwapper/utils/getChainflipStepData.js +31 -12
  39. package/dist/cjs/swappers/DebridgeSwapper/getTradeQuote/getTradeQuote.js +0 -2
  40. package/dist/cjs/swappers/FyndSwapper/FyndSwapper.d.ts +2 -0
  41. package/dist/cjs/swappers/FyndSwapper/FyndSwapper.js +5 -0
  42. package/dist/cjs/swappers/FyndSwapper/endpoints.d.ts +2 -0
  43. package/dist/cjs/swappers/FyndSwapper/endpoints.js +14 -0
  44. package/dist/cjs/swappers/FyndSwapper/getTradeQuote/getTradeQuote.d.ts +4 -0
  45. package/dist/cjs/swappers/FyndSwapper/getTradeQuote/getTradeQuote.js +43 -0
  46. package/dist/cjs/swappers/FyndSwapper/getTradeRate/getTradeRate.d.ts +4 -0
  47. package/dist/cjs/swappers/FyndSwapper/getTradeRate/getTradeRate.js +34 -0
  48. package/dist/cjs/swappers/FyndSwapper/index.d.ts +2 -0
  49. package/dist/cjs/swappers/FyndSwapper/index.js +7 -0
  50. package/dist/cjs/swappers/FyndSwapper/types.d.ts +41 -0
  51. package/dist/cjs/swappers/FyndSwapper/types.js +2 -0
  52. package/dist/cjs/swappers/FyndSwapper/utils/constants.d.ts +33 -0
  53. package/dist/cjs/swappers/FyndSwapper/utils/constants.js +38 -0
  54. package/dist/cjs/swappers/FyndSwapper/utils/fetchFromFynd.d.ts +13 -0
  55. package/dist/cjs/swappers/FyndSwapper/utils/fetchFromFynd.js +42 -0
  56. package/dist/cjs/swappers/FyndSwapper/utils/fyndService.d.ts +5 -0
  57. package/dist/cjs/swappers/FyndSwapper/utils/fyndService.js +9 -0
  58. package/dist/cjs/swappers/FyndSwapper/utils/getFyndStepData.d.ts +25 -0
  59. package/dist/cjs/swappers/FyndSwapper/utils/getFyndStepData.js +48 -0
  60. package/dist/cjs/swappers/FyndSwapper/utils/getFyndTradeContext.d.ts +18 -0
  61. package/dist/cjs/swappers/FyndSwapper/utils/getFyndTradeContext.js +94 -0
  62. package/dist/cjs/swappers/FyndSwapper/utils/helpers.d.ts +24 -0
  63. package/dist/cjs/swappers/FyndSwapper/utils/helpers.js +174 -0
  64. package/dist/cjs/swappers/FyndSwapper/utils/helpers.test.d.ts +1 -0
  65. package/dist/cjs/swappers/FyndSwapper/utils/helpers.test.js +101 -0
  66. package/dist/cjs/swappers/MayachainSwapper/generated/generatedTradableAssetMap.json +0 -1
  67. package/dist/cjs/swappers/NearIntentsSwapper/constants.d.ts +1 -0
  68. package/dist/cjs/swappers/NearIntentsSwapper/constants.js +3 -1
  69. package/dist/cjs/swappers/NearIntentsSwapper/utils/getNearIntentsStepData.js +10 -5
  70. package/dist/cjs/swappers/NearIntentsSwapper/utils/helpers.js +1 -1
  71. package/dist/cjs/swappers/PortalsSwapper/endpoints.js +4 -1
  72. package/dist/cjs/swappers/PortalsSwapper/getPortalsTradeQuote/getPortalsTradeQuote.js +1 -1
  73. package/dist/cjs/swappers/RelaySwapper/constant.d.ts +1 -1
  74. package/dist/cjs/swappers/RelaySwapper/constant.js +3 -2
  75. package/dist/cjs/swappers/RelaySwapper/getTradeQuote/getTradeQuote.js +3 -5
  76. package/dist/cjs/swappers/RelaySwapper/utils/getRelayAssetAddress.js +2 -1
  77. package/dist/cjs/swappers/RelaySwapper/utils/getRelayStepData.d.ts +2 -3
  78. package/dist/cjs/swappers/RelaySwapper/utils/getRelayStepData.js +46 -13
  79. package/dist/cjs/swappers/RelaySwapper/utils/getRelayStepData.test.d.ts +1 -0
  80. package/dist/cjs/swappers/RelaySwapper/utils/getRelayStepData.test.js +139 -0
  81. package/dist/cjs/swappers/RelaySwapper/utils/getRelayTradeContext.d.ts +1 -0
  82. package/dist/cjs/swappers/RelaySwapper/utils/getRelayTradeContext.js +4 -0
  83. package/dist/cjs/swappers/RelaySwapper/utils/helpers.js +1 -2
  84. package/dist/cjs/swappers/RelaySwapper/utils/relayStatus.js +3 -3
  85. package/dist/cjs/swappers/RelaySwapper/utils/relayTokenToAssetId.js +1 -1
  86. package/dist/cjs/swappers/RelaySwapper/utils/types.d.ts +10 -8
  87. package/dist/cjs/swappers/SunioSwapper/endpoints.js +3 -63
  88. package/dist/cjs/swappers/SunioSwapper/getSunioTradeQuote/getSunioTradeQuote.js +3 -4
  89. package/dist/cjs/swappers/SunioSwapper/getSunioTradeRate/getSunioTradeRate.js +7 -1
  90. package/dist/cjs/swappers/SunioSwapper/types.d.ts +0 -3
  91. package/dist/cjs/swappers/SunioSwapper/utils/buildSwapContractCall.d.ts +11 -6
  92. package/dist/cjs/swappers/SunioSwapper/utils/buildSwapContractCall.js +33 -30
  93. package/dist/cjs/swappers/SunioSwapper/utils/constants.d.ts +3 -3
  94. package/dist/cjs/swappers/SunioSwapper/utils/constants.js +5 -9
  95. package/dist/cjs/swappers/SunioSwapper/utils/getSunioStepData.d.ts +8 -3
  96. package/dist/cjs/swappers/SunioSwapper/utils/getSunioStepData.js +54 -20
  97. package/dist/cjs/swappers/SunioSwapper/utils/getSunioStepData.test.d.ts +1 -0
  98. package/dist/cjs/swappers/SunioSwapper/utils/getSunioStepData.test.js +177 -0
  99. package/dist/cjs/swappers/SunioSwapper/utils/getSunioTradeContext.js +3 -2
  100. package/dist/cjs/swappers/SunioSwapper/utils/helpers.js +2 -1
  101. package/dist/cjs/swappers/SymbiosisSwapper/SymbiosisSwapper.d.ts +2 -0
  102. package/dist/cjs/swappers/SymbiosisSwapper/SymbiosisSwapper.js +8 -0
  103. package/dist/cjs/swappers/SymbiosisSwapper/endpoints.d.ts +2 -0
  104. package/dist/cjs/swappers/SymbiosisSwapper/endpoints.js +66 -0
  105. package/dist/cjs/swappers/SymbiosisSwapper/getTradeQuote/getTradeQuote.d.ts +4 -0
  106. package/dist/cjs/swappers/SymbiosisSwapper/getTradeQuote/getTradeQuote.js +42 -0
  107. package/dist/cjs/swappers/SymbiosisSwapper/getTradeRate/getTradeRate.d.ts +4 -0
  108. package/dist/cjs/swappers/SymbiosisSwapper/getTradeRate/getTradeRate.js +34 -0
  109. package/dist/cjs/swappers/SymbiosisSwapper/index.d.ts +2 -0
  110. package/dist/cjs/swappers/SymbiosisSwapper/index.js +7 -0
  111. package/dist/cjs/swappers/SymbiosisSwapper/utils/constants.d.ts +19 -0
  112. package/dist/cjs/swappers/SymbiosisSwapper/utils/constants.js +64 -0
  113. package/dist/cjs/swappers/SymbiosisSwapper/utils/getSymbiosisStepData.d.ts +26 -0
  114. package/dist/cjs/swappers/SymbiosisSwapper/utils/getSymbiosisStepData.js +106 -0
  115. package/dist/cjs/swappers/SymbiosisSwapper/utils/getSymbiosisStepData.test.d.ts +1 -0
  116. package/dist/cjs/swappers/SymbiosisSwapper/utils/getSymbiosisStepData.test.js +161 -0
  117. package/dist/cjs/swappers/SymbiosisSwapper/utils/getSymbiosisTradeContext.d.ts +17 -0
  118. package/dist/cjs/swappers/SymbiosisSwapper/utils/getSymbiosisTradeContext.js +146 -0
  119. package/dist/cjs/swappers/SymbiosisSwapper/utils/helpers.d.ts +38 -0
  120. package/dist/cjs/swappers/SymbiosisSwapper/utils/helpers.js +172 -0
  121. package/dist/cjs/swappers/SymbiosisSwapper/utils/helpers.test.d.ts +1 -0
  122. package/dist/cjs/swappers/SymbiosisSwapper/utils/helpers.test.js +151 -0
  123. package/dist/cjs/swappers/SymbiosisSwapper/utils/symbiosisService.d.ts +5 -0
  124. package/dist/cjs/swappers/SymbiosisSwapper/utils/symbiosisService.js +18 -0
  125. package/dist/cjs/swappers/SymbiosisSwapper/utils/types.d.ts +83 -0
  126. package/dist/cjs/swappers/SymbiosisSwapper/utils/types.js +11 -0
  127. package/dist/cjs/swappers/ThorchainSwapper/endpoints.js +3 -4
  128. package/dist/cjs/swappers/ThorchainSwapper/generated/generatedThorLongtailTokens.json +1 -0
  129. package/dist/cjs/swappers/ThorchainSwapper/generated/generatedTradableAssetMap.json +1 -0
  130. package/dist/cjs/swappers/ThorchainSwapper/utils/addL1ToLongtailPartsToMemo/addL1ToLongtailPartsToMemo.js +6 -1
  131. package/dist/cjs/swappers/ThorchainSwapper/utils/addL1ToLongtailPartsToMemo/addL1ToLongtailPartsToMemo.test.js +15 -0
  132. package/dist/cjs/swappers/ThorchainSwapper/utils/assertValidLongtailTrade.js +7 -0
  133. package/dist/cjs/swappers/ThorchainSwapper/utils/getL1ToLongtailQuote.js +0 -2
  134. package/dist/cjs/swappers/ThorchainSwapper/utils/getL1ToLongtailRate.js +0 -2
  135. package/dist/cjs/swappers/ThorchainSwapper/utils/getLongtailQuote.js +1 -1
  136. package/dist/cjs/swappers/ThorchainSwapper/utils/getUniqueAddressSubstring/getUniqueAddressSubstring.d.ts +1 -1
  137. package/dist/cjs/swappers/ThorchainSwapper/utils/getUniqueAddressSubstring/getUniqueAddressSubstring.js +17 -20
  138. package/dist/cjs/swappers/ThorchainSwapper/utils/getUniqueAddressSubstring/getUniqueAddressSubstring.test.js +31 -0
  139. package/dist/cjs/swappers/ZrxSwapper/getZrxTradeQuote/getZrxTradeQuote.js +24 -1
  140. package/dist/cjs/swappers/ZrxSwapper/getZrxTradeQuote/getZrxTradeQuote.test.d.ts +1 -0
  141. package/dist/cjs/swappers/ZrxSwapper/getZrxTradeQuote/getZrxTradeQuote.test.js +110 -0
  142. package/dist/cjs/swappers/ZrxSwapper/types.d.ts +2 -1
  143. package/dist/cjs/swappers/ZrxSwapper/utils/getZrxNativeCheckDeadline.d.ts +1 -0
  144. package/dist/cjs/swappers/ZrxSwapper/utils/getZrxNativeCheckDeadline.js +26 -0
  145. package/dist/cjs/types.d.ts +15 -13
  146. package/dist/cjs/types.js +2 -0
  147. package/dist/cjs/utils/helpers.d.ts +1 -2
  148. package/dist/cjs/utils/helpers.js +8 -32
  149. package/dist/cjs/utils/helpers.test.js +6 -2
  150. package/dist/cjs/utils/thorchain/getThorStepData.js +32 -49
  151. package/dist/cjs/utils/thorchain/getThorStepData.tron.test.d.ts +1 -0
  152. package/dist/cjs/utils/thorchain/getThorStepData.tron.test.js +93 -0
  153. package/dist/cjs/utils/thorchain/index.d.ts +0 -1
  154. package/dist/cjs/utils/thorchain/index.js +1 -14
  155. package/dist/cjs/utils/tron/constants.d.ts +1 -0
  156. package/dist/cjs/utils/tron/constants.js +5 -0
  157. package/dist/cjs/utils/tron/getTronNetworkFeeCryptoBaseUnit.d.ts +27 -0
  158. package/dist/cjs/utils/tron/getTronNetworkFeeCryptoBaseUnit.js +64 -0
  159. package/dist/cjs/utils/tron/getTronNetworkFeeCryptoBaseUnit.test.d.ts +1 -0
  160. package/dist/cjs/utils/tron/getTronNetworkFeeCryptoBaseUnit.test.js +157 -0
  161. package/dist/cjs/utils/tron/getUnsignedTronTransaction.d.ts +2 -1
  162. package/dist/cjs/utils/tron/getUnsignedTronTransaction.js +14 -48
  163. package/dist/cjs/utils/tron/getUnsignedTronTransaction.test.d.ts +1 -0
  164. package/dist/cjs/utils/tron/getUnsignedTronTransaction.test.js +76 -0
  165. package/dist/cjs/utils/tron/index.d.ts +2 -0
  166. package/dist/cjs/utils/tron/index.js +2 -0
  167. package/dist/esm/.tsbuildinfo +1 -1
  168. package/dist/esm/constants.js +15 -0
  169. package/dist/esm/index.d.ts +2 -0
  170. package/dist/esm/index.js +2 -0
  171. package/dist/esm/swappers/ArbitrumBridgeSwapper/getTradeQuote/getTradeQuote.js +0 -2
  172. package/dist/esm/swappers/AvnuSwapper/swapperApi/getTradeQuote.js +1 -2
  173. package/dist/esm/swappers/BebopSwapper/utils/fetchFromBebop.d.ts +2 -1
  174. package/dist/esm/swappers/BebopSwapper/utils/fetchFromBebop.js +21 -15
  175. package/dist/esm/swappers/BebopSwapper/utils/getBebopSolanaTradeContext.js +1 -0
  176. package/dist/esm/swappers/BobGatewaySwapper/BobGatewaySwapper.js +11 -2
  177. package/dist/esm/swappers/BobGatewaySwapper/endpoints.js +5 -36
  178. package/dist/esm/swappers/BobGatewaySwapper/swapperApi/getTradeQuote.js +5 -10
  179. package/dist/esm/swappers/BobGatewaySwapper/swapperApi/getTradeRate.js +1 -2
  180. package/dist/esm/swappers/BobGatewaySwapper/types.d.ts +3 -3
  181. package/dist/esm/swappers/BobGatewaySwapper/utils/constants.d.ts +3 -2
  182. package/dist/esm/swappers/BobGatewaySwapper/utils/constants.js +8 -7
  183. package/dist/esm/swappers/BobGatewaySwapper/utils/getBobGatewayStepData.d.ts +2 -2
  184. package/dist/esm/swappers/BobGatewaySwapper/utils/getBobGatewayStepData.js +21 -25
  185. package/dist/esm/swappers/BobGatewaySwapper/utils/getBobGatewayStepData.test.d.ts +1 -0
  186. package/dist/esm/swappers/BobGatewaySwapper/utils/getBobGatewayStepData.test.js +115 -0
  187. package/dist/esm/swappers/BobGatewaySwapper/utils/getBobGatewayTradeContext.js +1 -2
  188. package/dist/esm/swappers/BobGatewaySwapper/utils/helpers.d.ts +8 -11
  189. package/dist/esm/swappers/BobGatewaySwapper/utils/helpers.js +13 -30
  190. package/dist/esm/swappers/ButterSwap/swapperApi/getTradeQuote.js +2 -5
  191. package/dist/esm/swappers/ButterSwap/types.d.ts +0 -11
  192. package/dist/esm/swappers/ButterSwap/utils/constants.d.ts +2 -0
  193. package/dist/esm/swappers/ButterSwap/utils/constants.js +3 -0
  194. package/dist/esm/swappers/ButterSwap/utils/getButterSwapStepData.d.ts +2 -3
  195. package/dist/esm/swappers/ButterSwap/utils/getButterSwapStepData.js +42 -14
  196. package/dist/esm/swappers/ButterSwap/utils/getButterSwapStepData.test.js +120 -17
  197. package/dist/esm/swappers/ButterSwap/utils/helpers.js +1 -2
  198. package/dist/esm/swappers/ButterSwap/xhr.js +3 -3
  199. package/dist/esm/swappers/CetusSwapper/swapperApi/getTradeQuote.js +0 -2
  200. package/dist/esm/swappers/ChainflipSwapper/endpoints.js +3 -19
  201. package/dist/esm/swappers/ChainflipSwapper/swapperApi/getTradeQuote.js +1 -2
  202. package/dist/esm/swappers/ChainflipSwapper/types.d.ts +1 -0
  203. package/dist/esm/swappers/ChainflipSwapper/utils/getChainflipStepData.d.ts +1 -1
  204. package/dist/esm/swappers/ChainflipSwapper/utils/getChainflipStepData.js +32 -13
  205. package/dist/esm/swappers/DebridgeSwapper/getTradeQuote/getTradeQuote.js +0 -2
  206. package/dist/esm/swappers/FyndSwapper/FyndSwapper.d.ts +2 -0
  207. package/dist/esm/swappers/FyndSwapper/FyndSwapper.js +2 -0
  208. package/dist/esm/swappers/FyndSwapper/endpoints.d.ts +2 -0
  209. package/dist/esm/swappers/FyndSwapper/endpoints.js +11 -0
  210. package/dist/esm/swappers/FyndSwapper/getTradeQuote/getTradeQuote.d.ts +4 -0
  211. package/dist/esm/swappers/FyndSwapper/getTradeQuote/getTradeQuote.js +39 -0
  212. package/dist/esm/swappers/FyndSwapper/getTradeRate/getTradeRate.d.ts +4 -0
  213. package/dist/esm/swappers/FyndSwapper/getTradeRate/getTradeRate.js +30 -0
  214. package/dist/esm/swappers/FyndSwapper/index.d.ts +2 -0
  215. package/dist/esm/swappers/FyndSwapper/index.js +2 -0
  216. package/dist/esm/swappers/FyndSwapper/types.d.ts +41 -0
  217. package/dist/esm/swappers/FyndSwapper/types.js +1 -0
  218. package/dist/esm/swappers/FyndSwapper/utils/constants.d.ts +33 -0
  219. package/dist/esm/swappers/FyndSwapper/utils/constants.js +35 -0
  220. package/dist/esm/swappers/FyndSwapper/utils/fetchFromFynd.d.ts +13 -0
  221. package/dist/esm/swappers/FyndSwapper/utils/fetchFromFynd.js +38 -0
  222. package/dist/esm/swappers/FyndSwapper/utils/fyndService.d.ts +5 -0
  223. package/dist/esm/swappers/FyndSwapper/utils/fyndService.js +3 -0
  224. package/dist/esm/swappers/FyndSwapper/utils/getFyndStepData.d.ts +25 -0
  225. package/dist/esm/swappers/FyndSwapper/utils/getFyndStepData.js +44 -0
  226. package/dist/esm/swappers/FyndSwapper/utils/getFyndTradeContext.d.ts +18 -0
  227. package/dist/esm/swappers/FyndSwapper/utils/getFyndTradeContext.js +90 -0
  228. package/dist/esm/swappers/FyndSwapper/utils/helpers.d.ts +24 -0
  229. package/dist/esm/swappers/FyndSwapper/utils/helpers.js +162 -0
  230. package/dist/esm/swappers/FyndSwapper/utils/helpers.test.d.ts +1 -0
  231. package/dist/esm/swappers/FyndSwapper/utils/helpers.test.js +99 -0
  232. package/dist/esm/swappers/MayachainSwapper/generated/generatedTradableAssetMap.json +0 -1
  233. package/dist/esm/swappers/NearIntentsSwapper/constants.d.ts +1 -0
  234. package/dist/esm/swappers/NearIntentsSwapper/constants.js +2 -0
  235. package/dist/esm/swappers/NearIntentsSwapper/utils/getNearIntentsStepData.js +10 -5
  236. package/dist/esm/swappers/NearIntentsSwapper/utils/helpers.js +2 -2
  237. package/dist/esm/swappers/PortalsSwapper/endpoints.js +4 -1
  238. package/dist/esm/swappers/PortalsSwapper/getPortalsTradeQuote/getPortalsTradeQuote.js +2 -2
  239. package/dist/esm/swappers/RelaySwapper/constant.d.ts +1 -1
  240. package/dist/esm/swappers/RelaySwapper/constant.js +2 -1
  241. package/dist/esm/swappers/RelaySwapper/getTradeQuote/getTradeQuote.js +3 -5
  242. package/dist/esm/swappers/RelaySwapper/utils/getRelayAssetAddress.js +3 -2
  243. package/dist/esm/swappers/RelaySwapper/utils/getRelayStepData.d.ts +2 -3
  244. package/dist/esm/swappers/RelaySwapper/utils/getRelayStepData.js +46 -13
  245. package/dist/esm/swappers/RelaySwapper/utils/getRelayStepData.test.d.ts +1 -0
  246. package/dist/esm/swappers/RelaySwapper/utils/getRelayStepData.test.js +137 -0
  247. package/dist/esm/swappers/RelaySwapper/utils/getRelayTradeContext.d.ts +1 -0
  248. package/dist/esm/swappers/RelaySwapper/utils/getRelayTradeContext.js +5 -1
  249. package/dist/esm/swappers/RelaySwapper/utils/helpers.js +1 -2
  250. package/dist/esm/swappers/RelaySwapper/utils/relayStatus.js +3 -3
  251. package/dist/esm/swappers/RelaySwapper/utils/relayTokenToAssetId.js +3 -3
  252. package/dist/esm/swappers/RelaySwapper/utils/types.d.ts +10 -8
  253. package/dist/esm/swappers/SunioSwapper/endpoints.js +5 -65
  254. package/dist/esm/swappers/SunioSwapper/getSunioTradeQuote/getSunioTradeQuote.js +3 -4
  255. package/dist/esm/swappers/SunioSwapper/getSunioTradeRate/getSunioTradeRate.js +7 -1
  256. package/dist/esm/swappers/SunioSwapper/types.d.ts +0 -3
  257. package/dist/esm/swappers/SunioSwapper/utils/buildSwapContractCall.d.ts +11 -6
  258. package/dist/esm/swappers/SunioSwapper/utils/buildSwapContractCall.js +31 -28
  259. package/dist/esm/swappers/SunioSwapper/utils/constants.d.ts +3 -3
  260. package/dist/esm/swappers/SunioSwapper/utils/constants.js +4 -8
  261. package/dist/esm/swappers/SunioSwapper/utils/getSunioStepData.d.ts +8 -3
  262. package/dist/esm/swappers/SunioSwapper/utils/getSunioStepData.js +52 -18
  263. package/dist/esm/swappers/SunioSwapper/utils/getSunioStepData.test.d.ts +1 -0
  264. package/dist/esm/swappers/SunioSwapper/utils/getSunioStepData.test.js +175 -0
  265. package/dist/esm/swappers/SunioSwapper/utils/getSunioTradeContext.js +2 -1
  266. package/dist/esm/swappers/SunioSwapper/utils/helpers.js +3 -2
  267. package/dist/esm/swappers/SymbiosisSwapper/SymbiosisSwapper.d.ts +2 -0
  268. package/dist/esm/swappers/SymbiosisSwapper/SymbiosisSwapper.js +5 -0
  269. package/dist/esm/swappers/SymbiosisSwapper/endpoints.d.ts +2 -0
  270. package/dist/esm/swappers/SymbiosisSwapper/endpoints.js +63 -0
  271. package/dist/esm/swappers/SymbiosisSwapper/getTradeQuote/getTradeQuote.d.ts +4 -0
  272. package/dist/esm/swappers/SymbiosisSwapper/getTradeQuote/getTradeQuote.js +38 -0
  273. package/dist/esm/swappers/SymbiosisSwapper/getTradeRate/getTradeRate.d.ts +4 -0
  274. package/dist/esm/swappers/SymbiosisSwapper/getTradeRate/getTradeRate.js +30 -0
  275. package/dist/esm/swappers/SymbiosisSwapper/index.d.ts +2 -0
  276. package/dist/esm/swappers/SymbiosisSwapper/index.js +2 -0
  277. package/dist/esm/swappers/SymbiosisSwapper/utils/constants.d.ts +19 -0
  278. package/dist/esm/swappers/SymbiosisSwapper/utils/constants.js +61 -0
  279. package/dist/esm/swappers/SymbiosisSwapper/utils/getSymbiosisStepData.d.ts +26 -0
  280. package/dist/esm/swappers/SymbiosisSwapper/utils/getSymbiosisStepData.js +102 -0
  281. package/dist/esm/swappers/SymbiosisSwapper/utils/getSymbiosisStepData.test.d.ts +1 -0
  282. package/dist/esm/swappers/SymbiosisSwapper/utils/getSymbiosisStepData.test.js +159 -0
  283. package/dist/esm/swappers/SymbiosisSwapper/utils/getSymbiosisTradeContext.d.ts +17 -0
  284. package/dist/esm/swappers/SymbiosisSwapper/utils/getSymbiosisTradeContext.js +139 -0
  285. package/dist/esm/swappers/SymbiosisSwapper/utils/helpers.d.ts +38 -0
  286. package/dist/esm/swappers/SymbiosisSwapper/utils/helpers.js +156 -0
  287. package/dist/esm/swappers/SymbiosisSwapper/utils/helpers.test.d.ts +1 -0
  288. package/dist/esm/swappers/SymbiosisSwapper/utils/helpers.test.js +149 -0
  289. package/dist/esm/swappers/SymbiosisSwapper/utils/symbiosisService.d.ts +5 -0
  290. package/dist/esm/swappers/SymbiosisSwapper/utils/symbiosisService.js +12 -0
  291. package/dist/esm/swappers/SymbiosisSwapper/utils/types.d.ts +83 -0
  292. package/dist/esm/swappers/SymbiosisSwapper/utils/types.js +8 -0
  293. package/dist/esm/swappers/ThorchainSwapper/endpoints.js +4 -5
  294. package/dist/esm/swappers/ThorchainSwapper/generated/generatedThorLongtailTokens.json +1 -0
  295. package/dist/esm/swappers/ThorchainSwapper/generated/generatedTradableAssetMap.json +1 -0
  296. package/dist/esm/swappers/ThorchainSwapper/utils/addL1ToLongtailPartsToMemo/addL1ToLongtailPartsToMemo.js +6 -1
  297. package/dist/esm/swappers/ThorchainSwapper/utils/addL1ToLongtailPartsToMemo/addL1ToLongtailPartsToMemo.test.js +15 -0
  298. package/dist/esm/swappers/ThorchainSwapper/utils/assertValidLongtailTrade.js +7 -0
  299. package/dist/esm/swappers/ThorchainSwapper/utils/getL1ToLongtailQuote.js +0 -2
  300. package/dist/esm/swappers/ThorchainSwapper/utils/getL1ToLongtailRate.js +0 -2
  301. package/dist/esm/swappers/ThorchainSwapper/utils/getLongtailQuote.js +1 -1
  302. package/dist/esm/swappers/ThorchainSwapper/utils/getUniqueAddressSubstring/getUniqueAddressSubstring.d.ts +1 -1
  303. package/dist/esm/swappers/ThorchainSwapper/utils/getUniqueAddressSubstring/getUniqueAddressSubstring.js +17 -20
  304. package/dist/esm/swappers/ThorchainSwapper/utils/getUniqueAddressSubstring/getUniqueAddressSubstring.test.js +29 -1
  305. package/dist/esm/swappers/ZrxSwapper/getZrxTradeQuote/getZrxTradeQuote.js +25 -2
  306. package/dist/esm/swappers/ZrxSwapper/getZrxTradeQuote/getZrxTradeQuote.test.d.ts +1 -0
  307. package/dist/esm/swappers/ZrxSwapper/getZrxTradeQuote/getZrxTradeQuote.test.js +108 -0
  308. package/dist/esm/swappers/ZrxSwapper/types.d.ts +2 -1
  309. package/dist/esm/swappers/ZrxSwapper/utils/getZrxNativeCheckDeadline.d.ts +1 -0
  310. package/dist/esm/swappers/ZrxSwapper/utils/getZrxNativeCheckDeadline.js +22 -0
  311. package/dist/esm/types.d.ts +15 -13
  312. package/dist/esm/types.js +2 -0
  313. package/dist/esm/utils/helpers.d.ts +1 -2
  314. package/dist/esm/utils/helpers.js +9 -33
  315. package/dist/esm/utils/helpers.test.js +6 -2
  316. package/dist/esm/utils/thorchain/getThorStepData.js +32 -49
  317. package/dist/esm/utils/thorchain/getThorStepData.tron.test.d.ts +1 -0
  318. package/dist/esm/utils/thorchain/getThorStepData.tron.test.js +91 -0
  319. package/dist/esm/utils/thorchain/index.d.ts +0 -1
  320. package/dist/esm/utils/thorchain/index.js +0 -1
  321. package/dist/esm/utils/tron/constants.d.ts +1 -0
  322. package/dist/esm/utils/tron/constants.js +2 -0
  323. package/dist/esm/utils/tron/getTronNetworkFeeCryptoBaseUnit.d.ts +27 -0
  324. package/dist/esm/utils/tron/getTronNetworkFeeCryptoBaseUnit.js +59 -0
  325. package/dist/esm/utils/tron/getTronNetworkFeeCryptoBaseUnit.test.d.ts +1 -0
  326. package/dist/esm/utils/tron/getTronNetworkFeeCryptoBaseUnit.test.js +155 -0
  327. package/dist/esm/utils/tron/getUnsignedTronTransaction.d.ts +2 -1
  328. package/dist/esm/utils/tron/getUnsignedTronTransaction.js +14 -48
  329. package/dist/esm/utils/tron/getUnsignedTronTransaction.test.d.ts +1 -0
  330. package/dist/esm/utils/tron/getUnsignedTronTransaction.test.js +74 -0
  331. package/dist/esm/utils/tron/index.d.ts +2 -0
  332. package/dist/esm/utils/tron/index.js +2 -0
  333. package/package.json +8 -8
  334. package/dist/cjs/swappers/SunioSwapper/utils/buildSwapRouteParameters.d.ts +0 -14
  335. package/dist/cjs/swappers/SunioSwapper/utils/buildSwapRouteParameters.js +0 -32
  336. package/dist/cjs/swappers/SunioSwapper/utils/estimateSunioNetworkFee.d.ts +0 -12
  337. package/dist/cjs/swappers/SunioSwapper/utils/estimateSunioNetworkFee.js +0 -78
  338. package/dist/cjs/swappers/SunioSwapper/utils/getSunioTransactionFees.d.ts +0 -2
  339. package/dist/cjs/swappers/SunioSwapper/utils/getSunioTransactionFees.js +0 -36
  340. package/dist/cjs/utils/thorchain/tron/getTronTransactionFees.d.ts +0 -2
  341. package/dist/cjs/utils/thorchain/tron/getTronTransactionFees.js +0 -68
  342. package/dist/cjs/utils/thorchain/tron/getUnsignedTronTransaction.d.ts +0 -3
  343. package/dist/cjs/utils/thorchain/tron/getUnsignedTronTransaction.js +0 -35
  344. package/dist/cjs/utils/thorchain/tron/index.d.ts +0 -2
  345. package/dist/cjs/utils/thorchain/tron/index.js +0 -18
  346. package/dist/esm/swappers/SunioSwapper/utils/buildSwapRouteParameters.d.ts +0 -14
  347. package/dist/esm/swappers/SunioSwapper/utils/buildSwapRouteParameters.js +0 -28
  348. package/dist/esm/swappers/SunioSwapper/utils/estimateSunioNetworkFee.d.ts +0 -12
  349. package/dist/esm/swappers/SunioSwapper/utils/estimateSunioNetworkFee.js +0 -74
  350. package/dist/esm/swappers/SunioSwapper/utils/getSunioTransactionFees.d.ts +0 -2
  351. package/dist/esm/swappers/SunioSwapper/utils/getSunioTransactionFees.js +0 -32
  352. package/dist/esm/utils/thorchain/tron/getTronTransactionFees.d.ts +0 -2
  353. package/dist/esm/utils/thorchain/tron/getTronTransactionFees.js +0 -64
  354. package/dist/esm/utils/thorchain/tron/getUnsignedTronTransaction.d.ts +0 -3
  355. package/dist/esm/utils/thorchain/tron/getUnsignedTronTransaction.js +0 -31
  356. package/dist/esm/utils/thorchain/tron/index.d.ts +0 -2
  357. package/dist/esm/utils/thorchain/tron/index.js +0 -2
  358. /package/dist/cjs/swappers/SunioSwapper/utils/{fetchFromSunio.d.ts → fetchSunioQuote.d.ts} +0 -0
  359. /package/dist/cjs/swappers/SunioSwapper/utils/{fetchFromSunio.js → fetchSunioQuote.js} +0 -0
  360. /package/dist/esm/swappers/SunioSwapper/utils/{fetchFromSunio.d.ts → fetchSunioQuote.d.ts} +0 -0
  361. /package/dist/esm/swappers/SunioSwapper/utils/{fetchFromSunio.js → fetchSunioQuote.js} +0 -0
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getFyndTradeContext = void 0;
4
+ const utils_1 = require("@shapeshiftoss/utils");
5
+ const monads_1 = require("@sniptt/monads");
6
+ const uuid_1 = require("uuid");
7
+ const constants_1 = require("../../../constants");
8
+ const types_1 = require("../../../types");
9
+ const utils_2 = require("../../../utils");
10
+ const helpers_1 = require("../../../utils/helpers");
11
+ const fetchFromFynd_1 = require("./fetchFromFynd");
12
+ const helpers_2 = require("./helpers");
13
+ const getFyndTradeContext = async ({ input, deps, from, to, }) => {
14
+ const { sellAsset, buyAsset, sellAmountIncludingProtocolFeesCryptoBaseUnit, affiliateBps } = input;
15
+ const maybeChainId = (0, helpers_2.assertValidTrade)({ sellAsset, buyAsset });
16
+ if (maybeChainId.isErr())
17
+ return (0, monads_1.Err)(maybeChainId.unwrapErr());
18
+ const chainId = maybeChainId.unwrap();
19
+ const slippageTolerancePercentageDecimal = input.slippageTolerancePercentageDecimal ??
20
+ (0, constants_1.getDefaultSlippageDecimalPercentageForSwapper)(types_1.SwapperName.Fynd);
21
+ const clientFeeBps = (0, helpers_2.getFyndClientFeeBps)(affiliateBps);
22
+ const maybeQuote = await (0, fetchFromFynd_1.fetchFromFynd)({
23
+ input,
24
+ chainId,
25
+ sender: from,
26
+ receiver: to,
27
+ slippageTolerancePercentageDecimal,
28
+ clientFeeBps,
29
+ baseUrl: deps.config.VITE_FYND_BASE_URL,
30
+ });
31
+ if (maybeQuote.isErr())
32
+ return (0, monads_1.Err)(maybeQuote.unwrapErr());
33
+ const quote = maybeQuote.unwrap();
34
+ const { router_fee: routerFee, client_fee: clientFee } = quote.fee_breakdown;
35
+ const buyAmountBeforeFeesCryptoBaseUnit = quote.amount_out;
36
+ const buyAmountAfterFeesCryptoBaseUnit = (0, utils_1.bn)(quote.amount_out)
37
+ .minus(routerFee)
38
+ .minus(clientFee)
39
+ .toFixed();
40
+ const rate = (0, utils_2.getInputOutputRate)({
41
+ sellAmountCryptoBaseUnit: quote.amount_in,
42
+ buyAmountCryptoBaseUnit: buyAmountAfterFeesCryptoBaseUnit,
43
+ sellAsset,
44
+ buyAsset,
45
+ });
46
+ const protocols = (0, helpers_2.getFyndRouteProtocols)(quote.route?.swaps);
47
+ const source = protocols.length
48
+ ? `${types_1.SwapperName.Fynd} • ${protocols.join(', ')}`
49
+ : types_1.SwapperName.Fynd;
50
+ const allowanceContract = (0, helpers_1.isNativeEvmAsset)(sellAsset.assetId) ? '' : quote.transaction.to;
51
+ const protocolFees = (0, utils_1.bn)(routerFee).gt(0)
52
+ ? {
53
+ [buyAsset.assetId]: {
54
+ amountCryptoBaseUnit: routerFee,
55
+ asset: buyAsset,
56
+ requiresBalance: false,
57
+ },
58
+ }
59
+ : {};
60
+ return (0, monads_1.Ok)({
61
+ tradeCommon: {
62
+ id: (0, uuid_1.v4)(),
63
+ rate,
64
+ swapperName: types_1.SwapperName.Fynd,
65
+ affiliateBps,
66
+ slippageTolerancePercentageDecimal,
67
+ },
68
+ stepCommon: {
69
+ estimatedExecutionTimeMs: 0,
70
+ allowanceContract,
71
+ rate,
72
+ sellAsset,
73
+ buyAsset,
74
+ sellAmountIncludingProtocolFeesCryptoBaseUnit,
75
+ buyAmountBeforeFeesCryptoBaseUnit,
76
+ buyAmountAfterFeesCryptoBaseUnit,
77
+ source,
78
+ affiliateFee: (0, utils_1.bn)(clientFee).gt(0)
79
+ ? { assetId: buyAsset.assetId, amountCryptoBaseUnit: clientFee, asset: buyAsset }
80
+ : undefined,
81
+ },
82
+ protocolFees,
83
+ deadline: quote.client_fee_deadline ? (0, helpers_1.normalizeEpochToMs)(quote.client_fee_deadline) : undefined,
84
+ stepDataArgs: {
85
+ quote,
86
+ sellAsset,
87
+ sellAmountCryptoBaseUnit: sellAmountIncludingProtocolFeesCryptoBaseUnit,
88
+ spenderAddress: allowanceContract,
89
+ from,
90
+ deps,
91
+ },
92
+ });
93
+ };
94
+ exports.getFyndTradeContext = getFyndTradeContext;
@@ -0,0 +1,24 @@
1
+ import type { AssetId } from '@shapeshiftoss/caip';
2
+ import type { Asset } from '@shapeshiftoss/types';
3
+ import type { Result } from '@sniptt/monads';
4
+ import type { Address } from 'viem';
5
+ import type { SwapErrorRight } from '../../../types';
6
+ import type { FyndEncodedQuote, FyndQuoteResponse, FyndRouteSwap } from '../types';
7
+ import type { FyndSupportedChainId } from './constants';
8
+ export declare const getFyndRouteProtocols: (swaps: FyndRouteSwap[] | undefined) => string[];
9
+ export declare const getFyndClientFeeBps: (affiliateBps: string) => number;
10
+ export declare const convertAssetIdToFyndToken: (assetId: AssetId) => Address;
11
+ export declare const assertValidTrade: ({ sellAsset, buyAsset, }: {
12
+ sellAsset: Asset;
13
+ buyAsset: Asset;
14
+ }) => Result<FyndSupportedChainId, SwapErrorRight>;
15
+ export declare const getFyndRequestError: (error: SwapErrorRight) => SwapErrorRight;
16
+ type FyndQuoteContext = {
17
+ chainId: FyndSupportedChainId;
18
+ sellAsset: Asset;
19
+ sellAmountCryptoBaseUnit: string;
20
+ slippageTolerancePercentageDecimal: string;
21
+ clientFeeBps: number;
22
+ };
23
+ export declare const validateFyndQuoteResponse: (response: FyndQuoteResponse, context: FyndQuoteContext) => Result<FyndEncodedQuote, SwapErrorRight>;
24
+ export {};
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.validateFyndQuoteResponse = exports.getFyndRequestError = exports.assertValidTrade = exports.convertAssetIdToFyndToken = exports.getFyndClientFeeBps = exports.getFyndRouteProtocols = void 0;
7
+ const caip_1 = require("@shapeshiftoss/caip");
8
+ const utils_1 = require("@shapeshiftoss/utils");
9
+ const monads_1 = require("@sniptt/monads");
10
+ const axios_1 = __importDefault(require("axios"));
11
+ const viem_1 = require("viem");
12
+ const types_1 = require("../../../types");
13
+ const utils_2 = require("../../../utils");
14
+ const helpers_1 = require("../../../utils/helpers");
15
+ const constants_1 = require("./constants");
16
+ const isFyndSupportedChainId = (chainId) => chainId in constants_1.FYND_CHAINS;
17
+ // Protocol ids look like uniswap_v3, vm:balancer_v2 or fallback:rfq:bebop
18
+ const formatFyndProtocol = (protocol) => protocol
19
+ .slice(protocol.lastIndexOf(':') + 1)
20
+ .split('_')
21
+ .map(word => /^v\d+$/.test(word) ? word.toUpperCase() : word.charAt(0).toUpperCase() + word.slice(1))
22
+ .join(' ');
23
+ // The native_wrapper hop is only the WETH wrap/unwrap around the real venues
24
+ const getFyndRouteProtocols = (swaps) => {
25
+ const venues = (swaps ?? [])
26
+ .map(swap => swap.protocol)
27
+ .filter(protocol => !protocol.endsWith('native_wrapper'));
28
+ return [...new Set(venues)].map(formatFyndProtocol);
29
+ };
30
+ exports.getFyndRouteProtocols = getFyndRouteProtocols;
31
+ const getFyndClientFeeBps = (affiliateBps) => (0, utils_1.bn)(affiliateBps).div(constants_1.FYND_CLIENT_FEE_SHARE).integerValue(utils_1.BigNumber.ROUND_CEIL).toNumber();
32
+ exports.getFyndClientFeeBps = getFyndClientFeeBps;
33
+ const convertAssetIdToFyndToken = (assetId) => {
34
+ if ((0, helpers_1.isNativeEvmAsset)(assetId))
35
+ return viem_1.zeroAddress;
36
+ return (0, viem_1.getAddress)((0, caip_1.fromAssetId)(assetId).assetReference);
37
+ };
38
+ exports.convertAssetIdToFyndToken = convertAssetIdToFyndToken;
39
+ const assertValidTrade = ({ sellAsset, buyAsset, }) => {
40
+ if (sellAsset.chainId !== buyAsset.chainId) {
41
+ return (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
42
+ message: 'Fynd does not support cross-chain trades',
43
+ code: types_1.TradeQuoteError.CrossChainNotSupported,
44
+ }));
45
+ }
46
+ if (!isFyndSupportedChainId(sellAsset.chainId)) {
47
+ return (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
48
+ message: 'Fynd only supports configured EVM chains',
49
+ code: types_1.TradeQuoteError.UnsupportedChain,
50
+ }));
51
+ }
52
+ return (0, monads_1.Ok)(sellAsset.chainId);
53
+ };
54
+ exports.assertValidTrade = assertValidTrade;
55
+ const getFyndStatusError = (status, detail) => {
56
+ const code = (() => {
57
+ switch (status.toLowerCase()) {
58
+ case 'no_route_found':
59
+ case 'insufficient_liquidity':
60
+ return types_1.TradeQuoteError.NoRouteFound;
61
+ case 'timeout':
62
+ return types_1.TradeQuoteError.Timeout;
63
+ default:
64
+ return types_1.TradeQuoteError.QueryFailed;
65
+ }
66
+ })();
67
+ return (0, utils_2.makeSwapErrorRight)({
68
+ message: `Fynd quote failed: ${status}${detail ? ` (${detail})` : ''}`,
69
+ code,
70
+ });
71
+ };
72
+ const isFyndErrorResponse = (value) => typeof value === 'object' &&
73
+ value !== null &&
74
+ 'error' in value &&
75
+ typeof value.error === 'string' &&
76
+ 'code' in value &&
77
+ typeof value.code === 'string';
78
+ const getFyndRequestError = (error) => {
79
+ const { cause } = error;
80
+ if (!axios_1.default.isAxiosError(cause))
81
+ return error;
82
+ if (cause.response?.status === 429) {
83
+ return (0, utils_2.makeSwapErrorRight)({
84
+ message: 'Fynd rate limit exceeded',
85
+ code: types_1.TradeQuoteError.RateLimitExceeded,
86
+ });
87
+ }
88
+ const body = cause.response?.data;
89
+ if (isFyndErrorResponse(body))
90
+ return getFyndStatusError(body.code, body.error);
91
+ return (0, utils_2.makeSwapErrorRight)({
92
+ message: `Fynd request failed with status ${cause.response?.status}`,
93
+ code: types_1.TradeQuoteError.QueryFailed,
94
+ cause,
95
+ });
96
+ };
97
+ exports.getFyndRequestError = getFyndRequestError;
98
+ const invalidResponse = (message, details) => (0, utils_2.makeSwapErrorRight)({ message, details, code: types_1.TradeQuoteError.InvalidResponse });
99
+ const getQuoteError = (quote, { chainId, sellAsset, sellAmountCryptoBaseUnit, slippageTolerancePercentageDecimal, clientFeeBps, }) => {
100
+ const { transaction, fee_breakdown: fees } = quote;
101
+ const pinnedRouter = constants_1.FYND_CHAINS[chainId].routerAddress;
102
+ if (!(0, viem_1.isAddress)(transaction.to, { strict: false }) ||
103
+ !(0, viem_1.isAddressEqual)(transaction.to, pinnedRouter)) {
104
+ return invalidResponse(`Fynd router ${transaction.to} is not the pinned router ${pinnedRouter} for ${chainId}`);
105
+ }
106
+ if (!(0, utils_1.bn)(quote.amount_in).eq(sellAmountCryptoBaseUnit)) {
107
+ return invalidResponse('Fynd quoted a different sell amount', {
108
+ amountIn: quote.amount_in,
109
+ sellAmountCryptoBaseUnit,
110
+ });
111
+ }
112
+ const expectedValue = (0, helpers_1.isNativeEvmAsset)(sellAsset.assetId) ? sellAmountCryptoBaseUnit : '0';
113
+ if (!(0, utils_1.bn)(transaction.value).eq(expectedValue)) {
114
+ return invalidResponse('Fynd transaction value does not match the sell amount', {
115
+ value: transaction.value,
116
+ expectedValue,
117
+ });
118
+ }
119
+ // The router enforces min_amount_received, which may not be looser than the requested slippage
120
+ const netOutput = (0, utils_1.bn)(quote.amount_out).minus(fees.router_fee).minus(fees.client_fee);
121
+ const outputFloor = netOutput
122
+ .times((0, utils_1.bn)(1).minus(slippageTolerancePercentageDecimal))
123
+ .integerValue(utils_1.BigNumber.ROUND_DOWN);
124
+ if ((0, utils_1.bn)(fees.min_amount_received).lt(outputFloor)) {
125
+ return invalidResponse('Fynd output floor is below the requested slippage', {
126
+ minAmountReceived: fees.min_amount_received,
127
+ outputFloor: outputFloor.toFixed(),
128
+ slippageTolerancePercentageDecimal,
129
+ });
130
+ }
131
+ if (clientFeeBps === 0) {
132
+ if (!(0, utils_1.bn)(fees.client_fee).isZero()) {
133
+ return invalidResponse('Fynd returned an unexpected client fee', {
134
+ clientFee: fees.client_fee,
135
+ });
136
+ }
137
+ return;
138
+ }
139
+ // Our share of the gross client fee, allowing one unit of rounding
140
+ const minClientFee = (0, utils_1.bn)(quote.amount_out)
141
+ .times(clientFeeBps)
142
+ .div(10_000)
143
+ .times(constants_1.FYND_CLIENT_FEE_SHARE)
144
+ .integerValue(utils_1.BigNumber.ROUND_DOWN)
145
+ .minus(1);
146
+ if ((0, utils_1.bn)(fees.client_fee).lt(minClientFee)) {
147
+ return invalidResponse('Fynd client fee is below the requested share', {
148
+ clientFee: fees.client_fee,
149
+ amountOut: quote.amount_out,
150
+ clientFeeBps,
151
+ });
152
+ }
153
+ // The proxy patches the signature over Fynd's zeroed placeholder at the reported offset
154
+ const offset = transaction.client_fee_signature_offset;
155
+ const signature = typeof offset === 'number'
156
+ ? transaction.data.slice(2 + offset * 2, 2 + (offset + constants_1.FYND_CLIENT_FEE_SIGNATURE_BYTES) * 2)
157
+ : '';
158
+ if (signature.length !== constants_1.FYND_CLIENT_FEE_SIGNATURE_BYTES * 2 || /^0+$/.test(signature)) {
159
+ return invalidResponse('Fynd quote is not signed for the client fee', { offset });
160
+ }
161
+ if (!quote.client_fee_deadline) {
162
+ return invalidResponse('Fynd quote is missing its client fee deadline');
163
+ }
164
+ };
165
+ const validateFyndQuoteResponse = (response, context) => {
166
+ const order = Array.isArray(response?.orders) ? response.orders[0] : undefined;
167
+ if (!order)
168
+ return (0, monads_1.Err)(invalidResponse('Fynd returned no order'));
169
+ if (order.status !== 'success')
170
+ return (0, monads_1.Err)(getFyndStatusError(order.status));
171
+ const error = getQuoteError(order, context);
172
+ return error ? (0, monads_1.Err)(error) : (0, monads_1.Ok)(order);
173
+ };
174
+ exports.validateFyndQuoteResponse = validateFyndQuoteResponse;
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const types_1 = require("@shapeshiftoss/types");
4
+ const vitest_1 = require("vitest");
5
+ const assets_1 = require("../../../utils/test-data/assets");
6
+ const constants_1 = require("./constants");
7
+ const helpers_1 = require("./helpers");
8
+ (0, vitest_1.describe)('getFyndClientFeeBps', () => {
9
+ vitest_1.it.each([
10
+ ['nets the default fee after the 20% share', '60', 75],
11
+ ['rounds up so the net never falls short', '55', 69],
12
+ ['requests nothing for a fee-free swap', '0', 0],
13
+ ])('%s', (_label, affiliateBps, grossBps) => {
14
+ (0, vitest_1.expect)((0, helpers_1.getFyndClientFeeBps)(affiliateBps)).toBe(grossBps);
15
+ });
16
+ });
17
+ (0, vitest_1.describe)('validateFyndQuoteResponse', () => {
18
+ const router = constants_1.FYND_CHAINS['eip155:1'].routerAddress;
19
+ const unpinnedRouter = '0x1111111111111111111111111111111111111111';
20
+ const transaction = {
21
+ to: router,
22
+ value: '0',
23
+ data: '0x12345678',
24
+ client_fee_signature_offset: null,
25
+ };
26
+ const fees = { router_fee: '10', client_fee: '0', max_slippage: '4', min_amount_received: '986' };
27
+ const order = {
28
+ status: 'success',
29
+ amount_in: '1000',
30
+ amount_out: '1000',
31
+ gas_estimate: '21000',
32
+ transaction,
33
+ fee_breakdown: fees,
34
+ };
35
+ const context = {
36
+ chainId: types_1.KnownChainIds.EthereumMainnet,
37
+ sellAsset: assets_1.WETH,
38
+ sellAmountCryptoBaseUnit: '1000',
39
+ slippageTolerancePercentageDecimal: '0.005',
40
+ clientFeeBps: 0,
41
+ };
42
+ const validate = (overrides, contextOverrides = {}) => (0, helpers_1.validateFyndQuoteResponse)({ orders: [{ ...order, ...overrides }] }, { ...context, ...contextOverrides });
43
+ (0, vitest_1.it)('accepts a quote that matches the request', () => {
44
+ (0, vitest_1.expect)(validate({}).isOk()).toBe(true);
45
+ });
46
+ vitest_1.it.each([
47
+ ['an unpinned router', { transaction: { ...transaction, to: unpinnedRouter } }],
48
+ ['a different sell amount', { amount_in: '999' }],
49
+ ['native value on a token sell', { transaction: { ...transaction, value: '1' } }],
50
+ [
51
+ 'an output floor looser than the slippage',
52
+ { fee_breakdown: { ...fees, min_amount_received: '984' } },
53
+ ],
54
+ ['a client fee we did not request', { fee_breakdown: { ...fees, client_fee: '1' } }],
55
+ ])('rejects %s', (_label, overrides) => {
56
+ (0, vitest_1.expect)(validate(overrides).isErr()).toBe(true);
57
+ });
58
+ (0, vitest_1.it)('binds native transaction value to the requested sell amount', () => {
59
+ (0, vitest_1.expect)(validate({}, { sellAsset: assets_1.ETH }).isErr()).toBe(true);
60
+ (0, vitest_1.expect)(validate({ transaction: { ...transaction, value: '1000' } }, { sellAsset: assets_1.ETH }).isOk()).toBe(true);
61
+ });
62
+ (0, vitest_1.it)('maps a missing route to NoRouteFound', () => {
63
+ const result = (0, helpers_1.validateFyndQuoteResponse)({ orders: [{ status: 'no_route_found' }] }, context);
64
+ (0, vitest_1.expect)(result.unwrapErr().code).toBe('NoRouteFound');
65
+ });
66
+ (0, vitest_1.describe)('with a client fee', () => {
67
+ const feeContext = { clientFeeBps: 75 };
68
+ const feeOrder = {
69
+ transaction: {
70
+ ...transaction,
71
+ data: `0x12345678${'ab'.repeat(65)}`,
72
+ client_fee_signature_offset: 4,
73
+ },
74
+ fee_breakdown: {
75
+ router_fee: '2',
76
+ client_fee: '6',
77
+ max_slippage: '4',
78
+ min_amount_received: '988',
79
+ },
80
+ client_fee_deadline: 1_900_000_000,
81
+ };
82
+ (0, vitest_1.it)('accepts a signed quote carrying our share of the fee', () => {
83
+ (0, vitest_1.expect)(validate(feeOrder, feeContext).isOk()).toBe(true);
84
+ });
85
+ vitest_1.it.each([
86
+ [
87
+ 'a fee below our share',
88
+ {
89
+ fee_breakdown: { ...feeOrder.fee_breakdown, client_fee: '4', min_amount_received: '990' },
90
+ },
91
+ ],
92
+ [
93
+ 'an unsigned placeholder',
94
+ { transaction: { ...feeOrder.transaction, data: `0x12345678${'00'.repeat(65)}` } },
95
+ ],
96
+ ['a missing deadline', { client_fee_deadline: null }],
97
+ ])('rejects %s', (_label, overrides) => {
98
+ (0, vitest_1.expect)(validate({ ...feeOrder, ...overrides }, feeContext).isErr()).toBe(true);
99
+ });
100
+ });
101
+ });
@@ -4,7 +4,6 @@
4
4
  "ARB.ETH": "eip155:42161/slip44:60",
5
5
  "ARB.GLD-0XAFD091F140C21770F4E5D53D26B2859AE97555AA": "eip155:42161/erc20:0xafd091f140c21770f4e5d53d26b2859ae97555aa",
6
6
  "ARB.LEO-0X93864D81175095DD93360FFA2A529B8642F76A6E": "eip155:42161/erc20:0x93864d81175095dd93360ffa2a529b8642f76a6e",
7
- "ARB.LINK-0XF97F4DF75117A78C1A5A0DBB814AF92458539FB4": "eip155:42161/erc20:0xf97f4df75117a78c1a5a0dbb814af92458539fb4",
8
7
  "ARB.PEPE-0X25D887CE7A35172C62FEBFD67A1856F20FAEBB00": "eip155:42161/erc20:0x25d887ce7a35172c62febfd67a1856f20faebb00",
9
8
  "ARB.TGT-0X429FED88F10285E61B12BDF00848315FBDFCC341": "eip155:42161/erc20:0x429fed88f10285e61b12bdf00848315fbdfcc341",
10
9
  "ARB.USDC-0XAF88D065E77C8CC2239327C5EDB3A432268E5831": "eip155:42161/erc20:0xaf88d065e77c8cc2239327c5edb3a432268e5831",
@@ -2,3 +2,4 @@ export declare const ONE_CLICK_BASE_URL = "https://1click.chaindefuser.com";
2
2
  export declare const DEFAULT_SLIPPAGE_BPS = 50;
3
3
  export declare const DEFAULT_QUOTE_DEADLINE_MS: number;
4
4
  export declare const UTXO_QUOTE_DEADLINE_MS: number;
5
+ export declare const APP_FEE_SPLIT_MULTIPLIER = 2;
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UTXO_QUOTE_DEADLINE_MS = exports.DEFAULT_QUOTE_DEADLINE_MS = exports.DEFAULT_SLIPPAGE_BPS = exports.ONE_CLICK_BASE_URL = void 0;
3
+ exports.APP_FEE_SPLIT_MULTIPLIER = exports.UTXO_QUOTE_DEADLINE_MS = exports.DEFAULT_QUOTE_DEADLINE_MS = exports.DEFAULT_SLIPPAGE_BPS = exports.ONE_CLICK_BASE_URL = void 0;
4
4
  exports.ONE_CLICK_BASE_URL = 'https://1click.chaindefuser.com';
5
5
  exports.DEFAULT_SLIPPAGE_BPS = 50;
6
6
  // 1Click refunds a deposit it cannot settle by the requested deadline, and prices a quote the same at any length
7
7
  exports.DEFAULT_QUOTE_DEADLINE_MS = 60 * 60 * 1000;
8
8
  exports.UTXO_QUOTE_DEADLINE_MS = 4 * 60 * 60 * 1000;
9
+ // 1Click pays half of the requested appFee to its own account, so request double to receive affiliateBps
10
+ exports.APP_FEE_SPLIT_MULTIPLIER = 2;
@@ -145,12 +145,17 @@ async function getNearIntentsStepData(args) {
145
145
  const { fast } = await deps.assertGetTronChainAdapter(sellAsset.chainId).getFeeData({
146
146
  to: depositAddress,
147
147
  value: sellAmountCryptoBaseUnit,
148
- chainSpecific: {
149
- from,
150
- contractAddress: (0, utils_1.contractAddressOrUndefined)(sellAsset.assetId),
151
- },
148
+ chainSpecific: { from, contractAddress, requireEnergyShare: type === 'quote' },
152
149
  });
153
- const stepData = { networkFeeCryptoBaseUnit: fast.txFee };
150
+ const networkFeeCryptoBaseUnit = fast.txFee;
151
+ if (type === 'rate') {
152
+ const stepData = { networkFeeCryptoBaseUnit };
153
+ return (0, monads_1.Ok)(stepData);
154
+ }
155
+ const stepData = {
156
+ transactionData: { type: 'tron', to: depositAddress, value: sellAmountCryptoBaseUnit },
157
+ networkFeeCryptoBaseUnit,
158
+ };
154
159
  return (0, monads_1.Ok)(stepData);
155
160
  }
156
161
  case caip_1.CHAIN_NAMESPACE.Sui: {
@@ -156,7 +156,7 @@ const buildNearIntentsQuoteRequest = ({ originAsset, destinationAsset, amount, s
156
156
  appFees: [
157
157
  {
158
158
  recipient: utils_1.DAO_TREASURY_NEAR,
159
- fee: Number(affiliateBps),
159
+ fee: Number(affiliateBps) * constants_1.APP_FEE_SPLIT_MULTIPLIER,
160
160
  },
161
161
  ],
162
162
  };
@@ -62,7 +62,7 @@ exports.portalsApi = {
62
62
  const txStatus = relayTxStatus === unchained_client_1.TxStatus.Unknown ? unchained_client_1.TxStatus.Pending : relayTxStatus;
63
63
  return {
64
64
  status: txStatus,
65
- buyTxHash: relayRequest.data?.outTxs?.[0]?.hash,
65
+ buyTxHash: relayRequest.data?.outTxs?.[0]?.txHash,
66
66
  message: txStatus === unchained_client_1.TxStatus.Failed
67
67
  ? (0, relayStatus_1.getRelayRequestFailureMessage)(relayRequest)
68
68
  : txStatus === unchained_client_1.TxStatus.Confirmed
@@ -71,6 +71,9 @@ exports.portalsApi = {
71
71
  };
72
72
  }
73
73
  }
74
+ else {
75
+ console.error('Failed to fetch relay request:', relayResult.unwrapErr());
76
+ }
74
77
  const axelarscanResult = await (0, fetchAxelarscanStatus_1.fetchAxelarscanBridgeStatus)(txHash);
75
78
  if (axelarscanResult.isOk()) {
76
79
  const bridgeStatus = axelarscanResult.unwrap();
@@ -141,7 +141,7 @@ const getPortalsTradeQuote = async (input, deps) => {
141
141
  const tradeQuote = {
142
142
  ...tradeCommon,
143
143
  quoteOrRate: 'quote',
144
- deadline: expiryMs ?? Date.now() + helpers_1.FALLBACK_QUOTE_DEADLINE_MS,
144
+ deadline: expiryMs,
145
145
  receiveAddress,
146
146
  steps: [
147
147
  {
@@ -14,8 +14,8 @@ export declare const relayChainIdToChainId: import("lodash").Dictionary<string>;
14
14
  export declare const DEFAULT_RELAY_EVM_TOKEN_ADDRESS: "0x0000000000000000000000000000000000000000";
15
15
  export declare const RELAY_BTC_TOKEN_ADDRESS = "bc1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqmql8k8";
16
16
  export declare const RELAY_SOLANA_TOKEN_ADDRESS = "11111111111111111111111111111111";
17
- export declare const RELAY_TRON_TOKEN_ADDRESS = "T9yD14Nj9j7xAB4dbGeiX9h8unkKHxuWwb";
18
17
  export declare const DEFAULT_RELAY_EVM_USER_ADDRESS = "0x000000000000000000000000000000000000dead";
18
+ export declare const RELAY_TRON_FALLBACK_DEPOSIT_ENERGY = "100000";
19
19
  export declare const DEFAULT_RELAY_BTC_USER_ADDRESS = "bc1q4vxn43l44h30nkluqfxd9eckf45vr2awz38lwa";
20
20
  export declare const DEFAULT_RELAY_SOLANA_USER_ADDRESS = "CbKGgVKLJFb8bBrf58DnAkdryX6ubewVytn7X957YwNr";
21
21
  export declare const DEFAULT_RELAY_TRON_USER_ADDRESS = "TLsV52sRDL79HXGGm9yzwKibb6BeruhUzy";
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.relayErrorCodeToTradeQuoteError = exports.MAXIMUM_SUPPORTED_RELAY_STEPS = exports.DEFAULT_RELAY_TRON_USER_ADDRESS = exports.DEFAULT_RELAY_SOLANA_USER_ADDRESS = exports.DEFAULT_RELAY_BTC_USER_ADDRESS = exports.DEFAULT_RELAY_EVM_USER_ADDRESS = exports.RELAY_TRON_TOKEN_ADDRESS = exports.RELAY_SOLANA_TOKEN_ADDRESS = exports.RELAY_BTC_TOKEN_ADDRESS = exports.DEFAULT_RELAY_EVM_TOKEN_ADDRESS = exports.relayChainIdToChainId = exports.RelayStatusMessage = exports.chainIdToRelayChainId = void 0;
6
+ exports.relayErrorCodeToTradeQuoteError = exports.MAXIMUM_SUPPORTED_RELAY_STEPS = exports.DEFAULT_RELAY_TRON_USER_ADDRESS = exports.DEFAULT_RELAY_SOLANA_USER_ADDRESS = exports.DEFAULT_RELAY_BTC_USER_ADDRESS = exports.RELAY_TRON_FALLBACK_DEPOSIT_ENERGY = exports.DEFAULT_RELAY_EVM_USER_ADDRESS = exports.RELAY_SOLANA_TOKEN_ADDRESS = exports.RELAY_BTC_TOKEN_ADDRESS = exports.DEFAULT_RELAY_EVM_TOKEN_ADDRESS = exports.relayChainIdToChainId = exports.RelayStatusMessage = exports.chainIdToRelayChainId = void 0;
7
7
  const caip_1 = require("@shapeshiftoss/caip");
8
8
  const invert_1 = __importDefault(require("lodash/invert"));
9
9
  const viem_1 = require("viem");
@@ -64,8 +64,9 @@ exports.relayChainIdToChainId = (0, invert_1.default)(exports.chainIdToRelayChai
64
64
  exports.DEFAULT_RELAY_EVM_TOKEN_ADDRESS = viem_1.zeroAddress;
65
65
  exports.RELAY_BTC_TOKEN_ADDRESS = 'bc1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqmql8k8';
66
66
  exports.RELAY_SOLANA_TOKEN_ADDRESS = '11111111111111111111111111111111';
67
- exports.RELAY_TRON_TOKEN_ADDRESS = 'T9yD14Nj9j7xAB4dbGeiX9h8unkKHxuWwb';
68
67
  exports.DEFAULT_RELAY_EVM_USER_ADDRESS = '0x000000000000000000000000000000000000dead';
68
+ // depositor energy for a TRC20 deposit measured on mainnet, for token quotes without their allowance
69
+ exports.RELAY_TRON_FALLBACK_DEPOSIT_ENERGY = '100000';
69
70
  exports.DEFAULT_RELAY_BTC_USER_ADDRESS = 'bc1q4vxn43l44h30nkluqfxd9eckf45vr2awz38lwa';
70
71
  exports.DEFAULT_RELAY_SOLANA_USER_ADDRESS = 'CbKGgVKLJFb8bBrf58DnAkdryX6ubewVytn7X957YwNr';
71
72
  exports.DEFAULT_RELAY_TRON_USER_ADDRESS = 'TLsV52sRDL79HXGGm9yzwKibb6BeruhUzy';
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getExactOutputTradeQuote = exports.getTradeQuote = void 0;
4
4
  const monads_1 = require("@sniptt/monads");
5
5
  const utils_1 = require("../../../utils");
6
- const helpers_1 = require("../../../utils/helpers");
7
6
  const getRelayStepData_1 = require("../utils/getRelayStepData");
8
7
  const getRelayTradeContext_1 = require("../utils/getRelayTradeContext");
9
8
  const getQuote = async (input, deps, relayChainMap) => {
@@ -15,7 +14,7 @@ const getQuote = async (input, deps, relayChainMap) => {
15
14
  const maybeContext = await (0, getRelayTradeContext_1.getRelayTradeContext)({ input, deps, relayChainMap });
16
15
  if (maybeContext.isErr())
17
16
  return (0, monads_1.Err)(maybeContext.unwrapErr());
18
- const { tradeCommon, stepCommon, protocolFees, relayStepInputs, stepDataArgs, relayId } = maybeContext.unwrap();
17
+ const { tradeCommon, stepCommon, protocolFees, relayStepInputs, stepDataArgs, relayId, deadline, } = maybeContext.unwrap();
19
18
  const stepResults = await Promise.all(relayStepInputs.map(async ({ data, allowanceContract }) => {
20
19
  const maybeStepData = await (0, getRelayStepData_1.getRelayStepData)({
21
20
  ...stepDataArgs,
@@ -24,12 +23,11 @@ const getQuote = async (input, deps, relayChainMap) => {
24
23
  type: 'quote',
25
24
  input,
26
25
  });
27
- return maybeStepData.map(({ transactionData, relayTransactionMetadata, networkFeeCryptoBaseUnit, }) => ({
26
+ return maybeStepData.map(({ transactionData, networkFeeCryptoBaseUnit }) => ({
28
27
  ...stepCommon,
29
28
  accountNumber,
30
29
  allowanceContract,
31
30
  transactionData,
32
- relayTransactionMetadata,
33
31
  swapperMetadata: {
34
32
  name: 'relay',
35
33
  relayId,
@@ -46,7 +44,7 @@ const getQuote = async (input, deps, relayChainMap) => {
46
44
  const tradeQuote = {
47
45
  ...tradeCommon,
48
46
  quoteOrRate: 'quote',
49
- deadline: Date.now() + helpers_1.FALLBACK_QUOTE_DEADLINE_MS,
47
+ deadline,
50
48
  receiveAddress,
51
49
  steps,
52
50
  };
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getRelayAssetAddress = void 0;
4
4
  const caip_1 = require("@shapeshiftoss/caip");
5
+ const chain_adapters_1 = require("@shapeshiftoss/chain-adapters");
5
6
  const helpers_1 = require("../../../utils/helpers");
6
7
  const constant_1 = require("../constant");
7
8
  const getRelayAssetAddress = (asset) => {
@@ -10,7 +11,7 @@ const getRelayAssetAddress = (asset) => {
10
11
  if (asset.assetId === caip_1.solAssetId)
11
12
  return constant_1.RELAY_SOLANA_TOKEN_ADDRESS;
12
13
  if (asset.assetId === caip_1.tronAssetId)
13
- return constant_1.RELAY_TRON_TOKEN_ADDRESS;
14
+ return chain_adapters_1.tron.TRON_ZERO_ADDRESS;
14
15
  if ((0, helpers_1.isNativeEvmAsset)(asset.assetId))
15
16
  return constant_1.DEFAULT_RELAY_EVM_TOKEN_ADDRESS;
16
17
  const { assetReference } = (0, caip_1.fromAssetId)(asset.assetId);
@@ -1,7 +1,7 @@
1
1
  import type { Result } from '@sniptt/monads';
2
2
  import type { StepDataArgs, SwapErrorRight, TxBuildData } from '../../../types';
3
3
  import type { SolanaComputeBudgetOptions } from '../../../utils/solana';
4
- import type { RelayQuoteItem, RelayTransactionMetadata } from './types';
4
+ import type { RelayQuoteItem } from './types';
5
5
  export declare const RELAY_SOLANA_COMPUTE_BUDGET: SolanaComputeBudgetOptions;
6
6
  type BaseArgs = {
7
7
  data: RelayQuoteItem['data'];
@@ -15,8 +15,7 @@ type RelayRateStepData = {
15
15
  networkFeeCryptoBaseUnit: string;
16
16
  };
17
17
  type RelayQuoteStepData = {
18
- transactionData?: TxBuildData;
19
- relayTransactionMetadata?: RelayTransactionMetadata;
18
+ transactionData: TxBuildData;
20
19
  networkFeeCryptoBaseUnit: string;
21
20
  };
22
21
  export type GetRelayStepDataArgs = StepDataArgs<BaseArgs, {