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,371 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IntentsProtocols = void 0;
4
+ const enums_1 = require("./types/enums");
5
+ const logger_1 = require("./utils/logger");
6
+ const throw_error_1 = require("./utils/throw-error");
7
+ // Import all available protocol services
8
+ const odos_service_1 = require("./protocols/odos/odos.service");
9
+ const pumpfun_service_1 = require("./protocols/pumpfun/pumpfun.service");
10
+ const raydium_v2_service_1 = require("./protocols/raydium/raydium-v2.service");
11
+ const jupiter_service_1 = require("./protocols/jupiter/jupiter.service");
12
+ const openocean_service_1 = require("./protocols/openocean/openocean.service");
13
+ const okx_service_1 = require("./protocols/okx/okx.service");
14
+ const kyberswap_service_1 = require("./protocols/kyberswap/kyberswap.service");
15
+ const aftermath_service_1 = require("./protocols/aftermath/aftermath.service");
16
+ const zeroX_service_1 = require("./protocols/zeroX/zeroX.service");
17
+ const debridge_service_1 = require("./protocols/debridge/debridge.service");
18
+ const genius_bridge_service_1 = require("./protocols/genius-bridge/genius-bridge.service");
19
+ let logger;
20
+ class IntentsProtocols {
21
+ constructor(config = {}) {
22
+ this.protocols = new Map();
23
+ // Configure logging
24
+ if (config.debug) {
25
+ logger_1.LoggerFactory.configure(logger_1.LoggerFactory.createConsoleLogger({ level: logger_1.LogLevelEnum.DEBUG }));
26
+ }
27
+ else if (config.logger) {
28
+ logger_1.LoggerFactory.configure(config.logger);
29
+ }
30
+ logger = logger_1.LoggerFactory.getLogger();
31
+ // Set default configuration
32
+ this.config = {
33
+ method: 'best',
34
+ timeout: 30000, // 30 seconds
35
+ maxConcurrency: 10,
36
+ ...config,
37
+ };
38
+ this.initializeProtocols();
39
+ }
40
+ /**
41
+ * Initialize all available protocol instances
42
+ */
43
+ initializeProtocols() {
44
+ const protocolFactories = [
45
+ {
46
+ protocol: enums_1.ProtocolEnum.ODOS,
47
+ factory: () => this.createProtocolSafely(() => new odos_service_1.OdosService(this.config), 'ODOS'),
48
+ },
49
+ {
50
+ protocol: enums_1.ProtocolEnum.JUPITER,
51
+ factory: () => this.createProtocolSafely(() => new jupiter_service_1.JupiterService(this.config), 'JUPITER'),
52
+ },
53
+ {
54
+ protocol: enums_1.ProtocolEnum.RAYDIUM_V2,
55
+ factory: () => this.createProtocolSafely(() => {
56
+ return new raydium_v2_service_1.RaydiumV2Service(this.config);
57
+ }, 'RAYDIUM_V2'),
58
+ },
59
+ {
60
+ protocol: enums_1.ProtocolEnum.PUMPFUN,
61
+ factory: () => this.createProtocolSafely(() => {
62
+ return new pumpfun_service_1.PumpFunService(this.config);
63
+ }, 'PUMPFUN'),
64
+ },
65
+ {
66
+ protocol: enums_1.ProtocolEnum.OPEN_OCEAN,
67
+ factory: () => this.createProtocolSafely(() => {
68
+ return new openocean_service_1.OpenOceanService(this.config);
69
+ }, 'OPEN_OCEAN'),
70
+ },
71
+ {
72
+ protocol: enums_1.ProtocolEnum.OKX,
73
+ factory: () => this.createProtocolSafely(() => {
74
+ return new okx_service_1.OkxService(this.config);
75
+ }, 'OKX'),
76
+ },
77
+ {
78
+ protocol: enums_1.ProtocolEnum.KYBERSWAP,
79
+ factory: () => this.createProtocolSafely(() => {
80
+ return new kyberswap_service_1.KyberswapService(this.config);
81
+ }, 'KYBERSWAP'),
82
+ },
83
+ {
84
+ protocol: enums_1.ProtocolEnum.AFTERMATH,
85
+ factory: () => this.createProtocolSafely(() => {
86
+ return new aftermath_service_1.AftermathService(this.config);
87
+ }, 'AFTERMATH'),
88
+ },
89
+ {
90
+ protocol: enums_1.ProtocolEnum.ZEROX,
91
+ factory: () => this.createProtocolSafely(() => {
92
+ return new zeroX_service_1.ZeroXService(this.config);
93
+ }, 'ZEROX'),
94
+ },
95
+ {
96
+ protocol: enums_1.ProtocolEnum.DEBRIDGE,
97
+ factory: () => this.createProtocolSafely(() => new debridge_service_1.DeBridgeService(this.config), 'DEBRIDGE'),
98
+ },
99
+ {
100
+ protocol: enums_1.ProtocolEnum.GENIUS_BRIDGE,
101
+ factory: () => this.createProtocolSafely(() => new genius_bridge_service_1.GeniusBridgeService(this.config), 'GENIUS_BRIDGE'),
102
+ },
103
+ ];
104
+ // Initialize protocols based on configuration
105
+ for (const { protocol, factory } of protocolFactories) {
106
+ // Skip if specifically excluded
107
+ if (this.config.excludeProtocols?.includes(protocol)) {
108
+ continue;
109
+ }
110
+ // Skip if includeProtocols is specified and this protocol is not included
111
+ if (this.config.includeProtocols && !this.config.includeProtocols.includes(protocol)) {
112
+ continue;
113
+ }
114
+ const protocolInstance = factory();
115
+ if (protocolInstance) {
116
+ this.protocols.set(protocol, protocolInstance);
117
+ logger.debug(`Initialized protocol: ${protocol}`);
118
+ }
119
+ }
120
+ logger.info(`Initialized ${this.protocols.size} protocols`);
121
+ }
122
+ /**
123
+ * Safely create a protocol instance, handling potential errors
124
+ */
125
+ createProtocolSafely(factory, protocolName) {
126
+ try {
127
+ // First check if the config is valid for this protocol by creating a temporary instance
128
+ const tempInstance = factory();
129
+ // Check if the config is correct for this protocol
130
+ if (!tempInstance.isCorrectConfig(this.config)) {
131
+ logger.debug(`Skipping protocol ${protocolName} due to invalid config`);
132
+ return null;
133
+ }
134
+ return tempInstance;
135
+ }
136
+ catch (error) {
137
+ logger.warn(`Failed to initialize protocol ${protocolName}`, {
138
+ error: error instanceof Error ? error.message : 'Unknown error',
139
+ });
140
+ return null;
141
+ }
142
+ }
143
+ /**
144
+ * Get compatible protocols for the given parameters
145
+ */
146
+ getCompatibleProtocols(params) {
147
+ const compatibleProtocols = [];
148
+ for (const protocol of this.protocols.values()) {
149
+ // Check if protocol supports the required chains
150
+ const isSameChain = params.networkIn === params.networkOut;
151
+ const supportsNetworkIn = protocol.chains.includes(params.networkIn);
152
+ const supportsNetworkOut = protocol.chains.includes(params.networkOut);
153
+ if (isSameChain) {
154
+ // Same-chain swap: protocol must support single-chain operations and the chain
155
+ if (protocol.singleChain && supportsNetworkIn) {
156
+ compatibleProtocols.push(protocol);
157
+ }
158
+ }
159
+ else {
160
+ // Cross-chain swap: protocol must support multi-chain operations and both chains
161
+ if (protocol.multiChain && supportsNetworkIn && supportsNetworkOut) {
162
+ compatibleProtocols.push(protocol);
163
+ }
164
+ }
165
+ }
166
+ return compatibleProtocols;
167
+ }
168
+ /**
169
+ * Execute price requests across compatible protocols
170
+ */
171
+ async fetchPrice(params) {
172
+ const startTime = Date.now();
173
+ const compatibleProtocols = this.getCompatibleProtocols(params);
174
+ if (compatibleProtocols.length === 0) {
175
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, `No compatible protocols found for swap from chain ${params.networkIn} to chain ${params.networkOut}`);
176
+ }
177
+ logger.info(`Found ${compatibleProtocols.length} compatible protocols for price request`);
178
+ const promises = compatibleProtocols.map(protocol => this.executePriceRequest(protocol, params));
179
+ let allResults;
180
+ let result;
181
+ if (this.config.method === 'race') {
182
+ // Race mode: return the first successful response
183
+ const raceResult = await this.executeRace(promises);
184
+ allResults = raceResult.allResults;
185
+ result = raceResult.winner?.response;
186
+ }
187
+ else {
188
+ // Best mode: wait for all responses and select the best one
189
+ allResults = await this.executeAll(promises);
190
+ result = this.selectBestPriceResponse(allResults);
191
+ }
192
+ return {
193
+ result,
194
+ allResults,
195
+ method: this.config.method,
196
+ totalDuration: Date.now() - startTime,
197
+ };
198
+ }
199
+ /**
200
+ * Execute quote requests across compatible protocols
201
+ */
202
+ async fetchQuote(params) {
203
+ const startTime = Date.now();
204
+ const compatibleProtocols = this.getCompatibleProtocols(params);
205
+ if (compatibleProtocols.length === 0) {
206
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, `No compatible protocols found for quote from chain ${params.networkIn} to chain ${params.networkOut}`);
207
+ }
208
+ logger.info(`Found ${compatibleProtocols.length} compatible protocols for quote request`);
209
+ const promises = compatibleProtocols.map(protocol => this.executeQuoteRequest(protocol, params));
210
+ let allResults;
211
+ let result;
212
+ if (this.config.method === 'race') {
213
+ // Race mode: return the first successful response
214
+ const raceResult = await this.executeRace(promises);
215
+ allResults = raceResult.allResults;
216
+ result = raceResult.winner?.response;
217
+ }
218
+ else {
219
+ // Best mode: wait for all responses and select the best one
220
+ allResults = await this.executeAll(promises);
221
+ result = this.selectBestQuoteResponse(allResults);
222
+ }
223
+ return {
224
+ result,
225
+ allResults,
226
+ method: this.config.method,
227
+ totalDuration: Date.now() - startTime,
228
+ };
229
+ }
230
+ /**
231
+ * Execute a single price request with timeout and error handling
232
+ */
233
+ async executePriceRequest(protocol, params) {
234
+ const startTime = Date.now();
235
+ try {
236
+ const timeoutPromise = new Promise((_, reject) => {
237
+ setTimeout(() => reject(new Error('Request timeout')), this.config.timeout);
238
+ });
239
+ const response = await Promise.race([protocol.fetchPrice(params), timeoutPromise]);
240
+ return {
241
+ protocol: protocol.protocol,
242
+ response,
243
+ duration: Date.now() - startTime,
244
+ };
245
+ }
246
+ catch (error) {
247
+ return {
248
+ protocol: protocol.protocol,
249
+ error: error instanceof Error ? error : new Error('Unknown error'),
250
+ duration: Date.now() - startTime,
251
+ };
252
+ }
253
+ }
254
+ /**
255
+ * Execute a single quote request with timeout and error handling
256
+ */
257
+ async executeQuoteRequest(protocol, params) {
258
+ const startTime = Date.now();
259
+ try {
260
+ const timeoutPromise = new Promise((_, reject) => {
261
+ setTimeout(() => reject(new Error('Request timeout')), this.config.timeout);
262
+ });
263
+ const response = await Promise.race([protocol.fetchQuote(params), timeoutPromise]);
264
+ return {
265
+ protocol: protocol.protocol,
266
+ response,
267
+ duration: Date.now() - startTime,
268
+ };
269
+ }
270
+ catch (error) {
271
+ return {
272
+ protocol: protocol.protocol,
273
+ error: error instanceof Error ? error : new Error('Unknown error'),
274
+ duration: Date.now() - startTime,
275
+ };
276
+ }
277
+ }
278
+ /**
279
+ * Execute all promises and wait for completion
280
+ */
281
+ async executeAll(promises) {
282
+ return Promise.allSettled(promises).then(results => results.map(result => (result.status === 'fulfilled' ? result.value : result.reason)));
283
+ }
284
+ /**
285
+ * Execute promises in race mode, but also collect all results
286
+ */
287
+ async executeRace(promises) {
288
+ return new Promise(resolve => {
289
+ const results = [];
290
+ let completed = 0;
291
+ let winner;
292
+ promises.forEach(async (promise) => {
293
+ try {
294
+ const result = await promise;
295
+ results.push(result);
296
+ // If this is the first successful result and we don't have a winner yet
297
+ if (!winner && !result.error) {
298
+ winner = result;
299
+ }
300
+ }
301
+ catch (error) {
302
+ results.push({
303
+ protocol: enums_1.ProtocolEnum.JUPITER, // This will be overridden by actual protocol
304
+ error: error instanceof Error ? error : new Error('Unknown error'),
305
+ duration: 0,
306
+ });
307
+ }
308
+ completed++;
309
+ // If we have a winner or all promises are completed
310
+ if (winner || completed === promises.length) {
311
+ resolve({ winner, allResults: results });
312
+ }
313
+ });
314
+ });
315
+ }
316
+ /**
317
+ * Select the best price response based on output amount
318
+ */
319
+ selectBestPriceResponse(results) {
320
+ const successfulResults = results.filter(r => r.response && !r.error);
321
+ if (successfulResults.length === 0) {
322
+ return undefined;
323
+ }
324
+ // Find the result with the highest output amount
325
+ return successfulResults.reduce((best, current) => {
326
+ const bestAmount = BigInt(best.response.amountOut);
327
+ const currentAmount = BigInt(current.response.amountOut);
328
+ return currentAmount > bestAmount ? current : best;
329
+ }).response;
330
+ }
331
+ /**
332
+ * Select the best quote response based on output amount
333
+ */
334
+ selectBestQuoteResponse(results) {
335
+ const successfulResults = results.filter(r => r.response && !r.error);
336
+ if (successfulResults.length === 0) {
337
+ return undefined;
338
+ }
339
+ // Find the result with the highest output amount
340
+ return successfulResults.reduce((best, current) => {
341
+ const bestAmount = BigInt(best.response.amountOut);
342
+ const currentAmount = BigInt(current.response.amountOut);
343
+ return currentAmount > bestAmount ? current : best;
344
+ }).response;
345
+ }
346
+ /**
347
+ * Get list of initialized protocols
348
+ */
349
+ getInitializedProtocols() {
350
+ return Array.from(this.protocols.keys());
351
+ }
352
+ /**
353
+ * Get a specific protocol instance
354
+ */
355
+ getProtocol(protocol) {
356
+ return this.protocols.get(protocol);
357
+ }
358
+ /**
359
+ * Update configuration
360
+ */
361
+ updateConfig(config) {
362
+ this.config = { ...this.config, ...config };
363
+ // Reinitialize protocols if protocol-specific configs changed
364
+ if (config.includeProtocols || config.excludeProtocols) {
365
+ this.protocols.clear();
366
+ this.initializeProtocols();
367
+ }
368
+ }
369
+ }
370
+ exports.IntentsProtocols = IntentsProtocols;
371
+ //# sourceMappingURL=intents-protocols.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intents-protocols.js","sourceRoot":"","sources":["../../src/intents-protocols.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { ChainIdEnum, ProtocolEnum } from '../types/enums';
2
+ import { IntentPriceParams } from '../types/price-params';
3
+ import { PriceResponse } from '../types/price-response';
4
+ import { IntentQuoteParams } from '../types/quote-params';
5
+ import { QuoteResponse } from '../types/quote-response';
6
+ export interface IIntentProtocol {
7
+ protocol: ProtocolEnum;
8
+ singleChain: boolean;
9
+ multiChain: boolean;
10
+ chains: ChainIdEnum[];
11
+ baseUrl?: string;
12
+ includeApprovals?: boolean;
13
+ fetchPrice(params: IntentPriceParams): Promise<PriceResponse>;
14
+ fetchQuote(params: IntentQuoteParams): Promise<QuoteResponse>;
15
+ isCorrectConfig<T extends {
16
+ [key: string]: string;
17
+ }>(config: {
18
+ [key: string]: string;
19
+ }): config is T;
20
+ }
21
+ //# sourceMappingURL=intent-protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent-protocol.d.ts","sourceRoot":"","sources":["../../../src/interfaces/intent-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9D,UAAU,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9D,eAAe,CAAC,CAAC,SAAS;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,MAAM,EAAE;QAC3D,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACvB,GAAG,MAAM,IAAI,CAAC,CAAC;CACjB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=intent-protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent-protocol.js","sourceRoot":"","sources":["../../../src/interfaces/intent-protocol.ts"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ import { IIntentProtocol } from '../../interfaces/intent-protocol';
2
+ import { ChainIdEnum, ProtocolEnum } from '../../types/enums';
3
+ import { IntentPriceParams } from '../../types/price-params';
4
+ import { PriceResponse, RawProtocolPriceResponse } from '../../types/price-response';
5
+ import { IntentQuoteParams } from '../../types/quote-params';
6
+ import { QuoteResponse } from '../../types/quote-response';
7
+ import { IntentsSDKConfig } from '../../types/sdk-config';
8
+ import { AftermathConfig, AftermathPriceResponse, AftermathSwapParams } from './aftermath.types';
9
+ import { SuiClient } from '@mysten/sui/client';
10
+ export declare class AftermathService implements IIntentProtocol {
11
+ readonly protocol = ProtocolEnum.AFTERMATH;
12
+ readonly chains: ChainIdEnum[];
13
+ readonly singleChain = true;
14
+ readonly multiChain = false;
15
+ readonly baseUrl: string;
16
+ protected readonly suiClient: SuiClient;
17
+ protected readonly quoteParamOverrides: Partial<AftermathSwapParams>;
18
+ constructor(config: IntentsSDKConfig & AftermathConfig);
19
+ isCorrectConfig<T extends {
20
+ [key: string]: string;
21
+ }>(config: {
22
+ [key: string]: string;
23
+ }): config is T;
24
+ fetchPrice(params: IntentPriceParams): Promise<PriceResponse>;
25
+ fetchQuote(params: IntentQuoteParams): Promise<QuoteResponse>;
26
+ protected isAftermathPriceResponse(response: RawProtocolPriceResponse): response is AftermathPriceResponse;
27
+ }
28
+ //# sourceMappingURL=aftermath.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aftermath.service.d.ts","sourceRoot":"","sources":["../../../../src/protocols/aftermath/aftermath.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAgB,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EAEpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAI/C,qBAAa,gBAAiB,YAAW,eAAe;IACtD,SAAgB,QAAQ,0BAA0B;IAClD,SAAgB,MAAM,gBAAqB;IAC3C,SAAgB,WAAW,QAAQ;IACnC,SAAgB,UAAU,SAAS;IACnC,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IACxC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAElE;gBACU,MAAM,EAAE,gBAAgB,GAAG,eAAe;IAqBtD,eAAe,CAAC,CAAC,SAAS;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,MAAM,EAAE;QAC3D,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACvB,GAAG,MAAM,IAAI,CAAC;IAIF,UAAU,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;IA+D7D,UAAU,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;IAmG1E,SAAS,CAAC,wBAAwB,CAChC,QAAQ,EAAE,wBAAwB,GACjC,QAAQ,IAAI,sBAAsB;CAGtC"}
@@ -0,0 +1,162 @@
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.AftermathService = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const enums_1 = require("../../types/enums");
9
+ const logger_1 = require("../../utils/logger");
10
+ const throw_error_1 = require("../../utils/throw-error");
11
+ const client_1 = require("@mysten/sui/client");
12
+ const create_error_message_1 = require("../../utils/create-error-message");
13
+ let logger;
14
+ class AftermathService {
15
+ constructor(config) {
16
+ this.protocol = enums_1.ProtocolEnum.AFTERMATH;
17
+ this.chains = [enums_1.ChainIdEnum.SUI];
18
+ this.singleChain = true;
19
+ this.multiChain = false;
20
+ this.quoteParamOverrides = {
21
+ isSponsoredTx: false,
22
+ };
23
+ if (config.debug) {
24
+ logger_1.LoggerFactory.configure(logger_1.LoggerFactory.createConsoleLogger({ level: logger_1.LogLevelEnum.DEBUG }));
25
+ }
26
+ // Use custom logger if provided
27
+ else if (config.logger) {
28
+ logger_1.LoggerFactory.configure(config.logger);
29
+ }
30
+ logger = logger_1.LoggerFactory.getLogger();
31
+ this.suiClient = new client_1.SuiClient({ url: config.suiRpcUrl });
32
+ // Aftermath API endpoint
33
+ this.baseUrl = config?.privateUrl || 'https://api.aftermath.finance/v1';
34
+ this.quoteParamOverrides = {
35
+ ...this.quoteParamOverrides,
36
+ ...(config?.quoteParamOverrides || {}),
37
+ };
38
+ }
39
+ isCorrectConfig(config) {
40
+ return typeof config['suiRpcUrl'] === 'string' && config['suiRpcUrl'].length > 0;
41
+ }
42
+ async fetchPrice(params) {
43
+ if (params.networkIn !== enums_1.ChainIdEnum.SUI || params.networkOut !== enums_1.ChainIdEnum.SUI) {
44
+ logger.error(`Aftermath only supports Sui network`);
45
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, 'Aftermath only supports Sui network');
46
+ }
47
+ try {
48
+ const requestParams = {
49
+ coinInType: params.tokenIn,
50
+ coinOutType: params.tokenOut,
51
+ coinInAmount: BigInt(params.amountIn),
52
+ slippage: params.slippage,
53
+ };
54
+ logger.debug(`Making Aftermath API price request with params: ${JSON.stringify({
55
+ ...requestParams,
56
+ coinInAmount: requestParams.coinInAmount.toString(),
57
+ })}`);
58
+ const response = await axios_1.default.post(`${this.baseUrl}/quote`, {
59
+ ...requestParams,
60
+ coinInAmount: requestParams.coinInAmount.toString(),
61
+ });
62
+ const priceData = response.data;
63
+ if (!priceData || !priceData.route) {
64
+ logger.error(`Aftermath API returned invalid response`, new Error(JSON.stringify(priceData, null, 2)));
65
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.PRICE_NOT_FOUND, `Aftermath API returned invalid response: ${JSON.stringify(priceData)}`);
66
+ }
67
+ const priceResponse = {
68
+ protocol: enums_1.ProtocolEnum.AFTERMATH,
69
+ networkIn: params.networkIn,
70
+ networkOut: params.networkOut,
71
+ tokenIn: params.tokenIn,
72
+ tokenOut: params.tokenOut,
73
+ amountIn: params.amountIn,
74
+ amountOut: priceData.outAmount,
75
+ slippage: params.slippage,
76
+ priceImpact: parseFloat(priceData.spotPrice) * 100,
77
+ protocolResponse: priceData,
78
+ };
79
+ return priceResponse;
80
+ }
81
+ catch (error) {
82
+ const { errorMessage, errorMessageError } = (0, create_error_message_1.createErrorMessage)(error);
83
+ logger.error(`Failed to fetch swap price from ${this.protocol}`, errorMessageError);
84
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.PRICE_NOT_FOUND, `Failed to fetch Aftermath price, error: ${errorMessage}`);
85
+ }
86
+ }
87
+ async fetchQuote(params) {
88
+ if (!this.suiClient) {
89
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.MISSING_RPC_URL, 'Sui client not initialized');
90
+ }
91
+ const { from, receiver } = params;
92
+ let { priceResponse } = params;
93
+ if (!priceResponse || !this.isAftermathPriceResponse(priceResponse.protocolResponse)) {
94
+ priceResponse = await this.fetchPrice(params);
95
+ }
96
+ if (!this.isAftermathPriceResponse(priceResponse.protocolResponse)) {
97
+ logger.error(`Invalid Aftermath price response`);
98
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.PRICE_NOT_FOUND, `Invalid Aftermath price response: ${JSON.stringify(priceResponse)}`);
99
+ }
100
+ try {
101
+ logger.debug(`Making Aftermath API quote request for swap transaction`);
102
+ const swapParams = {
103
+ walletAddress: from,
104
+ completeRoute: priceResponse.protocolResponse.route,
105
+ slippage: params.slippage,
106
+ ...this.quoteParamOverrides,
107
+ };
108
+ const response = await axios_1.default.post(`${this.baseUrl}/transaction`, swapParams);
109
+ if (!response.data || !response.data.transactionBlock) {
110
+ logger.error(`Aftermath API returned invalid transaction data`, new Error(JSON.stringify(response.data, null, 2)));
111
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.QUOTE_NOT_FOUND, `Aftermath API returned invalid transaction data: ${JSON.stringify(response.data)}`);
112
+ }
113
+ // Get transaction bytes for gas estimation
114
+ const txBytes = response.data.transactionBlock;
115
+ // Estimate gas if needed
116
+ let gasEstimate = '0';
117
+ try {
118
+ const dryRunResult = await this.suiClient.dryRunTransactionBlock({
119
+ transactionBlock: txBytes,
120
+ });
121
+ const computationCost = dryRunResult.effects.gasUsed.computationCost;
122
+ const storageCost = dryRunResult.effects.gasUsed.storageCost;
123
+ const storageRebate = dryRunResult.effects.gasUsed.storageRebate;
124
+ gasEstimate = (BigInt(computationCost) +
125
+ BigInt(storageCost) -
126
+ BigInt(storageRebate)).toString();
127
+ }
128
+ catch (error) {
129
+ logger.warn(`Failed to estimate gas for Aftermath transaction`, { error });
130
+ }
131
+ const quoteResponse = {
132
+ protocol: enums_1.ProtocolEnum.AFTERMATH,
133
+ networkIn: params.networkIn,
134
+ networkOut: params.networkOut,
135
+ tokenIn: priceResponse.tokenIn,
136
+ tokenOut: priceResponse.tokenOut,
137
+ amountIn: priceResponse.amountIn,
138
+ amountOut: priceResponse.amountOut,
139
+ from,
140
+ receiver: receiver || from,
141
+ slippage: priceResponse.slippage,
142
+ priceImpact: priceResponse.priceImpact,
143
+ estimatedGas: gasEstimate,
144
+ executionPayload: {
145
+ transactionData: [txBytes],
146
+ },
147
+ protocolResponse: { transactions: [txBytes] },
148
+ };
149
+ return quoteResponse;
150
+ }
151
+ catch (error) {
152
+ const { errorMessage, errorMessageError } = (0, create_error_message_1.createErrorMessage)(error);
153
+ logger.error(`Failed to fetch quote from ${this.protocol}`, errorMessageError);
154
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.QUOTE_NOT_FOUND, `Failed to fetch Aftermath quote, error: ${errorMessage}`);
155
+ }
156
+ }
157
+ isAftermathPriceResponse(response) {
158
+ return response && 'route' in response && 'outAmount' in response;
159
+ }
160
+ }
161
+ exports.AftermathService = AftermathService;
162
+ //# sourceMappingURL=aftermath.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aftermath.service.js","sourceRoot":"","sources":["../../../../src/protocols/aftermath/aftermath.service.ts"],"names":[],"mappings":"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"}