genius-intents 0.18.2 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/CHANGELOG.md +46 -3
  2. package/dist/genius-intents.d.ts.map +1 -1
  3. package/dist/genius-intents.js +8 -2
  4. package/dist/genius-intents.js.map +1 -1
  5. package/dist/index.d.ts +2 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +3 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/lib/dex/algebra/algebra-factory.abi.d.ts +3 -0
  10. package/dist/lib/dex/algebra/algebra-factory.abi.d.ts.map +1 -0
  11. package/dist/lib/dex/algebra/algebra-factory.abi.js +34 -0
  12. package/dist/lib/dex/algebra/algebra-factory.abi.js.map +1 -0
  13. package/dist/lib/dex/algebra/algebra-quoter.abi.d.ts +3 -0
  14. package/dist/lib/dex/algebra/algebra-quoter.abi.d.ts.map +1 -0
  15. package/dist/lib/dex/algebra/algebra-quoter.abi.js +135 -0
  16. package/dist/lib/dex/algebra/algebra-quoter.abi.js.map +1 -0
  17. package/dist/lib/dex/algebra/algebra-router.abi.d.ts +3 -0
  18. package/dist/lib/dex/algebra/algebra-router.abi.d.ts.map +1 -0
  19. package/dist/lib/dex/algebra/algebra-router.abi.js +273 -0
  20. package/dist/lib/dex/algebra/algebra-router.abi.js.map +1 -0
  21. package/dist/lib/dex/uniswapv3/slipstream-quoter.abi.d.ts +3 -0
  22. package/dist/lib/dex/uniswapv3/slipstream-quoter.abi.d.ts.map +1 -0
  23. package/dist/lib/dex/uniswapv3/slipstream-quoter.abi.js +30 -0
  24. package/dist/lib/dex/uniswapv3/slipstream-quoter.abi.js.map +1 -0
  25. package/dist/lib/dex/uniswapv3/slipstream-router.abi.d.ts +3 -0
  26. package/dist/lib/dex/uniswapv3/slipstream-router.abi.d.ts.map +1 -0
  27. package/dist/lib/dex/uniswapv3/slipstream-router.abi.js +45 -0
  28. package/dist/lib/dex/uniswapv3/slipstream-router.abi.js.map +1 -0
  29. package/dist/lib/dex/ve33/aerodrome-factory.abi.d.ts +3 -0
  30. package/dist/lib/dex/ve33/aerodrome-factory.abi.d.ts.map +1 -0
  31. package/dist/lib/dex/ve33/aerodrome-factory.abi.js +17 -0
  32. package/dist/lib/dex/ve33/aerodrome-factory.abi.js.map +1 -0
  33. package/dist/lib/dex/ve33/aerodrome-router.abi.d.ts +3 -0
  34. package/dist/lib/dex/ve33/aerodrome-router.abi.d.ts.map +1 -0
  35. package/dist/lib/dex/ve33/aerodrome-router.abi.js +119 -0
  36. package/dist/lib/dex/ve33/aerodrome-router.abi.js.map +1 -0
  37. package/dist/lib/dex/ve33/blackhole-router.abi.d.ts +3 -0
  38. package/dist/lib/dex/ve33/blackhole-router.abi.d.ts.map +1 -0
  39. package/dist/lib/dex/ve33/blackhole-router.abi.js +1492 -0
  40. package/dist/lib/dex/ve33/blackhole-router.abi.js.map +1 -0
  41. package/dist/lib/dex/ve33/pharaoh-router.abi.d.ts +3 -0
  42. package/dist/lib/dex/ve33/pharaoh-router.abi.d.ts.map +1 -0
  43. package/dist/lib/dex/ve33/pharaoh-router.abi.js +502 -0
  44. package/dist/lib/dex/ve33/pharaoh-router.abi.js.map +1 -0
  45. package/dist/lib/dex/ve33/velodrome-router.abi.d.ts +3 -0
  46. package/dist/lib/dex/ve33/velodrome-router.abi.d.ts.map +1 -0
  47. package/dist/lib/dex/ve33/velodrome-router.abi.js +634 -0
  48. package/dist/lib/dex/ve33/velodrome-router.abi.js.map +1 -0
  49. package/dist/protocols/algebra/algebra.service.d.ts +61 -0
  50. package/dist/protocols/algebra/algebra.service.d.ts.map +1 -0
  51. package/dist/protocols/algebra/algebra.service.js +562 -0
  52. package/dist/protocols/algebra/algebra.service.js.map +1 -0
  53. package/dist/protocols/algebra/algebra.types.d.ts +83 -0
  54. package/dist/protocols/algebra/algebra.types.d.ts.map +1 -0
  55. package/dist/protocols/algebra/algebra.types.js +9 -0
  56. package/dist/protocols/algebra/algebra.types.js.map +1 -0
  57. package/dist/protocols/algebra/index.d.ts +3 -0
  58. package/dist/protocols/algebra/index.d.ts.map +1 -0
  59. package/dist/protocols/algebra/index.js +21 -0
  60. package/dist/protocols/algebra/index.js.map +1 -0
  61. package/dist/protocols/okx/okx.service.d.ts +9 -8
  62. package/dist/protocols/okx/okx.service.d.ts.map +1 -1
  63. package/dist/protocols/okx/okx.service.js +133 -143
  64. package/dist/protocols/okx/okx.service.js.map +1 -1
  65. package/dist/protocols/okx/okx.types.d.ts +9 -3
  66. package/dist/protocols/okx/okx.types.d.ts.map +1 -1
  67. package/dist/protocols/relay/relay.service.d.ts +3 -0
  68. package/dist/protocols/relay/relay.service.d.ts.map +1 -1
  69. package/dist/protocols/relay/relay.service.js +7 -1
  70. package/dist/protocols/relay/relay.service.js.map +1 -1
  71. package/dist/protocols/v2-dex/v2-dex.service.d.ts +0 -3
  72. package/dist/protocols/v2-dex/v2-dex.service.d.ts.map +1 -1
  73. package/dist/protocols/v2-dex/v2-dex.service.js +54 -55
  74. package/dist/protocols/v2-dex/v2-dex.service.js.map +1 -1
  75. package/dist/protocols/v2-dex/v2-dex.types.d.ts +0 -10
  76. package/dist/protocols/v2-dex/v2-dex.types.d.ts.map +1 -1
  77. package/dist/protocols/v3-dex/v3-dex.service.d.ts +50 -6
  78. package/dist/protocols/v3-dex/v3-dex.service.d.ts.map +1 -1
  79. package/dist/protocols/v3-dex/v3-dex.service.js +369 -193
  80. package/dist/protocols/v3-dex/v3-dex.service.js.map +1 -1
  81. package/dist/protocols/v3-dex/v3-dex.types.d.ts +4 -1
  82. package/dist/protocols/v3-dex/v3-dex.types.d.ts.map +1 -1
  83. package/dist/protocols/v3-dex/v3-dex.types.js +3 -0
  84. package/dist/protocols/v3-dex/v3-dex.types.js.map +1 -1
  85. package/dist/protocols/ve33/index.d.ts +3 -0
  86. package/dist/protocols/ve33/index.d.ts.map +1 -0
  87. package/dist/protocols/ve33/index.js +6 -0
  88. package/dist/protocols/ve33/index.js.map +1 -0
  89. package/dist/protocols/ve33/ve33.handlers.d.ts +3 -0
  90. package/dist/protocols/ve33/ve33.handlers.d.ts.map +1 -0
  91. package/dist/protocols/ve33/ve33.handlers.js +187 -0
  92. package/dist/protocols/ve33/ve33.handlers.js.map +1 -0
  93. package/dist/protocols/ve33/ve33.service.d.ts +26 -0
  94. package/dist/protocols/ve33/ve33.service.d.ts.map +1 -0
  95. package/dist/protocols/ve33/ve33.service.js +486 -0
  96. package/dist/protocols/ve33/ve33.service.js.map +1 -0
  97. package/dist/protocols/ve33/ve33.types.d.ts +136 -0
  98. package/dist/protocols/ve33/ve33.types.d.ts.map +1 -0
  99. package/dist/protocols/ve33/ve33.types.js +11 -0
  100. package/dist/protocols/ve33/ve33.types.js.map +1 -0
  101. package/dist/types/enums.d.ts +5 -2
  102. package/dist/types/enums.d.ts.map +1 -1
  103. package/dist/types/enums.js +3 -0
  104. package/dist/types/enums.js.map +1 -1
  105. package/dist/types/price-params.d.ts +4 -0
  106. package/dist/types/price-params.d.ts.map +1 -1
  107. package/dist/types/price-response.d.ts +4 -2
  108. package/dist/types/price-response.d.ts.map +1 -1
  109. package/dist/types/quote-response.d.ts +3 -1
  110. package/dist/types/quote-response.d.ts.map +1 -1
  111. package/dist/utils/dex-deployment-key.d.ts +14 -0
  112. package/dist/utils/dex-deployment-key.d.ts.map +1 -0
  113. package/dist/utils/dex-deployment-key.js +17 -0
  114. package/dist/utils/dex-deployment-key.js.map +1 -0
  115. package/dist/utils/min-amount-out.d.ts +12 -0
  116. package/dist/utils/min-amount-out.d.ts.map +1 -0
  117. package/dist/utils/min-amount-out.js +18 -0
  118. package/dist/utils/min-amount-out.js.map +1 -0
  119. package/dist/utils/sort-addresses.d.ts +2 -0
  120. package/dist/utils/sort-addresses.d.ts.map +1 -0
  121. package/dist/utils/sort-addresses.js +14 -0
  122. package/dist/utils/sort-addresses.js.map +1 -0
  123. package/package.json +1 -1
@@ -0,0 +1,486 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Ve33Service = void 0;
4
+ const viem_1 = require("viem");
5
+ const ve33_types_1 = require("./ve33.types");
6
+ const aerodrome_router_abi_1 = require("../../lib/dex/ve33/aerodrome-router.abi");
7
+ const blackhole_router_abi_1 = require("../../lib/dex/ve33/blackhole-router.abi");
8
+ const pharaoh_router_abi_1 = require("../../lib/dex/ve33/pharaoh-router.abi");
9
+ const enums_1 = require("../../types/enums");
10
+ const wrapped_native_1 = require("../../utils/wrapped-native");
11
+ const constants_1 = require("../../utils/constants");
12
+ const is_native_1 = require("../../utils/is-native");
13
+ const ve33_handlers_1 = require("./ve33.handlers");
14
+ const utils_1 = require("../../utils");
15
+ const min_amount_out_1 = require("../../utils/min-amount-out");
16
+ const dex_deployment_key_1 = require("../../utils/dex-deployment-key");
17
+ class Ve33Service {
18
+ constructor(config) {
19
+ this.protocol = enums_1.ProtocolEnum.VE_33;
20
+ this.singleChain = true;
21
+ this.multiChain = false;
22
+ this.chains = [enums_1.ChainIdEnum.BASE, enums_1.ChainIdEnum.AVALANCHE, enums_1.ChainIdEnum.OPTIMISM];
23
+ this.rpcs = {};
24
+ this._rpcs = {};
25
+ this.deployments = {
26
+ [enums_1.ChainIdEnum.BASE]: [
27
+ {
28
+ router: '0xcF77a3Ba9A5CA399B7c97c74d54e5b1Beb874E43',
29
+ poolFactory: '0x420DD381b31aEf6683db6B902084cB0FFECe40Da',
30
+ tag: ve33_types_1.Ve33StyleDeploymentEnum.AERODROME,
31
+ },
32
+ ],
33
+ [enums_1.ChainIdEnum.AVALANCHE]: [
34
+ {
35
+ router: '0xAAA45c8F5ef92a000a121d102F4e89278a711Faa',
36
+ poolFactory: '0xAAA16c016BF556fcD620328f0759252E29b1AB57',
37
+ tag: ve33_types_1.Ve33StyleDeploymentEnum.PHARAOH,
38
+ },
39
+ {
40
+ router: '0x04E1dee021Cd12bBa022A72806441B43d8212Fec',
41
+ poolFactory: '0xfE926062Fb99CA5653080d6C14fE945Ad68c265C',
42
+ tag: ve33_types_1.Ve33StyleDeploymentEnum.BLACKHOLE,
43
+ },
44
+ ],
45
+ [enums_1.ChainIdEnum.OPTIMISM]: [
46
+ {
47
+ router: '0xa062aE8A9c5e11aaA026fc2670B0D65cCc8B2858',
48
+ poolFactory: '0xF1046053aa5682b4F9a81b5481394DA16BE5FF5a',
49
+ tag: ve33_types_1.Ve33StyleDeploymentEnum.VELODROME,
50
+ },
51
+ ],
52
+ };
53
+ if (config?.rpcs && config?.v33ChainConfigs) {
54
+ this.rpcs = {};
55
+ this._rpcs = {};
56
+ for (const [chainIdStr, rpc] of Object.entries(config.rpcs)) {
57
+ const chainId = Number(chainIdStr);
58
+ if (!rpc)
59
+ continue;
60
+ const chainConfig = config.v33ChainConfigs[chainId];
61
+ if (!chainConfig)
62
+ continue;
63
+ this._rpcs[chainId] = (0, viem_1.createPublicClient)({
64
+ chain: chainConfig,
65
+ transport: (0, viem_1.http)(rpc),
66
+ });
67
+ }
68
+ }
69
+ else {
70
+ throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, 'Ve33Service requires rpcs and v33ChainConfigs in the config.');
71
+ }
72
+ }
73
+ isCorrectConfig(_config) {
74
+ return true;
75
+ }
76
+ /* ---------------------------
77
+ * PRICE
78
+ * --------------------------- */
79
+ async fetchPrice(params) {
80
+ const { networkIn, networkOut, tokenIn, tokenOut, amountIn, slippage } = params;
81
+ try {
82
+ if (networkIn !== networkOut) {
83
+ throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, 'Ve33Service only supports same-network swaps.');
84
+ }
85
+ const chainId = networkIn;
86
+ const client = this._rpcs[chainId];
87
+ if (!client) {
88
+ throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, `No PublicClient configured for chainId ${chainId}`);
89
+ }
90
+ const deployments = this.deployments[chainId] ?? [];
91
+ if (!deployments.length) {
92
+ throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, `No Ve33 deployments configured for chainId ${chainId}`);
93
+ }
94
+ const { tokenInNorm, tokenOutNorm } = this._validatePath(chainId, [tokenIn, tokenOut]);
95
+ const amountInBI = typeof amountIn === 'bigint' ? amountIn : BigInt(amountIn);
96
+ if (amountInBI <= 0n)
97
+ throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, 'amountIn must be > 0');
98
+ const overrides = params?.overrideParamsVe33 ?? {};
99
+ const overridePair = overrides?.pair;
100
+ const hasStableOverride = overrides?.isStable !== undefined && overrides?.isStable !== null;
101
+ const overrideIsStable = overrides?.isStable ?? false;
102
+ // 1) Discover pairs (or apply overrides)
103
+ let discovered = [];
104
+ if (!overridePair) {
105
+ discovered = await this._discoverPairsAcrossDeployments({
106
+ client,
107
+ deployments,
108
+ tokenIn: tokenInNorm,
109
+ tokenOut: tokenOutNorm,
110
+ });
111
+ if (!discovered.length) {
112
+ throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.PRICE_NOT_FOUND, `No pools found for the pair on chain ${chainId}`);
113
+ }
114
+ }
115
+ else {
116
+ const deploymentIndex = deployments.findIndex(d => d.tag === overrides.dex);
117
+ const networkDeployment = deployments[deploymentIndex];
118
+ if (!networkDeployment) {
119
+ throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, `No Ve33 deployment found for dex ${overrides.dex} on chainId ${chainId}`);
120
+ }
121
+ if (!hasStableOverride) {
122
+ const foundPairs = await this._discoverPairsAcrossDeployments({
123
+ client,
124
+ deployments: [networkDeployment],
125
+ tokenIn: tokenInNorm,
126
+ tokenOut: tokenOutNorm,
127
+ });
128
+ if (!foundPairs.length) {
129
+ throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.PRICE_NOT_FOUND, `No pools found for the pair on chain ${chainId}`);
130
+ }
131
+ const pair = foundPairs.find(p => p.pair.toLowerCase() === overridePair.toLowerCase());
132
+ if (!pair) {
133
+ throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, `No Ve33 pair found for overridePair ${overridePair} on chainId ${chainId}`);
134
+ }
135
+ discovered = [{ pair: (0, viem_1.getAddress)(overridePair), stable: pair.stable, deploymentIndex }];
136
+ }
137
+ else {
138
+ discovered = [
139
+ { pair: (0, viem_1.getAddress)(overridePair), stable: overrideIsStable, deploymentIndex },
140
+ ];
141
+ }
142
+ }
143
+ // 2) Build routes
144
+ const routes = discovered
145
+ .map(d => {
146
+ const dep = deployments[d.deploymentIndex];
147
+ if (!dep)
148
+ return undefined;
149
+ return {
150
+ deploymentIndex: d.deploymentIndex,
151
+ pair: d.pair,
152
+ route: {
153
+ from: tokenInNorm,
154
+ to: tokenOutNorm,
155
+ stable: d.stable,
156
+ factory: dep.poolFactory, // handlers trim for Pharaoh
157
+ },
158
+ };
159
+ })
160
+ .filter((rc) => !!rc);
161
+ // Early exit if override amountOutMin provided (kept from original)
162
+ const overrideAmountOut = params?.overrideParamsVe33?.amountOutMin;
163
+ if (overrideAmountOut) {
164
+ const deploymentIndex = discovered[0]?.deploymentIndex ?? 0;
165
+ const chosenDep = deployments[deploymentIndex];
166
+ if (!chosenDep)
167
+ throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.PRICE_NOT_FOUND, 'Ve33: failed to select a deployment.');
168
+ const earlyPriceResponse = {
169
+ deploymentKey: (0, dex_deployment_key_1.dexDeploymentKey)({
170
+ dex: chosenDep.tag,
171
+ router: chosenDep.router,
172
+ network: chainId,
173
+ }),
174
+ router: constants_1.ZERO_ADDRESS,
175
+ factory: constants_1.ZERO_ADDRESS,
176
+ pool: overridePair ? (0, viem_1.getAddress)(overridePair) : constants_1.ZERO_ADDRESS,
177
+ stable: hasStableOverride ? overrideIsStable : false,
178
+ expectedAmountOut: overrideAmountOut,
179
+ minAmountOut: overrideAmountOut,
180
+ route: {
181
+ from: tokenInNorm,
182
+ to: tokenOutNorm,
183
+ stable: hasStableOverride ? overrideIsStable : false,
184
+ factory: chosenDep.poolFactory,
185
+ },
186
+ };
187
+ return {
188
+ amountIn: amountInBI.toString(),
189
+ amountOut: overrideAmountOut.toString(),
190
+ protocol: this.protocol,
191
+ networkIn,
192
+ networkOut,
193
+ tokenIn,
194
+ tokenOut,
195
+ slippage,
196
+ protocolResponse: earlyPriceResponse,
197
+ };
198
+ }
199
+ // 3) Build per-route amountOut multicall
200
+ const amountOutCalls = [];
201
+ const amountOutMeta = [];
202
+ routes.forEach((rc, routeIndex) => {
203
+ const dep = deployments[rc.deploymentIndex];
204
+ if (!dep)
205
+ return;
206
+ const handler = ve33_handlers_1.V33_HANDLERS[dep.tag];
207
+ const norm = handler.normalizeRouteForGetAmountsOut(rc.route);
208
+ const built = handler.buildAmountOutCall(amountInBI, norm, rc, dep, routeIndex);
209
+ if (built) {
210
+ amountOutCalls.push(built.call);
211
+ amountOutMeta.push(built.meta);
212
+ }
213
+ });
214
+ if (!amountOutCalls.length) {
215
+ throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.PRICE_NOT_FOUND, 'Ve33: no routes to quote.');
216
+ }
217
+ const quoteResults = await client.multicall({
218
+ allowFailure: true,
219
+ // @ts-ignore viem contract typing across mixed abis
220
+ contracts: amountOutCalls,
221
+ });
222
+ // 4) Pick best out
223
+ let bestOut = 0n;
224
+ let bestIdx = -1;
225
+ for (let i = 0; i < quoteResults.length; i++) {
226
+ const res = quoteResults[i];
227
+ if (!res || res.status !== 'success')
228
+ continue;
229
+ const meta = amountOutMeta[i];
230
+ if (!meta)
231
+ continue;
232
+ const handler = ve33_handlers_1.V33_HANDLERS[meta.tag];
233
+ const out = handler.parseAmountOutResult(res.result);
234
+ if (out > bestOut) {
235
+ bestOut = out;
236
+ bestIdx = i;
237
+ }
238
+ }
239
+ if (bestIdx === -1) {
240
+ throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.PRICE_NOT_FOUND, 'Ve33: failed to compute amounts out.');
241
+ }
242
+ const chosenMeta = amountOutMeta[bestIdx];
243
+ if (!chosenMeta) {
244
+ throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.PRICE_NOT_FOUND, 'Ve33: failed to select a meta.');
245
+ }
246
+ const chosenRoute = routes[chosenMeta.routeIndex];
247
+ if (!chosenRoute) {
248
+ throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.PRICE_NOT_FOUND, 'Ve33: failed to select a route.');
249
+ }
250
+ const chosenDep = deployments[chosenRoute.deploymentIndex];
251
+ if (!chosenDep) {
252
+ throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.PRICE_NOT_FOUND, 'Ve33: failed to select a deployment.');
253
+ }
254
+ const chosenPair = discovered[chosenMeta.routeIndex]?.pair ?? constants_1.ZERO_ADDRESS;
255
+ const minOut = (0, min_amount_out_1.calculateMinAmountOut)({
256
+ amountOut: bestOut.toString(),
257
+ slippage: Number(slippage ?? 0),
258
+ });
259
+ const protocolResponse = {
260
+ deploymentKey: (0, dex_deployment_key_1.dexDeploymentKey)({
261
+ dex: chosenDep.tag,
262
+ router: chosenDep.router,
263
+ network: chainId,
264
+ }),
265
+ router: chosenDep.router,
266
+ factory: chosenDep.poolFactory,
267
+ pool: chosenPair,
268
+ route: chosenRoute.route,
269
+ stable: chosenRoute.route.stable,
270
+ expectedAmountOut: bestOut.toString(),
271
+ minAmountOut: minOut,
272
+ };
273
+ return {
274
+ amountIn: amountInBI.toString(),
275
+ amountOut: bestOut.toString(),
276
+ protocol: this.protocol,
277
+ networkIn,
278
+ networkOut,
279
+ tokenIn,
280
+ tokenOut,
281
+ slippage,
282
+ protocolResponse,
283
+ };
284
+ }
285
+ catch (err) {
286
+ const errorMessage = err?.message ?? String(err);
287
+ throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.PRICE_NOT_FOUND, errorMessage);
288
+ }
289
+ }
290
+ /* ---------------------------
291
+ * QUOTE
292
+ * --------------------------- */
293
+ async fetchQuote(params) {
294
+ const { from, receiver, tokenIn, tokenOut, networkIn, networkOut, slippage } = params;
295
+ try {
296
+ if (!from || !receiver)
297
+ throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, 'Missing from/receiver');
298
+ if (networkIn !== networkOut) {
299
+ throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, 'Ve33Service only supports same-network swaps.');
300
+ }
301
+ const chainId = networkIn;
302
+ const client = this._rpcs[chainId];
303
+ if (!client) {
304
+ throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, `No PublicClient configured for chainId ${chainId}`);
305
+ }
306
+ // Ensure price
307
+ const price = params.priceResponse
308
+ ? params.priceResponse
309
+ : await this.fetchPrice({
310
+ ...params,
311
+ amountIn: params.amountIn,
312
+ tokenIn,
313
+ tokenOut,
314
+ networkIn,
315
+ networkOut,
316
+ slippage,
317
+ });
318
+ const proto = price.protocolResponse;
319
+ const deployments = this.deployments[chainId] ?? [];
320
+ const chosenDep = deployments.find(d => d.router.toLowerCase() === proto.router.toLowerCase() &&
321
+ d.poolFactory.toLowerCase() === proto.factory.toLowerCase()) ?? deployments[0];
322
+ if (!chosenDep) {
323
+ throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.QUOTE_NOT_FOUND, 'Ve33: failed to select a deployment.');
324
+ }
325
+ const isNativeIn = (0, is_native_1.isNative)(tokenIn);
326
+ const isNativeOut = (0, is_native_1.isNative)(tokenOut);
327
+ const fn = this._selectSwapFunction(isNativeIn, isNativeOut);
328
+ const deadline = BigInt(Math.floor(Date.now() / 1000) + 600);
329
+ const isPharaoh = chosenDep.tag === ve33_types_1.Ve33StyleDeploymentEnum.PHARAOH;
330
+ const isBlackhole = chosenDep.tag === ve33_types_1.Ve33StyleDeploymentEnum.BLACKHOLE;
331
+ const swapAbi = isPharaoh
332
+ ? pharaoh_router_abi_1.pharaohRouterAbi
333
+ : isBlackhole
334
+ ? blackhole_router_abi_1.blackholeRouterAbi
335
+ : aerodrome_router_abi_1.aerodromeRouterAbi;
336
+ const handler = ve33_handlers_1.V33_HANDLERS[chosenDep.tag];
337
+ const routeForSwap = [
338
+ handler.normalizeRouteForSwap(proto.route, proto.pool, receiver),
339
+ ];
340
+ let data;
341
+ let value = '0';
342
+ if (fn === 'swapExactETHForTokens') {
343
+ data = (0, viem_1.encodeFunctionData)({
344
+ abi: swapAbi,
345
+ functionName: fn,
346
+ args: [BigInt(proto.minAmountOut), routeForSwap, (0, viem_1.getAddress)(receiver), deadline],
347
+ });
348
+ value = price.amountIn;
349
+ }
350
+ else if (fn === 'swapExactTokensForETH') {
351
+ data = (0, viem_1.encodeFunctionData)({
352
+ abi: swapAbi,
353
+ functionName: fn,
354
+ args: [
355
+ BigInt(price.amountIn),
356
+ BigInt(proto.minAmountOut),
357
+ routeForSwap,
358
+ (0, viem_1.getAddress)(receiver),
359
+ deadline,
360
+ ],
361
+ });
362
+ }
363
+ else {
364
+ data = (0, viem_1.encodeFunctionData)({
365
+ abi: swapAbi,
366
+ functionName: fn,
367
+ args: [
368
+ BigInt(price.amountIn),
369
+ BigInt(proto.minAmountOut),
370
+ routeForSwap,
371
+ (0, viem_1.getAddress)(receiver),
372
+ deadline,
373
+ ],
374
+ });
375
+ }
376
+ const tx = { to: chosenDep.router, data, value };
377
+ const protocolResponse = {
378
+ ...proto,
379
+ functionSelector: fn,
380
+ };
381
+ const evmExecutionPayload = {
382
+ transactionData: tx,
383
+ approval: {
384
+ spender: chosenDep.router,
385
+ token: params.tokenIn,
386
+ amount: price.amountIn,
387
+ txnData: {
388
+ to: params.tokenIn,
389
+ data: (0, viem_1.encodeFunctionData)({
390
+ abi: viem_1.erc20Abi,
391
+ functionName: 'approve',
392
+ args: [chosenDep.router, BigInt(price.amountIn)],
393
+ }),
394
+ value: '0',
395
+ },
396
+ },
397
+ };
398
+ return {
399
+ from: (0, viem_1.getAddress)(from),
400
+ receiver: (0, viem_1.getAddress)(receiver),
401
+ amountIn: price.amountIn,
402
+ amountOut: price.amountOut,
403
+ protocol: this.protocol,
404
+ networkIn,
405
+ networkOut,
406
+ tokenIn,
407
+ tokenOut,
408
+ slippage,
409
+ evmExecutionPayload,
410
+ protocolResponse,
411
+ };
412
+ }
413
+ catch (err) {
414
+ /**
415
+ * Re-throw to bubble up sdkError properly
416
+ */
417
+ throw err;
418
+ }
419
+ }
420
+ /* ---------------------------
421
+ * Internals
422
+ * --------------------------- */
423
+ _validatePath(chainId, path) {
424
+ const [a, b] = path.map(x => (0, viem_1.getAddress)(x));
425
+ const wrap = (addr) => {
426
+ const wrappedNative = wrapped_native_1.wrappedNativeTokens[chainId];
427
+ if (!wrappedNative) {
428
+ throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, `No wrapped native token configured for chainId ${chainId}`);
429
+ }
430
+ return (0, is_native_1.isNative)(addr) ? (0, viem_1.getAddress)(wrappedNative) : addr;
431
+ };
432
+ const tokenInNorm = wrap(a);
433
+ const tokenOutNorm = wrap(b);
434
+ if (tokenInNorm.toLowerCase() === tokenOutNorm.toLowerCase()) {
435
+ throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, 'tokenIn and tokenOut cannot be equal');
436
+ }
437
+ return { tokenInNorm, tokenOutNorm };
438
+ }
439
+ async _discoverPairsAcrossDeployments(params) {
440
+ const { client, deployments, tokenIn, tokenOut } = params;
441
+ const calls = [];
442
+ const metas = [];
443
+ deployments.forEach((d, di) => {
444
+ const handler = ve33_handlers_1.V33_HANDLERS[d.tag];
445
+ const built = handler.buildPairCalls(d, di, tokenIn, tokenOut);
446
+ built.forEach(({ call, meta }) => {
447
+ calls.push(call);
448
+ metas.push(meta);
449
+ });
450
+ });
451
+ if (!calls.length)
452
+ return [];
453
+ const res = await client.multicall({
454
+ allowFailure: true,
455
+ // @ts-ignore mixed-abi multicall typing
456
+ contracts: calls,
457
+ });
458
+ const out = [];
459
+ for (let i = 0; i < res.length; i++) {
460
+ const r = res[i];
461
+ if (!r || r.status !== 'success')
462
+ continue;
463
+ const meta = metas[i];
464
+ if (!meta)
465
+ continue;
466
+ const handler = ve33_handlers_1.V33_HANDLERS[meta.tag];
467
+ const addr = handler.parsePairResult(r.result, meta);
468
+ if (!addr)
469
+ continue;
470
+ out.push({ pair: addr, stable: meta.stable, deploymentIndex: meta.deploymentIndex });
471
+ }
472
+ return out;
473
+ }
474
+ _selectSwapFunction(tokenInIsNative, tokenOutIsNative) {
475
+ if (tokenInIsNative && tokenOutIsNative) {
476
+ throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, 'Native→native swap is not supported.');
477
+ }
478
+ if (tokenInIsNative)
479
+ return 'swapExactETHForTokens';
480
+ if (tokenOutIsNative)
481
+ return 'swapExactTokensForETH';
482
+ return 'swapExactTokensForTokens';
483
+ }
484
+ }
485
+ exports.Ve33Service = Ve33Service;
486
+ //# sourceMappingURL=ve33.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ve33.service.js","sourceRoot":"","sources":["../../../src/protocols/ve33/ve33.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,136 @@
1
+ import { type Abi, type Address, type Chain, type PublicClient } from 'viem';
2
+ import { ChainIdEnum } from '../../types/enums';
3
+ export declare enum Ve33StyleDeploymentEnum {
4
+ AERODROME = "aerodrome",
5
+ VELODROME = "velodrome",
6
+ BLACKHOLE = "blackhole",
7
+ PHARAOH = "pharaoh"
8
+ }
9
+ export type MulticallItem = {
10
+ address: Address;
11
+ abi: Abi;
12
+ functionName: string;
13
+ args: readonly unknown[];
14
+ };
15
+ export type PairCallMeta = {
16
+ tag: Ve33StyleDeploymentEnum;
17
+ deploymentIndex: number;
18
+ stable: boolean;
19
+ };
20
+ export type AmountOutCallMeta = {
21
+ tag: Ve33StyleDeploymentEnum;
22
+ routeIndex: number;
23
+ deploymentIndex: number;
24
+ };
25
+ export interface IV33Handler {
26
+ buildPairCalls: (d: Ve33Deployment, di: number, tokenIn: Address, tokenOut: Address) => {
27
+ call: MulticallItem;
28
+ meta: PairCallMeta;
29
+ }[];
30
+ parsePairResult: (result: unknown, meta: PairCallMeta) => Address | null;
31
+ buildAmountOutCall: (amountIn: bigint, normalizedRoute: unknown, route: Ve33QuoteCandidate, d: Ve33Deployment, routeIndex: number) => {
32
+ call: MulticallItem;
33
+ meta: AmountOutCallMeta;
34
+ } | null;
35
+ parseAmountOutResult: (result: unknown) => bigint;
36
+ normalizeRouteForGetAmountsOut: (r: Ve33Route) => unknown;
37
+ normalizeRouteForSwap: (r: Ve33Route, pair?: Address, receiver?: Address) => unknown;
38
+ }
39
+ export type Ve33DeploymentsByChain = Partial<Record<ChainIdEnum, Ve33Deployment[]>>;
40
+ export type GetPoolAmountOutParams = [bigint, Address, Address];
41
+ export type Ve33Config = {
42
+ rpcs: {
43
+ [network: number]: string;
44
+ };
45
+ v33ChainConfigs: Partial<Record<ChainIdEnum, Chain>>;
46
+ };
47
+ export type Ve33Route = {
48
+ from: Address;
49
+ to: Address;
50
+ stable: boolean;
51
+ factory: Address;
52
+ };
53
+ export type Ve33PriceOverrideParams = {
54
+ /**
55
+ * The pair address to swap through (if known)
56
+ */
57
+ pair?: string;
58
+ /**
59
+ * Whether to use a stable pool (if known)
60
+ * If not provided, both stable and volatile pools will be considered.
61
+ */
62
+ isStable?: boolean;
63
+ /**
64
+ * The pre-calculated amount out minimum for the swap (if known)
65
+ */
66
+ amountOutMin?: string;
67
+ /**
68
+ * The dex that the pair address belongs to
69
+ */
70
+ dex?: Ve33StyleDeploymentEnum;
71
+ };
72
+ export type Ve33Deployment = {
73
+ router: Address;
74
+ poolFactory: Address;
75
+ /**
76
+ * Optional label for debugging / analytics (e.g., "Aerodrome v1").
77
+ */
78
+ tag: Ve33StyleDeploymentEnum;
79
+ };
80
+ export type V33BuildPairCallResponse = {
81
+ call: {
82
+ address: Address;
83
+ abi: Abi;
84
+ functionName: string;
85
+ args: readonly unknown[];
86
+ };
87
+ meta: {
88
+ tag: Ve33StyleDeploymentEnum;
89
+ deploymentIndex: number;
90
+ stable: boolean;
91
+ };
92
+ };
93
+ export type Ve33QuoteProtocolResponse = Ve33PriceProtocolResponse & {
94
+ functionSelector: 'swapExactTokensForTokens' | 'swapExactETHForTokens' | 'swapExactTokensForETH';
95
+ };
96
+ export type Ve33DiscoverPairItem = {
97
+ pair: Address;
98
+ stable: boolean;
99
+ deploymentIndex: number;
100
+ };
101
+ export type Ve33QuoteCandidate = {
102
+ pair: Address;
103
+ route: Ve33Route;
104
+ deploymentIndex: number;
105
+ };
106
+ export type Ve33PriceProtocolResponse = {
107
+ deploymentKey: string;
108
+ router: Address;
109
+ factory: Address;
110
+ pool: Address;
111
+ route: Ve33Route;
112
+ stable: boolean;
113
+ expectedAmountOut: string;
114
+ minAmountOut: string;
115
+ };
116
+ export type Ve33PriceResponse = {
117
+ amountIn: string;
118
+ amountOut: string;
119
+ minAmountOut: string;
120
+ /**
121
+ * Route actually used for best quote (1 hop)
122
+ */
123
+ route: Ve33Route;
124
+ /**
125
+ * Discovered pool address (pair) for route
126
+ */
127
+ pool: Address;
128
+ router: Address;
129
+ };
130
+ export type Ve33DiscoverPairsParams = {
131
+ client: PublicClient;
132
+ deployments: Ve33Deployment[];
133
+ tokenIn: Address;
134
+ tokenOut: Address;
135
+ };
136
+ //# sourceMappingURL=ve33.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ve33.types.d.ts","sourceRoot":"","sources":["../../../src/protocols/ve33/ve33.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Ve33StyleDeploymentEnum = void 0;
4
+ var Ve33StyleDeploymentEnum;
5
+ (function (Ve33StyleDeploymentEnum) {
6
+ Ve33StyleDeploymentEnum["AERODROME"] = "aerodrome";
7
+ Ve33StyleDeploymentEnum["VELODROME"] = "velodrome";
8
+ Ve33StyleDeploymentEnum["BLACKHOLE"] = "blackhole";
9
+ Ve33StyleDeploymentEnum["PHARAOH"] = "pharaoh";
10
+ })(Ve33StyleDeploymentEnum || (exports.Ve33StyleDeploymentEnum = Ve33StyleDeploymentEnum = {}));
11
+ //# sourceMappingURL=ve33.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ve33.types.js","sourceRoot":"","sources":["../../../src/protocols/ve33/ve33.types.ts"],"names":[],"mappings":";;;AAIA,IAAY,uBAKX;AALD,WAAY,uBAAuB;IACjC,kDAAuB,CAAA;IACvB,kDAAuB,CAAA;IACvB,kDAAuB,CAAA;IACvB,8CAAmB,CAAA;AACrB,CAAC,EALW,uBAAuB,uCAAvB,uBAAuB,QAKlC"}