@aztec/end-to-end 0.0.1-commit.0c875d939 → 0.0.1-commit.0ec55a70b
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/README.md +27 -0
- package/dest/bench/client_flows/client_flows_benchmark.d.ts +1 -1
- package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/client_flows_benchmark.js +21 -28
- package/dest/bench/utils.d.ts +1 -1
- package/dest/bench/utils.d.ts.map +1 -1
- package/dest/bench/utils.js +6 -3
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +3 -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 +15 -15
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +1 -1
- package/dest/e2e_epochs/epochs_test.d.ts +26 -7
- package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.js +113 -43
- package/dest/e2e_fees/fees_test.d.ts +1 -1
- package/dest/e2e_fees/fees_test.d.ts.map +1 -1
- package/dest/e2e_fees/fees_test.js +17 -10
- package/dest/e2e_nested_contract/nested_contract_test.d.ts +1 -1
- package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
- package/dest/e2e_nested_contract/nested_contract_test.js +4 -6
- package/dest/e2e_p2p/inactivity_slash_test.js +3 -3
- package/dest/e2e_p2p/p2p_network.d.ts +13 -11
- package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
- package/dest/e2e_p2p/p2p_network.js +70 -34
- 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 +49 -9
- package/dest/e2e_p2p/shared.d.ts +25 -7
- package/dest/e2e_p2p/shared.d.ts.map +1 -1
- package/dest/e2e_p2p/shared.js +69 -49
- package/dest/e2e_token_contract/token_contract_test.d.ts +1 -1
- package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
- package/dest/e2e_token_contract/token_contract_test.js +11 -11
- package/dest/fixtures/authwit_proxy.d.ts +3 -3
- package/dest/fixtures/authwit_proxy.d.ts.map +1 -1
- package/dest/fixtures/authwit_proxy.js +4 -0
- package/dest/fixtures/e2e_prover_test.d.ts +6 -5
- package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
- package/dest/fixtures/e2e_prover_test.js +37 -49
- 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 +16 -1
- package/dest/fixtures/fixtures.d.ts.map +1 -1
- package/dest/fixtures/fixtures.js +16 -0
- 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 +2 -2
- package/dest/fixtures/ha_setup.d.ts.map +1 -1
- package/dest/fixtures/ha_setup.js +1 -1
- package/dest/fixtures/schnorr_hardcoded_account_contract.d.ts +25 -0
- package/dest/fixtures/schnorr_hardcoded_account_contract.d.ts.map +1 -0
- package/dest/fixtures/schnorr_hardcoded_account_contract.js +39 -0
- package/dest/fixtures/setup.d.ts +45 -17
- package/dest/fixtures/setup.d.ts.map +1 -1
- package/dest/fixtures/setup.js +89 -100
- package/dest/fixtures/setup_p2p_test.d.ts +10 -7
- package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
- package/dest/fixtures/setup_p2p_test.js +18 -15
- 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 +5 -7
- package/dest/forward-compatibility/wallet_rpc_client.d.ts +7 -0
- package/dest/forward-compatibility/wallet_rpc_client.d.ts.map +1 -0
- package/dest/forward-compatibility/wallet_rpc_client.js +15 -0
- package/dest/forward-compatibility/wallet_service.d.ts +3 -0
- package/dest/forward-compatibility/wallet_service.d.ts.map +1 -0
- package/dest/forward-compatibility/wallet_service.js +109 -0
- package/dest/legacy-jest-resolver.d.cts +3 -0
- package/dest/legacy-jest-resolver.d.cts.map +1 -0
- package/dest/shared/cross_chain_test_harness.d.ts +1 -1
- package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.js +13 -13
- package/dest/shared/gas_portal_test_harness.js +3 -3
- package/dest/shared/jest_setup.js +41 -1
- package/dest/shared/submit-transactions.js +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 +14 -21
- package/dest/simulators/lending_simulator.d.ts +1 -1
- 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 +2 -2
- package/dest/spartan/setup_test_wallets.d.ts +11 -2
- package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.js +97 -38
- package/dest/spartan/tx_metrics.d.ts +1 -1
- package/dest/spartan/tx_metrics.d.ts.map +1 -1
- package/dest/spartan/tx_metrics.js +19 -3
- 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/config.d.ts +7 -1
- package/dest/spartan/utils/config.d.ts.map +1 -1
- package/dest/spartan/utils/config.js +3 -1
- package/dest/spartan/utils/index.d.ts +4 -2
- package/dest/spartan/utils/index.d.ts.map +1 -1
- package/dest/spartan/utils/index.js +5 -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 +9 -9
- 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/test-wallet/test_wallet.d.ts +24 -23
- package/dest/test-wallet/test_wallet.d.ts.map +1 -1
- package/dest/test-wallet/test_wallet.js +124 -83
- 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 +279 -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 +43 -44
- package/src/bench/client_flows/client_flows_benchmark.ts +29 -12
- package/src/bench/utils.ts +7 -2
- package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +21 -20
- package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +1 -1
- package/src/e2e_epochs/epochs_test.ts +131 -70
- package/src/e2e_fees/fees_test.ts +18 -9
- package/src/e2e_nested_contract/nested_contract_test.ts +6 -4
- package/src/e2e_p2p/inactivity_slash_test.ts +3 -3
- package/src/e2e_p2p/p2p_network.ts +88 -44
- package/src/e2e_p2p/reqresp/utils.ts +59 -9
- package/src/e2e_p2p/shared.ts +88 -63
- package/src/e2e_token_contract/token_contract_test.ts +16 -8
- package/src/fixtures/authwit_proxy.ts +4 -0
- package/src/fixtures/dumps/epoch_proof_result.json +1 -1
- package/src/fixtures/e2e_prover_test.ts +43 -52
- package/src/fixtures/elu_monitor.ts +126 -0
- package/src/fixtures/fixtures.ts +32 -0
- package/src/fixtures/get_bb_config.ts +7 -6
- package/src/fixtures/ha_setup.ts +4 -2
- package/src/fixtures/schnorr_hardcoded_account_contract.ts +49 -0
- package/src/fixtures/setup.ts +126 -133
- package/src/fixtures/setup_p2p_test.ts +17 -25
- package/src/fixtures/token_utils.ts +3 -3
- package/src/forward-compatibility/wallet_rpc_client.ts +14 -0
- package/src/forward-compatibility/wallet_service.ts +104 -0
- package/src/guides/up_quick_start.sh +0 -2
- package/src/legacy-jest-resolver.cjs +135 -0
- package/src/shared/cross_chain_test_harness.ts +13 -9
- package/src/shared/gas_portal_test_harness.ts +1 -2
- package/src/shared/jest_setup.ts +51 -1
- package/src/shared/submit-transactions.ts +1 -1
- package/src/shared/uniswap_l1_l2.ts +35 -32
- package/src/simulators/lending_simulator.ts +8 -4
- package/src/simulators/token_simulator.ts +6 -2
- package/src/spartan/setup_test_wallets.ts +138 -31
- package/src/spartan/tx_metrics.ts +17 -5
- package/src/spartan/utils/bot.ts +3 -0
- package/src/spartan/utils/config.ts +2 -0
- package/src/spartan/utils/index.ts +7 -0
- package/src/spartan/utils/k8s.ts +8 -0
- package/src/spartan/utils/nodes.ts +15 -10
- package/src/spartan/utils/pod_logs.ts +99 -0
- package/src/test-wallet/test_wallet.ts +152 -101
- package/src/test-wallet/wallet_worker_script.ts +60 -0
- package/src/test-wallet/worker_wallet.ts +214 -0
- package/src/test-wallet/worker_wallet_schema.ts +13 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { AztecNodeService } from '@aztec/aztec-node';
|
|
2
|
+
import { getAccountContractAddress } from '@aztec/aztec.js/account';
|
|
2
3
|
import { getTimestampRangeForEpoch } from '@aztec/aztec.js/block';
|
|
3
4
|
import { getContractInstanceFromInstantiationParams } from '@aztec/aztec.js/contracts';
|
|
4
5
|
import { Fr } from '@aztec/aztec.js/fields';
|
|
@@ -7,8 +8,9 @@ import { EpochCache } from '@aztec/epoch-cache';
|
|
|
7
8
|
import { createExtendedL1Client } from '@aztec/ethereum/client';
|
|
8
9
|
import { DefaultL1ContractsConfig } from '@aztec/ethereum/config';
|
|
9
10
|
import { RollupContract } from '@aztec/ethereum/contracts';
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
11
|
+
import { createDelayer, waitUntilL1Timestamp, wrapClientWithDelayer } from '@aztec/ethereum/l1-tx-utils';
|
|
12
|
+
import { ChainMonitor } from '@aztec/ethereum/test';
|
|
13
|
+
import { CheckpointNumber, EpochNumber } from '@aztec/foundation/branded-types';
|
|
12
14
|
import { SecretValue } from '@aztec/foundation/config';
|
|
13
15
|
import { randomBytes } from '@aztec/foundation/crypto/random';
|
|
14
16
|
import { withLoggerBindings } from '@aztec/foundation/log/server';
|
|
@@ -23,8 +25,9 @@ import { getProofSubmissionDeadlineTimestamp } from '@aztec/stdlib/epoch-helpers
|
|
|
23
25
|
import { tryStop } from '@aztec/stdlib/interfaces/server';
|
|
24
26
|
import { join } from 'path';
|
|
25
27
|
import { privateKeyToAccount } from 'viem/accounts';
|
|
28
|
+
import { SCHNORR_HARDCODED_PRIVATE_KEY, SchnorrHardcodedKeyAccountContract } from '../fixtures/schnorr_hardcoded_account_contract.js';
|
|
26
29
|
import { createAndSyncProverNode, getPrivateKeyFromIndex, setup } from '../fixtures/utils.js';
|
|
27
|
-
export const
|
|
30
|
+
export const WORLD_STATE_CHECKPOINT_HISTORY = 2;
|
|
28
31
|
export const WORLD_STATE_BLOCK_CHECK_INTERVAL = 50;
|
|
29
32
|
export const ARCHIVER_POLL_INTERVAL = 50;
|
|
30
33
|
export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
|
|
@@ -71,9 +74,16 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
|
|
|
71
74
|
const { ethereumSlotDuration, aztecSlotDuration, aztecEpochDuration, aztecProofSubmissionEpochs, l1PublishingTime } = EpochsTestContext.getSlotDurations(opts);
|
|
72
75
|
this.L1_BLOCK_TIME_IN_S = ethereumSlotDuration;
|
|
73
76
|
this.L2_SLOT_DURATION_IN_S = aztecSlotDuration;
|
|
77
|
+
// When skipInitialSequencer is set, auto-create a hardcoded account funded via genesis.
|
|
78
|
+
// This avoids needing to deploy accounts on-chain (which would require a running sequencer).
|
|
79
|
+
const useHardcodedAccount = opts.skipInitialSequencer && !opts.skipHardcodedAccount;
|
|
80
|
+
let hardcodedAccountData;
|
|
81
|
+
if (useHardcodedAccount) {
|
|
82
|
+
hardcodedAccountData = await EpochsTestContext.getHardcodedAccountData(Fr.random(), Fr.random());
|
|
83
|
+
}
|
|
74
84
|
// Set up system without any account nor protocol contracts
|
|
75
85
|
// and with faster block times and shorter epochs.
|
|
76
|
-
const context = await setup(opts.numberOfAccounts ?? 0, {
|
|
86
|
+
const context = await setup(useHardcodedAccount ? 0 : opts.numberOfAccounts ?? 0, {
|
|
77
87
|
automineL1Setup: true,
|
|
78
88
|
checkIntervalMs: 50,
|
|
79
89
|
archiverPollingIntervalMS: ARCHIVER_POLL_INTERVAL,
|
|
@@ -87,15 +97,18 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
|
|
|
87
97
|
realProofs: false,
|
|
88
98
|
startProverNode: true,
|
|
89
99
|
proverTestDelayMs: opts.proverTestDelayMs ?? 0,
|
|
90
|
-
// We use numeric incremental prover ids for simplicity, but we can switch to
|
|
91
|
-
// using the prover's eth address if the proverId is used for something in the rollup contract
|
|
92
|
-
// Use numeric EthAddress for deterministic prover id
|
|
93
100
|
proverId: EthAddress.fromNumber(1),
|
|
94
|
-
|
|
101
|
+
worldStateCheckpointHistory: WORLD_STATE_CHECKPOINT_HISTORY,
|
|
95
102
|
exitDelaySeconds: DefaultL1ContractsConfig.exitDelaySeconds,
|
|
96
|
-
|
|
103
|
+
slasherEnabled: false,
|
|
97
104
|
l1PublishingTime,
|
|
98
|
-
...opts
|
|
105
|
+
...opts,
|
|
106
|
+
...hardcodedAccountData ? {
|
|
107
|
+
initialFundedAccounts: [
|
|
108
|
+
hardcodedAccountData
|
|
109
|
+
],
|
|
110
|
+
numberOfAccounts: 0
|
|
111
|
+
} : {}
|
|
99
112
|
}, // Use checkpointed chain tip for PXE by default to avoid issues with blocks being dropped due to pruned anchor blocks.
|
|
100
113
|
// Can be overridden via opts.pxeOpts.
|
|
101
114
|
{
|
|
@@ -103,6 +116,10 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
|
|
|
103
116
|
...opts.pxeOpts
|
|
104
117
|
});
|
|
105
118
|
this.context = context;
|
|
119
|
+
// Register the hardcoded account in PXE (local only, no on-chain deployment needed).
|
|
120
|
+
if (hardcodedAccountData) {
|
|
121
|
+
await this.registerHardcodedAccount(hardcodedAccountData);
|
|
122
|
+
}
|
|
106
123
|
this.proverNodes = context.proverNode ? [
|
|
107
124
|
context.proverNode
|
|
108
125
|
] : [];
|
|
@@ -117,10 +134,8 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
|
|
|
117
134
|
});
|
|
118
135
|
// Loop that tracks L1 and L2 block numbers and logs whenever there's a new one.
|
|
119
136
|
this.monitor = new ChainMonitor(this.rollup, context.dateProvider, this.logger).start();
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
this.proverDelayer = context.proverNode ? context.proverNode.publisher.l1TxUtils.delayer : undefined;
|
|
123
|
-
this.sequencerDelayer = context.sequencer ? context.sequencer.sequencer.publisher.l1TxUtils.delayer : undefined;
|
|
137
|
+
this.proverDelayer = context.proverDelayer;
|
|
138
|
+
this.sequencerDelayer = context.sequencerDelayer;
|
|
124
139
|
if (context.proverNode && !this.proverDelayer || context.sequencer && !this.sequencerDelayer) {
|
|
125
140
|
throw new Error(`Could not find prover or sequencer delayer`);
|
|
126
141
|
}
|
|
@@ -133,7 +148,8 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
|
|
|
133
148
|
l1GenesisTime: await this.rollup.getL1GenesisTime(),
|
|
134
149
|
ethereumSlotDuration,
|
|
135
150
|
proofSubmissionEpochs: Number(await this.rollup.getProofSubmissionEpochs()),
|
|
136
|
-
targetCommitteeSize: await this.rollup.getTargetCommitteeSize()
|
|
151
|
+
targetCommitteeSize: await this.rollup.getTargetCommitteeSize(),
|
|
152
|
+
rollupManaLimit: Number(await this.rollup.getManaLimit())
|
|
137
153
|
};
|
|
138
154
|
this.logger.info(`L2 genesis at L1 block ${this.constants.l1StartBlock} (timestamp ${this.constants.l1GenesisTime})`);
|
|
139
155
|
}
|
|
@@ -143,26 +159,64 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
|
|
|
143
159
|
await Promise.all(this.nodes.map((node)=>tryStop(node, this.logger)));
|
|
144
160
|
await this.context.teardown();
|
|
145
161
|
}
|
|
162
|
+
/**
|
|
163
|
+
* Computes InitialAccountData for a SchnorrHardcodedKeyAccountContract.
|
|
164
|
+
* This contract has a hardcoded signing key and no initializer, so it can be used without
|
|
165
|
+
* on-chain deployment. Pass the returned data in `initialFundedAccounts` so the address
|
|
166
|
+
* gets funded with fee juice in genesis.
|
|
167
|
+
*/ static async getHardcodedAccountData(secret, salt) {
|
|
168
|
+
const contract = new SchnorrHardcodedKeyAccountContract();
|
|
169
|
+
const address = await getAccountContractAddress(contract, secret, salt);
|
|
170
|
+
const signingKey = SCHNORR_HARDCODED_PRIVATE_KEY;
|
|
171
|
+
return {
|
|
172
|
+
secret,
|
|
173
|
+
salt,
|
|
174
|
+
signingKey,
|
|
175
|
+
address
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Registers a SchnorrHardcodedKeyAccountContract in PXE. The account must have been funded
|
|
180
|
+
* at genesis (via getHardcodedAccountData). No on-chain deployment or block mining needed.
|
|
181
|
+
*/ async registerHardcodedAccount(accountData) {
|
|
182
|
+
const contract = new SchnorrHardcodedKeyAccountContract();
|
|
183
|
+
const wallet = this.context.wallet;
|
|
184
|
+
const accountManager = await wallet.createAccount({
|
|
185
|
+
secret: accountData.secret,
|
|
186
|
+
salt: accountData.salt,
|
|
187
|
+
contract
|
|
188
|
+
});
|
|
189
|
+
this.context.accounts = [
|
|
190
|
+
accountManager.address
|
|
191
|
+
];
|
|
192
|
+
return accountManager.address;
|
|
193
|
+
}
|
|
146
194
|
async createProverNode(opts = {}) {
|
|
147
195
|
this.logger.warn('Creating and syncing a simulated prover node...');
|
|
148
196
|
const proverNodePrivateKey = this.getNextPrivateKey();
|
|
149
197
|
const proverIndex = this.proverNodes.length + 1;
|
|
150
198
|
const { mockGossipSubNetwork } = this.context;
|
|
151
|
-
const proverNode = await withLoggerBindings({
|
|
199
|
+
const { proverNode } = await withLoggerBindings({
|
|
152
200
|
actor: `prover-${proverIndex}`
|
|
153
201
|
}, ()=>createAndSyncProverNode(proverNodePrivateKey, {
|
|
154
202
|
...this.context.config,
|
|
155
|
-
p2pEnabled: this.context.config.p2pEnabled || mockGossipSubNetwork !== undefined
|
|
156
|
-
}, {
|
|
157
|
-
dataDirectory: join(this.context.config.dataDirectory, randomBytes(8).toString('hex')),
|
|
203
|
+
p2pEnabled: this.context.config.p2pEnabled || mockGossipSubNetwork !== undefined,
|
|
158
204
|
proverId: EthAddress.fromNumber(proverIndex),
|
|
159
205
|
dontStart: opts.dontStart,
|
|
160
206
|
...opts
|
|
161
|
-
},
|
|
207
|
+
}, {
|
|
208
|
+
dataDirectory: join(this.context.config.dataDirectory, randomBytes(8).toString('hex'))
|
|
209
|
+
}, {
|
|
162
210
|
dateProvider: this.context.dateProvider,
|
|
163
|
-
p2pClientDeps:
|
|
164
|
-
p2pServiceFactory: getMockPubSubP2PServiceFactory(mockGossipSubNetwork)
|
|
165
|
-
|
|
211
|
+
p2pClientDeps: {
|
|
212
|
+
p2pServiceFactory: mockGossipSubNetwork ? getMockPubSubP2PServiceFactory(mockGossipSubNetwork) : undefined,
|
|
213
|
+
rpcTxProviders: [
|
|
214
|
+
this.context.aztecNode
|
|
215
|
+
]
|
|
216
|
+
}
|
|
217
|
+
}, {
|
|
218
|
+
genesis: this.context.genesis,
|
|
219
|
+
dontStart: opts.dontStart
|
|
166
220
|
}));
|
|
167
221
|
this.proverNodes.push(proverNode);
|
|
168
222
|
return proverNode;
|
|
@@ -198,31 +252,19 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
|
|
|
198
252
|
...resolvedConfig,
|
|
199
253
|
dataDirectory: join(this.context.config.dataDirectory, randomBytes(8).toString('hex')),
|
|
200
254
|
validatorPrivateKeys: opts.validatorPrivateKeys ?? new SecretValue([]),
|
|
255
|
+
nodeId: resolvedConfig.nodeId || `${actorPrefix}-${nodeIndex}`,
|
|
201
256
|
p2pEnabled,
|
|
202
257
|
p2pIp
|
|
203
258
|
}, {
|
|
204
259
|
dateProvider: this.context.dateProvider,
|
|
205
260
|
p2pClientDeps: {
|
|
206
261
|
p2pServiceFactory: mockGossipSubNetwork ? getMockPubSubP2PServiceFactory(mockGossipSubNetwork) : undefined
|
|
207
|
-
}
|
|
262
|
+
},
|
|
263
|
+
slashingProtectionDb: opts.slashingProtectionDb
|
|
208
264
|
}, {
|
|
209
|
-
|
|
265
|
+
genesis: this.context.genesis,
|
|
210
266
|
...opts
|
|
211
267
|
}));
|
|
212
|
-
// REFACTOR: We're getting too much into the internals of the sequencer here.
|
|
213
|
-
// We should have a single method for constructing an aztec node that returns a TestAztecNodeService
|
|
214
|
-
// which directly exposes the delayer and sets any test config.
|
|
215
|
-
if (opts.txDelayerMaxInclusionTimeIntoSlot !== undefined) {
|
|
216
|
-
this.logger.info(`Setting tx delayer max inclusion time into slot to ${opts.txDelayerMaxInclusionTimeIntoSlot} seconds`);
|
|
217
|
-
// 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.
|
|
218
|
-
// The delayer needs a wallet (a client that can sign), so we have to create one here.
|
|
219
|
-
const l1Client = createExtendedL1Client(resolvedConfig.l1RpcUrls, resolvedConfig.publisherPrivateKeys[0].getValue());
|
|
220
|
-
const sequencer = node.getSequencer();
|
|
221
|
-
const publisher = sequencer.sequencer.publisher;
|
|
222
|
-
const delayed = DelayedTxUtils.fromL1TxUtils(publisher.l1TxUtils, this.L1_BLOCK_TIME_IN_S, l1Client);
|
|
223
|
-
delayed.delayer.setMaxInclusionTimeIntoSlot(opts.txDelayerMaxInclusionTimeIntoSlot);
|
|
224
|
-
publisher.l1TxUtils = delayed;
|
|
225
|
-
}
|
|
226
268
|
this.nodes.push(node);
|
|
227
269
|
return node;
|
|
228
270
|
}
|
|
@@ -250,7 +292,9 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
|
|
|
250
292
|
this.logger.info(`Waiting until last slot of submission window for epoch ${epochNumber} at ${date}`, {
|
|
251
293
|
oneSlotBefore
|
|
252
294
|
});
|
|
253
|
-
|
|
295
|
+
// Use a timeout that accounts for the full proof submission window
|
|
296
|
+
const proofSubmissionWindowDuration = this.constants.proofSubmissionEpochs * this.epochDuration * this.L2_SLOT_DURATION_IN_S;
|
|
297
|
+
await waitUntilL1Timestamp(this.l1Client, oneSlotBefore, undefined, proofSubmissionWindowDuration * 2);
|
|
254
298
|
}
|
|
255
299
|
/** Waits for the aztec node to sync to the target block number. */ async waitForNodeToSync(blockNumber, type) {
|
|
256
300
|
const waitTime = ARCHIVER_POLL_INTERVAL + WORLD_STATE_BLOCK_CHECK_INTERVAL;
|
|
@@ -299,11 +343,13 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
|
|
|
299
343
|
return TestContract.at(instance.address, wallet);
|
|
300
344
|
}
|
|
301
345
|
/** Creates an L1 client using a fresh account with funds from anvil, with a tx delayer already set up. */ async createL1Client() {
|
|
302
|
-
const
|
|
346
|
+
const rawClient = createExtendedL1Client([
|
|
303
347
|
...this.l1Client.chain.rpcUrls.default.http
|
|
304
|
-
], privateKeyToAccount(this.getNextPrivateKey()), this.l1Client.chain)
|
|
348
|
+
], privateKeyToAccount(this.getNextPrivateKey()), this.l1Client.chain);
|
|
349
|
+
const delayer = createDelayer(this.context.dateProvider, {
|
|
305
350
|
ethereumSlotDuration: this.L1_BLOCK_TIME_IN_S
|
|
306
|
-
});
|
|
351
|
+
}, {});
|
|
352
|
+
const client = wrapClientWithDelayer(rawClient, delayer);
|
|
307
353
|
expect(await client.getBalance({
|
|
308
354
|
address: client.account.address
|
|
309
355
|
})).toBeGreaterThan(0n);
|
|
@@ -321,6 +367,30 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
|
|
|
321
367
|
]).then((_)=>true).catch((_)=>false);
|
|
322
368
|
expect(result).toBe(expectedSuccess);
|
|
323
369
|
}
|
|
370
|
+
/** Verifies at least one checkpoint has the target number of blocks (for MBPS validation). */ async assertMultipleBlocksPerSlot(targetBlockCount) {
|
|
371
|
+
const archiver = this.context.aztecNode.getBlockSource();
|
|
372
|
+
const checkpoints = await archiver.getCheckpoints(CheckpointNumber(1), 50);
|
|
373
|
+
this.logger.warn(`Retrieved ${checkpoints.length} checkpoints from archiver`, {
|
|
374
|
+
checkpoints: checkpoints.map((pc)=>pc.checkpoint.getStats())
|
|
375
|
+
});
|
|
376
|
+
let expectedBlockNumber = checkpoints[0].checkpoint.blocks[0].number;
|
|
377
|
+
let targetFound = false;
|
|
378
|
+
for (const checkpoint of checkpoints){
|
|
379
|
+
const blockCount = checkpoint.checkpoint.blocks.length;
|
|
380
|
+
targetFound = targetFound || blockCount >= targetBlockCount;
|
|
381
|
+
this.logger.verbose(`Checkpoint ${checkpoint.checkpoint.number} has ${blockCount} blocks`, {
|
|
382
|
+
checkpoint: checkpoint.checkpoint.getStats()
|
|
383
|
+
});
|
|
384
|
+
for(let i = 0; i < blockCount; i++){
|
|
385
|
+
const block = checkpoint.checkpoint.blocks[i];
|
|
386
|
+
expect(block.indexWithinCheckpoint).toBe(i);
|
|
387
|
+
expect(block.checkpointNumber).toBe(checkpoint.checkpoint.number);
|
|
388
|
+
expect(block.number).toBe(expectedBlockNumber);
|
|
389
|
+
expectedBlockNumber++;
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
expect(targetFound).toBe(true);
|
|
393
|
+
}
|
|
324
394
|
watchSequencerEvents(sequencers, getMetadata = ()=>({})) {
|
|
325
395
|
const stateChanges = [];
|
|
326
396
|
const failEvents = [];
|
|
@@ -85,4 +85,4 @@ export declare class FeesTest {
|
|
|
85
85
|
applyFundAliceWithBananas(): Promise<void>;
|
|
86
86
|
applyFundAliceWithPrivateBananas(): Promise<void>;
|
|
87
87
|
}
|
|
88
|
-
//# 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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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { createLogger } from '@aztec/aztec.js/log';
|
|
2
|
+
import { getTokenAllowedSetupFunctions } from '@aztec/aztec/testing';
|
|
2
3
|
import { createExtendedL1Client } from '@aztec/ethereum/client';
|
|
3
4
|
import { RollupContract } from '@aztec/ethereum/contracts';
|
|
4
5
|
import { ChainMonitor } from '@aztec/ethereum/test';
|
|
@@ -13,7 +14,7 @@ import { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
|
13
14
|
import { getCanonicalFeeJuice } from '@aztec/protocol-contracts/fee-juice';
|
|
14
15
|
import { GasSettings } from '@aztec/stdlib/gas';
|
|
15
16
|
import { getContract } from 'viem';
|
|
16
|
-
import { MNEMONIC } from '../fixtures/fixtures.js';
|
|
17
|
+
import { MNEMONIC, getPaddedMaxFeesPerGas } from '../fixtures/fixtures.js';
|
|
17
18
|
import { deployAccounts, publicDeployAccounts, setup, teardown } from '../fixtures/setup.js';
|
|
18
19
|
import { mintTokensToPrivate } from '../fixtures/token_utils.js';
|
|
19
20
|
import { getBalancesFn, setupSponsoredFPC } from '../fixtures/utils.js';
|
|
@@ -77,6 +78,8 @@ import { FeeJuicePortalTestingHarnessFactory } from '../shared/gas_portal_test_h
|
|
|
77
78
|
}
|
|
78
79
|
async setup() {
|
|
79
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();
|
|
80
83
|
this.context = await setup(0, {
|
|
81
84
|
startProverNode: true,
|
|
82
85
|
...this.setupOptions,
|
|
@@ -84,7 +87,11 @@ import { FeeJuicePortalTestingHarnessFactory } from '../shared/gas_portal_test_h
|
|
|
84
87
|
skipAccountDeployment: true,
|
|
85
88
|
l1ContractsArgs: {
|
|
86
89
|
...this.setupOptions
|
|
87
|
-
}
|
|
90
|
+
},
|
|
91
|
+
txPublicSetupAllowListExtend: [
|
|
92
|
+
...this.setupOptions.txPublicSetupAllowListExtend ?? [],
|
|
93
|
+
...tokenAllowList
|
|
94
|
+
]
|
|
88
95
|
});
|
|
89
96
|
this.rollupContract = RollupContract.getFromConfig(this.context.config);
|
|
90
97
|
this.chainMonitor = new ChainMonitor(this.rollupContract, this.context.dateProvider, this.logger, 200).start();
|
|
@@ -100,7 +107,7 @@ import { FeeJuicePortalTestingHarnessFactory } from '../shared/gas_portal_test_h
|
|
|
100
107
|
}
|
|
101
108
|
async catchUpProvenChain() {
|
|
102
109
|
const bn = await this.aztecNode.getBlockNumber();
|
|
103
|
-
while(await this.aztecNode.
|
|
110
|
+
while(await this.aztecNode.getBlockNumber('proven') < bn){
|
|
104
111
|
await sleep(1000);
|
|
105
112
|
}
|
|
106
113
|
}
|
|
@@ -124,11 +131,11 @@ import { FeeJuicePortalTestingHarnessFactory } from '../shared/gas_portal_test_h
|
|
|
124
131
|
});
|
|
125
132
|
}
|
|
126
133
|
/** Alice mints bananaCoin tokens privately to the target address and redeems them. */ async mintPrivateBananas(amount, address) {
|
|
127
|
-
const balanceBefore = await this.bananaCoin.methods.balance_of_private(address).simulate({
|
|
134
|
+
const { result: balanceBefore } = await this.bananaCoin.methods.balance_of_private(address).simulate({
|
|
128
135
|
from: address
|
|
129
136
|
});
|
|
130
137
|
await mintTokensToPrivate(this.bananaCoin, this.aliceAddress, address, amount);
|
|
131
|
-
const balanceAfter = await this.bananaCoin.methods.balance_of_private(address).simulate({
|
|
138
|
+
const { result: balanceAfter } = await this.bananaCoin.methods.balance_of_private(address).simulate({
|
|
132
139
|
from: address
|
|
133
140
|
});
|
|
134
141
|
expect(balanceAfter).toEqual(balanceBefore + amount);
|
|
@@ -148,8 +155,8 @@ import { FeeJuicePortalTestingHarnessFactory } from '../shared/gas_portal_test_h
|
|
|
148
155
|
this.wallet = this.context.wallet;
|
|
149
156
|
this.aztecNode = this.context.aztecNodeService;
|
|
150
157
|
this.aztecNodeAdmin = this.context.aztecNodeService;
|
|
151
|
-
this.gasSettings = GasSettings.
|
|
152
|
-
maxFeesPerGas:
|
|
158
|
+
this.gasSettings = GasSettings.fallback({
|
|
159
|
+
maxFeesPerGas: await getPaddedMaxFeesPerGas(this.aztecNode)
|
|
153
160
|
});
|
|
154
161
|
this.cheatCodes = this.context.cheatCodes;
|
|
155
162
|
this.accounts = deployedAccounts.map((a)=>a.address);
|
|
@@ -178,7 +185,7 @@ import { FeeJuicePortalTestingHarnessFactory } from '../shared/gas_portal_test_h
|
|
|
178
185
|
}
|
|
179
186
|
async applyDeployBananaToken() {
|
|
180
187
|
this.logger.info('Applying deploy banana token setup');
|
|
181
|
-
const bananaCoin = await BananaCoin.deploy(this.wallet, this.aliceAddress, 'BC', 'BC', 18n).send({
|
|
188
|
+
const { contract: bananaCoin } = await BananaCoin.deploy(this.wallet, this.aliceAddress, 'BC', 'BC', 18n).send({
|
|
182
189
|
from: this.aliceAddress
|
|
183
190
|
});
|
|
184
191
|
this.logger.info(`BananaCoin deployed at ${bananaCoin.address}`);
|
|
@@ -191,7 +198,7 @@ import { FeeJuicePortalTestingHarnessFactory } from '../shared/gas_portal_test_h
|
|
|
191
198
|
const feeJuiceContract = this.feeJuiceBridgeTestHarness.feeJuice;
|
|
192
199
|
expect((await this.wallet.getContractMetadata(feeJuiceContract.address)).isContractPublished).toBe(true);
|
|
193
200
|
const bananaCoin = this.bananaCoin;
|
|
194
|
-
const bananaFPC = await FPCContract.deploy(this.wallet, bananaCoin.address, this.fpcAdmin).send({
|
|
201
|
+
const { contract: bananaFPC } = await FPCContract.deploy(this.wallet, bananaCoin.address, this.fpcAdmin).send({
|
|
195
202
|
from: this.aliceAddress
|
|
196
203
|
});
|
|
197
204
|
this.logger.info(`BananaPay deployed at ${bananaFPC.address}`);
|
|
@@ -216,7 +223,7 @@ import { FeeJuicePortalTestingHarnessFactory } from '../shared/gas_portal_test_h
|
|
|
216
223
|
const block = await this.aztecNode.getBlock(blockNumber);
|
|
217
224
|
// @todo @lherskind As we deal with #13601
|
|
218
225
|
// Right now the value is from `FeeLib.sol`
|
|
219
|
-
const L1_GAS_PER_EPOCH_VERIFIED =
|
|
226
|
+
const L1_GAS_PER_EPOCH_VERIFIED = 3600000n;
|
|
220
227
|
// We round up
|
|
221
228
|
const mulDiv = (a, b, c)=>a * b / c + (a * b % c > 0n ? 1n : 0n);
|
|
222
229
|
const { baseFee } = await this.rollupContract.getL1FeesAt(block.header.globalVariables.timestamp);
|
|
@@ -23,4 +23,4 @@ export declare class NestedContractTest {
|
|
|
23
23
|
teardown(): Promise<void>;
|
|
24
24
|
applyManual(): Promise<void>;
|
|
25
25
|
}
|
|
26
|
-
//# 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,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,
|
|
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"}
|
|
@@ -44,13 +44,11 @@ export class NestedContractTest {
|
|
|
44
44
|
}
|
|
45
45
|
async applyManual() {
|
|
46
46
|
this.logger.info('Deploying parent and child contracts');
|
|
47
|
-
|
|
47
|
+
({ contract: this.parentContract } = await ParentContract.deploy(this.wallet).send({
|
|
48
48
|
from: this.defaultAccountAddress
|
|
49
|
-
});
|
|
50
|
-
|
|
49
|
+
}));
|
|
50
|
+
({ contract: this.childContract } = await ChildContract.deploy(this.wallet).send({
|
|
51
51
|
from: this.defaultAccountAddress
|
|
52
|
-
});
|
|
53
|
-
this.parentContract = parentContract;
|
|
54
|
-
this.childContract = childContract;
|
|
52
|
+
}));
|
|
55
53
|
}
|
|
56
54
|
}
|
|
@@ -42,6 +42,7 @@ export class P2PInactivityTest {
|
|
|
42
42
|
basePort: BOOT_NODE_UDP_PORT,
|
|
43
43
|
startProverNode: true,
|
|
44
44
|
initialConfig: {
|
|
45
|
+
anvilSlotsInAnEpoch: 4,
|
|
45
46
|
proverNodeConfig: {
|
|
46
47
|
proverNodeEpochProvingDelayMs: AZTEC_SLOT_DURATION * 1000
|
|
47
48
|
},
|
|
@@ -52,7 +53,6 @@ export class P2PInactivityTest {
|
|
|
52
53
|
listenAddress: '127.0.0.1',
|
|
53
54
|
minTxsPerBlock: 0,
|
|
54
55
|
aztecEpochDuration: EPOCH_DURATION,
|
|
55
|
-
validatorReexecute: false,
|
|
56
56
|
sentinelEnabled: true,
|
|
57
57
|
slashingQuorum: SLASHING_QUORUM,
|
|
58
58
|
slashingRoundSizeInEpochs: SLASHING_ROUND_SIZE_IN_EPOCHS,
|
|
@@ -84,13 +84,13 @@ export class P2PInactivityTest {
|
|
|
84
84
|
await this.test.ctx.aztecNodeService.stop();
|
|
85
85
|
}
|
|
86
86
|
// Create all active nodes
|
|
87
|
-
this.activeNodes = await createNodes(this.test.ctx.aztecNodeConfig, this.test.ctx.dateProvider, this.test.bootstrapNodeEnr, NUM_NODES - this.inactiveNodeCount - Number(this.keepInitialNode), BOOT_NODE_UDP_PORT, this.test.
|
|
87
|
+
this.activeNodes = await createNodes(this.test.ctx.aztecNodeConfig, this.test.ctx.dateProvider, this.test.bootstrapNodeEnr, NUM_NODES - this.inactiveNodeCount - Number(this.keepInitialNode), BOOT_NODE_UDP_PORT, this.test.genesis, this.dataDir, undefined, Number(this.keepInitialNode));
|
|
88
88
|
// And the ones with an initially disabled sequencer
|
|
89
89
|
const inactiveConfig = {
|
|
90
90
|
...this.test.ctx.aztecNodeConfig,
|
|
91
91
|
dontStartSequencer: true
|
|
92
92
|
};
|
|
93
|
-
this.inactiveNodes = await createNodes(inactiveConfig, this.test.ctx.dateProvider, this.test.bootstrapNodeEnr, this.inactiveNodeCount, BOOT_NODE_UDP_PORT, this.test.
|
|
93
|
+
this.inactiveNodes = await createNodes(inactiveConfig, this.test.ctx.dateProvider, this.test.bootstrapNodeEnr, this.inactiveNodeCount, BOOT_NODE_UDP_PORT, this.test.genesis, this.dataDir, undefined, NUM_NODES - this.inactiveNodeCount);
|
|
94
94
|
this.nodes = [
|
|
95
95
|
...this.keepInitialNode ? [
|
|
96
96
|
this.test.ctx.aztecNodeService
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type InitialAccountData } from '@aztec/accounts/testing';
|
|
2
2
|
import type { AztecNodeService } from '@aztec/aztec-node';
|
|
3
3
|
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
4
|
-
import {
|
|
4
|
+
import { RollupContract, type SlashingProposerContract } from '@aztec/ethereum/contracts';
|
|
5
5
|
import type { Operator } from '@aztec/ethereum/deploy-aztec-l1-contracts';
|
|
6
6
|
import { ChainMonitor } from '@aztec/ethereum/test';
|
|
7
7
|
import type { ViemClient } from '@aztec/ethereum/types';
|
|
@@ -9,8 +9,8 @@ import { type Logger } from '@aztec/foundation/log';
|
|
|
9
9
|
import { SlasherAbi } from '@aztec/l1-artifacts';
|
|
10
10
|
import { SpamContract } from '@aztec/noir-test-contracts.js/Spam';
|
|
11
11
|
import type { BootstrapNode } from '@aztec/p2p/bootstrap';
|
|
12
|
-
import {
|
|
13
|
-
import type {
|
|
12
|
+
import { TopicType } from '@aztec/stdlib/p2p';
|
|
13
|
+
import type { GenesisData } from '@aztec/stdlib/world-state';
|
|
14
14
|
import { type GetContractReturnType } from 'viem';
|
|
15
15
|
import { type EndToEndContext, type SetupOptions } from '../fixtures/setup.js';
|
|
16
16
|
import type { TestWallet } from '../test-wallet/test_wallet.js';
|
|
@@ -18,7 +18,7 @@ export declare const WAIT_FOR_TX_TIMEOUT: number;
|
|
|
18
18
|
export declare const SHORTENED_BLOCK_TIME_CONFIG_NO_PRUNES: {
|
|
19
19
|
aztecSlotDuration: number;
|
|
20
20
|
ethereumSlotDuration: number;
|
|
21
|
-
|
|
21
|
+
aztecProofSubmissionEpochs: number;
|
|
22
22
|
};
|
|
23
23
|
export declare class P2PNetworkTest {
|
|
24
24
|
readonly testName: string;
|
|
@@ -259,8 +259,8 @@ export declare class P2PNetworkTest {
|
|
|
259
259
|
attesterPublicKeys: string[];
|
|
260
260
|
peerIdPrivateKeys: string[];
|
|
261
261
|
validators: Operator[];
|
|
262
|
-
|
|
263
|
-
|
|
262
|
+
hardcodedAccountData: InitialAccountData;
|
|
263
|
+
genesis: GenesisData | undefined;
|
|
264
264
|
wallet?: TestWallet;
|
|
265
265
|
defaultAccountAddress?: AztecAddress;
|
|
266
266
|
spamContract?: SpamContract;
|
|
@@ -283,6 +283,9 @@ export declare class P2PNetworkTest {
|
|
|
283
283
|
validators: Operator[];
|
|
284
284
|
};
|
|
285
285
|
applyBaseSetup(): Promise<void>;
|
|
286
|
+
/** Points the wallet to a P2P-enabled node so transactions can propagate through the network. */
|
|
287
|
+
setupWalletOnNode(node: AztecNodeService): void;
|
|
288
|
+
/** Registers the hardcoded account in PXE without on-chain deployment. No sequencer needed. */
|
|
286
289
|
setupAccount(): Promise<void>;
|
|
287
290
|
deploySpamContract(): Promise<void>;
|
|
288
291
|
removeInitialNode(): Promise<void>;
|
|
@@ -303,13 +306,12 @@ export declare class P2PNetworkTest {
|
|
|
303
306
|
* @param timeoutSeconds - Maximum time to wait for connections (default: 30 seconds)
|
|
304
307
|
* @param checkIntervalSeconds - How often to check connectivity (default: 0.1 seconds)
|
|
305
308
|
*/
|
|
306
|
-
waitForP2PMeshConnectivity(nodes: AztecNodeService[], expectedNodeCount?: number, timeoutSeconds?: number, checkIntervalSeconds?: number): Promise<void>;
|
|
309
|
+
waitForP2PMeshConnectivity(nodes: AztecNodeService[], expectedNodeCount?: number, timeoutSeconds?: number, checkIntervalSeconds?: number, topics?: TopicType[]): Promise<void>;
|
|
307
310
|
teardown(): Promise<void>;
|
|
308
311
|
getContracts(): Promise<{
|
|
309
312
|
rollup: RollupContract;
|
|
310
313
|
slasherContract: GetContractReturnType<typeof SlasherAbi, ViemClient>;
|
|
311
|
-
slashingProposer:
|
|
312
|
-
slashFactory: SlashFactoryContract;
|
|
314
|
+
slashingProposer: SlashingProposerContract | undefined;
|
|
313
315
|
}>;
|
|
314
316
|
}
|
|
315
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
317
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicDJwX25ldHdvcmsuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lMmVfcDJwL3AycF9uZXR3b3JrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLGtCQUFrQixFQUEyQixNQUFNLHlCQUF5QixDQUFDO0FBQzNGLE9BQU8sS0FBSyxFQUFtQixnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxZQUFZLEVBQWMsTUFBTSwyQkFBMkIsQ0FBQztBQUdyRSxPQUFPLEVBQWUsY0FBYyxFQUFFLEtBQUssd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUkxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQTRCLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR2xGLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRSxPQUFPLEVBQWEsVUFBVSxFQUFnQixNQUFNLHFCQUFxQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNsRSxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUcxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFLN0QsT0FBTyxFQUFFLEtBQUsscUJBQXFCLEVBQTJCLE1BQU0sTUFBTSxDQUFDO0FBTzNFLE9BQU8sRUFDTCxLQUFLLGVBQWUsRUFDcEIsS0FBSyxZQUFZLEVBS2xCLE1BQU0sc0JBQXNCLENBQUM7QUFPOUIsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStC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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"p2p_network.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/p2p_network.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"p2p_network.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/p2p_network.ts"],"names":[],"mappings":"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"}
|