@aztec/bot 0.0.0-test.1 → 0.0.1-commit.5476d83

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.
Files changed (49) hide show
  1. package/dest/amm_bot.d.ts +33 -0
  2. package/dest/amm_bot.d.ts.map +1 -0
  3. package/dest/amm_bot.js +97 -0
  4. package/dest/base_bot.d.ts +21 -0
  5. package/dest/base_bot.d.ts.map +1 -0
  6. package/dest/base_bot.js +80 -0
  7. package/dest/bot.d.ts +13 -18
  8. package/dest/bot.d.ts.map +1 -1
  9. package/dest/bot.js +24 -86
  10. package/dest/config.d.ts +82 -57
  11. package/dest/config.d.ts.map +1 -1
  12. package/dest/config.js +55 -32
  13. package/dest/factory.d.ts +31 -27
  14. package/dest/factory.d.ts.map +1 -1
  15. package/dest/factory.js +277 -132
  16. package/dest/index.d.ts +4 -2
  17. package/dest/index.d.ts.map +1 -1
  18. package/dest/index.js +3 -1
  19. package/dest/interface.d.ts +12 -1
  20. package/dest/interface.d.ts.map +1 -1
  21. package/dest/interface.js +5 -0
  22. package/dest/rpc.d.ts +1 -7
  23. package/dest/rpc.d.ts.map +1 -1
  24. package/dest/rpc.js +0 -11
  25. package/dest/runner.d.ts +15 -11
  26. package/dest/runner.d.ts.map +1 -1
  27. package/dest/runner.js +33 -25
  28. package/dest/store/bot_store.d.ts +44 -0
  29. package/dest/store/bot_store.d.ts.map +1 -0
  30. package/dest/store/bot_store.js +107 -0
  31. package/dest/store/index.d.ts +2 -0
  32. package/dest/store/index.d.ts.map +1 -0
  33. package/dest/store/index.js +1 -0
  34. package/dest/utils.d.ts +8 -5
  35. package/dest/utils.d.ts.map +1 -1
  36. package/dest/utils.js +14 -5
  37. package/package.json +27 -23
  38. package/src/amm_bot.ts +124 -0
  39. package/src/base_bot.ts +96 -0
  40. package/src/bot.ts +52 -103
  41. package/src/config.ts +66 -38
  42. package/src/factory.ts +335 -146
  43. package/src/index.ts +3 -1
  44. package/src/interface.ts +9 -0
  45. package/src/rpc.ts +0 -13
  46. package/src/runner.ts +38 -21
  47. package/src/store/bot_store.ts +141 -0
  48. package/src/store/index.ts +1 -0
  49. package/src/utils.ts +17 -6
package/dest/config.d.ts CHANGED
@@ -1,5 +1,6 @@
1
- import { type ConfigMappingsType } from '@aztec/foundation/config';
1
+ import { type ConfigMappingsType, SecretValue } from '@aztec/foundation/config';
2
2
  import { Fr } from '@aztec/foundation/fields';
3
+ import { type DataStoreConfig } from '@aztec/kv-store/config';
3
4
  import { type ZodFor } from '@aztec/stdlib/schemas';
4
5
  import type { ComponentsVersions } from '@aztec/stdlib/versioning';
5
6
  import { z } from 'zod';
@@ -7,24 +8,26 @@ declare const BotFollowChain: readonly ["NONE", "PENDING", "PROVEN"];
7
8
  type BotFollowChain = (typeof BotFollowChain)[number];
8
9
  export declare enum SupportedTokenContracts {
9
10
  TokenContract = "TokenContract",
10
- EasyPrivateTokenContract = "EasyPrivateTokenContract"
11
+ PrivateTokenContract = "PrivateTokenContract"
11
12
  }
12
13
  export type BotConfig = {
13
14
  /** The URL to the Aztec node to check for tx pool status. */
14
15
  nodeUrl: string | undefined;
15
- /** URL to the PXE for sending txs, or undefined if an in-proc PXE is used. */
16
- pxeUrl: string | undefined;
16
+ /** The URL to the Aztec node admin API to force-flush txs if configured. */
17
+ nodeAdminUrl: string | undefined;
17
18
  /** Url of the ethereum host. */
18
19
  l1RpcUrls: string[] | undefined;
19
20
  /** The mnemonic for the account to bridge fee juice from L1. */
20
- l1Mnemonic: string | undefined;
21
+ l1Mnemonic: SecretValue<string> | undefined;
21
22
  /** The private key for the account to bridge fee juice from L1. */
22
- l1PrivateKey: string | undefined;
23
+ l1PrivateKey: SecretValue<string> | undefined;
24
+ /** How long to wait for L1 to L2 messages to become available on L2 */
25
+ l1ToL2MessageTimeoutSeconds: number;
23
26
  /** Signing private key for the sender account. */
24
- senderPrivateKey: Fr | undefined;
25
- /** Encryption secret for a recipient account. */
26
- recipientEncryptionSecret: Fr;
27
- /** Salt for the token contract deployment. */
27
+ senderPrivateKey: SecretValue<Fr> | undefined;
28
+ /** Optional salt to use to instantiate the sender account */
29
+ senderSalt: Fr | undefined;
30
+ /** Salt for the token contract instantiation. */
28
31
  tokenSalt: Fr;
29
32
  /** Every how many seconds should a new tx be sent. */
30
33
  txIntervalSeconds: number;
@@ -34,6 +37,8 @@ export type BotConfig = {
34
37
  publicTransfersPerTx: number;
35
38
  /** How to handle fee payments. */
36
39
  feePaymentMethod: 'fee_juice';
40
+ /** 'How much is the bot willing to overpay vs. the current base fee' */
41
+ baseFeePadding: number;
37
42
  /** True to not automatically setup or start the bot on initialization. */
38
43
  noStart: boolean;
39
44
  /** How long to wait for a tx to be mined before reporting an error. */
@@ -44,8 +49,6 @@ export type BotConfig = {
44
49
  maxPendingTxs: number;
45
50
  /** Whether to flush after sending each 'setup' transaction */
46
51
  flushSetupTransactions: boolean;
47
- /** Whether to skip public simulation of txs before sending them. */
48
- skipPublicSimulation: boolean;
49
52
  /** L2 gas limit for the tx (empty to have the bot trigger an estimate gas). */
50
53
  l2GasLimit: number | undefined;
51
54
  /** DA gas limit for the tx (empty to have the bot trigger an estimate gas). */
@@ -56,131 +59,153 @@ export type BotConfig = {
56
59
  maxConsecutiveErrors: number;
57
60
  /** Stops the bot if service becomes unhealthy */
58
61
  stopWhenUnhealthy: boolean;
59
- };
62
+ /** Deploy an AMM contract and do swaps instead of transfers */
63
+ ammTxs: boolean;
64
+ } & Pick<DataStoreConfig, 'dataDirectory' | 'dataStoreMapSizeKb'>;
60
65
  export declare const BotConfigSchema: z.ZodEffects<z.ZodObject<{
61
66
  nodeUrl: z.ZodOptional<z.ZodString>;
62
- pxeUrl: z.ZodOptional<z.ZodString>;
67
+ nodeAdminUrl: z.ZodOptional<z.ZodString>;
63
68
  l1RpcUrls: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
64
- l1Mnemonic: z.ZodOptional<z.ZodString>;
65
- l1PrivateKey: z.ZodOptional<z.ZodString>;
66
- senderPrivateKey: z.ZodOptional<ZodFor<Fr>>;
67
- recipientEncryptionSecret: ZodFor<Fr>;
69
+ l1Mnemonic: z.ZodOptional<z.ZodType<SecretValue<string>, any, any>>;
70
+ l1PrivateKey: z.ZodOptional<z.ZodType<SecretValue<string>, any, any>>;
71
+ l1ToL2MessageTimeoutSeconds: z.ZodNumber;
72
+ senderPrivateKey: z.ZodOptional<z.ZodType<SecretValue<Fr>, any, any>>;
73
+ senderSalt: z.ZodOptional<ZodFor<Fr>>;
68
74
  tokenSalt: ZodFor<Fr>;
69
75
  txIntervalSeconds: z.ZodNumber;
70
76
  privateTransfersPerTx: z.ZodNumber;
71
77
  publicTransfersPerTx: z.ZodNumber;
72
78
  feePaymentMethod: z.ZodLiteral<"fee_juice">;
79
+ baseFeePadding: z.ZodNumber;
73
80
  noStart: z.ZodBoolean;
74
81
  txMinedWaitSeconds: z.ZodNumber;
75
82
  followChain: z.ZodEnum<["NONE", "PENDING", "PROVEN"]>;
76
83
  maxPendingTxs: z.ZodNumber;
77
84
  flushSetupTransactions: z.ZodBoolean;
78
- skipPublicSimulation: z.ZodBoolean;
79
85
  l2GasLimit: z.ZodOptional<z.ZodNumber>;
80
86
  daGasLimit: z.ZodOptional<z.ZodNumber>;
81
87
  contract: z.ZodNativeEnum<typeof SupportedTokenContracts>;
82
88
  maxConsecutiveErrors: z.ZodNumber;
83
89
  stopWhenUnhealthy: z.ZodBoolean;
90
+ ammTxs: z.ZodDefault<z.ZodBoolean>;
91
+ dataDirectory: z.ZodOptional<z.ZodString>;
92
+ dataStoreMapSizeKb: z.ZodOptional<z.ZodNumber>;
84
93
  }, "strip", z.ZodTypeAny, {
85
- recipientEncryptionSecret: Fr;
94
+ nodeUrl?: string | undefined;
95
+ nodeAdminUrl?: string | undefined;
96
+ l1RpcUrls?: string[] | undefined;
97
+ l1Mnemonic?: SecretValue<string> | undefined;
98
+ l1PrivateKey?: SecretValue<string> | undefined;
99
+ l1ToL2MessageTimeoutSeconds: number;
100
+ senderPrivateKey?: SecretValue<Fr> | undefined;
101
+ senderSalt?: Fr | undefined;
86
102
  tokenSalt: Fr;
87
103
  txIntervalSeconds: number;
88
104
  privateTransfersPerTx: number;
89
105
  publicTransfersPerTx: number;
90
106
  feePaymentMethod: "fee_juice";
107
+ baseFeePadding: number;
91
108
  noStart: boolean;
92
109
  txMinedWaitSeconds: number;
93
110
  followChain: "NONE" | "PENDING" | "PROVEN";
94
111
  maxPendingTxs: number;
95
112
  flushSetupTransactions: boolean;
96
- skipPublicSimulation: boolean;
113
+ l2GasLimit?: number | undefined;
114
+ daGasLimit?: number | undefined;
97
115
  contract: SupportedTokenContracts;
98
116
  maxConsecutiveErrors: number;
99
117
  stopWhenUnhealthy: boolean;
118
+ ammTxs: boolean;
119
+ dataDirectory?: string | undefined;
120
+ dataStoreMapSizeKb?: number | undefined;
121
+ }, {
100
122
  nodeUrl?: string | undefined;
101
- pxeUrl?: string | undefined;
123
+ nodeAdminUrl?: string | undefined;
102
124
  l1RpcUrls?: string[] | undefined;
103
- l1Mnemonic?: string | undefined;
104
- l1PrivateKey?: string | undefined;
105
- senderPrivateKey?: Fr | undefined;
106
- l2GasLimit?: number | undefined;
107
- daGasLimit?: number | undefined;
108
- }, {
125
+ l1Mnemonic?: any;
126
+ l1PrivateKey?: any;
127
+ l1ToL2MessageTimeoutSeconds: number;
128
+ senderPrivateKey?: any;
129
+ senderSalt?: any;
130
+ tokenSalt?: any;
109
131
  txIntervalSeconds: number;
110
132
  privateTransfersPerTx: number;
111
133
  publicTransfersPerTx: number;
112
134
  feePaymentMethod: "fee_juice";
135
+ baseFeePadding: number;
113
136
  noStart: boolean;
114
137
  txMinedWaitSeconds: number;
115
138
  followChain: "NONE" | "PENDING" | "PROVEN";
116
139
  maxPendingTxs: number;
117
140
  flushSetupTransactions: boolean;
118
- skipPublicSimulation: boolean;
141
+ l2GasLimit?: number | undefined;
142
+ daGasLimit?: number | undefined;
119
143
  contract: SupportedTokenContracts;
120
144
  maxConsecutiveErrors: number;
121
145
  stopWhenUnhealthy: boolean;
122
- nodeUrl?: string | undefined;
123
- pxeUrl?: string | undefined;
124
- l1RpcUrls?: string[] | undefined;
125
- l1Mnemonic?: string | undefined;
126
- l1PrivateKey?: string | undefined;
127
- senderPrivateKey?: any;
128
- recipientEncryptionSecret?: any;
129
- tokenSalt?: any;
130
- l2GasLimit?: number | undefined;
131
- daGasLimit?: number | undefined;
146
+ ammTxs?: boolean | undefined;
147
+ dataDirectory?: string | undefined;
148
+ dataStoreMapSizeKb?: number | undefined;
132
149
  }>, {
133
- recipientEncryptionSecret: Fr;
150
+ l1ToL2MessageTimeoutSeconds: number;
134
151
  tokenSalt: Fr;
135
152
  txIntervalSeconds: number;
136
153
  privateTransfersPerTx: number;
137
154
  publicTransfersPerTx: number;
138
155
  feePaymentMethod: "fee_juice";
156
+ baseFeePadding: number;
139
157
  noStart: boolean;
140
158
  txMinedWaitSeconds: number;
141
159
  followChain: "NONE" | "PENDING" | "PROVEN";
142
160
  maxPendingTxs: number;
143
161
  flushSetupTransactions: boolean;
144
- skipPublicSimulation: boolean;
145
162
  contract: SupportedTokenContracts;
146
163
  maxConsecutiveErrors: number;
147
164
  stopWhenUnhealthy: boolean;
165
+ ammTxs: boolean;
148
166
  nodeUrl: string | undefined;
149
- pxeUrl: string | undefined;
167
+ nodeAdminUrl: string | undefined;
150
168
  l1RpcUrls: string[] | undefined;
151
- l1Mnemonic: string | undefined;
152
- l1PrivateKey: string | undefined;
153
- senderPrivateKey: Fr | undefined;
169
+ senderSalt: Fr | undefined;
154
170
  l2GasLimit: number | undefined;
155
171
  daGasLimit: number | undefined;
172
+ l1Mnemonic: SecretValue<string> | undefined;
173
+ l1PrivateKey: SecretValue<string> | undefined;
174
+ senderPrivateKey: SecretValue<Fr> | undefined;
175
+ dataDirectory: string | undefined;
176
+ dataStoreMapSizeKb: number;
156
177
  }, {
178
+ nodeUrl?: string | undefined;
179
+ nodeAdminUrl?: string | undefined;
180
+ l1RpcUrls?: string[] | undefined;
181
+ l1Mnemonic?: any;
182
+ l1PrivateKey?: any;
183
+ l1ToL2MessageTimeoutSeconds: number;
184
+ senderPrivateKey?: any;
185
+ senderSalt?: any;
186
+ tokenSalt?: any;
157
187
  txIntervalSeconds: number;
158
188
  privateTransfersPerTx: number;
159
189
  publicTransfersPerTx: number;
160
190
  feePaymentMethod: "fee_juice";
191
+ baseFeePadding: number;
161
192
  noStart: boolean;
162
193
  txMinedWaitSeconds: number;
163
194
  followChain: "NONE" | "PENDING" | "PROVEN";
164
195
  maxPendingTxs: number;
165
196
  flushSetupTransactions: boolean;
166
- skipPublicSimulation: boolean;
197
+ l2GasLimit?: number | undefined;
198
+ daGasLimit?: number | undefined;
167
199
  contract: SupportedTokenContracts;
168
200
  maxConsecutiveErrors: number;
169
201
  stopWhenUnhealthy: boolean;
170
- nodeUrl?: string | undefined;
171
- pxeUrl?: string | undefined;
172
- l1RpcUrls?: string[] | undefined;
173
- l1Mnemonic?: string | undefined;
174
- l1PrivateKey?: string | undefined;
175
- senderPrivateKey?: any;
176
- recipientEncryptionSecret?: any;
177
- tokenSalt?: any;
178
- l2GasLimit?: number | undefined;
179
- daGasLimit?: number | undefined;
202
+ ammTxs?: boolean | undefined;
203
+ dataDirectory?: string | undefined;
204
+ dataStoreMapSizeKb?: number | undefined;
180
205
  }>;
181
206
  export declare const botConfigMappings: ConfigMappingsType<BotConfig>;
182
207
  export declare function getBotConfigFromEnv(): BotConfig;
183
208
  export declare function getBotDefaultConfig(): BotConfig;
184
209
  export declare function getVersions(): Partial<ComponentsVersions>;
185
210
  export {};
186
- //# sourceMappingURL=config.d.ts.map
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLGtCQUFrQixFQUN2QixXQUFXLEVBU1osTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUMsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFzQixNQUFNLHdCQUF3QixDQUFDO0FBR2xGLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBVyxNQUFNLHVCQUF1QixDQUFDO0FBQzdELE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbkUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixRQUFBLE1BQU0sY0FBYyx3Q0FBeUMsQ0FBQztBQUM5RCxLQUFLLGNBQWMsR0FBRyxDQUFDLE9BQU8sY0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFdEQsb0JBQVksdUJBQXVCO0lBQ2pDLGFBQWEsa0JBQWtCO0lBQy9CLG9CQUFvQix5QkFBeUI7Q0FDOUM7QUFFRCxNQUFNLE1BQU0sU0FBUyxHQUFHO0lBQ3RCLDZEQUE2RDtJQUM3RCxPQUFPLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUM1Qiw0RUFBNEU7SUFDNUUsWUFBWSxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDakMsZ0NBQWdDO0lBQ2hDLFNBQVMsRUFBRSxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUM7SUFDaEMsZ0VBQWdFO0lBQ2hFLFVBQVUsRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBQzVDLG1FQUFtRTtJQUNuRSxZQUFZLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUM5Qyx1RUFBdUU7SUFDdkUsMkJBQTJCLEVBQUUsTUFBTSxDQUFDO0lBQ3BDLGtEQUFrRDtJQUNsRCxnQkFBZ0IsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBQzlDLDZEQUE2RDtJQUM3RCxVQUFVLEVBQUUsRUFBRSxHQUFHLFNBQVMsQ0FBQztJQUMzQixpREFBaUQ7SUFDakQsU0FBUyxFQUFFLEVBQUUsQ0FBQztJQUNkLHNEQUFzRDtJQUN0RCxpQkFBaUIsRUFBRSxNQUFNLENBQUM7SUFDMUIsNERBQTREO0lBQzVELHFCQUFxQixFQUFFLE1BQU0sQ0FBQztJQUM5QiwyREFBMkQ7SUFDM0Qsb0JBQW9CLEVBQUUsTUFBTSxDQUFDO0lBQzdCLGtDQUFrQztJQUNsQyxnQkFBZ0IsRUFBRSxXQUFXLENBQUM7SUFDOUIsd0VBQXdFO0lBQ3hFLGNBQWMsRUFBRSxNQUFNLENBQUM7SUFDdkIsMEVBQTBFO0lBQzFFLE9BQU8sRUFBRSxPQUFPLENBQUM7SUFDakIsdUVBQXVFO0lBQ3ZFLGtCQUFrQixFQUFFLE1BQU0sQ0FBQztJQUMzQiw0RUFBNEU7SUFDNUUsV0FBVyxFQUFFLGNBQWMsQ0FBQztJQUM1QixnRkFBZ0Y7SUFDaEYsYUFBYSxFQUFFLE1BQU0sQ0FBQztJQUN0Qiw4REFBOEQ7SUFDOUQsc0JBQXNCLEVBQUUsT0FBTyxDQUFDO0lBQ2hDLCtFQUErRTtJQUMvRSxVQUFVLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUMvQiwrRUFBK0U7SUFDL0UsVUFBVSxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDL0IsNEJBQTRCO0lBQzVCLFFBQVEsRUFBRSx1QkFBdUIsQ0FBQztJQUNsQyx5RUFBeUU7SUFDekUsb0JBQW9CLEVBQUUsTUFBTSxDQUFDO0lBQzdCLGlEQUFpRDtJQUNqRCxpQkFBaUIsRUFBRSxPQUFPLENBQUM7SUFDM0IsK0RBQStEO0lBQy9ELE1BQU0sRUFBRSxPQUFPLENBQUM7Q0FDakIsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLGVBQWUsR0FBRyxvQkFBb0IsQ0FBQyxDQUFDO0FBRWxFLGVBQU8sTUFBTSxlQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQTJDSyxDQUFDO0FBRWxDLGVBQU8sTUFBTSxpQkFBaUIsRUFBRSxrQkFBa0IsQ0FBQyxTQUFTLENBK0kzRCxDQUFDO0FBRUYsd0JBQWdCLG1CQUFtQixJQUFJLFNBQVMsQ0FFL0M7QUFFRCx3QkFBZ0IsbUJBQW1CLElBQUksU0FBUyxDQUUvQztBQUVELHdCQUFnQixXQUFXLElBQUksT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBS3pEIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAMxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,cAAc,wCAAyC,CAAC;AAC9D,KAAK,cAAc,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtD,oBAAY,uBAAuB;IACjC,aAAa,kBAAkB;IAC/B,wBAAwB,6BAA6B;CACtD;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,6DAA6D;IAC7D,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,8EAA8E;IAC9E,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,gCAAgC;IAChC,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAChC,gEAAgE;IAChE,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,mEAAmE;IACnE,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,kDAAkD;IAClD,gBAAgB,EAAE,EAAE,GAAG,SAAS,CAAC;IACjC,iDAAiD;IACjD,yBAAyB,EAAE,EAAE,CAAC;IAC9B,8CAA8C;IAC9C,SAAS,EAAE,EAAE,CAAC;IACd,sDAAsD;IACtD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,4DAA4D;IAC5D,qBAAqB,EAAE,MAAM,CAAC;IAC9B,2DAA2D;IAC3D,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kCAAkC;IAClC,gBAAgB,EAAE,WAAW,CAAC;IAC9B,0EAA0E;IAC1E,OAAO,EAAE,OAAO,CAAC;IACjB,uEAAuE;IACvE,kBAAkB,EAAE,MAAM,CAAC;IAC3B,4EAA4E;IAC5E,WAAW,EAAE,cAAc,CAAC;IAC5B,gFAAgF;IAChF,aAAa,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,sBAAsB,EAAE,OAAO,CAAC;IAChC,oEAAoE;IACpE,oBAAoB,EAAE,OAAO,CAAC;IAC9B,+EAA+E;IAC/E,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,+EAA+E;IAC/E,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,4BAA4B;IAC5B,QAAQ,EAAE,uBAAuB,CAAC;IAClC,yEAAyE;IACzE,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iDAAiD;IACjD,iBAAiB,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCK,CAAC;AAElC,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,CAAC,SAAS,CAmI3D,CAAC;AAEF,wBAAgB,mBAAmB,IAAI,SAAS,CAE/C;AAED,wBAAgB,mBAAmB,IAAI,SAAS,CAE/C;AAED,wBAAgB,WAAW,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAKzD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dest/config.js CHANGED
@@ -1,7 +1,8 @@
1
- import { booleanConfigHelper, getConfigFromMappings, getDefaultConfig, numberConfigHelper, optionalNumberConfigHelper } from '@aztec/foundation/config';
1
+ import { booleanConfigHelper, getConfigFromMappings, getDefaultConfig, numberConfigHelper, optionalNumberConfigHelper, pickConfigMappings, secretFrConfigHelper, secretStringConfigHelper } from '@aztec/foundation/config';
2
2
  import { Fr } from '@aztec/foundation/fields';
3
+ import { dataConfigMappings } from '@aztec/kv-store/config';
3
4
  import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
4
- import { protocolContractTreeRoot } from '@aztec/protocol-contracts';
5
+ import { protocolContractsHash } from '@aztec/protocol-contracts';
5
6
  import { schemas } from '@aztec/stdlib/schemas';
6
7
  import { z } from 'zod';
7
8
  const BotFollowChain = [
@@ -11,42 +12,49 @@ const BotFollowChain = [
11
12
  ];
12
13
  export var SupportedTokenContracts = /*#__PURE__*/ function(SupportedTokenContracts) {
13
14
  SupportedTokenContracts["TokenContract"] = "TokenContract";
14
- SupportedTokenContracts["EasyPrivateTokenContract"] = "EasyPrivateTokenContract";
15
+ SupportedTokenContracts["PrivateTokenContract"] = "PrivateTokenContract";
15
16
  return SupportedTokenContracts;
16
17
  }({});
17
18
  export const BotConfigSchema = z.object({
18
19
  nodeUrl: z.string().optional(),
19
- pxeUrl: z.string().optional(),
20
+ nodeAdminUrl: z.string().optional(),
20
21
  l1RpcUrls: z.array(z.string()).optional(),
21
- l1Mnemonic: z.string().optional(),
22
- l1PrivateKey: z.string().optional(),
23
- senderPrivateKey: schemas.Fr.optional(),
24
- recipientEncryptionSecret: schemas.Fr,
22
+ l1Mnemonic: schemas.SecretValue(z.string()).optional(),
23
+ l1PrivateKey: schemas.SecretValue(z.string()).optional(),
24
+ l1ToL2MessageTimeoutSeconds: z.number(),
25
+ senderPrivateKey: schemas.SecretValue(schemas.Fr).optional(),
26
+ senderSalt: schemas.Fr.optional(),
25
27
  tokenSalt: schemas.Fr,
26
28
  txIntervalSeconds: z.number(),
27
29
  privateTransfersPerTx: z.number().int().nonnegative(),
28
30
  publicTransfersPerTx: z.number().int().nonnegative(),
29
31
  feePaymentMethod: z.literal('fee_juice'),
32
+ baseFeePadding: z.number().int().nonnegative(),
30
33
  noStart: z.boolean(),
31
34
  txMinedWaitSeconds: z.number(),
32
35
  followChain: z.enum(BotFollowChain),
33
36
  maxPendingTxs: z.number().int().nonnegative(),
34
37
  flushSetupTransactions: z.boolean(),
35
- skipPublicSimulation: z.boolean(),
36
38
  l2GasLimit: z.number().int().nonnegative().optional(),
37
39
  daGasLimit: z.number().int().nonnegative().optional(),
38
40
  contract: z.nativeEnum(SupportedTokenContracts),
39
41
  maxConsecutiveErrors: z.number().int().nonnegative(),
40
- stopWhenUnhealthy: z.boolean()
42
+ stopWhenUnhealthy: z.boolean(),
43
+ ammTxs: z.boolean().default(false),
44
+ dataDirectory: z.string().optional(),
45
+ dataStoreMapSizeKb: z.number().optional()
41
46
  }).transform((config)=>({
42
47
  nodeUrl: undefined,
43
- pxeUrl: undefined,
48
+ nodeAdminUrl: undefined,
44
49
  l1RpcUrls: undefined,
50
+ senderSalt: undefined,
51
+ l2GasLimit: undefined,
52
+ daGasLimit: undefined,
45
53
  l1Mnemonic: undefined,
46
54
  l1PrivateKey: undefined,
47
55
  senderPrivateKey: undefined,
48
- l2GasLimit: undefined,
49
- daGasLimit: undefined,
56
+ dataDirectory: undefined,
57
+ dataStoreMapSizeKb: 1_024 * 1_024,
50
58
  ...config
51
59
  }));
52
60
  export const botConfigMappings = {
@@ -54,9 +62,9 @@ export const botConfigMappings = {
54
62
  env: 'AZTEC_NODE_URL',
55
63
  description: 'The URL to the Aztec node to check for tx pool status.'
56
64
  },
57
- pxeUrl: {
58
- env: 'BOT_PXE_URL',
59
- description: 'URL to the PXE for sending txs, or undefined if an in-proc PXE is used.'
65
+ nodeAdminUrl: {
66
+ env: 'AZTEC_NODE_ADMIN_URL',
67
+ description: 'The URL to the Aztec node admin API to force-flush txs if configured.'
60
68
  },
61
69
  l1RpcUrls: {
62
70
  env: 'ETHEREUM_HOSTS',
@@ -65,26 +73,32 @@ export const botConfigMappings = {
65
73
  },
66
74
  l1Mnemonic: {
67
75
  env: 'BOT_L1_MNEMONIC',
68
- description: 'The mnemonic for the account to bridge fee juice from L1.'
76
+ description: 'The mnemonic for the account to bridge fee juice from L1.',
77
+ ...secretStringConfigHelper()
69
78
  },
70
79
  l1PrivateKey: {
71
80
  env: 'BOT_L1_PRIVATE_KEY',
72
- description: 'The private key for the account to bridge fee juice from L1.'
81
+ description: 'The private key for the account to bridge fee juice from L1.',
82
+ ...secretStringConfigHelper()
83
+ },
84
+ l1ToL2MessageTimeoutSeconds: {
85
+ env: 'BOT_L1_TO_L2_TIMEOUT_SECONDS',
86
+ description: 'How long to wait for L1 to L2 messages to become available on L2',
87
+ ...numberConfigHelper(3600)
73
88
  },
74
89
  senderPrivateKey: {
75
90
  env: 'BOT_PRIVATE_KEY',
76
91
  description: 'Signing private key for the sender account.',
77
- parseEnv: (val)=>val ? Fr.fromHexString(val) : undefined
92
+ ...secretFrConfigHelper()
78
93
  },
79
- recipientEncryptionSecret: {
80
- env: 'BOT_RECIPIENT_ENCRYPTION_SECRET',
81
- description: 'Encryption secret for a recipient account.',
82
- parseEnv: (val)=>Fr.fromHexString(val),
83
- defaultValue: Fr.fromHexString('0xcafecafe')
94
+ senderSalt: {
95
+ env: 'BOT_ACCOUNT_SALT',
96
+ description: 'The salt to use to deploy the sender account.',
97
+ parseEnv: (val)=>val ? Fr.fromHexString(val) : undefined
84
98
  },
85
99
  tokenSalt: {
86
100
  env: 'BOT_TOKEN_SALT',
87
- description: 'Salt for the token contract deployment.',
101
+ description: 'The salt to use to deploy the token contract.',
88
102
  parseEnv: (val)=>Fr.fromHexString(val),
89
103
  defaultValue: Fr.fromHexString('1')
90
104
  },
@@ -109,6 +123,11 @@ export const botConfigMappings = {
109
123
  parseEnv: (val)=>val || undefined,
110
124
  defaultValue: 'fee_juice'
111
125
  },
126
+ baseFeePadding: {
127
+ env: 'BOT_BASE_FEE_PADDING',
128
+ description: 'How much is the bot willing to overpay vs. the current base fee',
129
+ ...numberConfigHelper(3)
130
+ },
112
131
  noStart: {
113
132
  env: 'BOT_NO_START',
114
133
  description: 'True to not automatically setup or start the bot on initialization.',
@@ -140,11 +159,6 @@ export const botConfigMappings = {
140
159
  description: 'Make a request for the sequencer to build a block after each setup transaction.',
141
160
  ...booleanConfigHelper(false)
142
161
  },
143
- skipPublicSimulation: {
144
- env: 'BOT_SKIP_PUBLIC_SIMULATION',
145
- description: 'Whether to skip public simulation of txs before sending them.',
146
- ...booleanConfigHelper(false)
147
- },
148
162
  l2GasLimit: {
149
163
  env: 'BOT_L2_GAS_LIMIT',
150
164
  description: 'L2 gas limit for the tx (empty to have the bot trigger an estimate gas).',
@@ -175,7 +189,16 @@ export const botConfigMappings = {
175
189
  env: 'BOT_STOP_WHEN_UNHEALTHY',
176
190
  description: 'Stops the bot if service becomes unhealthy',
177
191
  ...booleanConfigHelper(false)
178
- }
192
+ },
193
+ ammTxs: {
194
+ env: 'BOT_AMM_TXS',
195
+ description: 'Deploy an AMM and send swaps to it',
196
+ ...booleanConfigHelper(false)
197
+ },
198
+ ...pickConfigMappings(dataConfigMappings, [
199
+ 'dataStoreMapSizeKb',
200
+ 'dataDirectory'
201
+ ])
179
202
  };
180
203
  export function getBotConfigFromEnv() {
181
204
  return getConfigFromMappings(botConfigMappings);
@@ -185,7 +208,7 @@ export function getBotDefaultConfig() {
185
208
  }
186
209
  export function getVersions() {
187
210
  return {
188
- l2ProtocolContractsTreeRoot: protocolContractTreeRoot.toString(),
211
+ l2ProtocolContractsHash: protocolContractsHash.toString(),
189
212
  l2CircuitsVkTreeRoot: getVKTreeRoot().toString()
190
213
  };
191
214
  }
package/dest/factory.d.ts CHANGED
@@ -1,50 +1,54 @@
1
- import { AztecAddress, type AztecNode, type PXE } from '@aztec/aztec.js';
2
- import { EasyPrivateTokenContract } from '@aztec/noir-contracts.js/EasyPrivateToken';
1
+ import { AztecAddress } from '@aztec/aztec.js/addresses';
2
+ import { AMMContract } from '@aztec/noir-contracts.js/AMM';
3
+ import { PrivateTokenContract } from '@aztec/noir-contracts.js/PrivateToken';
3
4
  import { TokenContract } from '@aztec/noir-contracts.js/Token';
5
+ import type { AztecNode, AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
6
+ import { TestWallet } from '@aztec/test-wallet/server';
4
7
  import { type BotConfig } from './config.js';
8
+ import type { BotStore } from './store/index.js';
5
9
  export declare class BotFactory {
6
10
  private readonly config;
7
- private pxe;
8
- private node?;
11
+ private readonly wallet;
12
+ private readonly store;
13
+ private readonly aztecNode;
14
+ private readonly aztecNodeAdmin?;
9
15
  private log;
10
- constructor(config: BotConfig, dependencies?: {
11
- pxe?: PXE;
12
- node?: AztecNode;
13
- });
16
+ constructor(config: BotConfig, wallet: TestWallet, store: BotStore, aztecNode: AztecNode, aztecNodeAdmin?: AztecNodeAdmin | undefined);
14
17
  /**
15
18
  * Initializes a new bot by setting up the sender account, registering the recipient,
16
19
  * deploying the token contract, and minting tokens if necessary.
17
20
  */
18
21
  setup(): Promise<{
19
- wallet: import("@aztec/aztec.js").AccountWalletWithSecretKey;
20
- token: TokenContract | EasyPrivateTokenContract;
21
- pxe: PXE;
22
+ wallet: TestWallet;
23
+ defaultAccountAddress: AztecAddress;
24
+ token: TokenContract | PrivateTokenContract;
25
+ node: AztecNode;
22
26
  recipient: AztecAddress;
23
27
  }>;
24
- /**
25
- * Checks if the sender account contract is initialized, and initializes it if necessary.
26
- * @returns The sender wallet.
27
- */
28
+ setupAmm(): Promise<{
29
+ wallet: TestWallet;
30
+ defaultAccountAddress: AztecAddress;
31
+ amm: AMMContract;
32
+ token0: TokenContract;
33
+ token1: TokenContract;
34
+ node: AztecNode;
35
+ }>;
28
36
  private setupAccount;
29
37
  private setupAccountWithPrivateKey;
30
38
  private setupTestAccount;
31
- /**
32
- * Registers the recipient for txs in the pxe.
33
- */
34
- private registerRecipient;
39
+ private setupToken;
35
40
  /**
36
41
  * Checks if the token contract is deployed and deploys it if necessary.
37
42
  * @param wallet - Wallet to deploy the token contract from.
38
43
  * @returns The TokenContract instance.
39
44
  */
40
- private setupToken;
41
- /**
42
- * Mints private and public tokens for the sender if their balance is below the minimum.
43
- * @param token - Token contract.
44
- */
45
+ private setupTokenContract;
46
+ private setupAmmContract;
47
+ private fundAmm;
48
+ private registerOrDeployContract;
45
49
  private mintTokens;
50
+ private getOrCreateBridgeClaim;
46
51
  private bridgeL1FeeJuice;
47
- private advanceL2Block;
48
- private tryFlushTxs;
52
+ private withNoMinTxsPerBlock;
49
53
  }
50
- //# sourceMappingURL=factory.d.ts.map
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBZ0J6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRS9ELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVqRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFdkQsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUEyQixNQUFNLGFBQWEsQ0FBQztBQUN0RSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQU1qRCxxQkFBYSxVQUFVO0lBSW5CLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTTtJQUN2QixPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU07SUFDdkIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0lBQ3RCLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUztJQUMxQixPQUFPLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztJQVBsQyxPQUFPLENBQUMsR0FBRyxDQUF1QjtJQUVsQyxZQUNtQixNQUFNLEVBQUUsU0FBUyxFQUNqQixNQUFNLEVBQUUsVUFBVSxFQUNsQixLQUFLLEVBQUUsUUFBUSxFQUNmLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLGNBQWMsQ0FBQyw0QkFBZ0IsRUFDOUM7SUFFSjs7O09BR0c7SUFDVSxLQUFLLElBQUksT0FBTyxDQUFDO1FBQzVCLE1BQU0sRUFBRSxVQUFVLENBQUM7UUFDbkIscUJBQXFCLEVBQUUsWUFBWSxDQUFDO1FBQ3BDLEtBQUssRUFBRSxhQUFhLEdBQUcsb0JBQW9CLENBQUM7UUFDNUMsSUFBSSxFQUFFLFNBQVMsQ0FBQztRQUNoQixTQUFTLEVBQUUsWUFBWSxDQUFDO0tBQ3pCLENBQUMsQ0FNRDtJQUVZLFFBQVEsSUFBSSxPQUFPLENBQUM7UUFDL0IsTUFBTSxFQUFFLFVBQVUsQ0FBQztRQUNuQixxQkFBcUIsRUFBRSxZQUFZLENBQUM7UUFDcEMsR0FBRyxFQUFFLFdBQVcsQ0FBQztRQUNqQixNQUFNLEVBQUUsYUFBYSxDQUFDO1FBQ3RCLE1BQU0sRUFBRSxhQUFhLENBQUM7UUFDdEIsSUFBSSxFQUFFLFNBQVMsQ0FBQztLQUNqQixDQUFDLENBc0JEO1lBTWEsWUFBWTtZQVdaLDBCQUEwQjtZQXdDMUIsZ0JBQWdCO1lBZ0JoQixVQUFVO0lBK0J4Qjs7OztPQUlHO0lBQ0gsT0FBTyxDQUFDLGtCQUFrQjtZQVlaLGdCQUFnQjtZQW9CaEIsT0FBTztZQThFUCx3QkFBd0I7WUFzQnhCLFVBQVU7WUF3Q1Ysc0JBQXNCO1lBNEJ0QixnQkFBZ0I7WUFnQ2hCLG9CQUFvQjtDQWVuQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,YAAY,EACZ,KAAK,SAAS,EAMd,KAAK,GAAG,EAIT,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAK/D,OAAO,EAAE,KAAK,SAAS,EAAwC,MAAM,aAAa,CAAC;AAMnF,qBAAa,UAAU;IAKT,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJnC,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,IAAI,CAAC,CAAY;IACzB,OAAO,CAAC,GAAG,CAAuB;gBAEL,MAAM,EAAE,SAAS,EAAE,YAAY,GAAE;QAAE,GAAG,CAAC,EAAE,GAAG,CAAC;QAAC,IAAI,CAAC,EAAE,SAAS,CAAA;KAAO;IAwBlG;;;OAGG;IACU,KAAK;;;;;;IAQlB;;;OAGG;YACW,YAAY;YAQZ,0BAA0B;YA4B1B,gBAAgB;IAc9B;;OAEG;YACW,iBAAiB;IAK/B;;;;OAIG;YACW,UAAU;IA8BxB;;;OAGG;YACW,UAAU;YAuCV,gBAAgB;YA+BhB,cAAc;YAMd,WAAW;CAU1B"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAgBzD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjF,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAE,KAAK,SAAS,EAA2B,MAAM,aAAa,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAMjD,qBAAa,UAAU;IAInB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;IAPlC,OAAO,CAAC,GAAG,CAAuB;IAElC,YACmB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,SAAS,EACpB,cAAc,CAAC,4BAAgB,EAC9C;IAEJ;;;OAGG;IACU,KAAK,IAAI,OAAO,CAAC;QAC5B,MAAM,EAAE,UAAU,CAAC;QACnB,qBAAqB,EAAE,YAAY,CAAC;QACpC,KAAK,EAAE,aAAa,GAAG,oBAAoB,CAAC;QAC5C,IAAI,EAAE,SAAS,CAAC;QAChB,SAAS,EAAE,YAAY,CAAC;KACzB,CAAC,CAMD;IAEY,QAAQ,IAAI,OAAO,CAAC;QAC/B,MAAM,EAAE,UAAU,CAAC;QACnB,qBAAqB,EAAE,YAAY,CAAC;QACpC,GAAG,EAAE,WAAW,CAAC;QACjB,MAAM,EAAE,aAAa,CAAC;QACtB,MAAM,EAAE,aAAa,CAAC;QACtB,IAAI,EAAE,SAAS,CAAC;KACjB,CAAC,CAsBD;YAMa,YAAY;YAWZ,0BAA0B;YAwC1B,gBAAgB;YAgBhB,UAAU;IA+BxB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;YAYZ,gBAAgB;YAoBhB,OAAO;YA8EP,wBAAwB;YAsBxB,UAAU;YAwCV,sBAAsB;YA4BtB,gBAAgB;YAgChB,oBAAoB;CAenC"}