@aztec/end-to-end 0.0.1-commit.001888fc → 0.0.1-commit.017a351
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/benchmark.d.ts +15 -1
- package/dest/bench/client_flows/benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/benchmark.js +17 -0
- package/dest/bench/client_flows/client_flows_benchmark.d.ts +2 -2
- package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/client_flows_benchmark.js +27 -38
- package/dest/bench/utils.d.ts +1 -1
- package/dest/bench/utils.d.ts.map +1 -1
- package/dest/bench/utils.js +2 -0
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +5 -4
- 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 +14 -5
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +15 -4
- 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 +39 -7
- package/dest/e2e_deploy_contract/deploy_test.d.ts +3 -3
- package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
- package/dest/e2e_deploy_contract/deploy_test.js +2 -1
- package/dest/e2e_epochs/epochs_test.d.ts +25 -2
- package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.js +86 -13
- package/dest/e2e_fees/fees_test.d.ts +5 -2
- package/dest/e2e_fees/fees_test.d.ts.map +1 -1
- package/dest/e2e_fees/fees_test.js +32 -6
- package/dest/e2e_nested_contract/nested_contract_test.d.ts +3 -3
- package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
- package/dest/e2e_nested_contract/nested_contract_test.js +2 -1
- package/dest/e2e_p2p/inactivity_slash_test.d.ts +1 -1
- package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -1
- package/dest/e2e_p2p/inactivity_slash_test.js +4 -3
- package/dest/e2e_p2p/p2p_network.d.ts +10 -9
- package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
- package/dest/e2e_p2p/p2p_network.js +46 -27
- package/dest/e2e_p2p/reqresp/utils.d.ts +1 -1
- package/dest/e2e_p2p/reqresp/utils.d.ts.map +1 -1
- package/dest/e2e_p2p/reqresp/utils.js +29 -13
- package/dest/e2e_p2p/shared.d.ts +23 -14
- package/dest/e2e_p2p/shared.d.ts.map +1 -1
- package/dest/e2e_p2p/shared.js +62 -57
- package/dest/e2e_token_contract/token_contract_test.d.ts +3 -3
- package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
- package/dest/e2e_token_contract/token_contract_test.js +4 -2
- package/dest/fixtures/authwit_proxy.d.ts +1 -1
- 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 +9 -13
- package/dest/fixtures/fixtures.d.ts +70 -1
- package/dest/fixtures/fixtures.d.ts.map +1 -1
- package/dest/fixtures/fixtures.js +65 -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 +37 -0
- package/dest/fixtures/setup.d.ts +44 -11
- package/dest/fixtures/setup.d.ts.map +1 -1
- package/dest/fixtures/setup.js +157 -28
- package/dest/fixtures/setup_p2p_test.d.ts +10 -6
- package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
- package/dest/fixtures/setup_p2p_test.js +8 -8
- package/dest/fixtures/token_utils.d.ts +1 -1
- package/dest/fixtures/token_utils.d.ts.map +1 -1
- package/dest/fixtures/token_utils.js +2 -5
- package/dest/fixtures/utils.d.ts +2 -2
- package/dest/fixtures/utils.d.ts.map +1 -1
- package/dest/fixtures/utils.js +1 -1
- 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/install_legacy_contracts.d.cts +10 -0
- package/dest/install_legacy_contracts.d.cts.map +1 -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 +4 -2
- package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.js +9 -5
- package/dest/shared/gas_portal_test_harness.d.ts +8 -5
- package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
- package/dest/shared/gas_portal_test_harness.js +17 -8
- 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 +50 -32
- package/dest/shared/wait_for_l1_to_l2_message.d.ts +13 -0
- package/dest/shared/wait_for_l1_to_l2_message.d.ts.map +1 -0
- package/dest/shared/wait_for_l1_to_l2_message.js +10 -0
- package/dest/simulators/lending_simulator.d.ts +10 -3
- package/dest/simulators/lending_simulator.d.ts.map +1 -1
- package/dest/simulators/lending_simulator.js +24 -12
- package/dest/simulators/token_simulator.js +1 -1
- package/dest/spartan/setup_test_wallets.d.ts +1 -1
- package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.js +72 -48
- package/dest/spartan/tx_metrics.d.ts +18 -4
- package/dest/spartan/tx_metrics.d.ts.map +1 -1
- package/dest/spartan/tx_metrics.js +73 -20
- package/dest/spartan/utils/config.d.ts +9 -35
- package/dest/spartan/utils/config.d.ts.map +1 -1
- package/dest/spartan/utils/nodes.js +2 -2
- package/dest/test-wallet/test_wallet.d.ts +25 -23
- package/dest/test-wallet/test_wallet.d.ts.map +1 -1
- package/dest/test-wallet/test_wallet.js +146 -87
- package/dest/test-wallet/utils.d.ts +3 -3
- package/dest/test-wallet/utils.d.ts.map +1 -1
- package/dest/test-wallet/utils.js +2 -7
- package/dest/test-wallet/wallet_worker_script.js +7 -2
- package/dest/test-wallet/worker_wallet.d.ts +5 -4
- package/dest/test-wallet/worker_wallet.d.ts.map +1 -1
- package/dest/test-wallet/worker_wallet.js +6 -2
- package/dest/test-wallet/worker_wallet_schema.d.ts +110 -224
- package/dest/test-wallet/worker_wallet_schema.d.ts.map +1 -1
- package/dest/test-wallet/worker_wallet_schema.js +14 -2
- package/package.json +46 -41
- package/src/bench/client_flows/benchmark.ts +19 -0
- package/src/bench/client_flows/client_flows_benchmark.ts +64 -53
- package/src/bench/utils.ts +2 -1
- package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +24 -10
- package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +49 -11
- package/src/e2e_deploy_contract/deploy_test.ts +3 -2
- package/src/e2e_epochs/epochs_test.ts +98 -11
- package/src/e2e_fees/fees_test.ts +37 -4
- package/src/e2e_nested_contract/nested_contract_test.ts +3 -1
- package/src/e2e_p2p/inactivity_slash_test.ts +4 -3
- package/src/e2e_p2p/p2p_network.ts +57 -39
- package/src/e2e_p2p/reqresp/utils.ts +30 -12
- package/src/e2e_p2p/shared.ts +60 -71
- package/src/e2e_token_contract/token_contract_test.ts +12 -2
- package/src/fixtures/authwit_proxy.ts +4 -0
- package/src/fixtures/e2e_prover_test.ts +15 -18
- package/src/fixtures/fixtures.ts +83 -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 +186 -33
- package/src/fixtures/setup_p2p_test.ts +13 -9
- package/src/fixtures/token_utils.ts +1 -4
- package/src/fixtures/utils.ts +2 -0
- 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/install_legacy_contracts.cjs +75 -0
- package/src/legacy-jest-resolver.cjs +112 -0
- package/src/shared/cross_chain_test_harness.ts +14 -4
- package/src/shared/gas_portal_test_harness.ts +20 -10
- package/src/shared/uniswap_l1_l2.ts +84 -40
- package/src/shared/wait_for_l1_to_l2_message.ts +23 -0
- package/src/simulators/lending_simulator.ts +28 -12
- package/src/simulators/token_simulator.ts +1 -1
- package/src/spartan/setup_test_wallets.ts +69 -43
- package/src/spartan/tx_metrics.ts +81 -23
- package/src/spartan/utils/nodes.ts +2 -2
- package/src/test-wallet/test_wallet.ts +174 -104
- package/src/test-wallet/utils.ts +3 -7
- package/src/test-wallet/wallet_worker_script.ts +5 -2
- package/src/test-wallet/worker_wallet.ts +10 -5
- package/src/test-wallet/worker_wallet_schema.ts +2 -2
|
@@ -4,7 +4,7 @@ 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 EndToEndContext } from '../fixtures/setup.js';
|
|
7
|
+
import { type EndToEndContext, type SetupOptions } from '../fixtures/setup.js';
|
|
8
8
|
export declare class NestedContractTest {
|
|
9
9
|
private numberOfAccounts;
|
|
10
10
|
context: EndToEndContext;
|
|
@@ -19,8 +19,8 @@ export declare class NestedContractTest {
|
|
|
19
19
|
* Applies base setup by deploying accounts and publicly deploying them.
|
|
20
20
|
*/
|
|
21
21
|
applyBaseSetup(): Promise<void>;
|
|
22
|
-
setup(): Promise<void>;
|
|
22
|
+
setup(opts?: Partial<SetupOptions>): Promise<void>;
|
|
23
23
|
teardown(): Promise<void>;
|
|
24
24
|
applyManual(): Promise<void>;
|
|
25
25
|
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGVkX2NvbnRyYWN0X3Rlc3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lMmVfbmVzdGVkX2NvbnRyYWN0L25lc3RlZF9jb250cmFjdF90ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUV0RSxPQUFPLEVBQ0wsS0FBSyxlQUFlLEVBQ3BCLEtBQUssWUFBWSxFQUtsQixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLHFCQUFhLGtCQUFrQjtJQVkzQixPQUFPLENBQUMsZ0JBQWdCO0lBWDFCLE9BQU8sRUFBRyxlQUFlLENBQUM7SUFDMUIsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNmLE1BQU0sRUFBRyxNQUFNLENBQUM7SUFDaEIscUJBQXFCLEVBQUcsWUFBWSxDQUFDO0lBQ3JDLFNBQVMsRUFBRyxTQUFTLENBQUM7SUFFdEIsY0FBYyxFQUFHLGNBQWMsQ0FBQztJQUNoQyxhQUFhLEVBQUcsYUFBYSxDQUFDO0lBRTlCLFlBQ0UsUUFBUSxFQUFFLE1BQU0sRUFDUixnQkFBZ0IsU0FBSSxFQUc3QjtJQUVEOztPQUVHO0lBQ0csY0FBYyxrQkFlbkI7SUFFSyxLQUFLLENBQUMsSUFBSSxHQUFFLE9BQU8sQ0FBQyxZQUFZLENBQU0saUJBUTNDO0lBRUssUUFBUSxrQkFFYjtJQUVLLFdBQVcsa0JBUWhCO0NBQ0YifQ==
|
|
@@ -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,
|
|
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,EACpB,KAAK,YAAY,EAKlB,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,CAAC,IAAI,GAAE,OAAO,CAAC,YAAY,CAAM,iBAQ3C;IAEK,QAAQ,kBAEb;IAEK,WAAW,kBAQhB;CACF"}
|
|
@@ -31,9 +31,10 @@ export class NestedContractTest {
|
|
|
31
31
|
this.defaultAccountAddress
|
|
32
32
|
]);
|
|
33
33
|
}
|
|
34
|
-
async setup() {
|
|
34
|
+
async setup(opts = {}) {
|
|
35
35
|
this.logger.info('Setting up fresh subsystems');
|
|
36
36
|
this.context = await setup(0, {
|
|
37
|
+
...opts,
|
|
37
38
|
fundSponsoredFPC: true,
|
|
38
39
|
skipAccountDeployment: true
|
|
39
40
|
});
|
|
@@ -28,4 +28,4 @@ export declare class P2PInactivityTest {
|
|
|
28
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5hY3Rpdml0eV9zbGFzaF90ZXN0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZTJlX3AycC9pbmFjdGl2aXR5X3NsYXNoX3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSTNELE9BQU8sZUFBZSxDQUFDO0FBS3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQWlCbEQscUJBQWEsaUJBQWlCO2FBYVYsSUFBSSxFQUFFLGNBQWM7SUFaL0IsS0FBSyxFQUFHLGdCQUFnQixFQUFFLENBQUM7SUFDM0IsV0FBVyxFQUFHLGdCQUFnQixFQUFFLENBQUM7SUFDakMsYUFBYSxFQUFHLGdCQUFnQixFQUFFLENBQUM7SUFFbkMsTUFBTSxFQUFHLGNBQWMsQ0FBQztJQUN4QixpQkFBaUIsRUFBRyxVQUFVLEVBQUUsQ0FBQztJQUV4QyxPQUFPLENBQUMsT0FBTyxDQUFTO0lBQ3hCLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBUztJQUNsQyxPQUFPLENBQUMsZUFBZSxDQUFVO0lBRWpDLFlBQ2tCLElBQUksRUFBRSxjQUFjLEVBQ3BDLElBQUksRUFBRTtRQUFFLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztRQUFDLGVBQWUsQ0FBQyxFQUFFLE9BQU8sQ0FBQTtLQUFFLEVBSy9EO0lBRUQsT0FBYSxNQUFNLENBQ2pCLFFBQVEsRUFBRSxNQUFNLEVBQ2hCLElBQUksRUFBRTtRQUFFLHdDQUF3QyxFQUFFLE1BQU0sQ0FBQztRQUFDLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztRQUFDLGVBQWUsQ0FBQyxFQUFFLE9BQU8sQ0FBQTtLQUFFLDhCQStCakg7SUFFWSxLQUFLLGtCQTBFakI7SUFFWSxRQUFRLGtCQU1wQjtJQUVELElBQVcsR0FBRyxtREFFYjtJQUVELElBQVcsTUFBTSwyQ0FFaEI7SUFFRCxJQUFXLGNBQWMsV0FFeEI7Q0FDRiJ9
|
|
@@ -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,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,
|
|
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,8BA+BjH;IAEY,KAAK,kBA0EjB;IAEY,QAAQ,kBAMpB;IAED,IAAW,GAAG,mDAEb;IAED,IAAW,MAAM,2CAEhB;IAED,IAAW,cAAc,WAExB;CACF"}
|
|
@@ -42,6 +42,8 @@ export class P2PInactivityTest {
|
|
|
42
42
|
basePort: BOOT_NODE_UDP_PORT,
|
|
43
43
|
startProverNode: true,
|
|
44
44
|
initialConfig: {
|
|
45
|
+
inboxLag: 2,
|
|
46
|
+
anvilSlotsInAnEpoch: 4,
|
|
45
47
|
proverNodeConfig: {
|
|
46
48
|
proverNodeEpochProvingDelayMs: AZTEC_SLOT_DURATION * 1000
|
|
47
49
|
},
|
|
@@ -52,7 +54,6 @@ export class P2PInactivityTest {
|
|
|
52
54
|
listenAddress: '127.0.0.1',
|
|
53
55
|
minTxsPerBlock: 0,
|
|
54
56
|
aztecEpochDuration: EPOCH_DURATION,
|
|
55
|
-
validatorReexecute: false,
|
|
56
57
|
sentinelEnabled: true,
|
|
57
58
|
slashingQuorum: SLASHING_QUORUM,
|
|
58
59
|
slashingRoundSizeInEpochs: SLASHING_ROUND_SIZE_IN_EPOCHS,
|
|
@@ -84,13 +85,13 @@ export class P2PInactivityTest {
|
|
|
84
85
|
await this.test.ctx.aztecNodeService.stop();
|
|
85
86
|
}
|
|
86
87
|
// 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.
|
|
88
|
+
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
89
|
// And the ones with an initially disabled sequencer
|
|
89
90
|
const inactiveConfig = {
|
|
90
91
|
...this.test.ctx.aztecNodeConfig,
|
|
91
92
|
dontStartSequencer: true
|
|
92
93
|
};
|
|
93
|
-
this.inactiveNodes = await createNodes(inactiveConfig, this.test.ctx.dateProvider, this.test.bootstrapNodeEnr, this.inactiveNodeCount, BOOT_NODE_UDP_PORT, this.test.
|
|
94
|
+
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
95
|
this.nodes = [
|
|
95
96
|
...this.keepInitialNode ? [
|
|
96
97
|
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,9 +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 { SlashFactoryContract } from '@aztec/stdlib/l1-contracts';
|
|
13
12
|
import { TopicType } from '@aztec/stdlib/p2p';
|
|
14
|
-
import type {
|
|
13
|
+
import type { GenesisData } from '@aztec/stdlib/world-state';
|
|
15
14
|
import { type GetContractReturnType } from 'viem';
|
|
16
15
|
import { type EndToEndContext, type SetupOptions } from '../fixtures/setup.js';
|
|
17
16
|
import type { TestWallet } from '../test-wallet/test_wallet.js';
|
|
@@ -260,8 +259,8 @@ export declare class P2PNetworkTest {
|
|
|
260
259
|
attesterPublicKeys: string[];
|
|
261
260
|
peerIdPrivateKeys: string[];
|
|
262
261
|
validators: Operator[];
|
|
263
|
-
|
|
264
|
-
|
|
262
|
+
hardcodedAccountData: InitialAccountData;
|
|
263
|
+
genesis: GenesisData | undefined;
|
|
265
264
|
wallet?: TestWallet;
|
|
266
265
|
defaultAccountAddress?: AztecAddress;
|
|
267
266
|
spamContract?: SpamContract;
|
|
@@ -284,6 +283,9 @@ export declare class P2PNetworkTest {
|
|
|
284
283
|
validators: Operator[];
|
|
285
284
|
};
|
|
286
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. */
|
|
287
289
|
setupAccount(): Promise<void>;
|
|
288
290
|
deploySpamContract(): Promise<void>;
|
|
289
291
|
removeInitialNode(): Promise<void>;
|
|
@@ -309,8 +311,7 @@ export declare class P2PNetworkTest {
|
|
|
309
311
|
getContracts(): Promise<{
|
|
310
312
|
rollup: RollupContract;
|
|
311
313
|
slasherContract: GetContractReturnType<typeof SlasherAbi, ViemClient>;
|
|
312
|
-
slashingProposer:
|
|
313
|
-
slashFactory: SlashFactoryContract;
|
|
314
|
+
slashingProposer: SlashingProposerContract | undefined;
|
|
314
315
|
}>;
|
|
315
316
|
}
|
|
316
|
-
//# 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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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { generateSchnorrAccounts } from '@aztec/accounts/testing';
|
|
2
|
+
import { getAccountContractAddress } from '@aztec/aztec.js/account';
|
|
1
3
|
import { EthAddress } from '@aztec/aztec.js/addresses';
|
|
2
4
|
import { Fr } from '@aztec/aztec.js/fields';
|
|
3
5
|
import { getL1ContractsConfigEnvVars } from '@aztec/ethereum/config';
|
|
@@ -14,14 +16,14 @@ import { RollupAbi, SlasherAbi, TestERC20Abi } from '@aztec/l1-artifacts';
|
|
|
14
16
|
import { SpamContract } from '@aztec/noir-test-contracts.js/Spam';
|
|
15
17
|
import { createBootstrapNodeFromPrivateKey, getBootstrapNodeEnr } from '@aztec/p2p/test-helpers';
|
|
16
18
|
import { tryStop } from '@aztec/stdlib/interfaces/server';
|
|
17
|
-
import { SlashFactoryContract } from '@aztec/stdlib/l1-contracts';
|
|
18
19
|
import { TopicType } from '@aztec/stdlib/p2p';
|
|
19
20
|
import { ZkPassportProofParams } from '@aztec/stdlib/zkpassport';
|
|
20
21
|
import { getGenesisValues } from '@aztec/world-state/testing';
|
|
21
22
|
import getPort from 'get-port';
|
|
22
23
|
import { getAddress, getContract } from 'viem';
|
|
23
24
|
import { privateKeyToAccount } from 'viem/accounts';
|
|
24
|
-
import {
|
|
25
|
+
import { SCHNORR_HARDCODED_PRIVATE_KEY, SchnorrHardcodedKeyAccountContract } from '../fixtures/schnorr_hardcoded_account_contract.js';
|
|
26
|
+
import { getPrivateKeyFromIndex, getSponsoredFPCAddress, setup, teardown } from '../fixtures/setup.js';
|
|
25
27
|
import { ATTESTER_PRIVATE_KEYS_START_INDEX, createValidatorConfig, generatePrivateKeys } from '../fixtures/setup_p2p_test.js';
|
|
26
28
|
import { getEndToEndTestTelemetryClient } from '../fixtures/with_telemetry_utils.js';
|
|
27
29
|
// Use a fixed bootstrap node private key so that we can re-use the same snapshot and the nodes can find each other
|
|
@@ -50,8 +52,8 @@ export class P2PNetworkTest {
|
|
|
50
52
|
attesterPublicKeys;
|
|
51
53
|
peerIdPrivateKeys;
|
|
52
54
|
validators;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
+
hardcodedAccountData;
|
|
56
|
+
genesis;
|
|
55
57
|
// The re-execution test needs a wallet and a spam contract
|
|
56
58
|
wallet;
|
|
57
59
|
defaultAccountAddress;
|
|
@@ -72,8 +74,6 @@ export class P2PNetworkTest {
|
|
|
72
74
|
this.attesterPublicKeys = [];
|
|
73
75
|
this.peerIdPrivateKeys = [];
|
|
74
76
|
this.validators = [];
|
|
75
|
-
this.deployedAccounts = [];
|
|
76
|
-
this.prefilledPublicData = [];
|
|
77
77
|
this.logger = createLogger(`e2e:e2e_p2p:${testName}`);
|
|
78
78
|
// Set up the base account and node private keys for the initial network deployment
|
|
79
79
|
this.baseAccountPrivateKey = `0x${getPrivateKeyFromIndex(1).toString('hex')}`;
|
|
@@ -89,18 +89,17 @@ export class P2PNetworkTest {
|
|
|
89
89
|
aztecSlotDuration: initialValidatorConfig.aztecSlotDuration ?? l1ContractsConfig.aztecSlotDuration,
|
|
90
90
|
aztecProofSubmissionEpochs: initialValidatorConfig.aztecProofSubmissionEpochs ?? l1ContractsConfig.aztecProofSubmissionEpochs,
|
|
91
91
|
slashingRoundSizeInEpochs: initialValidatorConfig.slashingRoundSizeInEpochs ?? l1ContractsConfig.slashingRoundSizeInEpochs,
|
|
92
|
-
|
|
92
|
+
slasherEnabled: initialValidatorConfig.slasherEnabled ?? true,
|
|
93
93
|
aztecTargetCommitteeSize: numberOfValidators,
|
|
94
94
|
metricsPort: metricsPort,
|
|
95
95
|
numberOfInitialFundedAccounts: 2,
|
|
96
|
-
startProverNode
|
|
97
|
-
walletMinFeePadding: 2.0
|
|
96
|
+
startProverNode
|
|
98
97
|
};
|
|
99
98
|
this.deployL1ContractsArgs = {
|
|
100
99
|
...initialValidatorConfig,
|
|
101
100
|
aztecEpochDuration: initialValidatorConfig.aztecEpochDuration ?? l1ContractsConfig.aztecEpochDuration,
|
|
102
101
|
slashingRoundSizeInEpochs: initialValidatorConfig.slashingRoundSizeInEpochs ?? l1ContractsConfig.slashingRoundSizeInEpochs,
|
|
103
|
-
|
|
102
|
+
slasherEnabled: initialValidatorConfig.slasherEnabled ?? true,
|
|
104
103
|
ethereumSlotDuration: initialValidatorConfig.ethereumSlotDuration ?? l1ContractsConfig.ethereumSlotDuration,
|
|
105
104
|
aztecSlotDuration: initialValidatorConfig.aztecSlotDuration ?? l1ContractsConfig.aztecSlotDuration,
|
|
106
105
|
aztecProofSubmissionEpochs: initialValidatorConfig.aztecProofSubmissionEpochs ?? l1ContractsConfig.aztecProofSubmissionEpochs,
|
|
@@ -120,10 +119,10 @@ export class P2PNetworkTest {
|
|
|
120
119
|
return new P2PNetworkTest(testName, bootstrapNodeEnr, port, numberOfValidators, initialValidatorConfig, numberOfNodes, metricsPort, startProverNode);
|
|
121
120
|
}
|
|
122
121
|
get fundedAccount() {
|
|
123
|
-
if (!this.
|
|
124
|
-
throw new Error('Call
|
|
122
|
+
if (!this.hardcodedAccountData) {
|
|
123
|
+
throw new Error('Call setup to initialize the hardcoded account.');
|
|
125
124
|
}
|
|
126
|
-
return this.
|
|
125
|
+
return this.hardcodedAccountData;
|
|
127
126
|
}
|
|
128
127
|
async addBootstrapNode() {
|
|
129
128
|
this.logger.info('Adding bootstrap node');
|
|
@@ -205,14 +204,19 @@ export class P2PNetworkTest {
|
|
|
205
204
|
// Send and await a tx to make sure we mine a block for the warp to correctly progress.
|
|
206
205
|
await this._sendDummyTx(this.context.deployL1ContractsValues.l1Client);
|
|
207
206
|
}
|
|
208
|
-
|
|
209
|
-
this.logger.info('
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
207
|
+
/** Points the wallet to a P2P-enabled node so transactions can propagate through the network. */ setupWalletOnNode(node) {
|
|
208
|
+
this.logger.info('Pointing wallet to a P2P-enabled node');
|
|
209
|
+
this.context.wallet.updateNode(node);
|
|
210
|
+
}
|
|
211
|
+
/** Registers the hardcoded account in PXE without on-chain deployment. No sequencer needed. */ async setupAccount() {
|
|
212
|
+
this.logger.info('Registering hardcoded account (no deployment)');
|
|
213
|
+
const contract = new SchnorrHardcodedKeyAccountContract();
|
|
214
|
+
const accountManager = await this.context.wallet.createAccount({
|
|
215
|
+
secret: this.hardcodedAccountData.secret,
|
|
216
|
+
salt: this.hardcodedAccountData.salt,
|
|
217
|
+
contract
|
|
213
218
|
});
|
|
214
|
-
this.
|
|
215
|
-
[{ address: this.defaultAccountAddress }] = deployedAccounts;
|
|
219
|
+
this.defaultAccountAddress = accountManager.address;
|
|
216
220
|
this.wallet = this.context.wallet;
|
|
217
221
|
}
|
|
218
222
|
async deploySpamContract() {
|
|
@@ -246,11 +250,28 @@ export class P2PNetworkTest {
|
|
|
246
250
|
}
|
|
247
251
|
async setup() {
|
|
248
252
|
this.logger.info('Setting up subsystems from fresh');
|
|
253
|
+
// Pre-compute hardcoded account data so it gets funded in genesis.
|
|
254
|
+
const contract = new SchnorrHardcodedKeyAccountContract();
|
|
255
|
+
const secret = Fr.random();
|
|
256
|
+
const salt = Fr.random();
|
|
257
|
+
this.hardcodedAccountData = {
|
|
258
|
+
secret,
|
|
259
|
+
salt,
|
|
260
|
+
signingKey: SCHNORR_HARDCODED_PRIVATE_KEY,
|
|
261
|
+
address: await getAccountContractAddress(contract, secret, salt)
|
|
262
|
+
};
|
|
263
|
+
// Generate regular Schnorr accounts for tests that need deployable accounts (e.g. add_rollup).
|
|
264
|
+
const regularAccounts = await generateSchnorrAccounts(this.setupOptions.numberOfInitialFundedAccounts ?? 2);
|
|
249
265
|
this.context = await setup(0, {
|
|
250
266
|
...this.setupOptions,
|
|
251
267
|
fundSponsoredFPC: true,
|
|
252
268
|
skipAccountDeployment: true,
|
|
253
|
-
|
|
269
|
+
skipInitialSequencer: true,
|
|
270
|
+
initialFundedAccounts: [
|
|
271
|
+
...regularAccounts,
|
|
272
|
+
this.hardcodedAccountData
|
|
273
|
+
],
|
|
274
|
+
slasherEnabled: this.setupOptions.slasherEnabled ?? this.deployL1ContractsArgs.slasherEnabled ?? false,
|
|
254
275
|
aztecTargetCommitteeSize: 0,
|
|
255
276
|
l1ContractsArgs: this.deployL1ContractsArgs
|
|
256
277
|
}, // Use checkpointed chain tip for PXE to avoid issues with blocks being dropped due to pruned anchor blocks.
|
|
@@ -263,8 +284,8 @@ export class P2PNetworkTest {
|
|
|
263
284
|
...this.context.initialFundedAccounts.map((a)=>a.address),
|
|
264
285
|
sponsoredFPCAddress
|
|
265
286
|
];
|
|
266
|
-
const {
|
|
267
|
-
this.
|
|
287
|
+
const { genesis } = await getGenesisValues(initialFundedAccounts, undefined, undefined, this.context.genesis.genesisTimestamp);
|
|
288
|
+
this.genesis = genesis;
|
|
268
289
|
const rollupContract = RollupContract.getFromL1ContractsValues(this.context.deployL1ContractsValues);
|
|
269
290
|
this.monitor = new ChainMonitor(rollupContract, this.context.dateProvider).start();
|
|
270
291
|
this.monitor.on('l1-block', ({ timestamp })=>this.context.dateProvider.setTime(Number(timestamp) * 1000));
|
|
@@ -333,14 +354,12 @@ export class P2PNetworkTest {
|
|
|
333
354
|
abi: SlasherAbi,
|
|
334
355
|
client: this.ctx.deployL1ContractsValues.l1Client
|
|
335
356
|
});
|
|
336
|
-
// Get the actual slashing proposer from rollup
|
|
357
|
+
// Get the actual slashing proposer from rollup
|
|
337
358
|
const slashingProposer = await rollup.getSlashingProposer();
|
|
338
|
-
const slashFactory = new SlashFactoryContract(this.ctx.deployL1ContractsValues.l1Client, getAddress(this.ctx.deployL1ContractsValues.l1ContractAddresses.slashFactoryAddress.toString()));
|
|
339
359
|
return {
|
|
340
360
|
rollup,
|
|
341
361
|
slasherContract,
|
|
342
|
-
slashingProposer
|
|
343
|
-
slashFactory
|
|
362
|
+
slashingProposer
|
|
344
363
|
};
|
|
345
364
|
}
|
|
346
365
|
}
|
|
@@ -19,4 +19,4 @@ export declare function runReqrespTxTest(params: {
|
|
|
19
19
|
disableStatusHandshake?: boolean;
|
|
20
20
|
}): Promise<AztecNodeService[]>;
|
|
21
21
|
export {};
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lMmVfcDJwL3JlcXJlc3AvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQWlCMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBSW5ELGVBQU8sTUFBTSxjQUFjLElBQUksQ0FBQztBQUNoQyxlQUFPLE1BQU0sZ0JBQWdCLElBQUksQ0FBQztBQUNsQyxlQUFPLE1BQU0sa0JBQWtCLFFBQXVCLENBQUM7QUFFdkQsZUFBTyxNQUFNLG9CQUFvQixjQUEyRCxDQUFDO0FBRTdGLEtBQUssY0FBYyxHQUFHO0lBQ3BCLHNCQUFzQixDQUFDLEVBQUUsT0FBTyxDQUFDO0NBQ2xDLENBQUM7QUFFRix3QkFBc0IsaUJBQWlCLENBQUMsT0FBTyxHQUFFLGNBQW1CLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQTZCN0Y7QUFFRCx3QkFBc0Isa0JBQWtCLENBQUMsTUFBTSxFQUFFO0lBQUUsQ0FBQyxFQUFFLGNBQWMsQ0FBQztJQUFDLEtBQUssQ0FBQyxFQUFFLGdCQUFnQixFQUFFLENBQUM7SUFBQyxPQUFPLEVBQUUsTUFBTSxDQUFBO0NBQUUsaUJBU2xIO0FBSUQsd0JBQXNCLGdCQUFnQixDQUFDLE1BQU0sRUFBRTtJQUM3QyxDQUFDLEVBQUUsY0FBYyxDQUFDO0lBQ2xCLE9BQU8sRUFBRSxNQUFNLENBQUM7SUFDaEIsc0JBQXNCLENBQUMsRUFBRSxPQUFPLENBQUM7Q0FDbEMsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQWlLOUIifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/e2e_p2p/reqresp/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/e2e_p2p/reqresp/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAiB1D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAInD,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,eAAO,MAAM,kBAAkB,QAAuB,CAAC;AAEvD,eAAO,MAAM,oBAAoB,cAA2D,CAAC;AAE7F,KAAK,cAAc,GAAG;IACpB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC,CAAC;AAEF,wBAAsB,iBAAiB,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,cAAc,CAAC,CA6B7F;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE;IAAE,CAAC,EAAE,cAAc,CAAC;IAAC,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,iBASlH;AAID,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,CAAC,EAAE,cAAc,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAiK9B"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createLogger } from '@aztec/aztec.js/log';
|
|
2
2
|
import { waitForTx } from '@aztec/aztec.js/node';
|
|
3
3
|
import { Tx } from '@aztec/aztec.js/tx';
|
|
4
|
+
import { PROPOSER_PIPELINING_SLOT_OFFSET } from '@aztec/epoch-cache';
|
|
4
5
|
import { RollupContract } from '@aztec/ethereum/contracts';
|
|
5
6
|
import { CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
6
7
|
import { timesAsync } from '@aztec/foundation/collection';
|
|
@@ -11,7 +12,7 @@ import os from 'os';
|
|
|
11
12
|
import path from 'path';
|
|
12
13
|
import { getBootNodeUdpPort, shouldCollectMetrics } from '../../fixtures/fixtures.js';
|
|
13
14
|
import { createNodes } from '../../fixtures/setup_p2p_test.js';
|
|
14
|
-
import { P2PNetworkTest
|
|
15
|
+
import { P2PNetworkTest } from '../p2p_network.js';
|
|
15
16
|
import { prepareTransactions } from '../shared.js';
|
|
16
17
|
// Don't set this to a higher value than 9 because each node will use a different L1 publisher account and anvil seeds
|
|
17
18
|
export const NUM_VALIDATORS = 6;
|
|
@@ -40,7 +41,10 @@ export async function createReqrespTest(options = {}) {
|
|
|
40
41
|
p2pDisableStatusHandshake: true
|
|
41
42
|
} : {},
|
|
42
43
|
listenAddress: '127.0.0.1',
|
|
43
|
-
aztecEpochDuration: 64
|
|
44
|
+
aztecEpochDuration: 64,
|
|
45
|
+
// Pipelining: target-slot is one ahead of build-slot; inboxLag sources L1->L2
|
|
46
|
+
// messages from the previous checkpoint to avoid L1ToL2MessagesNotReadyError.
|
|
47
|
+
inboxLag: 2
|
|
44
48
|
}
|
|
45
49
|
});
|
|
46
50
|
await t.setup();
|
|
@@ -72,7 +76,7 @@ export async function runReqrespTxTest(params) {
|
|
|
72
76
|
...t.ctx.aztecNodeConfig,
|
|
73
77
|
p2pDisableStatusHandshake: true
|
|
74
78
|
} : t.ctx.aztecNodeConfig;
|
|
75
|
-
const nodes = await createNodes(aztecNodeConfig, t.ctx.dateProvider, t.bootstrapNodeEnr, NUM_VALIDATORS, BOOT_NODE_UDP_PORT, t.
|
|
79
|
+
const nodes = await createNodes(aztecNodeConfig, t.ctx.dateProvider, t.bootstrapNodeEnr, NUM_VALIDATORS, BOOT_NODE_UDP_PORT, t.genesis, dataDir, shouldCollectMetrics());
|
|
76
80
|
t.logger.info('Waiting for nodes to connect');
|
|
77
81
|
await t.waitForP2PMeshConnectivity(nodes, NUM_VALIDATORS);
|
|
78
82
|
await t.setupAccount();
|
|
@@ -89,7 +93,11 @@ export async function runReqrespTxTest(params) {
|
|
|
89
93
|
const [timestamp] = await t.ctx.cheatCodes.rollup.advanceToNextSlot();
|
|
90
94
|
t.ctx.dateProvider.setTime(Number(timestamp) * 1000);
|
|
91
95
|
const startSlotTimestamp = BigInt(timestamp);
|
|
92
|
-
|
|
96
|
+
// Under pipelining the active builder during wallclock slot S targets slot S+1, so
|
|
97
|
+
// we must address the proposer of S+1 (not S) for batch 0. Shift the proposer lookup
|
|
98
|
+
// window by the pipelining offset so we always send to the currently-building proposer.
|
|
99
|
+
const proposerSlotOffset = PROPOSER_PIPELINING_SLOT_OFFSET;
|
|
100
|
+
const { proposerIndexes, nodesToTurnOffTxGossip } = await getProposerIndexes(t, startSlotTimestamp, proposerSlotOffset);
|
|
93
101
|
t.logger.info(`Turning off tx gossip for nodes: ${nodesToTurnOffTxGossip.map(getNodePort)}`);
|
|
94
102
|
t.logger.info(`Sending txs to proposer nodes: ${proposerIndexes.map(getNodePort)}`);
|
|
95
103
|
// Replace the p2p node implementation of some of the nodes with a spy such that it does not store transactions that are gossiped to it
|
|
@@ -131,11 +139,16 @@ export async function runReqrespTxTest(params) {
|
|
|
131
139
|
const count = await nodes[i].getPendingTxCount();
|
|
132
140
|
t.logger.info(`Node ${getNodePort(i)} pool has ${count} pending txs`);
|
|
133
141
|
}
|
|
142
|
+
// Use the test's own aztecSlotDuration (not the env default that p2p_network's
|
|
143
|
+
// WAIT_FOR_TX_TIMEOUT is derived from) so the timeout scales with this test's 36s slot.
|
|
144
|
+
// Under pipelining the round-trip is roughly build-slot + target-slot + L1 publish, so
|
|
145
|
+
// budget for >= 3 slots.
|
|
146
|
+
const waitForTxTimeout = t.ctx.aztecNodeConfig.aztecSlotDuration * 4.5;
|
|
134
147
|
t.logger.info('Waiting for all transactions to be mined');
|
|
135
148
|
await Promise.all(submittedTxs.flatMap((batch, batchIndex)=>batch.map(async (submittedTx, txIndex)=>{
|
|
136
149
|
t.logger.info(`Waiting for tx ${batchIndex}-${txIndex} ${submittedTx.txHash.toString()} to be mined`);
|
|
137
150
|
await waitForTx(submittedTx.node, submittedTx.txHash, {
|
|
138
|
-
timeout:
|
|
151
|
+
timeout: waitForTxTimeout
|
|
139
152
|
});
|
|
140
153
|
t.logger.info(`Tx ${batchIndex}-${txIndex} ${submittedTx.txHash.toString()} has been mined`);
|
|
141
154
|
})));
|
|
@@ -144,18 +157,21 @@ export async function runReqrespTxTest(params) {
|
|
|
144
157
|
t.logger.info('Verifying multiple blocks for at least one checkpoint');
|
|
145
158
|
// Wait for L1 checkpoint sync, which may lag behind P2P block propagation.
|
|
146
159
|
const checkpoints = await retryUntil(async ()=>{
|
|
147
|
-
const cps = await nodes[0].getCheckpoints(CheckpointNumber(1), 50
|
|
148
|
-
|
|
160
|
+
const cps = await nodes[0].getCheckpoints(CheckpointNumber(1), 50, {
|
|
161
|
+
includeBlocks: true
|
|
162
|
+
});
|
|
163
|
+
return cps.length > 0 && cps.some((cp)=>(cp.blocks?.length ?? 0) >= 2) ? cps : undefined;
|
|
149
164
|
}, 'waiting for multi-block checkpoint to sync from L1', 30, 1);
|
|
150
165
|
let mbpsFound = false;
|
|
151
|
-
let expectedBlockNumber = checkpoints[0].
|
|
166
|
+
let expectedBlockNumber = checkpoints[0].blocks[0].number;
|
|
152
167
|
for (const published of checkpoints){
|
|
153
|
-
const
|
|
168
|
+
const blocks = published.blocks;
|
|
169
|
+
const blockCount = blocks.length;
|
|
154
170
|
mbpsFound = mbpsFound || blockCount >= 2;
|
|
155
171
|
for(let i = 0; i < blockCount; i++){
|
|
156
|
-
const block =
|
|
172
|
+
const block = blocks[i];
|
|
157
173
|
expect(block.indexWithinCheckpoint).toBe(i);
|
|
158
|
-
expect(block.checkpointNumber).toBe(published.
|
|
174
|
+
expect(block.checkpointNumber).toBe(published.number);
|
|
159
175
|
expect(block.number).toBe(expectedBlockNumber);
|
|
160
176
|
expectedBlockNumber++;
|
|
161
177
|
}
|
|
@@ -163,7 +179,7 @@ export async function runReqrespTxTest(params) {
|
|
|
163
179
|
expect(mbpsFound).toBe(true);
|
|
164
180
|
return nodes;
|
|
165
181
|
}
|
|
166
|
-
async function getProposerIndexes(t, startSlotTimestamp) {
|
|
182
|
+
async function getProposerIndexes(t, startSlotTimestamp, slotOffset = 0) {
|
|
167
183
|
// Get the nodes for the next set of slots
|
|
168
184
|
const rollupContract = new RollupContract(t.ctx.deployL1ContractsValues.l1Client, t.ctx.deployL1ContractsValues.l1ContractAddresses.rollupAddress);
|
|
169
185
|
const attesters = await rollupContract.getAttesters();
|
|
@@ -171,7 +187,7 @@ async function getProposerIndexes(t, startSlotTimestamp) {
|
|
|
171
187
|
const proposers = await Promise.all(Array.from({
|
|
172
188
|
length: 3
|
|
173
189
|
}, async (_, i)=>{
|
|
174
|
-
const slot = SlotNumber(startSlot + i);
|
|
190
|
+
const slot = SlotNumber(startSlot + slotOffset + i);
|
|
175
191
|
const slotTimestamp = await rollupContract.getTimestampForSlot(slot);
|
|
176
192
|
return await rollupContract.getProposerAt(slotTimestamp);
|
|
177
193
|
}));
|
package/dest/e2e_p2p/shared.d.ts
CHANGED
|
@@ -5,39 +5,49 @@ import type { Logger } from '@aztec/aztec.js/log';
|
|
|
5
5
|
import { TxHash } from '@aztec/aztec.js/tx';
|
|
6
6
|
import type { RollupCheatCodes } from '@aztec/aztec/testing';
|
|
7
7
|
import type { EpochCacheInterface } from '@aztec/epoch-cache';
|
|
8
|
-
import type {
|
|
9
|
-
import { EpochNumber } from '@aztec/foundation/branded-types';
|
|
8
|
+
import type { RollupContract, SlashingProposerContract } from '@aztec/ethereum/contracts';
|
|
9
|
+
import { EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
10
10
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
11
11
|
import type { SpamContract } from '@aztec/noir-test-contracts.js/Spam';
|
|
12
12
|
import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
|
|
13
|
-
import type { SlashFactoryContract } from '@aztec/stdlib/l1-contracts';
|
|
14
13
|
import { type ProvenTx } from '../test-wallet/utils.js';
|
|
15
14
|
export declare const submitComplexTxsTo: (logger: Logger, from: AztecAddress, spamContract: SpamContract, numTxs: number, opts?: {
|
|
16
15
|
callPublic?: boolean | undefined;
|
|
17
16
|
}) => Promise<TxHash[]>;
|
|
18
17
|
export declare const submitTransactions: (logger: Logger, node: AztecNodeService, numTxs: number, fundedAccount: InitialAccountData) => Promise<TxHash[]>;
|
|
19
18
|
export declare function prepareTransactions(logger: Logger, node: AztecNodeService, numTxs: number, fundedAccount: InitialAccountData): Promise<ProvenTx[]>;
|
|
20
|
-
export declare function awaitProposalExecution(slashingProposer:
|
|
19
|
+
export declare function awaitProposalExecution(slashingProposer: SlashingProposerContract, timeoutSeconds: number, logger: Logger): Promise<bigint>;
|
|
21
20
|
export declare function awaitCommitteeExists({ rollup, logger }: {
|
|
22
21
|
rollup: RollupContract;
|
|
23
22
|
logger: Logger;
|
|
24
23
|
}): Promise<readonly `0x${string}`[]>;
|
|
25
24
|
/**
|
|
26
|
-
* Advance epochs until we find one where the target proposer is selected for at least
|
|
27
|
-
* then stop one epoch before it. This leaves time for the caller to
|
|
28
|
-
* warping to the target epoch, avoiding the race where the target epoch
|
|
29
|
-
* are ready.
|
|
25
|
+
* Advance epochs until we find one where the target proposer is selected for a slot at least
|
|
26
|
+
* `warmupSlots` into the epoch, then stop one epoch before it. This leaves time for the caller to
|
|
27
|
+
* start sequencers before warping to the target epoch, avoiding the race where the target epoch
|
|
28
|
+
* passes before sequencers are ready.
|
|
30
29
|
*
|
|
31
|
-
*
|
|
30
|
+
* The first `warmupSlots` slots of the epoch are skipped on purpose. Callers warp to one slot
|
|
31
|
+
* before the target epoch and, under proposer pipelining, the proposer begins building one slot
|
|
32
|
+
* before its proposal slot. If the proposer were in the first slot of the epoch, that build would
|
|
33
|
+
* begin at the exact instant of the warp, leaving the freshly-started sequencer no warm-up margin;
|
|
34
|
+
* it then serializes its (often AVM-heavy) proposal past the slot boundary and honest receivers
|
|
35
|
+
* reject it as late. Picking a slot at least `warmupSlots` into the epoch guarantees that many full
|
|
36
|
+
* slots of wall-clock between the warp and the start of the proposer's build.
|
|
37
|
+
*
|
|
38
|
+
* Returns the target epoch and the concrete target slot so the caller can warp to it after starting
|
|
39
|
+
* sequencers.
|
|
32
40
|
*/
|
|
33
|
-
export declare function advanceToEpochBeforeProposer({ epochCache, cheatCodes, targetProposer, logger, maxAttempts }: {
|
|
41
|
+
export declare function advanceToEpochBeforeProposer({ epochCache, cheatCodes, targetProposer, logger, maxAttempts, warmupSlots }: {
|
|
34
42
|
epochCache: EpochCacheInterface;
|
|
35
43
|
cheatCodes: RollupCheatCodes;
|
|
36
44
|
targetProposer: EthAddress;
|
|
37
45
|
logger: Logger;
|
|
38
46
|
maxAttempts?: number;
|
|
47
|
+
warmupSlots?: number;
|
|
39
48
|
}): Promise<{
|
|
40
49
|
targetEpoch: EpochNumber;
|
|
50
|
+
targetSlot: SlotNumber;
|
|
41
51
|
}>;
|
|
42
52
|
export declare function awaitOffenseDetected({ logger, nodeAdmin, slashingRoundSize, epochDuration, waitUntilOffenseCount, timeoutSeconds }: {
|
|
43
53
|
nodeAdmin: AztecNodeAdmin;
|
|
@@ -51,16 +61,15 @@ export declare function awaitOffenseDetected({ logger, nodeAdmin, slashingRoundS
|
|
|
51
61
|
* Await the committee to be slashed out of the validator set.
|
|
52
62
|
* Currently assumes that the committee is the same size as the validator set.
|
|
53
63
|
*/
|
|
54
|
-
export declare function awaitCommitteeKicked({ rollup, cheatCodes, committee,
|
|
64
|
+
export declare function awaitCommitteeKicked({ rollup, cheatCodes, committee, slashingProposer, slashingRoundSize, aztecSlotDuration, aztecEpochDuration, logger, offenseEpoch }: {
|
|
55
65
|
rollup: RollupContract;
|
|
56
66
|
cheatCodes: RollupCheatCodes;
|
|
57
67
|
committee: readonly `0x${string}`[];
|
|
58
|
-
|
|
59
|
-
slashingProposer: EmpireSlashingProposerContract | TallySlashingProposerContract | undefined;
|
|
68
|
+
slashingProposer: SlashingProposerContract | undefined;
|
|
60
69
|
slashingRoundSize: number;
|
|
61
70
|
aztecSlotDuration: number;
|
|
62
71
|
aztecEpochDuration: number;
|
|
63
72
|
logger: Logger;
|
|
64
73
|
offenseEpoch: number;
|
|
65
74
|
}): Promise<void>;
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZTJlX3AycC9zaGFyZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNsRSxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUd6RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDNUMsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRzNELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBSXZFLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBS3RFLE9BQU8sRUFBRSxLQUFLLFFBQVEsRUFBb0IsTUFBTSx5QkFBeUIsQ0FBQztBQUcxRSxlQUFPLE1BQU0sa0JBQWtCOzt1QkFrQjlCLENBQUM7QUFHRixlQUFPLE1BQU0sa0JBQWtCLGtIQXNCOUIsQ0FBQztBQUVGLHdCQUFzQixtQkFBbUIsQ0FDdkMsTUFBTSxFQUFFLE1BQU0sRUFDZCxJQUFJLEVBQUUsZ0JBQWdCLEVBQ3RCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsYUFBYSxFQUFFLGtCQUFrQixHQUNoQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0E2QnJCO0FBRUQsd0JBQWdCLHNCQUFzQixDQUNwQyxnQkFBZ0IsRUFBRSx3QkFBd0IsRUFDMUMsY0FBYyxFQUFFLE1BQU0sRUFDdEIsTUFBTSxFQUFFLE1BQU0sR0FDYixPQUFPLENBQUMsTUFBTSxDQUFDLENBY2pCO0FBRUQsd0JBQXNCLG9CQUFvQixDQUFDLEVBQ3pDLE1BQU0sRUFDTixNQUFNLEVBQ1AsRUFBRTtJQUNELE1BQU0sRUFBRSxjQUFjLENBQUM7SUFDdkIsTUFBTSxFQUFFLE1BQU0sQ0FBQztDQUNoQixHQUFHLE9BQU8sQ0FBQyxTQUFTLEtBQUssTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQWFwQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsd0JBQXNCLDRCQUE0QixDQUFDLEVBQ2pELFVBQVUsRUFDVixVQUFVLEVBQ1YsY0FBYyxFQUNkLE1BQU0sRUFDTixXQUFnQixFQUNoQixXQUFlLEVBQ2hCLEVBQUU7SUFDRCxVQUFVLEVBQUUsbUJBQW1CLENBQUM7SUFDaEMsVUFBVSxFQUFFLGdCQUFnQixDQUFDO0lBQzdCLGNBQWMsRUFBRSxVQUFVLENBQUM7SUFDM0IsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNmLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNyQixXQUFXLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDdEIsR0FBRyxPQUFPLENBQUM7SUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDO0lBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQTtDQUFFLENBQUMsQ0FpQ2hFO0FBRUQsd0JBQXNCLG9CQUFvQixDQUFDLEVBQ3pDLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsY0FBb0IsRUFDckIsRUFBRTtJQUNELFNBQVMsRUFBRSxjQUFjLENBQUM7SUFDMUIsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNmLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztJQUMxQixhQUFhLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLHFCQUFxQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQy9CLGNBQWMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUN6QiwrQ0FrQkE7QUFFRDs7O0dBR0c7QUFDSCx3QkFBc0Isb0JBQW9CLENBQUMsRUFDekMsTUFBTSxFQUNOLFVBQVUsRUFDVixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLE1BQU0sRUFDTixZQUFZLEVBQ2IsRUFBRTtJQUNELE1BQU0sRUFBRSxjQUFjLENBQUM7SUFDdkIsVUFBVSxFQUFFLGdCQUFnQixDQUFDO0lBQzdCLFNBQVMsRUFBRSxTQUFTLEtBQUssTUFBTSxFQUFFLEVBQUUsQ0FBQztJQUNwQyxnQkFBZ0IsRUFBRSx3QkFBd0IsR0FBRyxTQUFTLENBQUM7SUFDdkQsaUJBQWlCLEVBQUUsTUFBTSxDQUFDO0lBQzFCLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztJQUMxQixrQkFBa0IsRUFBRSxNQUFNLENBQUM7SUFDM0IsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNmLFlBQVksRUFBRSxNQUFNLENBQUM7Q0FDdEIsaUJBMERBIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/shared.ts"],"names":[],"mappings":"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"}
|