@aztec/bot 0.0.1-fake-ceab37513c → 0.0.6-commit.a2d1860fe9
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/dest/amm_bot.d.ts +9 -10
- package/dest/amm_bot.d.ts.map +1 -1
- package/dest/amm_bot.js +27 -20
- package/dest/base_bot.d.ts +12 -9
- package/dest/base_bot.d.ts.map +1 -1
- package/dest/base_bot.js +28 -29
- package/dest/bot.d.ts +9 -10
- package/dest/bot.d.ts.map +1 -1
- package/dest/bot.js +12 -10
- package/dest/config.d.ts +82 -63
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +61 -31
- package/dest/cross_chain_bot.d.ts +54 -0
- package/dest/cross_chain_bot.d.ts.map +1 -0
- package/dest/cross_chain_bot.js +140 -0
- package/dest/factory.d.ts +27 -34
- package/dest/factory.d.ts.map +1 -1
- package/dest/factory.js +271 -151
- package/dest/index.d.ts +3 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +2 -0
- package/dest/interface.d.ts +2 -2
- package/dest/interface.d.ts.map +1 -1
- package/dest/interface.js +1 -1
- package/dest/l1_to_l2_seeding.d.ts +8 -0
- package/dest/l1_to_l2_seeding.d.ts.map +1 -0
- package/dest/l1_to_l2_seeding.js +63 -0
- package/dest/rpc.d.ts +1 -1
- package/dest/runner.d.ts +12 -13
- package/dest/runner.d.ts.map +1 -1
- package/dest/runner.js +445 -61
- package/dest/store/bot_store.d.ts +69 -0
- package/dest/store/bot_store.d.ts.map +1 -0
- package/dest/store/bot_store.js +138 -0
- package/dest/store/index.d.ts +2 -0
- package/dest/store/index.d.ts.map +1 -0
- package/dest/store/index.js +1 -0
- package/dest/utils.d.ts +4 -4
- package/dest/utils.d.ts.map +1 -1
- package/dest/utils.js +5 -5
- package/package.json +19 -13
- package/src/amm_bot.ts +40 -32
- package/src/base_bot.ts +27 -39
- package/src/bot.ts +25 -13
- package/src/config.ts +101 -72
- package/src/cross_chain_bot.ts +209 -0
- package/src/factory.ts +313 -177
- package/src/index.ts +2 -0
- package/src/interface.ts +1 -1
- package/src/l1_to_l2_seeding.ts +79 -0
- package/src/runner.ts +33 -24
- package/src/store/bot_store.ts +196 -0
- package/src/store/index.ts +1 -0
- package/src/utils.ts +10 -5
package/dest/config.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { type ConfigMappingsType, SecretValue } from '@aztec/foundation/config';
|
|
2
|
-
import { Fr } from '@aztec/foundation/
|
|
3
|
-
import { type
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
|
+
import { type DataStoreConfig } from '@aztec/kv-store/config';
|
|
4
4
|
import type { ComponentsVersions } from '@aztec/stdlib/versioning';
|
|
5
5
|
import { z } from 'zod';
|
|
6
|
-
declare const BotFollowChain: readonly ["NONE", "
|
|
6
|
+
declare const BotFollowChain: readonly ["NONE", "PROPOSED", "CHECKPOINTED", "PROVEN"];
|
|
7
7
|
type BotFollowChain = (typeof BotFollowChain)[number];
|
|
8
|
+
declare const BotMode: readonly ["transfer", "amm", "crosschain"];
|
|
9
|
+
type BotMode = (typeof BotMode)[number];
|
|
8
10
|
export declare enum SupportedTokenContracts {
|
|
9
11
|
TokenContract = "TokenContract",
|
|
10
12
|
PrivateTokenContract = "PrivateTokenContract"
|
|
@@ -14,8 +16,6 @@ export type BotConfig = {
|
|
|
14
16
|
nodeUrl: string | undefined;
|
|
15
17
|
/** The URL to the Aztec node admin API to force-flush txs if configured. */
|
|
16
18
|
nodeAdminUrl: string | undefined;
|
|
17
|
-
/** URL to the PXE for sending txs, or undefined if an in-proc PXE is used. */
|
|
18
|
-
pxeUrl: string | undefined;
|
|
19
19
|
/** Url of the ethereum host. */
|
|
20
20
|
l1RpcUrls: string[] | undefined;
|
|
21
21
|
/** The mnemonic for the account to bridge fee juice from L1. */
|
|
@@ -28,8 +28,6 @@ export type BotConfig = {
|
|
|
28
28
|
senderPrivateKey: SecretValue<Fr> | undefined;
|
|
29
29
|
/** Optional salt to use to instantiate the sender account */
|
|
30
30
|
senderSalt: Fr | undefined;
|
|
31
|
-
/** Encryption secret for a recipient account. */
|
|
32
|
-
recipientEncryptionSecret: SecretValue<Fr>;
|
|
33
31
|
/** Salt for the token contract instantiation. */
|
|
34
32
|
tokenSalt: Fr;
|
|
35
33
|
/** Every how many seconds should a new tx be sent. */
|
|
@@ -40,6 +38,8 @@ export type BotConfig = {
|
|
|
40
38
|
publicTransfersPerTx: number;
|
|
41
39
|
/** How to handle fee payments. */
|
|
42
40
|
feePaymentMethod: 'fee_juice';
|
|
41
|
+
/** 'How much is the bot willing to overpay vs. the current min fee' */
|
|
42
|
+
minFeePadding: number;
|
|
43
43
|
/** True to not automatically setup or start the bot on initialization. */
|
|
44
44
|
noStart: boolean;
|
|
45
45
|
/** How long to wait for a tx to be mined before reporting an error. */
|
|
@@ -60,28 +60,31 @@ export type BotConfig = {
|
|
|
60
60
|
maxConsecutiveErrors: number;
|
|
61
61
|
/** Stops the bot if service becomes unhealthy */
|
|
62
62
|
stopWhenUnhealthy: boolean;
|
|
63
|
-
/**
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
/** Bot mode: transfer, amm, or crosschain. */
|
|
64
|
+
botMode: BotMode;
|
|
65
|
+
/** Number of L2→L1 messages per tx (crosschain mode). */
|
|
66
|
+
l2ToL1MessagesPerTx: number;
|
|
67
|
+
/** Max L1→L2 messages to keep in-flight (crosschain mode). */
|
|
68
|
+
l1ToL2SeedCount: number;
|
|
69
|
+
} & Pick<DataStoreConfig, 'dataDirectory' | 'dataStoreMapSizeKb'>;
|
|
66
70
|
export declare const BotConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
67
71
|
nodeUrl: z.ZodOptional<z.ZodString>;
|
|
68
72
|
nodeAdminUrl: z.ZodOptional<z.ZodString>;
|
|
69
|
-
pxeUrl: z.ZodOptional<z.ZodString>;
|
|
70
73
|
l1RpcUrls: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
71
74
|
l1Mnemonic: z.ZodOptional<z.ZodType<SecretValue<string>, any, any>>;
|
|
72
75
|
l1PrivateKey: z.ZodOptional<z.ZodType<SecretValue<string>, any, any>>;
|
|
73
76
|
l1ToL2MessageTimeoutSeconds: z.ZodNumber;
|
|
74
77
|
senderPrivateKey: z.ZodOptional<z.ZodType<SecretValue<Fr>, any, any>>;
|
|
75
|
-
senderSalt: z.ZodOptional<ZodFor<Fr>>;
|
|
76
|
-
|
|
77
|
-
tokenSalt: ZodFor<Fr>;
|
|
78
|
+
senderSalt: z.ZodOptional<import("@aztec/stdlib/schemas").ZodFor<Fr>>;
|
|
79
|
+
tokenSalt: import("@aztec/stdlib/schemas").ZodFor<Fr>;
|
|
78
80
|
txIntervalSeconds: z.ZodNumber;
|
|
79
81
|
privateTransfersPerTx: z.ZodNumber;
|
|
80
82
|
publicTransfersPerTx: z.ZodNumber;
|
|
81
83
|
feePaymentMethod: z.ZodLiteral<"fee_juice">;
|
|
84
|
+
minFeePadding: z.ZodNumber;
|
|
82
85
|
noStart: z.ZodBoolean;
|
|
83
86
|
txMinedWaitSeconds: z.ZodNumber;
|
|
84
|
-
followChain: z.ZodEnum<["NONE", "
|
|
87
|
+
followChain: z.ZodEnum<["NONE", "PROPOSED", "CHECKPOINTED", "PROVEN"]>;
|
|
85
88
|
maxPendingTxs: z.ZodNumber;
|
|
86
89
|
flushSetupTransactions: z.ZodBoolean;
|
|
87
90
|
l2GasLimit: z.ZodOptional<z.ZodNumber>;
|
|
@@ -89,119 +92,135 @@ export declare const BotConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
89
92
|
contract: z.ZodNativeEnum<typeof SupportedTokenContracts>;
|
|
90
93
|
maxConsecutiveErrors: z.ZodNumber;
|
|
91
94
|
stopWhenUnhealthy: z.ZodBoolean;
|
|
92
|
-
|
|
95
|
+
botMode: z.ZodDefault<z.ZodEnum<["transfer", "amm", "crosschain"]>>;
|
|
96
|
+
l2ToL1MessagesPerTx: z.ZodDefault<z.ZodNumber>;
|
|
97
|
+
l1ToL2SeedCount: z.ZodDefault<z.ZodNumber>;
|
|
98
|
+
dataDirectory: z.ZodOptional<z.ZodString>;
|
|
99
|
+
dataStoreMapSizeKb: z.ZodOptional<z.ZodNumber>;
|
|
93
100
|
}, "strip", z.ZodTypeAny, {
|
|
94
|
-
l1ToL2MessageTimeoutSeconds: number;
|
|
95
|
-
recipientEncryptionSecret: SecretValue<Fr>;
|
|
96
|
-
tokenSalt: Fr;
|
|
97
|
-
txIntervalSeconds: number;
|
|
98
|
-
privateTransfersPerTx: number;
|
|
99
|
-
publicTransfersPerTx: number;
|
|
100
|
-
feePaymentMethod: "fee_juice";
|
|
101
|
-
noStart: boolean;
|
|
102
|
-
txMinedWaitSeconds: number;
|
|
103
|
-
followChain: "NONE" | "PENDING" | "PROVEN";
|
|
104
|
-
maxPendingTxs: number;
|
|
105
|
-
flushSetupTransactions: boolean;
|
|
106
|
-
contract: SupportedTokenContracts;
|
|
107
|
-
maxConsecutiveErrors: number;
|
|
108
|
-
stopWhenUnhealthy: boolean;
|
|
109
|
-
ammTxs: boolean;
|
|
110
101
|
nodeUrl?: string | undefined;
|
|
111
102
|
nodeAdminUrl?: string | undefined;
|
|
112
|
-
pxeUrl?: string | undefined;
|
|
113
103
|
l1RpcUrls?: string[] | undefined;
|
|
114
104
|
l1Mnemonic?: SecretValue<string> | undefined;
|
|
115
105
|
l1PrivateKey?: SecretValue<string> | undefined;
|
|
106
|
+
l1ToL2MessageTimeoutSeconds: number;
|
|
116
107
|
senderPrivateKey?: SecretValue<Fr> | undefined;
|
|
117
108
|
senderSalt?: Fr | undefined;
|
|
118
|
-
|
|
119
|
-
daGasLimit?: number | undefined;
|
|
120
|
-
}, {
|
|
121
|
-
l1ToL2MessageTimeoutSeconds: number;
|
|
109
|
+
tokenSalt: Fr;
|
|
122
110
|
txIntervalSeconds: number;
|
|
123
111
|
privateTransfersPerTx: number;
|
|
124
112
|
publicTransfersPerTx: number;
|
|
125
113
|
feePaymentMethod: "fee_juice";
|
|
114
|
+
minFeePadding: number;
|
|
126
115
|
noStart: boolean;
|
|
127
116
|
txMinedWaitSeconds: number;
|
|
128
|
-
followChain: "NONE" | "
|
|
117
|
+
followChain: "CHECKPOINTED" | "NONE" | "PROPOSED" | "PROVEN";
|
|
129
118
|
maxPendingTxs: number;
|
|
130
119
|
flushSetupTransactions: boolean;
|
|
120
|
+
l2GasLimit?: number | undefined;
|
|
121
|
+
daGasLimit?: number | undefined;
|
|
131
122
|
contract: SupportedTokenContracts;
|
|
132
123
|
maxConsecutiveErrors: number;
|
|
133
124
|
stopWhenUnhealthy: boolean;
|
|
125
|
+
botMode: "amm" | "crosschain" | "transfer";
|
|
126
|
+
l2ToL1MessagesPerTx: number;
|
|
127
|
+
l1ToL2SeedCount: number;
|
|
128
|
+
dataDirectory?: string | undefined;
|
|
129
|
+
dataStoreMapSizeKb?: number | undefined;
|
|
130
|
+
}, {
|
|
134
131
|
nodeUrl?: string | undefined;
|
|
135
132
|
nodeAdminUrl?: string | undefined;
|
|
136
|
-
pxeUrl?: string | undefined;
|
|
137
133
|
l1RpcUrls?: string[] | undefined;
|
|
138
134
|
l1Mnemonic?: any;
|
|
139
135
|
l1PrivateKey?: any;
|
|
136
|
+
l1ToL2MessageTimeoutSeconds: number;
|
|
140
137
|
senderPrivateKey?: any;
|
|
141
138
|
senderSalt?: any;
|
|
142
|
-
recipientEncryptionSecret?: any;
|
|
143
139
|
tokenSalt?: any;
|
|
140
|
+
txIntervalSeconds: number;
|
|
141
|
+
privateTransfersPerTx: number;
|
|
142
|
+
publicTransfersPerTx: number;
|
|
143
|
+
feePaymentMethod: "fee_juice";
|
|
144
|
+
minFeePadding: number;
|
|
145
|
+
noStart: boolean;
|
|
146
|
+
txMinedWaitSeconds: number;
|
|
147
|
+
followChain: "CHECKPOINTED" | "NONE" | "PROPOSED" | "PROVEN";
|
|
148
|
+
maxPendingTxs: number;
|
|
149
|
+
flushSetupTransactions: boolean;
|
|
144
150
|
l2GasLimit?: number | undefined;
|
|
145
151
|
daGasLimit?: number | undefined;
|
|
146
|
-
|
|
152
|
+
contract: SupportedTokenContracts;
|
|
153
|
+
maxConsecutiveErrors: number;
|
|
154
|
+
stopWhenUnhealthy: boolean;
|
|
155
|
+
botMode?: "amm" | "crosschain" | "transfer" | undefined;
|
|
156
|
+
l2ToL1MessagesPerTx?: number | undefined;
|
|
157
|
+
l1ToL2SeedCount?: number | undefined;
|
|
158
|
+
dataDirectory?: string | undefined;
|
|
159
|
+
dataStoreMapSizeKb?: number | undefined;
|
|
147
160
|
}>, {
|
|
148
161
|
l1ToL2MessageTimeoutSeconds: number;
|
|
149
|
-
recipientEncryptionSecret: SecretValue<Fr>;
|
|
150
162
|
tokenSalt: Fr;
|
|
151
163
|
txIntervalSeconds: number;
|
|
152
164
|
privateTransfersPerTx: number;
|
|
153
165
|
publicTransfersPerTx: number;
|
|
154
166
|
feePaymentMethod: "fee_juice";
|
|
167
|
+
minFeePadding: number;
|
|
155
168
|
noStart: boolean;
|
|
156
169
|
txMinedWaitSeconds: number;
|
|
157
|
-
followChain: "NONE" | "
|
|
170
|
+
followChain: "CHECKPOINTED" | "NONE" | "PROPOSED" | "PROVEN";
|
|
158
171
|
maxPendingTxs: number;
|
|
159
172
|
flushSetupTransactions: boolean;
|
|
160
173
|
contract: SupportedTokenContracts;
|
|
161
174
|
maxConsecutiveErrors: number;
|
|
162
175
|
stopWhenUnhealthy: boolean;
|
|
163
|
-
|
|
176
|
+
botMode: "amm" | "crosschain" | "transfer";
|
|
177
|
+
l2ToL1MessagesPerTx: number;
|
|
178
|
+
l1ToL2SeedCount: number;
|
|
164
179
|
nodeUrl: string | undefined;
|
|
165
180
|
nodeAdminUrl: string | undefined;
|
|
166
|
-
pxeUrl: string | undefined;
|
|
167
181
|
l1RpcUrls: string[] | undefined;
|
|
168
|
-
l1Mnemonic: SecretValue<string> | undefined;
|
|
169
|
-
l1PrivateKey: SecretValue<string> | undefined;
|
|
170
|
-
senderPrivateKey: SecretValue<Fr> | undefined;
|
|
171
182
|
senderSalt: Fr | undefined;
|
|
172
183
|
l2GasLimit: number | undefined;
|
|
173
184
|
daGasLimit: number | undefined;
|
|
185
|
+
l1Mnemonic: SecretValue<string> | undefined;
|
|
186
|
+
l1PrivateKey: SecretValue<string> | undefined;
|
|
187
|
+
senderPrivateKey: SecretValue<Fr> | undefined;
|
|
188
|
+
dataDirectory: string | undefined;
|
|
189
|
+
dataStoreMapSizeKb: number;
|
|
174
190
|
}, {
|
|
191
|
+
nodeUrl?: string | undefined;
|
|
192
|
+
nodeAdminUrl?: string | undefined;
|
|
193
|
+
l1RpcUrls?: string[] | undefined;
|
|
194
|
+
l1Mnemonic?: any;
|
|
195
|
+
l1PrivateKey?: any;
|
|
175
196
|
l1ToL2MessageTimeoutSeconds: number;
|
|
197
|
+
senderPrivateKey?: any;
|
|
198
|
+
senderSalt?: any;
|
|
199
|
+
tokenSalt?: any;
|
|
176
200
|
txIntervalSeconds: number;
|
|
177
201
|
privateTransfersPerTx: number;
|
|
178
202
|
publicTransfersPerTx: number;
|
|
179
203
|
feePaymentMethod: "fee_juice";
|
|
204
|
+
minFeePadding: number;
|
|
180
205
|
noStart: boolean;
|
|
181
206
|
txMinedWaitSeconds: number;
|
|
182
|
-
followChain: "NONE" | "
|
|
207
|
+
followChain: "CHECKPOINTED" | "NONE" | "PROPOSED" | "PROVEN";
|
|
183
208
|
maxPendingTxs: number;
|
|
184
209
|
flushSetupTransactions: boolean;
|
|
210
|
+
l2GasLimit?: number | undefined;
|
|
211
|
+
daGasLimit?: number | undefined;
|
|
185
212
|
contract: SupportedTokenContracts;
|
|
186
213
|
maxConsecutiveErrors: number;
|
|
187
214
|
stopWhenUnhealthy: boolean;
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
l1PrivateKey?: any;
|
|
194
|
-
senderPrivateKey?: any;
|
|
195
|
-
senderSalt?: any;
|
|
196
|
-
recipientEncryptionSecret?: any;
|
|
197
|
-
tokenSalt?: any;
|
|
198
|
-
l2GasLimit?: number | undefined;
|
|
199
|
-
daGasLimit?: number | undefined;
|
|
200
|
-
ammTxs?: boolean | undefined;
|
|
215
|
+
botMode?: "amm" | "crosschain" | "transfer" | undefined;
|
|
216
|
+
l2ToL1MessagesPerTx?: number | undefined;
|
|
217
|
+
l1ToL2SeedCount?: number | undefined;
|
|
218
|
+
dataDirectory?: string | undefined;
|
|
219
|
+
dataStoreMapSizeKb?: number | undefined;
|
|
201
220
|
}>;
|
|
202
221
|
export declare const botConfigMappings: ConfigMappingsType<BotConfig>;
|
|
203
222
|
export declare function getBotConfigFromEnv(): BotConfig;
|
|
204
223
|
export declare function getBotDefaultConfig(): BotConfig;
|
|
205
224
|
export declare function getVersions(): Partial<ComponentsVersions>;
|
|
206
225
|
export {};
|
|
207
|
-
//# sourceMappingURL=
|
|
226
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLGtCQUFrQixFQUN2QixXQUFXLEVBU1osTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFzQixNQUFNLHdCQUF3QixDQUFDO0FBSWxGLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbkUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixRQUFBLE1BQU0sY0FBYyx5REFBMEQsQ0FBQztBQUMvRSxLQUFLLGNBQWMsR0FBRyxDQUFDLE9BQU8sY0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFdEQsUUFBQSxNQUFNLE9BQU8sNENBQTZDLENBQUM7QUFDM0QsS0FBSyxPQUFPLEdBQUcsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBRXhDLG9CQUFZLHVCQUF1QjtJQUNqQyxhQUFhLGtCQUFrQjtJQUMvQixvQkFBb0IseUJBQXlCO0NBQzlDO0FBRUQsTUFBTSxNQUFNLFNBQVMsR0FBRztJQUN0Qiw2REFBNkQ7SUFDN0QsT0FBTyxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDNUIsNEVBQTRFO0lBQzVFLFlBQVksRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQ2pDLGdDQUFnQztJQUNoQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDO0lBQ2hDLGdFQUFnRTtJQUNoRSxVQUFVLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUM1QyxtRUFBbUU7SUFDbkUsWUFBWSxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxTQUFTLENBQUM7SUFDOUMsdUVBQXVFO0lBQ3ZFLDJCQUEyQixFQUFFLE1BQU0sQ0FBQztJQUNwQyxrREFBa0Q7SUFDbEQsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUM5Qyw2REFBNkQ7SUFDN0QsVUFBVSxFQUFFLEVBQUUsR0FBRyxTQUFTLENBQUM7SUFDM0IsaURBQWlEO0lBQ2pELFNBQVMsRUFBRSxFQUFFLENBQUM7SUFDZCxzREFBc0Q7SUFDdEQsaUJBQWlCLEVBQUUsTUFBTSxDQUFDO0lBQzFCLDREQUE0RDtJQUM1RCxxQkFBcUIsRUFBRSxNQUFNLENBQUM7SUFDOUIsMkRBQTJEO0lBQzNELG9CQUFvQixFQUFFLE1BQU0sQ0FBQztJQUM3QixrQ0FBa0M7SUFDbEMsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDO0lBQzlCLHVFQUF1RTtJQUN2RSxhQUFhLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLDBFQUEwRTtJQUMxRSxPQUFPLEVBQUUsT0FBTyxDQUFDO0lBQ2pCLHVFQUF1RTtJQUN2RSxrQkFBa0IsRUFBRSxNQUFNLENBQUM7SUFDM0IsNEVBQTRFO0lBQzVFLFdBQVcsRUFBRSxjQUFjLENBQUM7SUFDNUIsZ0ZBQWdGO0lBQ2hGLGFBQWEsRUFBRSxNQUFNLENBQUM7SUFDdEIsOERBQThEO0lBQzlELHNCQUFzQixFQUFFLE9BQU8sQ0FBQztJQUNoQywrRUFBK0U7SUFDL0UsVUFBVSxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDL0IsK0VBQStFO0lBQy9FLFVBQVUsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQy9CLDRCQUE0QjtJQUM1QixRQUFRLEVBQUUsdUJBQXVCLENBQUM7SUFDbEMseUVBQXlFO0lBQ3pFLG9CQUFvQixFQUFFLE1BQU0sQ0FBQztJQUM3QixpREFBaUQ7SUFDakQsaUJBQWlCLEVBQUUsT0FBTyxDQUFDO0lBQzNCLDhDQUE4QztJQUM5QyxPQUFPLEVBQUUsT0FBTyxDQUFDO0lBQ2pCLDJEQUF5RDtJQUN6RCxtQkFBbUIsRUFBRSxNQUFNLENBQUM7SUFDNUIsZ0VBQThEO0lBQzlELGVBQWUsRUFBRSxNQUFNLENBQUM7Q0FDekIsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLGVBQWUsR0FBRyxvQkFBb0IsQ0FBQyxDQUFDO0FBRWxFLGVBQU8sTUFBTSxlQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUErQzNCLENBQUM7QUFFRixlQUFPLE1BQU0saUJBQWlCLEVBQUUsa0JBQWtCLENBQUMsU0FBUyxDQW1LM0QsQ0FBQztBQUVGLHdCQUFnQixtQkFBbUIsSUFBSSxTQUFTLENBRS9DO0FBRUQsd0JBQWdCLG1CQUFtQixJQUFJLFNBQVMsQ0FFL0M7QUFFRCx3QkFBZ0IsV0FBVyxJQUFJLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUt6RCJ9
|
package/dest/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EACvB,WAAW,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dest/config.js
CHANGED
|
@@ -1,35 +1,41 @@
|
|
|
1
|
-
import { booleanConfigHelper, getConfigFromMappings, getDefaultConfig, numberConfigHelper, optionalNumberConfigHelper, secretFrConfigHelper, secretStringConfigHelper } from '@aztec/foundation/config';
|
|
2
|
-
import { Fr } from '@aztec/foundation/
|
|
1
|
+
import { booleanConfigHelper, getConfigFromMappings, getDefaultConfig, numberConfigHelper, optionalNumberConfigHelper, pickConfigMappings, secretFrConfigHelper, secretStringConfigHelper } from '@aztec/foundation/config';
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
|
+
import { dataConfigMappings } from '@aztec/kv-store/config';
|
|
3
4
|
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
4
|
-
import {
|
|
5
|
-
import { schemas } from '@aztec/stdlib/schemas';
|
|
5
|
+
import { protocolContractsHash } from '@aztec/protocol-contracts';
|
|
6
|
+
import { schemas, zodFor } from '@aztec/stdlib/schemas';
|
|
6
7
|
import { z } from 'zod';
|
|
7
8
|
const BotFollowChain = [
|
|
8
9
|
'NONE',
|
|
9
|
-
'
|
|
10
|
+
'PROPOSED',
|
|
11
|
+
'CHECKPOINTED',
|
|
10
12
|
'PROVEN'
|
|
11
13
|
];
|
|
14
|
+
const BotMode = [
|
|
15
|
+
'transfer',
|
|
16
|
+
'amm',
|
|
17
|
+
'crosschain'
|
|
18
|
+
];
|
|
12
19
|
export var SupportedTokenContracts = /*#__PURE__*/ function(SupportedTokenContracts) {
|
|
13
20
|
SupportedTokenContracts["TokenContract"] = "TokenContract";
|
|
14
21
|
SupportedTokenContracts["PrivateTokenContract"] = "PrivateTokenContract";
|
|
15
22
|
return SupportedTokenContracts;
|
|
16
23
|
}({});
|
|
17
|
-
export const BotConfigSchema = z.object({
|
|
24
|
+
export const BotConfigSchema = zodFor()(z.object({
|
|
18
25
|
nodeUrl: z.string().optional(),
|
|
19
26
|
nodeAdminUrl: z.string().optional(),
|
|
20
|
-
pxeUrl: z.string().optional(),
|
|
21
27
|
l1RpcUrls: z.array(z.string()).optional(),
|
|
22
28
|
l1Mnemonic: schemas.SecretValue(z.string()).optional(),
|
|
23
29
|
l1PrivateKey: schemas.SecretValue(z.string()).optional(),
|
|
24
30
|
l1ToL2MessageTimeoutSeconds: z.number(),
|
|
25
31
|
senderPrivateKey: schemas.SecretValue(schemas.Fr).optional(),
|
|
26
32
|
senderSalt: schemas.Fr.optional(),
|
|
27
|
-
recipientEncryptionSecret: schemas.SecretValue(schemas.Fr),
|
|
28
33
|
tokenSalt: schemas.Fr,
|
|
29
34
|
txIntervalSeconds: z.number(),
|
|
30
35
|
privateTransfersPerTx: z.number().int().nonnegative(),
|
|
31
36
|
publicTransfersPerTx: z.number().int().nonnegative(),
|
|
32
37
|
feePaymentMethod: z.literal('fee_juice'),
|
|
38
|
+
minFeePadding: z.number().int().nonnegative(),
|
|
33
39
|
noStart: z.boolean(),
|
|
34
40
|
txMinedWaitSeconds: z.number(),
|
|
35
41
|
followChain: z.enum(BotFollowChain),
|
|
@@ -40,11 +46,14 @@ export const BotConfigSchema = z.object({
|
|
|
40
46
|
contract: z.nativeEnum(SupportedTokenContracts),
|
|
41
47
|
maxConsecutiveErrors: z.number().int().nonnegative(),
|
|
42
48
|
stopWhenUnhealthy: z.boolean(),
|
|
43
|
-
|
|
49
|
+
botMode: z.enum(BotMode).default('transfer'),
|
|
50
|
+
l2ToL1MessagesPerTx: z.number().int().nonnegative().default(1),
|
|
51
|
+
l1ToL2SeedCount: z.number().int().nonnegative().default(1),
|
|
52
|
+
dataDirectory: z.string().optional(),
|
|
53
|
+
dataStoreMapSizeKb: z.number().optional()
|
|
44
54
|
}).transform((config)=>({
|
|
45
55
|
nodeUrl: undefined,
|
|
46
56
|
nodeAdminUrl: undefined,
|
|
47
|
-
pxeUrl: undefined,
|
|
48
57
|
l1RpcUrls: undefined,
|
|
49
58
|
senderSalt: undefined,
|
|
50
59
|
l2GasLimit: undefined,
|
|
@@ -52,8 +61,10 @@ export const BotConfigSchema = z.object({
|
|
|
52
61
|
l1Mnemonic: undefined,
|
|
53
62
|
l1PrivateKey: undefined,
|
|
54
63
|
senderPrivateKey: undefined,
|
|
64
|
+
dataDirectory: undefined,
|
|
65
|
+
dataStoreMapSizeKb: 1_024 * 1_024,
|
|
55
66
|
...config
|
|
56
|
-
}));
|
|
67
|
+
})));
|
|
57
68
|
export const botConfigMappings = {
|
|
58
69
|
nodeUrl: {
|
|
59
70
|
env: 'AZTEC_NODE_URL',
|
|
@@ -63,10 +74,6 @@ export const botConfigMappings = {
|
|
|
63
74
|
env: 'AZTEC_NODE_ADMIN_URL',
|
|
64
75
|
description: 'The URL to the Aztec node admin API to force-flush txs if configured.'
|
|
65
76
|
},
|
|
66
|
-
pxeUrl: {
|
|
67
|
-
env: 'BOT_PXE_URL',
|
|
68
|
-
description: 'URL to the PXE for sending txs, or undefined if an in-proc PXE is used.'
|
|
69
|
-
},
|
|
70
77
|
l1RpcUrls: {
|
|
71
78
|
env: 'ETHEREUM_HOSTS',
|
|
72
79
|
description: 'URL of the ethereum host.',
|
|
@@ -94,18 +101,12 @@ export const botConfigMappings = {
|
|
|
94
101
|
},
|
|
95
102
|
senderSalt: {
|
|
96
103
|
env: 'BOT_ACCOUNT_SALT',
|
|
97
|
-
description: 'The salt to use to
|
|
104
|
+
description: 'The salt to use to deploy the sender account.',
|
|
98
105
|
parseEnv: (val)=>val ? Fr.fromHexString(val) : undefined
|
|
99
106
|
},
|
|
100
|
-
recipientEncryptionSecret: {
|
|
101
|
-
env: 'BOT_RECIPIENT_ENCRYPTION_SECRET',
|
|
102
|
-
description: 'Encryption secret for a recipient account.',
|
|
103
|
-
printDefault: (sv)=>sv?.getValue(),
|
|
104
|
-
...secretFrConfigHelper(Fr.fromHexString('0xcafecafe'))
|
|
105
|
-
},
|
|
106
107
|
tokenSalt: {
|
|
107
108
|
env: 'BOT_TOKEN_SALT',
|
|
108
|
-
description: '
|
|
109
|
+
description: 'The salt to use to deploy the token contract.',
|
|
109
110
|
parseEnv: (val)=>Fr.fromHexString(val),
|
|
110
111
|
defaultValue: Fr.fromHexString('1')
|
|
111
112
|
},
|
|
@@ -130,6 +131,11 @@ export const botConfigMappings = {
|
|
|
130
131
|
parseEnv: (val)=>val || undefined,
|
|
131
132
|
defaultValue: 'fee_juice'
|
|
132
133
|
},
|
|
134
|
+
minFeePadding: {
|
|
135
|
+
env: 'BOT_MIN_FEE_PADDING',
|
|
136
|
+
description: 'How much is the bot willing to overpay vs. the current base fee',
|
|
137
|
+
...numberConfigHelper(3)
|
|
138
|
+
},
|
|
133
139
|
noStart: {
|
|
134
140
|
env: 'BOT_NO_START',
|
|
135
141
|
description: 'True to not automatically setup or start the bot on initialization.',
|
|
@@ -145,10 +151,14 @@ export const botConfigMappings = {
|
|
|
145
151
|
description: 'Which chain the bot follows',
|
|
146
152
|
defaultValue: 'NONE',
|
|
147
153
|
parseEnv (val) {
|
|
148
|
-
|
|
154
|
+
const upper = val.toUpperCase();
|
|
155
|
+
if (upper === 'PENDING') {
|
|
156
|
+
return 'CHECKPOINTED';
|
|
157
|
+
}
|
|
158
|
+
if (!BotFollowChain.includes(upper)) {
|
|
149
159
|
throw new Error(`Invalid value for BOT_FOLLOW_CHAIN: ${val}`);
|
|
150
160
|
}
|
|
151
|
-
return
|
|
161
|
+
return upper;
|
|
152
162
|
}
|
|
153
163
|
},
|
|
154
164
|
maxPendingTxs: {
|
|
@@ -192,11 +202,31 @@ export const botConfigMappings = {
|
|
|
192
202
|
description: 'Stops the bot if service becomes unhealthy',
|
|
193
203
|
...booleanConfigHelper(false)
|
|
194
204
|
},
|
|
195
|
-
|
|
196
|
-
env: '
|
|
197
|
-
description: '
|
|
198
|
-
|
|
199
|
-
|
|
205
|
+
botMode: {
|
|
206
|
+
env: 'BOT_MODE',
|
|
207
|
+
description: 'Bot mode: transfer, amm, or crosschain',
|
|
208
|
+
defaultValue: 'transfer',
|
|
209
|
+
parseEnv (val) {
|
|
210
|
+
if (!BotMode.includes(val)) {
|
|
211
|
+
throw new Error(`Invalid value for BOT_MODE: ${val}`);
|
|
212
|
+
}
|
|
213
|
+
return val;
|
|
214
|
+
}
|
|
215
|
+
},
|
|
216
|
+
l2ToL1MessagesPerTx: {
|
|
217
|
+
env: 'BOT_L2_TO_L1_MESSAGES_PER_TX',
|
|
218
|
+
description: 'Number of L2→L1 messages per tx (crosschain mode)',
|
|
219
|
+
...numberConfigHelper(1)
|
|
220
|
+
},
|
|
221
|
+
l1ToL2SeedCount: {
|
|
222
|
+
env: 'BOT_L1_TO_L2_SEED_COUNT',
|
|
223
|
+
description: 'Max L1→L2 messages to keep in-flight (crosschain mode)',
|
|
224
|
+
...numberConfigHelper(1)
|
|
225
|
+
},
|
|
226
|
+
...pickConfigMappings(dataConfigMappings, [
|
|
227
|
+
'dataStoreMapSizeKb',
|
|
228
|
+
'dataDirectory'
|
|
229
|
+
])
|
|
200
230
|
};
|
|
201
231
|
export function getBotConfigFromEnv() {
|
|
202
232
|
return getConfigFromMappings(botConfigMappings);
|
|
@@ -206,7 +236,7 @@ export function getBotDefaultConfig() {
|
|
|
206
236
|
}
|
|
207
237
|
export function getVersions() {
|
|
208
238
|
return {
|
|
209
|
-
|
|
239
|
+
l2ProtocolContractsHash: protocolContractsHash.toString(),
|
|
210
240
|
l2CircuitsVkTreeRoot: getVKTreeRoot().toString()
|
|
211
241
|
};
|
|
212
242
|
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CrossChainBot exercises L2->L1 and L1->L2 messaging.
|
|
3
|
+
*
|
|
4
|
+
* createAndSendTx onTxMined
|
|
5
|
+
* ────────────────────────────────────── ──────────────────────────────
|
|
6
|
+
*
|
|
7
|
+
* 1. SEED (fire-and-forget) 3. VERIFY L2->L1
|
|
8
|
+
* if store has fewer pending messages Query getTxEffect, confirm
|
|
9
|
+
* than seedCount and no seed is the expected L2->L1 messages
|
|
10
|
+
* in-flight: appeared in tx effects.
|
|
11
|
+
* * kick off L1 inbox tx
|
|
12
|
+
* * store msg on completion
|
|
13
|
+
*
|
|
14
|
+
* 2. BUILD & SEND BATCH
|
|
15
|
+
* Always:
|
|
16
|
+
* N x create_l2_to_l1_message
|
|
17
|
+
* (random content, fixed
|
|
18
|
+
* L1 recipient)
|
|
19
|
+
* If a ready L1->L2 msg exists:
|
|
20
|
+
* 1 x consume_message_from_
|
|
21
|
+
* arbitrary_sender_public
|
|
22
|
+
* delete consumed msg from store
|
|
23
|
+
* Send batch tx (no wait)
|
|
24
|
+
*
|
|
25
|
+
*/
|
|
26
|
+
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
27
|
+
import { TxHash, TxReceipt } from '@aztec/aztec.js/tx';
|
|
28
|
+
import type { ExtendedViemWalletClient } from '@aztec/ethereum/types';
|
|
29
|
+
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
30
|
+
import type { TestContract } from '@aztec/noir-test-contracts.js/Test';
|
|
31
|
+
import type { AztecNode, AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
|
|
32
|
+
import type { EmbeddedWallet } from '@aztec/wallets/embedded';
|
|
33
|
+
import { BaseBot } from './base_bot.js';
|
|
34
|
+
import type { BotConfig } from './config.js';
|
|
35
|
+
import type { BotStore } from './store/index.js';
|
|
36
|
+
/** Bot that exercises both L2→L1 and L1→L2 cross-chain messaging. */
|
|
37
|
+
export declare class CrossChainBot extends BaseBot {
|
|
38
|
+
private readonly contract;
|
|
39
|
+
private readonly l1Client;
|
|
40
|
+
private readonly l1Recipient;
|
|
41
|
+
private readonly inboxAddress;
|
|
42
|
+
private readonly rollupVersion;
|
|
43
|
+
private readonly store;
|
|
44
|
+
private l2ToL1Sent;
|
|
45
|
+
private l1ToL2Consumed;
|
|
46
|
+
private pendingSeedPromise;
|
|
47
|
+
protected constructor(node: AztecNode, wallet: EmbeddedWallet, defaultAccountAddress: AztecAddress, contract: TestContract, l1Client: ExtendedViemWalletClient, l1Recipient: EthAddress, inboxAddress: EthAddress, rollupVersion: bigint, store: BotStore, config: BotConfig);
|
|
48
|
+
static create(config: BotConfig, wallet: EmbeddedWallet, aztecNode: AztecNode, aztecNodeAdmin: AztecNodeAdmin | undefined, store: BotStore): Promise<CrossChainBot>;
|
|
49
|
+
protected createAndSendTx(logCtx: object): Promise<TxHash>;
|
|
50
|
+
protected onTxMined(receipt: TxReceipt, logCtx: object): Promise<void>;
|
|
51
|
+
private getReadyL1ToL2Message;
|
|
52
|
+
private seedNewL1ToL2Message;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3NfY2hhaW5fYm90LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY3Jvc3NfY2hhaW5fYm90LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Qkc7QUFDSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RCxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXRFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakYsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHN0MsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUF3QixNQUFNLGtCQUFrQixDQUFDO0FBS3ZFLHlFQUFxRTtBQUNyRSxxQkFBYSxhQUFjLFNBQVEsT0FBTztJQVN0QyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVE7SUFDekIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRO0lBQ3pCLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVztJQUM1QixPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVk7SUFDN0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxhQUFhO0lBQzlCLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSztJQWJ4QixPQUFPLENBQUMsVUFBVSxDQUFLO0lBQ3ZCLE9BQU8sQ0FBQyxjQUFjLENBQUs7SUFDM0IsT0FBTyxDQUFDLGtCQUFrQixDQUE0QjtJQUV0RCxTQUFTLGFBQ1AsSUFBSSxFQUFFLFNBQVMsRUFDZixNQUFNLEVBQUUsY0FBYyxFQUN0QixxQkFBcUIsRUFBRSxZQUFZLEVBQ2xCLFFBQVEsRUFBRSxZQUFZLEVBQ3RCLFFBQVEsRUFBRSx3QkFBd0IsRUFDbEMsV0FBVyxFQUFFLFVBQVUsRUFDdkIsWUFBWSxFQUFFLFVBQVUsRUFDeEIsYUFBYSxFQUFFLE1BQU0sRUFDckIsS0FBSyxFQUFFLFFBQVEsRUFDaEMsTUFBTSxFQUFFLFNBQVMsRUFHbEI7SUFFRCxPQUFhLE1BQU0sQ0FDakIsTUFBTSxFQUFFLFNBQVMsRUFDakIsTUFBTSxFQUFFLGNBQWMsRUFDdEIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsY0FBYyxFQUFFLGNBQWMsR0FBRyxTQUFTLEVBQzFDLEtBQUssRUFBRSxRQUFRLEdBQ2QsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQXFCeEI7SUFFRCxVQUFnQixlQUFlLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBZ0QvRDtJQUVELFVBQXlCLFNBQVMsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQXVCcEY7WUFHYSxxQkFBcUI7WUEyQnJCLG9CQUFvQjtDQVVuQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cross_chain_bot.d.ts","sourceRoot":"","sources":["../src/cross_chain_bot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C,OAAO,KAAK,EAAE,QAAQ,EAAwB,MAAM,kBAAkB,CAAC;AAKvE,yEAAqE;AACrE,qBAAa,aAAc,SAAQ,OAAO;IAStC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAbxB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,kBAAkB,CAA4B;IAEtD,SAAS,aACP,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,cAAc,EACtB,qBAAqB,EAAE,YAAY,EAClB,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,wBAAwB,EAClC,WAAW,EAAE,UAAU,EACvB,YAAY,EAAE,UAAU,EACxB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,QAAQ,EAChC,MAAM,EAAE,SAAS,EAGlB;IAED,OAAa,MAAM,CACjB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,KAAK,EAAE,QAAQ,GACd,OAAO,CAAC,aAAa,CAAC,CAqBxB;IAED,UAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAgD/D;IAED,UAAyB,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBpF;YAGa,qBAAqB;YA2BrB,oBAAoB;CAUnC"}
|