@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,151 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const caip_1 = require("@shapeshiftoss/caip");
4
+ const unchained_client_1 = require("@shapeshiftoss/unchained-client");
5
+ const vitest_1 = require("vitest");
6
+ const constants_1 = require("./constants");
7
+ const helpers_1 = require("./helpers");
8
+ const types_1 = require("./types");
9
+ const BSC_USDC_ADDRESS = '0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d';
10
+ const BSC_USDC_ASSET_ID = 'eip155:56/erc20:0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d';
11
+ // The fees array of a live Arbitrum USDC -> BSC quote: one host chain sToken entry, one destination entry
12
+ const liveFees = [
13
+ {
14
+ provider: 'symbiosis',
15
+ description: 'Cross-chain fee',
16
+ value: {
17
+ symbol: 'sUSDC',
18
+ address: '0xc317169a336b484f65B0AB4A794bBe66a7491E83',
19
+ amount: '250000',
20
+ chainId: 13863860,
21
+ decimals: 6,
22
+ },
23
+ },
24
+ {
25
+ provider: 'symbiosis',
26
+ description: 'Cross-chain fee',
27
+ value: {
28
+ symbol: 'USDC',
29
+ address: BSC_USDC_ADDRESS,
30
+ amount: '250000000000000000',
31
+ chainId: 56,
32
+ decimals: 18,
33
+ },
34
+ },
35
+ ];
36
+ (0, vitest_1.describe)('getSymbiosisSlippageBps', () => {
37
+ (0, vitest_1.it)('raises slippage below the Symbiosis minimum to 10 bps', () => {
38
+ (0, vitest_1.expect)((0, helpers_1.getSymbiosisSlippageBps)('0.0005')).toBe(10);
39
+ (0, vitest_1.expect)((0, helpers_1.getSymbiosisSlippageBps)('0')).toBe(10);
40
+ });
41
+ (0, vitest_1.it)('lowers slippage above the Symbiosis maximum to 1000 bps', () => {
42
+ (0, vitest_1.expect)((0, helpers_1.getSymbiosisSlippageBps)('0.25')).toBe(1000);
43
+ });
44
+ });
45
+ (0, vitest_1.describe)('getSymbiosisPartnerAddress', () => {
46
+ (0, vitest_1.it)('sends the partner address at the registered rate', () => {
47
+ (0, vitest_1.expect)((0, helpers_1.getSymbiosisPartnerAddress)('60').unwrap()).toBe(constants_1.SYMBIOSIS_PARTNER_ADDRESS);
48
+ });
49
+ (0, vitest_1.it)('omits the partner address for a fee-free swap', () => {
50
+ (0, vitest_1.expect)((0, helpers_1.getSymbiosisPartnerAddress)('0').unwrap()).toBeUndefined();
51
+ });
52
+ (0, vitest_1.it)('rejects any other rate instead of silently dropping the fee', () => {
53
+ (0, vitest_1.expect)((0, helpers_1.getSymbiosisPartnerAddress)('30').isErr()).toBe(true);
54
+ (0, vitest_1.expect)((0, helpers_1.getSymbiosisPartnerAddress)('80').isErr()).toBe(true);
55
+ });
56
+ });
57
+ (0, vitest_1.describe)('buildSymbiosisTronCallData', () => {
58
+ const functionSelector = 'metaRoute((bytes,bytes,address[],address,address,uint256,bool,address,bytes))';
59
+ (0, vitest_1.it)('prefixes the parameters with the 4-byte selector of the signature', () => {
60
+ const data = `0x${'00'.repeat(31)}20`;
61
+ (0, vitest_1.expect)((0, helpers_1.buildSymbiosisTronCallData)({ functionSelector, data })).toBe(`0xa11b1198${'00'.repeat(31)}20`);
62
+ });
63
+ });
64
+ (0, vitest_1.describe)('getSymbiosisFeeAssetId', () => {
65
+ (0, vitest_1.it)('maps a Tron hex address to its base58 trc20 asset id', () => {
66
+ (0, vitest_1.expect)((0, helpers_1.getSymbiosisFeeAssetId)({
67
+ chainId: 728126428,
68
+ address: '0xa614f803b6fd780986a42c78ec9c7f77e6ded13c',
69
+ })).toBe(caip_1.usdtOnTronAssetId);
70
+ });
71
+ });
72
+ (0, vitest_1.describe)('getSymbiosisProtocolFees', () => {
73
+ (0, vitest_1.it)('keeps resolvable fees and skips host chain sToken fees', () => {
74
+ (0, vitest_1.expect)((0, helpers_1.getSymbiosisProtocolFees)(liveFees)).toEqual({
75
+ [BSC_USDC_ASSET_ID]: {
76
+ amountCryptoBaseUnit: '250000000000000000',
77
+ asset: { symbol: 'USDC', chainId: 'eip155:56', precision: 18 },
78
+ requiresBalance: false,
79
+ },
80
+ });
81
+ });
82
+ (0, vitest_1.it)('sums fees charged in the same asset', () => {
83
+ const fees = (0, helpers_1.getSymbiosisProtocolFees)([liveFees[1], liveFees[1]]);
84
+ (0, vitest_1.expect)(fees[BSC_USDC_ASSET_ID]?.amountCryptoBaseUnit).toBe('500000000000000000');
85
+ });
86
+ });
87
+ (0, vitest_1.describe)('getSymbiosisTradeStatus', () => {
88
+ const buySymbiosisChainId = 56;
89
+ const makeResponse = (overrides) => ({
90
+ status: { code: types_1.SymbiosisStatusCode.Success, text: 'Success' },
91
+ txIn: { hash: '0xsell', chainId: 42161 },
92
+ tx: { hash: '0xbuy', chainId: 56 },
93
+ ...overrides,
94
+ });
95
+ (0, vitest_1.it)('confirms with the destination hash once the destination tx is on the buy chain', () => {
96
+ (0, vitest_1.expect)((0, helpers_1.getSymbiosisTradeStatus)({ response: makeResponse({}), buySymbiosisChainId })).toEqual({
97
+ status: unchained_client_1.TxStatus.Confirmed,
98
+ buyTxHash: '0xbuy',
99
+ message: undefined,
100
+ });
101
+ });
102
+ (0, vitest_1.it)('stays pending when Success describes the source transaction itself', () => {
103
+ const response = makeResponse({ tx: { hash: '0xsell', chainId: 42161 } });
104
+ (0, vitest_1.expect)((0, helpers_1.getSymbiosisTradeStatus)({ response, buySymbiosisChainId })).toEqual({
105
+ status: unchained_client_1.TxStatus.Pending,
106
+ buyTxHash: undefined,
107
+ message: undefined,
108
+ });
109
+ });
110
+ (0, vitest_1.it)('names the transit token when the destination swap did not complete', () => {
111
+ const response = makeResponse({
112
+ transitTokenSent: {
113
+ chainId: 56,
114
+ address: BSC_USDC_ADDRESS,
115
+ decimals: 18,
116
+ symbol: 'USDC',
117
+ amount: '250000000000000000',
118
+ },
119
+ });
120
+ (0, vitest_1.expect)((0, helpers_1.getSymbiosisTradeStatus)({ response, buySymbiosisChainId })).toEqual({
121
+ status: unchained_client_1.TxStatus.Confirmed,
122
+ buyTxHash: '0xbuy',
123
+ message: 'Received 0.25 USDC instead of the buy asset',
124
+ });
125
+ });
126
+ (0, vitest_1.it)('maps pending, stuck, reverted and not found', () => {
127
+ const pending = makeResponse({ status: { code: types_1.SymbiosisStatusCode.Pending, text: '' } });
128
+ const stuck = makeResponse({ status: { code: types_1.SymbiosisStatusCode.Stuck, text: '' } });
129
+ const reverted = makeResponse({ status: { code: types_1.SymbiosisStatusCode.Reverted, text: '' } });
130
+ const notFound = makeResponse({ status: { code: types_1.SymbiosisStatusCode.NotFound, text: '' } });
131
+ (0, vitest_1.expect)((0, helpers_1.getSymbiosisTradeStatus)({ response: pending, buySymbiosisChainId }).status).toBe(unchained_client_1.TxStatus.Pending);
132
+ (0, vitest_1.expect)((0, helpers_1.getSymbiosisTradeStatus)({ response: stuck, buySymbiosisChainId })).toEqual({
133
+ status: unchained_client_1.TxStatus.Pending,
134
+ buyTxHash: undefined,
135
+ message: 'Swap is stuck and is being reverted by Symbiosis',
136
+ });
137
+ (0, vitest_1.expect)((0, helpers_1.getSymbiosisTradeStatus)({ response: reverted, buySymbiosisChainId })).toEqual({
138
+ status: unchained_client_1.TxStatus.Failed,
139
+ buyTxHash: undefined,
140
+ message: 'Swap was reverted by Symbiosis',
141
+ });
142
+ (0, vitest_1.expect)((0, helpers_1.getSymbiosisTradeStatus)({ response: notFound, buySymbiosisChainId }).status).toBe(unchained_client_1.TxStatus.Unknown);
143
+ });
144
+ });
145
+ (0, vitest_1.describe)('isTronSourceTxFailed', () => {
146
+ (0, vitest_1.it)('is true for any contract result other than SUCCESS', () => {
147
+ (0, vitest_1.expect)((0, helpers_1.isTronSourceTxFailed)({ ret: [{ contractRet: 'REVERT' }] })).toBe(true);
148
+ (0, vitest_1.expect)((0, helpers_1.isTronSourceTxFailed)({ ret: [{ contractRet: 'OUT_OF_ENERGY' }] })).toBe(true);
149
+ (0, vitest_1.expect)((0, helpers_1.isTronSourceTxFailed)({ ret: [{ contractRet: 'SUCCESS' }] })).toBe(false);
150
+ });
151
+ });
@@ -0,0 +1,5 @@
1
+ export declare const symbiosisService: {
2
+ get: <T = any>(url: string, config?: import("axios").AxiosRequestConfig<any> | undefined) => Promise<import("@sniptt/monads").Result<import("axios").AxiosResponse<T, any, {}>, import("../../..").SwapErrorRight>>;
3
+ post: <T_1 = any>(url: string, data: any, config?: import("axios").AxiosRequestConfig<any> | undefined) => Promise<import("@sniptt/monads").Result<import("axios").AxiosResponse<T_1, any, {}>, import("../../..").SwapErrorRight>>;
4
+ delete: <T_2 = any>(url: string, data: any, config?: import("axios").AxiosRequestConfig<any> | undefined) => Promise<import("@sniptt/monads").Result<import("axios").AxiosResponse<T_2, any, {}>, import("../../..").SwapErrorRight>>;
5
+ };
@@ -0,0 +1,18 @@
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.symbiosisService = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const utils_1 = require("../../../utils");
9
+ const constants_1 = require("./constants");
10
+ const symbiosisServiceBase = axios_1.default.create({
11
+ timeout: 10000,
12
+ headers: {
13
+ Accept: 'application/json',
14
+ 'Content-Type': 'application/json',
15
+ 'X-Partner-Id': constants_1.SYMBIOSIS_PARTNER_ID,
16
+ },
17
+ });
18
+ exports.symbiosisService = (0, utils_1.makeSwapperAxiosServiceMonadic)(symbiosisServiceBase);
@@ -0,0 +1,83 @@
1
+ import type { GetEvmTradeQuoteInput, GetEvmTradeRateInput, GetTronTradeQuoteInput, GetTronTradeRateInput } from '../../../types';
2
+ export type SymbiosisTradeQuoteInput = GetEvmTradeQuoteInput | GetTronTradeQuoteInput;
3
+ export type SymbiosisTradeRateInput = GetEvmTradeRateInput | GetTronTradeRateInput;
4
+ export type SymbiosisToken = {
5
+ chainId: number;
6
+ address: string;
7
+ decimals: number;
8
+ symbol: string;
9
+ };
10
+ export type SymbiosisTokenAmount = SymbiosisToken & {
11
+ amount: string;
12
+ };
13
+ export type SymbiosisQuoteRequest = {
14
+ tokenAmountIn: Omit<SymbiosisTokenAmount, 'symbol'>;
15
+ tokenOut: Omit<SymbiosisToken, 'symbol'>;
16
+ from: string;
17
+ to: string;
18
+ slippage: number;
19
+ disabledProviders: string;
20
+ partnerAddress?: string;
21
+ };
22
+ export type SymbiosisFee = {
23
+ provider: string;
24
+ description?: string;
25
+ value: SymbiosisTokenAmount;
26
+ };
27
+ export type SymbiosisEvmTx = {
28
+ chainId: number;
29
+ to: string;
30
+ data: string;
31
+ value?: string;
32
+ };
33
+ export type SymbiosisTronTx = {
34
+ chainId: number;
35
+ from: string;
36
+ to: string;
37
+ data: string;
38
+ value?: string;
39
+ feeLimit: number;
40
+ functionSelector?: string;
41
+ };
42
+ export type SymbiosisSwapTx = {
43
+ type: 'evm';
44
+ tx: SymbiosisEvmTx;
45
+ } | {
46
+ type: 'tron';
47
+ tx: SymbiosisTronTx;
48
+ };
49
+ export type SymbiosisQuoteResponse = SymbiosisSwapTx & {
50
+ kind: string;
51
+ labels: string[];
52
+ approveTo?: string;
53
+ tokenAmountOut: SymbiosisTokenAmount;
54
+ tokenAmountOutMin: SymbiosisTokenAmount;
55
+ fees: SymbiosisFee[];
56
+ estimatedTime: number;
57
+ };
58
+ export type SymbiosisErrorResponse = {
59
+ code: number;
60
+ message: string;
61
+ };
62
+ export declare enum SymbiosisStatusCode {
63
+ NotFound = -1,
64
+ Success = 0,
65
+ Pending = 1,
66
+ Stuck = 2,
67
+ Reverted = 3
68
+ }
69
+ export type SymbiosisTxResponse = {
70
+ status: {
71
+ code: SymbiosisStatusCode;
72
+ text: string;
73
+ };
74
+ tx?: {
75
+ hash?: string;
76
+ chainId: number;
77
+ };
78
+ txIn?: {
79
+ hash?: string;
80
+ chainId: number;
81
+ };
82
+ transitTokenSent?: SymbiosisTokenAmount;
83
+ };
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SymbiosisStatusCode = void 0;
4
+ var SymbiosisStatusCode;
5
+ (function (SymbiosisStatusCode) {
6
+ SymbiosisStatusCode[SymbiosisStatusCode["NotFound"] = -1] = "NotFound";
7
+ SymbiosisStatusCode[SymbiosisStatusCode["Success"] = 0] = "Success";
8
+ SymbiosisStatusCode[SymbiosisStatusCode["Pending"] = 1] = "Pending";
9
+ SymbiosisStatusCode[SymbiosisStatusCode["Stuck"] = 2] = "Stuck";
10
+ SymbiosisStatusCode[SymbiosisStatusCode["Reverted"] = 3] = "Reverted";
11
+ })(SymbiosisStatusCode || (exports.SymbiosisStatusCode = SymbiosisStatusCode = {}));
@@ -1,15 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.thorchainApi = void 0;
4
- const types_1 = require("../../types");
5
4
  const cosmossdk_1 = require("../../utils/cosmossdk");
6
5
  const evm_1 = require("../../utils/evm");
7
6
  const solana_1 = require("../../utils/solana");
8
7
  const thorchain_1 = require("../../utils/thorchain");
8
+ const tron_1 = require("../../utils/tron");
9
9
  const utxo_1 = require("../../utils/utxo");
10
10
  const getTradeQuote_1 = require("./getTradeQuote/getTradeQuote");
11
11
  const getTradeRate_1 = require("./getTradeRate/getTradeRate");
12
- const swapperName = types_1.SwapperName.Thorchain;
13
12
  exports.thorchainApi = {
14
13
  getTradeRate: (input, deps) => (0, getTradeRate_1.getTradeRate)(input, deps),
15
14
  getTradeQuote: (input, deps) => (0, getTradeQuote_1.getTradeQuote)(input, deps),
@@ -21,8 +20,8 @@ exports.thorchainApi = {
21
20
  getCosmosSdkTransactionFees: cosmossdk_1.getCosmosSdkTransactionFees,
22
21
  getUnsignedSolanaTransaction: solana_1.getUnsignedSolanaTransaction,
23
22
  getSolanaTransactionFees: solana_1.getSolanaTransactionFees,
24
- getUnsignedTronTransaction: input => thorchain_1.tron.getUnsignedTronTransaction(input, swapperName),
25
- getTronTransactionFees: input => thorchain_1.tron.getTronTransactionFees(input, swapperName),
23
+ getUnsignedTronTransaction: tron_1.getUnsignedTronTransaction,
24
+ getTronTransactionFees: tron_1.getTronTransactionFees,
26
25
  checkTradeStatus: input => {
27
26
  const { config } = input;
28
27
  const nodeUrl = `${config.VITE_THORCHAIN_NODE_URL}/thorchain`;
@@ -1017,6 +1017,7 @@
1017
1017
  "eip155:1/erc20:0x2c06ba9e7f0daccbc1f6a33ea67e85bb68fbee3a",
1018
1018
  "eip155:1/erc20:0xcbb8f1bda10b9696c57e13bc128fe674769dcec0",
1019
1019
  "eip155:1/erc20:0x72dfb2e44f59c5ad2bafe84314e5b99a7cd5075e",
1020
+ "eip155:1/erc20:0xce682c89c63d2850cb2ca898e44d6c7c30d897a6",
1020
1021
  "eip155:43114/erc20:0xc891eb4cbdeff6e073e859e987815ed1505c2acd",
1021
1022
  "eip155:43114/erc20:0xd24c2ad096400b6fbcd2ad8b24e7acbc21a1da64",
1022
1023
  "eip155:43114/erc20:0x47c3118ad183712acd42648e9e522e13690f29a0",
@@ -41,5 +41,6 @@
41
41
  "THOR.TCY": "cosmos:thorchain-1/slip44:tcy",
42
42
  "TRON.TRX": "tron:0x2b6653dc/slip44:195",
43
43
  "TRON.USDT-TR7NHQJEKQXGTCI8Q8ZY4PL8OTSZGJLJ6T": "tron:0x2b6653dc/trc20:tr7nhqjekqxgtci8q8zy4pl8otszgjlj6t",
44
+ "ZEC.ZEC": "bip122:00040fe8ec8471911baa1db1266ea15d/slip44:133",
44
45
  "THOR.RUNE": "cosmos:thorchain-1/slip44:931"
45
46
  }
@@ -41,7 +41,12 @@ const addL1ToLongtailPartsToMemo = ({ sellAssetChainId, quotedMemo, aggregator,
41
41
  finalAssetAddress: finalAssetContractAddressShortened,
42
42
  });
43
43
  const [prefix, nativeAssetName, address, nativeAssetLimitWithManualSlippage, affiliate, affiliateBps, aggregatorLastTwoChars, finalAssetContract,] = quotedMemoWithAggregatorAndFinalAssetContract.split(thorchain_1.MEMO_PART_DELIMITER);
44
- const shortenedNativeAssetName = longTailHelpers_1.shortenedNativeAssetNameByNativeAssetName[nativeAssetName];
44
+ // THORNode quote memos may already use the shortened native asset name
45
+ const shortenedNativeAssetNames = Object.values(longTailHelpers_1.shortenedNativeAssetNameByNativeAssetName);
46
+ const isAlreadyShortened = shortenedNativeAssetNames.includes(nativeAssetName);
47
+ const shortenedNativeAssetName = isAlreadyShortened
48
+ ? nativeAssetName
49
+ : longTailHelpers_1.shortenedNativeAssetNameByNativeAssetName[nativeAssetName];
45
50
  (0, assert_1.default)(shortenedNativeAssetName, 'cannot find shortened native asset name');
46
51
  const memoWithoutFinalAssetLimit = [
47
52
  prefix,
@@ -37,6 +37,21 @@ const slippageBps = 100; // 1%
37
37
  // The aggregator will turn the finalAssetAmountOut from 94136714201 to 9413671420 using the last 2 bytes as exponents
38
38
  `=:e:0x32DBc9Cf9E8FbCebE1e0a2ecF05Ed86Ca3096Cb6:42:ss:100:d2:a6df4741:94136714201`);
39
39
  });
40
+ (0, vitest_1.it)('should accept a quoted memo with an already shortened native asset name', () => {
41
+ const finalAssetAmountOut = '9508759019';
42
+ const quotedMemo = `=:e:0x32DBc9Cf9E8FbCebE1e0a2ecF05Ed86Ca3096Cb6:42:ss:100`;
43
+ const modifiedMemo = (0, addL1ToLongtailPartsToMemo_1.addL1ToLongtailPartsToMemo)({
44
+ sellAssetChainId: caip_1.ethChainId,
45
+ quotedMemo,
46
+ aggregator: AGGREGATOR_ADDRESS,
47
+ finalAssetAssetId: FINAL_ASSET_ASSETID,
48
+ finalAssetAmountOut,
49
+ slippageBps,
50
+ longtailTokens: THORCHAIN_ASSETIDS_ONE_COLLISION,
51
+ affiliate: constants_1.THORCHAIN_AFFILIATE_NAME,
52
+ });
53
+ (0, vitest_1.expect)(modifiedMemo).toBe(`=:e:0x32DBc9Cf9E8FbCebE1e0a2ecF05Ed86Ca3096Cb6:42:ss:100:d2:a6df4741:94136714201`);
54
+ });
40
55
  (0, vitest_1.it)('should throw if chainId is BCH and initial memo length is > 220', () => {
41
56
  const finalAssetAmountOut = '2083854765519275828179229';
42
57
  const memoOver220Bytes = `=:ETH.ETH:${REALLY_BIG_ADDRESS}:42:ss:100`;
@@ -94,6 +94,13 @@ const assertValidL1ToLongtailTrade = async ({ sellAsset, buyAsset, deps, }) => {
94
94
  details: { sellAssetChainId: sellAsset.chainId },
95
95
  }));
96
96
  }
97
+ if (sellAsset.assetId === buyAssetFeeAsset.assetId) {
98
+ return (0, monads_1.Err)((0, utils_1.makeSwapErrorRight)({
99
+ message: `[getThorTradeQuote] - Cannot swap ${sellAsset.assetId} to itself before the aggregator.`,
100
+ code: types_1.TradeQuoteError.UnsupportedTradePair,
101
+ details: { buyAsset, sellAsset },
102
+ }));
103
+ }
97
104
  return (0, monads_1.Ok)({ buyAssetFeeAsset, longtailTokens });
98
105
  };
99
106
  exports.assertValidL1ToLongtailTrade = assertValidL1ToLongtailTrade;
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getL1ToLongtailQuote = void 0;
4
- const contracts_1 = require("@shapeshiftoss/contracts");
5
4
  const utils_1 = require("@shapeshiftoss/utils");
6
5
  const monads_1 = require("@sniptt/monads");
7
6
  const constants_1 = require("../../../constants");
@@ -85,7 +84,6 @@ const getL1ToLongtailQuote = async (input, deps, streamingInterval, swapperName)
85
84
  buyAmountAfterFeesCryptoBaseUnit: quotedAmountOut.toString(),
86
85
  // This is wrong, we should get the get the value before fees or display ETH value received after the thorchain bridge
87
86
  buyAmountBeforeFeesCryptoBaseUnit: quotedAmountOut.toString(),
88
- allowanceContract: contracts_1.TS_AGGREGATOR_TOKEN_TRANSFER_PROXY_CONTRACT_MAINNET,
89
87
  transactionData,
90
88
  feeData: { ...s.feeData, networkFeeCryptoBaseUnit },
91
89
  })),
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getL1ToLongtailRate = void 0;
4
- const contracts_1 = require("@shapeshiftoss/contracts");
5
4
  const monads_1 = require("@sniptt/monads");
6
5
  const thorchain_1 = require("../../../utils/thorchain");
7
6
  const assertValidLongtailTrade_1 = require("./assertValidLongtailTrade");
@@ -38,7 +37,6 @@ const getL1ToLongtailRate = async (input, deps, streamingInterval, swapperName)
38
37
  buyAmountAfterFeesCryptoBaseUnit: quotedAmountOut.toString(),
39
38
  // This is wrong, we should get the get the value before fees or display ETH value received after the thorchain bridge
40
39
  buyAmountBeforeFeesCryptoBaseUnit: quotedAmountOut.toString(),
41
- allowanceContract: contracts_1.TS_AGGREGATOR_TOKEN_TRANSFER_PROXY_CONTRACT_MAINNET,
42
40
  })),
43
41
  isLongtail: true,
44
42
  });
@@ -77,7 +77,7 @@ const getLongtailToL1Quote = async (input, deps, streamingInterval, swapperName)
77
77
  return (0, monads_1.Ok)({
78
78
  ...quote,
79
79
  // The aggregator swapIn deadline is tighter than the daemon quote expiry
80
- deadline: Math.min(quote.deadline, Number(deadline) * 1000),
80
+ deadline: Math.min(quote.deadline ?? Infinity, Number(deadline) * 1000),
81
81
  data: data ?? quote.data,
82
82
  // This logic will need to be updated to support multi-hop, if that's ever implemented for THORChain
83
83
  steps: quote.steps.map(s => ({
@@ -1,2 +1,2 @@
1
1
  import type { AssetId } from '@shapeshiftoss/caip';
2
- export declare const getUniqueAddressSubstring: (destinationAssetId: AssetId, longTailAssetIds: AssetId[]) => AssetId;
2
+ export declare const getUniqueAddressSubstring: (destinationAssetId: AssetId, longTailAssetIds: AssetId[]) => string;
@@ -1,27 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getUniqueAddressSubstring = void 0;
4
+ const caip_1 = require("@shapeshiftoss/caip");
5
+ const MINIMUM_UNIQUE_SUBSTRING = 2;
6
+ // Mirrors THORNode's externalAssetMatch: a case-insensitive suffix match against the target chain's token list only
4
7
  const getUniqueAddressSubstring = (destinationAssetId, longTailAssetIds) => {
5
- const MINIMUM_UNIQUE_SUBSTRING = 2;
6
- let maybeShortenedDestinationAddress = destinationAssetId;
7
- const substringsCount = {};
8
- for (let length = MINIMUM_UNIQUE_SUBSTRING; length <= destinationAssetId.length - 2; length++) {
9
- const currentSubstring = destinationAssetId.slice(-length);
10
- substringsCount[currentSubstring] = 0;
8
+ const { chainId, assetReference } = (0, caip_1.fromAssetId)(destinationAssetId);
9
+ const address = assetReference.toLowerCase();
10
+ const sameChainAddresses = longTailAssetIds
11
+ .map(assetId => (0, caip_1.fromAssetId)(assetId))
12
+ .filter(asset => asset.chainId === chainId)
13
+ .map(asset => asset.assetReference.toLowerCase());
14
+ if (!sameChainAddresses.includes(address))
15
+ return address;
16
+ for (let length = MINIMUM_UNIQUE_SUBSTRING; length < address.length; length++) {
17
+ const suffix = address.slice(-length);
18
+ const matchCount = sameChainAddresses.filter(sameChainAddress => sameChainAddress.endsWith(suffix)).length;
19
+ if (matchCount === 1)
20
+ return suffix;
11
21
  }
12
- longTailAssetIds.forEach(assetId => {
13
- Object.keys(substringsCount).forEach(substring => {
14
- if (assetId.includes(substring)) {
15
- substringsCount[substring] += 1;
16
- }
17
- });
18
- });
19
- for (const [substring, count] of Object.entries(substringsCount)) {
20
- if (count === 1) {
21
- maybeShortenedDestinationAddress = substring;
22
- break;
23
- }
24
- }
25
- return maybeShortenedDestinationAddress;
22
+ return address;
26
23
  };
27
24
  exports.getUniqueAddressSubstring = getUniqueAddressSubstring;
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  const caip_1 = require("@shapeshiftoss/caip");
4
7
  const vitest_1 = require("vitest");
8
+ const generatedThorLongtailTokens_json_1 = __importDefault(require("../../generated/generatedThorLongtailTokens.json"));
5
9
  const getUniqueAddressSubstring_1 = require("./getUniqueAddressSubstring");
6
10
  const FINAL_ASSET_ASSETID = (0, caip_1.toAssetId)({
7
11
  chainId: caip_1.ethChainId,
@@ -18,6 +22,16 @@ const BIGGER_COLLIDING_FINAL_ASSETID = (0, caip_1.toAssetId)({
18
22
  assetReference: '0xa0b86991c6218b36c1d19d4a2e9eb032a6dF4741',
19
23
  assetNamespace: 'erc20',
20
24
  });
25
+ const SAME_ADDRESS_OTHER_CHAIN_ASSETID = (0, caip_1.toAssetId)({
26
+ chainId: caip_1.bscChainId,
27
+ assetReference: '0x8a65ac0E23F31979db06Ec62Af62b432a6dF4741',
28
+ assetNamespace: 'erc20',
29
+ });
30
+ const ONE_INCH_ASSETID = (0, caip_1.toAssetId)({
31
+ chainId: caip_1.ethChainId,
32
+ assetReference: '0x111111111117dc0aa78b770fa6a738034120c302',
33
+ assetNamespace: 'erc20',
34
+ });
21
35
  const SHORTENED_FINAL_ASSET_ADDRESS = 'a6df4741';
22
36
  const BIGGER_SHORTENED_FINAL_ASSET_ADDRESS = '432a6df4741';
23
37
  const THORCHAIN_ASSETIDS_ONE_COLLISION = [FINAL_ASSET_ASSETID, COLLIDING_FINAL_ASSETID];
@@ -35,4 +49,21 @@ const THORCHAIN_ASSETIDS_TWO_COLLISION = [
35
49
  const substring = (0, getUniqueAddressSubstring_1.getUniqueAddressSubstring)(FINAL_ASSET_ASSETID, THORCHAIN_ASSETIDS_TWO_COLLISION);
36
50
  (0, vitest_1.expect)(substring).toBe(BIGGER_SHORTENED_FINAL_ASSET_ADDRESS);
37
51
  });
52
+ (0, vitest_1.it)('should ignore the same address on other chains', () => {
53
+ const substring = (0, getUniqueAddressSubstring_1.getUniqueAddressSubstring)(FINAL_ASSET_ASSETID, [
54
+ ...THORCHAIN_ASSETIDS_ONE_COLLISION,
55
+ SAME_ADDRESS_OTHER_CHAIN_ASSETID,
56
+ ]);
57
+ (0, vitest_1.expect)(substring).toBe(SHORTENED_FINAL_ASSET_ADDRESS);
58
+ });
59
+ (0, vitest_1.it)('should return the full address when the asset is not in the list', () => {
60
+ const substring = (0, getUniqueAddressSubstring_1.getUniqueAddressSubstring)(FINAL_ASSET_ASSETID, [COLLIDING_FINAL_ASSETID]);
61
+ (0, vitest_1.expect)(substring).toBe('0x8a65ac0e23f31979db06ec62af62b432a6df4741');
62
+ });
63
+ (0, vitest_1.it)('should return a hex suffix for an address listed on multiple chains', () => {
64
+ (0, vitest_1.expect)(generatedThorLongtailTokens_json_1.default).toContain(ONE_INCH_ASSETID);
65
+ const substring = (0, getUniqueAddressSubstring_1.getUniqueAddressSubstring)(ONE_INCH_ASSETID, generatedThorLongtailTokens_json_1.default);
66
+ (0, vitest_1.expect)(substring).toMatch(/^[0-9a-f]+$/);
67
+ (0, vitest_1.expect)('0x111111111117dc0aa78b770fa6a738034120c302'.endsWith(substring)).toBe(true);
68
+ });
38
69
  });
@@ -7,9 +7,11 @@ const types_1 = require("../../../types");
7
7
  const utils_1 = require("../../../utils");
8
8
  const helpers_1 = require("../../../utils/helpers");
9
9
  const fetchFromZrx_1 = require("../utils/fetchFromZrx");
10
+ const getZrxNativeCheckDeadline_1 = require("../utils/getZrxNativeCheckDeadline");
10
11
  const getZrxStepData_1 = require("../utils/getZrxStepData");
11
12
  const getZrxTradeContext_1 = require("../utils/getZrxTradeContext");
12
13
  const helpers_2 = require("../utils/helpers");
14
+ const isValidDeadlineSeconds = (deadline) => Number.isSafeInteger(deadline) && deadline > 0 && Number.isSafeInteger(deadline * 1000);
13
15
  const getZrxTradeQuote = async (input, deps) => {
14
16
  const { sellAsset, buyAsset, accountNumber, affiliateBps, sellAmountIncludingProtocolFeesCryptoBaseUnit, } = input;
15
17
  const maybeAddresses = (0, utils_1.assertQuoteAddresses)(input);
@@ -42,6 +44,16 @@ const getZrxTradeQuote = async (input, deps) => {
42
44
  return (0, monads_1.Err)(maybeZrxQuoteResponse.unwrapErr());
43
45
  const { sellAmount, buyAmount, fees, permit2, transaction, route } = maybeZrxQuoteResponse.unwrap();
44
46
  const permit2Eip712 = permit2?.eip712;
47
+ const permit2Deadline = permit2Eip712 ? Number(permit2Eip712.message.deadline) : undefined;
48
+ if (permit2Deadline !== undefined &&
49
+ ((typeof permit2Eip712?.message.deadline !== 'string' &&
50
+ typeof permit2Eip712?.message.deadline !== 'number') ||
51
+ !isValidDeadlineSeconds(permit2Deadline))) {
52
+ return (0, monads_1.Err)((0, utils_1.makeSwapErrorRight)({
53
+ message: 'Invalid Permit2 deadline from 0x response',
54
+ code: types_1.TradeQuoteError.InvalidResponse,
55
+ }));
56
+ }
45
57
  if (!(0, helpers_1.isNativeEvmAsset)(sellAsset.assetId) && !(0, helpers_2.isWrappedNativeSell)(route) && !permit2Eip712) {
46
58
  return (0, monads_1.Err)((0, utils_1.makeSwapErrorRight)({
47
59
  message: 'Missing required Permit2 metadata from 0x response',
@@ -56,6 +68,17 @@ const getZrxTradeQuote = async (input, deps) => {
56
68
  details: { transaction, permit2Eip712 },
57
69
  }));
58
70
  }
71
+ // Permit2 calldata is not decodable until the signature is spliced in, so only native sells are read
72
+ const nativeCheckDeadline = permit2Eip712
73
+ ? undefined
74
+ : (0, getZrxNativeCheckDeadline_1.getZrxNativeCheckDeadline)(transaction.data);
75
+ if (nativeCheckDeadline !== undefined && !isValidDeadlineSeconds(nativeCheckDeadline)) {
76
+ return (0, monads_1.Err)((0, utils_1.makeSwapErrorRight)({
77
+ message: 'Invalid NATIVE_CHECK deadline in 0x calldata',
78
+ code: types_1.TradeQuoteError.InvalidResponse,
79
+ }));
80
+ }
81
+ const deadlineSeconds = permit2Deadline ?? nativeCheckDeadline;
59
82
  const maybeContext = (0, getZrxTradeContext_1.getZrxTradeContext)({
60
83
  input,
61
84
  deps,
@@ -79,7 +102,7 @@ const getZrxTradeQuote = async (input, deps) => {
79
102
  const tradeQuote = {
80
103
  ...tradeCommon,
81
104
  quoteOrRate: 'quote',
82
- deadline: Date.now() + helpers_1.FALLBACK_QUOTE_DEADLINE_MS,
105
+ deadline: deadlineSeconds === undefined ? undefined : deadlineSeconds * 1000,
83
106
  receiveAddress,
84
107
  steps: [
85
108
  {