@aztec/end-to-end 0.0.1-commit.9b94fc1 → 0.0.1-commit.9ee6fcc6
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/benchmark.d.ts +3 -2
- package/dest/bench/client_flows/benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/benchmark.js +21 -1
- package/dest/bench/client_flows/client_flows_benchmark.d.ts +15 -16
- package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/client_flows_benchmark.js +136 -141
- 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/bench/client_flows/data_extractor.js +3 -1
- package/dest/bench/utils.d.ts +9 -8
- package/dest/bench/utils.d.ts.map +1 -1
- package/dest/bench/utils.js +31 -19
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +9 -8
- 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 +107 -113
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +20 -14
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +92 -71
- package/dest/e2e_deploy_contract/deploy_test.d.ts +5 -4
- package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
- package/dest/e2e_deploy_contract/deploy_test.js +18 -13
- package/dest/e2e_epochs/epochs_test.d.ts +27 -15
- package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.js +104 -52
- package/dest/e2e_fees/bridging_race.notest.js +4 -6
- package/dest/e2e_fees/fees_test.d.ts +21 -17
- package/dest/e2e_fees/fees_test.d.ts.map +1 -1
- package/dest/e2e_fees/fees_test.js +137 -145
- package/dest/e2e_l1_publisher/write_json.d.ts +4 -3
- package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -1
- package/dest/e2e_l1_publisher/write_json.js +14 -16
- package/dest/e2e_multi_validator/utils.js +1 -1
- package/dest/e2e_nested_contract/nested_contract_test.d.ts +6 -9
- package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
- package/dest/e2e_nested_contract/nested_contract_test.js +30 -40
- package/dest/e2e_p2p/inactivity_slash_test.d.ts +4 -4
- package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -1
- package/dest/e2e_p2p/inactivity_slash_test.js +6 -9
- package/dest/e2e_p2p/p2p_network.d.ts +17 -14
- package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
- package/dest/e2e_p2p/p2p_network.js +141 -115
- package/dest/e2e_p2p/reqresp/utils.d.ts +22 -0
- package/dest/e2e_p2p/reqresp/utils.d.ts.map +1 -0
- package/dest/e2e_p2p/reqresp/utils.js +190 -0
- package/dest/e2e_p2p/shared.d.ts +27 -7
- package/dest/e2e_p2p/shared.d.ts.map +1 -1
- package/dest/e2e_p2p/shared.js +50 -22
- 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 +19 -10
- package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
- package/dest/e2e_token_contract/token_contract_test.js +100 -92
- 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 +16 -23
- package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
- package/dest/fixtures/e2e_prover_test.js +117 -138
- 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 +6 -3
- package/dest/fixtures/fixtures.d.ts.map +1 -1
- package/dest/fixtures/fixtures.js +8 -3
- package/dest/fixtures/get_acvm_config.js +1 -1
- package/dest/fixtures/get_bb_config.d.ts +1 -1
- package/dest/fixtures/get_bb_config.d.ts.map +1 -1
- package/dest/fixtures/get_bb_config.js +5 -5
- package/dest/fixtures/ha_setup.d.ts +71 -0
- package/dest/fixtures/ha_setup.d.ts.map +1 -0
- package/dest/fixtures/ha_setup.js +116 -0
- package/dest/fixtures/index.d.ts +2 -1
- package/dest/fixtures/index.d.ts.map +1 -1
- package/dest/fixtures/index.js +1 -0
- package/dest/fixtures/l1_to_l2_messaging.d.ts +4 -3
- package/dest/fixtures/l1_to_l2_messaging.d.ts.map +1 -1
- package/dest/fixtures/l1_to_l2_messaging.js +2 -2
- package/dest/fixtures/setup.d.ts +239 -0
- package/dest/fixtures/setup.d.ts.map +1 -0
- package/dest/fixtures/setup.js +608 -0
- package/dest/fixtures/setup_p2p_test.d.ts +16 -9
- package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
- package/dest/fixtures/setup_p2p_test.js +43 -32
- 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 +12 -8
- package/dest/fixtures/utils.d.ts +5 -637
- package/dest/fixtures/utils.d.ts.map +1 -1
- package/dest/fixtures/utils.js +4 -647
- package/dest/fixtures/web3signer.js +1 -1
- package/dest/fixtures/with_telemetry_utils.d.ts +2 -2
- package/dest/fixtures/with_telemetry_utils.d.ts.map +1 -1
- package/dest/fixtures/with_telemetry_utils.js +2 -2
- package/dest/quality_of_service/grafana_client.d.ts +41 -0
- package/dest/quality_of_service/grafana_client.d.ts.map +1 -0
- package/dest/quality_of_service/{alert_checker.js → grafana_client.js} +1 -1
- package/dest/quality_of_service/prometheus_client.d.ts +38 -0
- package/dest/quality_of_service/prometheus_client.d.ts.map +1 -0
- package/dest/quality_of_service/prometheus_client.js +67 -0
- package/dest/shared/cross_chain_test_harness.d.ts +18 -6
- package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.js +27 -27
- package/dest/shared/gas_portal_test_harness.d.ts +12 -2
- package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
- package/dest/shared/gas_portal_test_harness.js +3 -3
- package/dest/shared/index.d.ts +3 -2
- package/dest/shared/index.d.ts.map +1 -1
- package/dest/shared/index.js +1 -0
- package/dest/shared/jest_setup.js +41 -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 +4 -4
- package/dest/shared/submit-transactions.d.ts.map +1 -1
- package/dest/shared/submit-transactions.js +9 -11
- package/dest/shared/uniswap_l1_l2.d.ts +3 -27
- package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
- package/dest/shared/uniswap_l1_l2.js +58 -39
- package/dest/simulators/lending_simulator.d.ts +6 -2
- package/dest/simulators/lending_simulator.d.ts.map +1 -1
- package/dest/simulators/lending_simulator.js +6 -6
- 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 +3 -24
- package/dest/spartan/setup_test_wallets.d.ts +15 -5
- package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.js +109 -38
- package/dest/spartan/tx_metrics.d.ts +88 -0
- package/dest/spartan/tx_metrics.d.ts.map +1 -0
- package/dest/spartan/tx_metrics.js +422 -0
- package/dest/spartan/utils/bot.d.ts +28 -0
- package/dest/spartan/utils/bot.d.ts.map +1 -0
- package/dest/spartan/utils/bot.js +142 -0
- package/dest/spartan/utils/chaos.d.ts +79 -0
- package/dest/spartan/utils/chaos.d.ts.map +1 -0
- package/dest/spartan/utils/chaos.js +142 -0
- package/dest/spartan/utils/clients.d.ts +39 -0
- package/dest/spartan/utils/clients.d.ts.map +1 -0
- package/dest/spartan/utils/clients.js +90 -0
- package/dest/spartan/utils/config.d.ts +45 -0
- package/dest/spartan/utils/config.d.ts.map +1 -0
- package/dest/spartan/utils/config.js +23 -0
- package/dest/spartan/utils/health.d.ts +63 -0
- package/dest/spartan/utils/health.d.ts.map +1 -0
- package/dest/spartan/utils/health.js +202 -0
- package/dest/spartan/utils/helm.d.ts +15 -0
- package/dest/spartan/utils/helm.d.ts.map +1 -0
- package/dest/spartan/utils/helm.js +47 -0
- package/dest/spartan/utils/index.d.ts +11 -0
- package/dest/spartan/utils/index.d.ts.map +1 -0
- package/dest/spartan/utils/index.js +22 -0
- package/dest/spartan/utils/k8s.d.ts +128 -0
- package/dest/spartan/utils/k8s.d.ts.map +1 -0
- package/dest/spartan/utils/k8s.js +381 -0
- package/dest/spartan/utils/nodes.d.ts +40 -0
- package/dest/spartan/utils/nodes.d.ts.map +1 -0
- package/dest/spartan/utils/nodes.js +461 -0
- package/dest/spartan/utils/pod_logs.d.ts +25 -0
- package/dest/spartan/utils/pod_logs.d.ts.map +1 -0
- package/dest/spartan/utils/pod_logs.js +74 -0
- package/dest/spartan/utils/scripts.d.ts +30 -0
- package/dest/spartan/utils/scripts.d.ts.map +1 -0
- package/dest/spartan/utils/scripts.js +81 -0
- package/dest/spartan/utils.d.ts +2 -218
- package/dest/spartan/utils.d.ts.map +1 -1
- package/dest/spartan/utils.js +1 -749
- package/dest/test-wallet/test_wallet.d.ts +76 -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 +48 -45
- package/src/bench/client_flows/benchmark.ts +24 -2
- package/src/bench/client_flows/client_flows_benchmark.ts +156 -215
- package/src/bench/client_flows/config.ts +9 -1
- package/src/bench/client_flows/data_extractor.ts +1 -1
- package/src/bench/utils.ts +36 -21
- package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +120 -145
- package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +140 -126
- package/src/e2e_deploy_contract/deploy_test.ts +22 -15
- package/src/e2e_epochs/epochs_test.ts +172 -111
- package/src/e2e_fees/bridging_race.notest.ts +5 -11
- package/src/e2e_fees/fees_test.ts +178 -228
- package/src/e2e_l1_publisher/write_json.ts +16 -16
- package/src/e2e_multi_validator/utils.ts +1 -1
- package/src/e2e_nested_contract/nested_contract_test.ts +35 -56
- package/src/e2e_p2p/inactivity_slash_test.ts +7 -10
- package/src/e2e_p2p/p2p_network.ts +204 -181
- package/src/e2e_p2p/reqresp/utils.ts +256 -0
- package/src/e2e_p2p/shared.ts +87 -29
- 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 +121 -119
- 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 +141 -188
- package/src/fixtures/elu_monitor.ts +126 -0
- package/src/fixtures/fixtures.ts +12 -5
- package/src/fixtures/get_acvm_config.ts +1 -1
- package/src/fixtures/get_bb_config.ts +7 -6
- package/src/fixtures/ha_setup.ts +186 -0
- package/src/fixtures/index.ts +1 -0
- package/src/fixtures/l1_to_l2_messaging.ts +4 -2
- package/src/fixtures/setup.ts +905 -0
- package/src/fixtures/setup_p2p_test.ts +43 -47
- package/src/fixtures/token_utils.ts +10 -6
- package/src/fixtures/utils.ts +27 -966
- package/src/fixtures/web3signer.ts +1 -1
- package/src/fixtures/with_telemetry_utils.ts +2 -2
- package/src/guides/up_quick_start.sh +3 -3
- package/src/quality_of_service/{alert_checker.ts → grafana_client.ts} +1 -1
- package/src/quality_of_service/prometheus_client.ts +113 -0
- package/src/shared/cross_chain_test_harness.ts +30 -43
- package/src/shared/gas_portal_test_harness.ts +3 -3
- package/src/shared/index.ts +2 -1
- package/src/shared/jest_setup.ts +51 -1
- package/src/shared/mock_state_view.ts +188 -0
- package/src/shared/submit-transactions.ts +11 -16
- package/src/shared/uniswap_l1_l2.ts +86 -102
- package/src/simulators/lending_simulator.ts +11 -7
- package/src/simulators/token_simulator.ts +6 -30
- package/src/spartan/DEVELOP.md +7 -0
- package/src/spartan/setup_test_wallets.ts +167 -27
- package/src/spartan/tx_metrics.ts +376 -0
- package/src/spartan/utils/bot.ts +188 -0
- package/src/spartan/utils/chaos.ts +253 -0
- package/src/spartan/utils/clients.ts +100 -0
- package/src/spartan/utils/config.ts +29 -0
- package/src/spartan/utils/health.ts +255 -0
- package/src/spartan/utils/helm.ts +84 -0
- package/src/spartan/utils/index.ts +71 -0
- package/src/spartan/utils/k8s.ts +535 -0
- package/src/spartan/utils/nodes.ts +543 -0
- package/src/spartan/utils/pod_logs.ts +99 -0
- package/src/spartan/utils/scripts.ts +99 -0
- package/src/spartan/utils.ts +1 -942
- package/src/test-wallet/test_wallet.ts +294 -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/dest/fixtures/setup_l1_contracts.d.ts +0 -477
- package/dest/fixtures/setup_l1_contracts.d.ts.map +0 -1
- package/dest/fixtures/setup_l1_contracts.js +0 -17
- package/dest/fixtures/snapshot_manager.d.ts +0 -95
- package/dest/fixtures/snapshot_manager.d.ts.map +0 -1
- package/dest/fixtures/snapshot_manager.js +0 -505
- package/dest/quality_of_service/alert_checker.d.ts +0 -41
- package/dest/quality_of_service/alert_checker.d.ts.map +0 -1
- package/src/fixtures/setup_l1_contracts.ts +0 -26
- package/src/fixtures/snapshot_manager.ts +0 -665
|
@@ -4,16 +4,19 @@ import { getContractInstanceFromInstantiationParams } from '@aztec/aztec.js/cont
|
|
|
4
4
|
import { Fr } from '@aztec/aztec.js/fields';
|
|
5
5
|
import { MerkleTreeId } from '@aztec/aztec.js/trees';
|
|
6
6
|
import { EpochCache } from '@aztec/epoch-cache';
|
|
7
|
-
import {
|
|
7
|
+
import { createExtendedL1Client } from '@aztec/ethereum/client';
|
|
8
|
+
import { DefaultL1ContractsConfig } from '@aztec/ethereum/config';
|
|
8
9
|
import { RollupContract } from '@aztec/ethereum/contracts';
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
10
|
+
import { createDelayer, waitUntilL1Timestamp, wrapClientWithDelayer } from '@aztec/ethereum/l1-tx-utils';
|
|
11
|
+
import { ChainMonitor } from '@aztec/ethereum/test';
|
|
12
|
+
import { CheckpointNumber, EpochNumber } from '@aztec/foundation/branded-types';
|
|
11
13
|
import { SecretValue } from '@aztec/foundation/config';
|
|
12
|
-
import { randomBytes } from '@aztec/foundation/crypto';
|
|
13
|
-
import {
|
|
14
|
+
import { randomBytes } from '@aztec/foundation/crypto/random';
|
|
15
|
+
import { withLoggerBindings } from '@aztec/foundation/log/server';
|
|
14
16
|
import { retryUntil } from '@aztec/foundation/retry';
|
|
15
17
|
import { sleep } from '@aztec/foundation/sleep';
|
|
16
18
|
import { SpamContract } from '@aztec/noir-test-contracts.js/Spam';
|
|
19
|
+
import { TestContract } from '@aztec/noir-test-contracts.js/Test';
|
|
17
20
|
import { getMockPubSubP2PServiceFactory } from '@aztec/p2p/test-helpers';
|
|
18
21
|
import { SequencerState } from '@aztec/sequencer-client';
|
|
19
22
|
import { EthAddress } from '@aztec/stdlib/block';
|
|
@@ -22,7 +25,7 @@ import { tryStop } from '@aztec/stdlib/interfaces/server';
|
|
|
22
25
|
import { join } from 'path';
|
|
23
26
|
import { privateKeyToAccount } from 'viem/accounts';
|
|
24
27
|
import { createAndSyncProverNode, getPrivateKeyFromIndex, setup } from '../fixtures/utils.js';
|
|
25
|
-
export const
|
|
28
|
+
export const WORLD_STATE_CHECKPOINT_HISTORY = 2;
|
|
26
29
|
export const WORLD_STATE_BLOCK_CHECK_INTERVAL = 50;
|
|
27
30
|
export const ARCHIVER_POLL_INTERVAL = 50;
|
|
28
31
|
export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
|
|
@@ -53,10 +56,12 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
|
|
|
53
56
|
static getSlotDurations(opts = {}) {
|
|
54
57
|
const envEthereumSlotDuration = process.env.L1_BLOCK_TIME ? parseInt(process.env.L1_BLOCK_TIME) : DEFAULT_L1_BLOCK_TIME;
|
|
55
58
|
const ethereumSlotDuration = opts.ethereumSlotDuration ?? envEthereumSlotDuration;
|
|
56
|
-
const aztecSlotDuration = opts.aztecSlotDuration ??
|
|
59
|
+
const aztecSlotDuration = opts.aztecSlotDuration ?? (opts.aztecSlotDurationInL1Slots ?? 2) * ethereumSlotDuration;
|
|
57
60
|
const aztecEpochDuration = opts.aztecEpochDuration ?? 6;
|
|
58
61
|
const aztecProofSubmissionEpochs = opts.aztecProofSubmissionEpochs ?? 1;
|
|
62
|
+
const l1PublishingTime = opts.l1PublishingTime ?? 1;
|
|
59
63
|
return {
|
|
64
|
+
l1PublishingTime,
|
|
60
65
|
ethereumSlotDuration,
|
|
61
66
|
aztecSlotDuration,
|
|
62
67
|
aztecEpochDuration,
|
|
@@ -64,7 +69,7 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
|
|
|
64
69
|
};
|
|
65
70
|
}
|
|
66
71
|
async setup(opts = {}) {
|
|
67
|
-
const { ethereumSlotDuration, aztecSlotDuration, aztecEpochDuration, aztecProofSubmissionEpochs } = EpochsTestContext.getSlotDurations(opts);
|
|
72
|
+
const { ethereumSlotDuration, aztecSlotDuration, aztecEpochDuration, aztecProofSubmissionEpochs, l1PublishingTime } = EpochsTestContext.getSlotDurations(opts);
|
|
68
73
|
this.L1_BLOCK_TIME_IN_S = ethereumSlotDuration;
|
|
69
74
|
this.L2_SLOT_DURATION_IN_S = aztecSlotDuration;
|
|
70
75
|
// Set up system without any account nor protocol contracts
|
|
@@ -74,8 +79,6 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
|
|
|
74
79
|
checkIntervalMs: 50,
|
|
75
80
|
archiverPollingIntervalMS: ARCHIVER_POLL_INTERVAL,
|
|
76
81
|
worldStateBlockCheckIntervalMS: WORLD_STATE_BLOCK_CHECK_INTERVAL,
|
|
77
|
-
skipProtocolContracts: true,
|
|
78
|
-
salt: 1,
|
|
79
82
|
aztecEpochDuration,
|
|
80
83
|
aztecSlotDuration,
|
|
81
84
|
ethereumSlotDuration,
|
|
@@ -89,10 +92,16 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
|
|
|
89
92
|
// using the prover's eth address if the proverId is used for something in the rollup contract
|
|
90
93
|
// Use numeric EthAddress for deterministic prover id
|
|
91
94
|
proverId: EthAddress.fromNumber(1),
|
|
92
|
-
|
|
95
|
+
worldStateCheckpointHistory: WORLD_STATE_CHECKPOINT_HISTORY,
|
|
93
96
|
exitDelaySeconds: DefaultL1ContractsConfig.exitDelaySeconds,
|
|
94
97
|
slasherFlavor: 'none',
|
|
98
|
+
l1PublishingTime,
|
|
95
99
|
...opts
|
|
100
|
+
}, // Use checkpointed chain tip for PXE by default to avoid issues with blocks being dropped due to pruned anchor blocks.
|
|
101
|
+
// Can be overridden via opts.pxeOpts.
|
|
102
|
+
{
|
|
103
|
+
syncChainTip: 'checkpointed',
|
|
104
|
+
...opts.pxeOpts
|
|
96
105
|
});
|
|
97
106
|
this.context = context;
|
|
98
107
|
this.proverNodes = context.proverNode ? [
|
|
@@ -109,10 +118,8 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
|
|
|
109
118
|
});
|
|
110
119
|
// Loop that tracks L1 and L2 block numbers and logs whenever there's a new one.
|
|
111
120
|
this.monitor = new ChainMonitor(this.rollup, context.dateProvider, this.logger).start();
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
this.proverDelayer = context.proverNode ? context.proverNode.publisher.l1TxUtils.delayer : undefined;
|
|
115
|
-
this.sequencerDelayer = context.sequencer ? context.sequencer.sequencer.publisher.l1TxUtils.delayer : undefined;
|
|
121
|
+
this.proverDelayer = context.proverDelayer;
|
|
122
|
+
this.sequencerDelayer = context.sequencerDelayer;
|
|
116
123
|
if (context.proverNode && !this.proverDelayer || context.sequencer && !this.sequencerDelayer) {
|
|
117
124
|
throw new Error(`Could not find prover or sequencer delayer`);
|
|
118
125
|
}
|
|
@@ -124,7 +131,9 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
|
|
|
124
131
|
l1StartBlock: await this.rollup.getL1StartBlock(),
|
|
125
132
|
l1GenesisTime: await this.rollup.getL1GenesisTime(),
|
|
126
133
|
ethereumSlotDuration,
|
|
127
|
-
proofSubmissionEpochs: Number(await this.rollup.getProofSubmissionEpochs())
|
|
134
|
+
proofSubmissionEpochs: Number(await this.rollup.getProofSubmissionEpochs()),
|
|
135
|
+
targetCommitteeSize: await this.rollup.getTargetCommitteeSize(),
|
|
136
|
+
rollupManaLimit: Number(await this.rollup.getManaLimit())
|
|
128
137
|
};
|
|
129
138
|
this.logger.info(`L2 genesis at L1 block ${this.constants.l1StartBlock} (timestamp ${this.constants.l1GenesisTime})`);
|
|
130
139
|
}
|
|
@@ -137,16 +146,29 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
|
|
|
137
146
|
async createProverNode(opts = {}) {
|
|
138
147
|
this.logger.warn('Creating and syncing a simulated prover node...');
|
|
139
148
|
const proverNodePrivateKey = this.getNextPrivateKey();
|
|
140
|
-
const
|
|
141
|
-
const
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
149
|
+
const proverIndex = this.proverNodes.length + 1;
|
|
150
|
+
const { mockGossipSubNetwork } = this.context;
|
|
151
|
+
const { proverNode } = await withLoggerBindings({
|
|
152
|
+
actor: `prover-${proverIndex}`
|
|
153
|
+
}, ()=>createAndSyncProverNode(proverNodePrivateKey, {
|
|
154
|
+
...this.context.config,
|
|
155
|
+
p2pEnabled: this.context.config.p2pEnabled || mockGossipSubNetwork !== undefined,
|
|
156
|
+
proverId: EthAddress.fromNumber(proverIndex),
|
|
146
157
|
dontStart: opts.dontStart,
|
|
147
158
|
...opts
|
|
148
|
-
},
|
|
149
|
-
|
|
159
|
+
}, {
|
|
160
|
+
dataDirectory: join(this.context.config.dataDirectory, randomBytes(8).toString('hex'))
|
|
161
|
+
}, {
|
|
162
|
+
dateProvider: this.context.dateProvider,
|
|
163
|
+
p2pClientDeps: {
|
|
164
|
+
p2pServiceFactory: mockGossipSubNetwork ? getMockPubSubP2PServiceFactory(mockGossipSubNetwork) : undefined,
|
|
165
|
+
rpcTxProviders: [
|
|
166
|
+
this.context.aztecNode
|
|
167
|
+
]
|
|
168
|
+
}
|
|
169
|
+
}, {
|
|
170
|
+
prefilledPublicData: this.context.prefilledPublicData ?? [],
|
|
171
|
+
dontStart: opts.dontStart
|
|
150
172
|
}));
|
|
151
173
|
this.proverNodes.push(proverNode);
|
|
152
174
|
return proverNode;
|
|
@@ -167,7 +189,8 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
|
|
|
167
189
|
});
|
|
168
190
|
}
|
|
169
191
|
async createNode(opts = {}) {
|
|
170
|
-
const
|
|
192
|
+
const nodeIndex = this.nodes.length + 1;
|
|
193
|
+
const actorPrefix = opts.disableValidator ? 'node' : 'validator';
|
|
171
194
|
const { mockGossipSubNetwork } = this.context;
|
|
172
195
|
const resolvedConfig = {
|
|
173
196
|
...this.context.config,
|
|
@@ -175,35 +198,25 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
|
|
|
175
198
|
};
|
|
176
199
|
const p2pEnabled = resolvedConfig.p2pEnabled || mockGossipSubNetwork !== undefined;
|
|
177
200
|
const p2pIp = resolvedConfig.p2pIp ?? (p2pEnabled ? '127.0.0.1' : undefined);
|
|
178
|
-
const node = await
|
|
201
|
+
const node = await withLoggerBindings({
|
|
202
|
+
actor: `${actorPrefix}-${nodeIndex}`
|
|
203
|
+
}, ()=>AztecNodeService.createAndSync({
|
|
179
204
|
...resolvedConfig,
|
|
180
205
|
dataDirectory: join(this.context.config.dataDirectory, randomBytes(8).toString('hex')),
|
|
181
206
|
validatorPrivateKeys: opts.validatorPrivateKeys ?? new SecretValue([]),
|
|
207
|
+
nodeId: resolvedConfig.nodeId || `${actorPrefix}-${nodeIndex}`,
|
|
182
208
|
p2pEnabled,
|
|
183
209
|
p2pIp
|
|
184
210
|
}, {
|
|
185
211
|
dateProvider: this.context.dateProvider,
|
|
186
212
|
p2pClientDeps: {
|
|
187
213
|
p2pServiceFactory: mockGossipSubNetwork ? getMockPubSubP2PServiceFactory(mockGossipSubNetwork) : undefined
|
|
188
|
-
}
|
|
214
|
+
},
|
|
215
|
+
slashingProtectionDb: opts.slashingProtectionDb
|
|
189
216
|
}, {
|
|
190
217
|
prefilledPublicData: this.context.prefilledPublicData,
|
|
191
218
|
...opts
|
|
192
219
|
}));
|
|
193
|
-
// REFACTOR: We're getting too much into the internals of the sequencer here.
|
|
194
|
-
// We should have a single method for constructing an aztec node that returns a TestAztecNodeService
|
|
195
|
-
// which directly exposes the delayer and sets any test config.
|
|
196
|
-
if (opts.txDelayerMaxInclusionTimeIntoSlot !== undefined) {
|
|
197
|
-
this.logger.info(`Setting tx delayer max inclusion time into slot to ${opts.txDelayerMaxInclusionTimeIntoSlot} seconds`);
|
|
198
|
-
// 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.
|
|
199
|
-
// The delayer needs a wallet (a client that can sign), so we have to create one here.
|
|
200
|
-
const l1Client = createExtendedL1Client(resolvedConfig.l1RpcUrls, resolvedConfig.publisherPrivateKeys[0].getValue());
|
|
201
|
-
const sequencer = node.getSequencer();
|
|
202
|
-
const publisher = sequencer.sequencer.publisher;
|
|
203
|
-
const delayed = DelayedTxUtils.fromL1TxUtils(publisher.l1TxUtils, this.L1_BLOCK_TIME_IN_S, l1Client);
|
|
204
|
-
delayed.delayer.setMaxInclusionTimeIntoSlot(opts.txDelayerMaxInclusionTimeIntoSlot);
|
|
205
|
-
publisher.l1TxUtils = delayed;
|
|
206
|
-
}
|
|
207
220
|
this.nodes.push(node);
|
|
208
221
|
return node;
|
|
209
222
|
}
|
|
@@ -217,11 +230,11 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
|
|
|
217
230
|
await waitUntilL1Timestamp(this.l1Client, start - BigInt(this.L1_BLOCK_TIME_IN_S), undefined, 30 * this.epochDuration);
|
|
218
231
|
return start;
|
|
219
232
|
}
|
|
220
|
-
/** Waits until the given
|
|
221
|
-
await retryUntil(()=>Promise.resolve(target <= this.monitor.checkpointNumber), `Wait until
|
|
233
|
+
/** Waits until the given checkpoint number is mined. */ async waitUntilCheckpointNumber(target, timeout = 120) {
|
|
234
|
+
await retryUntil(()=>Promise.resolve(target <= this.monitor.checkpointNumber), `Wait until checkpoint ${target}`, timeout, 0.1);
|
|
222
235
|
}
|
|
223
|
-
/** Waits until the given
|
|
224
|
-
await retryUntil(()=>Promise.resolve(
|
|
236
|
+
/** Waits until the given checkpoint number is marked as proven. */ async waitUntilProvenCheckpointNumber(target, timeout = 120) {
|
|
237
|
+
await retryUntil(()=>Promise.resolve(target <= this.monitor.provenCheckpointNumber), `Wait proven checkpoint ${target}`, timeout, 0.1);
|
|
225
238
|
return this.monitor.provenCheckpointNumber;
|
|
226
239
|
}
|
|
227
240
|
/** Waits until the last slot of the proof submission window for a given epoch. */ async waitUntilLastSlotOfProofSubmissionWindow(epochNumber) {
|
|
@@ -231,7 +244,9 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
|
|
|
231
244
|
this.logger.info(`Waiting until last slot of submission window for epoch ${epochNumber} at ${date}`, {
|
|
232
245
|
oneSlotBefore
|
|
233
246
|
});
|
|
234
|
-
|
|
247
|
+
// Use a timeout that accounts for the full proof submission window
|
|
248
|
+
const proofSubmissionWindowDuration = this.constants.proofSubmissionEpochs * this.epochDuration * this.L2_SLOT_DURATION_IN_S;
|
|
249
|
+
await waitUntilL1Timestamp(this.l1Client, oneSlotBefore, undefined, proofSubmissionWindowDuration * 2);
|
|
235
250
|
}
|
|
236
251
|
/** Waits for the aztec node to sync to the target block number. */ async waitForNodeToSync(blockNumber, type) {
|
|
237
252
|
const waitTime = ARCHIVER_POLL_INTERVAL + WORLD_STATE_BLOCK_CHECK_INTERVAL;
|
|
@@ -249,7 +264,7 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
|
|
|
249
264
|
tips
|
|
250
265
|
});
|
|
251
266
|
if (type === 'proven') {
|
|
252
|
-
synched = tips.proven.number >= blockNumber && syncState.latestBlockNumber >= blockNumber;
|
|
267
|
+
synched = tips.proven.block.number >= blockNumber && syncState.latestBlockNumber >= blockNumber;
|
|
253
268
|
} else if (type === 'finalized') {
|
|
254
269
|
synched = syncState.finalizedBlockNumber >= blockNumber;
|
|
255
270
|
} else {
|
|
@@ -268,12 +283,25 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
|
|
|
268
283
|
await wallet.registerContract(instance, SpamContract.artifact);
|
|
269
284
|
return SpamContract.at(instance.address, wallet);
|
|
270
285
|
}
|
|
286
|
+
/** Registers the TestContract on the given wallet. */ async registerTestContract(wallet, salt = Fr.ZERO) {
|
|
287
|
+
const instance = await getContractInstanceFromInstantiationParams(TestContract.artifact, {
|
|
288
|
+
constructorArgs: [],
|
|
289
|
+
constructorArtifact: undefined,
|
|
290
|
+
salt,
|
|
291
|
+
publicKeys: undefined,
|
|
292
|
+
deployer: undefined
|
|
293
|
+
});
|
|
294
|
+
await wallet.registerContract(instance, TestContract.artifact);
|
|
295
|
+
return TestContract.at(instance.address, wallet);
|
|
296
|
+
}
|
|
271
297
|
/** Creates an L1 client using a fresh account with funds from anvil, with a tx delayer already set up. */ async createL1Client() {
|
|
272
|
-
const
|
|
298
|
+
const rawClient = createExtendedL1Client([
|
|
273
299
|
...this.l1Client.chain.rpcUrls.default.http
|
|
274
|
-
], privateKeyToAccount(this.getNextPrivateKey()), this.l1Client.chain)
|
|
300
|
+
], privateKeyToAccount(this.getNextPrivateKey()), this.l1Client.chain);
|
|
301
|
+
const delayer = createDelayer(this.context.dateProvider, {
|
|
275
302
|
ethereumSlotDuration: this.L1_BLOCK_TIME_IN_S
|
|
276
|
-
});
|
|
303
|
+
}, {});
|
|
304
|
+
const client = wrapClientWithDelayer(rawClient, delayer);
|
|
277
305
|
expect(await client.getBalance({
|
|
278
306
|
address: client.account.address
|
|
279
307
|
})).toBeGreaterThan(0n);
|
|
@@ -291,14 +319,38 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
|
|
|
291
319
|
]).then((_)=>true).catch((_)=>false);
|
|
292
320
|
expect(result).toBe(expectedSuccess);
|
|
293
321
|
}
|
|
322
|
+
/** Verifies at least one checkpoint has the target number of blocks (for MBPS validation). */ async assertMultipleBlocksPerSlot(targetBlockCount) {
|
|
323
|
+
const archiver = this.context.aztecNode.getBlockSource();
|
|
324
|
+
const checkpoints = await archiver.getCheckpoints(CheckpointNumber(1), 50);
|
|
325
|
+
this.logger.warn(`Retrieved ${checkpoints.length} checkpoints from archiver`, {
|
|
326
|
+
checkpoints: checkpoints.map((pc)=>pc.checkpoint.getStats())
|
|
327
|
+
});
|
|
328
|
+
let expectedBlockNumber = checkpoints[0].checkpoint.blocks[0].number;
|
|
329
|
+
let targetFound = false;
|
|
330
|
+
for (const checkpoint of checkpoints){
|
|
331
|
+
const blockCount = checkpoint.checkpoint.blocks.length;
|
|
332
|
+
targetFound = targetFound || blockCount >= targetBlockCount;
|
|
333
|
+
this.logger.verbose(`Checkpoint ${checkpoint.checkpoint.number} has ${blockCount} blocks`, {
|
|
334
|
+
checkpoint: checkpoint.checkpoint.getStats()
|
|
335
|
+
});
|
|
336
|
+
for(let i = 0; i < blockCount; i++){
|
|
337
|
+
const block = checkpoint.checkpoint.blocks[i];
|
|
338
|
+
expect(block.indexWithinCheckpoint).toBe(i);
|
|
339
|
+
expect(block.checkpointNumber).toBe(checkpoint.checkpoint.number);
|
|
340
|
+
expect(block.number).toBe(expectedBlockNumber);
|
|
341
|
+
expectedBlockNumber++;
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
expect(targetFound).toBe(true);
|
|
345
|
+
}
|
|
294
346
|
watchSequencerEvents(sequencers, getMetadata = ()=>({})) {
|
|
295
347
|
const stateChanges = [];
|
|
296
348
|
const failEvents = [];
|
|
297
|
-
// Note we do not include the 'tx-count-check-failed' event here, since it is fine if we dont build
|
|
349
|
+
// Note we do not include the 'block-tx-count-check-failed' event here, since it is fine if we dont build
|
|
298
350
|
// due to lack of txs available.
|
|
299
351
|
const failEventsKeys = [
|
|
300
352
|
'block-build-failed',
|
|
301
|
-
'
|
|
353
|
+
'checkpoint-publish-failed',
|
|
302
354
|
'proposer-rollup-check-failed'
|
|
303
355
|
];
|
|
304
356
|
const makeEvent = (i, eventName, args)=>({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SchnorrAccountContract } from '@aztec/accounts/schnorr';
|
|
2
2
|
import { Fr } from '@aztec/aztec.js/fields';
|
|
3
|
-
import { Fq } from '@aztec/foundation/
|
|
3
|
+
import { Fq } from '@aztec/foundation/curves/bn254';
|
|
4
4
|
import { sleep } from '@aztec/foundation/sleep';
|
|
5
5
|
import { jest } from '@jest/globals';
|
|
6
6
|
import { FeesTest } from './fees_test.js';
|
|
@@ -16,10 +16,8 @@ describe('e2e_fees bridging_race', ()=>{
|
|
|
16
16
|
minTxsPerBlock: 0
|
|
17
17
|
});
|
|
18
18
|
beforeAll(async ()=>{
|
|
19
|
-
await t.
|
|
20
|
-
|
|
21
|
-
await t.applySetupFeeJuiceSnapshot();
|
|
22
|
-
({ wallet, logger } = await t.setup());
|
|
19
|
+
await t.setup();
|
|
20
|
+
({ wallet, logger } = t);
|
|
23
21
|
});
|
|
24
22
|
afterAll(async ()=>{
|
|
25
23
|
await t.teardown();
|
|
@@ -56,7 +54,7 @@ describe('e2e_fees bridging_race', ()=>{
|
|
|
56
54
|
const { claimSecret: secret, messageLeafIndex: index } = claim;
|
|
57
55
|
await t.feeJuiceContract.methods.claim(bobsAddress, claim.claimAmount, secret, index).send({
|
|
58
56
|
from: bobsAddress
|
|
59
|
-
})
|
|
57
|
+
});
|
|
60
58
|
const [balance] = await t.getGasBalanceFn(bobsAddress);
|
|
61
59
|
expect(balance).toEqual(claim.claimAmount);
|
|
62
60
|
});
|
|
@@ -2,8 +2,10 @@ import type { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
|
2
2
|
import { type Logger } from '@aztec/aztec.js/log';
|
|
3
3
|
import type { AztecNode } from '@aztec/aztec.js/node';
|
|
4
4
|
import { CheatCodes } from '@aztec/aztec/testing';
|
|
5
|
-
import {
|
|
5
|
+
import { RollupContract } from '@aztec/ethereum/contracts';
|
|
6
|
+
import type { DeployAztecL1ContractsArgs } from '@aztec/ethereum/deploy-aztec-l1-contracts';
|
|
6
7
|
import { ChainMonitor } from '@aztec/ethereum/test';
|
|
8
|
+
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
7
9
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
8
10
|
import { AppSubscriptionContract } from '@aztec/noir-contracts.js/AppSubscription';
|
|
9
11
|
import { FPCContract } from '@aztec/noir-contracts.js/FPC';
|
|
@@ -12,12 +14,13 @@ import { SponsoredFPCContract } from '@aztec/noir-contracts.js/SponsoredFPC';
|
|
|
12
14
|
import { TokenContract as BananaCoin } from '@aztec/noir-contracts.js/Token';
|
|
13
15
|
import { CounterContract } from '@aztec/noir-test-contracts.js/Counter';
|
|
14
16
|
import { GasSettings } from '@aztec/stdlib/gas';
|
|
15
|
-
import {
|
|
16
|
-
import { type
|
|
17
|
-
import { type BalancesFn
|
|
17
|
+
import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
|
|
18
|
+
import { type EndToEndContext, type SetupOptions } from '../fixtures/setup.js';
|
|
19
|
+
import { type BalancesFn } from '../fixtures/utils.js';
|
|
18
20
|
import { type GasBridgingTestHarness } from '../shared/gas_portal_test_harness.js';
|
|
21
|
+
import { TestWallet } from '../test-wallet/test_wallet.js';
|
|
19
22
|
/**
|
|
20
|
-
* Test fixture for testing fees. Provides the following
|
|
23
|
+
* Test fixture for testing fees. Provides the following setup steps:
|
|
21
24
|
* InitialAccounts: Initializes 3 Schnorr account contracts.
|
|
22
25
|
* PublicDeployAccounts: Deploys the accounts publicly.
|
|
23
26
|
* DeployFeeJuice: Deploys the Fee Juice contract.
|
|
@@ -28,10 +31,12 @@ import { type GasBridgingTestHarness } from '../shared/gas_portal_test_harness.j
|
|
|
28
31
|
*/
|
|
29
32
|
export declare class FeesTest {
|
|
30
33
|
private numberOfAccounts;
|
|
31
|
-
private
|
|
34
|
+
private setupOptions;
|
|
32
35
|
private accounts;
|
|
36
|
+
context: EndToEndContext;
|
|
33
37
|
logger: Logger;
|
|
34
38
|
aztecNode: AztecNode;
|
|
39
|
+
aztecNodeAdmin: AztecNodeAdmin;
|
|
35
40
|
cheatCodes: CheatCodes;
|
|
36
41
|
wallet: TestWallet;
|
|
37
42
|
aliceAddress: AztecAddress;
|
|
@@ -48,18 +53,17 @@ export declare class FeesTest {
|
|
|
48
53
|
counterContract: CounterContract;
|
|
49
54
|
subscriptionContract: AppSubscriptionContract;
|
|
50
55
|
feeJuiceBridgeTestHarness: GasBridgingTestHarness;
|
|
51
|
-
context: SubsystemsContext;
|
|
52
56
|
chainMonitor: ChainMonitor;
|
|
53
57
|
getCoinbaseBalance: () => Promise<bigint>;
|
|
54
58
|
getCoinbaseSequencerRewards: () => Promise<bigint>;
|
|
55
59
|
getGasBalanceFn: BalancesFn;
|
|
56
60
|
getBananaPublicBalanceFn: BalancesFn;
|
|
57
61
|
getBananaPrivateBalanceFn: BalancesFn;
|
|
58
|
-
getProverFee: (blockNumber:
|
|
62
|
+
getProverFee: (blockNumber: BlockNumber) => Promise<bigint>;
|
|
59
63
|
readonly ALICE_INITIAL_BANANAS: bigint;
|
|
60
64
|
readonly SUBSCRIPTION_AMOUNT: bigint;
|
|
61
65
|
readonly APP_SPONSORED_TX_GAS_LIMIT: bigint;
|
|
62
|
-
constructor(testName: string, numberOfAccounts?: number, setupOptions?: Partial<SetupOptions &
|
|
66
|
+
constructor(testName: string, numberOfAccounts?: number, setupOptions?: Partial<SetupOptions & DeployAztecL1ContractsArgs>);
|
|
63
67
|
setup(): Promise<this>;
|
|
64
68
|
teardown(): Promise<void>;
|
|
65
69
|
setIsMarkingAsProven(b: boolean): void;
|
|
@@ -71,14 +75,14 @@ export declare class FeesTest {
|
|
|
71
75
|
mintAndBridgeFeeJuice(minter: AztecAddress, recipient: AztecAddress): Promise<void>;
|
|
72
76
|
/** Alice mints bananaCoin tokens privately to the target address and redeems them. */
|
|
73
77
|
mintPrivateBananas(amount: bigint, address: AztecAddress): Promise<void>;
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
78
|
+
applyBaseSetup(): Promise<void>;
|
|
79
|
+
applyInitialAccounts(): Promise<void>;
|
|
80
|
+
applyPublicDeployAccounts(): Promise<void>;
|
|
81
|
+
applySetupFeeJuice(): Promise<void>;
|
|
82
|
+
applyDeployBananaToken(): Promise<void>;
|
|
83
|
+
applyFPCSetup(): Promise<void>;
|
|
84
|
+
applySponsoredFPCSetup(): Promise<void>;
|
|
81
85
|
applyFundAliceWithBananas(): Promise<void>;
|
|
82
86
|
applyFundAliceWithPrivateBananas(): Promise<void>;
|
|
83
87
|
}
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlc190ZXN0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZTJlX2ZlZXMvZmVlc190ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFpQyxNQUFNLHNCQUFzQixDQUFDO0FBRWpGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEtBQUssRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRzNELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsYUFBYSxJQUFJLFVBQVUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUd4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFL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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fees_test.d.ts","sourceRoot":"","sources":["../../src/e2e_fees/fees_test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"fees_test.d.ts","sourceRoot":"","sources":["../../src/e2e_fees/fees_test.ts"],"names":[],"mappings":"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"}
|