agentwallet-sdk 3.3.0 → 3.4.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/README.md +2 -536
- package/dist/bridge/abis.d.ts +48 -171
- package/dist/bridge/abis.d.ts.map +1 -1
- package/dist/bridge/abis.js.map +1 -1
- package/dist/bridge/client.d.ts +2 -41
- package/dist/bridge/client.d.ts.map +1 -1
- package/dist/bridge/client.js +35 -168
- package/dist/bridge/client.js.map +1 -1
- package/dist/bridge/index.d.ts +2 -4
- package/dist/bridge/index.d.ts.map +1 -1
- package/dist/bridge/index.js +1 -8
- package/dist/bridge/index.js.map +1 -1
- package/dist/bridge/types.d.ts +15 -134
- package/dist/bridge/types.d.ts.map +1 -1
- package/dist/bridge/types.js +16 -170
- package/dist/bridge/types.js.map +1 -1
- package/dist/identity/erc8004.d.ts +2 -240
- package/dist/identity/erc8004.d.ts.map +1 -1
- package/dist/identity/erc8004.js +58 -334
- package/dist/identity/erc8004.js.map +1 -1
- package/dist/index.d.ts +313 -136
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -59
- package/dist/index.js.map +1 -1
- package/dist/swap/SwapModule.d.ts +6 -50
- package/dist/swap/SwapModule.d.ts.map +1 -1
- package/dist/swap/SwapModule.js +25 -153
- package/dist/swap/SwapModule.js.map +1 -1
- package/dist/swap/abi.d.ts +47 -165
- package/dist/swap/abi.d.ts.map +1 -1
- package/dist/swap/abi.js.map +1 -1
- package/dist/swap/index.d.ts +2 -3
- package/dist/swap/index.d.ts.map +1 -1
- package/dist/swap/index.js +1 -4
- package/dist/swap/index.js.map +1 -1
- package/dist/swap/types.d.ts +6 -36
- package/dist/swap/types.d.ts.map +1 -1
- package/dist/swap/types.js +0 -1
- package/dist/swap/types.js.map +1 -1
- package/dist/types.d.ts +1 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -1
- package/dist/types.js.map +1 -1
- package/dist/x402/__tests__/budget.test.d.ts +2 -0
- package/dist/x402/__tests__/budget.test.d.ts.map +1 -0
- package/dist/x402/__tests__/budget.test.js +114 -0
- package/dist/x402/__tests__/budget.test.js.map +1 -0
- package/dist/x402/__tests__/client.test.d.ts +2 -0
- package/dist/x402/__tests__/client.test.d.ts.map +1 -0
- package/dist/x402/__tests__/client.test.js +107 -0
- package/dist/x402/__tests__/client.test.js.map +1 -0
- package/dist/x402/chains/abstract/index.d.ts +135 -0
- package/dist/x402/chains/abstract/index.d.ts.map +1 -0
- package/dist/x402/chains/abstract/index.js +190 -0
- package/dist/x402/chains/abstract/index.js.map +1 -0
- package/dist/x402/client.d.ts +1 -4
- package/dist/x402/client.d.ts.map +1 -1
- package/dist/x402/client.js +2 -16
- package/dist/x402/client.js.map +1 -1
- package/dist/x402/index.d.ts +3 -1
- package/dist/x402/index.d.ts.map +1 -1
- package/dist/x402/index.js +3 -1
- package/dist/x402/index.js.map +1 -1
- package/dist/x402/types.d.ts +3 -5
- package/dist/x402/types.d.ts.map +1 -1
- package/dist/x402/types.js +2 -17
- package/dist/x402/types.js.map +1 -1
- package/package.json +12 -32
- package/dist/ap2/index.d.ts +0 -185
- package/dist/ap2/index.d.ts.map +0 -1
- package/dist/ap2/index.js +0 -255
- package/dist/ap2/index.js.map +0 -1
- package/dist/bridge/unified.d.ts +0 -101
- package/dist/bridge/unified.d.ts.map +0 -1
- package/dist/bridge/unified.js +0 -284
- package/dist/bridge/unified.js.map +0 -1
- package/dist/chains.d.ts +0 -62
- package/dist/chains.d.ts.map +0 -1
- package/dist/chains.js +0 -108
- package/dist/chains.js.map +0 -1
- package/dist/fiat/index.d.ts +0 -10
- package/dist/fiat/index.d.ts.map +0 -1
- package/dist/fiat/index.js +0 -9
- package/dist/fiat/index.js.map +0 -1
- package/dist/fiat/onramp.d.ts +0 -101
- package/dist/fiat/onramp.d.ts.map +0 -1
- package/dist/fiat/onramp.js +0 -155
- package/dist/fiat/onramp.js.map +0 -1
- package/dist/fiat/providers/index.d.ts +0 -16
- package/dist/fiat/providers/index.d.ts.map +0 -1
- package/dist/fiat/providers/index.js +0 -30
- package/dist/fiat/providers/index.js.map +0 -1
- package/dist/fiat/providers/moonpay.d.ts +0 -22
- package/dist/fiat/providers/moonpay.d.ts.map +0 -1
- package/dist/fiat/providers/moonpay.js +0 -107
- package/dist/fiat/providers/moonpay.js.map +0 -1
- package/dist/fiat/providers/stripe.d.ts +0 -26
- package/dist/fiat/providers/stripe.d.ts.map +0 -1
- package/dist/fiat/providers/stripe.js +0 -135
- package/dist/fiat/providers/stripe.js.map +0 -1
- package/dist/fiat/providers/transak.d.ts +0 -26
- package/dist/fiat/providers/transak.d.ts.map +0 -1
- package/dist/fiat/providers/transak.js +0 -119
- package/dist/fiat/providers/transak.js.map +0 -1
- package/dist/fiat/types.d.ts +0 -106
- package/dist/fiat/types.d.ts.map +0 -1
- package/dist/fiat/types.js +0 -13
- package/dist/fiat/types.js.map +0 -1
- package/dist/flash/executor.d.ts +0 -119
- package/dist/flash/executor.d.ts.map +0 -1
- package/dist/flash/executor.js +0 -195
- package/dist/flash/executor.js.map +0 -1
- package/dist/flash/index.d.ts +0 -28
- package/dist/flash/index.d.ts.map +0 -1
- package/dist/flash/index.js +0 -25
- package/dist/flash/index.js.map +0 -1
- package/dist/flash/scanner.d.ts +0 -133
- package/dist/flash/scanner.d.ts.map +0 -1
- package/dist/flash/scanner.js +0 -212
- package/dist/flash/scanner.js.map +0 -1
- package/dist/flash/types.d.ts +0 -136
- package/dist/flash/types.d.ts.map +0 -1
- package/dist/flash/types.js +0 -23
- package/dist/flash/types.js.map +0 -1
- package/dist/gas/index.d.ts +0 -4
- package/dist/gas/index.d.ts.map +0 -1
- package/dist/gas/index.js +0 -3
- package/dist/gas/index.js.map +0 -1
- package/dist/gas/sponsor.d.ts +0 -70
- package/dist/gas/sponsor.d.ts.map +0 -1
- package/dist/gas/sponsor.js +0 -193
- package/dist/gas/sponsor.js.map +0 -1
- package/dist/gas/types.d.ts +0 -76
- package/dist/gas/types.d.ts.map +0 -1
- package/dist/gas/types.js +0 -21
- package/dist/gas/types.js.map +0 -1
- package/dist/identity/agent-identity.d.ts +0 -276
- package/dist/identity/agent-identity.d.ts.map +0 -1
- package/dist/identity/agent-identity.js +0 -300
- package/dist/identity/agent-identity.js.map +0 -1
- package/dist/identity/erc6551.d.ts +0 -441
- package/dist/identity/erc6551.d.ts.map +0 -1
- package/dist/identity/erc6551.js +0 -517
- package/dist/identity/erc6551.js.map +0 -1
- package/dist/mev/index.d.ts +0 -4
- package/dist/mev/index.d.ts.map +0 -1
- package/dist/mev/index.js +0 -4
- package/dist/mev/index.js.map +0 -1
- package/dist/mev/protection.d.ts +0 -54
- package/dist/mev/protection.d.ts.map +0 -1
- package/dist/mev/protection.js +0 -185
- package/dist/mev/protection.js.map +0 -1
- package/dist/mev/risk.d.ts +0 -19
- package/dist/mev/risk.d.ts.map +0 -1
- package/dist/mev/risk.js +0 -95
- package/dist/mev/risk.js.map +0 -1
- package/dist/mev/types.d.ts +0 -49
- package/dist/mev/types.d.ts.map +0 -1
- package/dist/mev/types.js +0 -2
- package/dist/mev/types.js.map +0 -1
- package/dist/settlement/index.d.ts +0 -4
- package/dist/settlement/index.d.ts.map +0 -1
- package/dist/settlement/index.js +0 -3
- package/dist/settlement/index.js.map +0 -1
- package/dist/settlement/types.d.ts +0 -66
- package/dist/settlement/types.d.ts.map +0 -1
- package/dist/settlement/types.js +0 -37
- package/dist/settlement/types.js.map +0 -1
- package/dist/settlement/verifier.d.ts +0 -75
- package/dist/settlement/verifier.d.ts.map +0 -1
- package/dist/settlement/verifier.js +0 -354
- package/dist/settlement/verifier.js.map +0 -1
- package/dist/solana/bridge.d.ts +0 -144
- package/dist/solana/bridge.d.ts.map +0 -1
- package/dist/solana/bridge.js +0 -352
- package/dist/solana/bridge.js.map +0 -1
- package/dist/solana/index.d.ts +0 -8
- package/dist/solana/index.d.ts.map +0 -1
- package/dist/solana/index.js +0 -6
- package/dist/solana/index.js.map +0 -1
- package/dist/solana/swap.d.ts +0 -85
- package/dist/solana/swap.d.ts.map +0 -1
- package/dist/solana/swap.js +0 -173
- package/dist/solana/swap.js.map +0 -1
- package/dist/solana/types.d.ts +0 -126
- package/dist/solana/types.d.ts.map +0 -1
- package/dist/solana/types.js +0 -10
- package/dist/solana/types.js.map +0 -1
- package/dist/solana/wallet.d.ts +0 -83
- package/dist/solana/wallet.d.ts.map +0 -1
- package/dist/solana/wallet.js +0 -164
- package/dist/solana/wallet.js.map +0 -1
- package/dist/solana/x402.d.ts +0 -69
- package/dist/solana/x402.d.ts.map +0 -1
- package/dist/solana/x402.js +0 -154
- package/dist/solana/x402.js.map +0 -1
- package/dist/solver/adapter.d.ts +0 -47
- package/dist/solver/adapter.d.ts.map +0 -1
- package/dist/solver/adapter.js +0 -138
- package/dist/solver/adapter.js.map +0 -1
- package/dist/solver/analyzer.d.ts +0 -48
- package/dist/solver/analyzer.d.ts.map +0 -1
- package/dist/solver/analyzer.js +0 -89
- package/dist/solver/analyzer.js.map +0 -1
- package/dist/solver/builder.d.ts +0 -31
- package/dist/solver/builder.d.ts.map +0 -1
- package/dist/solver/builder.js +0 -60
- package/dist/solver/builder.js.map +0 -1
- package/dist/solver/index.d.ts +0 -22
- package/dist/solver/index.d.ts.map +0 -1
- package/dist/solver/index.js +0 -21
- package/dist/solver/index.js.map +0 -1
- package/dist/solver/types.d.ts +0 -115
- package/dist/solver/types.d.ts.map +0 -1
- package/dist/solver/types.js +0 -10
- package/dist/solver/types.js.map +0 -1
- package/dist/spend-guard/index.d.ts +0 -125
- package/dist/spend-guard/index.d.ts.map +0 -1
- package/dist/spend-guard/index.js +0 -150
- package/dist/spend-guard/index.js.map +0 -1
- package/dist/swap/router/cache.d.ts +0 -13
- package/dist/swap/router/cache.d.ts.map +0 -1
- package/dist/swap/router/cache.js +0 -30
- package/dist/swap/router/cache.js.map +0 -1
- package/dist/swap/router/flashbots.d.ts +0 -10
- package/dist/swap/router/flashbots.d.ts.map +0 -1
- package/dist/swap/router/flashbots.js +0 -43
- package/dist/swap/router/flashbots.js.map +0 -1
- package/dist/swap/router/health.d.ts +0 -17
- package/dist/swap/router/health.d.ts.map +0 -1
- package/dist/swap/router/health.js +0 -38
- package/dist/swap/router/health.js.map +0 -1
- package/dist/swap/router/index.d.ts +0 -10
- package/dist/swap/router/index.d.ts.map +0 -1
- package/dist/swap/router/index.js +0 -10
- package/dist/swap/router/index.js.map +0 -1
- package/dist/swap/router/providers/cowswap.d.ts +0 -11
- package/dist/swap/router/providers/cowswap.d.ts.map +0 -1
- package/dist/swap/router/providers/cowswap.js +0 -79
- package/dist/swap/router/providers/cowswap.js.map +0 -1
- package/dist/swap/router/providers/index.d.ts +0 -20
- package/dist/swap/router/providers/index.d.ts.map +0 -1
- package/dist/swap/router/providers/index.js +0 -32
- package/dist/swap/router/providers/index.js.map +0 -1
- package/dist/swap/router/providers/jupiter.d.ts +0 -12
- package/dist/swap/router/providers/jupiter.d.ts.map +0 -1
- package/dist/swap/router/providers/jupiter.js +0 -73
- package/dist/swap/router/providers/jupiter.js.map +0 -1
- package/dist/swap/router/providers/lifi.d.ts +0 -11
- package/dist/swap/router/providers/lifi.d.ts.map +0 -1
- package/dist/swap/router/providers/lifi.js +0 -123
- package/dist/swap/router/providers/lifi.js.map +0 -1
- package/dist/swap/router/providers/oneinch.d.ts +0 -13
- package/dist/swap/router/providers/oneinch.d.ts.map +0 -1
- package/dist/swap/router/providers/oneinch.js +0 -71
- package/dist/swap/router/providers/oneinch.js.map +0 -1
- package/dist/swap/router/providers/paraswap.d.ts +0 -11
- package/dist/swap/router/providers/paraswap.d.ts.map +0 -1
- package/dist/swap/router/providers/paraswap.js +0 -73
- package/dist/swap/router/providers/paraswap.js.map +0 -1
- package/dist/swap/router/providers/uniswap.d.ts +0 -31
- package/dist/swap/router/providers/uniswap.d.ts.map +0 -1
- package/dist/swap/router/providers/uniswap.js +0 -116
- package/dist/swap/router/providers/uniswap.js.map +0 -1
- package/dist/swap/router/providers/zerox.d.ts +0 -13
- package/dist/swap/router/providers/zerox.d.ts.map +0 -1
- package/dist/swap/router/providers/zerox.js +0 -94
- package/dist/swap/router/providers/zerox.js.map +0 -1
- package/dist/swap/router/router.d.ts +0 -86
- package/dist/swap/router/router.d.ts.map +0 -1
- package/dist/swap/router/router.js +0 -224
- package/dist/swap/router/router.js.map +0 -1
- package/dist/swap/router/rsi/engine.d.ts +0 -60
- package/dist/swap/router/rsi/engine.d.ts.map +0 -1
- package/dist/swap/router/rsi/engine.js +0 -483
- package/dist/swap/router/rsi/engine.js.map +0 -1
- package/dist/swap/router/rsi/index.d.ts +0 -3
- package/dist/swap/router/rsi/index.d.ts.map +0 -1
- package/dist/swap/router/rsi/index.js +0 -3
- package/dist/swap/router/rsi/index.js.map +0 -1
- package/dist/swap/router/rsi/types.d.ts +0 -106
- package/dist/swap/router/rsi/types.d.ts.map +0 -1
- package/dist/swap/router/rsi/types.js +0 -3
- package/dist/swap/router/rsi/types.js.map +0 -1
- package/dist/swap/router/types.d.ts +0 -120
- package/dist/swap/router/types.d.ts.map +0 -1
- package/dist/swap/router/types.js +0 -16
- package/dist/swap/router/types.js.map +0 -1
- package/dist/tax/engine.d.ts +0 -131
- package/dist/tax/engine.d.ts.map +0 -1
- package/dist/tax/engine.js +0 -307
- package/dist/tax/engine.js.map +0 -1
- package/dist/tax/index.d.ts +0 -9
- package/dist/tax/index.d.ts.map +0 -1
- package/dist/tax/index.js +0 -8
- package/dist/tax/index.js.map +0 -1
- package/dist/tax/lots.d.ts +0 -60
- package/dist/tax/lots.d.ts.map +0 -1
- package/dist/tax/lots.js +0 -129
- package/dist/tax/lots.js.map +0 -1
- package/dist/tax/types.d.ts +0 -113
- package/dist/tax/types.d.ts.map +0 -1
- package/dist/tax/types.js +0 -18
- package/dist/tax/types.js.map +0 -1
- package/dist/yield/index.d.ts +0 -26
- package/dist/yield/index.d.ts.map +0 -1
- package/dist/yield/index.js +0 -25
- package/dist/yield/index.js.map +0 -1
- package/dist/yield/rates.d.ts +0 -114
- package/dist/yield/rates.d.ts.map +0 -1
- package/dist/yield/rates.js +0 -351
- package/dist/yield/rates.js.map +0 -1
- package/dist/yield/types.d.ts +0 -134
- package/dist/yield/types.d.ts.map +0 -1
- package/dist/yield/types.js +0 -24
- package/dist/yield/types.js.map +0 -1
- package/dist/yield/vault.d.ts +0 -112
- package/dist/yield/vault.d.ts.map +0 -1
- package/dist/yield/vault.js +0 -264
- package/dist/yield/vault.js.map +0 -1
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
/** Goals — what the agent is optimizing for */
|
|
2
|
-
export interface WalletGoals {
|
|
3
|
-
/** Primary optimization target */
|
|
4
|
-
primary: 'maximize-net-output' | 'minimize-gas' | 'maximize-speed' | 'minimize-risk';
|
|
5
|
-
/** Hard constraints — never violated */
|
|
6
|
-
constraints: {
|
|
7
|
-
maxSlippageBps?: number;
|
|
8
|
-
maxGasUsd?: number;
|
|
9
|
-
mevProtectionRequired?: boolean;
|
|
10
|
-
maxSingleSwapUsd?: number;
|
|
11
|
-
};
|
|
12
|
-
/** Soft targets — tracked and optimized toward */
|
|
13
|
-
targets?: {
|
|
14
|
-
minSavingsVsBaselineBps?: number;
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
/** Directives — standing orders the agent follows */
|
|
18
|
-
export interface WalletDirective {
|
|
19
|
-
rule: string;
|
|
20
|
-
enabled: boolean;
|
|
21
|
-
params: Record<string, number | string | boolean>;
|
|
22
|
-
}
|
|
23
|
-
/** Built-in directive rules */
|
|
24
|
-
export type DirectiveRule = 'prefer-mev-protected' | 'avoid-high-gas' | 'time-based-routing' | 'pair-specific-routing' | 'alert-on-arb-opportunity';
|
|
25
|
-
/** RSI Configuration */
|
|
26
|
-
export interface RSIConfig {
|
|
27
|
-
enabled: boolean;
|
|
28
|
-
/** How many outcomes before running a mutation cycle */
|
|
29
|
-
learningWindow?: number;
|
|
30
|
-
/** Maximum parameter change per cycle (0-1) */
|
|
31
|
-
mutationRate?: number;
|
|
32
|
-
/** Metrics to track */
|
|
33
|
-
metrics?: RSIMetric[];
|
|
34
|
-
/** File path or key for persisting state */
|
|
35
|
-
storageKey?: string;
|
|
36
|
-
}
|
|
37
|
-
export type RSIMetric = 'provider-win-rate' | 'quote-accuracy' | 'latency' | 'failure-rate' | 'gas-accuracy' | 'fill-rate' | 'time-of-day-patterns';
|
|
38
|
-
/** A single recorded swap outcome */
|
|
39
|
-
export interface SwapOutcome {
|
|
40
|
-
timestamp: number;
|
|
41
|
-
chain: string;
|
|
42
|
-
fromToken: string;
|
|
43
|
-
toToken: string;
|
|
44
|
-
amount: string;
|
|
45
|
-
/** All quotes received (not just the winner) */
|
|
46
|
-
allQuotes: Array<{
|
|
47
|
-
provider: string;
|
|
48
|
-
toAmount: string;
|
|
49
|
-
gasEstimateUsd: number;
|
|
50
|
-
estimatedTimeMs: number;
|
|
51
|
-
mevProtected: boolean;
|
|
52
|
-
}>;
|
|
53
|
-
/** The provider that was selected */
|
|
54
|
-
selectedProvider: string;
|
|
55
|
-
/** Quoted output amount */
|
|
56
|
-
quotedOutput: string;
|
|
57
|
-
/** Actual output received (after execution) */
|
|
58
|
-
actualOutput?: string;
|
|
59
|
-
/** Actual gas paid in USD */
|
|
60
|
-
actualGasUsd?: number;
|
|
61
|
-
/** Whether the swap succeeded */
|
|
62
|
-
success: boolean;
|
|
63
|
-
/** Execution time in ms */
|
|
64
|
-
executionTimeMs?: number;
|
|
65
|
-
}
|
|
66
|
-
/** Learned provider weight adjustments */
|
|
67
|
-
export interface ProviderWeights {
|
|
68
|
-
/** Global weights (across all pairs) */
|
|
69
|
-
global: Record<string, number>;
|
|
70
|
-
/** Per-chain weights */
|
|
71
|
-
byChain: Record<string, Record<string, number>>;
|
|
72
|
-
/** Per-pair weights (most specific) */
|
|
73
|
-
byPair: Record<string, Record<string, number>>;
|
|
74
|
-
}
|
|
75
|
-
/** Result of a mutation cycle */
|
|
76
|
-
export interface MutationResult {
|
|
77
|
-
cycle: number;
|
|
78
|
-
timestamp: number;
|
|
79
|
-
outcomesAnalyzed: number;
|
|
80
|
-
mutations: Array<{
|
|
81
|
-
type: string;
|
|
82
|
-
provider: string;
|
|
83
|
-
field: string;
|
|
84
|
-
oldValue: number;
|
|
85
|
-
newValue: number;
|
|
86
|
-
reason: string;
|
|
87
|
-
}>;
|
|
88
|
-
metrics: {
|
|
89
|
-
avgSavingsVsBaselineBps: number;
|
|
90
|
-
providerWinRates: Record<string, number>;
|
|
91
|
-
avgQuoteAccuracy: number;
|
|
92
|
-
avgLatencyMs: Record<string, number>;
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
/** Full persisted RSI state */
|
|
96
|
-
export interface RSIState {
|
|
97
|
-
version: number;
|
|
98
|
-
lastMutationCycle: number;
|
|
99
|
-
totalOutcomes: number;
|
|
100
|
-
providerWeights: ProviderWeights;
|
|
101
|
-
outcomes: SwapOutcome[];
|
|
102
|
-
mutationHistory: MutationResult[];
|
|
103
|
-
directives: WalletDirective[];
|
|
104
|
-
goals: WalletGoals;
|
|
105
|
-
}
|
|
106
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/swap/router/rsi/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/swap/router/rsi/types.ts"],"names":[],"mappings":"AAAA,kFAAkF"}
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
export type SwapStrategy = 'best-net-output' | 'fastest' | 'lowest-gas' | 'mev-protected';
|
|
2
|
-
/** Unified quote format returned by every provider */
|
|
3
|
-
export interface AggregatorQuote {
|
|
4
|
-
/** Provider name (e.g. '1inch', '0x', 'paraswap', 'cowswap', 'lifi', 'uniswap', 'jupiter') */
|
|
5
|
-
provider: string;
|
|
6
|
-
/** Input token symbol or address */
|
|
7
|
-
fromToken: string;
|
|
8
|
-
/** Output token symbol or address */
|
|
9
|
-
toToken: string;
|
|
10
|
-
/** Input amount in smallest unit (e.g. wei, lamports) */
|
|
11
|
-
fromAmount: bigint;
|
|
12
|
-
/** Expected output amount in smallest unit */
|
|
13
|
-
toAmount: bigint;
|
|
14
|
-
/** Gas estimate in wei (0 for Solana/gasless) */
|
|
15
|
-
gasEstimate: bigint;
|
|
16
|
-
/** Gas cost in USD */
|
|
17
|
-
gasEstimateUsd: number;
|
|
18
|
-
/** Provider platform fee in basis points */
|
|
19
|
-
platformFee: number;
|
|
20
|
-
/** toAmount adjusted for gas cost — used for ranking */
|
|
21
|
-
netOutput: bigint;
|
|
22
|
-
/** Price impact as percentage (e.g. 0.3 = 0.3%) */
|
|
23
|
-
priceImpact: number;
|
|
24
|
-
/** DEX route path (e.g. ['Uniswap V3', 'Curve']) */
|
|
25
|
-
route: string[];
|
|
26
|
-
/** Estimated execution time in milliseconds */
|
|
27
|
-
estimatedTimeMs: number;
|
|
28
|
-
/** Whether this quote is MEV-protected (CowSwap, 1inch Fusion) */
|
|
29
|
-
mevProtected: boolean;
|
|
30
|
-
/** Ready-to-submit transaction data (if provided by aggregator) */
|
|
31
|
-
txData?: {
|
|
32
|
-
to: string;
|
|
33
|
-
data: string;
|
|
34
|
-
value: bigint;
|
|
35
|
-
gasLimit: bigint;
|
|
36
|
-
};
|
|
37
|
-
/** Token decimals for the output token (needed for USD normalization) */
|
|
38
|
-
toTokenDecimals?: number;
|
|
39
|
-
/** USD price of one unit of the output token */
|
|
40
|
-
toTokenPriceUsd?: number;
|
|
41
|
-
/** Raw provider response for debugging */
|
|
42
|
-
metadata?: Record<string, unknown>;
|
|
43
|
-
}
|
|
44
|
-
/** Receipt from waitForTransaction */
|
|
45
|
-
export interface TransactionReceipt {
|
|
46
|
-
status: 'success' | 'reverted';
|
|
47
|
-
blockNumber?: number;
|
|
48
|
-
gasUsed?: bigint;
|
|
49
|
-
[key: string]: unknown;
|
|
50
|
-
}
|
|
51
|
-
/** Result after executing a swap */
|
|
52
|
-
export interface AggregatorSwapResult {
|
|
53
|
-
/** Transaction hash (EVM) or signature (Solana) */
|
|
54
|
-
txHash: string;
|
|
55
|
-
/** Quote that was executed */
|
|
56
|
-
quote: AggregatorQuote;
|
|
57
|
-
/** Chain the swap was executed on */
|
|
58
|
-
chain: string;
|
|
59
|
-
/** Receipt (populated when waitForReceipt: true) */
|
|
60
|
-
receipt?: TransactionReceipt;
|
|
61
|
-
/** Whether the transaction succeeded (populated when waitForReceipt: true) */
|
|
62
|
-
success?: boolean;
|
|
63
|
-
}
|
|
64
|
-
/** Parameters for requesting a quote */
|
|
65
|
-
export interface QuoteParams {
|
|
66
|
-
/** Token symbol or address (e.g. 'USDC' or '0x833589...') */
|
|
67
|
-
fromToken: string;
|
|
68
|
-
/** Token symbol or address */
|
|
69
|
-
toToken: string;
|
|
70
|
-
/** Human-readable amount (e.g. '100' for 100 USDC) */
|
|
71
|
-
amount: string;
|
|
72
|
-
/** Chain name: 'ethereum', 'base', 'arbitrum', 'optimism', 'polygon', 'solana', etc. */
|
|
73
|
-
chain: string;
|
|
74
|
-
/** Sender address (required by some providers for accurate quotes) */
|
|
75
|
-
fromAddress?: string;
|
|
76
|
-
/** Slippage tolerance in bps (default: 50 = 0.5%) */
|
|
77
|
-
slippageBps?: number;
|
|
78
|
-
}
|
|
79
|
-
/** Provider interface — each aggregator implements this */
|
|
80
|
-
export interface ISwapProvider {
|
|
81
|
-
/** Provider identifier */
|
|
82
|
-
readonly name: string;
|
|
83
|
-
/** Chains this provider supports (lowercase) */
|
|
84
|
-
readonly supportedChains: string[];
|
|
85
|
-
/** Fetch a quote; returns null if unsupported or on error */
|
|
86
|
-
getQuote(params: QuoteParams, timeoutMs: number): Promise<AggregatorQuote | null>;
|
|
87
|
-
}
|
|
88
|
-
/** SmartSwapRouter configuration */
|
|
89
|
-
export interface SmartSwapConfig {
|
|
90
|
-
/** Providers to query (default: all available for chain) */
|
|
91
|
-
providers?: string[];
|
|
92
|
-
/** Ranking strategy (default: 'best-net-output') */
|
|
93
|
-
strategy?: SwapStrategy;
|
|
94
|
-
/** Per-provider timeout in ms (default: 5000) */
|
|
95
|
-
timeoutMs?: number;
|
|
96
|
-
/** Default slippage in bps (default: 50) */
|
|
97
|
-
slippageBps?: number;
|
|
98
|
-
/** Providers to exclude */
|
|
99
|
-
excludeProviders?: string[];
|
|
100
|
-
/** API keys for providers that require them */
|
|
101
|
-
apiKeys?: {
|
|
102
|
-
oneInch?: string;
|
|
103
|
-
zerox?: string;
|
|
104
|
-
};
|
|
105
|
-
/** Quote cache TTL in ms (default: 3000, set to 0 to disable) */
|
|
106
|
-
cacheTtlMs?: number;
|
|
107
|
-
/** Max consecutive failures before a provider is marked unhealthy (default: 3) */
|
|
108
|
-
healthMaxFailures?: number;
|
|
109
|
-
/** Cooldown in ms before retrying an unhealthy provider (default: 60000) */
|
|
110
|
-
healthCooldownMs?: number;
|
|
111
|
-
/** [MAX-ADDED] RSI engine config — opt-in self-improvement (default: disabled) */
|
|
112
|
-
rsi?: import('./rsi/types.js').RSIConfig;
|
|
113
|
-
/** [MAX-ADDED] Wallet goals for RSI optimization */
|
|
114
|
-
goals?: import('./rsi/types.js').WalletGoals;
|
|
115
|
-
}
|
|
116
|
-
/** Chain name → chain ID mapping for EVM chains */
|
|
117
|
-
export declare const CHAIN_IDS: Record<string, number>;
|
|
118
|
-
/** Reverse mapping: chain ID → name */
|
|
119
|
-
export declare const CHAIN_NAMES: Record<number, string>;
|
|
120
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/swap/router/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
// [MAX-ADDED] SmartSwapRouter types — multi-DEX meta-aggregation for agentwallet-sdk
|
|
2
|
-
// Separate from the existing Uniswap-specific SwapQuote in ../types.ts
|
|
3
|
-
/** Chain name → chain ID mapping for EVM chains */
|
|
4
|
-
export const CHAIN_IDS = {
|
|
5
|
-
ethereum: 1,
|
|
6
|
-
base: 8453,
|
|
7
|
-
arbitrum: 42161,
|
|
8
|
-
optimism: 10,
|
|
9
|
-
polygon: 137,
|
|
10
|
-
avalanche: 43114,
|
|
11
|
-
bnb: 56,
|
|
12
|
-
gnosis: 100,
|
|
13
|
-
};
|
|
14
|
-
/** Reverse mapping: chain ID → name */
|
|
15
|
-
export const CHAIN_NAMES = Object.fromEntries(Object.entries(CHAIN_IDS).map(([k, v]) => [v, k]));
|
|
16
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/swap/router/types.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,uEAAuE;AA4HvE,mDAAmD;AACnD,MAAM,CAAC,MAAM,SAAS,GAA2B;IAC/C,QAAQ,EAAE,CAAC;IACX,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,GAAG;IACZ,SAAS,EAAE,KAAK;IAChB,GAAG,EAAE,EAAE;IACP,MAAM,EAAE,GAAG;CACZ,CAAC;AAEF,uCAAuC;AACvC,MAAM,CAAC,MAAM,WAAW,GAA2B,MAAM,CAAC,WAAW,CACnE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAClD,CAAC"}
|
package/dist/tax/engine.d.ts
DELETED
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tax / P&L Engine — Core Engine
|
|
3
|
-
*
|
|
4
|
-
* ⚠️ DISCLAIMER: This module is for informational purposes only.
|
|
5
|
-
* Tax laws are complex, jurisdiction-specific, and change frequently.
|
|
6
|
-
* Always consult a qualified tax professional before filing. This is NOT tax advice.
|
|
7
|
-
*
|
|
8
|
-
* Key rules modeled (US-centric):
|
|
9
|
-
* - Every token swap = taxable disposal of fromToken + acquisition of toToken
|
|
10
|
-
* - Short-term gain: held < 365 days → taxed as ordinary income
|
|
11
|
-
* - Long-term gain: held ≥ 365 days → preferential capital gains rates
|
|
12
|
-
* - Yield received = ordinary income (full rate)
|
|
13
|
-
* - Gas fees = reduce net gain (treated as selling expense)
|
|
14
|
-
* - Wash sale rule: NOT applicable to crypto as of 2024 (no legislation yet)
|
|
15
|
-
* - Fiat on-ramp = establishes cost basis, NOT a taxable event
|
|
16
|
-
* - Bridge (cross-chain move) = generally NOT taxable (same owner, same asset)
|
|
17
|
-
*/
|
|
18
|
-
import type { TaxEngineConfig, TaxEvent, TaxLot, RealizedGain, TaxSummary } from './types.js';
|
|
19
|
-
export declare class TaxEngine {
|
|
20
|
-
private config;
|
|
21
|
-
private lotManager;
|
|
22
|
-
private events;
|
|
23
|
-
private gains;
|
|
24
|
-
constructor(config?: TaxEngineConfig);
|
|
25
|
-
/**
|
|
26
|
-
* Record a swap — the most common taxable event in DeFi.
|
|
27
|
-
*
|
|
28
|
-
* A swap creates two sub-events:
|
|
29
|
-
* 1. Disposal of fromToken (taxable — creates realized gain/loss)
|
|
30
|
-
* 2. Acquisition of toToken (establishes new cost basis)
|
|
31
|
-
*
|
|
32
|
-
* Returns the RealizedGain record, or null if no lots were tracked
|
|
33
|
-
* (zero cost basis scenario — gain equals full proceeds).
|
|
34
|
-
*/
|
|
35
|
-
recordSwap(params: {
|
|
36
|
-
txHash: string;
|
|
37
|
-
chain: string;
|
|
38
|
-
timestamp: number;
|
|
39
|
-
fromToken: string;
|
|
40
|
-
fromTokenAddress: string;
|
|
41
|
-
fromAmount: bigint;
|
|
42
|
-
fromValueUsd: number;
|
|
43
|
-
toToken: string;
|
|
44
|
-
toTokenAddress: string;
|
|
45
|
-
toAmount: bigint;
|
|
46
|
-
toValueUsd: number;
|
|
47
|
-
gasPaidUsd?: number;
|
|
48
|
-
}): RealizedGain | null;
|
|
49
|
-
/**
|
|
50
|
-
* Record yield received from a DeFi protocol (taxable as ordinary income).
|
|
51
|
-
*
|
|
52
|
-
* Yield is treated as income at the fair market value when received.
|
|
53
|
-
* The cost basis of the new lot = market value at receipt.
|
|
54
|
-
*/
|
|
55
|
-
recordYieldReceived(params: {
|
|
56
|
-
txHash?: string;
|
|
57
|
-
chain: string;
|
|
58
|
-
timestamp: number;
|
|
59
|
-
token: string;
|
|
60
|
-
tokenAddress: string;
|
|
61
|
-
amount: bigint;
|
|
62
|
-
valueUsd: number;
|
|
63
|
-
protocol: string;
|
|
64
|
-
}): void;
|
|
65
|
-
/**
|
|
66
|
-
* Record a fiat on-ramp (buying crypto with fiat currency).
|
|
67
|
-
*
|
|
68
|
-
* This is NOT a taxable event — it establishes the cost basis for future disposals.
|
|
69
|
-
* The cost basis = amount paid in fiat (USD).
|
|
70
|
-
*/
|
|
71
|
-
recordFiatOnRamp(params: {
|
|
72
|
-
txHash?: string;
|
|
73
|
-
chain: string;
|
|
74
|
-
timestamp: number;
|
|
75
|
-
token: string;
|
|
76
|
-
tokenAddress: string;
|
|
77
|
-
amount: bigint;
|
|
78
|
-
paidUsd: number;
|
|
79
|
-
}): void;
|
|
80
|
-
/**
|
|
81
|
-
* Generate an annual tax summary.
|
|
82
|
-
*
|
|
83
|
-
* ⚠️ For informational purposes only. Consult a tax professional.
|
|
84
|
-
*/
|
|
85
|
-
getSummary(year?: number): TaxSummary;
|
|
86
|
-
/**
|
|
87
|
-
* Export to CSV format compatible with TurboTax, Koinly, CoinTracker, and similar tools.
|
|
88
|
-
*
|
|
89
|
-
* ⚠️ For informational purposes only. Consult a tax professional.
|
|
90
|
-
* All USD values are formatted to 2 decimal places to prevent CSV parsing issues.
|
|
91
|
-
*/
|
|
92
|
-
exportCSV(year?: number): string;
|
|
93
|
-
/**
|
|
94
|
-
* Export to JSON (for programmatic use, custom reporting, CPA handoff).
|
|
95
|
-
*
|
|
96
|
-
* ⚠️ For informational purposes only. Consult a tax professional.
|
|
97
|
-
*/
|
|
98
|
-
exportJSON(year?: number): {
|
|
99
|
-
summary: TaxSummary;
|
|
100
|
-
gains: RealizedGain[];
|
|
101
|
-
events: TaxEvent[];
|
|
102
|
-
};
|
|
103
|
-
/**
|
|
104
|
-
* Export full engine state for persistence across sessions.
|
|
105
|
-
*/
|
|
106
|
-
exportState(): {
|
|
107
|
-
lots: Record<string, TaxLot[]>;
|
|
108
|
-
events: TaxEvent[];
|
|
109
|
-
gains: RealizedGain[];
|
|
110
|
-
};
|
|
111
|
-
/**
|
|
112
|
-
* Load state from a previous session (e.g., from database or JSON file).
|
|
113
|
-
* After loading, new swaps will correctly build on existing lot inventory.
|
|
114
|
-
*/
|
|
115
|
-
loadState(state: {
|
|
116
|
-
lots: Record<string, TaxLot[]>;
|
|
117
|
-
events: TaxEvent[];
|
|
118
|
-
gains: RealizedGain[];
|
|
119
|
-
}): void;
|
|
120
|
-
/**
|
|
121
|
-
* Determine if a disposal is short-term or long-term.
|
|
122
|
-
*
|
|
123
|
-
* Uses the acquisition timestamp of the earliest lot consumed (conservative
|
|
124
|
-
* for FIFO; oldest lot determines the holding period of the bulk of the disposal).
|
|
125
|
-
*
|
|
126
|
-
* Rule: held ≥ 365 days = long-term; held < 365 days = short-term.
|
|
127
|
-
* If no lots were tracked, defaults to short-term (conservative).
|
|
128
|
-
*/
|
|
129
|
-
private determineGainType;
|
|
130
|
-
}
|
|
131
|
-
//# sourceMappingURL=engine.d.ts.map
|
package/dist/tax/engine.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/tax/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,UAAU,EAEX,MAAM,YAAY,CAAC;AAMpB,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,KAAK,CAAsB;gBAEvB,MAAM,GAAE,eAAoB;IAWxC;;;;;;;;;OASG;IACH,UAAU,CAAC,MAAM,EAAE;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,EAAE,MAAM,CAAC;QACzB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,YAAY,GAAG,IAAI;IA4EvB;;;;;OAKG;IACH,mBAAmB,CAAC,MAAM,EAAE;QAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;QACrB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,IAAI;IAiCR;;;;;OAKG;IACH,gBAAgB,CAAC,MAAM,EAAE;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;QACrB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;KACjB,GAAG,IAAI;IAgCR;;;;OAIG;IACH,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU;IAwCrC;;;;;OAKG;IACH,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM;IAoChC;;;;OAIG;IACH,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG;QACzB,OAAO,EAAE,UAAU,CAAC;QACpB,KAAK,EAAE,YAAY,EAAE,CAAC;QACtB,MAAM,EAAE,QAAQ,EAAE,CAAC;KACpB;IAiBD;;OAEG;IACH,WAAW,IAAI;QACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/B,MAAM,EAAE,QAAQ,EAAE,CAAC;QACnB,KAAK,EAAE,YAAY,EAAE,CAAC;KACvB;IAQD;;;OAGG;IACH,SAAS,CAAC,KAAK,EAAE;QACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/B,MAAM,EAAE,QAAQ,EAAE,CAAC;QACnB,KAAK,EAAE,YAAY,EAAE,CAAC;KACvB,GAAG,IAAI;IAQR;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;CAiB1B"}
|