@ael-protocol/sdk 0.1.0 → 0.2.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 (49) hide show
  1. package/dist/abi/market.d.ts +394 -0
  2. package/dist/abi/market.d.ts.map +1 -0
  3. package/dist/abi/market.js +264 -0
  4. package/dist/abi/market.js.map +1 -0
  5. package/dist/agent-wallet.d.ts +79 -0
  6. package/dist/agent-wallet.d.ts.map +1 -0
  7. package/dist/agent-wallet.js +483 -0
  8. package/dist/agent-wallet.js.map +1 -0
  9. package/dist/hub.d.ts +125 -0
  10. package/dist/hub.d.ts.map +1 -0
  11. package/dist/hub.js +237 -0
  12. package/dist/hub.js.map +1 -0
  13. package/dist/index.d.ts +21 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +39 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/market.d.ts +73 -0
  18. package/dist/market.d.ts.map +1 -0
  19. package/dist/market.js +388 -0
  20. package/dist/market.js.map +1 -0
  21. package/dist/marketplace.d.ts +137 -0
  22. package/dist/marketplace.d.ts.map +1 -0
  23. package/dist/marketplace.js +479 -0
  24. package/dist/marketplace.js.map +1 -0
  25. package/dist/networks.d.ts +66 -0
  26. package/dist/networks.d.ts.map +1 -0
  27. package/dist/networks.js +106 -0
  28. package/dist/networks.js.map +1 -0
  29. package/dist/parser.d.ts +39 -0
  30. package/dist/parser.d.ts.map +1 -0
  31. package/dist/parser.js +134 -0
  32. package/dist/parser.js.map +1 -0
  33. package/dist/strategies/dca.d.ts +39 -0
  34. package/dist/strategies/dca.d.ts.map +1 -0
  35. package/dist/strategies/dca.js +124 -0
  36. package/dist/strategies/dca.js.map +1 -0
  37. package/dist/strategies/grid.d.ts +54 -0
  38. package/dist/strategies/grid.d.ts.map +1 -0
  39. package/dist/strategies/grid.js +161 -0
  40. package/dist/strategies/grid.js.map +1 -0
  41. package/dist/strategies/stop-loss.d.ts +55 -0
  42. package/dist/strategies/stop-loss.d.ts.map +1 -0
  43. package/dist/strategies/stop-loss.js +152 -0
  44. package/dist/strategies/stop-loss.js.map +1 -0
  45. package/dist/strategy.d.ts +72 -0
  46. package/dist/strategy.d.ts.map +1 -0
  47. package/dist/strategy.js +78 -0
  48. package/dist/strategy.js.map +1 -0
  49. package/package.json +1 -1
@@ -0,0 +1,479 @@
1
+ "use strict";
2
+ /**
3
+ * AgentMarket - Agent Service Marketplace SDK
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.OrderStatus = exports.AgentMarket = void 0;
7
+ exports.parsePrice = parsePrice;
8
+ const viem_1 = require("viem");
9
+ const accounts_1 = require("viem/accounts");
10
+ const networks_1 = require("./networks");
11
+ const market_1 = require("./abi/market");
12
+ // ERC20 ABI for approvals
13
+ const ERC20_ABI = [
14
+ { type: 'function', name: 'balanceOf', inputs: [{ name: 'account', type: 'address' }], outputs: [{ type: 'uint256' }], stateMutability: 'view' },
15
+ { type: 'function', name: 'allowance', inputs: [{ name: 'owner', type: 'address' }, { name: 'spender', type: 'address' }], outputs: [{ type: 'uint256' }], stateMutability: 'view' },
16
+ { type: 'function', name: 'approve', inputs: [{ name: 'spender', type: 'address' }, { name: 'amount', type: 'uint256' }], outputs: [{ type: 'bool' }], stateMutability: 'nonpayable' },
17
+ { type: 'function', name: 'decimals', inputs: [], outputs: [{ type: 'uint8' }], stateMutability: 'view' },
18
+ ];
19
+ // ============ Helper Functions ============
20
+ /**
21
+ * Parse price string like '0.001 ETH' or '1 USDC' into token address and amount
22
+ */
23
+ function parsePrice(priceStr, network) {
24
+ const parts = priceStr.trim().split(/\s+/);
25
+ if (parts.length !== 2) {
26
+ throw new Error(`Invalid price format: "${priceStr}". Expected format: "0.001 ETH" or "1 USDC"`);
27
+ }
28
+ const [amountStr, symbol] = parts;
29
+ const upperSymbol = symbol.toUpperCase();
30
+ // Resolve token address
31
+ let token;
32
+ if (upperSymbol === 'ETH') {
33
+ token = '0x0000000000000000000000000000000000000000';
34
+ }
35
+ else if (upperSymbol === 'USDC') {
36
+ token = network.tokens.USDC;
37
+ }
38
+ else if (upperSymbol === 'WETH') {
39
+ token = network.tokens.WETH;
40
+ }
41
+ else {
42
+ throw new Error(`Unknown token: ${symbol}. Supported: ETH, USDC, WETH`);
43
+ }
44
+ // Get decimals
45
+ const decimals = (0, networks_1.getTokenDecimals)(token);
46
+ // Parse amount
47
+ const amount = (0, viem_1.parseUnits)(amountStr, decimals);
48
+ return { token, amount, decimals };
49
+ }
50
+ /**
51
+ * Format amount with token symbol
52
+ */
53
+ function formatAmount(amount, token) {
54
+ const decimals = (0, networks_1.getTokenDecimals)(token);
55
+ const symbol = (0, networks_1.getTokenSymbol)(token);
56
+ return `${(0, viem_1.formatUnits)(amount, decimals)} ${symbol}`;
57
+ }
58
+ /**
59
+ * Get status name from enum
60
+ */
61
+ function getStatusName(status) {
62
+ const names = ['None', 'Pending', 'Delivered', 'Confirmed', 'Disputed', 'Refunded', 'Cancelled'];
63
+ return names[status] || 'Unknown';
64
+ }
65
+ /**
66
+ * Hash service type string to bytes32
67
+ */
68
+ function hashServiceType(type) {
69
+ return (0, viem_1.keccak256)((0, viem_1.toBytes)(type));
70
+ }
71
+ // ============ AgentMarket Class ============
72
+ class AgentMarket {
73
+ address;
74
+ publicClient;
75
+ walletClient;
76
+ network;
77
+ constructor(config) {
78
+ const account = (0, accounts_1.privateKeyToAccount)(config.privateKey);
79
+ this.address = account.address;
80
+ this.network = (0, networks_1.getNetwork)(config.network || 'base');
81
+ const rpcUrl = config.rpcUrl || this.network.rpcUrl;
82
+ this.publicClient = (0, viem_1.createPublicClient)({
83
+ chain: this.network.chain,
84
+ transport: (0, viem_1.http)(rpcUrl),
85
+ });
86
+ this.walletClient = (0, viem_1.createWalletClient)({
87
+ account,
88
+ chain: this.network.chain,
89
+ transport: (0, viem_1.http)(rpcUrl),
90
+ });
91
+ }
92
+ // ============ Provider Functions ============
93
+ /**
94
+ * Register a new service
95
+ */
96
+ async registerService(params) {
97
+ const { token, amount } = parsePrice(params.price, this.network);
98
+ const serviceTypeHash = hashServiceType(params.type);
99
+ console.log(`[AgentMarket] Registering service: ${params.type}`);
100
+ console.log(`[AgentMarket] Price: ${params.price}`);
101
+ const hash = await this.walletClient.writeContract({
102
+ address: this.network.contracts.market,
103
+ abi: market_1.MARKET_ABI,
104
+ functionName: 'registerService',
105
+ args: [serviceTypeHash, params.description, token, amount],
106
+ });
107
+ console.log(`[AgentMarket] TX: ${hash}`);
108
+ const receipt = await this.publicClient.waitForTransactionReceipt({ hash });
109
+ // Extract serviceId from ServiceRegistered event
110
+ const event = receipt.logs.find(log => {
111
+ try {
112
+ return log.topics[0] === (0, viem_1.keccak256)((0, viem_1.toBytes)('ServiceRegistered(bytes32,address,bytes32,address,uint256)'));
113
+ }
114
+ catch {
115
+ return false;
116
+ }
117
+ });
118
+ if (event && event.topics[1]) {
119
+ const serviceId = event.topics[1];
120
+ console.log(`[AgentMarket] Service registered: ${serviceId}`);
121
+ return serviceId;
122
+ }
123
+ throw new Error('Failed to get serviceId from event');
124
+ }
125
+ /**
126
+ * Update service metadata and price
127
+ */
128
+ async updateService(serviceId, description, price) {
129
+ const { amount } = parsePrice(price, this.network);
130
+ const hash = await this.walletClient.writeContract({
131
+ address: this.network.contracts.market,
132
+ abi: market_1.MARKET_ABI,
133
+ functionName: 'updateService',
134
+ args: [serviceId, description, amount],
135
+ });
136
+ await this.publicClient.waitForTransactionReceipt({ hash });
137
+ console.log(`[AgentMarket] Service updated: ${serviceId}`);
138
+ }
139
+ /**
140
+ * Deactivate a service
141
+ */
142
+ async deactivateService(serviceId) {
143
+ const hash = await this.walletClient.writeContract({
144
+ address: this.network.contracts.market,
145
+ abi: market_1.MARKET_ABI,
146
+ functionName: 'deactivateService',
147
+ args: [serviceId],
148
+ });
149
+ await this.publicClient.waitForTransactionReceipt({ hash });
150
+ console.log(`[AgentMarket] Service deactivated: ${serviceId}`);
151
+ }
152
+ /**
153
+ * Activate a service
154
+ */
155
+ async activateService(serviceId) {
156
+ const hash = await this.walletClient.writeContract({
157
+ address: this.network.contracts.market,
158
+ abi: market_1.MARKET_ABI,
159
+ functionName: 'activateService',
160
+ args: [serviceId],
161
+ });
162
+ await this.publicClient.waitForTransactionReceipt({ hash });
163
+ console.log(`[AgentMarket] Service activated: ${serviceId}`);
164
+ }
165
+ /**
166
+ * Deliver an order (Provider calls this)
167
+ */
168
+ async deliver(orderId, params) {
169
+ const deliveryHash = params.hash || (0, viem_1.keccak256)((0, viem_1.toBytes)(params.result));
170
+ console.log(`[AgentMarket] Delivering order: ${orderId}`);
171
+ const hash = await this.walletClient.writeContract({
172
+ address: this.network.contracts.market,
173
+ abi: market_1.MARKET_ABI,
174
+ functionName: 'deliverOrder',
175
+ args: [orderId, deliveryHash],
176
+ });
177
+ await this.publicClient.waitForTransactionReceipt({ hash });
178
+ console.log(`[AgentMarket] Order delivered`);
179
+ }
180
+ /**
181
+ * Claim payment after confirmation window expires (Provider calls this)
182
+ */
183
+ async claim(orderId) {
184
+ console.log(`[AgentMarket] Claiming payment: ${orderId}`);
185
+ const hash = await this.walletClient.writeContract({
186
+ address: this.network.contracts.market,
187
+ abi: market_1.MARKET_ABI,
188
+ functionName: 'claimPayment',
189
+ args: [orderId],
190
+ });
191
+ await this.publicClient.waitForTransactionReceipt({ hash });
192
+ console.log(`[AgentMarket] Payment claimed`);
193
+ }
194
+ // ============ Buyer Functions ============
195
+ /**
196
+ * Buy a service (create order)
197
+ */
198
+ async buy(serviceId) {
199
+ // Get service info
200
+ const service = await this.getService(serviceId);
201
+ if (!service) {
202
+ throw new Error(`Service not found: ${serviceId}`);
203
+ }
204
+ if (!service.active) {
205
+ throw new Error(`Service not active: ${serviceId}`);
206
+ }
207
+ console.log(`[AgentMarket] Buying service: ${serviceId}`);
208
+ console.log(`[AgentMarket] Price: ${service.price}`);
209
+ // Handle ERC20 approval if needed
210
+ if (service.paymentToken !== '0x0000000000000000000000000000000000000000') {
211
+ await this.ensureApproval(service.paymentToken, service.priceRaw);
212
+ }
213
+ const hash = await this.walletClient.writeContract({
214
+ address: this.network.contracts.market,
215
+ abi: market_1.MARKET_ABI,
216
+ functionName: 'createOrder',
217
+ args: [serviceId],
218
+ value: service.paymentToken === '0x0000000000000000000000000000000000000000' ? service.priceRaw : 0n,
219
+ });
220
+ console.log(`[AgentMarket] TX: ${hash}`);
221
+ const receipt = await this.publicClient.waitForTransactionReceipt({ hash });
222
+ // Extract orderId from OrderCreated event
223
+ const event = receipt.logs.find(log => {
224
+ try {
225
+ return log.topics[0] === (0, viem_1.keccak256)((0, viem_1.toBytes)('OrderCreated(bytes32,bytes32,address,address,uint256,uint256)'));
226
+ }
227
+ catch {
228
+ return false;
229
+ }
230
+ });
231
+ if (event && event.topics[1]) {
232
+ const orderId = event.topics[1];
233
+ console.log(`[AgentMarket] Order created: ${orderId}`);
234
+ return this.getOrder(orderId);
235
+ }
236
+ throw new Error('Failed to get orderId from event');
237
+ }
238
+ /**
239
+ * Confirm order receipt (Buyer calls this)
240
+ */
241
+ async confirm(orderId) {
242
+ console.log(`[AgentMarket] Confirming order: ${orderId}`);
243
+ const hash = await this.walletClient.writeContract({
244
+ address: this.network.contracts.market,
245
+ abi: market_1.MARKET_ABI,
246
+ functionName: 'confirmOrder',
247
+ args: [orderId],
248
+ });
249
+ await this.publicClient.waitForTransactionReceipt({ hash });
250
+ console.log(`[AgentMarket] Order confirmed`);
251
+ }
252
+ /**
253
+ * Dispute an order (Buyer calls this)
254
+ */
255
+ async dispute(orderId, reason) {
256
+ console.log(`[AgentMarket] Disputing order: ${orderId}`);
257
+ console.log(`[AgentMarket] Reason: ${reason}`);
258
+ const hash = await this.walletClient.writeContract({
259
+ address: this.network.contracts.market,
260
+ abi: market_1.MARKET_ABI,
261
+ functionName: 'disputeOrder',
262
+ args: [orderId, reason],
263
+ });
264
+ await this.publicClient.waitForTransactionReceipt({ hash });
265
+ console.log(`[AgentMarket] Order disputed`);
266
+ }
267
+ /**
268
+ * Cancel order before delivery (Buyer calls this)
269
+ */
270
+ async cancel(orderId) {
271
+ console.log(`[AgentMarket] Cancelling order: ${orderId}`);
272
+ const hash = await this.walletClient.writeContract({
273
+ address: this.network.contracts.market,
274
+ abi: market_1.MARKET_ABI,
275
+ functionName: 'cancelOrder',
276
+ args: [orderId],
277
+ });
278
+ await this.publicClient.waitForTransactionReceipt({ hash });
279
+ console.log(`[AgentMarket] Order cancelled`);
280
+ }
281
+ // ============ Query Functions ============
282
+ /**
283
+ * Get service info by ID
284
+ */
285
+ async getService(serviceId) {
286
+ const result = await this.publicClient.readContract({
287
+ address: this.network.contracts.market,
288
+ abi: market_1.MARKET_ABI,
289
+ functionName: 'getService',
290
+ args: [serviceId],
291
+ });
292
+ if (result.provider === '0x0000000000000000000000000000000000000000') {
293
+ return null;
294
+ }
295
+ return {
296
+ serviceId,
297
+ provider: result.provider,
298
+ type: result.serviceType,
299
+ description: result.metadata,
300
+ paymentToken: result.paymentToken,
301
+ paymentTokenSymbol: (0, networks_1.getTokenSymbol)(result.paymentToken),
302
+ price: formatAmount(result.price, result.paymentToken),
303
+ priceRaw: result.price,
304
+ active: result.active,
305
+ completedCount: Number(result.totalCompleted),
306
+ disputeCount: Number(result.totalDisputed),
307
+ createdAt: Number(result.createdAt),
308
+ };
309
+ }
310
+ /**
311
+ * Get order info by ID
312
+ */
313
+ async getOrder(orderId) {
314
+ const result = await this.publicClient.readContract({
315
+ address: this.network.contracts.market,
316
+ abi: market_1.MARKET_ABI,
317
+ functionName: 'getOrder',
318
+ args: [orderId],
319
+ });
320
+ return {
321
+ orderId,
322
+ serviceId: result.serviceId,
323
+ buyer: result.buyer,
324
+ provider: result.provider,
325
+ paymentToken: result.paymentToken,
326
+ amount: formatAmount(result.amount, result.paymentToken),
327
+ amountRaw: result.amount,
328
+ createdAt: Number(result.createdAt),
329
+ deliveredAt: Number(result.deliveredAt),
330
+ deadline: Number(result.deadline),
331
+ status: result.status,
332
+ statusName: getStatusName(result.status),
333
+ deliveryHash: result.deliveryHash,
334
+ disputeReason: result.disputeReason,
335
+ };
336
+ }
337
+ /**
338
+ * List services (query events)
339
+ */
340
+ async listServices(params = {}) {
341
+ const { type, provider, limit = 50 } = params;
342
+ const currentBlock = await this.publicClient.getBlockNumber();
343
+ const fromBlock = currentBlock > 50000n ? currentBlock - 50000n : 0n;
344
+ // Build filter args
345
+ const filterArgs = {};
346
+ if (type) {
347
+ filterArgs.serviceType = hashServiceType(type);
348
+ }
349
+ if (provider) {
350
+ filterArgs.provider = provider;
351
+ }
352
+ const logs = await this.publicClient.getLogs({
353
+ address: this.network.contracts.market,
354
+ event: {
355
+ type: 'event',
356
+ name: 'ServiceRegistered',
357
+ inputs: [
358
+ { name: 'serviceId', type: 'bytes32', indexed: true },
359
+ { name: 'provider', type: 'address', indexed: true },
360
+ { name: 'serviceType', type: 'bytes32', indexed: true },
361
+ { name: 'paymentToken', type: 'address', indexed: false },
362
+ { name: 'price', type: 'uint256', indexed: false },
363
+ ],
364
+ },
365
+ args: filterArgs,
366
+ fromBlock,
367
+ toBlock: 'latest',
368
+ });
369
+ // Get unique service IDs (most recent first)
370
+ const serviceIds = [...new Set(logs.map(log => log.args.serviceId))].slice(0, limit);
371
+ // Fetch current service info
372
+ const services = [];
373
+ for (const serviceId of serviceIds) {
374
+ const service = await this.getService(serviceId);
375
+ if (service) {
376
+ services.push(service);
377
+ }
378
+ }
379
+ return services;
380
+ }
381
+ /**
382
+ * Get my services (as provider)
383
+ */
384
+ async myServices() {
385
+ const serviceIds = await this.publicClient.readContract({
386
+ address: this.network.contracts.market,
387
+ abi: market_1.MARKET_ABI,
388
+ functionName: 'getProviderServices',
389
+ args: [this.address],
390
+ });
391
+ const services = [];
392
+ for (const serviceId of serviceIds) {
393
+ const service = await this.getService(serviceId);
394
+ if (service) {
395
+ services.push(service);
396
+ }
397
+ }
398
+ return services;
399
+ }
400
+ /**
401
+ * Get my orders (as buyer or provider)
402
+ */
403
+ async myOrders(role = 'buyer') {
404
+ const currentBlock = await this.publicClient.getBlockNumber();
405
+ const fromBlock = currentBlock > 50000n ? currentBlock - 50000n : 0n;
406
+ const filterArgs = {};
407
+ if (role === 'buyer') {
408
+ filterArgs.buyer = this.address;
409
+ }
410
+ const logs = await this.publicClient.getLogs({
411
+ address: this.network.contracts.market,
412
+ event: {
413
+ type: 'event',
414
+ name: 'OrderCreated',
415
+ inputs: [
416
+ { name: 'orderId', type: 'bytes32', indexed: true },
417
+ { name: 'serviceId', type: 'bytes32', indexed: true },
418
+ { name: 'buyer', type: 'address', indexed: true },
419
+ { name: 'provider', type: 'address', indexed: false },
420
+ { name: 'amount', type: 'uint256', indexed: false },
421
+ { name: 'deadline', type: 'uint256', indexed: false },
422
+ ],
423
+ },
424
+ args: filterArgs,
425
+ fromBlock,
426
+ toBlock: 'latest',
427
+ });
428
+ // Filter by provider if needed
429
+ let filteredLogs = logs;
430
+ if (role === 'provider') {
431
+ filteredLogs = logs.filter(log => log.args.provider === this.address);
432
+ }
433
+ // Get order info for each
434
+ const orders = [];
435
+ for (const log of filteredLogs.reverse()) { // Most recent first
436
+ const orderId = log.args.orderId;
437
+ const order = await this.getOrder(orderId);
438
+ orders.push(order);
439
+ }
440
+ return orders;
441
+ }
442
+ /**
443
+ * Get confirmation window duration
444
+ */
445
+ async getConfirmationWindow() {
446
+ const window = await this.publicClient.readContract({
447
+ address: this.network.contracts.market,
448
+ abi: market_1.MARKET_ABI,
449
+ functionName: 'confirmationWindow',
450
+ args: [],
451
+ });
452
+ return Number(window);
453
+ }
454
+ // ============ Private Methods ============
455
+ async ensureApproval(token, amount) {
456
+ const allowance = await this.publicClient.readContract({
457
+ address: token,
458
+ abi: ERC20_ABI,
459
+ functionName: 'allowance',
460
+ args: [this.address, this.network.contracts.market],
461
+ });
462
+ if (allowance < amount) {
463
+ console.log(`[AgentMarket] Approving ${(0, networks_1.getTokenSymbol)(token)}...`);
464
+ const hash = await this.walletClient.writeContract({
465
+ address: token,
466
+ abi: ERC20_ABI,
467
+ functionName: 'approve',
468
+ args: [this.network.contracts.market, viem_1.maxUint256],
469
+ });
470
+ await this.publicClient.waitForTransactionReceipt({ hash });
471
+ console.log(`[AgentMarket] Approved`);
472
+ }
473
+ }
474
+ }
475
+ exports.AgentMarket = AgentMarket;
476
+ // Re-export types and utilities
477
+ var market_2 = require("./abi/market");
478
+ Object.defineProperty(exports, "OrderStatus", { enumerable: true, get: function () { return market_2.OrderStatus; } });
479
+ //# sourceMappingURL=marketplace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marketplace.js","sourceRoot":"","sources":["../src/marketplace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Network configurations for AEL Protocol
3
+ */
4
+ import type { Address } from 'viem';
5
+ import { base, baseSepolia } from 'viem/chains';
6
+ export interface NetworkConfig {
7
+ chainId: number;
8
+ chain: typeof base | typeof baseSepolia;
9
+ name: string;
10
+ rpcUrl: string;
11
+ contracts: {
12
+ router: Address;
13
+ solverRegistry: Address;
14
+ feeVault: Address;
15
+ market: Address;
16
+ };
17
+ tokens: {
18
+ ETH: Address;
19
+ WETH: Address;
20
+ USDC: Address;
21
+ };
22
+ uniswap: {
23
+ quoterV2: Address;
24
+ swapRouter: Address;
25
+ factory: Address;
26
+ };
27
+ explorer: string;
28
+ }
29
+ export declare const NETWORKS: Record<string, NetworkConfig>;
30
+ export declare const TOKEN_INFO: Record<string, {
31
+ symbol: string;
32
+ decimals: number;
33
+ }>;
34
+ export declare const EIP712_DOMAIN: {
35
+ name: string;
36
+ version: string;
37
+ };
38
+ export declare const INTENT_TYPES: {
39
+ readonly AgentIntent: readonly [{
40
+ readonly name: "agent";
41
+ readonly type: "address";
42
+ }, {
43
+ readonly name: "tokenIn";
44
+ readonly type: "address";
45
+ }, {
46
+ readonly name: "tokenOut";
47
+ readonly type: "address";
48
+ }, {
49
+ readonly name: "amountIn";
50
+ readonly type: "uint256";
51
+ }, {
52
+ readonly name: "minAmountOut";
53
+ readonly type: "uint256";
54
+ }, {
55
+ readonly name: "deadline";
56
+ readonly type: "uint256";
57
+ }, {
58
+ readonly name: "nonce";
59
+ readonly type: "uint256";
60
+ }];
61
+ };
62
+ export declare function getNetwork(name: string): NetworkConfig;
63
+ export declare function resolveToken(symbol: string, network: NetworkConfig): Address;
64
+ export declare function getTokenDecimals(address: Address): number;
65
+ export declare function getTokenSymbol(address: Address): string;
66
+ //# sourceMappingURL=networks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"networks.d.ts","sourceRoot":"","sources":["../src/networks.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,IAAI,GAAG,OAAO,WAAW,CAAC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE;QACT,MAAM,EAAE,OAAO,CAAC;QAChB,cAAc,EAAE,OAAO,CAAC;QACxB,QAAQ,EAAE,OAAO,CAAC;QAClB,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,MAAM,EAAE;QACN,GAAG,EAAE,OAAO,CAAC;QACb,IAAI,EAAE,OAAO,CAAC;QACd,IAAI,EAAE,OAAO,CAAC;KACf,CAAC;IACF,OAAO,EAAE;QACP,QAAQ,EAAE,OAAO,CAAC;QAClB,UAAU,EAAE,OAAO,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CA+ClD,CAAC;AAGF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAK3E,CAAC;AAGF,eAAO,MAAM,aAAa;;;CAGzB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;CAUf,CAAC;AAEX,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAMtD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAO5E;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAGzD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAGvD"}