@aztec/end-to-end 0.0.1-commit.fce3e4f → 0.0.1-commit.ffe5b04ea
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 +25 -15
- package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.js +100 -51
- 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 +177 -0
- package/dest/e2e_p2p/shared.d.ts +21 -7
- package/dest/e2e_p2p/shared.d.ts.map +1 -1
- package/dest/e2e_p2p/shared.js +42 -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 +13 -21
- package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
- package/dest/fixtures/e2e_prover_test.js +114 -133
- 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/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 +234 -0
- package/dest/fixtures/setup.d.ts.map +1 -0
- package/dest/fixtures/setup.js +605 -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 +61 -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 +4 -4
- 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 +12 -4
- package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.js +96 -37
- 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 +42 -0
- package/dest/spartan/utils/config.d.ts.map +1 -0
- package/dest/spartan/utils/config.js +22 -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 +10 -0
- package/dest/spartan/utils/index.d.ts.map +1 -0
- package/dest/spartan/utils/index.js +20 -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/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 +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 +49 -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 +162 -113
- 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 +235 -0
- package/src/e2e_p2p/shared.ts +77 -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 +136 -177
- 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/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 +897 -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 +71 -92
- package/src/simulators/lending_simulator.ts +7 -5
- package/src/simulators/token_simulator.ts +6 -30
- package/src/spartan/DEVELOP.md +7 -0
- package/src/spartan/setup_test_wallets.ts +130 -28
- 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 +28 -0
- package/src/spartan/utils/health.ts +255 -0
- package/src/spartan/utils/helm.ts +84 -0
- package/src/spartan/utils/index.ts +68 -0
- package/src/spartan/utils/k8s.ts +535 -0
- package/src/spartan/utils/nodes.ts +543 -0
- package/src/spartan/utils/scripts.ts +99 -0
- package/src/spartan/utils.ts +1 -942
- 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/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
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { createLogger } from '@aztec/aztec.js/log';
|
|
2
|
-
import {
|
|
2
|
+
import { getTokenAllowedSetupFunctions } from '@aztec/aztec/testing';
|
|
3
|
+
import { createExtendedL1Client } from '@aztec/ethereum/client';
|
|
4
|
+
import { RollupContract } from '@aztec/ethereum/contracts';
|
|
3
5
|
import { ChainMonitor } from '@aztec/ethereum/test';
|
|
4
6
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
5
7
|
import { sleep } from '@aztec/foundation/sleep';
|
|
@@ -13,13 +15,12 @@ import { getCanonicalFeeJuice } from '@aztec/protocol-contracts/fee-juice';
|
|
|
13
15
|
import { GasSettings } from '@aztec/stdlib/gas';
|
|
14
16
|
import { getContract } from 'viem';
|
|
15
17
|
import { MNEMONIC } from '../fixtures/fixtures.js';
|
|
16
|
-
import {
|
|
18
|
+
import { deployAccounts, publicDeployAccounts, setup, teardown } from '../fixtures/setup.js';
|
|
17
19
|
import { mintTokensToPrivate } from '../fixtures/token_utils.js';
|
|
18
|
-
import {
|
|
20
|
+
import { getBalancesFn, setupSponsoredFPC } from '../fixtures/utils.js';
|
|
19
21
|
import { FeeJuicePortalTestingHarnessFactory } from '../shared/gas_portal_test_harness.js';
|
|
20
|
-
const { E2E_DATA_PATH: dataPath } = process.env;
|
|
21
22
|
/**
|
|
22
|
-
* Test fixture for testing fees. Provides the following
|
|
23
|
+
* Test fixture for testing fees. Provides the following setup steps:
|
|
23
24
|
* InitialAccounts: Initializes 3 Schnorr account contracts.
|
|
24
25
|
* PublicDeployAccounts: Deploys the accounts publicly.
|
|
25
26
|
* DeployFeeJuice: Deploys the Fee Juice contract.
|
|
@@ -29,10 +30,12 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
29
30
|
* SetupSubscription: Deploys a counter contract and a subscription contract, and mints Fee Juice to the subscription contract.
|
|
30
31
|
*/ export class FeesTest {
|
|
31
32
|
numberOfAccounts;
|
|
32
|
-
|
|
33
|
+
setupOptions;
|
|
33
34
|
accounts;
|
|
35
|
+
context;
|
|
34
36
|
logger;
|
|
35
37
|
aztecNode;
|
|
38
|
+
aztecNodeAdmin;
|
|
36
39
|
cheatCodes;
|
|
37
40
|
wallet;
|
|
38
41
|
aliceAddress;
|
|
@@ -49,7 +52,6 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
49
52
|
counterContract;
|
|
50
53
|
subscriptionContract;
|
|
51
54
|
feeJuiceBridgeTestHarness;
|
|
52
|
-
context;
|
|
53
55
|
chainMonitor;
|
|
54
56
|
getCoinbaseBalance;
|
|
55
57
|
getCoinbaseSequencerRewards;
|
|
@@ -62,6 +64,7 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
62
64
|
APP_SPONSORED_TX_GAS_LIMIT;
|
|
63
65
|
constructor(testName, numberOfAccounts = 3, setupOptions = {}){
|
|
64
66
|
this.numberOfAccounts = numberOfAccounts;
|
|
67
|
+
this.setupOptions = setupOptions;
|
|
65
68
|
this.accounts = [];
|
|
66
69
|
this.ALICE_INITIAL_BANANAS = BigInt(1e22);
|
|
67
70
|
this.SUBSCRIPTION_AMOUNT = BigInt(1e19);
|
|
@@ -72,22 +75,32 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
72
75
|
setupOptions.coinbase ??= EthAddress.random();
|
|
73
76
|
this.coinbase = setupOptions.coinbase;
|
|
74
77
|
this.logger = createLogger(`e2e:e2e_fees:${testName}`);
|
|
75
|
-
this.snapshotManager = createSnapshotManager(`e2e_fees/${testName}-${numberOfAccounts}`, dataPath, {
|
|
76
|
-
startProverNode: true,
|
|
77
|
-
...setupOptions
|
|
78
|
-
}, {
|
|
79
|
-
...setupOptions
|
|
80
|
-
});
|
|
81
78
|
}
|
|
82
79
|
async setup() {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
80
|
+
this.logger.verbose('Setting up fresh context...');
|
|
81
|
+
// Token allowlist entries are test-only: FPC-based fee payment with custom tokens won't work on mainnet alpha.
|
|
82
|
+
const tokenAllowList = await getTokenAllowedSetupFunctions();
|
|
83
|
+
this.context = await setup(0, {
|
|
84
|
+
startProverNode: true,
|
|
85
|
+
...this.setupOptions,
|
|
86
|
+
fundSponsoredFPC: true,
|
|
87
|
+
skipAccountDeployment: true,
|
|
88
|
+
l1ContractsArgs: {
|
|
89
|
+
...this.setupOptions
|
|
90
|
+
},
|
|
91
|
+
txPublicSetupAllowListExtend: [
|
|
92
|
+
...this.setupOptions.txPublicSetupAllowListExtend ?? [],
|
|
93
|
+
...tokenAllowList
|
|
94
|
+
]
|
|
95
|
+
});
|
|
96
|
+
this.rollupContract = RollupContract.getFromConfig(this.context.config);
|
|
97
|
+
this.chainMonitor = new ChainMonitor(this.rollupContract, this.context.dateProvider, this.logger, 200).start();
|
|
98
|
+
await this.applyBaseSetup();
|
|
86
99
|
return this;
|
|
87
100
|
}
|
|
88
101
|
async teardown() {
|
|
89
102
|
await this.chainMonitor.stop();
|
|
90
|
-
await this.
|
|
103
|
+
await teardown(this.context);
|
|
91
104
|
}
|
|
92
105
|
setIsMarkingAsProven(b) {
|
|
93
106
|
this.context.watcher.setIsMarkingAsProven(b);
|
|
@@ -101,7 +114,7 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
101
114
|
async getBlockRewards() {
|
|
102
115
|
const blockReward = await this.rollupContract.getCheckpointReward();
|
|
103
116
|
const rewardConfig = await this.rollupContract.getRewardConfig();
|
|
104
|
-
const balance = await this.feeJuiceBridgeTestHarness.getL1FeeJuiceBalance(
|
|
117
|
+
const balance = await this.feeJuiceBridgeTestHarness.getL1FeeJuiceBalance(rewardConfig.rewardDistributor);
|
|
105
118
|
const toDistribute = balance > blockReward ? blockReward : balance;
|
|
106
119
|
const sequencerBlockRewards = toDistribute * BigInt(rewardConfig.sequencerBps) / 10000n;
|
|
107
120
|
const proverBlockRewards = toDistribute - sequencerBlockRewards;
|
|
@@ -115,149 +128,128 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
115
128
|
const { claimSecret: secret, messageLeafIndex: index } = claim;
|
|
116
129
|
await this.feeJuiceContract.methods.claim(recipient, claim.claimAmount, secret, index).send({
|
|
117
130
|
from: minter
|
|
118
|
-
})
|
|
131
|
+
});
|
|
119
132
|
}
|
|
120
133
|
/** Alice mints bananaCoin tokens privately to the target address and redeems them. */ async mintPrivateBananas(amount, address) {
|
|
121
|
-
const balanceBefore = await this.bananaCoin.methods.balance_of_private(address).simulate({
|
|
122
|
-
from:
|
|
134
|
+
const { result: balanceBefore } = await this.bananaCoin.methods.balance_of_private(address).simulate({
|
|
135
|
+
from: address
|
|
123
136
|
});
|
|
124
137
|
await mintTokensToPrivate(this.bananaCoin, this.aliceAddress, address, amount);
|
|
125
|
-
const balanceAfter = await this.bananaCoin.methods.balance_of_private(address).simulate({
|
|
126
|
-
from:
|
|
138
|
+
const { result: balanceAfter } = await this.bananaCoin.methods.balance_of_private(address).simulate({
|
|
139
|
+
from: address
|
|
127
140
|
});
|
|
128
141
|
expect(balanceAfter).toEqual(balanceBefore + amount);
|
|
129
142
|
}
|
|
130
|
-
async
|
|
131
|
-
await this.
|
|
132
|
-
await this.
|
|
133
|
-
await this.
|
|
134
|
-
await this.
|
|
135
|
-
}
|
|
136
|
-
async
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
this.
|
|
140
|
-
this.
|
|
141
|
-
maxFeesPerGas: (await this.aztecNode.getCurrentBaseFees()).mul(2)
|
|
142
|
-
});
|
|
143
|
-
this.cheatCodes = cheatCodes;
|
|
144
|
-
this.accounts = deployedAccounts.map((a)=>a.address);
|
|
145
|
-
this.accounts.forEach((a, i)=>this.logger.verbose(`Account ${i} address: ${a}`));
|
|
146
|
-
[this.aliceAddress, this.bobAddress, this.sequencerAddress] = this.accounts.slice(0, 3);
|
|
147
|
-
// We set Alice as the FPC admin to avoid the need for deployment of another account.
|
|
148
|
-
this.fpcAdmin = this.aliceAddress;
|
|
149
|
-
const canonicalFeeJuice = await getCanonicalFeeJuice();
|
|
150
|
-
this.feeJuiceContract = FeeJuiceContract.at(canonicalFeeJuice.address, this.wallet);
|
|
143
|
+
async applyBaseSetup() {
|
|
144
|
+
await this.applyInitialAccounts();
|
|
145
|
+
await this.applyPublicDeployAccounts();
|
|
146
|
+
await this.applySetupFeeJuice();
|
|
147
|
+
await this.applyDeployBananaToken();
|
|
148
|
+
}
|
|
149
|
+
async applyInitialAccounts() {
|
|
150
|
+
this.logger.info('Applying initial accounts setup');
|
|
151
|
+
const { deployedAccounts } = await deployAccounts(this.numberOfAccounts, this.logger)({
|
|
152
|
+
wallet: this.context.wallet,
|
|
153
|
+
initialFundedAccounts: this.context.initialFundedAccounts
|
|
151
154
|
});
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
await this.snapshotManager.snapshot('setup_fee_juice', async ()=>{}, async (_data, context)=>{
|
|
158
|
-
this.context = context;
|
|
159
|
-
this.feeJuiceContract = FeeJuiceContract.at(ProtocolContractAddress.FeeJuice, this.wallet);
|
|
160
|
-
this.getGasBalanceFn = getBalancesFn('⛽', this.feeJuiceContract.methods.balance_of_public, this.aliceAddress, this.logger);
|
|
161
|
-
this.feeJuiceBridgeTestHarness = await FeeJuicePortalTestingHarnessFactory.create({
|
|
162
|
-
aztecNode: context.aztecNode,
|
|
163
|
-
aztecNodeAdmin: context.aztecNode,
|
|
164
|
-
l1Client: context.deployL1ContractsValues.l1Client,
|
|
165
|
-
wallet: this.wallet,
|
|
166
|
-
logger: this.logger
|
|
167
|
-
});
|
|
155
|
+
this.wallet = this.context.wallet;
|
|
156
|
+
this.aztecNode = this.context.aztecNodeService;
|
|
157
|
+
this.aztecNodeAdmin = this.context.aztecNodeService;
|
|
158
|
+
this.gasSettings = GasSettings.default({
|
|
159
|
+
maxFeesPerGas: (await this.aztecNode.getCurrentMinFees()).mul(2)
|
|
168
160
|
});
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
161
|
+
this.cheatCodes = this.context.cheatCodes;
|
|
162
|
+
this.accounts = deployedAccounts.map((a)=>a.address);
|
|
163
|
+
this.accounts.forEach((a, i)=>this.logger.verbose(`Account ${i} address: ${a}`));
|
|
164
|
+
[this.aliceAddress, this.bobAddress, this.sequencerAddress] = this.accounts.slice(0, 3);
|
|
165
|
+
// We set Alice as the FPC admin to avoid the need for deployment of another account.
|
|
166
|
+
this.fpcAdmin = this.aliceAddress;
|
|
167
|
+
const canonicalFeeJuice = await getCanonicalFeeJuice();
|
|
168
|
+
this.feeJuiceContract = FeeJuiceContract.at(canonicalFeeJuice.address, this.wallet);
|
|
169
|
+
}
|
|
170
|
+
async applyPublicDeployAccounts() {
|
|
171
|
+
this.logger.info('Applying public deploy accounts setup');
|
|
172
|
+
await publicDeployAccounts(this.wallet, this.accounts);
|
|
173
|
+
}
|
|
174
|
+
async applySetupFeeJuice() {
|
|
175
|
+
this.logger.info('Applying fee juice setup');
|
|
176
|
+
this.feeJuiceContract = FeeJuiceContract.at(ProtocolContractAddress.FeeJuice, this.wallet);
|
|
177
|
+
this.getGasBalanceFn = getBalancesFn('⛽', this.feeJuiceContract.methods.balance_of_public, this.logger);
|
|
178
|
+
this.feeJuiceBridgeTestHarness = await FeeJuicePortalTestingHarnessFactory.create({
|
|
179
|
+
aztecNode: this.context.aztecNodeService,
|
|
180
|
+
aztecNodeAdmin: this.context.aztecNodeService,
|
|
181
|
+
l1Client: this.context.deployL1ContractsValues.l1Client,
|
|
182
|
+
wallet: this.wallet,
|
|
183
|
+
logger: this.logger
|
|
185
184
|
});
|
|
186
185
|
}
|
|
187
|
-
async
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
const bananaCoin = this.bananaCoin;
|
|
192
|
-
const bananaFPC = await FPCContract.deploy(this.wallet, bananaCoin.address, this.fpcAdmin).send({
|
|
193
|
-
from: this.aliceAddress
|
|
194
|
-
}).deployed();
|
|
195
|
-
this.logger.info(`BananaPay deployed at ${bananaFPC.address}`);
|
|
196
|
-
await this.feeJuiceBridgeTestHarness.bridgeFromL1ToL2(bananaFPC.address, this.aliceAddress);
|
|
197
|
-
return {
|
|
198
|
-
bananaFPCAddress: bananaFPC.address,
|
|
199
|
-
feeJuiceAddress: feeJuiceContract.address,
|
|
200
|
-
l1FeeJuiceAddress: this.feeJuiceBridgeTestHarness.l1FeeJuiceAddress,
|
|
201
|
-
rollupAddress: context.deployL1ContractsValues.l1ContractAddresses.rollupAddress
|
|
202
|
-
};
|
|
203
|
-
}, (data, context)=>{
|
|
204
|
-
const bananaFPC = FPCContract.at(data.bananaFPCAddress, this.wallet);
|
|
205
|
-
this.bananaFPC = bananaFPC;
|
|
206
|
-
this.getCoinbaseBalance = async ()=>{
|
|
207
|
-
const l1Client = createExtendedL1Client(context.aztecNodeConfig.l1RpcUrls, MNEMONIC);
|
|
208
|
-
const gasL1 = getContract({
|
|
209
|
-
address: data.l1FeeJuiceAddress.toString(),
|
|
210
|
-
abi: TestERC20Abi,
|
|
211
|
-
client: l1Client
|
|
212
|
-
});
|
|
213
|
-
return await gasL1.read.balanceOf([
|
|
214
|
-
this.coinbase.toString()
|
|
215
|
-
]);
|
|
216
|
-
};
|
|
217
|
-
this.getCoinbaseSequencerRewards = async ()=>{
|
|
218
|
-
return await this.rollupContract.getSequencerRewards(this.coinbase);
|
|
219
|
-
};
|
|
220
|
-
this.getProverFee = async (blockNumber)=>{
|
|
221
|
-
const block = await this.aztecNode.getBlock(blockNumber);
|
|
222
|
-
// @todo @lherskind As we deal with #13601
|
|
223
|
-
// Right now the value is from `FeeLib.sol`
|
|
224
|
-
const L1_GAS_PER_EPOCH_VERIFIED = 1000000n;
|
|
225
|
-
// We round up
|
|
226
|
-
const mulDiv = (a, b, c)=>a * b / c + (a * b % c > 0n ? 1n : 0n);
|
|
227
|
-
const { baseFee } = await this.rollupContract.getL1FeesAt(block.header.globalVariables.timestamp);
|
|
228
|
-
const proverCost = mulDiv(mulDiv(L1_GAS_PER_EPOCH_VERIFIED, baseFee, await this.rollupContract.getEpochDuration()), 1n, await this.rollupContract.getManaTarget()) + await this.rollupContract.getProvingCostPerMana();
|
|
229
|
-
const price = await this.rollupContract.getFeeAssetPerEth();
|
|
230
|
-
const mana = block.header.totalManaUsed.toBigInt();
|
|
231
|
-
return mulDiv(mana * proverCost, price, 10n ** 9n);
|
|
232
|
-
};
|
|
233
|
-
return Promise.resolve();
|
|
186
|
+
async applyDeployBananaToken() {
|
|
187
|
+
this.logger.info('Applying deploy banana token setup');
|
|
188
|
+
const { contract: bananaCoin } = await BananaCoin.deploy(this.wallet, this.aliceAddress, 'BC', 'BC', 18n).send({
|
|
189
|
+
from: this.aliceAddress
|
|
234
190
|
});
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
}, (
|
|
246
|
-
|
|
247
|
-
return Promise.resolve();
|
|
191
|
+
this.logger.info(`BananaCoin deployed at ${bananaCoin.address}`);
|
|
192
|
+
this.bananaCoin = bananaCoin;
|
|
193
|
+
this.getBananaPublicBalanceFn = getBalancesFn('🍌.public', this.bananaCoin.methods.balance_of_public, this.logger);
|
|
194
|
+
this.getBananaPrivateBalanceFn = getBalancesFn('🍌.private', this.bananaCoin.methods.balance_of_private, this.logger);
|
|
195
|
+
}
|
|
196
|
+
async applyFPCSetup() {
|
|
197
|
+
this.logger.info('Applying FPC setup');
|
|
198
|
+
const feeJuiceContract = this.feeJuiceBridgeTestHarness.feeJuice;
|
|
199
|
+
expect((await this.wallet.getContractMetadata(feeJuiceContract.address)).isContractPublished).toBe(true);
|
|
200
|
+
const bananaCoin = this.bananaCoin;
|
|
201
|
+
const { contract: bananaFPC } = await FPCContract.deploy(this.wallet, bananaCoin.address, this.fpcAdmin).send({
|
|
202
|
+
from: this.aliceAddress
|
|
248
203
|
});
|
|
204
|
+
this.logger.info(`BananaPay deployed at ${bananaFPC.address}`);
|
|
205
|
+
await this.feeJuiceBridgeTestHarness.bridgeFromL1ToL2(bananaFPC.address, this.aliceAddress);
|
|
206
|
+
this.bananaFPC = bananaFPC;
|
|
207
|
+
const l1FeeJuiceAddress = this.feeJuiceBridgeTestHarness.l1FeeJuiceAddress;
|
|
208
|
+
this.getCoinbaseBalance = async ()=>{
|
|
209
|
+
const l1Client = createExtendedL1Client(this.context.config.l1RpcUrls, MNEMONIC);
|
|
210
|
+
const gasL1 = getContract({
|
|
211
|
+
address: l1FeeJuiceAddress.toString(),
|
|
212
|
+
abi: TestERC20Abi,
|
|
213
|
+
client: l1Client
|
|
214
|
+
});
|
|
215
|
+
return await gasL1.read.balanceOf([
|
|
216
|
+
this.coinbase.toString()
|
|
217
|
+
]);
|
|
218
|
+
};
|
|
219
|
+
this.getCoinbaseSequencerRewards = async ()=>{
|
|
220
|
+
return await this.rollupContract.getSequencerRewards(this.coinbase);
|
|
221
|
+
};
|
|
222
|
+
this.getProverFee = async (blockNumber)=>{
|
|
223
|
+
const block = await this.aztecNode.getBlock(blockNumber);
|
|
224
|
+
// @todo @lherskind As we deal with #13601
|
|
225
|
+
// Right now the value is from `FeeLib.sol`
|
|
226
|
+
const L1_GAS_PER_EPOCH_VERIFIED = 3600000n;
|
|
227
|
+
// We round up
|
|
228
|
+
const mulDiv = (a, b, c)=>a * b / c + (a * b % c > 0n ? 1n : 0n);
|
|
229
|
+
const { baseFee } = await this.rollupContract.getL1FeesAt(block.header.globalVariables.timestamp);
|
|
230
|
+
const proverCost = mulDiv(mulDiv(L1_GAS_PER_EPOCH_VERIFIED, baseFee, BigInt(await this.rollupContract.getEpochDuration())), 1n, await this.rollupContract.getManaTarget()) + await this.rollupContract.getProvingCostPerMana();
|
|
231
|
+
const price = await this.rollupContract.getEthPerFeeAsset();
|
|
232
|
+
const mana = block.header.totalManaUsed.toBigInt();
|
|
233
|
+
return mulDiv(mana * proverCost, 10n ** 12n, price);
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
async applySponsoredFPCSetup() {
|
|
237
|
+
this.logger.info('Applying sponsored FPC setup');
|
|
238
|
+
const feeJuiceContract = this.feeJuiceBridgeTestHarness.feeJuice;
|
|
239
|
+
expect((await this.wallet.getContractMetadata(feeJuiceContract.address)).isContractPublished).toBe(true);
|
|
240
|
+
const sponsoredFPCInstance = await setupSponsoredFPC(this.wallet);
|
|
241
|
+
this.logger.info(`SponsoredFPC at ${sponsoredFPCInstance.address}`);
|
|
242
|
+
this.sponsoredFPC = SponsoredFPCContract.at(sponsoredFPCInstance.address, this.wallet);
|
|
249
243
|
}
|
|
250
244
|
async applyFundAliceWithBananas() {
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
}, ()=>Promise.resolve());
|
|
245
|
+
this.logger.info('Applying fund Alice with bananas setup');
|
|
246
|
+
await this.mintPrivateBananas(this.ALICE_INITIAL_BANANAS, this.aliceAddress);
|
|
247
|
+
await this.bananaCoin.methods.mint_to_public(this.aliceAddress, this.ALICE_INITIAL_BANANAS).send({
|
|
248
|
+
from: this.aliceAddress
|
|
249
|
+
});
|
|
257
250
|
}
|
|
258
251
|
async applyFundAliceWithPrivateBananas() {
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
}, ()=>Promise.resolve());
|
|
252
|
+
this.logger.info('Applying fund Alice with private bananas setup');
|
|
253
|
+
await this.mintPrivateBananas(this.ALICE_INITIAL_BANANAS, this.aliceAddress);
|
|
262
254
|
}
|
|
263
255
|
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
2
|
-
import type { L2Block } from '@aztec/aztec.js/block';
|
|
3
2
|
import { Fr } from '@aztec/aztec.js/fields';
|
|
4
3
|
import { BatchedBlob, Blob } from '@aztec/blob-lib';
|
|
4
|
+
import { L2Block } from '@aztec/stdlib/block';
|
|
5
|
+
import { CheckpointHeader } from '@aztec/stdlib/rollup';
|
|
5
6
|
/**
|
|
6
7
|
* Creates a json object that can be used to test the solidity contract.
|
|
7
8
|
* The json object must be put into
|
|
8
9
|
*/
|
|
9
|
-
export declare function writeJson(fileName: string, block: L2Block, l1ToL2Content: Fr[], blobs: Blob[], batchedBlob: BatchedBlob, recipientAddress: AztecAddress, deployerAddress: `0x${string}`): Promise<void>;
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
export declare function writeJson(fileName: string, checkpointHeader: CheckpointHeader, block: L2Block, l1ToL2Content: Fr[], blobs: Blob[], batchedBlob: BatchedBlob, recipientAddress: AztecAddress, deployerAddress: `0x${string}`): Promise<void>;
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGVfanNvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2UyZV9sMV9wdWJsaXNoZXIvd3JpdGVfanNvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUE2RCxNQUFNLGlCQUFpQixDQUFDO0FBRS9HLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQU14RDs7O0dBR0c7QUFDSCx3QkFBc0IsU0FBUyxDQUM3QixRQUFRLEVBQUUsTUFBTSxFQUNoQixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFDbEMsS0FBSyxFQUFFLE9BQU8sRUFDZCxhQUFhLEVBQUUsRUFBRSxFQUFFLEVBQ25CLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFDYixXQUFXLEVBQUUsV0FBVyxFQUN4QixnQkFBZ0IsRUFBRSxZQUFZLEVBQzlCLGVBQWUsRUFBRSxLQUFLLE1BQU0sRUFBRSxHQUM3QixPQUFPLENBQUMsSUFBSSxDQUFDLENBb0RmIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write_json.d.ts","sourceRoot":"","sources":["../../src/e2e_l1_publisher/write_json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,
|
|
1
|
+
{"version":3,"file":"write_json.d.ts","sourceRoot":"","sources":["../../src/e2e_l1_publisher/write_json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,IAAI,EAA6D,MAAM,iBAAiB,CAAC;AAE/G,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAMxD;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,gBAAgB,EAClC,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,EAAE,EAAE,EACnB,KAAK,EAAE,IAAI,EAAE,EACb,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,YAAY,EAC9B,eAAe,EAAE,KAAK,MAAM,EAAE,GAC7B,OAAO,CAAC,IAAI,CAAC,CAoDf"}
|
|
@@ -4,7 +4,7 @@ const AZTEC_GENERATE_TEST_DATA = !!process.env.AZTEC_GENERATE_TEST_DATA;
|
|
|
4
4
|
/**
|
|
5
5
|
* Creates a json object that can be used to test the solidity contract.
|
|
6
6
|
* The json object must be put into
|
|
7
|
-
*/ export async function writeJson(fileName, block, l1ToL2Content, blobs, batchedBlob, recipientAddress, deployerAddress) {
|
|
7
|
+
*/ export async function writeJson(fileName, checkpointHeader, block, l1ToL2Content, blobs, batchedBlob, recipientAddress, deployerAddress) {
|
|
8
8
|
if (!AZTEC_GENERATE_TEST_DATA) {
|
|
9
9
|
return;
|
|
10
10
|
}
|
|
@@ -32,24 +32,22 @@ const AZTEC_GENERATE_TEST_DATA = !!process.env.AZTEC_GENERATE_TEST_DATA;
|
|
|
32
32
|
checkpointNumber: block.number,
|
|
33
33
|
body: `0x${block.body.toBuffer().toString('hex')}`,
|
|
34
34
|
header: {
|
|
35
|
-
lastArchiveRoot: asHex(
|
|
36
|
-
blockHeadersHash: asHex(
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
coinbase: asHex(block.header.globalVariables.coinbase, 40),
|
|
45
|
-
feeRecipient: asHex(block.header.globalVariables.feeRecipient),
|
|
35
|
+
lastArchiveRoot: asHex(checkpointHeader.lastArchiveRoot),
|
|
36
|
+
blockHeadersHash: asHex(checkpointHeader.blockHeadersHash),
|
|
37
|
+
blobsHash: asHex(checkpointHeader.blobsHash),
|
|
38
|
+
inHash: asHex(checkpointHeader.inHash),
|
|
39
|
+
outHash: asHex(checkpointHeader.epochOutHash),
|
|
40
|
+
slotNumber: Number(checkpointHeader.slotNumber),
|
|
41
|
+
timestamp: Number(checkpointHeader.timestamp),
|
|
42
|
+
coinbase: asHex(checkpointHeader.coinbase, 40),
|
|
43
|
+
feeRecipient: asHex(checkpointHeader.feeRecipient),
|
|
46
44
|
gasFees: {
|
|
47
|
-
feePerDaGas: Number(
|
|
48
|
-
feePerL2Gas: Number(
|
|
45
|
+
feePerDaGas: Number(checkpointHeader.gasFees.feePerDaGas),
|
|
46
|
+
feePerL2Gas: Number(checkpointHeader.gasFees.feePerL2Gas)
|
|
49
47
|
},
|
|
50
|
-
totalManaUsed:
|
|
48
|
+
totalManaUsed: checkpointHeader.totalManaUsed.toNumber()
|
|
51
49
|
},
|
|
52
|
-
headerHash: asHex(
|
|
50
|
+
headerHash: asHex(checkpointHeader.hash()),
|
|
53
51
|
numTxs: block.body.txEffects.length
|
|
54
52
|
}
|
|
55
53
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getAddressFromPrivateKey } from '@aztec/ethereum';
|
|
1
|
+
import { getAddressFromPrivateKey } from '@aztec/ethereum/account';
|
|
2
2
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
3
3
|
import { writeFile } from 'fs/promises';
|
|
4
4
|
import { createServer } from 'http';
|
|
@@ -4,10 +4,10 @@ import type { AztecNode } from '@aztec/aztec.js/node';
|
|
|
4
4
|
import type { Wallet } from '@aztec/aztec.js/wallet';
|
|
5
5
|
import { ChildContract } from '@aztec/noir-test-contracts.js/Child';
|
|
6
6
|
import { ParentContract } from '@aztec/noir-test-contracts.js/Parent';
|
|
7
|
-
import { type
|
|
7
|
+
import { type EndToEndContext } from '../fixtures/setup.js';
|
|
8
8
|
export declare class NestedContractTest {
|
|
9
9
|
private numberOfAccounts;
|
|
10
|
-
|
|
10
|
+
context: EndToEndContext;
|
|
11
11
|
logger: Logger;
|
|
12
12
|
wallet: Wallet;
|
|
13
13
|
defaultAccountAddress: AztecAddress;
|
|
@@ -16,14 +16,11 @@ export declare class NestedContractTest {
|
|
|
16
16
|
childContract: ChildContract;
|
|
17
17
|
constructor(testName: string, numberOfAccounts?: number);
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
20
|
-
* 1. Add 3 accounts.
|
|
21
|
-
* 2. Publicly deploy accounts
|
|
19
|
+
* Applies base setup by deploying accounts and publicly deploying them.
|
|
22
20
|
*/
|
|
23
|
-
|
|
21
|
+
applyBaseSetup(): Promise<void>;
|
|
24
22
|
setup(): Promise<void>;
|
|
25
23
|
teardown(): Promise<void>;
|
|
26
|
-
|
|
27
|
-
applyManualSnapshots(): Promise<void>;
|
|
24
|
+
applyManual(): Promise<void>;
|
|
28
25
|
}
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGVkX2NvbnRyYWN0X3Rlc3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lMmVfbmVzdGVkX2NvbnRyYWN0L25lc3RlZF9jb250cmFjdF90ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUV0RSxPQUFPLEVBQ0wsS0FBSyxlQUFlLEVBS3JCLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIscUJBQWEsa0JBQWtCO0lBWTNCLE9BQU8sQ0FBQyxnQkFBZ0I7SUFYMUIsT0FBTyxFQUFHLGVBQWUsQ0FBQztJQUMxQixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsTUFBTSxFQUFHLE1BQU0sQ0FBQztJQUNoQixxQkFBcUIsRUFBRyxZQUFZLENBQUM7SUFDckMsU0FBUyxFQUFHLFNBQVMsQ0FBQztJQUV0QixjQUFjLEVBQUcsY0FBYyxDQUFDO0lBQ2hDLGFBQWEsRUFBRyxhQUFhLENBQUM7SUFFOUIsWUFDRSxRQUFRLEVBQUUsTUFBTSxFQUNSLGdCQUFnQixTQUFJLEVBRzdCO0lBRUQ7O09BRUc7SUFDRyxjQUFjLGtCQWVuQjtJQUVLLEtBQUssa0JBT1Y7SUFFSyxRQUFRLGtCQUViO0lBRUssV0FBVyxrQkFRaEI7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nested_contract_test.d.ts","sourceRoot":"","sources":["../../src/e2e_nested_contract/nested_contract_test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAEtE,OAAO,
|
|
1
|
+
{"version":3,"file":"nested_contract_test.d.ts","sourceRoot":"","sources":["../../src/e2e_nested_contract/nested_contract_test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAEtE,OAAO,EACL,KAAK,eAAe,EAKrB,MAAM,sBAAsB,CAAC;AAE9B,qBAAa,kBAAkB;IAY3B,OAAO,CAAC,gBAAgB;IAX1B,OAAO,EAAG,eAAe,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAG,MAAM,CAAC;IAChB,qBAAqB,EAAG,YAAY,CAAC;IACrC,SAAS,EAAG,SAAS,CAAC;IAEtB,cAAc,EAAG,cAAc,CAAC;IAChC,aAAa,EAAG,aAAa,CAAC;IAE9B,YACE,QAAQ,EAAE,MAAM,EACR,gBAAgB,SAAI,EAG7B;IAED;;OAEG;IACG,cAAc,kBAenB;IAEK,KAAK,kBAOV;IAEK,QAAQ,kBAEb;IAEK,WAAW,kBAQhB;CACF"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { createLogger } from '@aztec/aztec.js/log';
|
|
2
2
|
import { ChildContract } from '@aztec/noir-test-contracts.js/Child';
|
|
3
3
|
import { ParentContract } from '@aztec/noir-test-contracts.js/Parent';
|
|
4
|
-
import {
|
|
5
|
-
const { E2E_DATA_PATH: dataPath } = process.env;
|
|
4
|
+
import { deployAccounts, publicDeployAccounts, setup, teardown as teardownSubsystems } from '../fixtures/setup.js';
|
|
6
5
|
export class NestedContractTest {
|
|
7
6
|
numberOfAccounts;
|
|
8
|
-
|
|
7
|
+
context;
|
|
9
8
|
logger;
|
|
10
9
|
wallet;
|
|
11
10
|
defaultAccountAddress;
|
|
@@ -14,51 +13,42 @@ export class NestedContractTest {
|
|
|
14
13
|
childContract;
|
|
15
14
|
constructor(testName, numberOfAccounts = 1){
|
|
16
15
|
this.numberOfAccounts = numberOfAccounts;
|
|
17
|
-
this.snapshot = (name, apply, restore = ()=>Promise.resolve())=>this.snapshotManager.snapshot(name, apply, restore);
|
|
18
16
|
this.logger = createLogger(`e2e:e2e_nested_contract:${testName}`);
|
|
19
|
-
this.snapshotManager = createSnapshotManager(`e2e_nested_contract/${testName}-${numberOfAccounts}`, dataPath);
|
|
20
17
|
}
|
|
21
18
|
/**
|
|
22
|
-
*
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
this.
|
|
28
|
-
[{ address: this.defaultAccountAddress }] = deployedAccounts;
|
|
29
|
-
this.aztecNode = aztecNode;
|
|
30
|
-
return Promise.resolve();
|
|
31
|
-
});
|
|
32
|
-
await this.snapshotManager.snapshot('public_deploy', async ()=>{}, async ()=>{
|
|
33
|
-
this.logger.verbose(`Public deploy accounts...`);
|
|
34
|
-
await publicDeployAccounts(this.wallet, [
|
|
35
|
-
this.defaultAccountAddress
|
|
36
|
-
]);
|
|
19
|
+
* Applies base setup by deploying accounts and publicly deploying them.
|
|
20
|
+
*/ async applyBaseSetup() {
|
|
21
|
+
this.logger.info('Deploying accounts');
|
|
22
|
+
const { deployedAccounts } = await deployAccounts(this.numberOfAccounts, this.logger)({
|
|
23
|
+
wallet: this.context.wallet,
|
|
24
|
+
initialFundedAccounts: this.context.initialFundedAccounts
|
|
37
25
|
});
|
|
26
|
+
this.wallet = this.context.wallet;
|
|
27
|
+
[{ address: this.defaultAccountAddress }] = deployedAccounts;
|
|
28
|
+
this.aztecNode = this.context.aztecNodeService;
|
|
29
|
+
this.logger.info('Public deploy accounts');
|
|
30
|
+
await publicDeployAccounts(this.wallet, [
|
|
31
|
+
this.defaultAccountAddress
|
|
32
|
+
]);
|
|
38
33
|
}
|
|
39
34
|
async setup() {
|
|
40
|
-
|
|
35
|
+
this.logger.info('Setting up fresh subsystems');
|
|
36
|
+
this.context = await setup(0, {
|
|
37
|
+
fundSponsoredFPC: true,
|
|
38
|
+
skipAccountDeployment: true
|
|
39
|
+
});
|
|
40
|
+
await this.applyBaseSetup();
|
|
41
41
|
}
|
|
42
42
|
async teardown() {
|
|
43
|
-
await this.
|
|
43
|
+
await teardownSubsystems(this.context);
|
|
44
44
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}).deployed();
|
|
54
|
-
return {
|
|
55
|
-
parentContractAddress: parentContract.address,
|
|
56
|
-
childContractAddress: childContract.address
|
|
57
|
-
};
|
|
58
|
-
}, ({ parentContractAddress, childContractAddress })=>{
|
|
59
|
-
this.parentContract = ParentContract.at(parentContractAddress, this.wallet);
|
|
60
|
-
this.childContract = ChildContract.at(childContractAddress, this.wallet);
|
|
61
|
-
return Promise.resolve();
|
|
62
|
-
});
|
|
45
|
+
async applyManual() {
|
|
46
|
+
this.logger.info('Deploying parent and child contracts');
|
|
47
|
+
({ contract: this.parentContract } = await ParentContract.deploy(this.wallet).send({
|
|
48
|
+
from: this.defaultAccountAddress
|
|
49
|
+
}));
|
|
50
|
+
({ contract: this.childContract } = await ChildContract.deploy(this.wallet).send({
|
|
51
|
+
from: this.defaultAccountAddress
|
|
52
|
+
}));
|
|
63
53
|
}
|
|
64
54
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AztecNodeService } from '@aztec/aztec-node';
|
|
2
2
|
import { EthAddress } from '@aztec/aztec.js/addresses';
|
|
3
|
-
import { RollupContract } from '@aztec/ethereum';
|
|
3
|
+
import { RollupContract } from '@aztec/ethereum/contracts';
|
|
4
4
|
import 'jest-extended';
|
|
5
5
|
import { P2PNetworkTest } from './p2p_network.js';
|
|
6
6
|
export declare class P2PInactivityTest {
|
|
@@ -24,8 +24,8 @@ export declare class P2PInactivityTest {
|
|
|
24
24
|
}): Promise<P2PInactivityTest>;
|
|
25
25
|
setup(): Promise<this>;
|
|
26
26
|
teardown(): Promise<void>;
|
|
27
|
-
get ctx(): import("../fixtures/
|
|
28
|
-
get logger(): import("
|
|
27
|
+
get ctx(): import("../fixtures/setup.js").EndToEndContext;
|
|
28
|
+
get logger(): import("@aztec/foundation/log").Logger;
|
|
29
29
|
get slashingAmount(): bigint;
|
|
30
30
|
}
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5hY3Rpdml0eV9zbGFzaF90ZXN0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZTJlX3AycC9pbmFjdGl2aXR5X3NsYXNoX3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSTNELE9BQU8sZUFBZSxDQUFDO0FBS3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQWlCbEQscUJBQWEsaUJBQWlCO2FBYVYsSUFBSSxFQUFFLGNBQWM7SUFaL0IsS0FBSyxFQUFHLGdCQUFnQixFQUFFLENBQUM7SUFDM0IsV0FBVyxFQUFHLGdCQUFnQixFQUFFLENBQUM7SUFDakMsYUFBYSxFQUFHLGdCQUFnQixFQUFFLENBQUM7SUFFbkMsTUFBTSxFQUFHLGNBQWMsQ0FBQztJQUN4QixpQkFBaUIsRUFBRyxVQUFVLEVBQUUsQ0FBQztJQUV4QyxPQUFPLENBQUMsT0FBTyxDQUFTO0lBQ3hCLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBUztJQUNsQyxPQUFPLENBQUMsZUFBZSxDQUFVO0lBRWpDLFlBQ2tCLElBQUksRUFBRSxjQUFjLEVBQ3BDLElBQUksRUFBRTtRQUFFLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztRQUFDLGVBQWUsQ0FBQyxFQUFFLE9BQU8sQ0FBQTtLQUFFLEVBSy9EO0lBRUQsT0FBYSxNQUFNLENBQ2pCLFFBQVEsRUFBRSxNQUFNLEVBQ2hCLElBQUksRUFBRTtRQUFFLHdDQUF3QyxFQUFFLE1BQU0sQ0FBQztRQUFDLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztRQUFDLGVBQWUsQ0FBQyxFQUFFLE9BQU8sQ0FBQTtLQUFFLDhCQThCakg7SUFFWSxLQUFLLGtCQTBFakI7SUFFWSxRQUFRLGtCQU1wQjtJQUVELElBQVcsR0FBRyxtREFFYjtJQUVELElBQVcsTUFBTSwyQ0FFaEI7SUFFRCxJQUFXLGNBQWMsV0FFeEI7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inactivity_slash_test.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/inactivity_slash_test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"inactivity_slash_test.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/inactivity_slash_test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAI3D,OAAO,eAAe,CAAC;AAKvB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAiBlD,qBAAa,iBAAiB;aAaV,IAAI,EAAE,cAAc;IAZ/B,KAAK,EAAG,gBAAgB,EAAE,CAAC;IAC3B,WAAW,EAAG,gBAAgB,EAAE,CAAC;IACjC,aAAa,EAAG,gBAAgB,EAAE,CAAC;IAEnC,MAAM,EAAG,cAAc,CAAC;IACxB,iBAAiB,EAAG,UAAU,EAAE,CAAC;IAExC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,eAAe,CAAU;IAEjC,YACkB,IAAI,EAAE,cAAc,EACpC,IAAI,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,EAK/D;IAED,OAAa,MAAM,CACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE;QAAE,wCAAwC,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,8BA8BjH;IAEY,KAAK,kBA0EjB;IAEY,QAAQ,kBAMpB;IAED,IAAW,GAAG,mDAEb;IAED,IAAW,MAAM,2CAEhB;IAED,IAAW,cAAc,WAExB;CACF"}
|