@shapeshiftoss/swapper 20.3.0 → 20.5.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 (327) hide show
  1. package/dist/cjs/.tsbuildinfo +1 -1
  2. package/dist/cjs/constants.js +21 -0
  3. package/dist/cjs/index.d.ts +3 -0
  4. package/dist/cjs/index.js +3 -0
  5. package/dist/cjs/swappers/AcrossSwapper/utils/getAcrossStepData.js +7 -15
  6. package/dist/cjs/swappers/ArbitrumBridgeSwapper/getTradeQuote/getTradeQuote.js +0 -2
  7. package/dist/cjs/swappers/AvnuSwapper/endpoints.js +17 -12
  8. package/dist/cjs/swappers/AvnuSwapper/swapperApi/getTradeQuote.js +1 -2
  9. package/dist/cjs/swappers/BebopSwapper/utils/fetchFromBebop.d.ts +2 -1
  10. package/dist/cjs/swappers/BebopSwapper/utils/fetchFromBebop.js +21 -15
  11. package/dist/cjs/swappers/BebopSwapper/utils/getBebopSolanaTradeContext.js +1 -0
  12. package/dist/cjs/swappers/BebopSwapper/utils/getBebopStepData.js +17 -22
  13. package/dist/cjs/swappers/BobGatewaySwapper/swapperApi/getTradeQuote.js +0 -2
  14. package/dist/cjs/swappers/ButterSwap/swapperApi/getTradeQuote.js +0 -2
  15. package/dist/cjs/swappers/ButterSwap/swapperApi/getTradeQuote.test.js +1 -0
  16. package/dist/cjs/swappers/ButterSwap/swapperApi/getTradeRate.test.js +1 -0
  17. package/dist/cjs/swappers/ButterSwap/utils/getButterSwapStepData.js +3 -4
  18. package/dist/cjs/swappers/ButterSwap/utils/getButterSwapStepData.test.js +2 -2
  19. package/dist/cjs/swappers/CetusSwapper/endpoints.js +2 -3
  20. package/dist/cjs/swappers/CetusSwapper/swapperApi/getCetusStepData.js +13 -8
  21. package/dist/cjs/swappers/CetusSwapper/swapperApi/getCetusTradeContext.js +1 -2
  22. package/dist/cjs/swappers/CetusSwapper/swapperApi/getTradeQuote.js +0 -2
  23. package/dist/cjs/swappers/CetusSwapper/utils/constants.d.ts +0 -1
  24. package/dist/cjs/swappers/CetusSwapper/utils/constants.js +1 -2
  25. package/dist/cjs/swappers/CetusSwapper/utils/helpers.d.ts +3 -3
  26. package/dist/cjs/swappers/CetusSwapper/utils/helpers.js +6 -17
  27. package/dist/cjs/swappers/ChainflipSwapper/swapperApi/getTradeQuote.js +1 -2
  28. package/dist/cjs/swappers/ChainflipSwapper/types.d.ts +1 -0
  29. package/dist/cjs/swappers/DebridgeSwapper/getTradeQuote/getTradeQuote.js +0 -2
  30. package/dist/cjs/swappers/DebridgeSwapper/utils/getDebridgeStepData.d.ts +0 -1
  31. package/dist/cjs/swappers/DebridgeSwapper/utils/getDebridgeStepData.js +9 -16
  32. package/dist/cjs/swappers/DebridgeSwapper/utils/getDebridgeTradeContext.js +0 -3
  33. package/dist/cjs/swappers/FyndSwapper/FyndSwapper.d.ts +2 -0
  34. package/dist/cjs/swappers/FyndSwapper/FyndSwapper.js +5 -0
  35. package/dist/cjs/swappers/FyndSwapper/endpoints.d.ts +2 -0
  36. package/dist/cjs/swappers/FyndSwapper/endpoints.js +14 -0
  37. package/dist/cjs/swappers/FyndSwapper/getTradeQuote/getTradeQuote.d.ts +4 -0
  38. package/dist/cjs/swappers/FyndSwapper/getTradeQuote/getTradeQuote.js +43 -0
  39. package/dist/cjs/swappers/FyndSwapper/getTradeRate/getTradeRate.d.ts +4 -0
  40. package/dist/cjs/swappers/FyndSwapper/getTradeRate/getTradeRate.js +34 -0
  41. package/dist/cjs/swappers/FyndSwapper/index.d.ts +2 -0
  42. package/dist/cjs/swappers/FyndSwapper/index.js +7 -0
  43. package/dist/cjs/swappers/FyndSwapper/types.d.ts +41 -0
  44. package/dist/cjs/swappers/FyndSwapper/types.js +2 -0
  45. package/dist/cjs/swappers/FyndSwapper/utils/constants.d.ts +33 -0
  46. package/dist/cjs/swappers/FyndSwapper/utils/constants.js +38 -0
  47. package/dist/cjs/swappers/FyndSwapper/utils/fetchFromFynd.d.ts +13 -0
  48. package/dist/cjs/swappers/FyndSwapper/utils/fetchFromFynd.js +42 -0
  49. package/dist/cjs/swappers/FyndSwapper/utils/fyndService.d.ts +5 -0
  50. package/dist/cjs/swappers/FyndSwapper/utils/fyndService.js +9 -0
  51. package/dist/cjs/swappers/FyndSwapper/utils/getFyndStepData.d.ts +25 -0
  52. package/dist/cjs/swappers/FyndSwapper/utils/getFyndStepData.js +46 -0
  53. package/dist/cjs/swappers/FyndSwapper/utils/getFyndTradeContext.d.ts +18 -0
  54. package/dist/cjs/swappers/FyndSwapper/utils/getFyndTradeContext.js +94 -0
  55. package/dist/cjs/swappers/FyndSwapper/utils/helpers.d.ts +24 -0
  56. package/dist/cjs/swappers/FyndSwapper/utils/helpers.js +174 -0
  57. package/dist/cjs/swappers/FyndSwapper/utils/helpers.test.d.ts +1 -0
  58. package/dist/cjs/swappers/FyndSwapper/utils/helpers.test.js +101 -0
  59. package/dist/cjs/swappers/KyberSwapper/KyberSwapper.d.ts +2 -0
  60. package/dist/cjs/swappers/KyberSwapper/KyberSwapper.js +5 -0
  61. package/dist/cjs/swappers/KyberSwapper/endpoints.d.ts +2 -0
  62. package/dist/cjs/swappers/KyberSwapper/endpoints.js +14 -0
  63. package/dist/cjs/swappers/KyberSwapper/index.d.ts +2 -0
  64. package/dist/cjs/swappers/KyberSwapper/index.js +7 -0
  65. package/dist/cjs/swappers/KyberSwapper/swapperApi/getKyberTradeQuote.d.ts +4 -0
  66. package/dist/cjs/swappers/KyberSwapper/swapperApi/getKyberTradeQuote.js +64 -0
  67. package/dist/cjs/swappers/KyberSwapper/swapperApi/getKyberTradeRate.d.ts +4 -0
  68. package/dist/cjs/swappers/KyberSwapper/swapperApi/getKyberTradeRate.js +31 -0
  69. package/dist/cjs/swappers/KyberSwapper/types.d.ts +62 -0
  70. package/dist/cjs/swappers/KyberSwapper/types.js +2 -0
  71. package/dist/cjs/swappers/KyberSwapper/utils/constants.d.ts +21 -0
  72. package/dist/cjs/swappers/KyberSwapper/utils/constants.js +24 -0
  73. package/dist/cjs/swappers/KyberSwapper/utils/fetchFromKyber.d.ts +23 -0
  74. package/dist/cjs/swappers/KyberSwapper/utils/fetchFromKyber.js +38 -0
  75. package/dist/cjs/swappers/KyberSwapper/utils/getKyberStepData.d.ts +27 -0
  76. package/dist/cjs/swappers/KyberSwapper/utils/getKyberStepData.js +47 -0
  77. package/dist/cjs/swappers/KyberSwapper/utils/getKyberStepData.test.d.ts +1 -0
  78. package/dist/cjs/swappers/KyberSwapper/utils/getKyberStepData.test.js +92 -0
  79. package/dist/cjs/swappers/KyberSwapper/utils/getKyberTradeContext.d.ts +20 -0
  80. package/dist/cjs/swappers/KyberSwapper/utils/getKyberTradeContext.js +63 -0
  81. package/dist/cjs/swappers/KyberSwapper/utils/helpers.d.ts +27 -0
  82. package/dist/cjs/swappers/KyberSwapper/utils/helpers.js +172 -0
  83. package/dist/cjs/swappers/KyberSwapper/utils/helpers.test.d.ts +1 -0
  84. package/dist/cjs/swappers/KyberSwapper/utils/helpers.test.js +110 -0
  85. package/dist/cjs/swappers/KyberSwapper/utils/kyberService.d.ts +5 -0
  86. package/dist/cjs/swappers/KyberSwapper/utils/kyberService.js +9 -0
  87. package/dist/cjs/swappers/MayachainSwapper/generated/generatedTradableAssetMap.json +0 -1
  88. package/dist/cjs/swappers/NearIntentsSwapper/NearIntentsSwapper.js +1 -0
  89. package/dist/cjs/swappers/NearIntentsSwapper/endpoints.js +13 -14
  90. package/dist/cjs/swappers/NearIntentsSwapper/swapperApi/getTradeRate.js +1 -1
  91. package/dist/cjs/swappers/NearIntentsSwapper/types.d.ts +4 -4
  92. package/dist/cjs/swappers/NearIntentsSwapper/types.js +2 -0
  93. package/dist/cjs/swappers/NearIntentsSwapper/utils/getNearIntentsStepData.js +28 -0
  94. package/dist/cjs/swappers/NearIntentsSwapper/utils/helpers.js +2 -2
  95. package/dist/cjs/swappers/PortalsSwapper/endpoints.js +4 -1
  96. package/dist/cjs/swappers/PortalsSwapper/getPortalsTradeQuote/getPortalsTradeQuote.js +1 -1
  97. package/dist/cjs/swappers/PortalsSwapper/utils/getPortalsStepData.js +36 -55
  98. package/dist/cjs/swappers/PortalsSwapper/utils/getPortalsStepData.test.js +2 -2
  99. package/dist/cjs/swappers/RelaySwapper/getTradeQuote/getTradeQuote.js +2 -3
  100. package/dist/cjs/swappers/RelaySwapper/utils/getRelayStepData.js +7 -15
  101. package/dist/cjs/swappers/RelaySwapper/utils/getRelayTradeContext.d.ts +1 -0
  102. package/dist/cjs/swappers/RelaySwapper/utils/getRelayTradeContext.js +4 -0
  103. package/dist/cjs/swappers/RelaySwapper/utils/relayStatus.js +3 -3
  104. package/dist/cjs/swappers/RelaySwapper/utils/types.d.ts +9 -4
  105. package/dist/cjs/swappers/SymbiosisSwapper/SymbiosisSwapper.d.ts +2 -0
  106. package/dist/cjs/swappers/SymbiosisSwapper/SymbiosisSwapper.js +8 -0
  107. package/dist/cjs/swappers/SymbiosisSwapper/endpoints.d.ts +2 -0
  108. package/dist/cjs/swappers/SymbiosisSwapper/endpoints.js +66 -0
  109. package/dist/cjs/swappers/SymbiosisSwapper/getTradeQuote/getTradeQuote.d.ts +4 -0
  110. package/dist/cjs/swappers/SymbiosisSwapper/getTradeQuote/getTradeQuote.js +42 -0
  111. package/dist/cjs/swappers/SymbiosisSwapper/getTradeRate/getTradeRate.d.ts +4 -0
  112. package/dist/cjs/swappers/SymbiosisSwapper/getTradeRate/getTradeRate.js +34 -0
  113. package/dist/cjs/swappers/SymbiosisSwapper/index.d.ts +2 -0
  114. package/dist/cjs/swappers/SymbiosisSwapper/index.js +7 -0
  115. package/dist/cjs/swappers/SymbiosisSwapper/utils/constants.d.ts +19 -0
  116. package/dist/cjs/swappers/SymbiosisSwapper/utils/constants.js +64 -0
  117. package/dist/cjs/swappers/SymbiosisSwapper/utils/getSymbiosisStepData.d.ts +26 -0
  118. package/dist/cjs/swappers/SymbiosisSwapper/utils/getSymbiosisStepData.js +106 -0
  119. package/dist/cjs/swappers/SymbiosisSwapper/utils/getSymbiosisStepData.test.d.ts +1 -0
  120. package/dist/cjs/swappers/SymbiosisSwapper/utils/getSymbiosisStepData.test.js +161 -0
  121. package/dist/cjs/swappers/SymbiosisSwapper/utils/getSymbiosisTradeContext.d.ts +17 -0
  122. package/dist/cjs/swappers/SymbiosisSwapper/utils/getSymbiosisTradeContext.js +146 -0
  123. package/dist/cjs/swappers/SymbiosisSwapper/utils/helpers.d.ts +38 -0
  124. package/dist/cjs/swappers/SymbiosisSwapper/utils/helpers.js +172 -0
  125. package/dist/cjs/swappers/SymbiosisSwapper/utils/helpers.test.d.ts +1 -0
  126. package/dist/cjs/swappers/SymbiosisSwapper/utils/helpers.test.js +151 -0
  127. package/dist/cjs/swappers/SymbiosisSwapper/utils/symbiosisService.d.ts +5 -0
  128. package/dist/cjs/swappers/SymbiosisSwapper/utils/symbiosisService.js +18 -0
  129. package/dist/cjs/swappers/SymbiosisSwapper/utils/types.d.ts +83 -0
  130. package/dist/cjs/swappers/SymbiosisSwapper/utils/types.js +11 -0
  131. package/dist/cjs/swappers/ThorchainSwapper/generated/generatedThorLongtailTokens.json +1 -0
  132. package/dist/cjs/swappers/ThorchainSwapper/generated/generatedTradableAssetMap.json +1 -0
  133. package/dist/cjs/swappers/ThorchainSwapper/getTradeQuote/getTradeQuote.test.js +2 -2
  134. package/dist/cjs/swappers/ThorchainSwapper/utils/getLongtailQuote.js +1 -1
  135. package/dist/cjs/swappers/ZrxSwapper/getZrxTradeQuote/getZrxTradeQuote.js +27 -2
  136. package/dist/cjs/swappers/ZrxSwapper/getZrxTradeQuote/getZrxTradeQuote.test.d.ts +1 -0
  137. package/dist/cjs/swappers/ZrxSwapper/getZrxTradeQuote/getZrxTradeQuote.test.js +110 -0
  138. package/dist/cjs/swappers/ZrxSwapper/types.d.ts +2 -1
  139. package/dist/cjs/swappers/ZrxSwapper/utils/getZrxNativeCheckDeadline.d.ts +1 -0
  140. package/dist/cjs/swappers/ZrxSwapper/utils/getZrxNativeCheckDeadline.js +26 -0
  141. package/dist/cjs/swappers/ZrxSwapper/utils/getZrxStepData.d.ts +3 -1
  142. package/dist/cjs/swappers/ZrxSwapper/utils/getZrxStepData.js +29 -10
  143. package/dist/cjs/types.d.ts +41 -12
  144. package/dist/cjs/types.js +3 -0
  145. package/dist/cjs/utils/aptos/constants.d.ts +2 -0
  146. package/dist/cjs/utils/aptos/constants.js +7 -0
  147. package/dist/cjs/utils/aptos/getAptosTransactionFees.d.ts +2 -0
  148. package/dist/cjs/utils/aptos/getAptosTransactionFees.js +13 -0
  149. package/dist/cjs/utils/aptos/getUnsignedAptosTransaction.d.ts +2 -0
  150. package/dist/cjs/utils/aptos/getUnsignedAptosTransaction.js +16 -0
  151. package/dist/cjs/utils/aptos/index.d.ts +3 -0
  152. package/dist/cjs/utils/aptos/index.js +19 -0
  153. package/dist/cjs/utils/evm/getEvmNetworkFeeCryptoBaseUnit.d.ts +19 -6
  154. package/dist/cjs/utils/evm/getEvmNetworkFeeCryptoBaseUnit.js +45 -35
  155. package/dist/cjs/utils/evm/getEvmNetworkFeeCryptoBaseUnit.test.d.ts +1 -0
  156. package/dist/cjs/utils/evm/getEvmNetworkFeeCryptoBaseUnit.test.js +103 -0
  157. package/dist/cjs/utils/evm/stateOverride.d.ts +3 -0
  158. package/dist/cjs/utils/evm/stateOverride.js +10 -4
  159. package/dist/cjs/utils/helpers.d.ts +1 -2
  160. package/dist/cjs/utils/helpers.js +9 -32
  161. package/dist/cjs/utils/helpers.test.js +7 -2
  162. package/dist/cjs/utils/index.d.ts +3 -2
  163. package/dist/cjs/utils/index.js +11 -27
  164. package/dist/esm/.tsbuildinfo +1 -1
  165. package/dist/esm/constants.js +21 -0
  166. package/dist/esm/index.d.ts +3 -0
  167. package/dist/esm/index.js +3 -0
  168. package/dist/esm/swappers/AcrossSwapper/utils/getAcrossStepData.js +8 -16
  169. package/dist/esm/swappers/ArbitrumBridgeSwapper/getTradeQuote/getTradeQuote.js +0 -2
  170. package/dist/esm/swappers/AvnuSwapper/endpoints.js +18 -13
  171. package/dist/esm/swappers/AvnuSwapper/swapperApi/getTradeQuote.js +1 -2
  172. package/dist/esm/swappers/BebopSwapper/utils/fetchFromBebop.d.ts +2 -1
  173. package/dist/esm/swappers/BebopSwapper/utils/fetchFromBebop.js +21 -15
  174. package/dist/esm/swappers/BebopSwapper/utils/getBebopSolanaTradeContext.js +1 -0
  175. package/dist/esm/swappers/BebopSwapper/utils/getBebopStepData.js +18 -23
  176. package/dist/esm/swappers/BobGatewaySwapper/swapperApi/getTradeQuote.js +0 -2
  177. package/dist/esm/swappers/ButterSwap/swapperApi/getTradeQuote.js +0 -2
  178. package/dist/esm/swappers/ButterSwap/swapperApi/getTradeQuote.test.js +1 -0
  179. package/dist/esm/swappers/ButterSwap/swapperApi/getTradeRate.test.js +1 -0
  180. package/dist/esm/swappers/ButterSwap/utils/getButterSwapStepData.js +4 -5
  181. package/dist/esm/swappers/ButterSwap/utils/getButterSwapStepData.test.js +2 -2
  182. package/dist/esm/swappers/CetusSwapper/endpoints.js +3 -4
  183. package/dist/esm/swappers/CetusSwapper/swapperApi/getCetusStepData.js +13 -8
  184. package/dist/esm/swappers/CetusSwapper/swapperApi/getCetusTradeContext.js +2 -3
  185. package/dist/esm/swappers/CetusSwapper/swapperApi/getTradeQuote.js +0 -2
  186. package/dist/esm/swappers/CetusSwapper/utils/constants.d.ts +0 -1
  187. package/dist/esm/swappers/CetusSwapper/utils/constants.js +0 -1
  188. package/dist/esm/swappers/CetusSwapper/utils/helpers.d.ts +3 -3
  189. package/dist/esm/swappers/CetusSwapper/utils/helpers.js +4 -15
  190. package/dist/esm/swappers/ChainflipSwapper/swapperApi/getTradeQuote.js +1 -2
  191. package/dist/esm/swappers/ChainflipSwapper/types.d.ts +1 -0
  192. package/dist/esm/swappers/DebridgeSwapper/getTradeQuote/getTradeQuote.js +0 -2
  193. package/dist/esm/swappers/DebridgeSwapper/utils/getDebridgeStepData.d.ts +0 -1
  194. package/dist/esm/swappers/DebridgeSwapper/utils/getDebridgeStepData.js +9 -16
  195. package/dist/esm/swappers/DebridgeSwapper/utils/getDebridgeTradeContext.js +0 -3
  196. package/dist/esm/swappers/FyndSwapper/FyndSwapper.d.ts +2 -0
  197. package/dist/esm/swappers/FyndSwapper/FyndSwapper.js +2 -0
  198. package/dist/esm/swappers/FyndSwapper/endpoints.d.ts +2 -0
  199. package/dist/esm/swappers/FyndSwapper/endpoints.js +11 -0
  200. package/dist/esm/swappers/FyndSwapper/getTradeQuote/getTradeQuote.d.ts +4 -0
  201. package/dist/esm/swappers/FyndSwapper/getTradeQuote/getTradeQuote.js +39 -0
  202. package/dist/esm/swappers/FyndSwapper/getTradeRate/getTradeRate.d.ts +4 -0
  203. package/dist/esm/swappers/FyndSwapper/getTradeRate/getTradeRate.js +30 -0
  204. package/dist/esm/swappers/FyndSwapper/index.d.ts +2 -0
  205. package/dist/esm/swappers/FyndSwapper/index.js +2 -0
  206. package/dist/esm/swappers/FyndSwapper/types.d.ts +41 -0
  207. package/dist/esm/swappers/FyndSwapper/types.js +1 -0
  208. package/dist/esm/swappers/FyndSwapper/utils/constants.d.ts +33 -0
  209. package/dist/esm/swappers/FyndSwapper/utils/constants.js +35 -0
  210. package/dist/esm/swappers/FyndSwapper/utils/fetchFromFynd.d.ts +13 -0
  211. package/dist/esm/swappers/FyndSwapper/utils/fetchFromFynd.js +38 -0
  212. package/dist/esm/swappers/FyndSwapper/utils/fyndService.d.ts +5 -0
  213. package/dist/esm/swappers/FyndSwapper/utils/fyndService.js +3 -0
  214. package/dist/esm/swappers/FyndSwapper/utils/getFyndStepData.d.ts +25 -0
  215. package/dist/esm/swappers/FyndSwapper/utils/getFyndStepData.js +42 -0
  216. package/dist/esm/swappers/FyndSwapper/utils/getFyndTradeContext.d.ts +18 -0
  217. package/dist/esm/swappers/FyndSwapper/utils/getFyndTradeContext.js +90 -0
  218. package/dist/esm/swappers/FyndSwapper/utils/helpers.d.ts +24 -0
  219. package/dist/esm/swappers/FyndSwapper/utils/helpers.js +162 -0
  220. package/dist/esm/swappers/FyndSwapper/utils/helpers.test.d.ts +1 -0
  221. package/dist/esm/swappers/FyndSwapper/utils/helpers.test.js +99 -0
  222. package/dist/esm/swappers/KyberSwapper/KyberSwapper.d.ts +2 -0
  223. package/dist/esm/swappers/KyberSwapper/KyberSwapper.js +2 -0
  224. package/dist/esm/swappers/KyberSwapper/endpoints.d.ts +2 -0
  225. package/dist/esm/swappers/KyberSwapper/endpoints.js +11 -0
  226. package/dist/esm/swappers/KyberSwapper/index.d.ts +2 -0
  227. package/dist/esm/swappers/KyberSwapper/index.js +2 -0
  228. package/dist/esm/swappers/KyberSwapper/swapperApi/getKyberTradeQuote.d.ts +4 -0
  229. package/dist/esm/swappers/KyberSwapper/swapperApi/getKyberTradeQuote.js +60 -0
  230. package/dist/esm/swappers/KyberSwapper/swapperApi/getKyberTradeRate.d.ts +4 -0
  231. package/dist/esm/swappers/KyberSwapper/swapperApi/getKyberTradeRate.js +27 -0
  232. package/dist/esm/swappers/KyberSwapper/types.d.ts +62 -0
  233. package/dist/esm/swappers/KyberSwapper/types.js +1 -0
  234. package/dist/esm/swappers/KyberSwapper/utils/constants.d.ts +21 -0
  235. package/dist/esm/swappers/KyberSwapper/utils/constants.js +21 -0
  236. package/dist/esm/swappers/KyberSwapper/utils/fetchFromKyber.d.ts +23 -0
  237. package/dist/esm/swappers/KyberSwapper/utils/fetchFromKyber.js +33 -0
  238. package/dist/esm/swappers/KyberSwapper/utils/getKyberStepData.d.ts +27 -0
  239. package/dist/esm/swappers/KyberSwapper/utils/getKyberStepData.js +43 -0
  240. package/dist/esm/swappers/KyberSwapper/utils/getKyberStepData.test.d.ts +1 -0
  241. package/dist/esm/swappers/KyberSwapper/utils/getKyberStepData.test.js +90 -0
  242. package/dist/esm/swappers/KyberSwapper/utils/getKyberTradeContext.d.ts +20 -0
  243. package/dist/esm/swappers/KyberSwapper/utils/getKyberTradeContext.js +59 -0
  244. package/dist/esm/swappers/KyberSwapper/utils/helpers.d.ts +27 -0
  245. package/dist/esm/swappers/KyberSwapper/utils/helpers.js +158 -0
  246. package/dist/esm/swappers/KyberSwapper/utils/helpers.test.d.ts +1 -0
  247. package/dist/esm/swappers/KyberSwapper/utils/helpers.test.js +108 -0
  248. package/dist/esm/swappers/KyberSwapper/utils/kyberService.d.ts +5 -0
  249. package/dist/esm/swappers/KyberSwapper/utils/kyberService.js +3 -0
  250. package/dist/esm/swappers/MayachainSwapper/generated/generatedTradableAssetMap.json +0 -1
  251. package/dist/esm/swappers/NearIntentsSwapper/NearIntentsSwapper.js +2 -1
  252. package/dist/esm/swappers/NearIntentsSwapper/endpoints.js +13 -14
  253. package/dist/esm/swappers/NearIntentsSwapper/swapperApi/getTradeRate.js +1 -1
  254. package/dist/esm/swappers/NearIntentsSwapper/types.d.ts +4 -4
  255. package/dist/esm/swappers/NearIntentsSwapper/types.js +2 -0
  256. package/dist/esm/swappers/NearIntentsSwapper/utils/getNearIntentsStepData.js +29 -1
  257. package/dist/esm/swappers/NearIntentsSwapper/utils/helpers.js +2 -2
  258. package/dist/esm/swappers/PortalsSwapper/endpoints.js +4 -1
  259. package/dist/esm/swappers/PortalsSwapper/getPortalsTradeQuote/getPortalsTradeQuote.js +2 -2
  260. package/dist/esm/swappers/PortalsSwapper/utils/getPortalsStepData.js +34 -53
  261. package/dist/esm/swappers/PortalsSwapper/utils/getPortalsStepData.test.js +2 -2
  262. package/dist/esm/swappers/RelaySwapper/getTradeQuote/getTradeQuote.js +2 -3
  263. package/dist/esm/swappers/RelaySwapper/utils/getRelayStepData.js +9 -17
  264. package/dist/esm/swappers/RelaySwapper/utils/getRelayTradeContext.d.ts +1 -0
  265. package/dist/esm/swappers/RelaySwapper/utils/getRelayTradeContext.js +5 -1
  266. package/dist/esm/swappers/RelaySwapper/utils/relayStatus.js +3 -3
  267. package/dist/esm/swappers/RelaySwapper/utils/types.d.ts +9 -4
  268. package/dist/esm/swappers/SymbiosisSwapper/SymbiosisSwapper.d.ts +2 -0
  269. package/dist/esm/swappers/SymbiosisSwapper/SymbiosisSwapper.js +5 -0
  270. package/dist/esm/swappers/SymbiosisSwapper/endpoints.d.ts +2 -0
  271. package/dist/esm/swappers/SymbiosisSwapper/endpoints.js +63 -0
  272. package/dist/esm/swappers/SymbiosisSwapper/getTradeQuote/getTradeQuote.d.ts +4 -0
  273. package/dist/esm/swappers/SymbiosisSwapper/getTradeQuote/getTradeQuote.js +38 -0
  274. package/dist/esm/swappers/SymbiosisSwapper/getTradeRate/getTradeRate.d.ts +4 -0
  275. package/dist/esm/swappers/SymbiosisSwapper/getTradeRate/getTradeRate.js +30 -0
  276. package/dist/esm/swappers/SymbiosisSwapper/index.d.ts +2 -0
  277. package/dist/esm/swappers/SymbiosisSwapper/index.js +2 -0
  278. package/dist/esm/swappers/SymbiosisSwapper/utils/constants.d.ts +19 -0
  279. package/dist/esm/swappers/SymbiosisSwapper/utils/constants.js +61 -0
  280. package/dist/esm/swappers/SymbiosisSwapper/utils/getSymbiosisStepData.d.ts +26 -0
  281. package/dist/esm/swappers/SymbiosisSwapper/utils/getSymbiosisStepData.js +102 -0
  282. package/dist/esm/swappers/SymbiosisSwapper/utils/getSymbiosisStepData.test.d.ts +1 -0
  283. package/dist/esm/swappers/SymbiosisSwapper/utils/getSymbiosisStepData.test.js +159 -0
  284. package/dist/esm/swappers/SymbiosisSwapper/utils/getSymbiosisTradeContext.d.ts +17 -0
  285. package/dist/esm/swappers/SymbiosisSwapper/utils/getSymbiosisTradeContext.js +139 -0
  286. package/dist/esm/swappers/SymbiosisSwapper/utils/helpers.d.ts +38 -0
  287. package/dist/esm/swappers/SymbiosisSwapper/utils/helpers.js +156 -0
  288. package/dist/esm/swappers/SymbiosisSwapper/utils/helpers.test.d.ts +1 -0
  289. package/dist/esm/swappers/SymbiosisSwapper/utils/helpers.test.js +149 -0
  290. package/dist/esm/swappers/SymbiosisSwapper/utils/symbiosisService.d.ts +5 -0
  291. package/dist/esm/swappers/SymbiosisSwapper/utils/symbiosisService.js +12 -0
  292. package/dist/esm/swappers/SymbiosisSwapper/utils/types.d.ts +83 -0
  293. package/dist/esm/swappers/SymbiosisSwapper/utils/types.js +8 -0
  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/getTradeQuote/getTradeQuote.test.js +2 -2
  297. package/dist/esm/swappers/ThorchainSwapper/utils/getLongtailQuote.js +1 -1
  298. package/dist/esm/swappers/ZrxSwapper/getZrxTradeQuote/getZrxTradeQuote.js +28 -3
  299. package/dist/esm/swappers/ZrxSwapper/getZrxTradeQuote/getZrxTradeQuote.test.d.ts +1 -0
  300. package/dist/esm/swappers/ZrxSwapper/getZrxTradeQuote/getZrxTradeQuote.test.js +108 -0
  301. package/dist/esm/swappers/ZrxSwapper/types.d.ts +2 -1
  302. package/dist/esm/swappers/ZrxSwapper/utils/getZrxNativeCheckDeadline.d.ts +1 -0
  303. package/dist/esm/swappers/ZrxSwapper/utils/getZrxNativeCheckDeadline.js +22 -0
  304. package/dist/esm/swappers/ZrxSwapper/utils/getZrxStepData.d.ts +3 -1
  305. package/dist/esm/swappers/ZrxSwapper/utils/getZrxStepData.js +31 -12
  306. package/dist/esm/types.d.ts +41 -12
  307. package/dist/esm/types.js +3 -0
  308. package/dist/esm/utils/aptos/constants.d.ts +2 -0
  309. package/dist/esm/utils/aptos/constants.js +4 -0
  310. package/dist/esm/utils/aptos/getAptosTransactionFees.d.ts +2 -0
  311. package/dist/esm/utils/aptos/getAptosTransactionFees.js +9 -0
  312. package/dist/esm/utils/aptos/getUnsignedAptosTransaction.d.ts +2 -0
  313. package/dist/esm/utils/aptos/getUnsignedAptosTransaction.js +12 -0
  314. package/dist/esm/utils/aptos/index.d.ts +3 -0
  315. package/dist/esm/utils/aptos/index.js +3 -0
  316. package/dist/esm/utils/evm/getEvmNetworkFeeCryptoBaseUnit.d.ts +19 -6
  317. package/dist/esm/utils/evm/getEvmNetworkFeeCryptoBaseUnit.js +42 -35
  318. package/dist/esm/utils/evm/getEvmNetworkFeeCryptoBaseUnit.test.d.ts +1 -0
  319. package/dist/esm/utils/evm/getEvmNetworkFeeCryptoBaseUnit.test.js +101 -0
  320. package/dist/esm/utils/evm/stateOverride.d.ts +3 -0
  321. package/dist/esm/utils/evm/stateOverride.js +8 -3
  322. package/dist/esm/utils/helpers.d.ts +1 -2
  323. package/dist/esm/utils/helpers.js +10 -33
  324. package/dist/esm/utils/helpers.test.js +7 -2
  325. package/dist/esm/utils/index.d.ts +3 -2
  326. package/dist/esm/utils/index.js +9 -26
  327. package/package.json +10 -11
@@ -3,6 +3,5 @@ export const SUPPORTED_CETUS_CHAIN_IDS = [suiChainId];
3
3
  export const isSupportedChainId = (chainId) => {
4
4
  return SUPPORTED_CETUS_CHAIN_IDS.includes(chainId);
5
5
  };
6
- export const PYTH_DEPENDENT_PROVIDERS = ['HAEDALPMM', 'HAEDALHMMV2', 'METASTABLE'];
7
6
  // Placeholder sender for walletless rate fee estimation - dry-run needs a sender, real coins aren't required
8
7
  export const CETUS_FEE_ESTIMATE_DUMMY_ADDRESS = '0x0000000000000000000000000000000000000000000000000000000000000000';
@@ -1,11 +1,11 @@
1
1
  import type { RouterDataV3 } from '@cetusprotocol/aggregator-sdk';
2
2
  import { AggregatorClient } from '@cetusprotocol/aggregator-sdk';
3
- import { SuiClient } from '@mysten/sui/client';
3
+ import { SuiGrpcClient } from '@mysten/sui/grpc';
4
4
  import type { Asset } from '@shapeshiftoss/types';
5
5
  import type { Result } from '@sniptt/monads';
6
6
  import type { SwapErrorRight } from '../../../types.js';
7
- export declare const getAggregatorClient: (rpcUrl: string) => AggregatorClient;
8
- export declare const getSuiClient: (rpcUrl: string) => SuiClient;
7
+ export declare const getSuiClient: (rpcUrl: string) => SuiGrpcClient;
8
+ export declare const getAggregatorClient: (rpcUrl: string, signer?: string) => AggregatorClient;
9
9
  export declare const assertValidTrade: ({ sellAsset, buyAsset, }: {
10
10
  sellAsset: Asset;
11
11
  buyAsset: Asset;
@@ -1,32 +1,21 @@
1
1
  import { AggregatorClient, Env } from '@cetusprotocol/aggregator-sdk';
2
- import { SuiClient } from '@mysten/sui/client';
2
+ import { SuiGrpcClient } from '@mysten/sui/grpc';
3
3
  import { fromAssetId } from '@shapeshiftoss/caip';
4
4
  import { Err, Ok } from '@sniptt/monads';
5
5
  import { TradeQuoteError } from '../../../types.js';
6
6
  import { makeSwapErrorRight } from '../../../utils/index.js';
7
7
  import { isSupportedChainId } from './constants.js';
8
8
  let suiClientInstance;
9
- let aggregatorClientInstance;
10
9
  let currentRpcUrl;
11
- export const getAggregatorClient = (rpcUrl) => {
12
- if (!aggregatorClientInstance || !suiClientInstance || currentRpcUrl !== rpcUrl) {
13
- suiClientInstance = new SuiClient({ url: rpcUrl });
14
- aggregatorClientInstance = new AggregatorClient({
15
- client: suiClientInstance,
16
- env: Env.Mainnet,
17
- signer: '0x0',
18
- });
19
- currentRpcUrl = rpcUrl;
20
- }
21
- return aggregatorClientInstance;
22
- };
23
10
  export const getSuiClient = (rpcUrl) => {
24
11
  if (!suiClientInstance || currentRpcUrl !== rpcUrl) {
25
- suiClientInstance = new SuiClient({ url: rpcUrl });
12
+ suiClientInstance = new SuiGrpcClient({ network: 'mainnet', baseUrl: rpcUrl });
26
13
  currentRpcUrl = rpcUrl;
27
14
  }
28
15
  return suiClientInstance;
29
16
  };
17
+ // Cetus merges the swap output into an existing coin owned by signer, so it must be the tx sender
18
+ export const getAggregatorClient = (rpcUrl, signer) => new AggregatorClient({ client: getSuiClient(rpcUrl), env: Env.Mainnet, signer });
30
19
  export const assertValidTrade = ({ sellAsset, buyAsset, }) => {
31
20
  if (!isSupportedChainId(sellAsset.chainId)) {
32
21
  return Err(makeSwapErrorRight({
@@ -73,8 +73,7 @@ export const getTradeQuote = async (input, deps) => {
73
73
  {
74
74
  ...stepCommon,
75
75
  accountNumber,
76
- chainflipSpecific: { depositAddress },
77
- swapperMetadata: { name: 'chainflip', swapId },
76
+ swapperMetadata: { name: 'chainflip', swapId, depositAddress },
78
77
  transactionData,
79
78
  feeData: { networkFeeCryptoBaseUnit, protocolFees },
80
79
  },
@@ -6,6 +6,7 @@ export type ChainflipTradeRateInput = GetEvmTradeRateInput | GetUtxoTradeRateInp
6
6
  export type ChainflipMetadata = {
7
7
  name: 'chainflip';
8
8
  swapId: number | string;
9
+ depositAddress: string;
9
10
  };
10
11
  export type ChainFlipStatus = {
11
12
  status: {
@@ -1,6 +1,5 @@
1
1
  import { Err, Ok } from '@sniptt/monads';
2
2
  import { assertQuoteAddresses } from '../../../utils/index.js';
3
- import { FALLBACK_QUOTE_DEADLINE_MS } from '../../../utils/helpers.js';
4
3
  import { getDebridgeStepData } from '../utils/getDebridgeStepData.js';
5
4
  import { getDebridgeTradeContext } from '../utils/getDebridgeTradeContext.js';
6
5
  export const getTradeQuote = async (input, deps) => {
@@ -24,7 +23,6 @@ export const getTradeQuote = async (input, deps) => {
24
23
  const tradeQuote = {
25
24
  ...tradeCommon,
26
25
  quoteOrRate: 'quote',
27
- deadline: Date.now() + FALLBACK_QUOTE_DEADLINE_MS,
28
26
  receiveAddress,
29
27
  steps: [
30
28
  {
@@ -4,7 +4,6 @@ import type { DebridgeTx } from './types.js';
4
4
  type BaseArgs = {
5
5
  tx: DebridgeTx;
6
6
  sellAmountCryptoBaseUnit: string;
7
- gasLimit: string | undefined;
8
7
  spenderAddress: string;
9
8
  fallbackNetworkFeeCryptoBaseUnit: string | undefined;
10
9
  };
@@ -3,7 +3,7 @@ import { Err, Ok } from '@sniptt/monads';
3
3
  import { makeNetworkFeeEstimationFailedErr } from '../../../utils/index.js';
4
4
  import { getEvmNetworkFeeCryptoBaseUnit } from '../../../utils/evm/index.js';
5
5
  export async function getDebridgeStepData(args) {
6
- const { tx, sellAmountCryptoBaseUnit, gasLimit, spenderAddress, fallbackNetworkFeeCryptoBaseUnit, sellAsset, from, type, input, deps, } = args;
6
+ const { tx, sellAmountCryptoBaseUnit, spenderAddress, fallbackNetworkFeeCryptoBaseUnit, sellAsset, from, type, input, deps, } = args;
7
7
  const adapter = deps.assertGetEvmChainAdapter(sellAsset.chainId);
8
8
  const supportsEIP1559 = 'supportsEIP1559' in input ? input.supportsEIP1559 : false;
9
9
  const transactionData = {
@@ -12,7 +12,6 @@ export async function getDebridgeStepData(args) {
12
12
  to: tx.to,
13
13
  data: tx.data,
14
14
  value: tx.value,
15
- gasLimit,
16
15
  };
17
16
  const stateOverride = {
18
17
  sellAsset,
@@ -20,20 +19,14 @@ export async function getDebridgeStepData(args) {
20
19
  spenderAddress,
21
20
  };
22
21
  if (type === 'rate') {
23
- const networkFeeCryptoBaseUnit = await (async () => {
24
- try {
25
- return await getEvmNetworkFeeCryptoBaseUnit({
26
- adapter,
27
- transactionData,
28
- from,
29
- supportsEIP1559,
30
- stateOverride,
31
- });
32
- }
33
- catch {
34
- return fallbackNetworkFeeCryptoBaseUnit;
35
- }
36
- })();
22
+ // deBridge returns a flat gas limit far above actual usage, so rates simulate instead
23
+ const networkFeeCryptoBaseUnit = await getEvmNetworkFeeCryptoBaseUnit({
24
+ adapter,
25
+ transactionData,
26
+ from,
27
+ supportsEIP1559,
28
+ stateOverride,
29
+ }).catch(() => fallbackNetworkFeeCryptoBaseUnit);
37
30
  const stepData = { networkFeeCryptoBaseUnit };
38
31
  return Ok(stepData);
39
32
  }
@@ -82,7 +82,6 @@ export const getDebridgeTradeContext = async ({ input, deps, senderAddress, reci
82
82
  stepDataArgs: {
83
83
  tx: quote.tx,
84
84
  sellAmountCryptoBaseUnit: sellAmountIncludingProtocolFeesCryptoBaseUnit,
85
- gasLimit: quote.gasLimit,
86
85
  fallbackNetworkFeeCryptoBaseUnit: quote.fallbackNetworkFeeCryptoBaseUnit,
87
86
  sellAsset,
88
87
  spenderAddress: allowanceContract,
@@ -135,7 +134,6 @@ const fetchCrossChainQuote = async ({ input, deps, sellDebridgeChainId, buyDebri
135
134
  isSameChainSwap: false,
136
135
  slippageTolerancePercentageDecimal: input.slippageTolerancePercentageDecimal,
137
136
  tx: quote.tx,
138
- gasLimit: quote.estimatedTransactionFee?.details.gasLimit,
139
137
  fallbackNetworkFeeCryptoBaseUnit: quote.estimatedTransactionFee?.total,
140
138
  });
141
139
  };
@@ -191,7 +189,6 @@ const fetchSameChainQuote = async ({ input, deps, sellDebridgeChainId, senderAdd
191
189
  slippageTolerancePercentageDecimal: input.slippageTolerancePercentageDecimal ??
192
190
  (quote.slippage ? bnOrZero(quote.slippage).div(100).toString() : undefined),
193
191
  tx: quote.tx,
194
- gasLimit: quote.estimatedTransactionFee?.details.gasLimit,
195
192
  fallbackNetworkFeeCryptoBaseUnit: quote.estimatedTransactionFee?.total,
196
193
  });
197
194
  };
@@ -0,0 +1,2 @@
1
+ import type { Swapper } from '../../types.js';
2
+ export declare const fyndSwapper: Swapper;
@@ -0,0 +1,2 @@
1
+ import { executeEvmTransaction } from '../../utils/index.js';
2
+ export const fyndSwapper = { executeEvmTransaction };
@@ -0,0 +1,2 @@
1
+ import type { SwapperApi } from '../../types.js';
2
+ export declare const fyndApi: SwapperApi;
@@ -0,0 +1,11 @@
1
+ import { checkEvmSwapStatus } from '../../utils/index.js';
2
+ import { getEvmTransactionFees, getUnsignedEvmTransaction } from '../../utils/evm/index.js';
3
+ import { getTradeQuote } from './getTradeQuote/getTradeQuote.js';
4
+ import { getTradeRate } from './getTradeRate/getTradeRate.js';
5
+ export const fyndApi = {
6
+ getTradeQuote: (input, deps) => getTradeQuote(input, deps),
7
+ getTradeRate: (input, deps) => getTradeRate(input, deps),
8
+ getUnsignedEvmTransaction,
9
+ getEvmTransactionFees,
10
+ checkTradeStatus: checkEvmSwapStatus,
11
+ };
@@ -0,0 +1,4 @@
1
+ import type { Result } from '@sniptt/monads';
2
+ import type { SwapErrorRight, SwapperDeps, TradeQuote } from '../../../types.js';
3
+ import type { FyndTradeQuoteInput } from '../types.js';
4
+ export declare const getTradeQuote: (input: FyndTradeQuoteInput, deps: SwapperDeps) => Promise<Result<TradeQuote[], SwapErrorRight>>;
@@ -0,0 +1,39 @@
1
+ import { Err, Ok } from '@sniptt/monads';
2
+ import { assertQuoteAddresses } from '../../../utils/index.js';
3
+ import { getFyndStepData } from '../utils/getFyndStepData.js';
4
+ import { getFyndTradeContext } from '../utils/getFyndTradeContext.js';
5
+ export const getTradeQuote = async (input, deps) => {
6
+ const { accountNumber } = input;
7
+ const maybeAddresses = assertQuoteAddresses(input);
8
+ if (maybeAddresses.isErr())
9
+ return Err(maybeAddresses.unwrapErr());
10
+ const { sendAddress, receiveAddress } = maybeAddresses.unwrap();
11
+ const maybeContext = await getFyndTradeContext({
12
+ input,
13
+ deps,
14
+ from: sendAddress,
15
+ to: receiveAddress,
16
+ });
17
+ if (maybeContext.isErr())
18
+ return Err(maybeContext.unwrapErr());
19
+ const { tradeCommon, stepCommon, protocolFees, deadline, stepDataArgs } = maybeContext.unwrap();
20
+ const maybeStepData = await getFyndStepData({ ...stepDataArgs, type: 'quote', input });
21
+ if (maybeStepData.isErr())
22
+ return Err(maybeStepData.unwrapErr());
23
+ const { transactionData, networkFeeCryptoBaseUnit } = maybeStepData.unwrap();
24
+ const tradeQuote = {
25
+ ...tradeCommon,
26
+ quoteOrRate: 'quote',
27
+ receiveAddress,
28
+ deadline,
29
+ steps: [
30
+ {
31
+ ...stepCommon,
32
+ accountNumber,
33
+ transactionData,
34
+ feeData: { networkFeeCryptoBaseUnit, protocolFees },
35
+ },
36
+ ],
37
+ };
38
+ return Ok([tradeQuote]);
39
+ };
@@ -0,0 +1,4 @@
1
+ import type { Result } from '@sniptt/monads';
2
+ import type { SwapErrorRight, SwapperDeps, TradeRate } from '../../../types.js';
3
+ import type { FyndTradeRateInput } from '../types.js';
4
+ export declare const getTradeRate: (input: FyndTradeRateInput, deps: SwapperDeps) => Promise<Result<TradeRate[], SwapErrorRight>>;
@@ -0,0 +1,30 @@
1
+ import { Err, Ok } from '@sniptt/monads';
2
+ import { EVM_PLACEHOLDER_ADDRESS } from '../../../utils/evm/constants.js';
3
+ import { getFyndStepData } from '../utils/getFyndStepData.js';
4
+ import { getFyndTradeContext } from '../utils/getFyndTradeContext.js';
5
+ export const getTradeRate = async (input, deps) => {
6
+ const { accountNumber, sendAddress, receiveAddress } = input;
7
+ const from = sendAddress ?? EVM_PLACEHOLDER_ADDRESS;
8
+ const to = receiveAddress ?? from;
9
+ const maybeContext = await getFyndTradeContext({ input, deps, from, to });
10
+ if (maybeContext.isErr())
11
+ return Err(maybeContext.unwrapErr());
12
+ const { tradeCommon, stepCommon, protocolFees, stepDataArgs } = maybeContext.unwrap();
13
+ const maybeStepData = await getFyndStepData({ ...stepDataArgs, type: 'rate', input });
14
+ if (maybeStepData.isErr())
15
+ return Err(maybeStepData.unwrapErr());
16
+ const { networkFeeCryptoBaseUnit } = maybeStepData.unwrap();
17
+ const tradeRate = {
18
+ ...tradeCommon,
19
+ quoteOrRate: 'rate',
20
+ receiveAddress,
21
+ steps: [
22
+ {
23
+ ...stepCommon,
24
+ accountNumber,
25
+ feeData: { networkFeeCryptoBaseUnit, protocolFees },
26
+ },
27
+ ],
28
+ };
29
+ return Ok([tradeRate]);
30
+ };
@@ -0,0 +1,2 @@
1
+ export { fyndApi } from './endpoints.js';
2
+ export { fyndSwapper } from './FyndSwapper.js';
@@ -0,0 +1,2 @@
1
+ export { fyndApi } from './endpoints.js';
2
+ export { fyndSwapper } from './FyndSwapper.js';
@@ -0,0 +1,41 @@
1
+ import type { Address, Hex } from 'viem';
2
+ import type { GetEvmTradeQuoteInput, GetEvmTradeRateInput } from '../../types.js';
3
+ export type FyndTradeQuoteInput = GetEvmTradeQuoteInput;
4
+ export type FyndTradeRateInput = GetEvmTradeRateInput;
5
+ export type FyndTransaction = {
6
+ to: Address;
7
+ value: string;
8
+ data: Hex;
9
+ client_fee_signature_offset?: number | null;
10
+ };
11
+ export type FyndFeeBreakdown = {
12
+ router_fee: string;
13
+ client_fee: string;
14
+ max_slippage: string;
15
+ min_amount_received: string;
16
+ };
17
+ export type FyndErrorResponse = {
18
+ error: string;
19
+ code: string;
20
+ };
21
+ export type FyndRouteSwap = {
22
+ protocol: string;
23
+ };
24
+ export type FyndEncodedQuote = {
25
+ status: 'success';
26
+ amount_in: string;
27
+ amount_out: string;
28
+ gas_estimate: string;
29
+ route?: {
30
+ swaps: FyndRouteSwap[];
31
+ } | null;
32
+ transaction: FyndTransaction;
33
+ fee_breakdown: FyndFeeBreakdown;
34
+ client_fee_deadline?: number | null;
35
+ };
36
+ export type FyndFailedOrder = {
37
+ status: 'no_route_found' | 'insufficient_liquidity' | 'timeout' | 'not_ready' | 'price_check_failed' | 'encoding_failed';
38
+ };
39
+ export type FyndQuoteResponse = {
40
+ orders: (FyndEncodedQuote | FyndFailedOrder)[];
41
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,33 @@
1
+ export declare const FYND_CHAINS: {
2
+ readonly "eip155:1": {
3
+ readonly name: "ethereum";
4
+ readonly routerAddress: "0x1644d2477f809cc2c71bccfd6dc9497e3f83210d";
5
+ };
6
+ readonly "eip155:8453": {
7
+ readonly name: "base";
8
+ readonly routerAddress: "0xaba5b53b03eafad1c5fc8bd5fc765fc85bb3de67";
9
+ };
10
+ readonly "eip155:42161": {
11
+ readonly name: "arbitrum";
12
+ readonly routerAddress: "0x924f147c50ea59f5180a26031a8b65b2aa1e81cd";
13
+ };
14
+ readonly "eip155:56": {
15
+ readonly name: "bsc";
16
+ readonly routerAddress: "0x7f3d12bbafb8955e51b3ab9588b34c8ad95bda4e";
17
+ };
18
+ readonly "eip155:137": {
19
+ readonly name: "polygon";
20
+ readonly routerAddress: "0xbd4e6011f03355c2a377fd9af939322a7d0a1bc1";
21
+ };
22
+ readonly "eip155:130": {
23
+ readonly name: "unichain";
24
+ readonly routerAddress: "0xcba5574597ad00ea250fd106dab4fc7461949635";
25
+ };
26
+ readonly "eip155:4663": {
27
+ readonly name: "robinhood";
28
+ readonly routerAddress: "0x09215a470bd585e59eb3f4b612fbd2678131ff9e";
29
+ };
30
+ };
31
+ export type FyndSupportedChainId = keyof typeof FYND_CHAINS;
32
+ export declare const FYND_CLIENT_FEE_SHARE = 0.8;
33
+ export declare const FYND_CLIENT_FEE_SIGNATURE_BYTES = 65;
@@ -0,0 +1,35 @@
1
+ import { KnownChainIds } from '@shapeshiftoss/types';
2
+ // Fynd Router Registry: https://docs.propellerheads.xyz/tycho/for-solvers/execution/contract-addresses
3
+ export const FYND_CHAINS = {
4
+ [KnownChainIds.EthereumMainnet]: {
5
+ name: 'ethereum',
6
+ routerAddress: '0x1644d2477f809cc2c71bccfd6dc9497e3f83210d',
7
+ },
8
+ [KnownChainIds.BaseMainnet]: {
9
+ name: 'base',
10
+ routerAddress: '0xaba5b53b03eafad1c5fc8bd5fc765fc85bb3de67',
11
+ },
12
+ [KnownChainIds.ArbitrumMainnet]: {
13
+ name: 'arbitrum',
14
+ routerAddress: '0x924f147c50ea59f5180a26031a8b65b2aa1e81cd',
15
+ },
16
+ [KnownChainIds.BnbSmartChainMainnet]: {
17
+ name: 'bsc',
18
+ routerAddress: '0x7f3d12bbafb8955e51b3ab9588b34c8ad95bda4e',
19
+ },
20
+ [KnownChainIds.PolygonMainnet]: {
21
+ name: 'polygon',
22
+ routerAddress: '0xbd4e6011f03355c2a377fd9af939322a7d0a1bc1',
23
+ },
24
+ [KnownChainIds.UnichainMainnet]: {
25
+ name: 'unichain',
26
+ routerAddress: '0xcba5574597ad00ea250fd106dab4fc7461949635',
27
+ },
28
+ [KnownChainIds.RobinhoodMainnet]: {
29
+ name: 'robinhood',
30
+ routerAddress: '0x09215a470bd585e59eb3f4b612fbd2678131ff9e',
31
+ },
32
+ };
33
+ // Fynd keeps 20% of the client fee, so request the gross bps that nets affiliateBps
34
+ export const FYND_CLIENT_FEE_SHARE = 0.8;
35
+ export const FYND_CLIENT_FEE_SIGNATURE_BYTES = 65;
@@ -0,0 +1,13 @@
1
+ import type { Result } from '@sniptt/monads';
2
+ import type { SwapErrorRight } from '../../../types.js';
3
+ import type { FyndEncodedQuote, FyndTradeQuoteInput, FyndTradeRateInput } from '../types.js';
4
+ import type { FyndSupportedChainId } from './constants.js';
5
+ export declare const fetchFromFynd: ({ input, chainId, sender, receiver, slippageTolerancePercentageDecimal, clientFeeBps, baseUrl, }: {
6
+ input: FyndTradeQuoteInput | FyndTradeRateInput;
7
+ chainId: FyndSupportedChainId;
8
+ sender: string;
9
+ receiver: string;
10
+ slippageTolerancePercentageDecimal: string;
11
+ clientFeeBps: number;
12
+ baseUrl: string;
13
+ }) => Promise<Result<FyndEncodedQuote, SwapErrorRight>>;
@@ -0,0 +1,38 @@
1
+ import { Err } from '@sniptt/monads';
2
+ import { FYND_CHAINS } from './constants.js';
3
+ import { fyndService } from './fyndService.js';
4
+ import { convertAssetIdToFyndToken, getFyndRequestError, validateFyndQuoteResponse, } from './helpers.js';
5
+ export const fetchFromFynd = async ({ input, chainId, sender, receiver, slippageTolerancePercentageDecimal, clientFeeBps, baseUrl, }) => {
6
+ const { sellAsset, buyAsset, sellAmountIncludingProtocolFeesCryptoBaseUnit } = input;
7
+ const maybeResponse = await fyndService.post(`${baseUrl}/${FYND_CHAINS[chainId].name}/quote`, {
8
+ orders: [
9
+ {
10
+ token_in: convertAssetIdToFyndToken(sellAsset.assetId),
11
+ token_out: convertAssetIdToFyndToken(buyAsset.assetId),
12
+ amount: sellAmountIncludingProtocolFeesCryptoBaseUnit,
13
+ side: 'sell',
14
+ sender,
15
+ receiver,
16
+ },
17
+ ],
18
+ options: {
19
+ timeout_ms: 5_000,
20
+ min_responses: 1,
21
+ encoding_options: {
22
+ slippage: slippageTolerancePercentageDecimal,
23
+ transfer_type: 'transfer_from',
24
+ // The proxy sets the fee receiver and deadline and signs the quote
25
+ ...(clientFeeBps > 0 ? { client_fee_params: { bps: clientFeeBps } } : {}),
26
+ },
27
+ },
28
+ });
29
+ if (maybeResponse.isErr())
30
+ return Err(getFyndRequestError(maybeResponse.unwrapErr()));
31
+ return validateFyndQuoteResponse(maybeResponse.unwrap().data, {
32
+ chainId,
33
+ sellAsset,
34
+ sellAmountCryptoBaseUnit: sellAmountIncludingProtocolFeesCryptoBaseUnit,
35
+ slippageTolerancePercentageDecimal,
36
+ clientFeeBps,
37
+ });
38
+ };
@@ -0,0 +1,5 @@
1
+ export declare const fyndService: {
2
+ get: <T = any>(url: string, config?: import("axios").AxiosRequestConfig<any> | undefined) => Promise<import("@sniptt/monads").Result<import("axios").AxiosResponse<T, any, {}>, import("../../../index.js").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("../../../index.js").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("../../../index.js").SwapErrorRight>>;
5
+ };
@@ -0,0 +1,3 @@
1
+ import axios from 'axios';
2
+ import { makeSwapperAxiosServiceMonadic } from '../../../utils/index.js';
3
+ export const fyndService = makeSwapperAxiosServiceMonadic(axios.create({ timeout: 10_000 }));
@@ -0,0 +1,25 @@
1
+ import type { Result } from '@sniptt/monads';
2
+ import type { StepDataArgs, SwapErrorRight, TxBuildData } from '../../../types.js';
3
+ import type { FyndEncodedQuote } from '../types.js';
4
+ type BaseArgs = {
5
+ quote: FyndEncodedQuote;
6
+ sellAmountCryptoBaseUnit: string;
7
+ spenderAddress: string;
8
+ };
9
+ export type GetFyndStepDataArgs = StepDataArgs<BaseArgs, {
10
+ from: string;
11
+ }>;
12
+ type FyndRateStepData = {
13
+ networkFeeCryptoBaseUnit: string | undefined;
14
+ };
15
+ type FyndQuoteStepData = {
16
+ transactionData: TxBuildData;
17
+ networkFeeCryptoBaseUnit: string;
18
+ };
19
+ export declare function getFyndStepData(args: Extract<GetFyndStepDataArgs, {
20
+ type: 'rate';
21
+ }>): Promise<Result<FyndRateStepData, SwapErrorRight>>;
22
+ export declare function getFyndStepData(args: Extract<GetFyndStepDataArgs, {
23
+ type: 'quote';
24
+ }>): Promise<Result<FyndQuoteStepData, SwapErrorRight>>;
25
+ export {};
@@ -0,0 +1,42 @@
1
+ import { fromChainId } from '@shapeshiftoss/caip';
2
+ import { Err, Ok } from '@sniptt/monads';
3
+ import { makeNetworkFeeEstimationFailedErr } from '../../../utils/index.js';
4
+ import { getEvmNetworkFeeCryptoBaseUnit, getEvmRateNetworkFeeCryptoBaseUnit, } from '../../../utils/evm/index.js';
5
+ export async function getFyndStepData(args) {
6
+ const { quote, sellAsset, sellAmountCryptoBaseUnit, spenderAddress, from, type, input, deps } = args;
7
+ const adapter = deps.assertGetEvmChainAdapter(sellAsset.chainId);
8
+ const supportsEIP1559 = 'supportsEIP1559' in input ? input.supportsEIP1559 : false;
9
+ const transactionData = {
10
+ type: 'evm',
11
+ chainId: Number(fromChainId(sellAsset.chainId).chainReference),
12
+ to: quote.transaction.to,
13
+ data: quote.transaction.data,
14
+ value: quote.transaction.value,
15
+ };
16
+ const stateOverride = { sellAsset, sellAmountCryptoBaseUnit, spenderAddress };
17
+ if (type === 'rate') {
18
+ const networkFeeCryptoBaseUnit = await getEvmRateNetworkFeeCryptoBaseUnit({
19
+ adapter,
20
+ supportsEIP1559,
21
+ providerGasLimit: quote.gas_estimate,
22
+ simulation: { transactionData, from, stateOverride },
23
+ }).catch(() => undefined);
24
+ const stepData = { networkFeeCryptoBaseUnit };
25
+ return Ok(stepData);
26
+ }
27
+ try {
28
+ const networkFeeCryptoBaseUnit = await getEvmNetworkFeeCryptoBaseUnit({
29
+ adapter,
30
+ transactionData,
31
+ from,
32
+ supportsEIP1559,
33
+ stateOverride,
34
+ providerGasLimit: quote.gas_estimate,
35
+ });
36
+ const stepData = { transactionData, networkFeeCryptoBaseUnit };
37
+ return Ok(stepData);
38
+ }
39
+ catch (error) {
40
+ return Err(makeNetworkFeeEstimationFailedErr('getFyndStepData', error));
41
+ }
42
+ }
@@ -0,0 +1,18 @@
1
+ import type { Result } from '@sniptt/monads';
2
+ import type { QuoteFeeData, SwapErrorRight, SwapperDeps, TradeCommon, TradeStepCommon } from '../../../types.js';
3
+ import type { FyndTradeQuoteInput, FyndTradeRateInput } from '../types.js';
4
+ import type { GetFyndStepDataArgs } from './getFyndStepData.js';
5
+ type FyndTradeContext = {
6
+ tradeCommon: TradeCommon;
7
+ stepCommon: Omit<TradeStepCommon, 'feeData'>;
8
+ protocolFees: QuoteFeeData['protocolFees'];
9
+ deadline: number | undefined;
10
+ stepDataArgs: Omit<GetFyndStepDataArgs, 'type' | 'input'>;
11
+ };
12
+ export declare const getFyndTradeContext: ({ input, deps, from, to, }: {
13
+ input: FyndTradeQuoteInput | FyndTradeRateInput;
14
+ deps: SwapperDeps;
15
+ from: string;
16
+ to: string;
17
+ }) => Promise<Result<FyndTradeContext, SwapErrorRight>>;
18
+ export {};