@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
package/dist/hub.d.ts
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentHub - Multi-Agent Collaboration
|
|
3
|
+
* Coordinates multiple AI agents for trading strategies
|
|
4
|
+
*/
|
|
5
|
+
import { EventEmitter } from 'events';
|
|
6
|
+
import type { AgentWallet, TradeResult } from './agent-wallet';
|
|
7
|
+
export interface AgentConfig {
|
|
8
|
+
role: 'signal-provider' | 'executor' | 'analyzer' | 'risk-manager';
|
|
9
|
+
maxTradeAmount?: string;
|
|
10
|
+
dailyLimit?: string;
|
|
11
|
+
enabled?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface Signal {
|
|
14
|
+
from: string;
|
|
15
|
+
type: 'buy' | 'sell' | 'hold' | 'alert';
|
|
16
|
+
trade?: string;
|
|
17
|
+
reason?: string;
|
|
18
|
+
confidence?: number;
|
|
19
|
+
timestamp: number;
|
|
20
|
+
data?: Record<string, unknown>;
|
|
21
|
+
}
|
|
22
|
+
export interface HubStatus {
|
|
23
|
+
agents: number;
|
|
24
|
+
signals: number;
|
|
25
|
+
trades: number;
|
|
26
|
+
totalVolume: string;
|
|
27
|
+
agentDetails: AgentDetail[];
|
|
28
|
+
}
|
|
29
|
+
export interface AgentDetail {
|
|
30
|
+
name: string;
|
|
31
|
+
role: string;
|
|
32
|
+
enabled: boolean;
|
|
33
|
+
trades: number;
|
|
34
|
+
volume: string;
|
|
35
|
+
}
|
|
36
|
+
export type HubEventMap = {
|
|
37
|
+
signal: [Signal];
|
|
38
|
+
trade: [{
|
|
39
|
+
agent: string;
|
|
40
|
+
result: TradeResult;
|
|
41
|
+
}];
|
|
42
|
+
error: [{
|
|
43
|
+
agent: string;
|
|
44
|
+
error: Error;
|
|
45
|
+
}];
|
|
46
|
+
agentRegistered: [{
|
|
47
|
+
name: string;
|
|
48
|
+
config: AgentConfig;
|
|
49
|
+
}];
|
|
50
|
+
agentRemoved: [{
|
|
51
|
+
name: string;
|
|
52
|
+
}];
|
|
53
|
+
};
|
|
54
|
+
export type HubEvent = keyof HubEventMap;
|
|
55
|
+
export interface AgentHubConfig {
|
|
56
|
+
network?: string;
|
|
57
|
+
}
|
|
58
|
+
export declare class AgentHub extends EventEmitter {
|
|
59
|
+
private agents;
|
|
60
|
+
private signals;
|
|
61
|
+
private totalTrades;
|
|
62
|
+
private totalVolume;
|
|
63
|
+
private readonly network;
|
|
64
|
+
constructor(config?: AgentHubConfig);
|
|
65
|
+
/**
|
|
66
|
+
* Register an agent with the hub
|
|
67
|
+
*/
|
|
68
|
+
register(name: string, wallet: AgentWallet, config: AgentConfig): void;
|
|
69
|
+
/**
|
|
70
|
+
* Remove an agent from the hub
|
|
71
|
+
*/
|
|
72
|
+
unregister(name: string): boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Get a registered agent
|
|
75
|
+
*/
|
|
76
|
+
getAgent(name: string): AgentWallet | undefined;
|
|
77
|
+
/**
|
|
78
|
+
* Send a signal through the hub
|
|
79
|
+
*/
|
|
80
|
+
signal(from: string, signalData: Omit<Signal, 'from' | 'timestamp'>): void;
|
|
81
|
+
/**
|
|
82
|
+
* Execute a trade with a specific agent
|
|
83
|
+
*/
|
|
84
|
+
execute(agentName: string, trade: string): Promise<TradeResult>;
|
|
85
|
+
/**
|
|
86
|
+
* Broadcast a trade to all executors
|
|
87
|
+
*/
|
|
88
|
+
broadcast(trade: string): Promise<Map<string, TradeResult | Error>>;
|
|
89
|
+
/**
|
|
90
|
+
* Get hub status
|
|
91
|
+
*/
|
|
92
|
+
status(): HubStatus;
|
|
93
|
+
/**
|
|
94
|
+
* Get recent signals
|
|
95
|
+
*/
|
|
96
|
+
getSignals(options?: {
|
|
97
|
+
limit?: number;
|
|
98
|
+
from?: string;
|
|
99
|
+
type?: Signal['type'];
|
|
100
|
+
}): Signal[];
|
|
101
|
+
/**
|
|
102
|
+
* Enable an agent
|
|
103
|
+
*/
|
|
104
|
+
enableAgent(name: string): void;
|
|
105
|
+
/**
|
|
106
|
+
* Disable an agent
|
|
107
|
+
*/
|
|
108
|
+
disableAgent(name: string): void;
|
|
109
|
+
/**
|
|
110
|
+
* Update agent config
|
|
111
|
+
*/
|
|
112
|
+
updateAgentConfig(name: string, config: Partial<AgentConfig>): void;
|
|
113
|
+
/**
|
|
114
|
+
* Clear signal history
|
|
115
|
+
*/
|
|
116
|
+
clearSignals(): void;
|
|
117
|
+
/**
|
|
118
|
+
* Type-safe event emitter
|
|
119
|
+
*/
|
|
120
|
+
on<K extends HubEvent>(event: K, listener: (...args: HubEventMap[K]) => void): this;
|
|
121
|
+
emit<K extends HubEvent>(event: K, ...args: HubEventMap[K]): boolean;
|
|
122
|
+
private parseAmount;
|
|
123
|
+
private parseTradeAmount;
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=hub.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hub.d.ts","sourceRoot":"","sources":["../src/hub.ts"],"names":[],"mappings":"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"}
|
package/dist/hub.js
ADDED
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* AgentHub - Multi-Agent Collaboration
|
|
4
|
+
* Coordinates multiple AI agents for trading strategies
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.AgentHub = void 0;
|
|
8
|
+
const events_1 = require("events");
|
|
9
|
+
class AgentHub extends events_1.EventEmitter {
|
|
10
|
+
agents = new Map();
|
|
11
|
+
signals = [];
|
|
12
|
+
totalTrades = 0;
|
|
13
|
+
totalVolume = '0';
|
|
14
|
+
network;
|
|
15
|
+
constructor(config = {}) {
|
|
16
|
+
super();
|
|
17
|
+
this.network = config.network || 'base';
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Register an agent with the hub
|
|
21
|
+
*/
|
|
22
|
+
register(name, wallet, config) {
|
|
23
|
+
if (this.agents.has(name)) {
|
|
24
|
+
throw new Error(`Agent "${name}" is already registered`);
|
|
25
|
+
}
|
|
26
|
+
const today = new Date().toISOString().split('T')[0];
|
|
27
|
+
this.agents.set(name, {
|
|
28
|
+
wallet,
|
|
29
|
+
config: { enabled: true, ...config },
|
|
30
|
+
trades: 0,
|
|
31
|
+
volume: '0',
|
|
32
|
+
dailyVolume: '0',
|
|
33
|
+
lastResetDate: today,
|
|
34
|
+
});
|
|
35
|
+
this.emit('agentRegistered', { name, config });
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Remove an agent from the hub
|
|
39
|
+
*/
|
|
40
|
+
unregister(name) {
|
|
41
|
+
const removed = this.agents.delete(name);
|
|
42
|
+
if (removed) {
|
|
43
|
+
this.emit('agentRemoved', { name });
|
|
44
|
+
}
|
|
45
|
+
return removed;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Get a registered agent
|
|
49
|
+
*/
|
|
50
|
+
getAgent(name) {
|
|
51
|
+
return this.agents.get(name)?.wallet;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Send a signal through the hub
|
|
55
|
+
*/
|
|
56
|
+
signal(from, signalData) {
|
|
57
|
+
const agent = this.agents.get(from);
|
|
58
|
+
if (!agent) {
|
|
59
|
+
throw new Error(`Agent "${from}" is not registered`);
|
|
60
|
+
}
|
|
61
|
+
const signal = {
|
|
62
|
+
...signalData,
|
|
63
|
+
from,
|
|
64
|
+
timestamp: Date.now(),
|
|
65
|
+
};
|
|
66
|
+
this.signals.push(signal);
|
|
67
|
+
this.emit('signal', signal);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Execute a trade with a specific agent
|
|
71
|
+
*/
|
|
72
|
+
async execute(agentName, trade) {
|
|
73
|
+
const agent = this.agents.get(agentName);
|
|
74
|
+
if (!agent) {
|
|
75
|
+
throw new Error(`Agent "${agentName}" is not registered`);
|
|
76
|
+
}
|
|
77
|
+
if (!agent.config.enabled) {
|
|
78
|
+
throw new Error(`Agent "${agentName}" is disabled`);
|
|
79
|
+
}
|
|
80
|
+
// Check daily limit reset
|
|
81
|
+
const today = new Date().toISOString().split('T')[0];
|
|
82
|
+
if (agent.lastResetDate !== today) {
|
|
83
|
+
agent.dailyVolume = '0';
|
|
84
|
+
agent.lastResetDate = today;
|
|
85
|
+
}
|
|
86
|
+
// Check daily limit
|
|
87
|
+
if (agent.config.dailyLimit) {
|
|
88
|
+
const { amount } = this.parseAmount(agent.config.dailyLimit);
|
|
89
|
+
if (parseFloat(agent.dailyVolume) >= parseFloat(amount)) {
|
|
90
|
+
throw new Error(`Agent "${agentName}" has reached daily limit`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
// Check max trade amount
|
|
94
|
+
if (agent.config.maxTradeAmount) {
|
|
95
|
+
const { amount: maxAmount } = this.parseAmount(agent.config.maxTradeAmount);
|
|
96
|
+
const { amount: tradeAmount } = this.parseTradeAmount(trade);
|
|
97
|
+
if (parseFloat(tradeAmount) > parseFloat(maxAmount)) {
|
|
98
|
+
throw new Error(`Trade amount exceeds max limit for agent "${agentName}"`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
try {
|
|
102
|
+
const result = await agent.wallet.trade(trade);
|
|
103
|
+
// Update stats using string arithmetic
|
|
104
|
+
const tradeVolume = parseFloat(result.amountIn);
|
|
105
|
+
agent.trades++;
|
|
106
|
+
agent.volume = (parseFloat(agent.volume) + tradeVolume).toFixed(18);
|
|
107
|
+
agent.dailyVolume = (parseFloat(agent.dailyVolume) + tradeVolume).toFixed(18);
|
|
108
|
+
this.totalTrades++;
|
|
109
|
+
this.totalVolume = (parseFloat(this.totalVolume) + tradeVolume).toFixed(18);
|
|
110
|
+
this.emit('trade', { agent: agentName, result });
|
|
111
|
+
return result;
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
this.emit('error', {
|
|
115
|
+
agent: agentName,
|
|
116
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
117
|
+
});
|
|
118
|
+
throw error;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Broadcast a trade to all executors
|
|
123
|
+
*/
|
|
124
|
+
async broadcast(trade) {
|
|
125
|
+
const results = new Map();
|
|
126
|
+
for (const [name, agent] of this.agents) {
|
|
127
|
+
if (agent.config.role === 'executor' && agent.config.enabled) {
|
|
128
|
+
try {
|
|
129
|
+
const result = await this.execute(name, trade);
|
|
130
|
+
results.set(name, result);
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
results.set(name, error instanceof Error ? error : new Error(String(error)));
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return results;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Get hub status
|
|
141
|
+
*/
|
|
142
|
+
status() {
|
|
143
|
+
const agentDetails = [];
|
|
144
|
+
for (const [name, agent] of this.agents) {
|
|
145
|
+
agentDetails.push({
|
|
146
|
+
name,
|
|
147
|
+
role: agent.config.role,
|
|
148
|
+
enabled: agent.config.enabled ?? true,
|
|
149
|
+
trades: agent.trades,
|
|
150
|
+
volume: `${parseFloat(agent.volume).toFixed(6)} ETH`,
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
return {
|
|
154
|
+
agents: this.agents.size,
|
|
155
|
+
signals: this.signals.length,
|
|
156
|
+
trades: this.totalTrades,
|
|
157
|
+
totalVolume: `${parseFloat(this.totalVolume).toFixed(6)} ETH`,
|
|
158
|
+
agentDetails,
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Get recent signals
|
|
163
|
+
*/
|
|
164
|
+
getSignals(options = {}) {
|
|
165
|
+
let filtered = [...this.signals];
|
|
166
|
+
if (options.from) {
|
|
167
|
+
filtered = filtered.filter(s => s.from === options.from);
|
|
168
|
+
}
|
|
169
|
+
if (options.type) {
|
|
170
|
+
filtered = filtered.filter(s => s.type === options.type);
|
|
171
|
+
}
|
|
172
|
+
const limit = options.limit || 100;
|
|
173
|
+
return filtered.slice(-limit);
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Enable an agent
|
|
177
|
+
*/
|
|
178
|
+
enableAgent(name) {
|
|
179
|
+
const agent = this.agents.get(name);
|
|
180
|
+
if (!agent) {
|
|
181
|
+
throw new Error(`Agent "${name}" is not registered`);
|
|
182
|
+
}
|
|
183
|
+
agent.config.enabled = true;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Disable an agent
|
|
187
|
+
*/
|
|
188
|
+
disableAgent(name) {
|
|
189
|
+
const agent = this.agents.get(name);
|
|
190
|
+
if (!agent) {
|
|
191
|
+
throw new Error(`Agent "${name}" is not registered`);
|
|
192
|
+
}
|
|
193
|
+
agent.config.enabled = false;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Update agent config
|
|
197
|
+
*/
|
|
198
|
+
updateAgentConfig(name, config) {
|
|
199
|
+
const agent = this.agents.get(name);
|
|
200
|
+
if (!agent) {
|
|
201
|
+
throw new Error(`Agent "${name}" is not registered`);
|
|
202
|
+
}
|
|
203
|
+
Object.assign(agent.config, config);
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Clear signal history
|
|
207
|
+
*/
|
|
208
|
+
clearSignals() {
|
|
209
|
+
this.signals = [];
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Type-safe event emitter
|
|
213
|
+
*/
|
|
214
|
+
on(event, listener) {
|
|
215
|
+
return super.on(event, listener);
|
|
216
|
+
}
|
|
217
|
+
emit(event, ...args) {
|
|
218
|
+
return super.emit(event, ...args);
|
|
219
|
+
}
|
|
220
|
+
parseAmount(amountStr) {
|
|
221
|
+
const match = amountStr.trim().match(/^([\d.]+)\s*(\w+)$/);
|
|
222
|
+
if (!match) {
|
|
223
|
+
throw new Error(`Invalid amount format: ${amountStr}`);
|
|
224
|
+
}
|
|
225
|
+
return { amount: match[1], token: match[2].toUpperCase() };
|
|
226
|
+
}
|
|
227
|
+
parseTradeAmount(trade) {
|
|
228
|
+
// Parse first part of trade string (e.g., "0.1 ETH -> USDC")
|
|
229
|
+
const match = trade.match(/^([\d.]+)\s*(\w+)/);
|
|
230
|
+
if (!match) {
|
|
231
|
+
throw new Error(`Invalid trade format: ${trade}`);
|
|
232
|
+
}
|
|
233
|
+
return { amount: match[1], token: match[2].toUpperCase() };
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
exports.AgentHub = AgentHub;
|
|
237
|
+
//# sourceMappingURL=hub.js.map
|
package/dist/hub.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hub.js","sourceRoot":"","sources":["../src/hub.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,4 +3,25 @@ export { IntentStatus } from './types';
|
|
|
3
3
|
export type { AELConfig, SwapParams, SwapResult, QuoteResult, IntentDetails } from './types';
|
|
4
4
|
export { ROUTER_ABI, ERC20_ABI, QUOTER_ABI } from './abi';
|
|
5
5
|
export { BASE_SEPOLIA, BASE_MAINNET, ETH_ADDRESS, CHAIN_IDS } from './constants';
|
|
6
|
+
export { AgentWallet } from './agent-wallet';
|
|
7
|
+
export type { AgentWalletConfig, TradeResult, BalanceMap, HistoryItem, } from './agent-wallet';
|
|
8
|
+
export { MarketFeed } from './market';
|
|
9
|
+
export type { MarketFeedConfig, PriceData, PoolData, TWAPData, } from './market';
|
|
10
|
+
export { getNetwork, resolveToken, NETWORKS, EIP712_DOMAIN } from './networks';
|
|
11
|
+
export type { NetworkConfig } from './networks';
|
|
12
|
+
export { parseTrade, formatTrade, validateTrade } from './parser';
|
|
13
|
+
export type { TradeInput, ParsedTrade, TradeObject } from './parser';
|
|
14
|
+
export { Strategy } from './strategy';
|
|
15
|
+
export type { StrategyConfig, StrategyStatus, StrategyType, StrategyEvent, StrategyEventMap, } from './strategy';
|
|
16
|
+
export { DCAStrategy } from './strategies/dca';
|
|
17
|
+
export type { DCAConfig, DCAStatus } from './strategies/dca';
|
|
18
|
+
export { GridStrategy } from './strategies/grid';
|
|
19
|
+
export type { GridConfig, GridLevel, GridStatus } from './strategies/grid';
|
|
20
|
+
export { StopLossStrategy } from './strategies/stop-loss';
|
|
21
|
+
export type { StopLossConfig, StopLossStatus } from './strategies/stop-loss';
|
|
22
|
+
export { AgentHub } from './hub';
|
|
23
|
+
export type { AgentHubConfig, AgentConfig, Signal, HubStatus, AgentDetail, HubEvent, HubEventMap, } from './hub';
|
|
24
|
+
export { AgentMarket, parsePrice, OrderStatus } from './marketplace';
|
|
25
|
+
export type { AgentMarketConfig, RegisterServiceParams, ServiceInfo, OrderInfo, DeliverParams, ListServicesParams, } from './marketplace';
|
|
26
|
+
export { MARKET_ABI } from './abi/market';
|
|
6
27
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGjF,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EACV,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,WAAW,GACZ,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,YAAY,EACV,gBAAgB,EAChB,SAAS,EACT,QAAQ,EACR,QAAQ,GACT,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC/E,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAClE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGrE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EACV,cAAc,EACd,cAAc,EACd,YAAY,EACZ,aAAa,EACb,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7E,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,YAAY,EACV,cAAc,EACd,WAAW,EACX,MAAM,EACN,SAAS,EACT,WAAW,EACX,QAAQ,EACR,WAAW,GACZ,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACrE,YAAY,EACV,iBAAiB,EACjB,qBAAqB,EACrB,WAAW,EACX,SAAS,EACT,aAAa,EACb,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CHAIN_IDS = exports.ETH_ADDRESS = exports.BASE_MAINNET = exports.BASE_SEPOLIA = exports.QUOTER_ABI = exports.ERC20_ABI = exports.ROUTER_ABI = exports.IntentStatus = exports.AEL = void 0;
|
|
3
|
+
exports.MARKET_ABI = exports.OrderStatus = exports.parsePrice = exports.AgentMarket = exports.AgentHub = exports.StopLossStrategy = exports.GridStrategy = exports.DCAStrategy = exports.Strategy = exports.validateTrade = exports.formatTrade = exports.parseTrade = exports.EIP712_DOMAIN = exports.NETWORKS = exports.resolveToken = exports.getNetwork = exports.MarketFeed = exports.AgentWallet = exports.CHAIN_IDS = exports.ETH_ADDRESS = exports.BASE_MAINNET = exports.BASE_SEPOLIA = exports.QUOTER_ABI = exports.ERC20_ABI = exports.ROUTER_ABI = exports.IntentStatus = exports.AEL = void 0;
|
|
4
|
+
// Core SDK
|
|
4
5
|
var ael_1 = require("./ael");
|
|
5
6
|
Object.defineProperty(exports, "AEL", { enumerable: true, get: function () { return ael_1.AEL; } });
|
|
6
7
|
var types_1 = require("./types");
|
|
@@ -14,4 +15,41 @@ Object.defineProperty(exports, "BASE_SEPOLIA", { enumerable: true, get: function
|
|
|
14
15
|
Object.defineProperty(exports, "BASE_MAINNET", { enumerable: true, get: function () { return constants_1.BASE_MAINNET; } });
|
|
15
16
|
Object.defineProperty(exports, "ETH_ADDRESS", { enumerable: true, get: function () { return constants_1.ETH_ADDRESS; } });
|
|
16
17
|
Object.defineProperty(exports, "CHAIN_IDS", { enumerable: true, get: function () { return constants_1.CHAIN_IDS; } });
|
|
18
|
+
// AgentWallet - Natural language trading
|
|
19
|
+
var agent_wallet_1 = require("./agent-wallet");
|
|
20
|
+
Object.defineProperty(exports, "AgentWallet", { enumerable: true, get: function () { return agent_wallet_1.AgentWallet; } });
|
|
21
|
+
// MarketFeed - Real-time market data
|
|
22
|
+
var market_1 = require("./market");
|
|
23
|
+
Object.defineProperty(exports, "MarketFeed", { enumerable: true, get: function () { return market_1.MarketFeed; } });
|
|
24
|
+
// Networks & Parser utilities
|
|
25
|
+
var networks_1 = require("./networks");
|
|
26
|
+
Object.defineProperty(exports, "getNetwork", { enumerable: true, get: function () { return networks_1.getNetwork; } });
|
|
27
|
+
Object.defineProperty(exports, "resolveToken", { enumerable: true, get: function () { return networks_1.resolveToken; } });
|
|
28
|
+
Object.defineProperty(exports, "NETWORKS", { enumerable: true, get: function () { return networks_1.NETWORKS; } });
|
|
29
|
+
Object.defineProperty(exports, "EIP712_DOMAIN", { enumerable: true, get: function () { return networks_1.EIP712_DOMAIN; } });
|
|
30
|
+
var parser_1 = require("./parser");
|
|
31
|
+
Object.defineProperty(exports, "parseTrade", { enumerable: true, get: function () { return parser_1.parseTrade; } });
|
|
32
|
+
Object.defineProperty(exports, "formatTrade", { enumerable: true, get: function () { return parser_1.formatTrade; } });
|
|
33
|
+
Object.defineProperty(exports, "validateTrade", { enumerable: true, get: function () { return parser_1.validateTrade; } });
|
|
34
|
+
// Strategy Engine
|
|
35
|
+
var strategy_1 = require("./strategy");
|
|
36
|
+
Object.defineProperty(exports, "Strategy", { enumerable: true, get: function () { return strategy_1.Strategy; } });
|
|
37
|
+
// Built-in Strategies
|
|
38
|
+
var dca_1 = require("./strategies/dca");
|
|
39
|
+
Object.defineProperty(exports, "DCAStrategy", { enumerable: true, get: function () { return dca_1.DCAStrategy; } });
|
|
40
|
+
var grid_1 = require("./strategies/grid");
|
|
41
|
+
Object.defineProperty(exports, "GridStrategy", { enumerable: true, get: function () { return grid_1.GridStrategy; } });
|
|
42
|
+
var stop_loss_1 = require("./strategies/stop-loss");
|
|
43
|
+
Object.defineProperty(exports, "StopLossStrategy", { enumerable: true, get: function () { return stop_loss_1.StopLossStrategy; } });
|
|
44
|
+
// AgentHub - Multi-Agent Collaboration
|
|
45
|
+
var hub_1 = require("./hub");
|
|
46
|
+
Object.defineProperty(exports, "AgentHub", { enumerable: true, get: function () { return hub_1.AgentHub; } });
|
|
47
|
+
// AgentMarket - Agent Service Marketplace
|
|
48
|
+
var marketplace_1 = require("./marketplace");
|
|
49
|
+
Object.defineProperty(exports, "AgentMarket", { enumerable: true, get: function () { return marketplace_1.AgentMarket; } });
|
|
50
|
+
Object.defineProperty(exports, "parsePrice", { enumerable: true, get: function () { return marketplace_1.parsePrice; } });
|
|
51
|
+
Object.defineProperty(exports, "OrderStatus", { enumerable: true, get: function () { return marketplace_1.OrderStatus; } });
|
|
52
|
+
// Market ABI
|
|
53
|
+
var market_2 = require("./abi/market");
|
|
54
|
+
Object.defineProperty(exports, "MARKET_ABI", { enumerable: true, get: function () { return market_2.MARKET_ABI; } });
|
|
17
55
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,6BAA4B;AAAnB,0FAAA,GAAG,OAAA;AACZ,iCAAuC;AAA9B,qGAAA,YAAY,OAAA;AAErB,6BAA0D;AAAjD,iGAAA,UAAU,OAAA;AAAE,gGAAA,SAAS,OAAA;AAAE,iGAAA,UAAU,OAAA;AAC1C,yCAAiF;AAAxE,yGAAA,YAAY,OAAA;AAAE,yGAAA,YAAY,OAAA;AAAE,wGAAA,WAAW,OAAA;AAAE,sGAAA,SAAS,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,WAAW;AACX,6BAA4B;AAAnB,0FAAA,GAAG,OAAA;AACZ,iCAAuC;AAA9B,qGAAA,YAAY,OAAA;AAErB,6BAA0D;AAAjD,iGAAA,UAAU,OAAA;AAAE,gGAAA,SAAS,OAAA;AAAE,iGAAA,UAAU,OAAA;AAC1C,yCAAiF;AAAxE,yGAAA,YAAY,OAAA;AAAE,yGAAA,YAAY,OAAA;AAAE,wGAAA,WAAW,OAAA;AAAE,sGAAA,SAAS,OAAA;AAE3D,yCAAyC;AACzC,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AAQpB,qCAAqC;AACrC,mCAAsC;AAA7B,oGAAA,UAAU,OAAA;AAQnB,8BAA8B;AAC9B,uCAA+E;AAAtE,sGAAA,UAAU,OAAA;AAAE,wGAAA,YAAY,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAAE,yGAAA,aAAa,OAAA;AAE1D,mCAAkE;AAAzD,oGAAA,UAAU,OAAA;AAAE,qGAAA,WAAW,OAAA;AAAE,uGAAA,aAAa,OAAA;AAG/C,kBAAkB;AAClB,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AASjB,sBAAsB;AACtB,wCAA+C;AAAtC,kGAAA,WAAW,OAAA;AAEpB,0CAAiD;AAAxC,oGAAA,YAAY,OAAA;AAErB,oDAA0D;AAAjD,6GAAA,gBAAgB,OAAA;AAGzB,uCAAuC;AACvC,6BAAiC;AAAxB,+FAAA,QAAQ,OAAA;AAWjB,0CAA0C;AAC1C,6CAAqE;AAA5D,0GAAA,WAAW,OAAA;AAAE,yGAAA,UAAU,OAAA;AAAE,0GAAA,WAAW,OAAA;AAU7C,aAAa;AACb,uCAA0C;AAAjC,oGAAA,UAAU,OAAA"}
|
package/dist/market.d.ts
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MarketFeed - Real-time market data from Uniswap V3
|
|
3
|
+
*/
|
|
4
|
+
import { type Address } from 'viem';
|
|
5
|
+
export interface MarketFeedConfig {
|
|
6
|
+
network?: string;
|
|
7
|
+
rpcUrl?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface PriceData {
|
|
10
|
+
price: number;
|
|
11
|
+
timestamp: number;
|
|
12
|
+
}
|
|
13
|
+
export interface PoolData {
|
|
14
|
+
address: Address;
|
|
15
|
+
token0: Address;
|
|
16
|
+
token1: Address;
|
|
17
|
+
fee: number;
|
|
18
|
+
sqrtPriceX96: bigint;
|
|
19
|
+
tick: number;
|
|
20
|
+
liquidity: bigint;
|
|
21
|
+
}
|
|
22
|
+
export interface TWAPData {
|
|
23
|
+
price: number;
|
|
24
|
+
period: number;
|
|
25
|
+
timestamp: number;
|
|
26
|
+
}
|
|
27
|
+
type PriceCallback = (price: PriceData) => void;
|
|
28
|
+
export declare class MarketFeed {
|
|
29
|
+
private readonly publicClient;
|
|
30
|
+
private readonly network;
|
|
31
|
+
private readonly watches;
|
|
32
|
+
private readonly poolCache;
|
|
33
|
+
constructor(config?: MarketFeedConfig);
|
|
34
|
+
/**
|
|
35
|
+
* Get current price for a trading pair
|
|
36
|
+
*/
|
|
37
|
+
price(pair: string): Promise<PriceData>;
|
|
38
|
+
/**
|
|
39
|
+
* Get prices for multiple pairs
|
|
40
|
+
*/
|
|
41
|
+
prices(pairs: string[]): Promise<Record<string, PriceData>>;
|
|
42
|
+
/**
|
|
43
|
+
* Get TWAP (Time-Weighted Average Price)
|
|
44
|
+
*/
|
|
45
|
+
twap(pair: string, options: {
|
|
46
|
+
period: string | number;
|
|
47
|
+
}): Promise<TWAPData>;
|
|
48
|
+
/**
|
|
49
|
+
* Get pool information
|
|
50
|
+
*/
|
|
51
|
+
pool(pair: string): Promise<PoolData>;
|
|
52
|
+
/**
|
|
53
|
+
* Watch price updates
|
|
54
|
+
*/
|
|
55
|
+
watch(pair: string, options: {
|
|
56
|
+
interval?: number;
|
|
57
|
+
}, callback: PriceCallback): void;
|
|
58
|
+
/**
|
|
59
|
+
* Stop watching a pair
|
|
60
|
+
*/
|
|
61
|
+
unwatch(pair: string, callback?: PriceCallback): void;
|
|
62
|
+
/**
|
|
63
|
+
* Stop all watchers
|
|
64
|
+
*/
|
|
65
|
+
unwatchAll(): void;
|
|
66
|
+
private parsePair;
|
|
67
|
+
private findBestPool;
|
|
68
|
+
private sqrtPriceX96ToPrice;
|
|
69
|
+
private tickToPrice;
|
|
70
|
+
private parsePeriod;
|
|
71
|
+
}
|
|
72
|
+
export {};
|
|
73
|
+
//# sourceMappingURL=market.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"market.d.ts","sourceRoot":"","sources":["../src/market.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAIL,KAAK,OAAO,EACb,MAAM,MAAM,CAAC;AA0Ed,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,KAAK,aAAa,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;AAUhD,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;IAC9D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmC;gBAEjD,MAAM,GAAE,gBAAqB;IAWzC;;OAEG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAuB7C;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAgBjE;;OAEG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,CAAC;IAwCjF;;OAEG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IA+C3C;;OAEG;IACH,KAAK,CACH,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAC9B,QAAQ,EAAE,aAAa,GACtB,IAAI;IAqCP;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,IAAI;IAmBrD;;OAEG;IACH,UAAU,IAAI,IAAI;IASlB,OAAO,CAAC,SAAS;YAoBH,YAAY;IA0C1B,OAAO,CAAC,mBAAmB;IA2B3B,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,WAAW;CAmBpB"}
|