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,14 @@
1
+ export type PumpFunConfig = {
2
+ solanaRpcUrl: string;
3
+ };
4
+ export type PumpFunPriceResponse = {
5
+ tokenMint: string;
6
+ tokenAmount: string;
7
+ solAmount: string;
8
+ operation: 'buy' | 'sell';
9
+ feeBasisPoint: string;
10
+ };
11
+ export type PumpFunQuoteResponse = {
12
+ transactions: string[];
13
+ };
14
+ //# sourceMappingURL=pumpfun.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pumpfun.types.d.ts","sourceRoot":"","sources":["../../../../src/protocols/pumpfun/pumpfun.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAEjC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=pumpfun.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pumpfun.types.js","sourceRoot":"","sources":["../../../../src/protocols/pumpfun/pumpfun.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export { RaydiumV2Service } from './raydium-v2.service';
2
+ export type { RaydiumSdkConfig, RaydiumApiPriceParams, RaydiumApiQuoteParams, RaydiumTokenAccountsResponse, RaydiumV2PriceResponse, RaydiumV2QuoteResponse, RaydiumV2QuoteErrorResponse, RaydiumV2FeesResponse, RaydiumV2TransactionResponse, RaydiumV2FeeData, RaydiumQuoteResponses, } from './raydium-v2.types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/protocols/raydium/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,YAAY,EACV,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACrB,4BAA4B,EAC5B,sBAAsB,EACtB,sBAAsB,EACtB,2BAA2B,EAC3B,qBAAqB,EACrB,4BAA4B,EAC5B,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RaydiumV2Service = void 0;
4
+ // Raydium Protocol - All exports
5
+ var raydium_v2_service_1 = require("./raydium-v2.service");
6
+ Object.defineProperty(exports, "RaydiumV2Service", { enumerable: true, get: function () { return raydium_v2_service_1.RaydiumV2Service; } });
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/protocols/raydium/index.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AACjC,2DAAwD;AAA/C,sHAAA,gBAAgB,OAAA"}
@@ -0,0 +1,35 @@
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 { RaydiumApiPriceParams, RaydiumApiQuoteParams, RaydiumSdkConfig } from './raydium-v2.types';
6
+ import { RaydiumV2PriceResponse, RaydiumV2QuoteResponse, RaydiumV2FeeData, RaydiumTokenAccountsResponse } from './raydium-v2.types';
7
+ import { IntentQuoteParams } from '../../types/quote-params';
8
+ import { QuoteResponse } from '../../types/quote-response';
9
+ import { Connection } from '@solana/web3.js';
10
+ import { IntentsSDKConfig } from '../../types/sdk-config';
11
+ export declare class RaydiumV2Service implements IIntentProtocol {
12
+ readonly protocol = ProtocolEnum.RAYDIUM_V2;
13
+ readonly chains: ChainIdEnum[];
14
+ readonly singleChain: boolean;
15
+ readonly multiChain: boolean;
16
+ readonly txVersion: string;
17
+ protected readonly connection: Connection | undefined;
18
+ constructor(config: IntentsSDKConfig & RaydiumSdkConfig);
19
+ isCorrectConfig<T extends {
20
+ [key: string]: string;
21
+ }>(config: {
22
+ [key: string]: string;
23
+ }): config is T;
24
+ fetchPrice(params: IntentPriceParams): Promise<Omit<PriceResponse, 'protocolResponse'> & {
25
+ protocolResponse: RaydiumV2PriceResponse;
26
+ }>;
27
+ fetchQuote(params: IntentQuoteParams): Promise<QuoteResponse>;
28
+ requestRaydiumV2Price(params: RaydiumApiPriceParams): Promise<RaydiumV2PriceResponse>;
29
+ requestRaydiumV2Quote(params: RaydiumApiQuoteParams): Promise<RaydiumV2QuoteResponse>;
30
+ requestRaydiumFees(): Promise<RaydiumV2FeeData>;
31
+ protected fetchTokenAccountData(owner: string, connection: Connection): Promise<RaydiumTokenAccountsResponse>;
32
+ protected validatePriceParams(params: IntentPriceParams): void;
33
+ protected isRaydiumPriceResponse(response: RawProtocolPriceResponse): response is RaydiumV2PriceResponse;
34
+ }
35
+ //# sourceMappingURL=raydium-v2.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raydium-v2.service.d.ts","sourceRoot":"","sources":["../../../../src/protocols/raydium/raydium-v2.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,qBAAqB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACpG,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,EAChB,4BAA4B,EAC7B,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAa,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAO1D,qBAAa,gBAAiB,YAAW,eAAe;IACtD,SAAgB,QAAQ,2BAA2B;IACnD,SAAgB,MAAM,gBAAwB;IAE9C,SAAgB,WAAW,EAAE,OAAO,CAAQ;IAC5C,SAAgB,UAAU,EAAE,OAAO,CAAS;IAE5C,SAAgB,SAAS,EAAE,MAAM,CAAQ;IAEzC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC;gBAE1C,MAAM,EAAE,gBAAgB,GAAG,gBAAgB;IAavD,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,CACrB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CACR,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC,GAAG;QAAE,gBAAgB,EAAE,sBAAsB,CAAA;KAAE,CACvF;IAoDY,UAAU,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;IAoH7D,qBAAqB,CAChC,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,sBAAsB,CAAC;IA+BrB,qBAAqB,CAChC,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,sBAAsB,CAAC;IAuCrB,kBAAkB,IAAI,OAAO,CAAC,gBAAgB,CAAC;cAuB5C,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,4BAA4B,CAAC;IAuCxC,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAiB9D,SAAS,CAAC,sBAAsB,CAC9B,QAAQ,EAAE,wBAAwB,GACjC,QAAQ,IAAI,sBAAsB;CAqBtC"}
@@ -0,0 +1,301 @@
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.RaydiumV2Service = void 0;
7
+ const spl_token_1 = require("@solana/spl-token");
8
+ const enums_1 = require("../../types/enums");
9
+ const constants_1 = require("../../utils/constants");
10
+ const throw_error_1 = require("../../utils/throw-error");
11
+ const logger_1 = require("../../utils/logger");
12
+ const web3_js_1 = require("@solana/web3.js");
13
+ const axios_1 = __importDefault(require("axios"));
14
+ const raydium_sdk_v2_1 = require("@raydium-io/raydium-sdk-v2");
15
+ const base64_to_base58_1 = require("../../utils/base64-to-base58");
16
+ const create_error_message_1 = require("../../utils/create-error-message");
17
+ let logger;
18
+ class RaydiumV2Service {
19
+ constructor(config) {
20
+ this.protocol = enums_1.ProtocolEnum.RAYDIUM_V2;
21
+ this.chains = [enums_1.ChainIdEnum.SOLANA];
22
+ this.singleChain = true;
23
+ this.multiChain = false;
24
+ this.txVersion = 'V0';
25
+ if (config.debug) {
26
+ logger_1.LoggerFactory.configure(logger_1.LoggerFactory.createConsoleLogger({ level: logger_1.LogLevelEnum.DEBUG }));
27
+ }
28
+ // Use custom logger if provided
29
+ else if (config.logger) {
30
+ logger_1.LoggerFactory.configure(config.logger);
31
+ }
32
+ logger = logger_1.LoggerFactory.getLogger();
33
+ this.connection = new web3_js_1.Connection(config.solanaRpcUrl, 'confirmed');
34
+ }
35
+ isCorrectConfig(config) {
36
+ return typeof config['solanaRpcUrl'] === 'string' && config['solanaRpcUrl'].length > 0;
37
+ }
38
+ async fetchPrice(params) {
39
+ this.validatePriceParams(params);
40
+ const { tokenIn, tokenOut, amountIn, slippage } = params;
41
+ try {
42
+ const inputMint = tokenIn === constants_1.NATIVE_SOL ? constants_1.WRAPPED_SOL : tokenIn;
43
+ const outputMint = tokenOut === constants_1.NATIVE_SOL ? constants_1.WRAPPED_SOL : tokenOut;
44
+ logger.debug('Making Raydium V2 price request', {
45
+ inputMint,
46
+ outputMint,
47
+ amountIn,
48
+ slippage,
49
+ });
50
+ const priceResponse = await this.requestRaydiumV2Price({
51
+ tokenIn: inputMint,
52
+ tokenOut: outputMint,
53
+ amountIn: amountIn,
54
+ slippage,
55
+ });
56
+ const amountOut = priceResponse.data.outputAmount;
57
+ const priceImpact = priceResponse.data.priceImpactPct;
58
+ logger.debug('Successfully received price info from Raydium V2', {
59
+ amountOut,
60
+ priceImpact,
61
+ });
62
+ return {
63
+ protocol: enums_1.ProtocolEnum.RAYDIUM_V2,
64
+ networkIn: enums_1.ChainIdEnum.SOLANA,
65
+ networkOut: enums_1.ChainIdEnum.SOLANA,
66
+ tokenIn,
67
+ tokenOut,
68
+ amountIn,
69
+ amountOut,
70
+ slippage: params.slippage,
71
+ protocolResponse: priceResponse,
72
+ priceImpact,
73
+ };
74
+ }
75
+ catch (error) {
76
+ const { errorMessage, errorMessageError } = (0, create_error_message_1.createErrorMessage)(error);
77
+ logger.error(`Failed to fetch Raydium V2 swap price`, errorMessageError);
78
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.PRICE_NOT_FOUND, `Failed to fetch Raydium V2 swap price, error: ${errorMessage}`);
79
+ }
80
+ }
81
+ async fetchQuote(params) {
82
+ this.validatePriceParams(params);
83
+ if (!this.connection) {
84
+ logger.error('Connection not initialized');
85
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.MISSING_RPC_URL, 'Connection not initialized');
86
+ }
87
+ const { from } = params;
88
+ let { priceResponse } = params;
89
+ try {
90
+ if (!priceResponse || !this.isRaydiumPriceResponse(priceResponse.protocolResponse)) {
91
+ logger.debug('No valid price response provided, fetching price first');
92
+ priceResponse = await this.fetchPrice(params);
93
+ }
94
+ if (!this.isRaydiumPriceResponse(priceResponse.protocolResponse)) {
95
+ logger.error(`Invalid Raydium price response`);
96
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.PRICE_NOT_FOUND, `Invalid Raydium price response: ${JSON.stringify(priceResponse)}`);
97
+ }
98
+ const tokenIn = priceResponse.tokenIn;
99
+ const tokenOut = priceResponse.tokenOut;
100
+ const isInputSol = tokenIn === constants_1.NATIVE_SOL || tokenIn === constants_1.WRAPPED_SOL;
101
+ const isOutputSol = tokenOut === constants_1.NATIVE_SOL || tokenOut === constants_1.WRAPPED_SOL;
102
+ const inputTokenAddress = isInputSol ? constants_1.WRAPPED_SOL : tokenIn;
103
+ const outputTokenAddress = isOutputSol ? constants_1.WRAPPED_SOL : tokenOut;
104
+ logger.debug('Fetching token accounts and compute budget tiers');
105
+ const tokenAccountsPromise = this.fetchTokenAccountData(from, this.connection);
106
+ const computeBudgetTiersPromise = this.requestRaydiumFees();
107
+ const [tokenAccountsResp, computeBudgetTiers] = await Promise.all([
108
+ tokenAccountsPromise,
109
+ computeBudgetTiersPromise,
110
+ ]);
111
+ const { tokenAccounts } = tokenAccountsResp;
112
+ const inputTokenAcc = tokenAccounts.find(a => a.mint.toBase58() === inputTokenAddress)?.publicKey;
113
+ const outputTokenAcc = tokenAccounts.find(a => a.mint.toBase58() === outputTokenAddress)?.publicKey;
114
+ if (!inputTokenAcc && !isInputSol) {
115
+ logger.error(`Failed to find input token account for from address. No token account found for token: ${tokenIn} and address: ${from}`);
116
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.QUOTE_NOT_FOUND, `Failed to find input token account for from address. No token account found for token: ${tokenIn} and address: ${from}`);
117
+ }
118
+ logger.debug('Making Raydium V2 quote request', {
119
+ from,
120
+ isInputSol,
121
+ isOutputSol,
122
+ computeBudget: computeBudgetTiers.data.default.h,
123
+ });
124
+ const raydiumQuoteResponse = await this.requestRaydiumV2Quote({
125
+ computeBudget: computeBudgetTiers.data.default.h,
126
+ priceResponse: priceResponse.protocolResponse,
127
+ from,
128
+ isInputSol,
129
+ isOutputSol,
130
+ inputAccount: inputTokenAcc ? inputTokenAcc.toBase58() : undefined,
131
+ outputAccount: outputTokenAcc ? outputTokenAcc.toBase58() : undefined,
132
+ });
133
+ const data = raydiumQuoteResponse.data[0];
134
+ if (!data) {
135
+ logger.error(`Failed to fetch quote from Raydium, no data found in Raydium response`);
136
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.QUOTE_NOT_FOUND, `Failed to fetch quote from Raydium, no data found in Raydium response`);
137
+ }
138
+ const swapTransaction = data.transaction;
139
+ const encodedTransaction = (0, base64_to_base58_1.convertBase64ToBase58)(swapTransaction);
140
+ logger.debug('Successfully received quote from Raydium V2');
141
+ return {
142
+ protocol: enums_1.ProtocolEnum.RAYDIUM_V2,
143
+ tokenIn: priceResponse.tokenIn,
144
+ tokenOut: priceResponse.tokenOut,
145
+ amountIn: priceResponse.amountIn,
146
+ amountOut: priceResponse.amountOut,
147
+ from,
148
+ receiver: from,
149
+ networkIn: enums_1.ChainIdEnum.SOLANA,
150
+ networkOut: enums_1.ChainIdEnum.SOLANA,
151
+ slippage: priceResponse.slippage,
152
+ protocolResponse: raydiumQuoteResponse,
153
+ executionPayload: {
154
+ transactionData: [encodedTransaction],
155
+ },
156
+ };
157
+ }
158
+ catch (error) {
159
+ const { errorMessage, errorMessageError } = (0, create_error_message_1.createErrorMessage)(error);
160
+ logger.error(`Failed to fetch quote from ${this.protocol}`, errorMessageError);
161
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.QUOTE_NOT_FOUND, `Failed to fetch Raydium V2 quote, error: ${errorMessage}`);
162
+ }
163
+ }
164
+ async requestRaydiumV2Price(params) {
165
+ const { tokenIn, tokenOut, amountIn, slippage } = params;
166
+ const queryParams = new URLSearchParams({
167
+ inputMint: tokenIn,
168
+ outputMint: tokenOut,
169
+ amount: amountIn,
170
+ slippageBps: (slippage * 100).toString(),
171
+ txVersion: this.txVersion,
172
+ });
173
+ const url = `${raydium_sdk_v2_1.API_URLS.SWAP_HOST}/compute/swap-base-in?${queryParams}`;
174
+ logger.debug(`Making Raydium V2 price request to: ${url}`);
175
+ try {
176
+ const response = await axios_1.default.get(url);
177
+ if (response.status !== 200) {
178
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.FAILED_HTTP_REQUEST, `HTTP error! status: ${response.status}`);
179
+ }
180
+ return response.data;
181
+ }
182
+ catch (error) {
183
+ const { errorMessage, errorMessageError } = (0, create_error_message_1.createErrorMessage)(error);
184
+ logger.error('Failed to request Raydium V2 price', errorMessageError);
185
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.FAILED_HTTP_REQUEST, `Failed to request Raydium V2 price: ${errorMessage}`);
186
+ }
187
+ }
188
+ async requestRaydiumV2Quote(params) {
189
+ const { priceResponse, from, isInputSol, isOutputSol, inputAccount, outputAccount } = params;
190
+ const url = `${raydium_sdk_v2_1.API_URLS.SWAP_HOST}/transaction/swap-base-in`;
191
+ const requestBody = {
192
+ computeUnitPriceMicroLamports: '0',
193
+ swapResponse: priceResponse,
194
+ txVersion: this.txVersion,
195
+ wallet: from,
196
+ wrapSol: isInputSol,
197
+ unwrapSol: isOutputSol,
198
+ inputAccount: inputAccount,
199
+ outputAccount: outputAccount,
200
+ };
201
+ logger.debug(`Making Raydium V2 quote request to: ${url}`, requestBody);
202
+ try {
203
+ const response = await axios_1.default.post(url, requestBody);
204
+ if (response.status !== 200) {
205
+ logger.error(`Failed to fetch quote from Raydium: ${JSON.stringify(response.data)}`);
206
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.FAILED_HTTP_REQUEST, `Failed to fetch quote from Raydium: ${JSON.stringify(response.data)}`);
207
+ }
208
+ return response.data;
209
+ }
210
+ catch (error) {
211
+ const { errorMessage, errorMessageError } = (0, create_error_message_1.createErrorMessage)(error);
212
+ logger.error('Failed to request Raydium V2 quote', errorMessageError);
213
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.FAILED_HTTP_REQUEST, `Failed to request Raydium V2 quote: ${errorMessage}`);
214
+ }
215
+ }
216
+ async requestRaydiumFees() {
217
+ const url = `${raydium_sdk_v2_1.API_URLS.BASE_HOST}${raydium_sdk_v2_1.API_URLS.PRIORITY_FEE}`;
218
+ logger.debug(`Making Raydium V2 fees request to: ${url}`);
219
+ try {
220
+ const response = await axios_1.default.get(url);
221
+ if (response.status !== 200 || !response?.data?.success) {
222
+ logger.error(`Failed to fetch fees from Raydium: ${JSON.stringify(response.data)}`);
223
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.FAILED_HTTP_REQUEST, `HTTP error! status: ${response.status}`);
224
+ }
225
+ return response.data;
226
+ }
227
+ catch (error) {
228
+ const { errorMessage, errorMessageError } = (0, create_error_message_1.createErrorMessage)(error);
229
+ logger.error('Failed to request Raydium fees', errorMessageError);
230
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.FAILED_HTTP_REQUEST, `Failed to request Raydium fees: ${errorMessage}`);
231
+ }
232
+ }
233
+ async fetchTokenAccountData(owner, connection) {
234
+ try {
235
+ logger.debug(`Fetching token account data for owner: ${owner}`);
236
+ const ownerPublicKey = new web3_js_1.PublicKey(owner);
237
+ const solAccountRespPromise = connection.getAccountInfo(ownerPublicKey);
238
+ const tokenAccountRespPromise = connection.getTokenAccountsByOwner(ownerPublicKey, {
239
+ programId: spl_token_1.TOKEN_PROGRAM_ID,
240
+ });
241
+ const token2022ReqPromise = connection.getTokenAccountsByOwner(ownerPublicKey, {
242
+ programId: spl_token_1.TOKEN_2022_PROGRAM_ID,
243
+ });
244
+ const [solAccountResp, tokenAccountResp, token2022Req] = await Promise.all([
245
+ solAccountRespPromise,
246
+ tokenAccountRespPromise,
247
+ token2022ReqPromise,
248
+ ]);
249
+ const tokenAccountData = (0, raydium_sdk_v2_1.parseTokenAccountResp)({
250
+ owner: ownerPublicKey,
251
+ solAccountResp,
252
+ tokenAccountResp: {
253
+ context: tokenAccountResp.context,
254
+ value: [...tokenAccountResp.value, ...token2022Req.value],
255
+ },
256
+ });
257
+ return tokenAccountData;
258
+ }
259
+ catch (error) {
260
+ const { errorMessage, errorMessageError } = (0, create_error_message_1.createErrorMessage)(error);
261
+ logger.error(`Failed to fetch token account data`, errorMessageError);
262
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.FAILED_HTTP_REQUEST, `Failed to fetch token account data: ${errorMessage}`);
263
+ }
264
+ }
265
+ validatePriceParams(params) {
266
+ const { networkIn, networkOut } = params;
267
+ if (!this.multiChain && networkIn !== networkOut) {
268
+ logger.error('Multi-chain swaps not supported');
269
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, 'Multi-chain swaps not supported');
270
+ }
271
+ if (!this.chains.includes(networkIn)) {
272
+ logger.error(`Network ${networkIn} not supported`);
273
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, `Network ${networkIn} not supported`);
274
+ }
275
+ if (!this.chains.includes(networkOut)) {
276
+ logger.error(`Network ${networkOut} not supported`);
277
+ throw (0, throw_error_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, `Network ${networkOut} not supported`);
278
+ }
279
+ }
280
+ isRaydiumPriceResponse(response) {
281
+ return (typeof response === 'object' &&
282
+ response !== null &&
283
+ 'id' in response &&
284
+ 'success' in response &&
285
+ 'version' in response &&
286
+ 'data' in response &&
287
+ typeof response.data === 'object' &&
288
+ response.data !== null &&
289
+ 'swapType' in response.data &&
290
+ 'inputMint' in response.data &&
291
+ 'inputAmount' in response.data &&
292
+ 'outputMint' in response.data &&
293
+ 'outputAmount' in response.data &&
294
+ 'otherAmountThreshold' in response.data &&
295
+ 'slippageBps' in response.data &&
296
+ 'priceImpactPct' in response.data &&
297
+ 'routePlan' in response.data);
298
+ }
299
+ }
300
+ exports.RaydiumV2Service = RaydiumV2Service;
301
+ //# sourceMappingURL=raydium-v2.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raydium-v2.service.js","sourceRoot":"","sources":["../../../../src/protocols/raydium/raydium-v2.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ import { TokenAccount, TokenAccountRaw } from '@raydium-io/raydium-sdk-v2';
2
+ export type RaydiumSdkConfig = {
3
+ solanaRpcUrl: string;
4
+ };
5
+ export type RaydiumApiPriceParams = {
6
+ tokenIn: string;
7
+ tokenOut: string;
8
+ amountIn: string;
9
+ slippage: number;
10
+ };
11
+ export type RaydiumApiQuoteParams = {
12
+ computeBudget: number;
13
+ priceResponse: RaydiumV2PriceResponse;
14
+ from: string;
15
+ isInputSol: boolean;
16
+ isOutputSol: boolean;
17
+ inputAccount?: string;
18
+ outputAccount?: string;
19
+ };
20
+ export type RaydiumTokenAccountsResponse = {
21
+ tokenAccounts: TokenAccount[];
22
+ tokenAccountRawInfos: TokenAccountRaw[];
23
+ };
24
+ export type RaydiumV2PriceResponse = {
25
+ id: string;
26
+ success: boolean;
27
+ version: 'V0' | 'V1';
28
+ openTime?: undefined;
29
+ msg: undefined;
30
+ data: SwapData;
31
+ };
32
+ export type RaydiumV2QuoteResponse = {
33
+ id: string;
34
+ version: string;
35
+ success: boolean;
36
+ data: {
37
+ transaction: string;
38
+ }[];
39
+ };
40
+ export type RaydiumV2QuoteErrorResponse = {
41
+ id: string;
42
+ version: string;
43
+ success: boolean;
44
+ msg: string;
45
+ };
46
+ export type RaydiumV2FeesResponse = {
47
+ id: string;
48
+ success: boolean;
49
+ data: RaydiumV2FeeData;
50
+ };
51
+ export type RaydiumV2TransactionResponse = {
52
+ id: string;
53
+ version: string;
54
+ success: boolean;
55
+ data: TransactionData[];
56
+ };
57
+ export type RaydiumV2FeeData = {
58
+ id: string;
59
+ success: boolean;
60
+ data: {
61
+ default: {
62
+ vh: number;
63
+ h: number;
64
+ m: number;
65
+ };
66
+ };
67
+ };
68
+ type TransactionData = {
69
+ transaction: string;
70
+ };
71
+ type RoutePlanItem = {
72
+ poolId: string;
73
+ inputMint: string;
74
+ outputMint: string;
75
+ feeMint: string;
76
+ feeRate: number;
77
+ feeAmount: string;
78
+ remainingAccounts: any[];
79
+ };
80
+ type SwapData = {
81
+ swapType: 'BaseIn';
82
+ inputMint: string;
83
+ inputAmount: string;
84
+ outputMint: string;
85
+ outputAmount: string;
86
+ otherAmountThreshold: string;
87
+ slippageBps: number;
88
+ priceImpactPct: number;
89
+ referrerAmount: string;
90
+ routePlan: RoutePlanItem[];
91
+ };
92
+ export type RaydiumQuoteResponses = {
93
+ transactions: string[];
94
+ };
95
+ export {};
96
+ //# sourceMappingURL=raydium-v2.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raydium-v2.types.d.ts","sourceRoot":"","sources":["../../../../src/protocols/raydium/raydium-v2.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=raydium-v2.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raydium-v2.types.js","sourceRoot":"","sources":["../../../../src/protocols/raydium/raydium-v2.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export { ZeroXService } from './zeroX.service';
2
+ export type { ZeroXConfig, ZeroXPriceRequestParams, ZeroXQuoteRequestParams, ZeroXFee, ZeroXFees, ZeroXBalanceIssue, ZeroXIssues, ZeroXFill, ZeroXToken, ZeroXRoute, ZeroXTokenTaxInfo, ZeroXTokenMetadata, ZeroXTransaction, ZeroXSwapQuoteResponse, ZeroXPriceResponse, ZeroXQuoteResponse, ZeroXMultiPriceParams, ZeroXMultiQuoteParams, } from './zeroX.types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/protocols/zeroX/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,YAAY,EACV,WAAW,EACX,uBAAuB,EACvB,uBAAuB,EACvB,QAAQ,EACR,SAAS,EACT,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,eAAe,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ZeroXService = void 0;
4
+ // 0x Protocol - All exports
5
+ var zeroX_service_1 = require("./zeroX.service");
6
+ Object.defineProperty(exports, "ZeroXService", { enumerable: true, get: function () { return zeroX_service_1.ZeroXService; } });
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/protocols/zeroX/index.ts"],"names":[],"mappings":";;;AAAA,4BAA4B;AAC5B,iDAA+C;AAAtC,6GAAA,YAAY,OAAA"}
@@ -0,0 +1,37 @@
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, RawProtocolQuoteResponse } from '../../types/quote-response';
7
+ import { IntentsSDKConfig } from '../../types/sdk-config';
8
+ import { ZeroXConfig, ZeroXPriceResponse, ZeroXQuoteResponse } from './zeroX.types';
9
+ export declare class ZeroXService implements IIntentProtocol {
10
+ readonly protocol = ProtocolEnum.ZEROX;
11
+ readonly chains: ChainIdEnum[];
12
+ readonly singleChain = true;
13
+ readonly multiChain = false;
14
+ baseUrl: string;
15
+ readonly apiKey: string;
16
+ constructor(config?: IntentsSDKConfig & ZeroXConfig);
17
+ isCorrectConfig<T extends {
18
+ [key: string]: string;
19
+ }>(config: {
20
+ [key: string]: string;
21
+ }): config is T;
22
+ /**
23
+ * Unlike other DEX aggregators like KyberSwap, 0x doesn't have a separate price fetch endpoint.
24
+ * Instead, we'll use the quote endpoint to get price information as well.
25
+ */
26
+ fetchPrice(params: IntentPriceParams): Promise<Omit<PriceResponse, 'protocolResponse'> & {
27
+ protocolResponse: ZeroXPriceResponse;
28
+ }>;
29
+ fetchQuote(params: IntentQuoteParams): Promise<QuoteResponse & {
30
+ protocolResponse: ZeroXQuoteResponse;
31
+ }>;
32
+ protected buildRequestUrl(params: IntentQuoteParams): string;
33
+ protected validatePriceParams(params: IntentPriceParams): void;
34
+ protected isZeroXPriceResponse(response: RawProtocolPriceResponse): response is ZeroXPriceResponse;
35
+ protected isZeroXQuoteResponse(response: RawProtocolQuoteResponse): response is ZeroXQuoteResponse;
36
+ }
37
+ //# sourceMappingURL=zeroX.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zeroX.service.d.ts","sourceRoot":"","sources":["../../../../src/protocols/zeroX/zeroX.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,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAO1D,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAEnB,MAAM,eAAe,CAAC;AAIvB,qBAAa,YAAa,YAAW,eAAe;IAClD,SAAgB,QAAQ,sBAAsB;IAC9C,SAAgB,MAAM,gBAQpB;IACF,SAAgB,WAAW,QAAQ;IACnC,SAAgB,UAAU,SAAS;IACnC,OAAO,SAAoD;IAC3D,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEnB,MAAM,CAAC,EAAE,gBAAgB,GAAG,WAAW;IAmBnD,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;;;OAGG;IACU,UAAU,CACrB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC,GAAG;QAAE,gBAAgB,EAAE,kBAAkB,CAAA;KAAE,CAAC;IAoDjF,UAAU,CACrB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,aAAa,GAAG;QAAE,gBAAgB,EAAE,kBAAkB,CAAA;KAAE,CAAC;IA+EpE,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM;IAmB5D,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAsB9D,SAAS,CAAC,oBAAoB,CAC5B,QAAQ,EAAE,wBAAwB,GACjC,QAAQ,IAAI,kBAAkB;IAIjC,SAAS,CAAC,oBAAoB,CAC5B,QAAQ,EAAE,wBAAwB,GACjC,QAAQ,IAAI,kBAAkB;CAGlC"}