genius-intents 0.1.4

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 (252) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/LICENSE +21 -0
  3. package/README.md +376 -0
  4. package/dist/src/index.d.ts +27 -0
  5. package/dist/src/index.d.ts.map +1 -0
  6. package/dist/src/index.js +62 -0
  7. package/dist/src/index.js.map +1 -0
  8. package/dist/src/intents-protocols.d.ts +69 -0
  9. package/dist/src/intents-protocols.d.ts.map +1 -0
  10. package/dist/src/intents-protocols.js +371 -0
  11. package/dist/src/intents-protocols.js.map +1 -0
  12. package/dist/src/interfaces/intent-protocol.d.ts +21 -0
  13. package/dist/src/interfaces/intent-protocol.d.ts.map +1 -0
  14. package/dist/src/interfaces/intent-protocol.js +3 -0
  15. package/dist/src/interfaces/intent-protocol.js.map +1 -0
  16. package/dist/src/protocols/aftermath/aftermath.service.d.ts +28 -0
  17. package/dist/src/protocols/aftermath/aftermath.service.d.ts.map +1 -0
  18. package/dist/src/protocols/aftermath/aftermath.service.js +162 -0
  19. package/dist/src/protocols/aftermath/aftermath.service.js.map +1 -0
  20. package/dist/src/protocols/aftermath/aftermath.types.d.ts +100 -0
  21. package/dist/src/protocols/aftermath/aftermath.types.d.ts.map +1 -0
  22. package/dist/src/protocols/aftermath/aftermath.types.js +3 -0
  23. package/dist/src/protocols/aftermath/aftermath.types.js.map +1 -0
  24. package/dist/src/protocols/aftermath/index.d.ts +3 -0
  25. package/dist/src/protocols/aftermath/index.d.ts.map +1 -0
  26. package/dist/src/protocols/aftermath/index.js +7 -0
  27. package/dist/src/protocols/aftermath/index.js.map +1 -0
  28. package/dist/src/protocols/debridge/debridge.service.d.ts +157 -0
  29. package/dist/src/protocols/debridge/debridge.service.d.ts.map +1 -0
  30. package/dist/src/protocols/debridge/debridge.service.js +462 -0
  31. package/dist/src/protocols/debridge/debridge.service.js.map +1 -0
  32. package/dist/src/protocols/debridge/debridge.types.d.ts +82 -0
  33. package/dist/src/protocols/debridge/debridge.types.d.ts.map +1 -0
  34. package/dist/src/protocols/debridge/debridge.types.js +3 -0
  35. package/dist/src/protocols/debridge/debridge.types.js.map +1 -0
  36. package/dist/src/protocols/debridge/index.d.ts +3 -0
  37. package/dist/src/protocols/debridge/index.d.ts.map +1 -0
  38. package/dist/src/protocols/debridge/index.js +7 -0
  39. package/dist/src/protocols/debridge/index.js.map +1 -0
  40. package/dist/src/protocols/genius-bridge/genius-bridge.service.d.ts +36 -0
  41. package/dist/src/protocols/genius-bridge/genius-bridge.service.d.ts.map +1 -0
  42. package/dist/src/protocols/genius-bridge/genius-bridge.service.js +312 -0
  43. package/dist/src/protocols/genius-bridge/genius-bridge.service.js.map +1 -0
  44. package/dist/src/protocols/genius-bridge/genius-bridge.types.d.ts +100 -0
  45. package/dist/src/protocols/genius-bridge/genius-bridge.types.d.ts.map +1 -0
  46. package/dist/src/protocols/genius-bridge/genius-bridge.types.js +3 -0
  47. package/dist/src/protocols/genius-bridge/genius-bridge.types.js.map +1 -0
  48. package/dist/src/protocols/genius-bridge/index.d.ts +3 -0
  49. package/dist/src/protocols/genius-bridge/index.d.ts.map +1 -0
  50. package/dist/src/protocols/genius-bridge/index.js +7 -0
  51. package/dist/src/protocols/genius-bridge/index.js.map +1 -0
  52. package/dist/src/protocols/jupiter/index.d.ts +3 -0
  53. package/dist/src/protocols/jupiter/index.d.ts.map +1 -0
  54. package/dist/src/protocols/jupiter/index.js +7 -0
  55. package/dist/src/protocols/jupiter/index.js.map +1 -0
  56. package/dist/src/protocols/jupiter/jupiter.service.d.ts +37 -0
  57. package/dist/src/protocols/jupiter/jupiter.service.d.ts.map +1 -0
  58. package/dist/src/protocols/jupiter/jupiter.service.js +188 -0
  59. package/dist/src/protocols/jupiter/jupiter.service.js.map +1 -0
  60. package/dist/src/protocols/jupiter/jupiter.types.d.ts +272 -0
  61. package/dist/src/protocols/jupiter/jupiter.types.d.ts.map +1 -0
  62. package/dist/src/protocols/jupiter/jupiter.types.js +3 -0
  63. package/dist/src/protocols/jupiter/jupiter.types.js.map +1 -0
  64. package/dist/src/protocols/kyberswap/index.d.ts +3 -0
  65. package/dist/src/protocols/kyberswap/index.d.ts.map +1 -0
  66. package/dist/src/protocols/kyberswap/index.js +7 -0
  67. package/dist/src/protocols/kyberswap/index.js.map +1 -0
  68. package/dist/src/protocols/kyberswap/kyberswap.service.d.ts +34 -0
  69. package/dist/src/protocols/kyberswap/kyberswap.service.d.ts.map +1 -0
  70. package/dist/src/protocols/kyberswap/kyberswap.service.js +218 -0
  71. package/dist/src/protocols/kyberswap/kyberswap.service.js.map +1 -0
  72. package/dist/src/protocols/kyberswap/kyberswap.types.d.ts +114 -0
  73. package/dist/src/protocols/kyberswap/kyberswap.types.d.ts.map +1 -0
  74. package/dist/src/protocols/kyberswap/kyberswap.types.js +3 -0
  75. package/dist/src/protocols/kyberswap/kyberswap.types.js.map +1 -0
  76. package/dist/src/protocols/odos/index.d.ts +3 -0
  77. package/dist/src/protocols/odos/index.d.ts.map +1 -0
  78. package/dist/src/protocols/odos/index.js +7 -0
  79. package/dist/src/protocols/odos/index.js.map +1 -0
  80. package/dist/src/protocols/odos/odos.service.d.ts +39 -0
  81. package/dist/src/protocols/odos/odos.service.d.ts.map +1 -0
  82. package/dist/src/protocols/odos/odos.service.js +207 -0
  83. package/dist/src/protocols/odos/odos.service.js.map +1 -0
  84. package/dist/src/protocols/odos/odos.types.d.ts +114 -0
  85. package/dist/src/protocols/odos/odos.types.d.ts.map +1 -0
  86. package/dist/src/protocols/odos/odos.types.js +3 -0
  87. package/dist/src/protocols/odos/odos.types.js.map +1 -0
  88. package/dist/src/protocols/okx/index.d.ts +3 -0
  89. package/dist/src/protocols/okx/index.d.ts.map +1 -0
  90. package/dist/src/protocols/okx/index.js +7 -0
  91. package/dist/src/protocols/okx/index.js.map +1 -0
  92. package/dist/src/protocols/okx/okx.service.d.ts +36 -0
  93. package/dist/src/protocols/okx/okx.service.d.ts.map +1 -0
  94. package/dist/src/protocols/okx/okx.service.js +281 -0
  95. package/dist/src/protocols/okx/okx.service.js.map +1 -0
  96. package/dist/src/protocols/okx/okx.types.d.ts +119 -0
  97. package/dist/src/protocols/okx/okx.types.d.ts.map +1 -0
  98. package/dist/src/protocols/okx/okx.types.js +4 -0
  99. package/dist/src/protocols/okx/okx.types.js.map +1 -0
  100. package/dist/src/protocols/okx-bridge/okx-bridge.service.d.ts +1 -0
  101. package/dist/src/protocols/okx-bridge/okx-bridge.service.d.ts.map +1 -0
  102. package/dist/src/protocols/okx-bridge/okx-bridge.service.js +2 -0
  103. package/dist/src/protocols/okx-bridge/okx-bridge.service.js.map +1 -0
  104. package/dist/src/protocols/okx-bridge/okx-bridge.types.d.ts +1 -0
  105. package/dist/src/protocols/okx-bridge/okx-bridge.types.d.ts.map +1 -0
  106. package/dist/src/protocols/okx-bridge/okx-bridge.types.js +2 -0
  107. package/dist/src/protocols/okx-bridge/okx-bridge.types.js.map +1 -0
  108. package/dist/src/protocols/openocean/index.d.ts +3 -0
  109. package/dist/src/protocols/openocean/index.d.ts.map +1 -0
  110. package/dist/src/protocols/openocean/index.js +7 -0
  111. package/dist/src/protocols/openocean/index.js.map +1 -0
  112. package/dist/src/protocols/openocean/openocean.service.d.ts +29 -0
  113. package/dist/src/protocols/openocean/openocean.service.d.ts.map +1 -0
  114. package/dist/src/protocols/openocean/openocean.service.js +181 -0
  115. package/dist/src/protocols/openocean/openocean.service.js.map +1 -0
  116. package/dist/src/protocols/openocean/openocean.types.d.ts +68 -0
  117. package/dist/src/protocols/openocean/openocean.types.d.ts.map +1 -0
  118. package/dist/src/protocols/openocean/openocean.types.js +3 -0
  119. package/dist/src/protocols/openocean/openocean.types.js.map +1 -0
  120. package/dist/src/protocols/pumpfun/index.d.ts +3 -0
  121. package/dist/src/protocols/pumpfun/index.d.ts.map +1 -0
  122. package/dist/src/protocols/pumpfun/index.js +7 -0
  123. package/dist/src/protocols/pumpfun/index.js.map +1 -0
  124. package/dist/src/protocols/pumpfun/pumpfun.service.d.ts +45 -0
  125. package/dist/src/protocols/pumpfun/pumpfun.service.d.ts.map +1 -0
  126. package/dist/src/protocols/pumpfun/pumpfun.service.js +217 -0
  127. package/dist/src/protocols/pumpfun/pumpfun.service.js.map +1 -0
  128. package/dist/src/protocols/pumpfun/pumpfun.types.d.ts +14 -0
  129. package/dist/src/protocols/pumpfun/pumpfun.types.d.ts.map +1 -0
  130. package/dist/src/protocols/pumpfun/pumpfun.types.js +3 -0
  131. package/dist/src/protocols/pumpfun/pumpfun.types.js.map +1 -0
  132. package/dist/src/protocols/raydium/index.d.ts +3 -0
  133. package/dist/src/protocols/raydium/index.d.ts.map +1 -0
  134. package/dist/src/protocols/raydium/index.js +7 -0
  135. package/dist/src/protocols/raydium/index.js.map +1 -0
  136. package/dist/src/protocols/raydium/raydium-v2.service.d.ts +35 -0
  137. package/dist/src/protocols/raydium/raydium-v2.service.d.ts.map +1 -0
  138. package/dist/src/protocols/raydium/raydium-v2.service.js +301 -0
  139. package/dist/src/protocols/raydium/raydium-v2.service.js.map +1 -0
  140. package/dist/src/protocols/raydium/raydium-v2.types.d.ts +96 -0
  141. package/dist/src/protocols/raydium/raydium-v2.types.d.ts.map +1 -0
  142. package/dist/src/protocols/raydium/raydium-v2.types.js +3 -0
  143. package/dist/src/protocols/raydium/raydium-v2.types.js.map +1 -0
  144. package/dist/src/protocols/zeroX/index.d.ts +3 -0
  145. package/dist/src/protocols/zeroX/index.d.ts.map +1 -0
  146. package/dist/src/protocols/zeroX/index.js +7 -0
  147. package/dist/src/protocols/zeroX/index.js.map +1 -0
  148. package/dist/src/protocols/zeroX/zeroX.service.d.ts +37 -0
  149. package/dist/src/protocols/zeroX/zeroX.service.d.ts.map +1 -0
  150. package/dist/src/protocols/zeroX/zeroX.service.js +209 -0
  151. package/dist/src/protocols/zeroX/zeroX.service.js.map +1 -0
  152. package/dist/src/protocols/zeroX/zeroX.types.d.ts +120 -0
  153. package/dist/src/protocols/zeroX/zeroX.types.d.ts.map +1 -0
  154. package/dist/src/protocols/zeroX/zeroX.types.js +3 -0
  155. package/dist/src/protocols/zeroX/zeroX.types.js.map +1 -0
  156. package/dist/src/types/enums.d.ts +42 -0
  157. package/dist/src/types/enums.d.ts.map +1 -0
  158. package/dist/src/types/enums.js +49 -0
  159. package/dist/src/types/enums.js.map +1 -0
  160. package/dist/src/types/intents-protocols.d.ts +89 -0
  161. package/dist/src/types/intents-protocols.d.ts.map +1 -0
  162. package/dist/src/types/intents-protocols.js +3 -0
  163. package/dist/src/types/intents-protocols.js.map +1 -0
  164. package/dist/src/types/price-response.d.ts +26 -0
  165. package/dist/src/types/price-response.d.ts.map +1 -0
  166. package/dist/src/types/price-response.js +3 -0
  167. package/dist/src/types/price-response.js.map +1 -0
  168. package/dist/src/types/quote-response.d.ts +31 -0
  169. package/dist/src/types/quote-response.d.ts.map +1 -0
  170. package/dist/src/types/quote-response.js +3 -0
  171. package/dist/src/types/quote-response.js.map +1 -0
  172. package/dist/src/utils/address-validation.d.ts +9 -0
  173. package/dist/src/utils/address-validation.d.ts.map +1 -0
  174. package/dist/src/utils/address-validation.js +42 -0
  175. package/dist/src/utils/address-validation.js.map +1 -0
  176. package/dist/src/utils/address.d.ts +9 -0
  177. package/dist/src/utils/address.d.ts.map +1 -0
  178. package/dist/src/utils/address.js +74 -0
  179. package/dist/src/utils/address.js.map +1 -0
  180. package/dist/src/utils/base64-to-base58.d.ts +2 -0
  181. package/dist/src/utils/base64-to-base58.d.ts.map +1 -0
  182. package/dist/src/utils/base64-to-base58.js +22 -0
  183. package/dist/src/utils/base64-to-base58.js.map +1 -0
  184. package/dist/src/utils/chain-id-name.d.ts +3 -0
  185. package/dist/src/utils/chain-id-name.d.ts.map +1 -0
  186. package/dist/src/utils/chain-id-name.js +23 -0
  187. package/dist/src/utils/chain-id-name.js.map +1 -0
  188. package/dist/src/utils/check-vm.d.ts +8 -0
  189. package/dist/src/utils/check-vm.d.ts.map +1 -0
  190. package/dist/src/utils/check-vm.js +39 -0
  191. package/dist/src/utils/check-vm.js.map +1 -0
  192. package/dist/src/utils/constants.d.ts +7 -0
  193. package/dist/src/utils/constants.d.ts.map +1 -0
  194. package/dist/src/utils/constants.js +10 -0
  195. package/dist/src/utils/constants.js.map +1 -0
  196. package/dist/src/utils/create-error-message.d.ts +5 -0
  197. package/dist/src/utils/create-error-message.d.ts.map +1 -0
  198. package/dist/src/utils/create-error-message.js +42 -0
  199. package/dist/src/utils/create-error-message.js.map +1 -0
  200. package/dist/src/utils/fetch-spl-metadata.d.ts +4 -0
  201. package/dist/src/utils/fetch-spl-metadata.d.ts.map +1 -0
  202. package/dist/src/utils/fetch-spl-metadata.js +108 -0
  203. package/dist/src/utils/fetch-spl-metadata.js.map +1 -0
  204. package/dist/src/utils/is-native.d.ts +2 -0
  205. package/dist/src/utils/is-native.d.ts.map +1 -0
  206. package/dist/src/utils/is-native.js +23 -0
  207. package/dist/src/utils/is-native.js.map +1 -0
  208. package/dist/src/utils/logger.d.ts +56 -0
  209. package/dist/src/utils/logger.d.ts.map +1 -0
  210. package/dist/src/utils/logger.js +108 -0
  211. package/dist/src/utils/logger.js.map +1 -0
  212. package/dist/src/utils/throw-error.d.ts +3 -0
  213. package/dist/src/utils/throw-error.d.ts.map +1 -0
  214. package/dist/src/utils/throw-error.js +8 -0
  215. package/dist/src/utils/throw-error.js.map +1 -0
  216. package/dist/tests/core/intent-protocol-suite.test.d.ts +2 -0
  217. package/dist/tests/core/intent-protocol-suite.test.d.ts.map +1 -0
  218. package/dist/tests/core/intent-protocol-suite.test.js +485 -0
  219. package/dist/tests/core/intent-protocol-suite.test.js.map +1 -0
  220. package/dist/tests/core/intents-protocols.test.d.ts +2 -0
  221. package/dist/tests/core/intents-protocols.test.d.ts.map +1 -0
  222. package/dist/tests/core/intents-protocols.test.js +307 -0
  223. package/dist/tests/core/intents-protocols.test.js.map +1 -0
  224. package/dist/tests/core/protocol-test-runner.d.ts +62 -0
  225. package/dist/tests/core/protocol-test-runner.d.ts.map +1 -0
  226. package/dist/tests/core/protocol-test-runner.js +260 -0
  227. package/dist/tests/core/protocol-test-runner.js.map +1 -0
  228. package/dist/tests/core/setup.test.d.ts +1 -0
  229. package/dist/tests/core/setup.test.d.ts.map +1 -0
  230. package/dist/tests/core/setup.test.js +13 -0
  231. package/dist/tests/core/setup.test.js.map +1 -0
  232. package/dist/tests/fixtures/test-data.d.ts +84 -0
  233. package/dist/tests/fixtures/test-data.d.ts.map +1 -0
  234. package/dist/tests/fixtures/test-data.js +142 -0
  235. package/dist/tests/fixtures/test-data.js.map +1 -0
  236. package/dist/tests/integration/cross-chain.test.d.ts +2 -0
  237. package/dist/tests/integration/cross-chain.test.d.ts.map +1 -0
  238. package/dist/tests/integration/cross-chain.test.js +44 -0
  239. package/dist/tests/integration/cross-chain.test.js.map +1 -0
  240. package/dist/tests/protocols/simple-protocol.test.d.ts +2 -0
  241. package/dist/tests/protocols/simple-protocol.test.d.ts.map +1 -0
  242. package/dist/tests/protocols/simple-protocol.test.js +77 -0
  243. package/dist/tests/protocols/simple-protocol.test.js.map +1 -0
  244. package/dist/tests/setup.d.ts +24 -0
  245. package/dist/tests/setup.d.ts.map +1 -0
  246. package/dist/tests/setup.js +48 -0
  247. package/dist/tests/setup.js.map +1 -0
  248. package/dist/tests/utils/test-generator.d.ts +30 -0
  249. package/dist/tests/utils/test-generator.d.ts.map +1 -0
  250. package/dist/tests/utils/test-generator.js +153 -0
  251. package/dist/tests/utils/test-generator.js.map +1 -0
  252. package/package.json +102 -0
@@ -0,0 +1,209 @@
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.ZeroXService = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const enums_1 = require("../../types/enums");
9
+ const address_1 = require("../../utils/address");
10
+ const logger_1 = require("../../utils/logger");
11
+ const constants_1 = require("../../utils/constants");
12
+ const is_native_1 = require("../../utils/is-native");
13
+ const throw_error_1 = require("../../utils/throw-error");
14
+ const create_error_message_1 = require("../../utils/create-error-message");
15
+ let logger;
16
+ class ZeroXService {
17
+ constructor(config) {
18
+ this.protocol = enums_1.ProtocolEnum.ZEROX;
19
+ this.chains = [
20
+ enums_1.ChainIdEnum.ETHEREUM,
21
+ enums_1.ChainIdEnum.ARBITRUM,
22
+ enums_1.ChainIdEnum.OPTIMISM,
23
+ enums_1.ChainIdEnum.POLYGON,
24
+ enums_1.ChainIdEnum.BSC,
25
+ enums_1.ChainIdEnum.AVALANCHE,
26
+ enums_1.ChainIdEnum.BASE,
27
+ ];
28
+ this.singleChain = true;
29
+ this.multiChain = false;
30
+ this.baseUrl = 'https://api.0x.org/swap/allowance-holder/quote';
31
+ if (config?.debug) {
32
+ logger_1.LoggerFactory.configure(logger_1.LoggerFactory.createConsoleLogger({ level: logger_1.LogLevelEnum.DEBUG }));
33
+ }
34
+ // Use custom logger if provided
35
+ else if (config?.logger) {
36
+ logger_1.LoggerFactory.configure(config.logger);
37
+ }
38
+ logger = logger_1.LoggerFactory.getLogger();
39
+ if (!config?.zeroXApiKey) {
40
+ logger.error('API key is required for 0x service');
41
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.MISSING_INITIALIZATION, 'API key is required for 0x service');
42
+ }
43
+ this.apiKey = config.zeroXApiKey;
44
+ this.baseUrl = config.zeroXBaseUrl || 'https://api.0x.org/swap/allowance-holder/quote';
45
+ }
46
+ isCorrectConfig(config) {
47
+ return typeof config['zeroXApiKey'] === 'string' && config['zeroXApiKey'].length > 0;
48
+ }
49
+ /**
50
+ * Unlike other DEX aggregators like KyberSwap, 0x doesn't have a separate price fetch endpoint.
51
+ * Instead, we'll use the quote endpoint to get price information as well.
52
+ */
53
+ async fetchPrice(params) {
54
+ this.validatePriceParams(params);
55
+ params.tokenIn = (0, is_native_1.isNative)(params.tokenIn) ? constants_1.NATIVE_ADDRESS : params.tokenIn;
56
+ logger.debug(`Fetching price from ${this.protocol}`, params);
57
+ // Since 0x doesn't have a separate price endpoint, we'll get a quote and then format it as a price response
58
+ try {
59
+ // Create a QuoteParams object from the PriceParams
60
+ const quoteParams = {
61
+ ...params,
62
+ from: params.from,
63
+ receiver: params.from, // Set receiver to sender for price check
64
+ };
65
+ // Fetch the quote which contains price information
66
+ const quoteResponse = await this.fetchQuote(quoteParams);
67
+ // Convert the quote response to a price response format
68
+ const zeroXPriceResponse = {
69
+ routeSummary: {
70
+ tokenIn: params.tokenIn,
71
+ amountIn: params.amountIn,
72
+ tokenOut: params.tokenOut,
73
+ amountOut: quoteResponse.amountOut,
74
+ gas: quoteResponse.estimatedGas || '0',
75
+ route: [], // 0x doesn't provide route information in the same format as other DEXes
76
+ },
77
+ routerAddress: quoteResponse.protocolResponse.rawResponse.transaction.to,
78
+ };
79
+ return {
80
+ protocol: this.protocol,
81
+ networkIn: params.networkIn,
82
+ networkOut: params.networkOut,
83
+ tokenIn: params.tokenIn,
84
+ tokenOut: params.tokenOut,
85
+ amountIn: params.amountIn,
86
+ amountOut: quoteResponse.amountOut,
87
+ estimatedGas: quoteResponse.estimatedGas,
88
+ protocolResponse: zeroXPriceResponse,
89
+ slippage: params.slippage,
90
+ };
91
+ }
92
+ catch (error) {
93
+ const { errorMessage, errorMessageError } = (0, create_error_message_1.createErrorMessage)(error);
94
+ logger.error(`Failed to fetch swap price from ${this.protocol}`, errorMessageError);
95
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.PRICE_NOT_FOUND, `Failed to fetch swap price from 0x: ${errorMessage}`);
96
+ }
97
+ }
98
+ async fetchQuote(params) {
99
+ logger.info(`Fetching swap quote for address: ${params.from}`);
100
+ params.tokenIn = (0, is_native_1.isNative)(params.tokenIn) ? constants_1.NATIVE_ADDRESS : params.tokenIn;
101
+ params.tokenOut = (0, is_native_1.isNative)(params.tokenOut) ? constants_1.NATIVE_ADDRESS : params.tokenOut;
102
+ this.validatePriceParams(params);
103
+ try {
104
+ const requestUrl = this.buildRequestUrl(params);
105
+ logger.debug(`Making request to 0x API: ${requestUrl}`);
106
+ const response = await axios_1.default.get(requestUrl, {
107
+ headers: {
108
+ // eslint-disable-next-line @typescript-eslint/naming-convention
109
+ 'Content-Type': 'application/json',
110
+ // eslint-disable-next-line @typescript-eslint/naming-convention
111
+ '0x-api-key': this.apiKey,
112
+ // eslint-disable-next-line @typescript-eslint/naming-convention
113
+ '0x-version': 'v2',
114
+ },
115
+ });
116
+ const zeroXQuoteResponse = response.data;
117
+ logger.debug('Successfully received quote info from 0x', {
118
+ buyAmount: zeroXQuoteResponse.buyAmount,
119
+ gasEstimate: zeroXQuoteResponse.transaction.gas,
120
+ });
121
+ if (!zeroXQuoteResponse.buyAmount) {
122
+ logger.error('No output amount received from 0x', undefined, { zeroXQuoteResponse });
123
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.QUOTE_NOT_FOUND, 'No output amount received from 0x');
124
+ }
125
+ const gasEstimate = zeroXQuoteResponse.transaction.gas;
126
+ const gasLimit = Math.floor(Number(gasEstimate) * 1.1).toString(); // 10% buffer
127
+ // Format the response to match our expected QuoteResponse structure
128
+ const formattedQuoteResponse = {
129
+ amountIn: zeroXQuoteResponse.sellAmount,
130
+ amountOut: zeroXQuoteResponse.buyAmount,
131
+ gas: zeroXQuoteResponse.transaction.gas,
132
+ data: zeroXQuoteResponse.transaction.data,
133
+ routerAddress: zeroXQuoteResponse.transaction.to,
134
+ rawResponse: zeroXQuoteResponse,
135
+ };
136
+ return {
137
+ protocol: this.protocol,
138
+ tokenIn: params.tokenIn,
139
+ tokenOut: params.tokenOut,
140
+ amountIn: params.amountIn,
141
+ amountOut: zeroXQuoteResponse.buyAmount,
142
+ from: params.from,
143
+ receiver: params.receiver || params.from,
144
+ executionPayload: {
145
+ transactionData: {
146
+ data: zeroXQuoteResponse.transaction.data,
147
+ to: zeroXQuoteResponse.transaction.to,
148
+ value: (0, is_native_1.isNative)(params.tokenIn) ? params.amountIn : '0',
149
+ gasEstimate,
150
+ gasLimit,
151
+ },
152
+ },
153
+ slippage: params.slippage,
154
+ networkIn: params.networkIn,
155
+ networkOut: params.networkOut,
156
+ estimatedGas: gasEstimate,
157
+ protocolResponse: formattedQuoteResponse,
158
+ };
159
+ }
160
+ catch (error) {
161
+ const { errorMessage, errorMessageError } = (0, create_error_message_1.createErrorMessage)(error);
162
+ logger.error(`Failed to fetch quote from ${this.protocol}`, errorMessageError);
163
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.QUOTE_NOT_FOUND, `Failed to fetch swap quote from 0x: ${errorMessage}`);
164
+ }
165
+ }
166
+ buildRequestUrl(params) {
167
+ const { tokenIn, tokenOut, amountIn, slippage, from, networkIn } = params;
168
+ const sellToken = tokenIn;
169
+ const buyToken = tokenOut;
170
+ // Create URL with query parameters
171
+ const url = new URL(this.baseUrl);
172
+ url.searchParams.append('chainId', networkIn.toString());
173
+ url.searchParams.append('sellToken', sellToken);
174
+ url.searchParams.append('buyToken', buyToken);
175
+ url.searchParams.append('sellAmount', amountIn);
176
+ url.searchParams.append('taker', (0, address_1.formatAddress)(from));
177
+ url.searchParams.append('excludedSources', 'Ox_RFQ'); // Common exclusion
178
+ url.searchParams.append('slippageBps', (slippage * 100).toString()); // Convert decimal to basis points
179
+ return url.toString();
180
+ }
181
+ validatePriceParams(params) {
182
+ const { networkIn, networkOut } = params;
183
+ logger.debug('Validating price params');
184
+ if (!this.multiChain && networkIn !== networkOut) {
185
+ logger.error('Multi-chain swaps not supported');
186
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, 'Multi-chain swaps not supported');
187
+ }
188
+ if (!this.singleChain && networkIn === networkOut) {
189
+ logger.error('Single-chain swaps not supported');
190
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, 'Single-chain swaps not supported');
191
+ }
192
+ if (!this.chains.includes(networkIn)) {
193
+ logger.error(`Network ${networkIn} not supported`);
194
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, `Network ${networkIn} not supported`);
195
+ }
196
+ if (!this.chains.includes(networkOut)) {
197
+ logger.error(`Network ${networkOut} not supported`);
198
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, `Network ${networkOut} not supported`);
199
+ }
200
+ }
201
+ isZeroXPriceResponse(response) {
202
+ return 'routeSummary' in response && 'routerAddress' in response;
203
+ }
204
+ isZeroXQuoteResponse(response) {
205
+ return 'amountIn' in response && 'amountOut' in response && 'routerAddress' in response;
206
+ }
207
+ }
208
+ exports.ZeroXService = ZeroXService;
209
+ //# sourceMappingURL=zeroX.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zeroX.service.js","sourceRoot":"","sources":["../../../../src/protocols/zeroX/zeroX.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ import { ChainIdEnum } from '../../types/enums';
2
+ export type ZeroXConfig = {
3
+ zeroXApiKey: string;
4
+ zeroXBaseUrl?: string;
5
+ };
6
+ export type ZeroXPriceRequestParams = {
7
+ chainId: string;
8
+ sellToken: string;
9
+ buyToken: string;
10
+ sellAmount: string;
11
+ taker: string;
12
+ excludedSources?: string;
13
+ slippageBps?: string;
14
+ };
15
+ export type ZeroXQuoteRequestParams = {
16
+ chainId: string;
17
+ sellToken: string;
18
+ buyToken: string;
19
+ sellAmount: string;
20
+ taker: string;
21
+ excludedSources?: string;
22
+ slippageBps?: string;
23
+ };
24
+ export type ZeroXFee = {
25
+ amount: string;
26
+ token: string;
27
+ type: string;
28
+ };
29
+ export type ZeroXFees = {
30
+ integratorFee: null | ZeroXFee;
31
+ zeroExFee: ZeroXFee;
32
+ gasFee: null | ZeroXFee;
33
+ };
34
+ export type ZeroXBalanceIssue = {
35
+ token: string;
36
+ actual: string;
37
+ expected: string;
38
+ };
39
+ export type ZeroXIssues = {
40
+ balance: ZeroXBalanceIssue | null;
41
+ simulationIncomplete: boolean;
42
+ };
43
+ export type ZeroXFill = {
44
+ from: string;
45
+ to: string;
46
+ source: string;
47
+ proportionBps: string;
48
+ };
49
+ export type ZeroXToken = {
50
+ address: string;
51
+ symbol: string;
52
+ };
53
+ export type ZeroXRoute = {
54
+ fills: ZeroXFill[];
55
+ tokens: ZeroXToken[];
56
+ };
57
+ export type ZeroXTokenTaxInfo = {
58
+ buyTaxBps: string;
59
+ sellTaxBps: string;
60
+ };
61
+ export type ZeroXTokenMetadata = {
62
+ buyToken: ZeroXTokenTaxInfo;
63
+ sellToken: ZeroXTokenTaxInfo;
64
+ };
65
+ export type ZeroXTransaction = {
66
+ to: string;
67
+ data: string;
68
+ gas: string;
69
+ gasPrice: string;
70
+ value: string;
71
+ };
72
+ export type ZeroXSwapQuoteResponse = {
73
+ blockNumber: string;
74
+ buyAmount: string;
75
+ buyToken: string;
76
+ fees: ZeroXFees;
77
+ issues: ZeroXIssues;
78
+ liquidityAvailable: boolean;
79
+ minBuyAmount: string;
80
+ route: ZeroXRoute;
81
+ sellAmount: string;
82
+ sellToken: string;
83
+ tokenMetadata: ZeroXTokenMetadata;
84
+ totalNetworkFee: string;
85
+ transaction: ZeroXTransaction;
86
+ zid: string;
87
+ };
88
+ export type ZeroXPriceResponse = {
89
+ routeSummary: {
90
+ tokenIn: string;
91
+ amountIn: string;
92
+ tokenOut: string;
93
+ amountOut: string;
94
+ gas: string;
95
+ route: string[][];
96
+ };
97
+ routerAddress: string;
98
+ };
99
+ export type ZeroXQuoteResponse = {
100
+ amountIn: string;
101
+ amountOut: string;
102
+ gas: string;
103
+ data: string;
104
+ routerAddress: string;
105
+ rawResponse: ZeroXSwapQuoteResponse;
106
+ };
107
+ export type ZeroXMultiPriceParams = {
108
+ network: ChainIdEnum;
109
+ from: string;
110
+ tokensIn: string[];
111
+ tokenOut: string;
112
+ amountsIn: string[];
113
+ slippage: string;
114
+ };
115
+ export type ZeroXMultiQuoteParams = {
116
+ network: ChainIdEnum;
117
+ fromAddress: string;
118
+ receiver?: string;
119
+ };
120
+ //# sourceMappingURL=zeroX.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zeroX.types.d.ts","sourceRoot":"","sources":["../../../../src/protocols/zeroX/zeroX.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAGF,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAGF,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAGF,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,aAAa,EAAE,IAAI,GAAG,QAAQ,CAAC;IAC/B,SAAS,EAAE,QAAQ,CAAC;IACpB,MAAM,EAAE,IAAI,GAAG,QAAQ,CAAC;CACzB,CAAC;AAGF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAClC,oBAAoB,EAAE,OAAO,CAAC;CAC/B,CAAC;AAGF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB,CAAC;AAGF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,SAAS,EAAE,iBAAiB,CAAC;CAC9B,CAAC;AAGF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAGF,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,UAAU,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,kBAAkB,CAAC;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAGF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,EAAE;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC;KACnB,CAAC;IACF,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,sBAAsB,CAAC;CACrC,CAAC;AAGF,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,WAAW,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=zeroX.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zeroX.types.js","sourceRoot":"","sources":["../../../../src/protocols/zeroX/zeroX.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,42 @@
1
+ export declare enum ProtocolEnum {
2
+ ODOS = "odos",
3
+ PUMPFUN = "pumpfun",
4
+ RAYDIUM_V2 = "raydium-v2",
5
+ JUPITER = "jupiter",
6
+ OPEN_OCEAN = "OpenOcean",
7
+ KYBERSWAP = "KyberSwap",
8
+ DEBRIDGE = "DeBridge",
9
+ AFTERMATH = "Aftermath",
10
+ OKX = "OKX",
11
+ ZEROX = "0x",
12
+ GENIUS_BRIDGE = "genius-bridge"
13
+ }
14
+ export declare enum ChainIdEnum {
15
+ SOLANA = 1399811149,
16
+ AVALANCHE = 43114,
17
+ SONIC = 146,
18
+ BSC = 56,
19
+ BASE = 8453,
20
+ SUI = 101,
21
+ ARBITRUM = 42161,
22
+ OPTIMISM = 10,
23
+ BLAST = 81457,
24
+ POLYGON = 137,
25
+ ETHEREUM = 1,
26
+ APTOS = 999
27
+ }
28
+ export declare enum ChainVmTypeEnum {
29
+ EVM = "evm",
30
+ SOLANA = "solana",
31
+ MOVE = "move"
32
+ }
33
+ export declare enum SdkErrorEnum {
34
+ FAILED_HTTP_REQUEST = "FAILED_HTTP_REQUEST",
35
+ MISSING_RPC_URL = "MISSING_RPC_URL",
36
+ INVALID_PARAMS = "INVALID_PARAMS",
37
+ PRICE_NOT_FOUND = "PRICE_NOT_FOUND",
38
+ QUOTE_NOT_FOUND = "QUOTE_NOT_FOUND",
39
+ MISSING_TRANSACTION_DATA = "MISSING_TRANSACTION_DATA",
40
+ MISSING_INITIALIZATION = "MISSING_INITIALIZATION_PARAMS"
41
+ }
42
+ //# sourceMappingURL=enums.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../../src/types/enums.ts"],"names":[],"mappings":"AAAA,oBAAY,YAAY;IACtB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,UAAU,cAAc;IACxB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,GAAG,QAAQ;IACX,KAAK,OAAO;IACZ,aAAa,kBAAkB;CAChC;AAED,oBAAY,WAAW;IACrB,MAAM,aAAa;IACnB,SAAS,QAAQ;IACjB,KAAK,MAAM;IACX,GAAG,KAAK;IACR,IAAI,OAAO;IACX,GAAG,MAAM;IACT,QAAQ,QAAQ;IAChB,QAAQ,KAAK;IACb,KAAK,QAAQ;IACb,OAAO,MAAM;IACb,QAAQ,IAAI;IACZ,KAAK,MAAM;CACZ;AAED,oBAAY,eAAe;IACzB,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,IAAI,SAAS;CACd;AAED,oBAAY,YAAY;IACtB,mBAAmB,wBAAwB;IAC3C,eAAe,oBAAoB;IACnC,cAAc,mBAAmB;IACjC,eAAe,oBAAoB;IACnC,eAAe,oBAAoB;IACnC,wBAAwB,6BAA6B;IACrD,sBAAsB,kCAAkC;CACzD"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SdkErrorEnum = exports.ChainVmTypeEnum = exports.ChainIdEnum = exports.ProtocolEnum = void 0;
4
+ var ProtocolEnum;
5
+ (function (ProtocolEnum) {
6
+ ProtocolEnum["ODOS"] = "odos";
7
+ ProtocolEnum["PUMPFUN"] = "pumpfun";
8
+ ProtocolEnum["RAYDIUM_V2"] = "raydium-v2";
9
+ ProtocolEnum["JUPITER"] = "jupiter";
10
+ ProtocolEnum["OPEN_OCEAN"] = "OpenOcean";
11
+ ProtocolEnum["KYBERSWAP"] = "KyberSwap";
12
+ ProtocolEnum["DEBRIDGE"] = "DeBridge";
13
+ ProtocolEnum["AFTERMATH"] = "Aftermath";
14
+ ProtocolEnum["OKX"] = "OKX";
15
+ ProtocolEnum["ZEROX"] = "0x";
16
+ ProtocolEnum["GENIUS_BRIDGE"] = "genius-bridge";
17
+ })(ProtocolEnum || (exports.ProtocolEnum = ProtocolEnum = {}));
18
+ var ChainIdEnum;
19
+ (function (ChainIdEnum) {
20
+ ChainIdEnum[ChainIdEnum["SOLANA"] = 1399811149] = "SOLANA";
21
+ ChainIdEnum[ChainIdEnum["AVALANCHE"] = 43114] = "AVALANCHE";
22
+ ChainIdEnum[ChainIdEnum["SONIC"] = 146] = "SONIC";
23
+ ChainIdEnum[ChainIdEnum["BSC"] = 56] = "BSC";
24
+ ChainIdEnum[ChainIdEnum["BASE"] = 8453] = "BASE";
25
+ ChainIdEnum[ChainIdEnum["SUI"] = 101] = "SUI";
26
+ ChainIdEnum[ChainIdEnum["ARBITRUM"] = 42161] = "ARBITRUM";
27
+ ChainIdEnum[ChainIdEnum["OPTIMISM"] = 10] = "OPTIMISM";
28
+ ChainIdEnum[ChainIdEnum["BLAST"] = 81457] = "BLAST";
29
+ ChainIdEnum[ChainIdEnum["POLYGON"] = 137] = "POLYGON";
30
+ ChainIdEnum[ChainIdEnum["ETHEREUM"] = 1] = "ETHEREUM";
31
+ ChainIdEnum[ChainIdEnum["APTOS"] = 999] = "APTOS";
32
+ })(ChainIdEnum || (exports.ChainIdEnum = ChainIdEnum = {}));
33
+ var ChainVmTypeEnum;
34
+ (function (ChainVmTypeEnum) {
35
+ ChainVmTypeEnum["EVM"] = "evm";
36
+ ChainVmTypeEnum["SOLANA"] = "solana";
37
+ ChainVmTypeEnum["MOVE"] = "move";
38
+ })(ChainVmTypeEnum || (exports.ChainVmTypeEnum = ChainVmTypeEnum = {}));
39
+ var SdkErrorEnum;
40
+ (function (SdkErrorEnum) {
41
+ SdkErrorEnum["FAILED_HTTP_REQUEST"] = "FAILED_HTTP_REQUEST";
42
+ SdkErrorEnum["MISSING_RPC_URL"] = "MISSING_RPC_URL";
43
+ SdkErrorEnum["INVALID_PARAMS"] = "INVALID_PARAMS";
44
+ SdkErrorEnum["PRICE_NOT_FOUND"] = "PRICE_NOT_FOUND";
45
+ SdkErrorEnum["QUOTE_NOT_FOUND"] = "QUOTE_NOT_FOUND";
46
+ SdkErrorEnum["MISSING_TRANSACTION_DATA"] = "MISSING_TRANSACTION_DATA";
47
+ SdkErrorEnum["MISSING_INITIALIZATION"] = "MISSING_INITIALIZATION_PARAMS";
48
+ })(SdkErrorEnum || (exports.SdkErrorEnum = SdkErrorEnum = {}));
49
+ //# sourceMappingURL=enums.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../src/types/enums.ts"],"names":[],"mappings":";;;AAAA,IAAY,YAYX;AAZD,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,mCAAmB,CAAA;IACnB,yCAAyB,CAAA;IACzB,mCAAmB,CAAA;IACnB,wCAAwB,CAAA;IACxB,uCAAuB,CAAA;IACvB,qCAAqB,CAAA;IACrB,uCAAuB,CAAA;IACvB,2BAAW,CAAA;IACX,4BAAY,CAAA;IACZ,+CAA+B,CAAA;AACjC,CAAC,EAZW,YAAY,4BAAZ,YAAY,QAYvB;AAED,IAAY,WAaX;AAbD,WAAY,WAAW;IACrB,0DAAmB,CAAA;IACnB,2DAAiB,CAAA;IACjB,iDAAW,CAAA;IACX,4CAAQ,CAAA;IACR,gDAAW,CAAA;IACX,6CAAS,CAAA;IACT,yDAAgB,CAAA;IAChB,sDAAa,CAAA;IACb,mDAAa,CAAA;IACb,qDAAa,CAAA;IACb,qDAAY,CAAA;IACZ,iDAAW,CAAA;AACb,CAAC,EAbW,WAAW,2BAAX,WAAW,QAatB;AAED,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,8BAAW,CAAA;IACX,oCAAiB,CAAA;IACjB,gCAAa,CAAA;AACf,CAAC,EAJW,eAAe,+BAAf,eAAe,QAI1B;AAED,IAAY,YAQX;AARD,WAAY,YAAY;IACtB,2DAA2C,CAAA;IAC3C,mDAAmC,CAAA;IACnC,iDAAiC,CAAA;IACjC,mDAAmC,CAAA;IACnC,mDAAmC,CAAA;IACnC,qEAAqD,CAAA;IACrD,wEAAwD,CAAA;AAC1D,CAAC,EARW,YAAY,4BAAZ,YAAY,QAQvB"}
@@ -0,0 +1,89 @@
1
+ import { PriceResponse } from './price-response';
2
+ import { QuoteResponse } from './quote-response';
3
+ import { ProtocolEnum } from './enums';
4
+ import { IntentsSDKConfig } from './sdk-config';
5
+ import { OKXConfig } from '../protocols/okx/okx.types';
6
+ import { JupiterConfig } from '../protocols/jupiter/jupiter.types';
7
+ import { RaydiumSdkConfig } from '../protocols/raydium/raydium-v2.types';
8
+ import { DeBridgeConfig } from '../protocols/debridge/debridge.types';
9
+ import { GeniusBridgeConfig } from '../protocols/genius-bridge/genius-bridge.types';
10
+ import { KyberswapConfig } from '../protocols/kyberswap/kyberswap.types';
11
+ import { OpenOceanConfig } from '../protocols/openocean/openocean.types';
12
+ import { AftermathConfig } from '../protocols/aftermath/aftermath.types';
13
+ import { ZeroXConfig } from '../protocols/zeroX/zeroX.types';
14
+ import { PumpFunConfig } from '../protocols/pumpfun/pumpfun.types';
15
+ /**
16
+ * Configuration interface for IntentsProtocols class
17
+ */
18
+ export type IntentsProtocolsConfig = OptionalIntentsProtocolsConfig & IntentsSDKConfig & {
19
+ /**
20
+ * Execution method for price and quote operations
21
+ * - 'race': Return the fastest response using Promise.race()
22
+ * - 'best': Wait for all responses and return the best one (highest output amount for price, best execution for quote)
23
+ */
24
+ method?: 'race' | 'best';
25
+ /**
26
+ * Timeout in milliseconds for individual protocol requests
27
+ */
28
+ timeout?: number;
29
+ /**
30
+ * Maximum number of concurrent protocol requests
31
+ */
32
+ maxConcurrency?: number;
33
+ /**
34
+ * Specific protocols to include (if not specified, all compatible protocols will be used)
35
+ */
36
+ includeProtocols?: ProtocolEnum[];
37
+ /**
38
+ * Specific protocols to exclude
39
+ */
40
+ excludeProtocols?: ProtocolEnum[];
41
+ };
42
+ export type OptionalIntentsProtocolsConfig = Partial<OKXConfig & JupiterConfig & RaydiumSdkConfig & DeBridgeConfig & GeniusBridgeConfig & KyberswapConfig & OpenOceanConfig & AftermathConfig & ZeroXConfig & PumpFunConfig>;
43
+ /**
44
+ * Result interface for individual price requests
45
+ */
46
+ export type IntentPriceResult = {
47
+ protocol: ProtocolEnum;
48
+ response?: PriceResponse;
49
+ error?: Error;
50
+ duration: number;
51
+ };
52
+ /**
53
+ * Result interface for individual quote requests
54
+ */
55
+ export type IntentQuoteResult = {
56
+ protocol: ProtocolEnum;
57
+ response?: QuoteResponse;
58
+ error?: Error;
59
+ duration: number;
60
+ };
61
+ /**
62
+ * Combined results interface for IntentsProtocols operations
63
+ */
64
+ export type IntentsProtocolsResults<T> = {
65
+ /**
66
+ * The selected best result (for 'best' method) or fastest result (for 'race' method)
67
+ */
68
+ result?: T;
69
+ /**
70
+ * All results from individual protocols
71
+ */
72
+ allResults: Array<IntentPriceResult | IntentQuoteResult>;
73
+ /**
74
+ * Execution method used
75
+ */
76
+ method: 'race' | 'best';
77
+ /**
78
+ * Total execution time
79
+ */
80
+ totalDuration: number;
81
+ };
82
+ /**
83
+ * Race execution result interface
84
+ */
85
+ export type IntentRaceExecutionResult<T extends IntentPriceResult | IntentQuoteResult> = {
86
+ winner?: T;
87
+ allResults: T[];
88
+ };
89
+ //# sourceMappingURL=intents-protocols.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intents-protocols.d.ts","sourceRoot":"","sources":["../../../src/types/intents-protocols.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAEnE;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,8BAA8B,GACjE,gBAAgB,GAAG;IACjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEzB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,gBAAgB,CAAC,EAAE,YAAY,EAAE,CAAC;IAElC;;OAEG;IACH,gBAAgB,CAAC,EAAE,YAAY,EAAE,CAAC;CACnC,CAAC;AAEJ,MAAM,MAAM,8BAA8B,GAAG,OAAO,CAClD,SAAS,GACP,aAAa,GACb,gBAAgB,GAChB,cAAc,GACd,kBAAkB,GAClB,eAAe,GACf,eAAe,GACf,eAAe,GACf,WAAW,GACX,aAAa,CAChB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI;IACvC;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC;IAEX;;OAEG;IACH,UAAU,EAAE,KAAK,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,CAAC;IAEzD;;OAEG;IACH,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAExB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,yBAAyB,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,IAAI;IACvF,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,UAAU,EAAE,CAAC,EAAE,CAAC;CACjB,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=intents-protocols.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intents-protocols.js","sourceRoot":"","sources":["../../../src/types/intents-protocols.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ import { OdosPriceResponse } from '../protocols/odos/odos.types';
2
+ import { PumpFunPriceResponse } from '../protocols/pumpfun/pumpfun.types';
3
+ import { RaydiumV2PriceResponse } from '../protocols/raydium/raydium-v2.types';
4
+ import { JupiterPriceResponse } from '../protocols/jupiter/jupiter.types';
5
+ import { ProtocolEnum } from './enums';
6
+ import { OkxPriceResponse } from '../protocols/okx/okx.types';
7
+ import { AftermathPriceResponse } from '../protocols/aftermath/aftermath.types';
8
+ import { OpenOceanPriceResponse } from '../protocols/openocean/openocean.types';
9
+ import { ZeroXPriceResponse } from '../protocols/zeroX/zeroX.types';
10
+ import { GeniusBridgePriceResponse } from '../protocols/genius-bridge/genius-bridge.types';
11
+ import { DeBridgeQuoteResponse } from '../protocols/debridge/debridge.types';
12
+ export type RawProtocolPriceResponse = OdosPriceResponse | RaydiumV2PriceResponse | PumpFunPriceResponse | JupiterPriceResponse | OkxPriceResponse | AftermathPriceResponse | OpenOceanPriceResponse | ZeroXPriceResponse | GeniusBridgePriceResponse | DeBridgeQuoteResponse;
13
+ export type PriceResponse = {
14
+ protocol: ProtocolEnum;
15
+ networkIn: number;
16
+ networkOut: number;
17
+ tokenIn: string;
18
+ tokenOut: string;
19
+ amountIn: string;
20
+ amountOut: string;
21
+ estimatedGas?: string;
22
+ protocolResponse: RawProtocolPriceResponse;
23
+ slippage: number;
24
+ priceImpact?: number;
25
+ };
26
+ //# sourceMappingURL=price-response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"price-response.d.ts","sourceRoot":"","sources":["../../../src/types/price-response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAC3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,MAAM,MAAM,wBAAwB,GAChC,iBAAiB,GACjB,sBAAsB,GACtB,oBAAoB,GACpB,oBAAoB,GACpB,gBAAgB,GAChB,sBAAsB,GACtB,sBAAsB,GACtB,kBAAkB,GAClB,yBAAyB,GAEzB,qBAAqB,CAAC;AAE1B,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,wBAAwB,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=price-response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"price-response.js","sourceRoot":"","sources":["../../../src/types/price-response.ts"],"names":[],"mappings":""}
@@ -0,0 +1,31 @@
1
+ import { OdosQuoteResponse } from '../protocols/odos/odos.types';
2
+ import { PumpFunQuoteResponse } from '../protocols/pumpfun/pumpfun.types';
3
+ import { RaydiumV2QuoteResponse } from '../protocols/raydium/raydium-v2.types';
4
+ import { JupiterQuoteResponses } from '../protocols/jupiter/jupiter.types';
5
+ import { ProtocolEnum } from './enums';
6
+ import { QuoteExecutionPayload } from './quote-execution-payload';
7
+ import { OkxQuoteResponse } from '../protocols/okx/okx.types';
8
+ import { AftermathQuoteResponse } from '../protocols/aftermath/aftermath.types';
9
+ import { OpenOceanQuoteResponse } from '../protocols/openocean/openocean.types';
10
+ import { KyberswapQuoteResponse } from '../protocols/kyberswap/kyberswap.types';
11
+ import { ZeroXQuoteResponse } from '../protocols/zeroX/zeroX.types';
12
+ import { GeniusBridgeQuoteResponse } from '../protocols/genius-bridge/genius-bridge.types';
13
+ import { DeBridgeQuoteResponse } from '../protocols/debridge/debridge.types';
14
+ export type QuoteResponse = {
15
+ protocol: ProtocolEnum;
16
+ networkIn: number;
17
+ networkOut: number;
18
+ tokenIn: string;
19
+ tokenOut: string;
20
+ amountIn: string;
21
+ amountOut: string;
22
+ estimatedGas?: string;
23
+ slippage: number;
24
+ priceImpact?: number;
25
+ from: string;
26
+ receiver: string;
27
+ executionPayload: QuoteExecutionPayload;
28
+ protocolResponse: RawProtocolQuoteResponse;
29
+ };
30
+ export type RawProtocolQuoteResponse = OdosQuoteResponse | RaydiumV2QuoteResponse | PumpFunQuoteResponse | JupiterQuoteResponses | OkxQuoteResponse | AftermathQuoteResponse | OpenOceanQuoteResponse | KyberswapQuoteResponse | ZeroXQuoteResponse | GeniusBridgeQuoteResponse | DeBridgeQuoteResponse;
31
+ //# sourceMappingURL=quote-response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quote-response.d.ts","sourceRoot":"","sources":["../../../src/types/quote-response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAC3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,gBAAgB,EAAE,wBAAwB,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAChC,iBAAiB,GACjB,sBAAsB,GACtB,oBAAoB,GACpB,qBAAqB,GACrB,gBAAgB,GAChB,sBAAsB,GACtB,sBAAsB,GACtB,sBAAsB,GACtB,kBAAkB,GAClB,yBAAyB,GACzB,qBAAqB,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=quote-response.js.map