@aztec/bot 0.0.0-test.0 → 0.0.1-commit.0208eb9

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 +32 -0
  2. package/dest/amm_bot.d.ts.map +1 -0
  3. package/dest/amm_bot.js +101 -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 +27 -86
  10. package/dest/config.d.ts +84 -60
  11. package/dest/config.d.ts.map +1 -1
  12. package/dest/config.js +59 -36
  13. package/dest/factory.d.ts +30 -31
  14. package/dest/factory.d.ts.map +1 -1
  15. package/dest/factory.js +318 -139
  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 +441 -51
  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 +92 -0
  40. package/src/bot.ts +53 -103
  41. package/src/config.ts +98 -68
  42. package/src/factory.ts +378 -154
  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,30 +1,32 @@
1
- import { type ConfigMappingsType } from '@aztec/foundation/config';
2
- import { Fr } from '@aztec/foundation/fields';
3
- import { type ZodFor } from '@aztec/stdlib/schemas';
1
+ import { type ConfigMappingsType, SecretValue } from '@aztec/foundation/config';
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
6
  declare const BotFollowChain: readonly ["NONE", "PENDING", "PROVEN"];
7
7
  type BotFollowChain = (typeof BotFollowChain)[number];
8
8
  export declare enum SupportedTokenContracts {
9
9
  TokenContract = "TokenContract",
10
- EasyPrivateTokenContract = "EasyPrivateTokenContract"
10
+ PrivateTokenContract = "PrivateTokenContract"
11
11
  }
12
12
  export type BotConfig = {
13
13
  /** The URL to the Aztec node to check for tx pool status. */
14
14
  nodeUrl: string | undefined;
15
- /** URL to the PXE for sending txs, or undefined if an in-proc PXE is used. */
16
- pxeUrl: string | undefined;
15
+ /** The URL to the Aztec node admin API to force-flush txs if configured. */
16
+ nodeAdminUrl: string | undefined;
17
17
  /** Url of the ethereum host. */
18
18
  l1RpcUrls: string[] | undefined;
19
19
  /** The mnemonic for the account to bridge fee juice from L1. */
20
- l1Mnemonic: string | undefined;
20
+ l1Mnemonic: SecretValue<string> | undefined;
21
21
  /** The private key for the account to bridge fee juice from L1. */
22
- l1PrivateKey: string | undefined;
22
+ l1PrivateKey: SecretValue<string> | undefined;
23
+ /** How long to wait for L1 to L2 messages to become available on L2 */
24
+ l1ToL2MessageTimeoutSeconds: number;
23
25
  /** 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. */
26
+ senderPrivateKey: SecretValue<Fr> | undefined;
27
+ /** Optional salt to use to instantiate the sender account */
28
+ senderSalt: Fr | undefined;
29
+ /** Salt for the token contract instantiation. */
28
30
  tokenSalt: Fr;
29
31
  /** Every how many seconds should a new tx be sent. */
30
32
  txIntervalSeconds: number;
@@ -34,6 +36,8 @@ export type BotConfig = {
34
36
  publicTransfersPerTx: number;
35
37
  /** How to handle fee payments. */
36
38
  feePaymentMethod: 'fee_juice';
39
+ /** 'How much is the bot willing to overpay vs. the current min fee' */
40
+ minFeePadding: number;
37
41
  /** True to not automatically setup or start the bot on initialization. */
38
42
  noStart: boolean;
39
43
  /** How long to wait for a tx to be mined before reporting an error. */
@@ -44,8 +48,6 @@ export type BotConfig = {
44
48
  maxPendingTxs: number;
45
49
  /** Whether to flush after sending each 'setup' transaction */
46
50
  flushSetupTransactions: boolean;
47
- /** Whether to skip public simulation of txs before sending them. */
48
- skipPublicSimulation: boolean;
49
51
  /** L2 gas limit for the tx (empty to have the bot trigger an estimate gas). */
50
52
  l2GasLimit: number | undefined;
51
53
  /** DA gas limit for the tx (empty to have the bot trigger an estimate gas). */
@@ -56,131 +58,153 @@ export type BotConfig = {
56
58
  maxConsecutiveErrors: number;
57
59
  /** Stops the bot if service becomes unhealthy */
58
60
  stopWhenUnhealthy: boolean;
59
- };
61
+ /** Deploy an AMM contract and do swaps instead of transfers */
62
+ ammTxs: boolean;
63
+ } & Pick<DataStoreConfig, 'dataDirectory' | 'dataStoreMapSizeKb'>;
60
64
  export declare const BotConfigSchema: z.ZodEffects<z.ZodObject<{
61
65
  nodeUrl: z.ZodOptional<z.ZodString>;
62
- pxeUrl: z.ZodOptional<z.ZodString>;
66
+ nodeAdminUrl: z.ZodOptional<z.ZodString>;
63
67
  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>;
68
- tokenSalt: ZodFor<Fr>;
68
+ l1Mnemonic: z.ZodOptional<z.ZodType<SecretValue<string>, any, any>>;
69
+ l1PrivateKey: z.ZodOptional<z.ZodType<SecretValue<string>, any, any>>;
70
+ l1ToL2MessageTimeoutSeconds: z.ZodNumber;
71
+ senderPrivateKey: z.ZodOptional<z.ZodType<SecretValue<Fr>, any, any>>;
72
+ senderSalt: z.ZodOptional<import("@aztec/stdlib/schemas").ZodFor<Fr>>;
73
+ tokenSalt: import("@aztec/stdlib/schemas").ZodFor<Fr>;
69
74
  txIntervalSeconds: z.ZodNumber;
70
75
  privateTransfersPerTx: z.ZodNumber;
71
76
  publicTransfersPerTx: z.ZodNumber;
72
77
  feePaymentMethod: z.ZodLiteral<"fee_juice">;
78
+ minFeePadding: z.ZodNumber;
73
79
  noStart: z.ZodBoolean;
74
80
  txMinedWaitSeconds: z.ZodNumber;
75
81
  followChain: z.ZodEnum<["NONE", "PENDING", "PROVEN"]>;
76
82
  maxPendingTxs: z.ZodNumber;
77
83
  flushSetupTransactions: z.ZodBoolean;
78
- skipPublicSimulation: z.ZodBoolean;
79
84
  l2GasLimit: z.ZodOptional<z.ZodNumber>;
80
85
  daGasLimit: z.ZodOptional<z.ZodNumber>;
81
86
  contract: z.ZodNativeEnum<typeof SupportedTokenContracts>;
82
87
  maxConsecutiveErrors: z.ZodNumber;
83
88
  stopWhenUnhealthy: z.ZodBoolean;
89
+ ammTxs: z.ZodDefault<z.ZodBoolean>;
90
+ dataDirectory: z.ZodOptional<z.ZodString>;
91
+ dataStoreMapSizeKb: z.ZodOptional<z.ZodNumber>;
84
92
  }, "strip", z.ZodTypeAny, {
85
- recipientEncryptionSecret: Fr;
93
+ nodeUrl?: string | undefined;
94
+ nodeAdminUrl?: string | undefined;
95
+ l1RpcUrls?: string[] | undefined;
96
+ l1Mnemonic?: SecretValue<string> | undefined;
97
+ l1PrivateKey?: SecretValue<string> | undefined;
98
+ l1ToL2MessageTimeoutSeconds: number;
99
+ senderPrivateKey?: SecretValue<Fr> | undefined;
100
+ senderSalt?: Fr | undefined;
86
101
  tokenSalt: Fr;
87
102
  txIntervalSeconds: number;
88
103
  privateTransfersPerTx: number;
89
104
  publicTransfersPerTx: number;
90
105
  feePaymentMethod: "fee_juice";
106
+ minFeePadding: number;
91
107
  noStart: boolean;
92
108
  txMinedWaitSeconds: number;
93
109
  followChain: "NONE" | "PENDING" | "PROVEN";
94
110
  maxPendingTxs: number;
95
111
  flushSetupTransactions: boolean;
96
- skipPublicSimulation: boolean;
112
+ l2GasLimit?: number | undefined;
113
+ daGasLimit?: number | undefined;
97
114
  contract: SupportedTokenContracts;
98
115
  maxConsecutiveErrors: number;
99
116
  stopWhenUnhealthy: boolean;
117
+ ammTxs: boolean;
118
+ dataDirectory?: string | undefined;
119
+ dataStoreMapSizeKb?: number | undefined;
120
+ }, {
100
121
  nodeUrl?: string | undefined;
101
- pxeUrl?: string | undefined;
122
+ nodeAdminUrl?: string | undefined;
102
123
  l1RpcUrls?: string[] | undefined;
103
- l1Mnemonic?: string | undefined;
104
- l1PrivateKey?: string | undefined;
105
- senderPrivateKey?: Fr | undefined;
106
- l2GasLimit?: number | undefined;
107
- daGasLimit?: number | undefined;
108
- }, {
124
+ l1Mnemonic?: any;
125
+ l1PrivateKey?: any;
126
+ l1ToL2MessageTimeoutSeconds: number;
127
+ senderPrivateKey?: any;
128
+ senderSalt?: any;
129
+ tokenSalt?: any;
109
130
  txIntervalSeconds: number;
110
131
  privateTransfersPerTx: number;
111
132
  publicTransfersPerTx: number;
112
133
  feePaymentMethod: "fee_juice";
134
+ minFeePadding: number;
113
135
  noStart: boolean;
114
136
  txMinedWaitSeconds: number;
115
137
  followChain: "NONE" | "PENDING" | "PROVEN";
116
138
  maxPendingTxs: number;
117
139
  flushSetupTransactions: boolean;
118
- skipPublicSimulation: boolean;
140
+ l2GasLimit?: number | undefined;
141
+ daGasLimit?: number | undefined;
119
142
  contract: SupportedTokenContracts;
120
143
  maxConsecutiveErrors: number;
121
144
  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;
145
+ ammTxs?: boolean | undefined;
146
+ dataDirectory?: string | undefined;
147
+ dataStoreMapSizeKb?: number | undefined;
132
148
  }>, {
133
- recipientEncryptionSecret: Fr;
149
+ l1ToL2MessageTimeoutSeconds: number;
134
150
  tokenSalt: Fr;
135
151
  txIntervalSeconds: number;
136
152
  privateTransfersPerTx: number;
137
153
  publicTransfersPerTx: number;
138
154
  feePaymentMethod: "fee_juice";
155
+ minFeePadding: number;
139
156
  noStart: boolean;
140
157
  txMinedWaitSeconds: number;
141
158
  followChain: "NONE" | "PENDING" | "PROVEN";
142
159
  maxPendingTxs: number;
143
160
  flushSetupTransactions: boolean;
144
- skipPublicSimulation: boolean;
145
161
  contract: SupportedTokenContracts;
146
162
  maxConsecutiveErrors: number;
147
163
  stopWhenUnhealthy: boolean;
164
+ ammTxs: boolean;
148
165
  nodeUrl: string | undefined;
149
- pxeUrl: string | undefined;
166
+ nodeAdminUrl: string | undefined;
150
167
  l1RpcUrls: string[] | undefined;
151
- l1Mnemonic: string | undefined;
152
- l1PrivateKey: string | undefined;
153
- senderPrivateKey: Fr | undefined;
168
+ senderSalt: Fr | undefined;
154
169
  l2GasLimit: number | undefined;
155
170
  daGasLimit: number | undefined;
171
+ l1Mnemonic: SecretValue<string> | undefined;
172
+ l1PrivateKey: SecretValue<string> | undefined;
173
+ senderPrivateKey: SecretValue<Fr> | undefined;
174
+ dataDirectory: string | undefined;
175
+ dataStoreMapSizeKb: number;
156
176
  }, {
177
+ nodeUrl?: string | undefined;
178
+ nodeAdminUrl?: string | undefined;
179
+ l1RpcUrls?: string[] | undefined;
180
+ l1Mnemonic?: any;
181
+ l1PrivateKey?: any;
182
+ l1ToL2MessageTimeoutSeconds: number;
183
+ senderPrivateKey?: any;
184
+ senderSalt?: any;
185
+ tokenSalt?: any;
157
186
  txIntervalSeconds: number;
158
187
  privateTransfersPerTx: number;
159
188
  publicTransfersPerTx: number;
160
189
  feePaymentMethod: "fee_juice";
190
+ minFeePadding: number;
161
191
  noStart: boolean;
162
192
  txMinedWaitSeconds: number;
163
193
  followChain: "NONE" | "PENDING" | "PROVEN";
164
194
  maxPendingTxs: number;
165
195
  flushSetupTransactions: boolean;
166
- skipPublicSimulation: boolean;
196
+ l2GasLimit?: number | undefined;
197
+ daGasLimit?: number | undefined;
167
198
  contract: SupportedTokenContracts;
168
199
  maxConsecutiveErrors: number;
169
200
  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;
201
+ ammTxs?: boolean | undefined;
202
+ dataDirectory?: string | undefined;
203
+ dataStoreMapSizeKb?: number | undefined;
180
204
  }>;
181
205
  export declare const botConfigMappings: ConfigMappingsType<BotConfig>;
182
206
  export declare function getBotConfigFromEnv(): BotConfig;
183
207
  export declare function getBotDefaultConfig(): BotConfig;
184
208
  export declare function getVersions(): Partial<ComponentsVersions>;
185
209
  export {};
186
- //# sourceMappingURL=config.d.ts.map
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLGtCQUFrQixFQUN2QixXQUFXLEVBU1osTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFzQixNQUFNLHdCQUF3QixDQUFDO0FBSWxGLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbkUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixRQUFBLE1BQU0sY0FBYyx3Q0FBeUMsQ0FBQztBQUM5RCxLQUFLLGNBQWMsR0FBRyxDQUFDLE9BQU8sY0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFdEQsb0JBQVksdUJBQXVCO0lBQ2pDLGFBQWEsa0JBQWtCO0lBQy9CLG9CQUFvQix5QkFBeUI7Q0FDOUM7QUFFRCxNQUFNLE1BQU0sU0FBUyxHQUFHO0lBQ3RCLDZEQUE2RDtJQUM3RCxPQUFPLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUM1Qiw0RUFBNEU7SUFDNUUsWUFBWSxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDakMsZ0NBQWdDO0lBQ2hDLFNBQVMsRUFBRSxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUM7SUFDaEMsZ0VBQWdFO0lBQ2hFLFVBQVUsRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBQzVDLG1FQUFtRTtJQUNuRSxZQUFZLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUM5Qyx1RUFBdUU7SUFDdkUsMkJBQTJCLEVBQUUsTUFBTSxDQUFDO0lBQ3BDLGtEQUFrRDtJQUNsRCxnQkFBZ0IsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBQzlDLDZEQUE2RDtJQUM3RCxVQUFVLEVBQUUsRUFBRSxHQUFHLFNBQVMsQ0FBQztJQUMzQixpREFBaUQ7SUFDakQsU0FBUyxFQUFFLEVBQUUsQ0FBQztJQUNkLHNEQUFzRDtJQUN0RCxpQkFBaUIsRUFBRSxNQUFNLENBQUM7SUFDMUIsNERBQTREO0lBQzVELHFCQUFxQixFQUFFLE1BQU0sQ0FBQztJQUM5QiwyREFBMkQ7SUFDM0Qsb0JBQW9CLEVBQUUsTUFBTSxDQUFDO0lBQzdCLGtDQUFrQztJQUNsQyxnQkFBZ0IsRUFBRSxXQUFXLENBQUM7SUFDOUIsdUVBQXVFO0lBQ3ZFLGFBQWEsRUFBRSxNQUFNLENBQUM7SUFDdEIsMEVBQTBFO0lBQzFFLE9BQU8sRUFBRSxPQUFPLENBQUM7SUFDakIsdUVBQXVFO0lBQ3ZFLGtCQUFrQixFQUFFLE1BQU0sQ0FBQztJQUMzQiw0RUFBNEU7SUFDNUUsV0FBVyxFQUFFLGNBQWMsQ0FBQztJQUM1QixnRkFBZ0Y7SUFDaEYsYUFBYSxFQUFFLE1BQU0sQ0FBQztJQUN0Qiw4REFBOEQ7SUFDOUQsc0JBQXNCLEVBQUUsT0FBTyxDQUFDO0lBQ2hDLCtFQUErRTtJQUMvRSxVQUFVLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUMvQiwrRUFBK0U7SUFDL0UsVUFBVSxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDL0IsNEJBQTRCO0lBQzVCLFFBQVEsRUFBRSx1QkFBdUIsQ0FBQztJQUNsQyx5RUFBeUU7SUFDekUsb0JBQW9CLEVBQUUsTUFBTSxDQUFDO0lBQzdCLGlEQUFpRDtJQUNqRCxpQkFBaUIsRUFBRSxPQUFPLENBQUM7SUFDM0IsK0RBQStEO0lBQy9ELE1BQU0sRUFBRSxPQUFPLENBQUM7Q0FDakIsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLGVBQWUsR0FBRyxvQkFBb0IsQ0FBQyxDQUFDO0FBRWxFLGVBQU8sTUFBTSxlQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQTZDM0IsQ0FBQztBQUVGLGVBQU8sTUFBTSxpQkFBaUIsRUFBRSxrQkFBa0IsQ0FBQyxTQUFTLENBK0kzRCxDQUFDO0FBRUYsd0JBQWdCLG1CQUFtQixJQUFJLFNBQVMsQ0FFL0M7QUFFRCx3QkFBZ0IsbUJBQW1CLElBQUksU0FBUyxDQUUvQztBQUVELHdCQUFnQixXQUFXLElBQUksT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBS3pEIn0=
@@ -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":"AAAA,OAAO,EACL,KAAK,kBAAkB,EACvB,WAAW,EASZ,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,wBAAwB,CAAC;AAIlF,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,oBAAoB,yBAAyB;CAC9C;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,6DAA6D;IAC7D,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,4EAA4E;IAC5E,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,gCAAgC;IAChC,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAChC,gEAAgE;IAChE,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAC5C,mEAAmE;IACnE,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAC9C,uEAAuE;IACvE,2BAA2B,EAAE,MAAM,CAAC;IACpC,kDAAkD;IAClD,gBAAgB,EAAE,WAAW,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;IAC9C,6DAA6D;IAC7D,UAAU,EAAE,EAAE,GAAG,SAAS,CAAC;IAC3B,iDAAiD;IACjD,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,uEAAuE;IACvE,aAAa,EAAE,MAAM,CAAC;IACtB,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,+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;IAC3B,+DAA+D;IAC/D,MAAM,EAAE,OAAO,CAAC;CACjB,GAAG,IAAI,CAAC,eAAe,EAAE,eAAe,GAAG,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6C3B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,CAAC,SAAS,CA+I3D,CAAC;AAEF,wBAAgB,mBAAmB,IAAI,SAAS,CAE/C;AAED,wBAAgB,mBAAmB,IAAI,SAAS,CAE/C;AAED,wBAAgB,WAAW,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAKzD"}
package/dest/config.js CHANGED
@@ -1,8 +1,9 @@
1
- import { booleanConfigHelper, getConfigFromMappings, getDefaultConfig, numberConfigHelper, optionalNumberConfigHelper } from '@aztec/foundation/config';
2
- import { Fr } from '@aztec/foundation/fields';
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 { protocolContractTreeRoot } from '@aztec/protocol-contracts';
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',
@@ -11,52 +12,59 @@ 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
- export const BotConfigSchema = z.object({
18
+ export const BotConfigSchema = zodFor()(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
+ minFeePadding: 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 = {
53
61
  nodeUrl: {
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
+ minFeePadding: {
127
+ env: 'BOT_MIN_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,49 @@
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;
35
- /**
36
- * Checks if the token contract is deployed and deploys it if necessary.
37
- * @param wallet - Wallet to deploy the token contract from.
38
- * @returns The TokenContract instance.
39
- */
40
39
  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
- */
40
+ private setupTokenContract;
41
+ private setupAmmContract;
42
+ private fundAmm;
43
+ private registerOrDeployContract;
45
44
  private mintTokens;
45
+ private getOrCreateBridgeClaim;
46
46
  private bridgeL1FeeJuice;
47
- private advanceL2Block;
48
- private tryFlushTxs;
47
+ private withNoMinTxsPerBlock;
49
48
  }
50
- //# sourceMappingURL=factory.d.ts.map
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBb0J6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRy9ELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVqRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFdkQsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUEyQixNQUFNLGFBQWEsQ0FBQztBQUN0RSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQU1qRCxxQkFBYSxVQUFVO0lBSW5CLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTTtJQUN2QixPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU07SUFDdkIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0lBQ3RCLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUztJQUMxQixPQUFPLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztJQVBsQyxPQUFPLENBQUMsR0FBRyxDQUF1QjtJQUVsQyxZQUNtQixNQUFNLEVBQUUsU0FBUyxFQUNqQixNQUFNLEVBQUUsVUFBVSxFQUNsQixLQUFLLEVBQUUsUUFBUSxFQUNmLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLGNBQWMsQ0FBQyw0QkFBZ0IsRUFDOUM7SUFFSjs7O09BR0c7SUFDVSxLQUFLLElBQUksT0FBTyxDQUFDO1FBQzVCLE1BQU0sRUFBRSxVQUFVLENBQUM7UUFDbkIscUJBQXFCLEVBQUUsWUFBWSxDQUFDO1FBQ3BDLEtBQUssRUFBRSxhQUFhLEdBQUcsb0JBQW9CLENBQUM7UUFDNUMsSUFBSSxFQUFFLFNBQVMsQ0FBQztRQUNoQixTQUFTLEVBQUUsWUFBWSxDQUFDO0tBQ3pCLENBQUMsQ0FNRDtJQUVZLFFBQVEsSUFBSSxPQUFPLENBQUM7UUFDL0IsTUFBTSxFQUFFLFVBQVUsQ0FBQztRQUNuQixxQkFBcUIsRUFBRSxZQUFZLENBQUM7UUFDcEMsR0FBRyxFQUFFLFdBQVcsQ0FBQztRQUNqQixNQUFNLEVBQUUsYUFBYSxDQUFDO1FBQ3RCLE1BQU0sRUFBRSxhQUFhLENBQUM7UUFDdEIsSUFBSSxFQUFFLFNBQVMsQ0FBQztLQUNqQixDQUFDLENBc0JEO1lBTWEsWUFBWTtZQVdaLDBCQUEwQjtZQThDMUIsZ0JBQWdCO1lBZ0JoQixVQUFVO1lBb0RWLGtCQUFrQjtZQWFsQixnQkFBZ0I7WUFzQmhCLE9BQU87WUE2RVAsd0JBQXdCO1lBMEJ4QixVQUFVO1lBMENWLHNCQUFzQjtZQTRCdEIsZ0JBQWdCO1lBZ0NoQixvQkFBb0I7Q0FlbkMifQ==
@@ -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;AAoBzD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/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;YA8C1B,gBAAgB;YAgBhB,UAAU;YAoDV,kBAAkB;YAalB,gBAAgB;YAsBhB,OAAO;YA6EP,wBAAwB;YA0BxB,UAAU;YA0CV,sBAAsB;YA4BtB,gBAAgB;YAgChB,oBAAoB;CAenC"}