@aztec/end-to-end 0.0.0-test.1 → 0.0.1-commit.21caa21

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 (174) hide show
  1. package/dest/bench/client_flows/benchmark.d.ts +61 -0
  2. package/dest/bench/client_flows/benchmark.d.ts.map +1 -0
  3. package/dest/bench/client_flows/benchmark.js +261 -0
  4. package/dest/bench/client_flows/client_flows_benchmark.d.ts +80 -0
  5. package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -0
  6. package/dest/bench/client_flows/client_flows_benchmark.js +334 -0
  7. package/dest/bench/client_flows/config.d.ts +14 -0
  8. package/dest/bench/client_flows/config.d.ts.map +1 -0
  9. package/dest/bench/client_flows/config.js +106 -0
  10. package/dest/bench/client_flows/data_extractor.d.ts +2 -0
  11. package/dest/bench/client_flows/data_extractor.d.ts.map +1 -0
  12. package/dest/bench/client_flows/data_extractor.js +77 -0
  13. package/dest/bench/utils.d.ts +12 -38
  14. package/dest/bench/utils.d.ts.map +1 -1
  15. package/dest/bench/utils.js +26 -66
  16. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +21 -13
  17. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
  18. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +85 -57
  19. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +19 -25
  20. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
  21. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +50 -70
  22. package/dest/e2e_deploy_contract/deploy_test.d.ts +16 -8
  23. package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
  24. package/dest/e2e_deploy_contract/deploy_test.js +13 -19
  25. package/dest/e2e_epochs/epochs_test.d.ts +59 -18
  26. package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
  27. package/dest/e2e_epochs/epochs_test.js +226 -44
  28. package/dest/e2e_fees/bridging_race.notest.d.ts +2 -0
  29. package/dest/e2e_fees/bridging_race.notest.d.ts.map +1 -0
  30. package/dest/e2e_fees/bridging_race.notest.js +63 -0
  31. package/dest/e2e_fees/fees_test.d.ts +21 -10
  32. package/dest/e2e_fees/fees_test.d.ts.map +1 -1
  33. package/dest/e2e_fees/fees_test.js +103 -109
  34. package/dest/e2e_l1_publisher/write_json.d.ts +10 -0
  35. package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -0
  36. package/dest/e2e_l1_publisher/write_json.js +58 -0
  37. package/dest/e2e_multi_validator/utils.d.ts +12 -0
  38. package/dest/e2e_multi_validator/utils.d.ts.map +1 -0
  39. package/dest/e2e_multi_validator/utils.js +214 -0
  40. package/dest/e2e_nested_contract/nested_contract_test.d.ts +10 -7
  41. package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
  42. package/dest/e2e_nested_contract/nested_contract_test.js +24 -20
  43. package/dest/e2e_p2p/inactivity_slash_test.d.ts +31 -0
  44. package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -0
  45. package/dest/e2e_p2p/inactivity_slash_test.js +139 -0
  46. package/dest/e2e_p2p/p2p_network.d.ts +275 -23
  47. package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
  48. package/dest/e2e_p2p/p2p_network.js +184 -131
  49. package/dest/e2e_p2p/shared.d.ts +43 -7
  50. package/dest/e2e_p2p/shared.d.ts.map +1 -1
  51. package/dest/e2e_p2p/shared.js +164 -19
  52. package/dest/e2e_token_contract/token_contract_test.d.ts +12 -6
  53. package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
  54. package/dest/e2e_token_contract/token_contract_test.js +50 -26
  55. package/dest/fixtures/e2e_prover_test.d.ts +63 -0
  56. package/dest/fixtures/e2e_prover_test.d.ts.map +1 -0
  57. package/dest/{e2e_prover → fixtures}/e2e_prover_test.js +104 -105
  58. package/dest/fixtures/fixtures.d.ts +6 -7
  59. package/dest/fixtures/fixtures.d.ts.map +1 -1
  60. package/dest/fixtures/fixtures.js +4 -3
  61. package/dest/fixtures/get_acvm_config.d.ts +2 -2
  62. package/dest/fixtures/get_acvm_config.d.ts.map +1 -1
  63. package/dest/fixtures/get_acvm_config.js +2 -14
  64. package/dest/fixtures/get_bb_config.d.ts +2 -2
  65. package/dest/fixtures/get_bb_config.d.ts.map +1 -1
  66. package/dest/fixtures/get_bb_config.js +10 -17
  67. package/dest/fixtures/index.d.ts +1 -1
  68. package/dest/fixtures/l1_to_l2_messaging.d.ts +9 -6
  69. package/dest/fixtures/l1_to_l2_messaging.d.ts.map +1 -1
  70. package/dest/fixtures/l1_to_l2_messaging.js +44 -18
  71. package/dest/fixtures/logging.d.ts +1 -1
  72. package/dest/fixtures/setup_l1_contracts.d.ts +476 -5
  73. package/dest/fixtures/setup_l1_contracts.d.ts.map +1 -1
  74. package/dest/fixtures/setup_l1_contracts.js +4 -4
  75. package/dest/fixtures/setup_p2p_test.d.ts +15 -14
  76. package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
  77. package/dest/fixtures/setup_p2p_test.js +81 -21
  78. package/dest/fixtures/snapshot_manager.d.ts +17 -9
  79. package/dest/fixtures/snapshot_manager.d.ts.map +1 -1
  80. package/dest/fixtures/snapshot_manager.js +147 -121
  81. package/dest/fixtures/token_utils.d.ts +10 -4
  82. package/dest/fixtures/token_utils.d.ts.map +1 -1
  83. package/dest/fixtures/token_utils.js +28 -12
  84. package/dest/fixtures/utils.d.ts +524 -40
  85. package/dest/fixtures/utils.d.ts.map +1 -1
  86. package/dest/fixtures/utils.js +464 -369
  87. package/dest/fixtures/web3signer.d.ts +5 -0
  88. package/dest/fixtures/web3signer.d.ts.map +1 -0
  89. package/dest/fixtures/web3signer.js +53 -0
  90. package/dest/fixtures/with_telemetry_utils.d.ts +1 -1
  91. package/dest/index.d.ts +1 -1
  92. package/dest/quality_of_service/alert_checker.d.ts +2 -2
  93. package/dest/quality_of_service/alert_checker.d.ts.map +1 -1
  94. package/dest/shared/cross_chain_test_harness.d.ts +39 -34
  95. package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
  96. package/dest/shared/cross_chain_test_harness.js +104 -50
  97. package/dest/shared/gas_portal_test_harness.d.ts +29 -31
  98. package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
  99. package/dest/shared/gas_portal_test_harness.js +51 -30
  100. package/dest/shared/index.d.ts +1 -1
  101. package/dest/shared/jest_setup.d.ts +1 -1
  102. package/dest/shared/jest_setup.js +1 -1
  103. package/dest/shared/submit-transactions.d.ts +6 -4
  104. package/dest/shared/submit-transactions.d.ts.map +1 -1
  105. package/dest/shared/submit-transactions.js +8 -7
  106. package/dest/shared/uniswap_l1_l2.d.ts +14 -12
  107. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  108. package/dest/shared/uniswap_l1_l2.js +146 -116
  109. package/dest/simulators/index.d.ts +1 -1
  110. package/dest/simulators/lending_simulator.d.ts +7 -11
  111. package/dest/simulators/lending_simulator.d.ts.map +1 -1
  112. package/dest/simulators/lending_simulator.js +15 -16
  113. package/dest/simulators/token_simulator.d.ts +6 -3
  114. package/dest/simulators/token_simulator.d.ts.map +1 -1
  115. package/dest/simulators/token_simulator.js +16 -13
  116. package/dest/spartan/setup_test_wallets.d.ts +26 -11
  117. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  118. package/dest/spartan/setup_test_wallets.js +201 -58
  119. package/dest/spartan/utils.d.ts +116 -313
  120. package/dest/spartan/utils.d.ts.map +1 -1
  121. package/dest/spartan/utils.js +434 -130
  122. package/package.json +65 -58
  123. package/src/bench/client_flows/benchmark.ts +341 -0
  124. package/src/bench/client_flows/client_flows_benchmark.ts +447 -0
  125. package/src/bench/client_flows/config.ts +61 -0
  126. package/src/bench/client_flows/data_extractor.ts +89 -0
  127. package/src/bench/utils.ts +22 -76
  128. package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +80 -77
  129. package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +65 -106
  130. package/src/e2e_deploy_contract/deploy_test.ts +24 -39
  131. package/src/e2e_epochs/epochs_test.ts +276 -55
  132. package/src/e2e_fees/bridging_race.notest.ts +80 -0
  133. package/src/e2e_fees/fees_test.ts +142 -138
  134. package/src/e2e_l1_publisher/write_json.ts +77 -0
  135. package/src/e2e_multi_validator/utils.ts +258 -0
  136. package/src/e2e_nested_contract/nested_contract_test.ts +29 -19
  137. package/src/e2e_p2p/inactivity_slash_test.ts +182 -0
  138. package/src/e2e_p2p/p2p_network.ts +279 -169
  139. package/src/e2e_p2p/shared.ts +247 -29
  140. package/src/e2e_token_contract/token_contract_test.ts +43 -39
  141. package/src/fixtures/dumps/epoch_proof_result.json +1 -1
  142. package/src/{e2e_prover → fixtures}/e2e_prover_test.ts +107 -152
  143. package/src/fixtures/fixtures.ts +4 -3
  144. package/src/fixtures/get_acvm_config.ts +3 -11
  145. package/src/fixtures/get_bb_config.ts +18 -13
  146. package/src/fixtures/l1_to_l2_messaging.ts +53 -23
  147. package/src/fixtures/setup_l1_contracts.ts +6 -7
  148. package/src/fixtures/setup_p2p_test.ts +126 -38
  149. package/src/fixtures/snapshot_manager.ts +187 -139
  150. package/src/fixtures/token_utils.ts +32 -15
  151. package/src/fixtures/utils.ts +580 -434
  152. package/src/fixtures/web3signer.ts +63 -0
  153. package/src/guides/up_quick_start.sh +7 -15
  154. package/src/quality_of_service/alert_checker.ts +1 -1
  155. package/src/shared/cross_chain_test_harness.ts +108 -79
  156. package/src/shared/gas_portal_test_harness.ts +59 -50
  157. package/src/shared/jest_setup.ts +1 -1
  158. package/src/shared/submit-transactions.ts +12 -8
  159. package/src/shared/uniswap_l1_l2.ts +181 -184
  160. package/src/simulators/lending_simulator.ts +14 -15
  161. package/src/simulators/token_simulator.ts +21 -13
  162. package/src/spartan/DEVELOP.md +121 -0
  163. package/src/spartan/setup_test_wallets.ts +251 -93
  164. package/src/spartan/utils.ts +490 -130
  165. package/dest/e2e_prover/e2e_prover_test.d.ts +0 -56
  166. package/dest/e2e_prover/e2e_prover_test.d.ts.map +0 -1
  167. package/dest/sample-dapp/connect.js +0 -12
  168. package/dest/sample-dapp/contracts.js +0 -10
  169. package/dest/sample-dapp/deploy.js +0 -35
  170. package/dest/sample-dapp/index.js +0 -98
  171. package/src/sample-dapp/connect.mjs +0 -16
  172. package/src/sample-dapp/contracts.mjs +0 -14
  173. package/src/sample-dapp/deploy.mjs +0 -40
  174. package/src/sample-dapp/index.mjs +0 -128
@@ -1,40 +1,490 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
1
  import { type InitialAccountData } from '@aztec/accounts/testing';
4
2
  import { type AztecNodeConfig } from '@aztec/aztec-node';
5
- import { type AccountWalletWithSecretKey, AnvilTestWatcher, type AztecAddress, type AztecNode, CheatCodes, type ContractMethod, type DeployL1ContractsReturnType, type Logger, type PXE, type Wallet } from '@aztec/aztec.js';
6
- import type { BBNativePrivateKernelProver } from '@aztec/bb-prover';
3
+ import { AztecAddress } from '@aztec/aztec.js/addresses';
4
+ import { type ContractMethod } from '@aztec/aztec.js/contracts';
5
+ import { type Logger } from '@aztec/aztec.js/log';
6
+ import { type AztecNode } from '@aztec/aztec.js/node';
7
+ import type { Wallet } from '@aztec/aztec.js/wallet';
8
+ import { AnvilTestWatcher, CheatCodes } from '@aztec/aztec/testing';
7
9
  import { type BlobSinkServer } from '@aztec/blob-sink/server';
8
- import { type DeployL1ContractsArgs, ForwarderContract } from '@aztec/ethereum';
9
- import { startAnvil } from '@aztec/ethereum/test';
10
- import { EthAddress } from '@aztec/foundation/eth-address';
10
+ import { type DeployL1ContractsArgs, type DeployL1ContractsReturnType, type Operator } from '@aztec/ethereum';
11
+ import { EthCheatCodes, startAnvil } from '@aztec/ethereum/test';
12
+ import { SecretValue } from '@aztec/foundation/config';
11
13
  import { Fr } from '@aztec/foundation/fields';
12
14
  import { TestDateProvider } from '@aztec/foundation/timer';
13
- import { type ProverNode } from '@aztec/prover-node';
14
- import { type PXEService, type PXEServiceConfig } from '@aztec/pxe/server';
15
+ import type { DataStoreConfig } from '@aztec/kv-store/config';
16
+ import { MockGossipSubNetwork } from '@aztec/p2p/test-helpers';
17
+ import { type ProverNode, type ProverNodeConfig, type ProverNodeDeps } from '@aztec/prover-node';
18
+ import { type PXEConfig } from '@aztec/pxe/server';
15
19
  import type { SequencerClient } from '@aztec/sequencer-client';
20
+ import { type ContractInstanceWithAddress } from '@aztec/stdlib/contract';
21
+ import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
16
22
  import type { PublicDataTreeLeaf } from '@aztec/stdlib/trees';
17
23
  import { type TelemetryClient, type TelemetryClientConfig } from '@aztec/telemetry-client';
18
- import { type Chain, type HDAccount, type Hex, type PrivateKeyAccount } from 'viem';
24
+ import { TestWallet } from '@aztec/test-wallet/server';
25
+ import { type Chain } from 'viem';
19
26
  export { deployAndInitializeTokenAndBridgeContracts } from '../shared/cross_chain_test_harness.js';
20
27
  export { startAnvil };
21
- export declare const getPrivateKeyFromIndex: (index: number) => Buffer | null;
22
- export declare const setupL1Contracts: (l1RpcUrls: string[], account: HDAccount | PrivateKeyAccount, logger: Logger, args?: Partial<DeployL1ContractsArgs>, chain?: Chain) => Promise<DeployL1ContractsReturnType>;
28
+ export declare const getPrivateKeyFromIndex: (index: number) => Buffer<ArrayBufferLike> | null;
29
+ export declare const setupL1Contracts: (l1RpcUrls: string[], account: {
30
+ address: `0x${string}`;
31
+ nonceManager?: import("viem").NonceManager | undefined;
32
+ sign: (parameters: {
33
+ hash: `0x${string}`;
34
+ }) => Promise<`0x${string}`>;
35
+ signAuthorization?: ((parameters: import("viem").AuthorizationRequest) => Promise<import("viem/accounts").SignAuthorizationReturnType>) | undefined;
36
+ signMessage: ({ message }: {
37
+ message: import("viem").SignableMessage;
38
+ }) => Promise<`0x${string}`>;
39
+ signTransaction: <serializer extends import("viem").SerializeTransactionFn<import("viem").TransactionSerializable> = import("viem").SerializeTransactionFn<import("viem").TransactionSerializable>, transaction extends Parameters<serializer>[0] = Parameters<serializer>[0]>(transaction: transaction, options?: {
40
+ serializer?: serializer | undefined;
41
+ } | undefined) => Promise<`0x${string}`>;
42
+ signTypedData: <const typedData extends Record<string, unknown> | {
43
+ [x: string]: readonly import("viem").TypedDataParameter[];
44
+ [x: `address[${string}]`]: undefined;
45
+ [x: `bool[${string}]`]: undefined;
46
+ [x: `bytes10[${string}]`]: undefined;
47
+ [x: `bytes11[${string}]`]: undefined;
48
+ [x: `bytes12[${string}]`]: undefined;
49
+ [x: `bytes13[${string}]`]: undefined;
50
+ [x: `bytes14[${string}]`]: undefined;
51
+ [x: `bytes15[${string}]`]: undefined;
52
+ [x: `bytes16[${string}]`]: undefined;
53
+ [x: `bytes17[${string}]`]: undefined;
54
+ [x: `bytes18[${string}]`]: undefined;
55
+ [x: `bytes19[${string}]`]: undefined;
56
+ [x: `bytes1[${string}]`]: undefined;
57
+ [x: `bytes20[${string}]`]: undefined;
58
+ [x: `bytes21[${string}]`]: undefined;
59
+ [x: `bytes22[${string}]`]: undefined;
60
+ [x: `bytes23[${string}]`]: undefined;
61
+ [x: `bytes24[${string}]`]: undefined;
62
+ [x: `bytes25[${string}]`]: undefined;
63
+ [x: `bytes26[${string}]`]: undefined;
64
+ [x: `bytes27[${string}]`]: undefined;
65
+ [x: `bytes28[${string}]`]: undefined;
66
+ [x: `bytes29[${string}]`]: undefined;
67
+ [x: `bytes2[${string}]`]: undefined;
68
+ [x: `bytes30[${string}]`]: undefined;
69
+ [x: `bytes31[${string}]`]: undefined;
70
+ [x: `bytes32[${string}]`]: undefined;
71
+ [x: `bytes3[${string}]`]: undefined;
72
+ [x: `bytes4[${string}]`]: undefined;
73
+ [x: `bytes5[${string}]`]: undefined;
74
+ [x: `bytes6[${string}]`]: undefined;
75
+ [x: `bytes7[${string}]`]: undefined;
76
+ [x: `bytes8[${string}]`]: undefined;
77
+ [x: `bytes9[${string}]`]: undefined;
78
+ [x: `bytes[${string}]`]: undefined;
79
+ [x: `function[${string}]`]: undefined;
80
+ [x: `int104[${string}]`]: undefined;
81
+ [x: `int112[${string}]`]: undefined;
82
+ [x: `int120[${string}]`]: undefined;
83
+ [x: `int128[${string}]`]: undefined;
84
+ [x: `int136[${string}]`]: undefined;
85
+ [x: `int144[${string}]`]: undefined;
86
+ [x: `int152[${string}]`]: undefined;
87
+ [x: `int160[${string}]`]: undefined;
88
+ [x: `int168[${string}]`]: undefined;
89
+ [x: `int16[${string}]`]: undefined;
90
+ [x: `int176[${string}]`]: undefined;
91
+ [x: `int184[${string}]`]: undefined;
92
+ [x: `int192[${string}]`]: undefined;
93
+ [x: `int200[${string}]`]: undefined;
94
+ [x: `int208[${string}]`]: undefined;
95
+ [x: `int216[${string}]`]: undefined;
96
+ [x: `int224[${string}]`]: undefined;
97
+ [x: `int232[${string}]`]: undefined;
98
+ [x: `int240[${string}]`]: undefined;
99
+ [x: `int248[${string}]`]: undefined;
100
+ [x: `int24[${string}]`]: undefined;
101
+ [x: `int256[${string}]`]: undefined;
102
+ [x: `int32[${string}]`]: undefined;
103
+ [x: `int40[${string}]`]: undefined;
104
+ [x: `int48[${string}]`]: undefined;
105
+ [x: `int56[${string}]`]: undefined;
106
+ [x: `int64[${string}]`]: undefined;
107
+ [x: `int72[${string}]`]: undefined;
108
+ [x: `int80[${string}]`]: undefined;
109
+ [x: `int88[${string}]`]: undefined;
110
+ [x: `int8[${string}]`]: undefined;
111
+ [x: `int96[${string}]`]: undefined;
112
+ [x: `int[${string}]`]: undefined;
113
+ [x: `string[${string}]`]: undefined;
114
+ [x: `uint104[${string}]`]: undefined;
115
+ [x: `uint112[${string}]`]: undefined;
116
+ [x: `uint120[${string}]`]: undefined;
117
+ [x: `uint128[${string}]`]: undefined;
118
+ [x: `uint136[${string}]`]: undefined;
119
+ [x: `uint144[${string}]`]: undefined;
120
+ [x: `uint152[${string}]`]: undefined;
121
+ [x: `uint160[${string}]`]: undefined;
122
+ [x: `uint168[${string}]`]: undefined;
123
+ [x: `uint16[${string}]`]: undefined;
124
+ [x: `uint176[${string}]`]: undefined;
125
+ [x: `uint184[${string}]`]: undefined;
126
+ [x: `uint192[${string}]`]: undefined;
127
+ [x: `uint200[${string}]`]: undefined;
128
+ [x: `uint208[${string}]`]: undefined;
129
+ [x: `uint216[${string}]`]: undefined;
130
+ [x: `uint224[${string}]`]: undefined;
131
+ [x: `uint232[${string}]`]: undefined;
132
+ [x: `uint240[${string}]`]: undefined;
133
+ [x: `uint248[${string}]`]: undefined;
134
+ [x: `uint24[${string}]`]: undefined;
135
+ [x: `uint256[${string}]`]: undefined;
136
+ [x: `uint32[${string}]`]: undefined;
137
+ [x: `uint40[${string}]`]: undefined;
138
+ [x: `uint48[${string}]`]: undefined;
139
+ [x: `uint56[${string}]`]: undefined;
140
+ [x: `uint64[${string}]`]: undefined;
141
+ [x: `uint72[${string}]`]: undefined;
142
+ [x: `uint80[${string}]`]: undefined;
143
+ [x: `uint88[${string}]`]: undefined;
144
+ [x: `uint8[${string}]`]: undefined;
145
+ [x: `uint96[${string}]`]: undefined;
146
+ [x: `uint[${string}]`]: undefined;
147
+ address?: undefined;
148
+ bool?: undefined;
149
+ bytes?: undefined;
150
+ bytes1?: undefined;
151
+ bytes10?: undefined;
152
+ bytes11?: undefined;
153
+ bytes12?: undefined;
154
+ bytes13?: undefined;
155
+ bytes14?: undefined;
156
+ bytes15?: undefined;
157
+ bytes16?: undefined;
158
+ bytes17?: undefined;
159
+ bytes18?: undefined;
160
+ bytes19?: undefined;
161
+ bytes2?: undefined;
162
+ bytes20?: undefined;
163
+ bytes21?: undefined;
164
+ bytes22?: undefined;
165
+ bytes23?: undefined;
166
+ bytes24?: undefined;
167
+ bytes25?: undefined;
168
+ bytes26?: undefined;
169
+ bytes27?: undefined;
170
+ bytes28?: undefined;
171
+ bytes29?: undefined;
172
+ bytes3?: undefined;
173
+ bytes30?: undefined;
174
+ bytes31?: undefined;
175
+ bytes32?: undefined;
176
+ bytes4?: undefined;
177
+ bytes5?: undefined;
178
+ bytes6?: undefined;
179
+ bytes7?: undefined;
180
+ bytes8?: undefined;
181
+ bytes9?: undefined;
182
+ int104?: undefined;
183
+ int112?: undefined;
184
+ int120?: undefined;
185
+ int128?: undefined;
186
+ int136?: undefined;
187
+ int144?: undefined;
188
+ int152?: undefined;
189
+ int16?: undefined;
190
+ int160?: undefined;
191
+ int168?: undefined;
192
+ int176?: undefined;
193
+ int184?: undefined;
194
+ int192?: undefined;
195
+ int200?: undefined;
196
+ int208?: undefined;
197
+ int216?: undefined;
198
+ int224?: undefined;
199
+ int232?: undefined;
200
+ int24?: undefined;
201
+ int240?: undefined;
202
+ int248?: undefined;
203
+ int256?: undefined;
204
+ int32?: undefined;
205
+ int40?: undefined;
206
+ int48?: undefined;
207
+ int56?: undefined;
208
+ int64?: undefined;
209
+ int72?: undefined;
210
+ int8?: undefined;
211
+ int80?: undefined;
212
+ int88?: undefined;
213
+ int96?: undefined;
214
+ string?: undefined;
215
+ uint104?: undefined;
216
+ uint112?: undefined;
217
+ uint120?: undefined;
218
+ uint128?: undefined;
219
+ uint136?: undefined;
220
+ uint144?: undefined;
221
+ uint152?: undefined;
222
+ uint16?: undefined;
223
+ uint160?: undefined;
224
+ uint168?: undefined;
225
+ uint176?: undefined;
226
+ uint184?: undefined;
227
+ uint192?: undefined;
228
+ uint200?: undefined;
229
+ uint208?: undefined;
230
+ uint216?: undefined;
231
+ uint224?: undefined;
232
+ uint232?: undefined;
233
+ uint24?: undefined;
234
+ uint240?: undefined;
235
+ uint248?: undefined;
236
+ uint256?: undefined;
237
+ uint32?: undefined;
238
+ uint40?: undefined;
239
+ uint48?: undefined;
240
+ uint56?: undefined;
241
+ uint64?: undefined;
242
+ uint72?: undefined;
243
+ uint8?: undefined;
244
+ uint80?: undefined;
245
+ uint88?: undefined;
246
+ uint96?: undefined;
247
+ }, primaryType extends "EIP712Domain" | keyof typedData = keyof typedData>(parameters: import("viem").TypedDataDefinition<typedData, primaryType>) => Promise<`0x${string}`>;
248
+ publicKey: `0x${string}`;
249
+ source: "hd";
250
+ type: "local";
251
+ getHdKey: () => import("viem").HDKey;
252
+ } | {
253
+ address: `0x${string}`;
254
+ nonceManager?: import("viem").NonceManager | undefined;
255
+ sign: (parameters: {
256
+ hash: `0x${string}`;
257
+ }) => Promise<`0x${string}`>;
258
+ signAuthorization: (parameters: import("viem").AuthorizationRequest) => Promise<import("viem/accounts").SignAuthorizationReturnType>;
259
+ signMessage: ({ message }: {
260
+ message: import("viem").SignableMessage;
261
+ }) => Promise<`0x${string}`>;
262
+ signTransaction: <serializer extends import("viem").SerializeTransactionFn<import("viem").TransactionSerializable> = import("viem").SerializeTransactionFn<import("viem").TransactionSerializable>, transaction extends Parameters<serializer>[0] = Parameters<serializer>[0]>(transaction: transaction, options?: {
263
+ serializer?: serializer | undefined;
264
+ } | undefined) => Promise<`0x${string}`>;
265
+ signTypedData: <const typedData extends Record<string, unknown> | {
266
+ [x: string]: readonly import("viem").TypedDataParameter[];
267
+ [x: `address[${string}]`]: undefined;
268
+ [x: `bool[${string}]`]: undefined;
269
+ [x: `bytes10[${string}]`]: undefined;
270
+ [x: `bytes11[${string}]`]: undefined;
271
+ [x: `bytes12[${string}]`]: undefined;
272
+ [x: `bytes13[${string}]`]: undefined;
273
+ [x: `bytes14[${string}]`]: undefined;
274
+ [x: `bytes15[${string}]`]: undefined;
275
+ [x: `bytes16[${string}]`]: undefined;
276
+ [x: `bytes17[${string}]`]: undefined;
277
+ [x: `bytes18[${string}]`]: undefined;
278
+ [x: `bytes19[${string}]`]: undefined;
279
+ [x: `bytes1[${string}]`]: undefined;
280
+ [x: `bytes20[${string}]`]: undefined;
281
+ [x: `bytes21[${string}]`]: undefined;
282
+ [x: `bytes22[${string}]`]: undefined;
283
+ [x: `bytes23[${string}]`]: undefined;
284
+ [x: `bytes24[${string}]`]: undefined;
285
+ [x: `bytes25[${string}]`]: undefined;
286
+ [x: `bytes26[${string}]`]: undefined;
287
+ [x: `bytes27[${string}]`]: undefined;
288
+ [x: `bytes28[${string}]`]: undefined;
289
+ [x: `bytes29[${string}]`]: undefined;
290
+ [x: `bytes2[${string}]`]: undefined;
291
+ [x: `bytes30[${string}]`]: undefined;
292
+ [x: `bytes31[${string}]`]: undefined;
293
+ [x: `bytes32[${string}]`]: undefined;
294
+ [x: `bytes3[${string}]`]: undefined;
295
+ [x: `bytes4[${string}]`]: undefined;
296
+ [x: `bytes5[${string}]`]: undefined;
297
+ [x: `bytes6[${string}]`]: undefined;
298
+ [x: `bytes7[${string}]`]: undefined;
299
+ [x: `bytes8[${string}]`]: undefined;
300
+ [x: `bytes9[${string}]`]: undefined;
301
+ [x: `bytes[${string}]`]: undefined;
302
+ [x: `function[${string}]`]: undefined;
303
+ [x: `int104[${string}]`]: undefined;
304
+ [x: `int112[${string}]`]: undefined;
305
+ [x: `int120[${string}]`]: undefined;
306
+ [x: `int128[${string}]`]: undefined;
307
+ [x: `int136[${string}]`]: undefined;
308
+ [x: `int144[${string}]`]: undefined;
309
+ [x: `int152[${string}]`]: undefined;
310
+ [x: `int160[${string}]`]: undefined;
311
+ [x: `int168[${string}]`]: undefined;
312
+ [x: `int16[${string}]`]: undefined;
313
+ [x: `int176[${string}]`]: undefined;
314
+ [x: `int184[${string}]`]: undefined;
315
+ [x: `int192[${string}]`]: undefined;
316
+ [x: `int200[${string}]`]: undefined;
317
+ [x: `int208[${string}]`]: undefined;
318
+ [x: `int216[${string}]`]: undefined;
319
+ [x: `int224[${string}]`]: undefined;
320
+ [x: `int232[${string}]`]: undefined;
321
+ [x: `int240[${string}]`]: undefined;
322
+ [x: `int248[${string}]`]: undefined;
323
+ [x: `int24[${string}]`]: undefined;
324
+ [x: `int256[${string}]`]: undefined;
325
+ [x: `int32[${string}]`]: undefined;
326
+ [x: `int40[${string}]`]: undefined;
327
+ [x: `int48[${string}]`]: undefined;
328
+ [x: `int56[${string}]`]: undefined;
329
+ [x: `int64[${string}]`]: undefined;
330
+ [x: `int72[${string}]`]: undefined;
331
+ [x: `int80[${string}]`]: undefined;
332
+ [x: `int88[${string}]`]: undefined;
333
+ [x: `int8[${string}]`]: undefined;
334
+ [x: `int96[${string}]`]: undefined;
335
+ [x: `int[${string}]`]: undefined;
336
+ [x: `string[${string}]`]: undefined;
337
+ [x: `uint104[${string}]`]: undefined;
338
+ [x: `uint112[${string}]`]: undefined;
339
+ [x: `uint120[${string}]`]: undefined;
340
+ [x: `uint128[${string}]`]: undefined;
341
+ [x: `uint136[${string}]`]: undefined;
342
+ [x: `uint144[${string}]`]: undefined;
343
+ [x: `uint152[${string}]`]: undefined;
344
+ [x: `uint160[${string}]`]: undefined;
345
+ [x: `uint168[${string}]`]: undefined;
346
+ [x: `uint16[${string}]`]: undefined;
347
+ [x: `uint176[${string}]`]: undefined;
348
+ [x: `uint184[${string}]`]: undefined;
349
+ [x: `uint192[${string}]`]: undefined;
350
+ [x: `uint200[${string}]`]: undefined;
351
+ [x: `uint208[${string}]`]: undefined;
352
+ [x: `uint216[${string}]`]: undefined;
353
+ [x: `uint224[${string}]`]: undefined;
354
+ [x: `uint232[${string}]`]: undefined;
355
+ [x: `uint240[${string}]`]: undefined;
356
+ [x: `uint248[${string}]`]: undefined;
357
+ [x: `uint24[${string}]`]: undefined;
358
+ [x: `uint256[${string}]`]: undefined;
359
+ [x: `uint32[${string}]`]: undefined;
360
+ [x: `uint40[${string}]`]: undefined;
361
+ [x: `uint48[${string}]`]: undefined;
362
+ [x: `uint56[${string}]`]: undefined;
363
+ [x: `uint64[${string}]`]: undefined;
364
+ [x: `uint72[${string}]`]: undefined;
365
+ [x: `uint80[${string}]`]: undefined;
366
+ [x: `uint88[${string}]`]: undefined;
367
+ [x: `uint8[${string}]`]: undefined;
368
+ [x: `uint96[${string}]`]: undefined;
369
+ [x: `uint[${string}]`]: undefined;
370
+ address?: undefined;
371
+ bool?: undefined;
372
+ bytes?: undefined;
373
+ bytes1?: undefined;
374
+ bytes10?: undefined;
375
+ bytes11?: undefined;
376
+ bytes12?: undefined;
377
+ bytes13?: undefined;
378
+ bytes14?: undefined;
379
+ bytes15?: undefined;
380
+ bytes16?: undefined;
381
+ bytes17?: undefined;
382
+ bytes18?: undefined;
383
+ bytes19?: undefined;
384
+ bytes2?: undefined;
385
+ bytes20?: undefined;
386
+ bytes21?: undefined;
387
+ bytes22?: undefined;
388
+ bytes23?: undefined;
389
+ bytes24?: undefined;
390
+ bytes25?: undefined;
391
+ bytes26?: undefined;
392
+ bytes27?: undefined;
393
+ bytes28?: undefined;
394
+ bytes29?: undefined;
395
+ bytes3?: undefined;
396
+ bytes30?: undefined;
397
+ bytes31?: undefined;
398
+ bytes32?: undefined;
399
+ bytes4?: undefined;
400
+ bytes5?: undefined;
401
+ bytes6?: undefined;
402
+ bytes7?: undefined;
403
+ bytes8?: undefined;
404
+ bytes9?: undefined;
405
+ int104?: undefined;
406
+ int112?: undefined;
407
+ int120?: undefined;
408
+ int128?: undefined;
409
+ int136?: undefined;
410
+ int144?: undefined;
411
+ int152?: undefined;
412
+ int16?: undefined;
413
+ int160?: undefined;
414
+ int168?: undefined;
415
+ int176?: undefined;
416
+ int184?: undefined;
417
+ int192?: undefined;
418
+ int200?: undefined;
419
+ int208?: undefined;
420
+ int216?: undefined;
421
+ int224?: undefined;
422
+ int232?: undefined;
423
+ int24?: undefined;
424
+ int240?: undefined;
425
+ int248?: undefined;
426
+ int256?: undefined;
427
+ int32?: undefined;
428
+ int40?: undefined;
429
+ int48?: undefined;
430
+ int56?: undefined;
431
+ int64?: undefined;
432
+ int72?: undefined;
433
+ int8?: undefined;
434
+ int80?: undefined;
435
+ int88?: undefined;
436
+ int96?: undefined;
437
+ string?: undefined;
438
+ uint104?: undefined;
439
+ uint112?: undefined;
440
+ uint120?: undefined;
441
+ uint128?: undefined;
442
+ uint136?: undefined;
443
+ uint144?: undefined;
444
+ uint152?: undefined;
445
+ uint16?: undefined;
446
+ uint160?: undefined;
447
+ uint168?: undefined;
448
+ uint176?: undefined;
449
+ uint184?: undefined;
450
+ uint192?: undefined;
451
+ uint200?: undefined;
452
+ uint208?: undefined;
453
+ uint216?: undefined;
454
+ uint224?: undefined;
455
+ uint232?: undefined;
456
+ uint24?: undefined;
457
+ uint240?: undefined;
458
+ uint248?: undefined;
459
+ uint256?: undefined;
460
+ uint32?: undefined;
461
+ uint40?: undefined;
462
+ uint48?: undefined;
463
+ uint56?: undefined;
464
+ uint64?: undefined;
465
+ uint72?: undefined;
466
+ uint8?: undefined;
467
+ uint80?: undefined;
468
+ uint88?: undefined;
469
+ uint96?: undefined;
470
+ }, primaryType extends "EIP712Domain" | keyof typedData = keyof typedData>(parameters: import("viem").TypedDataDefinition<typedData, primaryType>) => Promise<`0x${string}`>;
471
+ publicKey: `0x${string}`;
472
+ source: "privateKey";
473
+ type: "local";
474
+ }, logger: Logger, args?: Partial<DeployL1ContractsArgs>, chain?: Chain) => Promise<DeployL1ContractsReturnType>;
23
475
  /**
24
- * Sets up Private eXecution Environment (PXE).
476
+ * Sets up Private eXecution Environment (PXE) and returns the corresponding test wallet.
25
477
  * @param aztecNode - An instance of Aztec Node.
26
- * @param opts - Partial configuration for the PXE service.
27
- * @param firstPrivKey - The private key of the first account to be created.
478
+ * @param opts - Partial configuration for the PXE.
28
479
  * @param logger - The logger to be used.
29
480
  * @param useLogSuffix - Whether to add a randomly generated suffix to the PXE debug logs.
30
- * @param proofCreator - An optional proof creator to use
31
- * @returns Private eXecution Environment (PXE), accounts, wallets and logger.
481
+ * @returns A test wallet, logger and teardown function.
32
482
  */
33
- export declare function setupPXEService(aztecNode: AztecNode, opts?: Partial<PXEServiceConfig>, logger?: Logger, useLogSuffix?: boolean, proofCreator?: BBNativePrivateKernelProver): Promise<{
483
+ export declare function setupPXEAndGetWallet(aztecNode: AztecNode, opts?: Partial<PXEConfig>, logger?: Logger, useLogSuffix?: boolean): Promise<{
34
484
  /**
35
- * The PXE instance.
485
+ * The wallet instance.
36
486
  */
37
- pxe: PXEService;
487
+ wallet: TestWallet;
38
488
  /**
39
489
  * Logger instance named as the current test.
40
490
  */
@@ -63,7 +513,9 @@ export type SetupOptions = {
63
513
  /** Salt to use in L1 contract deployment */
64
514
  salt?: number;
65
515
  /** An initial set of validators */
66
- initialValidators?: EthAddress[];
516
+ initialValidators?: (Operator & {
517
+ privateKey: `0x${string}`;
518
+ })[];
67
519
  /** Anvil Start time */
68
520
  l1StartTime?: number;
69
521
  /** The anvil time where we should at the earliest be seeing L2 blocks */
@@ -78,31 +530,47 @@ export type SetupOptions = {
78
530
  };
79
531
  /** Public data that will be inserted in the tree in genesis */
80
532
  genesisPublicData?: PublicDataTreeLeaf[];
533
+ /** Specific config for the prover node, if set. */
534
+ proverNodeConfig?: Partial<ProverNodeConfig>;
535
+ /** Whether to use a mock gossip sub network for p2p clients. */
536
+ mockGossipSubNetwork?: boolean;
537
+ /** Whether to disable the anvil test watcher (can still be manually started) */
538
+ disableAnvilTestWatcher?: boolean;
539
+ /** Whether to enable anvil automine during deployment of L1 contracts (consider defaulting this to true). */
540
+ automineL1Setup?: boolean;
541
+ /** How many accounts to seed and unlock in anvil. */
542
+ anvilAccounts?: number;
543
+ /** Port to start anvil (defaults to 8545) */
544
+ anvilPort?: number;
545
+ /** Key to use for publishing L1 contracts */
546
+ l1PublisherKey?: SecretValue<`0x${string}`>;
81
547
  } & Partial<AztecNodeConfig>;
82
548
  /** Context for an end-to-end test as returned by the `setup` function */
83
549
  export type EndToEndContext = {
84
550
  /** The Aztec Node service or client a connected to it. */
85
551
  aztecNode: AztecNode;
552
+ /** Client to the Aztec Node admin interface (undefined if connected to remote environment) */
553
+ aztecNodeAdmin?: AztecNodeAdmin;
86
554
  /** The prover node service (only set if startProverNode is true) */
87
555
  proverNode: ProverNode | undefined;
88
556
  /** A client to the sequencer service (undefined if connected to remote environment) */
89
557
  sequencer: SequencerClient | undefined;
90
- /** The Private eXecution Environment (PXE). */
91
- pxe: PXE;
92
558
  /** Return values from deployL1Contracts function. */
93
559
  deployL1ContractsValues: DeployL1ContractsReturnType;
94
560
  /** The Aztec Node configuration. */
95
561
  config: AztecNodeConfig;
96
562
  /** The data for the initial funded accounts. */
97
563
  initialFundedAccounts: InitialAccountData[];
98
- /** The first wallet to be used. */
99
- wallet: AccountWalletWithSecretKey;
564
+ /** The wallet to be used. */
565
+ wallet: TestWallet;
100
566
  /** The wallets to be used. */
101
- wallets: AccountWalletWithSecretKey[];
567
+ accounts: AztecAddress[];
102
568
  /** Logger instance named as the current test. */
103
569
  logger: Logger;
104
570
  /** The cheat codes. */
105
571
  cheatCodes: CheatCodes;
572
+ /** The cheat codes for L1 */
573
+ ethCheatCodes: EthCheatCodes;
106
574
  /** The anvil test watcher (undefined if connected to remote environment) */
107
575
  watcher: AnvilTestWatcher | undefined;
108
576
  /** Allows tweaking current system time, used by the epoch cache only (undefined if connected to remote environment) */
@@ -111,6 +579,10 @@ export type EndToEndContext = {
111
579
  blobSink: BlobSinkServer | undefined;
112
580
  /** Telemetry client */
113
581
  telemetryClient: TelemetryClient | undefined;
582
+ /** Mock gossip sub network used for gossipping messages (only if mockGossipSubNetwork was set to true in opts) */
583
+ mockGossipSubNetwork: MockGossipSubNetwork | undefined;
584
+ /** Prefilled public data used for setting up nodes. */
585
+ prefilledPublicData: PublicDataTreeLeaf[] | undefined;
114
586
  /** Function to stop the started services. */
115
587
  teardown: () => Promise<void>;
116
588
  };
@@ -120,36 +592,48 @@ export type EndToEndContext = {
120
592
  * @param opts - Options to pass to the node initialization and to the setup script.
121
593
  * @param pxeOpts - Options to pass to the PXE initialization.
122
594
  */
123
- export declare function setup(numberOfAccounts?: number, opts?: SetupOptions, pxeOpts?: Partial<PXEServiceConfig>, chain?: Chain): Promise<EndToEndContext>;
595
+ export declare function setup(numberOfAccounts?: number, opts?: SetupOptions, pxeOpts?: Partial<PXEConfig>, chain?: Chain): Promise<EndToEndContext>;
124
596
  /**
125
597
  * Registers the contract class used for test accounts and publicly deploys the instances requested.
126
598
  * Use this when you need to make a public call to an account contract, such as for requesting a public authwit.
127
599
  * @param sender - Wallet to send the deployment tx.
128
600
  * @param accountsToDeploy - Which accounts to publicly deploy.
129
601
  */
130
- export declare function ensureAccountsPubliclyDeployed(sender: Wallet, accountsToDeploy: Wallet[]): Promise<void>;
131
- /**
132
- * Sets the timestamp of the next block.
133
- * @param rpcUrl - rpc url of the blockchain instance to connect to
134
- * @param timestamp - the timestamp for the next block
135
- */
136
- export declare function setNextBlockTimestamp(rpcUrl: string, timestamp: number): Promise<void>;
602
+ export declare function ensureAccountContractsPublished(wallet: Wallet, accountsToDeploy: AztecAddress[]): Promise<void>;
137
603
  /**
138
604
  * Returns a logger instance for the current test.
139
605
  * @returns a logger instance for the current test.
140
606
  */
141
607
  export declare function getLogger(): Logger;
142
608
  export type BalancesFn = ReturnType<typeof getBalancesFn>;
143
- export declare function getBalancesFn(symbol: string, method: ContractMethod, logger: any): (...addresses: (AztecAddress | {
609
+ export declare function getBalancesFn(symbol: string, method: ContractMethod, from: AztecAddress, logger: any): (...addresses: (AztecAddress | {
144
610
  address: AztecAddress;
145
611
  })[]) => Promise<bigint[]>;
146
612
  export declare function expectMapping<K, V>(fn: (...k: K[]) => Promise<V[]>, inputs: K[], expectedOutputs: V[]): Promise<void>;
147
613
  export declare function expectMappingDelta<K, V extends number | bigint>(initialValues: V[], fn: (...k: K[]) => Promise<V[]>, inputs: K[], expectedDiffs: V[]): Promise<void>;
148
614
  /**
149
- * Deploy the protocol contracts to a running instance.
615
+ * Computes the address of the "canonical" SponsoredFPCContract. This is not a protocol contract
616
+ * but by conventions its address is computed with a salt of 0.
617
+ * @returns The address of the sponsored FPC contract
618
+ */
619
+ export declare function getSponsoredFPCInstance(): Promise<ContractInstanceWithAddress>;
620
+ /**
621
+ * Computes the address of the "canonical" SponsoredFPCContract. This is not a protocol contract
622
+ * but by conventions its address is computed with a salt of 0.
623
+ * @returns The address of the sponsored FPC contract
624
+ */
625
+ export declare function getSponsoredFPCAddress(): Promise<AztecAddress>;
626
+ /**
627
+ * Deploy a sponsored FPC contract to a running instance.
628
+ */
629
+ export declare function setupSponsoredFPC(wallet: Wallet): Promise<ContractInstanceWithAddress>;
630
+ /**
631
+ * Registers the SponsoredFPC in this PXE instance
632
+ * @param wallet - The wallet
150
633
  */
151
- export declare function setupCanonicalFeeJuice(pxe: PXE): Promise<void>;
634
+ export declare function registerSponsoredFPC(wallet: Wallet): Promise<void>;
152
635
  export declare function waitForProvenChain(node: AztecNode, targetBlock?: number, timeoutSec?: number, intervalSec?: number): Promise<void>;
153
- export declare function createAndSyncProverNode(proverNodePrivateKey: `0x${string}`, aztecNodeConfig: AztecNodeConfig, aztecNode: AztecNode, dataDirectory: string, prefilledPublicData?: PublicDataTreeLeaf[]): Promise<ProverNode>;
154
- export declare function createForwarderContract(aztecNodeConfig: AztecNodeConfig, privateKey: `0x${string}`, rollupAddress: Hex): Promise<ForwarderContract>;
155
- //# sourceMappingURL=utils.d.ts.map
636
+ export declare function createAndSyncProverNode(proverNodePrivateKey: `0x${string}`, aztecNodeConfig: AztecNodeConfig, proverNodeConfig: Partial<ProverNodeConfig> & Pick<DataStoreConfig, 'dataDirectory'> & {
637
+ dontStart?: boolean;
638
+ }, aztecNode: AztecNode | undefined, prefilledPublicData?: PublicDataTreeLeaf[], proverNodeDeps?: ProverNodeDeps): Promise<ProverNode>;
639
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maXh0dXJlcy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxrQkFBa0IsRUFBdUQsTUFBTSx5QkFBeUIsQ0FBQztBQUV2SCxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXNDLE1BQU0sbUJBQW1CLENBQUM7QUFDN0YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBYSxLQUFLLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsS0FBSyxTQUFTLEVBQXNDLE1BQU0sc0JBQXNCLENBQUM7QUFDMUYsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxLQUFLLGNBQWMsRUFBd0IsTUFBTSx5QkFBeUIsQ0FBQztBQUVwRixPQUFPLEVBQ0wsS0FBSyxxQkFBcUIsRUFDMUIsS0FBSywyQkFBMkIsRUFHaEMsS0FBSyxRQUFRLEVBT2QsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBRUwsYUFBYSxFQUdiLFVBQVUsRUFDWCxNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUd2RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFLOUMsT0FBTyxFQUFnQixnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pFLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBSTlELE9BQU8sRUFBRSxvQkFBb0IsRUFBa0Ms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