@axonfi/sdk 0.4.0 → 0.4.2
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 +15 -9
- package/dist/index.cjs +4325 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +3256 -0
- package/dist/index.d.ts +3256 -21
- package/dist/index.js +4261 -27
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/abis/AxonRegistry.d.ts +0 -294
- package/dist/abis/AxonRegistry.d.ts.map +0 -1
- package/dist/abis/AxonRegistry.js +0 -381
- package/dist/abis/AxonRegistry.js.map +0 -1
- package/dist/abis/AxonVault.d.ts +0 -1577
- package/dist/abis/AxonVault.d.ts.map +0 -1
- package/dist/abis/AxonVault.js +0 -2026
- package/dist/abis/AxonVault.js.map +0 -1
- package/dist/abis/AxonVaultFactory.d.ts +0 -207
- package/dist/abis/AxonVaultFactory.d.ts.map +0 -1
- package/dist/abis/AxonVaultFactory.js +0 -269
- package/dist/abis/AxonVaultFactory.js.map +0 -1
- package/dist/amounts.d.ts +0 -37
- package/dist/amounts.d.ts.map +0 -1
- package/dist/amounts.js +0 -72
- package/dist/amounts.js.map +0 -1
- package/dist/amounts.spec.d.ts +0 -2
- package/dist/amounts.spec.d.ts.map +0 -1
- package/dist/amounts.spec.js +0 -92
- package/dist/amounts.spec.js.map +0 -1
- package/dist/client.d.ts +0 -196
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js +0 -621
- package/dist/client.js.map +0 -1
- package/dist/client.spec.d.ts +0 -2
- package/dist/client.spec.d.ts.map +0 -1
- package/dist/client.spec.js +0 -437
- package/dist/client.spec.js.map +0 -1
- package/dist/constants.d.ts +0 -110
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js +0 -172
- package/dist/constants.js.map +0 -1
- package/dist/constants.spec.d.ts +0 -2
- package/dist/constants.spec.d.ts.map +0 -1
- package/dist/constants.spec.js +0 -95
- package/dist/constants.spec.js.map +0 -1
- package/dist/eip3009.d.ts +0 -45
- package/dist/eip3009.d.ts.map +0 -1
- package/dist/eip3009.js +0 -85
- package/dist/eip3009.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/keystore.d.ts +0 -60
- package/dist/keystore.d.ts.map +0 -1
- package/dist/keystore.js +0 -182
- package/dist/keystore.js.map +0 -1
- package/dist/keystore.spec.d.ts +0 -2
- package/dist/keystore.spec.d.ts.map +0 -1
- package/dist/keystore.spec.js +0 -71
- package/dist/keystore.spec.js.map +0 -1
- package/dist/permit2.d.ts +0 -45
- package/dist/permit2.d.ts.map +0 -1
- package/dist/permit2.js +0 -81
- package/dist/permit2.js.map +0 -1
- package/dist/signer.d.ts +0 -35
- package/dist/signer.d.ts.map +0 -1
- package/dist/signer.js +0 -132
- package/dist/signer.js.map +0 -1
- package/dist/signer.spec.d.ts +0 -2
- package/dist/signer.spec.d.ts.map +0 -1
- package/dist/signer.spec.js +0 -94
- package/dist/signer.spec.js.map +0 -1
- package/dist/tokens.d.ts +0 -215
- package/dist/tokens.d.ts.map +0 -1
- package/dist/tokens.js +0 -247
- package/dist/tokens.js.map +0 -1
- package/dist/types.d.ts +0 -302
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/utils.d.ts +0 -8
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js +0 -29
- package/dist/utils.js.map +0 -1
- package/dist/vault.d.ts +0 -60
- package/dist/vault.d.ts.map +0 -1
- package/dist/vault.js +0 -267
- package/dist/vault.js.map +0 -1
- package/dist/vault.spec.d.ts +0 -2
- package/dist/vault.spec.d.ts.map +0 -1
- package/dist/vault.spec.js +0 -162
- package/dist/vault.spec.js.map +0 -1
- package/dist/x402.d.ts +0 -88
- package/dist/x402.d.ts.map +0 -1
- package/dist/x402.js +0 -124
- package/dist/x402.js.map +0 -1
- package/dist/x402.spec.d.ts +0 -2
- package/dist/x402.spec.d.ts.map +0 -1
- package/dist/x402.spec.js +0 -411
- package/dist/x402.spec.js.map +0 -1
package/dist/types.d.ts
DELETED
|
@@ -1,302 +0,0 @@
|
|
|
1
|
-
import type { Address, Hex } from 'viem';
|
|
2
|
-
import type { Token, KnownTokenSymbol } from './tokens.js';
|
|
3
|
-
import type { Chain } from './constants.js';
|
|
4
|
-
/**
|
|
5
|
-
* Accepts any way to identify a token:
|
|
6
|
-
* - `Address` ('0x...') — raw contract address
|
|
7
|
-
* - `Token` enum (Token.USDC) — type-safe symbol
|
|
8
|
-
* - `KnownTokenSymbol` string ('USDC') — bare string shorthand
|
|
9
|
-
*/
|
|
10
|
-
export type TokenInput = Address | Token | KnownTokenSymbol;
|
|
11
|
-
/**
|
|
12
|
-
* Accepts amounts in any format:
|
|
13
|
-
* - `bigint` — raw base units (e.g. 5_000_000n for 5 USDC). Passed through as-is.
|
|
14
|
-
* - `number` — human-readable (e.g. 5.2 for 5.2 USDC). SDK converts using token decimals.
|
|
15
|
-
* - `string` — human-readable string (e.g. '5.2'). Recommended for computed values to avoid float precision issues.
|
|
16
|
-
*/
|
|
17
|
-
export type AmountInput = bigint | number | string;
|
|
18
|
-
/** Rolling window spending limit. Stored on-chain, enforced by relayer. */
|
|
19
|
-
export interface SpendingLimit {
|
|
20
|
-
/** Max spend in this window (token base units, e.g. USDC has 6 decimals). */
|
|
21
|
-
amount: bigint;
|
|
22
|
-
/** Max number of transactions in this window. 0 = no count limit. */
|
|
23
|
-
maxCount: bigint;
|
|
24
|
-
/** Window size: 3600=1h, 86400=1d, 604800=1w, 2592000=30d */
|
|
25
|
-
windowSeconds: bigint;
|
|
26
|
-
}
|
|
27
|
-
/** Per-bot configuration returned by getBotConfig(). */
|
|
28
|
-
export interface BotConfig {
|
|
29
|
-
isActive: boolean;
|
|
30
|
-
registeredAt: bigint;
|
|
31
|
-
/** Hard per-tx cap for payments, enforced on-chain. 0 = no cap. */
|
|
32
|
-
maxPerTxAmount: bigint;
|
|
33
|
-
/** Hard cap for rebalancing (executeSwap) input amount in USD. 0 = no cap. */
|
|
34
|
-
maxRebalanceAmount: bigint;
|
|
35
|
-
/** Rolling window limits — stored on-chain, enforced by relayer. */
|
|
36
|
-
spendingLimits: SpendingLimit[];
|
|
37
|
-
/** Relayer triggers AI scan above this amount. 0 = never by amount alone. */
|
|
38
|
-
aiTriggerThreshold: bigint;
|
|
39
|
-
/** Relayer always requires AI scan for this bot regardless of amount. */
|
|
40
|
-
requireAiVerification: boolean;
|
|
41
|
-
}
|
|
42
|
-
/** Parameters for addBot / updateBotConfig. */
|
|
43
|
-
export interface BotConfigParams {
|
|
44
|
-
maxPerTxAmount: bigint;
|
|
45
|
-
/** Hard cap for rebalancing (executeSwap) input amount in USD. 0 = no cap (default). */
|
|
46
|
-
maxRebalanceAmount: bigint;
|
|
47
|
-
spendingLimits: SpendingLimit[];
|
|
48
|
-
aiTriggerThreshold: bigint;
|
|
49
|
-
requireAiVerification: boolean;
|
|
50
|
-
}
|
|
51
|
-
/** Owner-set ceilings bounding operator actions. */
|
|
52
|
-
export interface OperatorCeilings {
|
|
53
|
-
/** Operator cannot set a bot's maxPerTxAmount above this. 0 = no ceiling. */
|
|
54
|
-
maxPerTxAmount: bigint;
|
|
55
|
-
/** Operator cannot set a bot's daily limit above this. 0 = no ceiling. */
|
|
56
|
-
maxBotDailyLimit: bigint;
|
|
57
|
-
/** 0 = operator CANNOT add bots. Must be explicitly set by owner. */
|
|
58
|
-
maxOperatorBots: bigint;
|
|
59
|
-
/** Total vault daily outflow cap — relayer reads and enforces. 0 = none. */
|
|
60
|
-
vaultDailyAggregate: bigint;
|
|
61
|
-
/** Operator cannot set aiTriggerThreshold above this. 0 = no floor. */
|
|
62
|
-
minAiTriggerFloor: bigint;
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Signed payment intent. This is the core signed data unit.
|
|
66
|
-
*
|
|
67
|
-
* The bot signs this struct using EIP-712. The relayer submits it to
|
|
68
|
-
* executePayment() on-chain. The bot never interacts with the chain directly.
|
|
69
|
-
*
|
|
70
|
-
* Domain: { name: "AxonVault", version: "1", chainId, verifyingContract: vaultAddress }
|
|
71
|
-
* TypeHash: keccak256("PaymentIntent(address bot,address to,address token,uint256 amount,uint256 deadline,bytes32 ref)")
|
|
72
|
-
*/
|
|
73
|
-
export interface PaymentIntent {
|
|
74
|
-
/** Bot's own address. Must be registered in the vault. */
|
|
75
|
-
bot: Address;
|
|
76
|
-
/** Payment recipient address. */
|
|
77
|
-
to: Address;
|
|
78
|
-
/** Desired output token address (e.g. USDC). Vault may hold this directly
|
|
79
|
-
* or the relayer may swap to it transparently. */
|
|
80
|
-
token: Address;
|
|
81
|
-
/** Token amount in base units (USDC: 6 decimals, so 1 USDC = 1_000_000n). */
|
|
82
|
-
amount: bigint;
|
|
83
|
-
/** Unix timestamp after which this intent is invalid. */
|
|
84
|
-
deadline: bigint;
|
|
85
|
-
/** keccak256 of the off-chain memo. Full memo text stored by relayer. */
|
|
86
|
-
ref: Hex;
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Input for AxonClient.pay(). The SDK fills in bot address, deadline,
|
|
90
|
-
* and ref (from memo). You provide the payment destination and metadata.
|
|
91
|
-
*/
|
|
92
|
-
export interface PayInput {
|
|
93
|
-
/** Payment recipient. */
|
|
94
|
-
to: Address;
|
|
95
|
-
/** Desired output token — an address, Token enum, or bare symbol string ('USDC'). */
|
|
96
|
-
token: TokenInput;
|
|
97
|
-
/** Amount: bigint (raw base units), number (human-readable), or string (human-readable). */
|
|
98
|
-
amount: AmountInput;
|
|
99
|
-
/**
|
|
100
|
-
* Human-readable payment description. Stored in relayer's PostgreSQL.
|
|
101
|
-
* Gets keccak256-hashed to populate the on-chain `ref` field.
|
|
102
|
-
* Example: "API call #1234 — weather data lookup"
|
|
103
|
-
*/
|
|
104
|
-
memo?: string;
|
|
105
|
-
/**
|
|
106
|
-
* Mandatory per-request unique key for idempotency. The relayer uses
|
|
107
|
-
* this to deduplicate retries — submitting the same idempotencyKey twice
|
|
108
|
-
* is safe and returns the original result. If omitted, the SDK generates
|
|
109
|
-
* a UUID automatically.
|
|
110
|
-
*/
|
|
111
|
-
idempotencyKey?: string;
|
|
112
|
-
/**
|
|
113
|
-
* For x402 / HTTP 402 flows: the URL whose resource is being unlocked
|
|
114
|
-
* by this payment. Stored off-chain, not signed.
|
|
115
|
-
*/
|
|
116
|
-
resourceUrl?: string;
|
|
117
|
-
/** Your external invoice ID. Stored off-chain for reconciliation. */
|
|
118
|
-
invoiceId?: string;
|
|
119
|
-
/** Your external order ID. Stored off-chain for reconciliation. */
|
|
120
|
-
orderId?: string;
|
|
121
|
-
/**
|
|
122
|
-
* Human-readable name for the recipient. Displayed on dashboards instead of
|
|
123
|
-
* the raw address. Example: "Weather Bot", "Alice", "OpenAI API".
|
|
124
|
-
*/
|
|
125
|
-
recipientLabel?: string;
|
|
126
|
-
/** Arbitrary key-value metadata. Stored off-chain. Values must be strings. */
|
|
127
|
-
metadata?: Record<string, string>;
|
|
128
|
-
/**
|
|
129
|
-
* Intent expiry. Defaults to 5 minutes from now.
|
|
130
|
-
* Must be within the relayer's acceptance window (typically ±5 min).
|
|
131
|
-
*/
|
|
132
|
-
deadline?: bigint;
|
|
133
|
-
/**
|
|
134
|
-
* Override the on-chain ref bytes32 directly. Use this when you need to
|
|
135
|
-
* match an exact ref value (e.g. for cross-chain deposit tracking).
|
|
136
|
-
* If set, `memo` is ignored for ref generation but still stored off-chain.
|
|
137
|
-
*/
|
|
138
|
-
ref?: Hex;
|
|
139
|
-
/**
|
|
140
|
-
* Marks this payment as x402 bot-EOA funding. When true, the relayer
|
|
141
|
-
* records the flag for audit/context (e.g. "bot self-payment for x402").
|
|
142
|
-
* Does NOT bypass any policy checks — full pipeline still applies.
|
|
143
|
-
*/
|
|
144
|
-
x402Funding?: boolean;
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* Signed execute intent for DeFi protocol interactions.
|
|
148
|
-
*
|
|
149
|
-
* The bot signs this struct using EIP-712. The relayer submits it to
|
|
150
|
-
* executeProtocol() on-chain. The contract approves `token` to `protocol`,
|
|
151
|
-
* calls it with `callData`, then revokes the approval.
|
|
152
|
-
*
|
|
153
|
-
* TypeHash: keccak256("ExecuteIntent(address bot,address protocol,bytes32 calldataHash,address token,uint256 amount,uint256 deadline,bytes32 ref)")
|
|
154
|
-
*/
|
|
155
|
-
export interface ExecuteIntent {
|
|
156
|
-
/** Bot's own address. Must be registered in the vault. */
|
|
157
|
-
bot: Address;
|
|
158
|
-
/** Target DeFi protocol contract address. Must be in vault's approvedProtocols. */
|
|
159
|
-
protocol: Address;
|
|
160
|
-
/** keccak256 of the callData bytes. Verified by relayer before submission. */
|
|
161
|
-
calldataHash: Hex;
|
|
162
|
-
/** Token to approve to the protocol before calling. */
|
|
163
|
-
token: Address;
|
|
164
|
-
/** Amount to approve (in token base units). */
|
|
165
|
-
amount: bigint;
|
|
166
|
-
/** Unix timestamp after which this intent is invalid. */
|
|
167
|
-
deadline: bigint;
|
|
168
|
-
/** keccak256 of the off-chain memo. Full memo text stored by relayer. */
|
|
169
|
-
ref: Hex;
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Signed swap intent for in-vault token rebalancing.
|
|
173
|
-
*
|
|
174
|
-
* The bot signs this struct using EIP-712. The relayer submits it to
|
|
175
|
-
* executeSwap() on-chain. Tokens stay in the vault (no recipient).
|
|
176
|
-
*
|
|
177
|
-
* TypeHash: keccak256("SwapIntent(address bot,address toToken,uint256 minToAmount,uint256 deadline,bytes32 ref)")
|
|
178
|
-
*/
|
|
179
|
-
export interface SwapIntent {
|
|
180
|
-
/** Bot's own address. Must be registered in the vault. */
|
|
181
|
-
bot: Address;
|
|
182
|
-
/** Desired output token. */
|
|
183
|
-
toToken: Address;
|
|
184
|
-
/** Minimum output amount (slippage floor). */
|
|
185
|
-
minToAmount: bigint;
|
|
186
|
-
/** Unix timestamp after which this intent is invalid. */
|
|
187
|
-
deadline: bigint;
|
|
188
|
-
/** keccak256 of the off-chain memo. Full memo text stored by relayer. */
|
|
189
|
-
ref: Hex;
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* Input for AxonClient.execute(). Signs an ExecuteIntent and submits to
|
|
193
|
-
* the relayer's POST /v1/execute endpoint.
|
|
194
|
-
*/
|
|
195
|
-
export interface ExecuteInput {
|
|
196
|
-
/** Target protocol contract address. */
|
|
197
|
-
protocol: Address;
|
|
198
|
-
/** The actual calldata bytes to send to the protocol. */
|
|
199
|
-
callData: Hex;
|
|
200
|
-
/** Token to approve to the protocol — an address, Token enum, or bare symbol string ('USDC'). */
|
|
201
|
-
token: TokenInput;
|
|
202
|
-
/** Amount to approve: bigint (raw base units), number (human-readable), or string (human-readable). */
|
|
203
|
-
amount: AmountInput;
|
|
204
|
-
/** Human-readable description. Gets keccak256-hashed to ref. */
|
|
205
|
-
memo?: string;
|
|
206
|
-
/**
|
|
207
|
-
* Human-readable name for the protocol interaction. Displayed on dashboards
|
|
208
|
-
* instead of the raw contract address. Example: "Uniswap Swap", "Aave Borrow".
|
|
209
|
-
*/
|
|
210
|
-
protocolName?: string;
|
|
211
|
-
/** Override ref bytes32 directly. */
|
|
212
|
-
ref?: Hex;
|
|
213
|
-
/** Idempotency key (auto-generated if omitted). */
|
|
214
|
-
idempotencyKey?: string;
|
|
215
|
-
/** Intent expiry (defaults to 5 min). */
|
|
216
|
-
deadline?: bigint;
|
|
217
|
-
/** Arbitrary metadata stored off-chain. */
|
|
218
|
-
metadata?: Record<string, string>;
|
|
219
|
-
/** Source token for pre-swap — an address, Token enum, or bare symbol string. */
|
|
220
|
-
fromToken?: TokenInput;
|
|
221
|
-
/** Max input for pre-swap: bigint (raw), number (human), or string (human). */
|
|
222
|
-
maxFromAmount?: AmountInput;
|
|
223
|
-
}
|
|
224
|
-
/**
|
|
225
|
-
* Input for AxonClient.swap(). Signs a SwapIntent and submits to
|
|
226
|
-
* the relayer's POST /v1/swap endpoint.
|
|
227
|
-
*/
|
|
228
|
-
export interface SwapInput {
|
|
229
|
-
/** Desired output token — an address, Token enum, or bare symbol string ('WETH'). */
|
|
230
|
-
toToken: TokenInput;
|
|
231
|
-
/** Minimum output amount (slippage floor): bigint (raw), number (human), or string (human). */
|
|
232
|
-
minToAmount: AmountInput;
|
|
233
|
-
/** Human-readable description. Gets keccak256-hashed to ref. */
|
|
234
|
-
memo?: string;
|
|
235
|
-
/** Override ref bytes32 directly. */
|
|
236
|
-
ref?: Hex;
|
|
237
|
-
/** Idempotency key (auto-generated if omitted). */
|
|
238
|
-
idempotencyKey?: string;
|
|
239
|
-
/** Intent expiry (defaults to 5 min). */
|
|
240
|
-
deadline?: bigint;
|
|
241
|
-
/** Source token to swap from — an address, Token enum, or bare symbol string. */
|
|
242
|
-
fromToken?: TokenInput;
|
|
243
|
-
/** Max input amount for swap: bigint (raw), number (human), or string (human). */
|
|
244
|
-
maxFromAmount?: AmountInput;
|
|
245
|
-
}
|
|
246
|
-
/** Possible statuses returned by the relayer. */
|
|
247
|
-
export type PaymentStatus = 'approved' | 'pending_review' | 'rejected';
|
|
248
|
-
/** Result of AxonClient.pay() or AxonClient.poll(). */
|
|
249
|
-
export interface PaymentResult {
|
|
250
|
-
requestId: string;
|
|
251
|
-
status: PaymentStatus;
|
|
252
|
-
/** On-chain transaction hash. Present when status === 'approved'. */
|
|
253
|
-
txHash?: Hex;
|
|
254
|
-
/** URL to poll for async results. */
|
|
255
|
-
pollUrl?: string;
|
|
256
|
-
/** Estimated milliseconds until resolution (relayer hint). */
|
|
257
|
-
estimatedResolutionMs?: number;
|
|
258
|
-
/** Rejection reason. Present when status === 'rejected'. */
|
|
259
|
-
reason?: string;
|
|
260
|
-
}
|
|
261
|
-
/** High-level vault info returned by AxonClient.getVaultInfo(). */
|
|
262
|
-
export interface VaultInfo {
|
|
263
|
-
owner: Address;
|
|
264
|
-
operator: Address;
|
|
265
|
-
paused: boolean;
|
|
266
|
-
version: number;
|
|
267
|
-
}
|
|
268
|
-
/** Result of a destination check (canPayTo / isDestinationAllowed). */
|
|
269
|
-
export interface DestinationCheckResult {
|
|
270
|
-
allowed: boolean;
|
|
271
|
-
reason?: string;
|
|
272
|
-
}
|
|
273
|
-
/** Result of getRebalanceTokens() — the effective rebalance token whitelist. */
|
|
274
|
-
export interface RebalanceTokensResult {
|
|
275
|
-
/** "default" = relayer defaults (no on-chain whitelist), "on_chain" = owner-set override. */
|
|
276
|
-
source: 'default' | 'on_chain';
|
|
277
|
-
/** Lowercase token addresses allowed for rebalancing (executeSwap output). */
|
|
278
|
-
tokens: Address[];
|
|
279
|
-
/** Number of tokens set on-chain. 0 = using relayer defaults. */
|
|
280
|
-
rebalanceTokenCount: number;
|
|
281
|
-
}
|
|
282
|
-
/** TOS acceptance status for a wallet. */
|
|
283
|
-
export interface TosStatus {
|
|
284
|
-
accepted: boolean;
|
|
285
|
-
tosVersion: string;
|
|
286
|
-
}
|
|
287
|
-
/** Configuration for AxonClient. */
|
|
288
|
-
export interface AxonClientConfig {
|
|
289
|
-
/** Vault contract address to sign against. */
|
|
290
|
-
vaultAddress: Address;
|
|
291
|
-
/** Chain ID — a number or a Chain enum value (e.g. Chain.Base). */
|
|
292
|
-
chainId: Chain | number;
|
|
293
|
-
/**
|
|
294
|
-
* Bot's private key (hex, 0x-prefixed). Used to sign payment intents.
|
|
295
|
-
* The SDK constructs a local signer internally — no RPC connection needed.
|
|
296
|
-
* Provide either this or `account`.
|
|
297
|
-
*/
|
|
298
|
-
botPrivateKey?: Hex;
|
|
299
|
-
/** Override the relayer URL (defaults to https://relay.axonfi.xyz). */
|
|
300
|
-
relayerUrl?: string;
|
|
301
|
-
}
|
|
302
|
-
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AACzC,OAAO,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAM5C;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,KAAK,GAAG,gBAAgB,CAAC;AAE5D;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAMnD,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC5B,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wDAAwD;AACxD,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,cAAc,EAAE,MAAM,CAAC;IACvB,8EAA8E;IAC9E,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oEAAoE;IACpE,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,6EAA6E;IAC7E,kBAAkB,EAAE,MAAM,CAAC;IAC3B,yEAAyE;IACzE,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED,+CAA+C;AAC/C,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,wFAAwF;IACxF,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED,oDAAoD;AACpD,MAAM,WAAW,gBAAgB;IAC/B,6EAA6E;IAC7E,cAAc,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,gBAAgB,EAAE,MAAM,CAAC;IACzB,qEAAqE;IACrE,eAAe,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uEAAuE;IACvE,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC5B,0DAA0D;IAC1D,GAAG,EAAE,OAAO,CAAC;IACb,iCAAiC;IACjC,EAAE,EAAE,OAAO,CAAC;IACZ;uDACmD;IACnD,KAAK,EAAE,OAAO,CAAC;IACf,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,GAAG,EAAE,GAAG,CAAC;CACV;AAMD;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,yBAAyB;IACzB,EAAE,EAAE,OAAO,CAAC;IACZ,qFAAqF;IACrF,KAAK,EAAE,UAAU,CAAC;IAClB,4FAA4F;IAC5F,MAAM,EAAE,WAAW,CAAC;IAEpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAElC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,GAAG,CAAC,EAAE,GAAG,CAAC;IAEV;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC5B,0DAA0D;IAC1D,GAAG,EAAE,OAAO,CAAC;IACb,mFAAmF;IACnF,QAAQ,EAAE,OAAO,CAAC;IAClB,8EAA8E;IAC9E,YAAY,EAAE,GAAG,CAAC;IAClB,uDAAuD;IACvD,KAAK,EAAE,OAAO,CAAC;IACf,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,GAAG,EAAE,GAAG,CAAC;CACV;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU;IACzB,0DAA0D;IAC1D,GAAG,EAAE,OAAO,CAAC;IACb,4BAA4B;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,GAAG,EAAE,GAAG,CAAC;CACV;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,wCAAwC;IACxC,QAAQ,EAAE,OAAO,CAAC;IAClB,yDAAyD;IACzD,QAAQ,EAAE,GAAG,CAAC;IACd,iGAAiG;IACjG,KAAK,EAAE,UAAU,CAAC;IAClB,uGAAuG;IACvG,MAAM,EAAE,WAAW,CAAC;IAEpB,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qCAAqC;IACrC,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,mDAAmD;IACnD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAGlC,iFAAiF;IACjF,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,+EAA+E;IAC/E,aAAa,CAAC,EAAE,WAAW,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,qFAAqF;IACrF,OAAO,EAAE,UAAU,CAAC;IACpB,+FAA+F;IAC/F,WAAW,EAAE,WAAW,CAAC;IAEzB,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,mDAAmD;IACnD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,iFAAiF;IACjF,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,kFAAkF;IAClF,aAAa,CAAC,EAAE,WAAW,CAAC;CAC7B;AAED,iDAAiD;AACjD,MAAM,MAAM,aAAa,GACrB,UAAU,GACV,gBAAgB,GAChB,UAAU,CAAC;AAEf,uDAAuD;AACvD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;IACtB,qEAAqE;IACrE,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,mEAAmE;AACnE,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,uEAAuE;AACvE,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,gFAAgF;AAChF,MAAM,WAAW,qBAAqB;IACpC,6FAA6F;IAC7F,MAAM,EAAE,SAAS,GAAG,UAAU,CAAC;IAC/B,8EAA8E;IAC9E,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,iEAAiE;IACjE,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,0CAA0C;AAC1C,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,oCAAoC;AACpC,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,YAAY,EAAE,OAAO,CAAC;IAEtB,mEAAmE;IACnE,OAAO,EAAE,KAAK,GAAG,MAAM,CAAC;IAExB;;;;OAIG;IACH,aAAa,CAAC,EAAE,GAAG,CAAC;IAEpB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
|
package/dist/types.js
DELETED
package/dist/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/dist/utils.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tiny UUID v4 generator (no external dependency).
|
|
3
|
-
*
|
|
4
|
-
* Uses `crypto.getRandomValues` in browsers and Node ≥19, with a
|
|
5
|
-
* `require('crypto').randomBytes` fallback for older Node versions.
|
|
6
|
-
*/
|
|
7
|
-
export declare function generateUuid(): string;
|
|
8
|
-
//# sourceMappingURL=utils.d.ts.map
|
package/dist/utils.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAgBrC"}
|
package/dist/utils.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
// ============================================================================
|
|
2
|
-
// Shared utilities
|
|
3
|
-
// ============================================================================
|
|
4
|
-
/**
|
|
5
|
-
* Tiny UUID v4 generator (no external dependency).
|
|
6
|
-
*
|
|
7
|
-
* Uses `crypto.getRandomValues` in browsers and Node ≥19, with a
|
|
8
|
-
* `require('crypto').randomBytes` fallback for older Node versions.
|
|
9
|
-
*/
|
|
10
|
-
export function generateUuid() {
|
|
11
|
-
const bytes = new Uint8Array(16);
|
|
12
|
-
if (typeof crypto !== 'undefined' && crypto.getRandomValues) {
|
|
13
|
-
crypto.getRandomValues(bytes);
|
|
14
|
-
}
|
|
15
|
-
else {
|
|
16
|
-
// Node.js fallback
|
|
17
|
-
const { randomBytes } = require('crypto');
|
|
18
|
-
const buf = randomBytes(16);
|
|
19
|
-
for (let i = 0; i < 16; i++)
|
|
20
|
-
bytes[i] = buf[i] ?? 0;
|
|
21
|
-
}
|
|
22
|
-
bytes[6] = (bytes[6] & 0x0f) | 0x40; // version 4
|
|
23
|
-
bytes[8] = (bytes[8] & 0x3f) | 0x80; // variant bits
|
|
24
|
-
const hex = Array.from(bytes)
|
|
25
|
-
.map((b) => b.toString(16).padStart(2, '0'))
|
|
26
|
-
.join('');
|
|
27
|
-
return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IACjC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;QAC5D,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,mBAAmB;QACnB,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,QAAQ,CAA4B,CAAC;QACrE,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAAE,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IACD,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,YAAY;IAClD,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,eAAe;IACrD,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;SAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC3C,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;AAC7G,CAAC"}
|
package/dist/vault.d.ts
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import type { PublicClient, WalletClient, Address, Hex, Chain } from 'viem';
|
|
2
|
-
import type { BotConfig, OperatorCeilings, DestinationCheckResult } from './types.js';
|
|
3
|
-
/** Returns the viem Chain object for a supported Axon chain ID. */
|
|
4
|
-
export declare function getChain(chainId: number): Chain;
|
|
5
|
-
/** Create a viem PublicClient for the given chain and RPC URL. */
|
|
6
|
-
export declare function createAxonPublicClient(chainId: number, rpcUrl: string): PublicClient;
|
|
7
|
-
/** Create a viem WalletClient from a raw private key (signing-only, no RPC needed). */
|
|
8
|
-
export declare function createAxonWalletClient(privateKey: Hex, chainId: number): WalletClient;
|
|
9
|
-
/**
|
|
10
|
-
* Returns the full BotConfig for a bot address from the vault.
|
|
11
|
-
* If the bot has never been added, isActive will be false and all
|
|
12
|
-
* numeric fields will be 0n.
|
|
13
|
-
*/
|
|
14
|
-
export declare function getBotConfig(publicClient: PublicClient, vaultAddress: Address, botAddress: Address): Promise<BotConfig>;
|
|
15
|
-
/** Returns whether a bot address is currently active in the vault. */
|
|
16
|
-
export declare function isBotActive(publicClient: PublicClient, vaultAddress: Address, botAddress: Address): Promise<boolean>;
|
|
17
|
-
/** Returns the operator ceilings set by the vault owner. */
|
|
18
|
-
export declare function getOperatorCeilings(publicClient: PublicClient, vaultAddress: Address): Promise<OperatorCeilings>;
|
|
19
|
-
/**
|
|
20
|
-
* Returns the maximum USDC an operator-compromised wallet could drain per day.
|
|
21
|
-
* Computed on-chain as: min(maxOperatorBots × maxBotDailyLimit, vaultDailyAggregate).
|
|
22
|
-
* Returns 0n if operator has no bot-add permission.
|
|
23
|
-
*/
|
|
24
|
-
export declare function operatorMaxDrainPerDay(publicClient: PublicClient, vaultAddress: Address): Promise<bigint>;
|
|
25
|
-
/** Returns whether the vault is currently paused. */
|
|
26
|
-
export declare function isVaultPaused(publicClient: PublicClient, vaultAddress: Address): Promise<boolean>;
|
|
27
|
-
/** Returns the EIP-712 domain separator for this vault (for off-chain verification). */
|
|
28
|
-
export declare function getDomainSeparator(publicClient: PublicClient, vaultAddress: Address): Promise<Hex>;
|
|
29
|
-
/** Returns the vault contract version number. */
|
|
30
|
-
export declare function getVaultVersion(publicClient: PublicClient, vaultAddress: Address): Promise<number>;
|
|
31
|
-
/** Returns the vault owner address. */
|
|
32
|
-
export declare function getVaultOwner(publicClient: PublicClient, vaultAddress: Address): Promise<Address>;
|
|
33
|
-
/** Returns the vault operator address (address(0) if no operator set). */
|
|
34
|
-
export declare function getVaultOperator(publicClient: PublicClient, vaultAddress: Address): Promise<Address>;
|
|
35
|
-
/**
|
|
36
|
-
* Check whether a destination address is allowed for a given bot.
|
|
37
|
-
*
|
|
38
|
-
* Logic mirrors the on-chain enforcement order:
|
|
39
|
-
* 1. If destination is on the global blacklist → blocked
|
|
40
|
-
* 2. If global whitelist is non-empty → destination must be on it
|
|
41
|
-
* 3. If bot-specific whitelist is non-empty → destination must be on it
|
|
42
|
-
* 4. Otherwise → allowed
|
|
43
|
-
*/
|
|
44
|
-
export declare function isDestinationAllowed(publicClient: PublicClient, vaultAddress: Address, botAddress: Address, destination: Address): Promise<DestinationCheckResult>;
|
|
45
|
-
/** Returns the number of tokens in the vault's on-chain rebalance whitelist. 0 = no on-chain whitelist. */
|
|
46
|
-
export declare function getRebalanceTokenCount(publicClient: PublicClient, vaultAddress: Address): Promise<number>;
|
|
47
|
-
/** Returns whether a token is in the vault's on-chain rebalance whitelist. */
|
|
48
|
-
export declare function isRebalanceTokenWhitelisted(publicClient: PublicClient, vaultAddress: Address, token: Address): Promise<boolean>;
|
|
49
|
-
/**
|
|
50
|
-
* Deploy a new AxonVault via the factory.
|
|
51
|
-
*
|
|
52
|
-
* The vault is owned by the walletClient's account. Permissionless — any
|
|
53
|
-
* address can deploy, no Axon approval required.
|
|
54
|
-
*
|
|
55
|
-
* @param walletClient Wallet that will own the deployed vault.
|
|
56
|
-
* @param factoryAddress Address of the deployed AxonVaultFactory.
|
|
57
|
-
* @returns Address of the newly deployed vault.
|
|
58
|
-
*/
|
|
59
|
-
export declare function deployVault(walletClient: WalletClient, publicClient: PublicClient, factoryAddress: Address): Promise<Address>;
|
|
60
|
-
//# sourceMappingURL=vault.d.ts.map
|
package/dist/vault.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vault.d.ts","sourceRoot":"","sources":["../src/vault.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAG5E,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAa,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAMjG,mEAAmE;AACnE,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAe/C;AAED,kEAAkE;AAClE,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,CAKpF;AAED,uFAAuF;AACvF,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,CAOrF;AAMD;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,OAAO,EACrB,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC,SAAS,CAAC,CAqBpB;AAED,sEAAsE;AACtE,wBAAsB,WAAW,CAC/B,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,OAAO,EACrB,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC,OAAO,CAAC,CAOlB;AAED,4DAA4D;AAC5D,wBAAsB,mBAAmB,CACvC,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,OAAO,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAuB3B;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAM/G;AAED,qDAAqD;AACrD,wBAAsB,aAAa,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAMvG;AAED,wFAAwF;AACxF,wBAAsB,kBAAkB,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAMxG;AAED,iDAAiD;AACjD,wBAAsB,eAAe,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAOxG;AAED,uCAAuC;AACvC,wBAAsB,aAAa,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAMvG;AAED,0EAA0E;AAC1E,wBAAsB,gBAAgB,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAM1G;AAED;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,OAAO,EACrB,UAAU,EAAE,OAAO,EACnB,WAAW,EAAE,OAAO,GACnB,OAAO,CAAC,sBAAsB,CAAC,CAkDjC;AAMD,2GAA2G;AAC3G,wBAAsB,sBAAsB,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAO/G;AAED,8EAA8E;AAC9E,wBAAsB,2BAA2B,CAC/C,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,OAAO,EACrB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,OAAO,CAAC,CAOlB;AAMD;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAC/B,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,OAAO,GACtB,OAAO,CAAC,OAAO,CAAC,CA8BlB"}
|