@shapeshiftoss/swapper 17.6.10 → 17.7.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 (232) hide show
  1. package/LICENSE.md +21 -0
  2. package/dist/cjs/.tsbuildinfo +1 -1
  3. package/dist/cjs/constants.js +11 -10
  4. package/dist/cjs/cowswap-utils/constants.js +3 -0
  5. package/dist/cjs/cowswap-utils/index.js +6 -0
  6. package/dist/cjs/index.d.ts +1 -1
  7. package/dist/cjs/index.js +1 -1
  8. package/dist/cjs/solana-utils/getUnsignedSolanaTransaction.js +4 -2
  9. package/dist/cjs/swappers/AcrossSwapper/constant.js +2 -0
  10. package/dist/cjs/swappers/AcrossSwapper/utils/getTrade.js +15 -1
  11. package/dist/cjs/swappers/AvnuSwapper/swapperApi/getTradeQuote.js +12 -1
  12. package/dist/cjs/swappers/AvnuSwapper/swapperApi/getTradeRate.js +9 -0
  13. package/dist/cjs/swappers/BebopSwapper/BebopSwapper.js +2 -0
  14. package/dist/cjs/swappers/BebopSwapper/endpoints.js +35 -2
  15. package/dist/cjs/swappers/BebopSwapper/executeSolanaMessage.d.ts +2 -0
  16. package/dist/cjs/swappers/BebopSwapper/executeSolanaMessage.js +47 -0
  17. package/dist/cjs/swappers/BebopSwapper/getBebopSolanaTradeQuote/getBebopSolanaTradeQuote.d.ts +4 -0
  18. package/dist/cjs/swappers/BebopSwapper/getBebopSolanaTradeQuote/getBebopSolanaTradeQuote.js +91 -0
  19. package/dist/cjs/swappers/BebopSwapper/getBebopSolanaTradeRate/getBebopSolanaTradeRate.d.ts +4 -0
  20. package/dist/cjs/swappers/BebopSwapper/getBebopSolanaTradeRate/getBebopSolanaTradeRate.js +88 -0
  21. package/dist/cjs/swappers/BebopSwapper/getBebopTradeQuote/getBebopTradeQuote.js +10 -0
  22. package/dist/cjs/swappers/BebopSwapper/getBebopTradeRate/getBebopTradeRate.js +10 -0
  23. package/dist/cjs/swappers/BebopSwapper/types.d.ts +49 -1
  24. package/dist/cjs/swappers/BebopSwapper/types.js +9 -2
  25. package/dist/cjs/swappers/BebopSwapper/utils/fetchFromBebop.d.ts +19 -1
  26. package/dist/cjs/swappers/BebopSwapper/utils/fetchFromBebop.js +86 -1
  27. package/dist/cjs/swappers/BebopSwapper/utils/helpers/helpers.d.ts +13 -1
  28. package/dist/cjs/swappers/BebopSwapper/utils/helpers/helpers.js +47 -1
  29. package/dist/cjs/swappers/ButterSwap/swapperApi/getTradeQuote.js +17 -1
  30. package/dist/cjs/swappers/ButterSwap/swapperApi/getTradeRate.js +10 -0
  31. package/dist/cjs/swappers/CetusSwapper/swapperApi/getTradeQuote.js +10 -0
  32. package/dist/cjs/swappers/CetusSwapper/swapperApi/getTradeRate.js +10 -0
  33. package/dist/cjs/swappers/CetusSwapper/utils/helpers.d.ts +1 -1
  34. package/dist/cjs/swappers/CetusSwapper/utils/helpers.js +1 -1
  35. package/dist/cjs/swappers/ChainflipSwapper/constants.js +7 -3
  36. package/dist/cjs/swappers/ChainflipSwapper/endpoints.js +14 -4
  37. package/dist/cjs/swappers/ChainflipSwapper/types.d.ts +1 -0
  38. package/dist/cjs/swappers/ChainflipSwapper/utils/getQuoteOrRate.js +17 -0
  39. package/dist/cjs/swappers/CowSwapper/getCowSwapTradeQuote/getCowSwapTradeQuote.js +10 -0
  40. package/dist/cjs/swappers/CowSwapper/getCowSwapTradeRate/getCowSwapTradeRate.js +9 -0
  41. package/dist/cjs/swappers/DebridgeSwapper/DebridgeSwapper.d.ts +2 -0
  42. package/dist/cjs/swappers/DebridgeSwapper/DebridgeSwapper.js +7 -0
  43. package/dist/cjs/swappers/DebridgeSwapper/constant.d.ts +5 -0
  44. package/dist/cjs/swappers/DebridgeSwapper/constant.js +36 -0
  45. package/dist/cjs/swappers/{JupiterSwapper → DebridgeSwapper}/endpoints.d.ts +1 -1
  46. package/dist/cjs/swappers/DebridgeSwapper/endpoints.js +217 -0
  47. package/dist/cjs/swappers/DebridgeSwapper/getTradeQuote/getTradeQuote.js +31 -0
  48. package/dist/cjs/swappers/DebridgeSwapper/getTradeRate/getTradeRate.js +19 -0
  49. package/dist/cjs/swappers/DebridgeSwapper/index.d.ts +1 -0
  50. package/dist/cjs/swappers/DebridgeSwapper/index.js +5 -0
  51. package/dist/cjs/swappers/{JupiterSwapper/utils/jupiterService.d.ts → DebridgeSwapper/utils/debridgeService.d.ts} +1 -1
  52. package/dist/cjs/swappers/DebridgeSwapper/utils/debridgeService.js +17 -0
  53. package/dist/cjs/swappers/DebridgeSwapper/utils/fetchDebridgeSingleChainTrade.d.ts +16 -0
  54. package/dist/cjs/swappers/DebridgeSwapper/utils/fetchDebridgeSingleChainTrade.js +23 -0
  55. package/dist/cjs/swappers/DebridgeSwapper/utils/fetchDebridgeTrade.d.ts +20 -0
  56. package/dist/cjs/swappers/DebridgeSwapper/utils/fetchDebridgeTrade.js +29 -0
  57. package/dist/cjs/swappers/DebridgeSwapper/utils/getTrade.d.ts +11 -0
  58. package/dist/cjs/swappers/DebridgeSwapper/utils/getTrade.js +367 -0
  59. package/dist/cjs/swappers/DebridgeSwapper/utils/types.d.ts +155 -0
  60. package/dist/cjs/swappers/DebridgeSwapper/utils/types.js +9 -0
  61. package/dist/cjs/swappers/MayachainSwapper/utils/poolAssetHelpers/poolAssetHelpers.js +1 -1
  62. package/dist/cjs/swappers/NearIntentsSwapper/swapperApi/getTradeQuote.js +12 -0
  63. package/dist/cjs/swappers/NearIntentsSwapper/swapperApi/getTradeRate.js +12 -0
  64. package/dist/cjs/swappers/PortalsSwapper/getPortalsTradeQuote/getPortalsTradeQuote.js +10 -0
  65. package/dist/cjs/swappers/RelaySwapper/constant.js +7 -10
  66. package/dist/cjs/swappers/RelaySwapper/endpoints.js +1 -1
  67. package/dist/cjs/swappers/RelaySwapper/utils/getTrade.js +56 -7
  68. package/dist/cjs/swappers/RelaySwapper/utils/relayTokenToAssetId.js +22 -7
  69. package/dist/cjs/swappers/StonfiSwapper/swapperApi/getTradeQuote.js +12 -1
  70. package/dist/cjs/swappers/StonfiSwapper/swapperApi/getTradeRate.js +10 -0
  71. package/dist/cjs/swappers/SunioSwapper/utils/getQuoteOrRate.js +10 -0
  72. package/dist/cjs/swappers/ThorchainSwapper/ThorchainSwapper.js +3 -0
  73. package/dist/cjs/swappers/ThorchainSwapper/endpoints.js +2 -0
  74. package/dist/cjs/swappers/ThorchainSwapper/generated/generatedTradableAssetMap.json +1 -0
  75. package/dist/cjs/swappers/ThorchainSwapper/utils/poolAssetHelpers/poolAssetHelpers.d.ts +1 -1
  76. package/dist/cjs/swappers/ThorchainSwapper/utils/poolAssetHelpers/poolAssetHelpers.js +2 -1
  77. package/dist/cjs/swappers/ThorchainSwapper/utils/poolAssetHelpers/poolAssetHelpers.test.js +10 -0
  78. package/dist/cjs/swappers/ZrxSwapper/getZrxTradeQuote/getZrxTradeQuote.js +9 -0
  79. package/dist/cjs/swappers/ZrxSwapper/getZrxTradeRate/getZrxTradeRate.js +9 -0
  80. package/dist/cjs/swappers/utils/affiliateFee.d.ts +17 -0
  81. package/dist/cjs/swappers/utils/affiliateFee.js +43 -0
  82. package/dist/cjs/thorchain-utils/getL1RateOrQuote.js +57 -4
  83. package/dist/cjs/thorchain-utils/index.d.ts +2 -1
  84. package/dist/cjs/thorchain-utils/index.js +2 -1
  85. package/dist/cjs/thorchain-utils/solana/constants.d.ts +1 -0
  86. package/dist/cjs/thorchain-utils/solana/constants.js +6 -0
  87. package/dist/cjs/thorchain-utils/solana/getSolanaTransactionFees.d.ts +2 -0
  88. package/dist/cjs/thorchain-utils/solana/getSolanaTransactionFees.js +41 -0
  89. package/dist/cjs/thorchain-utils/solana/getThorTxData.d.ts +12 -0
  90. package/dist/cjs/thorchain-utils/solana/getThorTxData.js +14 -0
  91. package/dist/cjs/thorchain-utils/solana/getUnsignedSolanaTransaction.d.ts +3 -0
  92. package/dist/cjs/thorchain-utils/solana/getUnsignedSolanaTransaction.js +64 -0
  93. package/dist/cjs/thorchain-utils/solana/index.d.ts +3 -0
  94. package/dist/cjs/{swappers/JupiterSwapper → thorchain-utils/solana}/index.js +3 -2
  95. package/dist/cjs/tron-utils/getUnsignedTronTransaction.js +16 -0
  96. package/dist/cjs/types.d.ts +47 -11
  97. package/dist/cjs/types.js +1 -1
  98. package/dist/cjs/utils.d.ts +3 -0
  99. package/dist/cjs/utils.js +9 -3
  100. package/dist/esm/.tsbuildinfo +1 -1
  101. package/dist/esm/constants.js +11 -10
  102. package/dist/esm/cowswap-utils/constants.js +3 -0
  103. package/dist/esm/cowswap-utils/index.js +6 -0
  104. package/dist/esm/index.d.ts +1 -1
  105. package/dist/esm/index.js +1 -1
  106. package/dist/esm/solana-utils/getUnsignedSolanaTransaction.js +3 -1
  107. package/dist/esm/swappers/AcrossSwapper/constant.js +4 -2
  108. package/dist/esm/swappers/AcrossSwapper/utils/getTrade.js +15 -1
  109. package/dist/esm/swappers/AvnuSwapper/swapperApi/getTradeQuote.js +12 -1
  110. package/dist/esm/swappers/AvnuSwapper/swapperApi/getTradeRate.js +9 -0
  111. package/dist/esm/swappers/BebopSwapper/BebopSwapper.js +2 -0
  112. package/dist/esm/swappers/BebopSwapper/endpoints.js +36 -3
  113. package/dist/esm/swappers/BebopSwapper/executeSolanaMessage.d.ts +2 -0
  114. package/dist/esm/swappers/BebopSwapper/executeSolanaMessage.js +40 -0
  115. package/dist/esm/swappers/BebopSwapper/getBebopSolanaTradeQuote/getBebopSolanaTradeQuote.d.ts +4 -0
  116. package/dist/esm/swappers/BebopSwapper/getBebopSolanaTradeQuote/getBebopSolanaTradeQuote.js +87 -0
  117. package/dist/esm/swappers/BebopSwapper/getBebopSolanaTradeRate/getBebopSolanaTradeRate.d.ts +4 -0
  118. package/dist/esm/swappers/BebopSwapper/getBebopSolanaTradeRate/getBebopSolanaTradeRate.js +84 -0
  119. package/dist/esm/swappers/BebopSwapper/getBebopTradeQuote/getBebopTradeQuote.js +10 -0
  120. package/dist/esm/swappers/BebopSwapper/getBebopTradeRate/getBebopTradeRate.js +10 -0
  121. package/dist/esm/swappers/BebopSwapper/types.d.ts +49 -1
  122. package/dist/esm/swappers/BebopSwapper/types.js +8 -1
  123. package/dist/esm/swappers/BebopSwapper/utils/fetchFromBebop.d.ts +19 -1
  124. package/dist/esm/swappers/BebopSwapper/utils/fetchFromBebop.js +85 -2
  125. package/dist/esm/swappers/BebopSwapper/utils/helpers/helpers.d.ts +13 -1
  126. package/dist/esm/swappers/BebopSwapper/utils/helpers/helpers.js +44 -1
  127. package/dist/esm/swappers/ButterSwap/swapperApi/getTradeQuote.js +17 -1
  128. package/dist/esm/swappers/ButterSwap/swapperApi/getTradeRate.js +10 -0
  129. package/dist/esm/swappers/CetusSwapper/swapperApi/getTradeQuote.js +10 -0
  130. package/dist/esm/swappers/CetusSwapper/swapperApi/getTradeRate.js +10 -0
  131. package/dist/esm/swappers/CetusSwapper/utils/helpers.d.ts +1 -1
  132. package/dist/esm/swappers/CetusSwapper/utils/helpers.js +1 -1
  133. package/dist/esm/swappers/ChainflipSwapper/constants.js +8 -4
  134. package/dist/esm/swappers/ChainflipSwapper/endpoints.js +14 -4
  135. package/dist/esm/swappers/ChainflipSwapper/types.d.ts +1 -0
  136. package/dist/esm/swappers/ChainflipSwapper/utils/getQuoteOrRate.js +17 -0
  137. package/dist/esm/swappers/CowSwapper/getCowSwapTradeQuote/getCowSwapTradeQuote.js +10 -0
  138. package/dist/esm/swappers/CowSwapper/getCowSwapTradeRate/getCowSwapTradeRate.js +9 -0
  139. package/dist/esm/swappers/{JupiterSwapper/JupiterSwapper.d.ts → DebridgeSwapper/DebridgeSwapper.d.ts} +1 -1
  140. package/dist/esm/swappers/DebridgeSwapper/DebridgeSwapper.js +4 -0
  141. package/dist/esm/swappers/DebridgeSwapper/constant.d.ts +5 -0
  142. package/dist/esm/swappers/DebridgeSwapper/constant.js +30 -0
  143. package/dist/esm/swappers/{JupiterSwapper → DebridgeSwapper}/endpoints.d.ts +1 -1
  144. package/dist/esm/swappers/DebridgeSwapper/endpoints.js +211 -0
  145. package/dist/esm/swappers/DebridgeSwapper/getTradeQuote/getTradeQuote.js +27 -0
  146. package/dist/esm/swappers/DebridgeSwapper/getTradeRate/getTradeRate.js +15 -0
  147. package/dist/esm/swappers/DebridgeSwapper/index.d.ts +1 -0
  148. package/dist/esm/swappers/DebridgeSwapper/index.js +1 -0
  149. package/dist/esm/swappers/{JupiterSwapper/utils/jupiterService.d.ts → DebridgeSwapper/utils/debridgeService.d.ts} +1 -1
  150. package/dist/esm/swappers/DebridgeSwapper/utils/debridgeService.js +11 -0
  151. package/dist/esm/swappers/DebridgeSwapper/utils/fetchDebridgeSingleChainTrade.d.ts +16 -0
  152. package/dist/esm/swappers/DebridgeSwapper/utils/fetchDebridgeSingleChainTrade.js +19 -0
  153. package/dist/esm/swappers/DebridgeSwapper/utils/fetchDebridgeTrade.d.ts +20 -0
  154. package/dist/esm/swappers/DebridgeSwapper/utils/fetchDebridgeTrade.js +25 -0
  155. package/dist/esm/swappers/DebridgeSwapper/utils/getTrade.d.ts +11 -0
  156. package/dist/esm/swappers/DebridgeSwapper/utils/getTrade.js +360 -0
  157. package/dist/esm/swappers/DebridgeSwapper/utils/types.d.ts +155 -0
  158. package/dist/esm/swappers/DebridgeSwapper/utils/types.js +5 -0
  159. package/dist/esm/swappers/MayachainSwapper/utils/poolAssetHelpers/poolAssetHelpers.js +1 -1
  160. package/dist/esm/swappers/NearIntentsSwapper/swapperApi/getTradeQuote.js +14 -2
  161. package/dist/esm/swappers/NearIntentsSwapper/swapperApi/getTradeRate.js +14 -2
  162. package/dist/esm/swappers/PortalsSwapper/getPortalsTradeQuote/getPortalsTradeQuote.js +10 -0
  163. package/dist/esm/swappers/RelaySwapper/constant.js +9 -12
  164. package/dist/esm/swappers/RelaySwapper/endpoints.js +2 -2
  165. package/dist/esm/swappers/RelaySwapper/utils/getTrade.js +59 -10
  166. package/dist/esm/swappers/RelaySwapper/utils/relayTokenToAssetId.js +22 -7
  167. package/dist/esm/swappers/StonfiSwapper/swapperApi/getTradeQuote.js +12 -1
  168. package/dist/esm/swappers/StonfiSwapper/swapperApi/getTradeRate.js +10 -0
  169. package/dist/esm/swappers/SunioSwapper/utils/getQuoteOrRate.js +10 -0
  170. package/dist/esm/swappers/ThorchainSwapper/ThorchainSwapper.js +3 -0
  171. package/dist/esm/swappers/ThorchainSwapper/endpoints.js +3 -1
  172. package/dist/esm/swappers/ThorchainSwapper/generated/generatedTradableAssetMap.json +1 -0
  173. package/dist/esm/swappers/ThorchainSwapper/utils/poolAssetHelpers/poolAssetHelpers.d.ts +1 -1
  174. package/dist/esm/swappers/ThorchainSwapper/utils/poolAssetHelpers/poolAssetHelpers.js +2 -1
  175. package/dist/esm/swappers/ThorchainSwapper/utils/poolAssetHelpers/poolAssetHelpers.test.js +11 -1
  176. package/dist/esm/swappers/ZrxSwapper/getZrxTradeQuote/getZrxTradeQuote.js +9 -0
  177. package/dist/esm/swappers/ZrxSwapper/getZrxTradeRate/getZrxTradeRate.js +9 -0
  178. package/dist/esm/swappers/utils/affiliateFee.d.ts +17 -0
  179. package/dist/esm/swappers/utils/affiliateFee.js +39 -0
  180. package/dist/esm/thorchain-utils/getL1RateOrQuote.js +57 -4
  181. package/dist/esm/thorchain-utils/index.d.ts +2 -1
  182. package/dist/esm/thorchain-utils/index.js +1 -0
  183. package/dist/esm/thorchain-utils/solana/constants.d.ts +1 -0
  184. package/dist/esm/thorchain-utils/solana/constants.js +3 -0
  185. package/dist/esm/thorchain-utils/solana/getSolanaTransactionFees.d.ts +2 -0
  186. package/dist/esm/thorchain-utils/solana/getSolanaTransactionFees.js +37 -0
  187. package/dist/esm/thorchain-utils/solana/getThorTxData.d.ts +12 -0
  188. package/dist/esm/thorchain-utils/solana/getThorTxData.js +10 -0
  189. package/dist/esm/thorchain-utils/solana/getUnsignedSolanaTransaction.d.ts +3 -0
  190. package/dist/esm/thorchain-utils/solana/getUnsignedSolanaTransaction.js +60 -0
  191. package/dist/esm/thorchain-utils/solana/index.d.ts +3 -0
  192. package/dist/esm/thorchain-utils/solana/index.js +3 -0
  193. package/dist/esm/tron-utils/getUnsignedTronTransaction.js +16 -0
  194. package/dist/esm/types.d.ts +47 -11
  195. package/dist/esm/types.js +1 -1
  196. package/dist/esm/utils.d.ts +3 -0
  197. package/dist/esm/utils.js +7 -2
  198. package/package.json +19 -19
  199. package/dist/cjs/swappers/JupiterSwapper/JupiterSwapper.d.ts +0 -2
  200. package/dist/cjs/swappers/JupiterSwapper/JupiterSwapper.js +0 -27
  201. package/dist/cjs/swappers/JupiterSwapper/endpoints.js +0 -15
  202. package/dist/cjs/swappers/JupiterSwapper/errorPatterns.d.ts +0 -15
  203. package/dist/cjs/swappers/JupiterSwapper/errorPatterns.js +0 -29
  204. package/dist/cjs/swappers/JupiterSwapper/idls/referral.d.ts +0 -739
  205. package/dist/cjs/swappers/JupiterSwapper/idls/referral.js +0 -741
  206. package/dist/cjs/swappers/JupiterSwapper/index.d.ts +0 -2
  207. package/dist/cjs/swappers/JupiterSwapper/swapperApi/getTradeQuote.js +0 -191
  208. package/dist/cjs/swappers/JupiterSwapper/swapperApi/getTradeRate.js +0 -172
  209. package/dist/cjs/swappers/JupiterSwapper/utils/constants.d.ts +0 -9
  210. package/dist/cjs/swappers/JupiterSwapper/utils/constants.js +0 -14
  211. package/dist/cjs/swappers/JupiterSwapper/utils/helpers.d.ts +0 -56
  212. package/dist/cjs/swappers/JupiterSwapper/utils/helpers.js +0 -178
  213. package/dist/cjs/swappers/JupiterSwapper/utils/jupiterService.js +0 -15
  214. package/dist/esm/swappers/JupiterSwapper/JupiterSwapper.js +0 -24
  215. package/dist/esm/swappers/JupiterSwapper/endpoints.js +0 -12
  216. package/dist/esm/swappers/JupiterSwapper/errorPatterns.d.ts +0 -15
  217. package/dist/esm/swappers/JupiterSwapper/errorPatterns.js +0 -25
  218. package/dist/esm/swappers/JupiterSwapper/idls/referral.d.ts +0 -739
  219. package/dist/esm/swappers/JupiterSwapper/idls/referral.js +0 -738
  220. package/dist/esm/swappers/JupiterSwapper/index.d.ts +0 -2
  221. package/dist/esm/swappers/JupiterSwapper/index.js +0 -2
  222. package/dist/esm/swappers/JupiterSwapper/swapperApi/getTradeQuote.js +0 -187
  223. package/dist/esm/swappers/JupiterSwapper/swapperApi/getTradeRate.js +0 -168
  224. package/dist/esm/swappers/JupiterSwapper/utils/constants.d.ts +0 -9
  225. package/dist/esm/swappers/JupiterSwapper/utils/constants.js +0 -11
  226. package/dist/esm/swappers/JupiterSwapper/utils/helpers.d.ts +0 -56
  227. package/dist/esm/swappers/JupiterSwapper/utils/helpers.js +0 -169
  228. package/dist/esm/swappers/JupiterSwapper/utils/jupiterService.js +0 -12
  229. /package/dist/cjs/swappers/{JupiterSwapper/swapperApi → DebridgeSwapper/getTradeQuote}/getTradeQuote.d.ts +0 -0
  230. /package/dist/cjs/swappers/{JupiterSwapper/swapperApi → DebridgeSwapper/getTradeRate}/getTradeRate.d.ts +0 -0
  231. /package/dist/esm/swappers/{JupiterSwapper/swapperApi → DebridgeSwapper/getTradeQuote}/getTradeQuote.d.ts +0 -0
  232. /package/dist/esm/swappers/{JupiterSwapper/swapperApi → DebridgeSwapper/getTradeRate}/getTradeRate.d.ts +0 -0
@@ -0,0 +1,367 @@
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.getTrade = void 0;
7
+ const caip_1 = require("@shapeshiftoss/caip");
8
+ const chain_adapters_1 = require("@shapeshiftoss/chain-adapters");
9
+ const utils_1 = require("@shapeshiftoss/utils");
10
+ const monads_1 = require("@sniptt/monads");
11
+ const axios_1 = __importDefault(require("axios"));
12
+ const uuid_1 = require("uuid");
13
+ const viem_1 = require("viem");
14
+ const types_1 = require("../../../types");
15
+ const utils_2 = require("../../../utils");
16
+ const helpers_1 = require("../../utils/helpers/helpers");
17
+ const constant_1 = require("../constant");
18
+ const fetchDebridgeSingleChainTrade_1 = require("./fetchDebridgeSingleChainTrade");
19
+ const fetchDebridgeTrade_1 = require("./fetchDebridgeTrade");
20
+ const types_2 = require("./types");
21
+ const getDebridgeAssetAddress = (assetId) => {
22
+ if ((0, helpers_1.isNativeEvmAsset)(assetId))
23
+ return constant_1.DEFAULT_DEBRIDGE_TOKEN_ADDRESS;
24
+ const { assetReference } = (0, caip_1.fromAssetId)(assetId);
25
+ return (0, caip_1.isAssetReference)(assetReference) ? viem_1.zeroAddress : assetReference;
26
+ };
27
+ async function getTrade({ input, deps, }) {
28
+ const { sellAsset, buyAsset, sellAmountIncludingProtocolFeesCryptoBaseUnit, affiliateBps } = input;
29
+ const isSameChainSwap = sellAsset.chainId === buyAsset.chainId;
30
+ const sellDebridgeChainId = constant_1.chainIdToDebridgeChainId[sellAsset.chainId];
31
+ if (sellDebridgeChainId === undefined) {
32
+ return (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
33
+ message: `Sell asset chain '${sellAsset.chainId}' not supported by deBridge`,
34
+ code: types_1.TradeQuoteError.UnsupportedChain,
35
+ }));
36
+ }
37
+ if (!isSameChainSwap) {
38
+ const buyDebridgeChainId = constant_1.chainIdToDebridgeChainId[buyAsset.chainId];
39
+ if (buyDebridgeChainId === undefined) {
40
+ return (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
41
+ message: `Buy asset chain '${buyAsset.chainId}' not supported by deBridge`,
42
+ code: types_1.TradeQuoteError.UnsupportedChain,
43
+ }));
44
+ }
45
+ }
46
+ const senderAddress = (() => {
47
+ if (input.quoteOrRate === 'rate') {
48
+ if (input.sendAddress)
49
+ return input.sendAddress;
50
+ return constant_1.DEFAULT_DEBRIDGE_USER_ADDRESS;
51
+ }
52
+ return input.sendAddress ?? constant_1.DEFAULT_DEBRIDGE_USER_ADDRESS;
53
+ })();
54
+ const recipientAddress = (() => {
55
+ if (input.quoteOrRate === 'rate') {
56
+ if (input.receiveAddress)
57
+ return input.receiveAddress;
58
+ return constant_1.DEFAULT_DEBRIDGE_USER_ADDRESS;
59
+ }
60
+ return input.receiveAddress;
61
+ })();
62
+ const affiliateFeePercent = (() => {
63
+ if (!(0, utils_1.isTreasuryChainId)(sellAsset.chainId))
64
+ return undefined;
65
+ const bps = (0, utils_1.bnOrZero)(affiliateBps);
66
+ if (!bps.isFinite() || bps.lte(0))
67
+ return undefined;
68
+ return bps.div(100).toFixed();
69
+ })();
70
+ const affiliateFeeRecipient = (() => {
71
+ if (affiliateFeePercent === undefined)
72
+ return undefined;
73
+ try {
74
+ return (0, helpers_1.getTreasuryAddressFromChainId)(sellAsset.chainId).toLowerCase();
75
+ }
76
+ catch (e) {
77
+ console.error(`[getTrade] Failed to get treasury address for chainId ${sellAsset.chainId}, affiliate fee will not be applied`, e);
78
+ return undefined;
79
+ }
80
+ })();
81
+ if (isSameChainSwap) {
82
+ return getSameChainTrade({
83
+ input,
84
+ deps,
85
+ sellDebridgeChainId,
86
+ senderAddress,
87
+ recipientAddress,
88
+ affiliateFeePercent,
89
+ affiliateFeeRecipient,
90
+ });
91
+ }
92
+ const buyDebridgeChainId = constant_1.chainIdToDebridgeChainId[buyAsset.chainId];
93
+ if (buyDebridgeChainId === undefined) {
94
+ return (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
95
+ message: `Buy asset chain '${buyAsset.chainId}' not supported by deBridge`,
96
+ code: types_1.TradeQuoteError.UnsupportedChain,
97
+ }));
98
+ }
99
+ const maybeQuote = await (0, fetchDebridgeTrade_1.fetchDebridgeTrade)({
100
+ srcChainId: sellDebridgeChainId,
101
+ srcChainTokenIn: getDebridgeAssetAddress(sellAsset.assetId),
102
+ srcChainTokenInAmount: sellAmountIncludingProtocolFeesCryptoBaseUnit,
103
+ dstChainId: buyDebridgeChainId,
104
+ dstChainTokenOut: getDebridgeAssetAddress(buyAsset.assetId),
105
+ dstChainTokenOutAmount: 'auto',
106
+ dstChainTokenOutRecipient: recipientAddress,
107
+ srcChainOrderAuthorityAddress: senderAddress,
108
+ dstChainOrderAuthorityAddress: recipientAddress,
109
+ senderAddress,
110
+ prependOperatingExpenses: 'false',
111
+ affiliateFeePercent,
112
+ affiliateFeeRecipient,
113
+ }, deps.config);
114
+ if (maybeQuote.isErr()) {
115
+ return handleDebridgeError(maybeQuote.unwrapErr());
116
+ }
117
+ const { data: quote } = maybeQuote.unwrap();
118
+ const buyAmountAfterFeesCryptoBaseUnit = quote.estimation.dstChainTokenOut.recommendedAmount;
119
+ const rate = (0, utils_2.getInputOutputRate)({
120
+ sellAmountCryptoBaseUnit: sellAmountIncludingProtocolFeesCryptoBaseUnit,
121
+ buyAmountCryptoBaseUnit: buyAmountAfterFeesCryptoBaseUnit,
122
+ sellAsset,
123
+ buyAsset,
124
+ });
125
+ const fixFee = (0, utils_1.bnOrZero)(quote.fixFee).toFixed();
126
+ const buyAmountBeforeFeesCryptoBaseUnit = buyAmountAfterFeesCryptoBaseUnit;
127
+ const allowanceContract = (0, chain_adapters_1.isEvmChainId)(sellAsset.chainId) ? quote.tx.to : '';
128
+ const debridgeTransactionMetadata = {
129
+ to: quote.tx.to,
130
+ data: quote.tx.data,
131
+ value: quote.tx.value,
132
+ orderId: quote.orderId,
133
+ gasLimit: quote.estimatedTransactionFee?.details.gasLimit,
134
+ };
135
+ const networkFeeCryptoBaseUnit = await getNetworkFee({
136
+ sellAsset,
137
+ debridgeTransactionMetadata,
138
+ senderAddress,
139
+ deps,
140
+ });
141
+ const protocolFeeAssetCaipChainId = constant_1.debridgeChainIdToChainId[sellDebridgeChainId.toString()];
142
+ const protocolFeeAssetIdForFees = (() => {
143
+ if (!protocolFeeAssetCaipChainId)
144
+ return undefined;
145
+ return (0, utils_1.chainIdToFeeAssetId)(protocolFeeAssetCaipChainId);
146
+ })();
147
+ const accountNumber = input.accountNumber;
148
+ const step = {
149
+ allowanceContract,
150
+ rate,
151
+ buyAmountBeforeFeesCryptoBaseUnit,
152
+ buyAmountAfterFeesCryptoBaseUnit,
153
+ sellAmountIncludingProtocolFeesCryptoBaseUnit,
154
+ buyAsset,
155
+ sellAsset,
156
+ accountNumber,
157
+ feeData: {
158
+ networkFeeCryptoBaseUnit,
159
+ protocolFees: protocolFeeAssetIdForFees && (0, utils_1.bnOrZero)(fixFee).gt(0)
160
+ ? {
161
+ [protocolFeeAssetIdForFees]: {
162
+ amountCryptoBaseUnit: fixFee,
163
+ asset: (0, utils_1.getBaseAsset)(sellAsset.chainId),
164
+ requiresBalance: true,
165
+ },
166
+ }
167
+ : {},
168
+ },
169
+ source: types_1.SwapperName.Debridge,
170
+ estimatedExecutionTimeMs: quote.order.approximateFulfillmentDelay * 1000,
171
+ debridgeTransactionMetadata,
172
+ };
173
+ const baseQuoteOrRate = {
174
+ id: quote.orderId,
175
+ rate,
176
+ swapperName: types_1.SwapperName.Debridge,
177
+ affiliateBps,
178
+ slippageTolerancePercentageDecimal: input.slippageTolerancePercentageDecimal,
179
+ };
180
+ if (input.quoteOrRate === 'quote') {
181
+ if (!input.receiveAddress) {
182
+ return (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
183
+ message: 'Receive address is required for quote',
184
+ code: types_1.TradeQuoteError.InternalError,
185
+ }));
186
+ }
187
+ const tradeQuote = {
188
+ ...baseQuoteOrRate,
189
+ steps: [step],
190
+ receiveAddress: input.receiveAddress,
191
+ quoteOrRate: 'quote',
192
+ };
193
+ return (0, monads_1.Ok)([tradeQuote]);
194
+ }
195
+ const tradeRate = {
196
+ ...baseQuoteOrRate,
197
+ steps: [step],
198
+ receiveAddress: recipientAddress,
199
+ quoteOrRate: 'rate',
200
+ };
201
+ return (0, monads_1.Ok)([tradeRate]);
202
+ }
203
+ exports.getTrade = getTrade;
204
+ function handleDebridgeError(error) {
205
+ if (!axios_1.default.isAxiosError(error.cause)) {
206
+ return (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
207
+ message: 'Unknown error',
208
+ code: types_1.TradeQuoteError.UnknownError,
209
+ }));
210
+ }
211
+ const debridgeError = error.cause?.response?.data;
212
+ if (!(0, types_2.isDebridgeError)(debridgeError)) {
213
+ return (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
214
+ message: 'Unknown error',
215
+ code: types_1.TradeQuoteError.UnknownError,
216
+ }));
217
+ }
218
+ const errorMessage = debridgeError.errorMessage ?? debridgeError.message ?? 'Unknown error';
219
+ return (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
220
+ message: errorMessage,
221
+ code: types_1.TradeQuoteError.UnknownError,
222
+ }));
223
+ }
224
+ async function getNetworkFee({ sellAsset, debridgeTransactionMetadata, senderAddress, deps, }) {
225
+ if (!(0, chain_adapters_1.isEvmChainId)(sellAsset.chainId))
226
+ return undefined;
227
+ const adapter = deps.assertGetEvmChainAdapter(sellAsset.chainId);
228
+ const { average } = await adapter.getGasFeeData();
229
+ const supportsEIP1559 = 'maxFeePerGas' in average;
230
+ try {
231
+ const feeData = await chain_adapters_1.evm.getFees({
232
+ adapter,
233
+ data: debridgeTransactionMetadata.data,
234
+ to: debridgeTransactionMetadata.to,
235
+ value: debridgeTransactionMetadata.value,
236
+ from: senderAddress,
237
+ supportsEIP1559,
238
+ });
239
+ return feeData.networkFeeCryptoBaseUnit;
240
+ }
241
+ catch {
242
+ const gasLimitFromApi = debridgeTransactionMetadata.gasLimit;
243
+ if (!gasLimitFromApi)
244
+ return undefined;
245
+ return chain_adapters_1.evm.calcNetworkFeeCryptoBaseUnit({
246
+ ...average,
247
+ gasLimit: gasLimitFromApi,
248
+ supportsEIP1559,
249
+ });
250
+ }
251
+ }
252
+ async function getSameChainTrade({ input, deps, sellDebridgeChainId, senderAddress, recipientAddress, affiliateFeePercent, affiliateFeeRecipient, }) {
253
+ const { sellAsset, buyAsset, sellAmountIncludingProtocolFeesCryptoBaseUnit, affiliateBps } = input;
254
+ const slippage = input.slippageTolerancePercentageDecimal
255
+ ? (0, utils_1.bnOrZero)(input.slippageTolerancePercentageDecimal).times(100).toFixed()
256
+ : '5';
257
+ const maybeQuote = await (0, fetchDebridgeSingleChainTrade_1.fetchDebridgeSingleChainTrade)({
258
+ chainId: sellDebridgeChainId,
259
+ tokenIn: getDebridgeAssetAddress(sellAsset.assetId),
260
+ tokenInAmount: sellAmountIncludingProtocolFeesCryptoBaseUnit,
261
+ tokenOut: getDebridgeAssetAddress(buyAsset.assetId),
262
+ tokenOutRecipient: recipientAddress,
263
+ senderAddress,
264
+ slippage,
265
+ affiliateFeePercent,
266
+ affiliateFeeRecipient,
267
+ }, deps.config);
268
+ if (maybeQuote.isErr()) {
269
+ return handleDebridgeError(maybeQuote.unwrapErr());
270
+ }
271
+ const { data: quote } = maybeQuote.unwrap();
272
+ const buyAmountAfterFeesCryptoBaseUnit = quote.tokenOut.amount;
273
+ const rate = (0, utils_2.getInputOutputRate)({
274
+ sellAmountCryptoBaseUnit: sellAmountIncludingProtocolFeesCryptoBaseUnit,
275
+ buyAmountCryptoBaseUnit: buyAmountAfterFeesCryptoBaseUnit,
276
+ sellAsset,
277
+ buyAsset,
278
+ });
279
+ const protocolFeeAmount = quote.protocolFee ?? '0';
280
+ const buyAmountBeforeFeesCryptoBaseUnit = (() => {
281
+ if (protocolFeeAmount === '0')
282
+ return buyAmountAfterFeesCryptoBaseUnit;
283
+ return utils_1.BigAmount.fromBaseUnit({
284
+ value: buyAmountAfterFeesCryptoBaseUnit,
285
+ precision: buyAsset.precision,
286
+ })
287
+ .plus(utils_1.BigAmount.fromBaseUnit({
288
+ value: protocolFeeAmount,
289
+ precision: buyAsset.precision,
290
+ }))
291
+ .toBaseUnit();
292
+ })();
293
+ const allowanceContract = (0, chain_adapters_1.isEvmChainId)(sellAsset.chainId) ? quote.tx.to : '';
294
+ const debridgeTransactionMetadata = {
295
+ to: quote.tx.to,
296
+ data: quote.tx.data,
297
+ value: quote.tx.value,
298
+ gasLimit: quote.estimatedTransactionFee?.details.gasLimit,
299
+ isSameChainSwap: true,
300
+ };
301
+ const networkFeeCryptoBaseUnit = await getNetworkFee({
302
+ sellAsset,
303
+ debridgeTransactionMetadata,
304
+ senderAddress,
305
+ deps,
306
+ });
307
+ const tradeId = (0, uuid_1.v4)();
308
+ const step = {
309
+ allowanceContract,
310
+ rate,
311
+ buyAmountBeforeFeesCryptoBaseUnit,
312
+ buyAmountAfterFeesCryptoBaseUnit,
313
+ sellAmountIncludingProtocolFeesCryptoBaseUnit,
314
+ buyAsset,
315
+ sellAsset,
316
+ accountNumber: input.accountNumber,
317
+ feeData: {
318
+ networkFeeCryptoBaseUnit,
319
+ protocolFees: protocolFeeAmount !== '0'
320
+ ? {
321
+ [buyAsset.assetId]: {
322
+ amountCryptoBaseUnit: protocolFeeAmount,
323
+ asset: {
324
+ symbol: quote.tokenOut.symbol,
325
+ chainId: buyAsset.chainId,
326
+ precision: buyAsset.precision,
327
+ },
328
+ requiresBalance: false,
329
+ },
330
+ }
331
+ : {},
332
+ },
333
+ source: types_1.SwapperName.Debridge,
334
+ estimatedExecutionTimeMs: 15_000,
335
+ debridgeTransactionMetadata,
336
+ };
337
+ const baseQuoteOrRate = {
338
+ id: tradeId,
339
+ rate,
340
+ swapperName: types_1.SwapperName.Debridge,
341
+ affiliateBps,
342
+ slippageTolerancePercentageDecimal: input.slippageTolerancePercentageDecimal ??
343
+ (quote.slippage ? (0, utils_1.bnOrZero)(quote.slippage).div(100).toString() : undefined),
344
+ };
345
+ if (input.quoteOrRate === 'quote') {
346
+ if (!input.receiveAddress) {
347
+ return (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
348
+ message: 'Receive address is required for quote',
349
+ code: types_1.TradeQuoteError.InternalError,
350
+ }));
351
+ }
352
+ const tradeQuote = {
353
+ ...baseQuoteOrRate,
354
+ steps: [step],
355
+ receiveAddress: input.receiveAddress,
356
+ quoteOrRate: 'quote',
357
+ };
358
+ return (0, monads_1.Ok)([tradeQuote]);
359
+ }
360
+ const tradeRate = {
361
+ ...baseQuoteOrRate,
362
+ steps: [step],
363
+ receiveAddress: recipientAddress,
364
+ quoteOrRate: 'rate',
365
+ };
366
+ return (0, monads_1.Ok)([tradeRate]);
367
+ }
@@ -0,0 +1,155 @@
1
+ import type { Asset } from '@shapeshiftoss/types';
2
+ export type DebridgeTradeBaseParams = {
3
+ buyAsset: Asset;
4
+ sellAsset: Asset;
5
+ sellAmountIncludingProtocolFeesCryptoBaseUnit: string;
6
+ affiliateBps: string;
7
+ };
8
+ export type DebridgeTradeInputParams<T extends 'rate' | 'quote'> = DebridgeTradeBaseParams & {
9
+ quoteOrRate: T;
10
+ receiveAddress: T extends 'rate' ? string | undefined : string;
11
+ sendAddress: T extends 'rate' ? undefined : string;
12
+ accountNumber: T extends 'rate' ? undefined : number;
13
+ slippageTolerancePercentageDecimal?: string;
14
+ };
15
+ export type DebridgeTransactionMetadata = {
16
+ to: string;
17
+ data: string;
18
+ value: string;
19
+ gasLimit?: string;
20
+ orderId?: string;
21
+ isSameChainSwap?: boolean;
22
+ };
23
+ export type DebridgeTokenInfo = {
24
+ address: string;
25
+ chainId: number;
26
+ decimals: number;
27
+ name: string;
28
+ symbol: string;
29
+ amount: string;
30
+ approximateOperatingExpense?: string;
31
+ mutatedWithOperatingExpense?: boolean;
32
+ approximateUsdValue?: number;
33
+ maxRefundAmount?: string;
34
+ };
35
+ export type DebridgeCostDetail = {
36
+ type: 'DlnProtocolFee' | 'TakerMargin' | 'EstimatedOperatingExpenses' | 'InputTokenFee' | 'OutputTokenFee';
37
+ payload: {
38
+ feeAmount: string;
39
+ feeBps?: string;
40
+ chain?: string;
41
+ tokenAddress?: string;
42
+ };
43
+ };
44
+ export type DebridgeEstimation = {
45
+ srcChainTokenIn: DebridgeTokenInfo;
46
+ srcChainTokenOut?: DebridgeTokenInfo;
47
+ dstChainTokenOut: DebridgeTokenInfo & {
48
+ recommendedAmount: string;
49
+ };
50
+ costsDetails: DebridgeCostDetail[];
51
+ recommendedSlippage: number;
52
+ };
53
+ export type DebridgeTx = {
54
+ to: string;
55
+ data: string;
56
+ value: string;
57
+ };
58
+ export type DebridgeOrder = {
59
+ approximateFulfillmentDelay: number;
60
+ salt: number;
61
+ metadata: string;
62
+ };
63
+ export type DebridgeCreateTxResponse = {
64
+ estimation: DebridgeEstimation;
65
+ tx: DebridgeTx;
66
+ orderId: string;
67
+ order: DebridgeOrder;
68
+ fixFee: string;
69
+ prependedOperatingExpenseCost?: string;
70
+ estimatedTransactionFee?: DebridgeSingleChainEstimatedTransactionFee;
71
+ };
72
+ export type DebridgeOrderStatus = {
73
+ orderId: string;
74
+ status: 'None' | 'Created' | 'Fulfilled' | 'SentUnlock' | 'ClaimedUnlock' | 'OrderCancelled' | 'SentOrderCancel' | 'ClaimedOrderCancel';
75
+ };
76
+ export type DebridgeHashObject = {
77
+ stringValue: string;
78
+ bytesValue: string;
79
+ bytesArrayValue: string;
80
+ };
81
+ export type DebridgeOrderDetail = {
82
+ orderId: DebridgeHashObject;
83
+ fulfilledDstEventMetadata?: {
84
+ transactionHash?: DebridgeHashObject;
85
+ };
86
+ };
87
+ export type DebridgeOrderId = {
88
+ bytesValue: string;
89
+ bytesArrayValue: string;
90
+ stringValue: string;
91
+ };
92
+ export type DebridgeOrderIdsResponse = {
93
+ orderIds: DebridgeOrderId[];
94
+ };
95
+ export type DebridgeSingleChainTokenInfo = {
96
+ address: string;
97
+ name: string;
98
+ symbol: string;
99
+ decimals: number;
100
+ amount: string;
101
+ approximateUsdValue?: number;
102
+ };
103
+ export type DebridgeSingleChainTokenOut = DebridgeSingleChainTokenInfo & {
104
+ minAmount: string;
105
+ };
106
+ export type DebridgeSingleChainCostDetail = {
107
+ chain: string;
108
+ tokenIn: string;
109
+ tokenOut: string;
110
+ amountIn: string;
111
+ amountOut: string;
112
+ type: string;
113
+ payload: {
114
+ feeAmount?: string;
115
+ feeBps?: string;
116
+ amountOutBeforeCorrection?: string;
117
+ estimatedVolatilityBps?: string;
118
+ actualFeeAmount?: string;
119
+ actualFeeBps?: string;
120
+ subsidyAmount?: string;
121
+ feeApproximateUsdValue?: string;
122
+ };
123
+ };
124
+ export type DebridgeSingleChainEstimatedTransactionFee = {
125
+ total: string;
126
+ details: {
127
+ gasLimit: string;
128
+ baseFee?: string;
129
+ maxFeePerGas?: string;
130
+ maxPriorityFeePerGas?: string;
131
+ };
132
+ approximateUsdValue?: number;
133
+ };
134
+ export type DebridgeSingleChainTransactionResponse = {
135
+ tokenIn: DebridgeSingleChainTokenInfo;
136
+ tokenOut: DebridgeSingleChainTokenOut;
137
+ slippage: number;
138
+ recommendedSlippage: number;
139
+ protocolFee?: string;
140
+ costsDetails: DebridgeSingleChainCostDetail[];
141
+ estimatedTransactionFee?: DebridgeSingleChainEstimatedTransactionFee;
142
+ tx: {
143
+ to: string;
144
+ data: string;
145
+ value: string;
146
+ };
147
+ };
148
+ export type DebridgeError = {
149
+ errorCode?: number;
150
+ errorId?: string;
151
+ errorMessage?: string;
152
+ statusCode?: number;
153
+ message?: string;
154
+ };
155
+ export declare const isDebridgeError: (error: unknown) => error is DebridgeError;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isDebridgeError = void 0;
4
+ const isDebridgeError = (error) => {
5
+ return (typeof error === 'object' &&
6
+ error !== null &&
7
+ ('errorCode' in error || 'errorId' in error || 'errorMessage' in error));
8
+ };
9
+ exports.isDebridgeError = isDebridgeError;
@@ -10,5 +10,5 @@ const mayaPoolIdAssetIdSymbolMap = generatedTradableAssetMap_json_1.default;
10
10
  exports.assetIdToMayaPoolAssetIdMap = (0, invert_1.default)(mayaPoolIdAssetIdSymbolMap);
11
11
  const mayaPoolAssetIdToAssetId = (id) => mayaPoolIdAssetIdSymbolMap[id.toUpperCase()];
12
12
  exports.mayaPoolAssetIdToAssetId = mayaPoolAssetIdToAssetId;
13
- const assetIdToMayaPoolAssetId = ({ assetId }) => exports.assetIdToMayaPoolAssetIdMap[assetId.toLowerCase()];
13
+ const assetIdToMayaPoolAssetId = ({ assetId }) => exports.assetIdToMayaPoolAssetIdMap[assetId];
14
14
  exports.assetIdToMayaPoolAssetId = assetIdToMayaPoolAssetId;
@@ -9,6 +9,7 @@ const uuid_1 = require("uuid");
9
9
  const constants_1 = require("../../../constants");
10
10
  const types_1 = require("../../../types");
11
11
  const utils_2 = require("../../../utils");
12
+ const affiliateFee_1 = require("../../utils/affiliateFee");
12
13
  const helpers_1 = require("../../utils/helpers/helpers");
13
14
  const constants_2 = require("../constants");
14
15
  const types_2 = require("../types");
@@ -278,6 +279,17 @@ const getTradeQuote = async (input, deps) => {
278
279
  timeEstimate: quote.timeEstimate,
279
280
  deadline: quote.deadline ?? '',
280
281
  },
282
+ affiliateFee: (0, affiliateFee_1.buildAffiliateFee)({
283
+ strategy: 'fixed_asset',
284
+ affiliateBps,
285
+ sellAsset,
286
+ buyAsset,
287
+ sellAmountCryptoBaseUnit: quote.amountIn,
288
+ buyAmountCryptoBaseUnit: quote.amountOut,
289
+ fixedAssetId: (0, utils_1.chainIdToFeeAssetId)(caip_1.nearChainId),
290
+ fixedAsset: deps.assetsById[(0, utils_1.chainIdToFeeAssetId)(caip_1.nearChainId)],
291
+ isEstimate: true,
292
+ }),
281
293
  },
282
294
  ],
283
295
  };
@@ -11,6 +11,7 @@ const constants_1 = require("../../../constants");
11
11
  const types_1 = require("../../../types");
12
12
  const utils_2 = require("../../../utils");
13
13
  const tenderly_1 = require("../../../utils/tenderly");
14
+ const affiliateFee_1 = require("../../utils/affiliateFee");
14
15
  const helpers_1 = require("../../utils/helpers/helpers");
15
16
  const constants_2 = require("../constants");
16
17
  const types_2 = require("../types");
@@ -337,6 +338,17 @@ const getTradeRate = async (input, deps) => {
337
338
  sellAsset,
338
339
  source: types_1.SwapperName.NearIntents,
339
340
  estimatedExecutionTimeMs: quote.timeEstimate ? quote.timeEstimate * 1000 : undefined,
341
+ affiliateFee: (0, affiliateFee_1.buildAffiliateFee)({
342
+ strategy: 'fixed_asset',
343
+ affiliateBps,
344
+ sellAsset,
345
+ buyAsset,
346
+ sellAmountCryptoBaseUnit: quote.amountIn,
347
+ buyAmountCryptoBaseUnit: quote.amountOut,
348
+ fixedAssetId: (0, utils_1.chainIdToFeeAssetId)(caip_1.nearChainId),
349
+ fixedAsset: deps.assetsById[(0, utils_1.chainIdToFeeAssetId)(caip_1.nearChainId)],
350
+ isEstimate: true,
351
+ }),
340
352
  },
341
353
  ],
342
354
  };
@@ -9,6 +9,7 @@ const viem_1 = require("viem");
9
9
  const __1 = require("../../..");
10
10
  const types_1 = require("../../../types");
11
11
  const utils_2 = require("../../../utils");
12
+ const affiliateFee_1 = require("../../utils/affiliateFee");
12
13
  const helpers_1 = require("../../utils/helpers/helpers");
13
14
  const constants_1 = require("../constants");
14
15
  const fetchPortalsTradeOrder_1 = require("../utils/fetchPortalsTradeOrder");
@@ -204,6 +205,15 @@ async function getPortalsTradeQuote(input, assertGetEvmChainAdapter, swapperConf
204
205
  steps: portalsTradeOrderResponse.context.steps,
205
206
  route: portalsTradeOrderResponse.context.route,
206
207
  },
208
+ affiliateFee: (0, affiliateFee_1.buildAffiliateFee)({
209
+ strategy: 'buy_asset',
210
+ affiliateBps,
211
+ sellAsset,
212
+ buyAsset,
213
+ sellAmountCryptoBaseUnit: input.sellAmountIncludingProtocolFeesCryptoBaseUnit,
214
+ buyAmountCryptoBaseUnit: buyAmountAfterFeesCryptoBaseUnit,
215
+ isEstimate: true,
216
+ }),
207
217
  },
208
218
  ],
209
219
  };
@@ -5,40 +5,35 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.relayErrorCodeToTradeQuoteError = exports.MAXIMUM_SUPPORTED_RELAY_STEPS = exports.DEFAULT_RELAY_TRON_USER_ADDRESS = exports.DEFAULT_RELAY_SOLANA_USER_ADDRESS = exports.DEFAULT_RELAY_BTC_USER_ADDRESS = exports.DEFAULT_RELAY_EVM_USER_ADDRESS = exports.RELAY_TRON_TOKEN_ADDRESS = exports.RELAY_SOLANA_TOKEN_ADDRESS = exports.RELAY_BTC_TOKEN_ADDRESS = exports.DEFAULT_RELAY_EVM_TOKEN_ADDRESS = exports.relayChainIdToChainId = exports.RelayStatusMessage = exports.chainIdToRelayChainId = void 0;
7
7
  const caip_1 = require("@shapeshiftoss/caip");
8
- const contracts_1 = require("@shapeshiftoss/contracts");
9
8
  const invert_1 = __importDefault(require("lodash/invert"));
10
9
  const viem_1 = require("viem");
11
10
  const chains_1 = require("viem/chains");
12
11
  const types_1 = require("../../types");
13
12
  const types_2 = require("./utils/types");
13
+ // https://docs.relay.link/resources/supported-chains
14
14
  exports.chainIdToRelayChainId = {
15
- // https://docs.relay.link/resources/supported-chains
16
15
  [caip_1.btcChainId]: 8253038,
17
16
  [caip_1.ethChainId]: chains_1.mainnet.id,
18
17
  [caip_1.arbitrumChainId]: chains_1.arbitrum.id,
19
18
  [caip_1.baseChainId]: chains_1.base.id,
20
19
  [caip_1.optimismChainId]: chains_1.optimism.id,
21
20
  [caip_1.polygonChainId]: chains_1.polygon.id,
22
- // https://docs.relay.link/resources/supported-chains
23
21
  [caip_1.solanaChainId]: 792703809,
24
22
  [caip_1.gnosisChainId]: chains_1.gnosis.id,
25
23
  [caip_1.avalancheChainId]: chains_1.avalanche.id,
26
24
  [caip_1.bscChainId]: chains_1.bsc.id,
27
- // DISABLED: Tron deposits are built as simple TRC20 transfers instead of depositErc20() vault calls,
28
- // and the Relay indexer notification is never sent for non-EVM chains. This causes deposits to be
29
- // untracked by Relay, resulting in stuck/lost funds. Re-enable once the Tron transaction building
30
- // is verified to use the Relay quote calldata (depositErc20) correctly.
31
- // [tronChainId]: 728126428,
25
+ [caip_1.tronChainId]: 728126428,
32
26
  [caip_1.monadChainId]: chains_1.monad.id,
33
27
  [caip_1.hyperEvmChainId]: chains_1.hyperEvm.id,
34
28
  [caip_1.mantleChainId]: chains_1.mantle.id,
35
29
  [caip_1.inkChainId]: chains_1.ink.id,
36
30
  [caip_1.megaethChainId]: 4326,
37
31
  [caip_1.plasmaChainId]: chains_1.plasma.id,
38
- [caip_1.plumeChainId]: chains_1.plumeMainnet.id,
39
32
  [caip_1.katanaChainId]: chains_1.katana.id,
40
- [caip_1.flowEvmChainId]: contracts_1.flowEvmChain.id,
33
+ [caip_1.etherealChainId]: 5064014,
41
34
  [caip_1.celoChainId]: chains_1.celo.id,
35
+ [caip_1.flowEvmChainId]: chains_1.flowMainnet.id,
36
+ [caip_1.plumeChainId]: chains_1.plumeMainnet.id,
42
37
  [caip_1.storyChainId]: chains_1.story.id,
43
38
  [caip_1.zkSyncEraChainId]: chains_1.zksync.id,
44
39
  [caip_1.blastChainId]: chains_1.blast.id,
@@ -53,6 +48,8 @@ exports.chainIdToRelayChainId = {
53
48
  [caip_1.bobChainId]: chains_1.bob.id,
54
49
  [caip_1.modeChainId]: chains_1.mode.id,
55
50
  [caip_1.soneiumChainId]: chains_1.soneium.id,
51
+ [caip_1.seiChainId]: chains_1.sei.id,
52
+ [caip_1.abstractChainId]: 2741,
56
53
  };
57
54
  var RelayStatusMessage;
58
55
  (function (RelayStatusMessage) {
@@ -149,7 +149,7 @@ exports.relayApi = {
149
149
  }
150
150
  if (swap.metadata.relayTransactionMetadata &&
151
151
  !txIndexingMap.has(swap.id) &&
152
- (0, chain_adapters_1.isEvmChainId)(chainId)) {
152
+ constant_1.chainIdToRelayChainId[chainId] !== undefined) {
153
153
  const relayTxParam = {
154
154
  ...swap.metadata.relayTransactionMetadata,
155
155
  txHash,