@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.
- package/dist/abi/market.d.ts +394 -0
- package/dist/abi/market.d.ts.map +1 -0
- package/dist/abi/market.js +264 -0
- package/dist/abi/market.js.map +1 -0
- package/dist/agent-wallet.d.ts +79 -0
- package/dist/agent-wallet.d.ts.map +1 -0
- package/dist/agent-wallet.js +483 -0
- package/dist/agent-wallet.js.map +1 -0
- package/dist/hub.d.ts +125 -0
- package/dist/hub.d.ts.map +1 -0
- package/dist/hub.js +237 -0
- package/dist/hub.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +39 -1
- package/dist/index.js.map +1 -1
- package/dist/market.d.ts +73 -0
- package/dist/market.d.ts.map +1 -0
- package/dist/market.js +388 -0
- package/dist/market.js.map +1 -0
- package/dist/marketplace.d.ts +137 -0
- package/dist/marketplace.d.ts.map +1 -0
- package/dist/marketplace.js +479 -0
- package/dist/marketplace.js.map +1 -0
- package/dist/networks.d.ts +66 -0
- package/dist/networks.d.ts.map +1 -0
- package/dist/networks.js +106 -0
- package/dist/networks.js.map +1 -0
- package/dist/parser.d.ts +39 -0
- package/dist/parser.d.ts.map +1 -0
- package/dist/parser.js +134 -0
- package/dist/parser.js.map +1 -0
- package/dist/strategies/dca.d.ts +39 -0
- package/dist/strategies/dca.d.ts.map +1 -0
- package/dist/strategies/dca.js +124 -0
- package/dist/strategies/dca.js.map +1 -0
- package/dist/strategies/grid.d.ts +54 -0
- package/dist/strategies/grid.d.ts.map +1 -0
- package/dist/strategies/grid.js +161 -0
- package/dist/strategies/grid.js.map +1 -0
- package/dist/strategies/stop-loss.d.ts +55 -0
- package/dist/strategies/stop-loss.d.ts.map +1 -0
- package/dist/strategies/stop-loss.js +152 -0
- package/dist/strategies/stop-loss.js.map +1 -0
- package/dist/strategy.d.ts +72 -0
- package/dist/strategy.d.ts.map +1 -0
- package/dist/strategy.js +78 -0
- package/dist/strategy.js.map +1 -0
- 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":";AAAA;;GAEG;;;AA0FH,gCA4BC;AApHD,+BAac;AACd,4CAAoD;AACpD,yCAA8F;AAC9F,yCAAuD;AAEvD,0BAA0B;AAC1B,MAAM,SAAS,GAAG;IAChB,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE;IAChJ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE;IACpL,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,EAAE,YAAY,EAAE;IACtL,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE;CACjG,CAAC;AA2DX,6CAA6C;AAE7C;;GAEG;AACH,SAAgB,UAAU,CAAC,QAAgB,EAAE,OAAsB;IACjE,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,6CAA6C,CAAC,CAAC;IACnG,CAAC;IAED,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;IAClC,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAEzC,wBAAwB;IACxB,IAAI,KAAc,CAAC;IACnB,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;QAC1B,KAAK,GAAG,4CAA4C,CAAC;IACvD,CAAC;SAAM,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;QAClC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;IAC9B,CAAC;SAAM,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;QAClC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,kBAAkB,MAAM,8BAA8B,CAAC,CAAC;IAC1E,CAAC;IAED,eAAe;IACf,MAAM,QAAQ,GAAG,IAAA,2BAAgB,EAAC,KAAK,CAAC,CAAC;IAEzC,eAAe;IACf,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAE/C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,MAAc,EAAE,KAAc;IAClD,MAAM,QAAQ,GAAG,IAAA,2BAAgB,EAAC,KAAK,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,IAAA,yBAAc,EAAC,KAAK,CAAC,CAAC;IACrC,OAAO,GAAG,IAAA,kBAAW,EAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,MAAM,EAAE,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,MAAc;IACnC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IACjG,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,IAAA,gBAAS,EAAC,IAAA,cAAO,EAAC,IAAI,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,8CAA8C;AAE9C,MAAa,WAAW;IACN,OAAO,CAAU;IAChB,YAAY,CAAe;IAC3B,YAAY,CAAe;IAC3B,OAAO,CAAgB;IAExC,YAAY,MAAyB;QACnC,MAAM,OAAO,GAAG,IAAA,8BAAmB,EAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAA,qBAAU,EAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC;QAEpD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QAEpD,IAAI,CAAC,YAAY,GAAG,IAAA,yBAAkB,EAAC;YACrC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;YACzB,SAAS,EAAE,IAAA,WAAI,EAAC,MAAM,CAAC;SACxB,CAAiB,CAAC;QAEnB,IAAI,CAAC,YAAY,GAAG,IAAA,yBAAkB,EAAC;YACrC,OAAO;YACP,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;YACzB,SAAS,EAAE,IAAA,WAAI,EAAC,MAAM,CAAC;SACxB,CAAiB,CAAC;IACrB,CAAC;IAED,+CAA+C;IAE/C;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,MAA6B;QACjD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACjE,MAAM,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAErD,OAAO,CAAC,GAAG,CAAC,sCAAsC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,wBAAwB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAEpD,MAAM,IAAI,GAAG,MAAO,IAAI,CAAC,YAAoB,CAAC,aAAa,CAAC;YAC1D,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM;YACtC,GAAG,EAAE,mBAAU;YACf,YAAY,EAAE,iBAAiB;YAC/B,IAAI,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC;SAC3D,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;QAEzC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5E,iDAAiD;QACjD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACpC,IAAI,CAAC;gBACH,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAA,gBAAS,EAAC,IAAA,cAAO,EAAC,4DAA4D,CAAC,CAAC,CAAC;YAC5G,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAQ,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,qCAAqC,SAAS,EAAE,CAAC,CAAC;YAC9D,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,SAAc,EAAE,WAAmB,EAAE,KAAa;QACpE,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEnD,MAAM,IAAI,GAAG,MAAO,IAAI,CAAC,YAAoB,CAAC,aAAa,CAAC;YAC1D,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM;YACtC,GAAG,EAAE,mBAAU;YACf,YAAY,EAAE,eAAe;YAC7B,IAAI,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC;SACvC,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,kCAAkC,SAAS,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,SAAc;QACpC,MAAM,IAAI,GAAG,MAAO,IAAI,CAAC,YAAoB,CAAC,aAAa,CAAC;YAC1D,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM;YACtC,GAAG,EAAE,mBAAU;YACf,YAAY,EAAE,mBAAmB;YACjC,IAAI,EAAE,CAAC,SAAS,CAAC;SAClB,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,sCAAsC,SAAS,EAAE,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,SAAc;QAClC,MAAM,IAAI,GAAG,MAAO,IAAI,CAAC,YAAoB,CAAC,aAAa,CAAC;YAC1D,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM;YACtC,GAAG,EAAE,mBAAU;YACf,YAAY,EAAE,iBAAiB;YAC/B,IAAI,EAAE,CAAC,SAAS,CAAC;SAClB,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,oCAAoC,SAAS,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,OAAY,EAAE,MAAqB;QAC/C,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,IAAI,IAAA,gBAAS,EAAC,IAAA,cAAO,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAEtE,OAAO,CAAC,GAAG,CAAC,mCAAmC,OAAO,EAAE,CAAC,CAAC;QAE1D,MAAM,IAAI,GAAG,MAAO,IAAI,CAAC,YAAoB,CAAC,aAAa,CAAC;YAC1D,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM;YACtC,GAAG,EAAE,mBAAU;YACf,YAAY,EAAE,cAAc;YAC5B,IAAI,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC;SAC9B,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,OAAY;QACtB,OAAO,CAAC,GAAG,CAAC,mCAAmC,OAAO,EAAE,CAAC,CAAC;QAE1D,MAAM,IAAI,GAAG,MAAO,IAAI,CAAC,YAAoB,CAAC,aAAa,CAAC;YAC1D,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM;YACtC,GAAG,EAAE,mBAAU;YACf,YAAY,EAAE,cAAc;YAC5B,IAAI,EAAE,CAAC,OAAO,CAAC;SAChB,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC/C,CAAC;IAED,4CAA4C;IAE5C;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,SAAc;QACtB,mBAAmB;QACnB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,iCAAiC,SAAS,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,wBAAwB,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QAErD,kCAAkC;QAClC,IAAI,OAAO,CAAC,YAAY,KAAK,4CAA4C,EAAE,CAAC;YAC1E,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,IAAI,GAAG,MAAO,IAAI,CAAC,YAAoB,CAAC,aAAa,CAAC;YAC1D,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM;YACtC,GAAG,EAAE,mBAAU;YACf,YAAY,EAAE,aAAa;YAC3B,IAAI,EAAE,CAAC,SAAS,CAAC;YACjB,KAAK,EAAE,OAAO,CAAC,YAAY,KAAK,4CAA4C,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;SACrG,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;QAEzC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5E,0CAA0C;QAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACpC,IAAI,CAAC;gBACH,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAA,gBAAS,EAAC,IAAA,cAAO,EAAC,+DAA+D,CAAC,CAAC,CAAC;YAC/G,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAQ,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,gCAAgC,OAAO,EAAE,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,OAAY;QACxB,OAAO,CAAC,GAAG,CAAC,mCAAmC,OAAO,EAAE,CAAC,CAAC;QAE1D,MAAM,IAAI,GAAG,MAAO,IAAI,CAAC,YAAoB,CAAC,aAAa,CAAC;YAC1D,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM;YACtC,GAAG,EAAE,mBAAU;YACf,YAAY,EAAE,cAAc;YAC5B,IAAI,EAAE,CAAC,OAAO,CAAC;SAChB,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,OAAY,EAAE,MAAc;QACxC,OAAO,CAAC,GAAG,CAAC,kCAAkC,OAAO,EAAE,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAC;QAE/C,MAAM,IAAI,GAAG,MAAO,IAAI,CAAC,YAAoB,CAAC,aAAa,CAAC;YAC1D,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM;YACtC,GAAG,EAAE,mBAAU;YACf,YAAY,EAAE,cAAc;YAC5B,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;SACxB,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,OAAY;QACvB,OAAO,CAAC,GAAG,CAAC,mCAAmC,OAAO,EAAE,CAAC,CAAC;QAE1D,MAAM,IAAI,GAAG,MAAO,IAAI,CAAC,YAAoB,CAAC,aAAa,CAAC;YAC1D,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM;YACtC,GAAG,EAAE,mBAAU;YACf,YAAY,EAAE,aAAa;YAC3B,IAAI,EAAE,CAAC,OAAO,CAAC;SAChB,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC/C,CAAC;IAED,4CAA4C;IAE5C;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,SAAc;QAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YAClD,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM;YACtC,GAAG,EAAE,mBAAU;YACf,YAAY,EAAE,YAAY;YAC1B,IAAI,EAAE,CAAC,SAAS,CAAC;SAClB,CAAQ,CAAC;QAEV,IAAI,MAAM,CAAC,QAAQ,KAAK,4CAA4C,EAAE,CAAC;YACrE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,SAAS;YACT,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,IAAI,EAAE,MAAM,CAAC,WAAW;YACxB,WAAW,EAAE,MAAM,CAAC,QAAQ;YAC5B,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,kBAAkB,EAAE,IAAA,yBAAc,EAAC,MAAM,CAAC,YAAY,CAAC;YACvD,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC;YACtD,QAAQ,EAAE,MAAM,CAAC,KAAK;YACtB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC;YAC7C,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;YAC1C,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;SACpC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAY;QACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YAClD,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM;YACtC,GAAG,EAAE,mBAAU;YACf,YAAY,EAAE,UAAU;YACxB,IAAI,EAAE,CAAC,OAAO,CAAC;SAChB,CAAQ,CAAC;QAEV,OAAO;YACL,OAAO;YACP,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC;YACxD,SAAS,EAAE,MAAM,CAAC,MAAM;YACxB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;YACnC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;YACvC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;YACjC,MAAM,EAAE,MAAM,CAAC,MAAqB;YACpC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC;YACxC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,aAAa,EAAE,MAAM,CAAC,aAAa;SACpC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,SAA6B,EAAE;QAChD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC;QAE9C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;QAC9D,MAAM,SAAS,GAAG,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAErE,oBAAoB;QACpB,MAAM,UAAU,GAAQ,EAAE,CAAC;QAC3B,IAAI,IAAI,EAAE,CAAC;YACT,UAAU,CAAC,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,QAAQ,EAAE,CAAC;YACb,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACjC,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;YAC3C,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM;YACtC,KAAK,EAAE;gBACL,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,mBAAmB;gBACzB,MAAM,EAAE;oBACN,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;oBACrD,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;oBACpD,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;oBACvD,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;oBACzD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;iBACnD;aACF;YACD,IAAI,EAAE,UAAU;YAChB,SAAS;YACT,OAAO,EAAE,QAAQ;SAClB,CAAC,CAAC;QAEH,6CAA6C;QAC7C,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAE5F,6BAA6B;QAC7B,MAAM,QAAQ,GAAkB,EAAE,CAAC;QACnC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YACjD,IAAI,OAAO,EAAE,CAAC;gBACZ,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YACtD,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM;YACtC,GAAG,EAAE,mBAAU;YACf,YAAY,EAAE,qBAAqB;YACnC,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;SACrB,CAAU,CAAC;QAEZ,MAAM,QAAQ,GAAkB,EAAE,CAAC;QACnC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YACjD,IAAI,OAAO,EAAE,CAAC;gBACZ,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,OAA6B,OAAO;QACjD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;QAC9D,MAAM,SAAS,GAAG,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAErE,MAAM,UAAU,GAAQ,EAAE,CAAC;QAC3B,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;QAClC,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;YAC3C,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM;YACtC,KAAK,EAAE;gBACL,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE;oBACN,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;oBACnD,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;oBACrD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;oBACjD,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;oBACrD,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;oBACnD,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;iBACtD;aACF;YACD,IAAI,EAAE,UAAU;YAChB,SAAS;YACT,OAAO,EAAE,QAAQ;SAClB,CAAC,CAAC;QAEH,+BAA+B;QAC/B,IAAI,YAAY,GAAG,IAAI,CAAC;QACxB,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC;QACxE,CAAC;QAED,0BAA0B;QAC1B,MAAM,MAAM,GAAgB,EAAE,CAAC;QAC/B,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,oBAAoB;YAC9D,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,OAAc,CAAC;YACxC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,qBAAqB;QACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YAClD,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM;YACtC,GAAG,EAAE,mBAAU;YACf,YAAY,EAAE,oBAAoB;YAClC,IAAI,EAAE,EAAE;SACT,CAAW,CAAC;QAEb,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAED,4CAA4C;IAEpC,KAAK,CAAC,cAAc,CAAC,KAAc,EAAE,MAAc;QACzD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YACrD,OAAO,EAAE,KAAK;YACd,GAAG,EAAE,SAAS;YACd,YAAY,EAAE,WAAW;YACzB,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;SACpD,CAAC,CAAC;QAEH,IAAI,SAAS,GAAG,MAAM,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAA,yBAAc,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACnE,MAAM,IAAI,GAAG,MAAO,IAAI,CAAC,YAAoB,CAAC,aAAa,CAAC;gBAC1D,OAAO,EAAE,KAAK;gBACd,GAAG,EAAE,SAAS;gBACd,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,iBAAU,CAAC;aAClD,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;CACF;AAzdD,kCAydC;AAED,gCAAgC;AAChC,uCAA2C;AAAlC,qGAAA,WAAW,OAAA"}
|
|
@@ -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"}
|