@aztec/end-to-end 0.0.1-commit.6d63667d → 0.0.1-commit.733c4a3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/bench/client_flows/client_flows_benchmark.d.ts +2 -2
- package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/client_flows_benchmark.js +3 -3
- package/dest/bench/client_flows/config.d.ts +2 -2
- package/dest/bench/client_flows/config.d.ts.map +1 -1
- package/dest/bench/client_flows/config.js +18 -0
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +4 -2
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +10 -0
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +2 -2
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
- package/dest/e2e_deploy_contract/deploy_test.d.ts +2 -2
- package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.d.ts +9 -7
- package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.js +58 -33
- package/dest/e2e_fees/fees_test.d.ts +2 -2
- package/dest/e2e_fees/fees_test.d.ts.map +1 -1
- package/dest/e2e_fees/fees_test.js +6 -6
- package/dest/e2e_p2p/p2p_network.d.ts +2 -2
- package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
- package/dest/e2e_p2p/p2p_network.js +16 -2
- package/dest/e2e_p2p/reqresp/utils.d.ts +3 -3
- package/dest/e2e_p2p/reqresp/utils.d.ts.map +1 -1
- package/dest/e2e_p2p/reqresp/utils.js +32 -8
- package/dest/e2e_p2p/shared.d.ts +2 -2
- package/dest/e2e_p2p/shared.d.ts.map +1 -1
- package/dest/e2e_p2p/shared.js +5 -1
- package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts +2 -0
- package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts.map +1 -0
- package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.js +184 -0
- package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts +18 -0
- package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts.map +1 -0
- package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.js +120 -0
- package/dest/e2e_token_contract/token_contract_test.d.ts +4 -2
- package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
- package/dest/e2e_token_contract/token_contract_test.js +10 -0
- package/dest/fixtures/authwit_proxy.d.ts +15 -0
- package/dest/fixtures/authwit_proxy.d.ts.map +1 -0
- package/dest/fixtures/authwit_proxy.js +30 -0
- package/dest/fixtures/e2e_prover_test.d.ts +4 -4
- package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
- package/dest/fixtures/e2e_prover_test.js +27 -34
- package/dest/fixtures/elu_monitor.d.ts +21 -0
- package/dest/fixtures/elu_monitor.d.ts.map +1 -0
- package/dest/fixtures/elu_monitor.js +102 -0
- package/dest/fixtures/fixtures.d.ts +5 -1
- package/dest/fixtures/fixtures.d.ts.map +1 -1
- package/dest/fixtures/fixtures.js +6 -0
- package/dest/fixtures/ha_setup.d.ts +1 -1
- package/dest/fixtures/ha_setup.d.ts.map +1 -1
- package/dest/fixtures/ha_setup.js +3 -1
- package/dest/fixtures/setup.d.ts +39 -22
- package/dest/fixtures/setup.d.ts.map +1 -1
- package/dest/fixtures/setup.js +59 -149
- package/dest/fixtures/setup_p2p_test.d.ts +15 -7
- package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
- package/dest/fixtures/setup_p2p_test.js +18 -12
- package/dest/fixtures/token_utils.d.ts +2 -2
- package/dest/fixtures/token_utils.d.ts.map +1 -1
- package/dest/fixtures/token_utils.js +3 -2
- package/dest/shared/index.d.ts +2 -1
- package/dest/shared/index.d.ts.map +1 -1
- package/dest/shared/index.js +1 -0
- package/dest/shared/jest_setup.js +10 -1
- package/dest/shared/mock_state_view.d.ts +86 -0
- package/dest/shared/mock_state_view.d.ts.map +1 -0
- package/dest/shared/mock_state_view.js +186 -0
- package/dest/shared/submit-transactions.d.ts +2 -2
- package/dest/shared/submit-transactions.d.ts.map +1 -1
- package/dest/shared/uniswap_l1_l2.d.ts +1 -1
- package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
- package/dest/shared/uniswap_l1_l2.js +1 -1
- package/dest/simulators/token_simulator.d.ts +1 -1
- package/dest/simulators/token_simulator.d.ts.map +1 -1
- package/dest/simulators/token_simulator.js +2 -23
- package/dest/spartan/setup_test_wallets.d.ts +9 -2
- package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.js +31 -1
- package/dest/spartan/utils/bot.d.ts +3 -2
- package/dest/spartan/utils/bot.d.ts.map +1 -1
- package/dest/spartan/utils/bot.js +2 -1
- package/dest/spartan/utils/index.d.ts +2 -2
- package/dest/spartan/utils/index.d.ts.map +1 -1
- package/dest/spartan/utils/index.js +1 -1
- package/dest/spartan/utils/k8s.d.ts +3 -1
- package/dest/spartan/utils/k8s.d.ts.map +1 -1
- package/dest/spartan/utils/k8s.js +6 -0
- package/dest/spartan/utils/nodes.d.ts +4 -5
- package/dest/spartan/utils/nodes.d.ts.map +1 -1
- package/dest/spartan/utils/nodes.js +8 -8
- package/dest/test-wallet/test_wallet.d.ts +83 -0
- package/dest/test-wallet/test_wallet.d.ts.map +1 -0
- package/dest/test-wallet/test_wallet.js +214 -0
- package/dest/test-wallet/utils.d.ts +41 -0
- package/dest/test-wallet/utils.d.ts.map +1 -0
- package/dest/test-wallet/utils.js +71 -0
- package/dest/test-wallet/wallet_worker_script.d.ts +2 -0
- package/dest/test-wallet/wallet_worker_script.d.ts.map +1 -0
- package/dest/test-wallet/wallet_worker_script.js +48 -0
- package/dest/test-wallet/worker_wallet.d.ts +52 -0
- package/dest/test-wallet/worker_wallet.d.ts.map +1 -0
- package/dest/test-wallet/worker_wallet.js +151 -0
- package/dest/test-wallet/worker_wallet_schema.d.ts +274 -0
- package/dest/test-wallet/worker_wallet_schema.d.ts.map +1 -0
- package/dest/test-wallet/worker_wallet_schema.js +10 -0
- package/package.json +40 -39
- package/src/bench/client_flows/client_flows_benchmark.ts +8 -12
- package/src/bench/client_flows/config.ts +9 -1
- package/src/bench/utils.ts +1 -1
- package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +11 -2
- package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +4 -4
- package/src/e2e_deploy_contract/deploy_test.ts +3 -3
- package/src/e2e_epochs/epochs_test.ts +73 -63
- package/src/e2e_fees/bridging_race.notest.ts +1 -1
- package/src/e2e_fees/fees_test.ts +12 -27
- package/src/e2e_nested_contract/nested_contract_test.ts +1 -1
- package/src/e2e_p2p/inactivity_slash_test.ts +4 -4
- package/src/e2e_p2p/p2p_network.ts +29 -7
- package/src/e2e_p2p/reqresp/utils.ts +40 -12
- package/src/e2e_p2p/shared.ts +3 -1
- package/src/e2e_storage_proof/fixtures/storage_proof.json +915 -0
- package/src/e2e_storage_proof/fixtures/storage_proof_fetcher.ts +190 -0
- package/src/e2e_storage_proof/fixtures/storage_proof_fixture.ts +173 -0
- package/src/e2e_token_contract/token_contract_test.ts +11 -2
- package/src/fixtures/authwit_proxy.ts +50 -0
- package/src/fixtures/dumps/epoch_proof_result.json +1 -1
- package/src/fixtures/e2e_prover_test.ts +28 -38
- package/src/fixtures/elu_monitor.ts +126 -0
- package/src/fixtures/fixtures.ts +10 -0
- package/src/fixtures/ha_setup.ts +3 -1
- package/src/fixtures/setup.ts +89 -210
- package/src/fixtures/setup_p2p_test.ts +25 -24
- package/src/fixtures/token_utils.ts +2 -1
- package/src/guides/up_quick_start.sh +3 -3
- package/src/shared/index.ts +1 -0
- package/src/shared/jest_setup.ts +16 -1
- package/src/shared/mock_state_view.ts +188 -0
- package/src/shared/submit-transactions.ts +6 -2
- package/src/shared/uniswap_l1_l2.ts +2 -2
- package/src/simulators/token_simulator.ts +1 -29
- package/src/spartan/setup_test_wallets.ts +58 -4
- package/src/spartan/utils/bot.ts +4 -1
- package/src/spartan/utils/index.ts +1 -0
- package/src/spartan/utils/k8s.ts +8 -0
- package/src/spartan/utils/nodes.ts +14 -9
- package/src/test-wallet/test_wallet.ts +306 -0
- package/src/test-wallet/utils.ts +112 -0
- package/src/test-wallet/wallet_worker_script.ts +60 -0
- package/src/test-wallet/worker_wallet.ts +213 -0
- package/src/test-wallet/worker_wallet_schema.ts +13 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/end-to-end",
|
|
3
|
-
"version": "0.0.1-commit.
|
|
3
|
+
"version": "0.0.1-commit.733c4a3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": "./dest/index.js",
|
|
6
6
|
"inherits": [
|
|
@@ -26,44 +26,45 @@
|
|
|
26
26
|
"formatting": "run -T prettier --check ./src && run -T eslint ./src"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@aztec/accounts": "0.0.1-commit.
|
|
30
|
-
"@aztec/archiver": "0.0.1-commit.
|
|
31
|
-
"@aztec/aztec": "0.0.1-commit.
|
|
32
|
-
"@aztec/aztec-node": "0.0.1-commit.
|
|
33
|
-
"@aztec/aztec.js": "0.0.1-commit.
|
|
34
|
-
"@aztec/bb-prover": "0.0.1-commit.
|
|
35
|
-
"@aztec/bb.js": "0.0.1-commit.
|
|
36
|
-
"@aztec/blob-client": "0.0.1-commit.
|
|
37
|
-
"@aztec/blob-lib": "0.0.1-commit.
|
|
38
|
-
"@aztec/bot": "0.0.1-commit.
|
|
39
|
-
"@aztec/cli": "0.0.1-commit.
|
|
40
|
-
"@aztec/constants": "0.0.1-commit.
|
|
41
|
-
"@aztec/entrypoints": "0.0.1-commit.
|
|
42
|
-
"@aztec/epoch-cache": "0.0.1-commit.
|
|
43
|
-
"@aztec/ethereum": "0.0.1-commit.
|
|
44
|
-
"@aztec/foundation": "0.0.1-commit.
|
|
45
|
-
"@aztec/kv-store": "0.0.1-commit.
|
|
46
|
-
"@aztec/l1-artifacts": "0.0.1-commit.
|
|
47
|
-
"@aztec/merkle-tree": "0.0.1-commit.
|
|
48
|
-
"@aztec/node-keystore": "0.0.1-commit.
|
|
49
|
-
"@aztec/noir-contracts.js": "0.0.1-commit.
|
|
50
|
-
"@aztec/noir-noirc_abi": "0.0.1-commit.
|
|
51
|
-
"@aztec/noir-protocol-circuits-types": "0.0.1-commit.
|
|
52
|
-
"@aztec/noir-test-contracts.js": "0.0.1-commit.
|
|
53
|
-
"@aztec/p2p": "0.0.1-commit.
|
|
54
|
-
"@aztec/protocol-contracts": "0.0.1-commit.
|
|
55
|
-
"@aztec/prover-client": "0.0.1-commit.
|
|
56
|
-
"@aztec/prover-node": "0.0.1-commit.
|
|
57
|
-
"@aztec/pxe": "0.0.1-commit.
|
|
58
|
-
"@aztec/sequencer-client": "0.0.1-commit.
|
|
59
|
-
"@aztec/simulator": "0.0.1-commit.
|
|
60
|
-
"@aztec/slasher": "0.0.1-commit.
|
|
61
|
-
"@aztec/stdlib": "0.0.1-commit.
|
|
62
|
-
"@aztec/telemetry-client": "0.0.1-commit.
|
|
63
|
-
"@aztec/
|
|
64
|
-
"@aztec/validator-
|
|
65
|
-
"@aztec/
|
|
66
|
-
"@aztec/
|
|
29
|
+
"@aztec/accounts": "0.0.1-commit.733c4a3",
|
|
30
|
+
"@aztec/archiver": "0.0.1-commit.733c4a3",
|
|
31
|
+
"@aztec/aztec": "0.0.1-commit.733c4a3",
|
|
32
|
+
"@aztec/aztec-node": "0.0.1-commit.733c4a3",
|
|
33
|
+
"@aztec/aztec.js": "0.0.1-commit.733c4a3",
|
|
34
|
+
"@aztec/bb-prover": "0.0.1-commit.733c4a3",
|
|
35
|
+
"@aztec/bb.js": "0.0.1-commit.733c4a3",
|
|
36
|
+
"@aztec/blob-client": "0.0.1-commit.733c4a3",
|
|
37
|
+
"@aztec/blob-lib": "0.0.1-commit.733c4a3",
|
|
38
|
+
"@aztec/bot": "0.0.1-commit.733c4a3",
|
|
39
|
+
"@aztec/cli": "0.0.1-commit.733c4a3",
|
|
40
|
+
"@aztec/constants": "0.0.1-commit.733c4a3",
|
|
41
|
+
"@aztec/entrypoints": "0.0.1-commit.733c4a3",
|
|
42
|
+
"@aztec/epoch-cache": "0.0.1-commit.733c4a3",
|
|
43
|
+
"@aztec/ethereum": "0.0.1-commit.733c4a3",
|
|
44
|
+
"@aztec/foundation": "0.0.1-commit.733c4a3",
|
|
45
|
+
"@aztec/kv-store": "0.0.1-commit.733c4a3",
|
|
46
|
+
"@aztec/l1-artifacts": "0.0.1-commit.733c4a3",
|
|
47
|
+
"@aztec/merkle-tree": "0.0.1-commit.733c4a3",
|
|
48
|
+
"@aztec/node-keystore": "0.0.1-commit.733c4a3",
|
|
49
|
+
"@aztec/noir-contracts.js": "0.0.1-commit.733c4a3",
|
|
50
|
+
"@aztec/noir-noirc_abi": "0.0.1-commit.733c4a3",
|
|
51
|
+
"@aztec/noir-protocol-circuits-types": "0.0.1-commit.733c4a3",
|
|
52
|
+
"@aztec/noir-test-contracts.js": "0.0.1-commit.733c4a3",
|
|
53
|
+
"@aztec/p2p": "0.0.1-commit.733c4a3",
|
|
54
|
+
"@aztec/protocol-contracts": "0.0.1-commit.733c4a3",
|
|
55
|
+
"@aztec/prover-client": "0.0.1-commit.733c4a3",
|
|
56
|
+
"@aztec/prover-node": "0.0.1-commit.733c4a3",
|
|
57
|
+
"@aztec/pxe": "0.0.1-commit.733c4a3",
|
|
58
|
+
"@aztec/sequencer-client": "0.0.1-commit.733c4a3",
|
|
59
|
+
"@aztec/simulator": "0.0.1-commit.733c4a3",
|
|
60
|
+
"@aztec/slasher": "0.0.1-commit.733c4a3",
|
|
61
|
+
"@aztec/stdlib": "0.0.1-commit.733c4a3",
|
|
62
|
+
"@aztec/telemetry-client": "0.0.1-commit.733c4a3",
|
|
63
|
+
"@aztec/validator-client": "0.0.1-commit.733c4a3",
|
|
64
|
+
"@aztec/validator-ha-signer": "0.0.1-commit.733c4a3",
|
|
65
|
+
"@aztec/wallet-sdk": "0.0.1-commit.733c4a3",
|
|
66
|
+
"@aztec/wallets": "0.0.1-commit.733c4a3",
|
|
67
|
+
"@aztec/world-state": "0.0.1-commit.733c4a3",
|
|
67
68
|
"@iarna/toml": "^2.2.5",
|
|
68
69
|
"@jest/globals": "^30.0.0",
|
|
69
70
|
"@noble/curves": "=1.0.0",
|
|
@@ -26,7 +26,6 @@ import { type PXEConfig, getPXEConfig } from '@aztec/pxe/server';
|
|
|
26
26
|
import type { ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
27
27
|
import { GasSettings } from '@aztec/stdlib/gas';
|
|
28
28
|
import { deriveSigningKey } from '@aztec/stdlib/keys';
|
|
29
|
-
import { TestWallet } from '@aztec/test-wallet/server';
|
|
30
29
|
|
|
31
30
|
import { MNEMONIC } from '../../fixtures/fixtures.js';
|
|
32
31
|
import { type EndToEndContext, type SetupOptions, deployAccounts, setup, teardown } from '../../fixtures/setup.js';
|
|
@@ -37,6 +36,7 @@ import {
|
|
|
37
36
|
FeeJuicePortalTestingHarnessFactory,
|
|
38
37
|
type GasBridgingTestHarness,
|
|
39
38
|
} from '../../shared/gas_portal_test_harness.js';
|
|
39
|
+
import { TestWallet } from '../../test-wallet/test_wallet.js';
|
|
40
40
|
import { ProxyLogger } from './benchmark.js';
|
|
41
41
|
import { type ClientFlowsConfig, FULL_FLOWS_CONFIG, KEY_FLOWS_CONFIG } from './config.js';
|
|
42
42
|
|
|
@@ -138,10 +138,10 @@ export class ClientFlowsBenchmark {
|
|
|
138
138
|
});
|
|
139
139
|
await this.applyBaseSetup();
|
|
140
140
|
|
|
141
|
-
await this.context.aztecNodeService
|
|
141
|
+
await this.context.aztecNodeService.setConfig({ feeRecipient: this.sequencerAddress, coinbase: this.coinbase });
|
|
142
142
|
|
|
143
143
|
const rollupContract = RollupContract.getFromConfig(this.context.config);
|
|
144
|
-
this.chainMonitor = new ChainMonitor(rollupContract, this.context.dateProvider
|
|
144
|
+
this.chainMonitor = new ChainMonitor(rollupContract, this.context.dateProvider, this.logger, 200).start();
|
|
145
145
|
|
|
146
146
|
return this;
|
|
147
147
|
}
|
|
@@ -161,15 +161,11 @@ export class ClientFlowsBenchmark {
|
|
|
161
161
|
|
|
162
162
|
/** Admin mints bananaCoin tokens privately to the target address and redeems them. */
|
|
163
163
|
async mintPrivateBananas(amount: bigint, address: AztecAddress) {
|
|
164
|
-
const balanceBefore = await this.bananaCoin.methods
|
|
165
|
-
.balance_of_private(address)
|
|
166
|
-
.simulate({ from: this.adminAddress });
|
|
164
|
+
const balanceBefore = await this.bananaCoin.methods.balance_of_private(address).simulate({ from: address });
|
|
167
165
|
|
|
168
166
|
await mintTokensToPrivate(this.bananaCoin, this.adminAddress, address, amount);
|
|
169
167
|
|
|
170
|
-
const balanceAfter = await this.bananaCoin.methods
|
|
171
|
-
.balance_of_private(address)
|
|
172
|
-
.simulate({ from: this.adminAddress });
|
|
168
|
+
const balanceAfter = await this.bananaCoin.methods.balance_of_private(address).simulate({ from: address });
|
|
173
169
|
expect(balanceAfter).toEqual(balanceBefore + amount);
|
|
174
170
|
}
|
|
175
171
|
|
|
@@ -207,7 +203,7 @@ export class ClientFlowsBenchmark {
|
|
|
207
203
|
const [{ address: adminAddress }, { address: sequencerAddress }] = deployedAccounts;
|
|
208
204
|
|
|
209
205
|
this.adminWallet = this.context.wallet;
|
|
210
|
-
this.aztecNode = this.context.aztecNodeService
|
|
206
|
+
this.aztecNode = this.context.aztecNodeService;
|
|
211
207
|
this.cheatCodes = this.context.cheatCodes;
|
|
212
208
|
|
|
213
209
|
this.adminAddress = adminAddress;
|
|
@@ -235,8 +231,8 @@ export class ClientFlowsBenchmark {
|
|
|
235
231
|
this.feeJuiceContract = FeeJuiceContract.at(ProtocolContractAddress.FeeJuice, this.adminWallet);
|
|
236
232
|
|
|
237
233
|
this.feeJuiceBridgeTestHarness = await FeeJuicePortalTestingHarnessFactory.create({
|
|
238
|
-
aztecNode: this.context.aztecNodeService
|
|
239
|
-
aztecNodeAdmin: this.context.aztecNodeService
|
|
234
|
+
aztecNode: this.context.aztecNodeService,
|
|
235
|
+
aztecNodeAdmin: this.context.aztecNodeService,
|
|
240
236
|
l1Client: this.context.deployL1ContractsValues.l1Client,
|
|
241
237
|
wallet: this.adminWallet,
|
|
242
238
|
logger: this.logger,
|
|
@@ -6,7 +6,7 @@ export type ClientFlowConfig = {
|
|
|
6
6
|
recursions?: number[];
|
|
7
7
|
};
|
|
8
8
|
|
|
9
|
-
type ClientFlows = 'accountDeployments' | 'deployments' | 'transfers' | 'bridging' | 'amm';
|
|
9
|
+
type ClientFlows = 'accountDeployments' | 'deployments' | 'transfers' | 'bridging' | 'amm' | 'storageProof';
|
|
10
10
|
|
|
11
11
|
export type ClientFlowsConfig = {
|
|
12
12
|
[key in ClientFlows]: ClientFlowConfig;
|
|
@@ -34,6 +34,10 @@ export const KEY_FLOWS_CONFIG: ClientFlowsConfig = {
|
|
|
34
34
|
feePaymentMethods: ['sponsored_fpc', 'private_fpc'],
|
|
35
35
|
recursions: [0, 1],
|
|
36
36
|
},
|
|
37
|
+
storageProof: {
|
|
38
|
+
accounts: ['ecdsar1'],
|
|
39
|
+
feePaymentMethods: ['sponsored_fpc'],
|
|
40
|
+
},
|
|
37
41
|
};
|
|
38
42
|
|
|
39
43
|
export const FULL_FLOWS_CONFIG: ClientFlowsConfig = {
|
|
@@ -58,4 +62,8 @@ export const FULL_FLOWS_CONFIG: ClientFlowsConfig = {
|
|
|
58
62
|
feePaymentMethods: ['sponsored_fpc', 'private_fpc'],
|
|
59
63
|
recursions: [0, 1, 2],
|
|
60
64
|
},
|
|
65
|
+
storageProof: {
|
|
66
|
+
accounts: ['ecdsar1', 'schnorr'],
|
|
67
|
+
feePaymentMethods: ['sponsored_fpc', 'private_fpc'],
|
|
68
|
+
},
|
|
61
69
|
};
|
package/src/bench/utils.ts
CHANGED
|
@@ -28,7 +28,7 @@ export async function benchmarkSetup(
|
|
|
28
28
|
const contract = await BenchmarkingContract.deploy(context.wallet).send({ from: defaultAccountAddress });
|
|
29
29
|
context.logger.info(`Deployed benchmarking contract at ${contract.address}`);
|
|
30
30
|
const sequencer = (context.aztecNode as AztecNodeService).getSequencer()!;
|
|
31
|
-
const telemetry = context.telemetryClient
|
|
31
|
+
const telemetry = context.telemetryClient as BenchmarkTelemetryClient;
|
|
32
32
|
context.logger.warn(`Cleared benchmark data points from setup`);
|
|
33
33
|
telemetry.clear();
|
|
34
34
|
const origTeardown = context.teardown.bind(context);
|
|
@@ -7,14 +7,15 @@ import type { TxHash } from '@aztec/aztec.js/tx';
|
|
|
7
7
|
import type { CheatCodes } from '@aztec/aztec/testing';
|
|
8
8
|
import type { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
9
9
|
import { TokenBlacklistContract } from '@aztec/noir-contracts.js/TokenBlacklist';
|
|
10
|
+
import { GenericProxyContract } from '@aztec/noir-test-contracts.js/GenericProxy';
|
|
10
11
|
import { InvalidAccountContract } from '@aztec/noir-test-contracts.js/InvalidAccount';
|
|
11
12
|
import type { SequencerClient } from '@aztec/sequencer-client';
|
|
12
|
-
import type { TestWallet } from '@aztec/test-wallet/server';
|
|
13
13
|
|
|
14
14
|
import { jest } from '@jest/globals';
|
|
15
15
|
|
|
16
16
|
import { type EndToEndContext, deployAccounts, publicDeployAccounts, setup, teardown } from '../fixtures/setup.js';
|
|
17
17
|
import { TokenSimulator } from '../simulators/token_simulator.js';
|
|
18
|
+
import type { TestWallet } from '../test-wallet/test_wallet.js';
|
|
18
19
|
|
|
19
20
|
export class Role {
|
|
20
21
|
private isAdmin = false;
|
|
@@ -53,6 +54,7 @@ export class BlacklistTokenContractTest {
|
|
|
53
54
|
asset!: TokenBlacklistContract;
|
|
54
55
|
tokenSim!: TokenSimulator;
|
|
55
56
|
badAccount!: InvalidAccountContract;
|
|
57
|
+
authwitProxy!: GenericProxyContract;
|
|
56
58
|
cheatCodes!: CheatCodes;
|
|
57
59
|
sequencer!: SequencerClient;
|
|
58
60
|
aztecNode!: AztecNode;
|
|
@@ -92,7 +94,7 @@ export class BlacklistTokenContractTest {
|
|
|
92
94
|
});
|
|
93
95
|
|
|
94
96
|
this.cheatCodes = this.context.cheatCodes;
|
|
95
|
-
this.aztecNode = this.context.aztecNodeService
|
|
97
|
+
this.aztecNode = this.context.aztecNodeService;
|
|
96
98
|
this.sequencer = this.context.sequencer!;
|
|
97
99
|
this.wallet = this.context.wallet;
|
|
98
100
|
this.adminAddress = deployedAccounts[0].address;
|
|
@@ -114,6 +116,13 @@ export class BlacklistTokenContractTest {
|
|
|
114
116
|
this.badAccount = await InvalidAccountContract.deploy(this.wallet).send({ from: this.adminAddress });
|
|
115
117
|
this.logger.verbose(`Deployed to ${this.badAccount.address}.`);
|
|
116
118
|
|
|
119
|
+
// Deploy a proxy contract for "on behalf of other" tests. The note owner must be the tx sender
|
|
120
|
+
// (so their notes are in scope), but msg_sender in the target must differ from the note owner
|
|
121
|
+
// to trigger authwit validation. The proxy forwards calls so that msg_sender != tx sender.
|
|
122
|
+
this.logger.verbose(`Deploying generic proxy...`);
|
|
123
|
+
this.authwitProxy = await GenericProxyContract.deploy(this.wallet).send({ from: this.adminAddress });
|
|
124
|
+
this.logger.verbose(`Deployed to ${this.authwitProxy.address}.`);
|
|
125
|
+
|
|
117
126
|
await this.crossTimestampOfChange();
|
|
118
127
|
|
|
119
128
|
this.tokenSim = new TokenSimulator(
|
|
@@ -19,7 +19,6 @@ import { TestERC20Abi, TestERC20Bytecode } from '@aztec/l1-artifacts';
|
|
|
19
19
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
20
20
|
import { TokenBridgeContract } from '@aztec/noir-contracts.js/TokenBridge';
|
|
21
21
|
import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
|
|
22
|
-
import type { TestWallet } from '@aztec/test-wallet/server';
|
|
23
22
|
|
|
24
23
|
import { MNEMONIC } from '../fixtures/fixtures.js';
|
|
25
24
|
import {
|
|
@@ -31,6 +30,7 @@ import {
|
|
|
31
30
|
teardown,
|
|
32
31
|
} from '../fixtures/setup.js';
|
|
33
32
|
import { CrossChainTestHarness } from '../shared/cross_chain_test_harness.js';
|
|
33
|
+
import type { TestWallet } from '../test-wallet/test_wallet.js';
|
|
34
34
|
|
|
35
35
|
export class CrossChainMessagingTest {
|
|
36
36
|
private requireEpochProven: boolean;
|
|
@@ -109,16 +109,16 @@ export class CrossChainMessagingTest {
|
|
|
109
109
|
|
|
110
110
|
async applyBaseSetup() {
|
|
111
111
|
// Set up base context fields
|
|
112
|
-
this.aztecNode = this.context.aztecNodeService
|
|
112
|
+
this.aztecNode = this.context.aztecNodeService;
|
|
113
113
|
this.wallet = this.context.wallet;
|
|
114
114
|
this.aztecNodeConfig = this.context.config;
|
|
115
115
|
this.cheatCodes = this.context.cheatCodes;
|
|
116
116
|
this.deployL1ContractsValues = this.context.deployL1ContractsValues;
|
|
117
|
-
this.aztecNodeAdmin = this.context.aztecNodeService
|
|
117
|
+
this.aztecNodeAdmin = this.context.aztecNodeService;
|
|
118
118
|
|
|
119
119
|
if (this.requireEpochProven) {
|
|
120
120
|
// Turn off the watcher to prevent it from keep marking blocks as proven.
|
|
121
|
-
this.context.watcher
|
|
121
|
+
this.context.watcher.setIsMarkingAsProven(false);
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
// Deploy 3 accounts
|
|
@@ -8,9 +8,9 @@ import type { AztecNode } from '@aztec/aztec.js/node';
|
|
|
8
8
|
import type { Wallet } from '@aztec/aztec.js/wallet';
|
|
9
9
|
import type { StatefulTestContract } from '@aztec/noir-test-contracts.js/StatefulTest';
|
|
10
10
|
import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
|
|
11
|
-
import type { TestWallet } from '@aztec/test-wallet/server';
|
|
12
11
|
|
|
13
12
|
import { type EndToEndContext, deployAccounts, setup, teardown } from '../fixtures/setup.js';
|
|
13
|
+
import type { TestWallet } from '../test-wallet/test_wallet.js';
|
|
14
14
|
|
|
15
15
|
export class DeployTest {
|
|
16
16
|
public context!: EndToEndContext;
|
|
@@ -30,9 +30,9 @@ export class DeployTest {
|
|
|
30
30
|
fundSponsoredFPC: true,
|
|
31
31
|
skipAccountDeployment: true,
|
|
32
32
|
});
|
|
33
|
-
this.aztecNode = this.context.aztecNodeService
|
|
33
|
+
this.aztecNode = this.context.aztecNodeService;
|
|
34
34
|
this.wallet = this.context.wallet;
|
|
35
|
-
this.aztecNodeAdmin = this.context.aztecNodeService
|
|
35
|
+
this.aztecNodeAdmin = this.context.aztecNodeService;
|
|
36
36
|
await this.applyInitialAccount();
|
|
37
37
|
return this;
|
|
38
38
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Archiver } from '@aztec/archiver';
|
|
1
2
|
import { type AztecNodeConfig, AztecNodeService } from '@aztec/aztec-node';
|
|
2
3
|
import { getTimestampRangeForEpoch } from '@aztec/aztec.js/block';
|
|
3
4
|
import { getContractInstanceFromInstantiationParams } from '@aztec/aztec.js/contracts';
|
|
@@ -9,7 +10,8 @@ import { EpochCache } from '@aztec/epoch-cache';
|
|
|
9
10
|
import { createExtendedL1Client } from '@aztec/ethereum/client';
|
|
10
11
|
import { DefaultL1ContractsConfig } from '@aztec/ethereum/config';
|
|
11
12
|
import { RollupContract } from '@aztec/ethereum/contracts';
|
|
12
|
-
import {
|
|
13
|
+
import { Delayer, createDelayer, waitUntilL1Timestamp, wrapClientWithDelayer } from '@aztec/ethereum/l1-tx-utils';
|
|
14
|
+
import { ChainMonitor } from '@aztec/ethereum/test';
|
|
13
15
|
import type { ExtendedViemWalletClient } from '@aztec/ethereum/types';
|
|
14
16
|
import { BlockNumber, CheckpointNumber, EpochNumber } from '@aztec/foundation/branded-types';
|
|
15
17
|
import { SecretValue } from '@aztec/foundation/config';
|
|
@@ -20,16 +22,9 @@ import { sleep } from '@aztec/foundation/sleep';
|
|
|
20
22
|
import { SpamContract } from '@aztec/noir-test-contracts.js/Spam';
|
|
21
23
|
import { TestContract } from '@aztec/noir-test-contracts.js/Test';
|
|
22
24
|
import { getMockPubSubP2PServiceFactory } from '@aztec/p2p/test-helpers';
|
|
23
|
-
import {
|
|
24
|
-
import type { TestProverNode } from '@aztec/prover-node/test';
|
|
25
|
+
import type { ProverNodeConfig } from '@aztec/prover-node';
|
|
25
26
|
import type { PXEConfig } from '@aztec/pxe/config';
|
|
26
|
-
import {
|
|
27
|
-
type SequencerClient,
|
|
28
|
-
type SequencerEvents,
|
|
29
|
-
type SequencerPublisher,
|
|
30
|
-
SequencerState,
|
|
31
|
-
} from '@aztec/sequencer-client';
|
|
32
|
-
import type { TestSequencerClient } from '@aztec/sequencer-client/test';
|
|
27
|
+
import { type SequencerClient, type SequencerEvents, SequencerState } from '@aztec/sequencer-client';
|
|
33
28
|
import { type BlockParameter, EthAddress } from '@aztec/stdlib/block';
|
|
34
29
|
import { type L1RollupConstants, getProofSubmissionDeadlineTimestamp } from '@aztec/stdlib/epoch-helpers';
|
|
35
30
|
import { tryStop } from '@aztec/stdlib/interfaces/server';
|
|
@@ -46,7 +41,7 @@ import {
|
|
|
46
41
|
setup,
|
|
47
42
|
} from '../fixtures/utils.js';
|
|
48
43
|
|
|
49
|
-
export const
|
|
44
|
+
export const WORLD_STATE_CHECKPOINT_HISTORY = 2;
|
|
50
45
|
export const WORLD_STATE_BLOCK_CHECK_INTERVAL = 50;
|
|
51
46
|
export const ARCHIVER_POLL_INTERVAL = 50;
|
|
52
47
|
export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
|
|
@@ -81,7 +76,7 @@ export class EpochsTestContext {
|
|
|
81
76
|
public proverDelayer!: Delayer;
|
|
82
77
|
public sequencerDelayer!: Delayer;
|
|
83
78
|
|
|
84
|
-
public proverNodes:
|
|
79
|
+
public proverNodes: AztecNodeService[] = [];
|
|
85
80
|
public nodes: AztecNodeService[] = [];
|
|
86
81
|
|
|
87
82
|
public epochDuration!: number;
|
|
@@ -147,7 +142,7 @@ export class EpochsTestContext {
|
|
|
147
142
|
// using the prover's eth address if the proverId is used for something in the rollup contract
|
|
148
143
|
// Use numeric EthAddress for deterministic prover id
|
|
149
144
|
proverId: EthAddress.fromNumber(1),
|
|
150
|
-
|
|
145
|
+
worldStateCheckpointHistory: WORLD_STATE_CHECKPOINT_HISTORY,
|
|
151
146
|
exitDelaySeconds: DefaultL1ContractsConfig.exitDelaySeconds,
|
|
152
147
|
slasherFlavor: 'none',
|
|
153
148
|
l1PublishingTime,
|
|
@@ -169,17 +164,8 @@ export class EpochsTestContext {
|
|
|
169
164
|
// Loop that tracks L1 and L2 block numbers and logs whenever there's a new one.
|
|
170
165
|
this.monitor = new ChainMonitor(this.rollup, context.dateProvider, this.logger).start();
|
|
171
166
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
this.proverDelayer = context.proverNode
|
|
175
|
-
? (((context.proverNode as TestProverNode).publisher as ProverNodePublisher).l1TxUtils as DelayedTxUtils).delayer!
|
|
176
|
-
: undefined!;
|
|
177
|
-
this.sequencerDelayer = context.sequencer
|
|
178
|
-
? (
|
|
179
|
-
((context.sequencer as TestSequencerClient).sequencer.publisher as SequencerPublisher)
|
|
180
|
-
.l1TxUtils as DelayedTxUtils
|
|
181
|
-
).delayer!
|
|
182
|
-
: undefined!;
|
|
167
|
+
this.proverDelayer = context.proverDelayer!;
|
|
168
|
+
this.sequencerDelayer = context.sequencerDelayer!;
|
|
183
169
|
|
|
184
170
|
if ((context.proverNode && !this.proverDelayer) || (context.sequencer && !this.sequencerDelayer)) {
|
|
185
171
|
throw new Error(`Could not find prover or sequencer delayer`);
|
|
@@ -194,6 +180,7 @@ export class EpochsTestContext {
|
|
|
194
180
|
l1GenesisTime: await this.rollup.getL1GenesisTime(),
|
|
195
181
|
ethereumSlotDuration,
|
|
196
182
|
proofSubmissionEpochs: Number(await this.rollup.getProofSubmissionEpochs()),
|
|
183
|
+
targetCommitteeSize: await this.rollup.getTargetCommitteeSize(),
|
|
197
184
|
};
|
|
198
185
|
|
|
199
186
|
this.logger.info(
|
|
@@ -212,19 +199,31 @@ export class EpochsTestContext {
|
|
|
212
199
|
this.logger.warn('Creating and syncing a simulated prover node...');
|
|
213
200
|
const proverNodePrivateKey = this.getNextPrivateKey();
|
|
214
201
|
const proverIndex = this.proverNodes.length + 1;
|
|
215
|
-
const
|
|
202
|
+
const { mockGossipSubNetwork } = this.context;
|
|
203
|
+
const { proverNode } = await withLoggerBindings({ actor: `prover-${proverIndex}` }, () =>
|
|
216
204
|
createAndSyncProverNode(
|
|
217
205
|
proverNodePrivateKey,
|
|
218
|
-
{ ...this.context.config },
|
|
219
206
|
{
|
|
220
|
-
|
|
207
|
+
...this.context.config,
|
|
208
|
+
p2pEnabled: this.context.config.p2pEnabled || mockGossipSubNetwork !== undefined,
|
|
221
209
|
proverId: EthAddress.fromNumber(proverIndex),
|
|
222
210
|
dontStart: opts.dontStart,
|
|
223
211
|
...opts,
|
|
224
212
|
},
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
213
|
+
{
|
|
214
|
+
dataDirectory: join(this.context.config.dataDirectory!, randomBytes(8).toString('hex')),
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
dateProvider: this.context.dateProvider,
|
|
218
|
+
p2pClientDeps: {
|
|
219
|
+
p2pServiceFactory: mockGossipSubNetwork ? getMockPubSubP2PServiceFactory(mockGossipSubNetwork) : undefined,
|
|
220
|
+
rpcTxProviders: [this.context.aztecNode],
|
|
221
|
+
},
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
prefilledPublicData: this.context.prefilledPublicData ?? [],
|
|
225
|
+
dontStart: opts.dontStart,
|
|
226
|
+
},
|
|
228
227
|
),
|
|
229
228
|
);
|
|
230
229
|
this.proverNodes.push(proverNode);
|
|
@@ -238,15 +237,13 @@ export class EpochsTestContext {
|
|
|
238
237
|
|
|
239
238
|
public createValidatorNode(
|
|
240
239
|
privateKeys: `0x${string}`[],
|
|
241
|
-
opts: Partial<AztecNodeConfig> & {
|
|
240
|
+
opts: Partial<AztecNodeConfig> & { dontStartSequencer?: boolean } = {},
|
|
242
241
|
) {
|
|
243
242
|
this.logger.warn('Creating and syncing a validator node...');
|
|
244
243
|
return this.createNode({ ...opts, disableValidator: false, validatorPrivateKeys: new SecretValue(privateKeys) });
|
|
245
244
|
}
|
|
246
245
|
|
|
247
|
-
private async createNode(
|
|
248
|
-
opts: Partial<AztecNodeConfig> & { txDelayerMaxInclusionTimeIntoSlot?: number; dontStartSequencer?: boolean } = {},
|
|
249
|
-
) {
|
|
246
|
+
private async createNode(opts: Partial<AztecNodeConfig> & { dontStartSequencer?: boolean } = {}) {
|
|
250
247
|
const nodeIndex = this.nodes.length + 1;
|
|
251
248
|
const actorPrefix = opts.disableValidator ? 'node' : 'validator';
|
|
252
249
|
const { mockGossipSubNetwork } = this.context;
|
|
@@ -275,26 +272,6 @@ export class EpochsTestContext {
|
|
|
275
272
|
),
|
|
276
273
|
);
|
|
277
274
|
|
|
278
|
-
// REFACTOR: We're getting too much into the internals of the sequencer here.
|
|
279
|
-
// We should have a single method for constructing an aztec node that returns a TestAztecNodeService
|
|
280
|
-
// which directly exposes the delayer and sets any test config.
|
|
281
|
-
if (opts.txDelayerMaxInclusionTimeIntoSlot !== undefined) {
|
|
282
|
-
this.logger.info(
|
|
283
|
-
`Setting tx delayer max inclusion time into slot to ${opts.txDelayerMaxInclusionTimeIntoSlot} seconds`,
|
|
284
|
-
);
|
|
285
|
-
// Here we reach into the sequencer and hook in a tx delayer. The problem is that the sequencer's l1 utils only uses a public client, not a wallet.
|
|
286
|
-
// The delayer needs a wallet (a client that can sign), so we have to create one here.
|
|
287
|
-
const l1Client = createExtendedL1Client(
|
|
288
|
-
resolvedConfig.l1RpcUrls!,
|
|
289
|
-
resolvedConfig.publisherPrivateKeys![0]!.getValue(),
|
|
290
|
-
);
|
|
291
|
-
const sequencer = node.getSequencer() as TestSequencerClient;
|
|
292
|
-
const publisher = sequencer.sequencer.publisher;
|
|
293
|
-
const delayed = DelayedTxUtils.fromL1TxUtils(publisher.l1TxUtils, this.L1_BLOCK_TIME_IN_S, l1Client);
|
|
294
|
-
delayed.delayer!.setMaxInclusionTimeIntoSlot(opts.txDelayerMaxInclusionTimeIntoSlot);
|
|
295
|
-
publisher.l1TxUtils = delayed;
|
|
296
|
-
}
|
|
297
|
-
|
|
298
275
|
this.nodes.push(node);
|
|
299
276
|
return node;
|
|
300
277
|
}
|
|
@@ -346,7 +323,10 @@ export class EpochsTestContext {
|
|
|
346
323
|
this.logger.info(`Waiting until last slot of submission window for epoch ${epochNumber} at ${date}`, {
|
|
347
324
|
oneSlotBefore,
|
|
348
325
|
});
|
|
349
|
-
|
|
326
|
+
// Use a timeout that accounts for the full proof submission window
|
|
327
|
+
const proofSubmissionWindowDuration =
|
|
328
|
+
this.constants.proofSubmissionEpochs * this.epochDuration * this.L2_SLOT_DURATION_IN_S;
|
|
329
|
+
await waitUntilL1Timestamp(this.l1Client, oneSlotBefore, undefined, proofSubmissionWindowDuration * 2);
|
|
350
330
|
}
|
|
351
331
|
|
|
352
332
|
/** Waits for the aztec node to sync to the target block number. */
|
|
@@ -398,15 +378,13 @@ export class EpochsTestContext {
|
|
|
398
378
|
|
|
399
379
|
/** Creates an L1 client using a fresh account with funds from anvil, with a tx delayer already set up. */
|
|
400
380
|
public async createL1Client() {
|
|
401
|
-
const
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
this.l1Client.chain,
|
|
406
|
-
),
|
|
407
|
-
this.context.dateProvider!,
|
|
408
|
-
{ ethereumSlotDuration: this.L1_BLOCK_TIME_IN_S },
|
|
381
|
+
const rawClient = createExtendedL1Client(
|
|
382
|
+
[...this.l1Client.chain.rpcUrls.default.http],
|
|
383
|
+
privateKeyToAccount(this.getNextPrivateKey()),
|
|
384
|
+
this.l1Client.chain,
|
|
409
385
|
);
|
|
386
|
+
const delayer = createDelayer(this.context.dateProvider, { ethereumSlotDuration: this.L1_BLOCK_TIME_IN_S }, {});
|
|
387
|
+
const client = wrapClientWithDelayer(rawClient, delayer);
|
|
410
388
|
expect(await client.getBalance({ address: client.account.address })).toBeGreaterThan(0n);
|
|
411
389
|
return { client, delayer };
|
|
412
390
|
}
|
|
@@ -423,6 +401,38 @@ export class EpochsTestContext {
|
|
|
423
401
|
expect(result).toBe(expectedSuccess);
|
|
424
402
|
}
|
|
425
403
|
|
|
404
|
+
/** Verifies at least one checkpoint has the target number of blocks (for MBPS validation). */
|
|
405
|
+
public async assertMultipleBlocksPerSlot(targetBlockCount: number) {
|
|
406
|
+
const archiver = (this.context.aztecNode as AztecNodeService).getBlockSource() as Archiver;
|
|
407
|
+
const checkpoints = await archiver.getCheckpoints(CheckpointNumber(1), 50);
|
|
408
|
+
|
|
409
|
+
this.logger.warn(`Retrieved ${checkpoints.length} checkpoints from archiver`, {
|
|
410
|
+
checkpoints: checkpoints.map(pc => pc.checkpoint.getStats()),
|
|
411
|
+
});
|
|
412
|
+
|
|
413
|
+
let expectedBlockNumber = checkpoints[0].checkpoint.blocks[0].number;
|
|
414
|
+
let targetFound = false;
|
|
415
|
+
|
|
416
|
+
for (const checkpoint of checkpoints) {
|
|
417
|
+
const blockCount = checkpoint.checkpoint.blocks.length;
|
|
418
|
+
targetFound = targetFound || blockCount >= targetBlockCount;
|
|
419
|
+
|
|
420
|
+
this.logger.verbose(`Checkpoint ${checkpoint.checkpoint.number} has ${blockCount} blocks`, {
|
|
421
|
+
checkpoint: checkpoint.checkpoint.getStats(),
|
|
422
|
+
});
|
|
423
|
+
|
|
424
|
+
for (let i = 0; i < blockCount; i++) {
|
|
425
|
+
const block = checkpoint.checkpoint.blocks[i];
|
|
426
|
+
expect(block.indexWithinCheckpoint).toBe(i);
|
|
427
|
+
expect(block.checkpointNumber).toBe(checkpoint.checkpoint.number);
|
|
428
|
+
expect(block.number).toBe(expectedBlockNumber);
|
|
429
|
+
expectedBlockNumber++;
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
expect(targetFound).toBe(true);
|
|
434
|
+
}
|
|
435
|
+
|
|
426
436
|
public watchSequencerEvents(
|
|
427
437
|
sequencers: SequencerClient[],
|
|
428
438
|
getMetadata: (i: number) => Record<string, any> = () => ({}),
|
|
@@ -4,11 +4,11 @@ import type { Logger } from '@aztec/aztec.js/log';
|
|
|
4
4
|
import { Fq } from '@aztec/foundation/curves/bn254';
|
|
5
5
|
import { sleep } from '@aztec/foundation/sleep';
|
|
6
6
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
7
|
-
import type { TestWallet } from '@aztec/test-wallet/server';
|
|
8
7
|
|
|
9
8
|
import { jest } from '@jest/globals';
|
|
10
9
|
import type { Hex } from 'viem';
|
|
11
10
|
|
|
11
|
+
import type { TestWallet } from '../test-wallet/test_wallet.js';
|
|
12
12
|
import { FeesTest } from './fees_test.js';
|
|
13
13
|
|
|
14
14
|
jest.setTimeout(300_000);
|