@aztec/end-to-end 0.0.1-fake-c83136db25 → 0.0.1-fake-ceab37513c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/bench/client_flows/benchmark.d.ts +2 -3
- package/dest/bench/client_flows/benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/benchmark.js +2 -2
- package/dest/bench/client_flows/client_flows_benchmark.d.ts +12 -16
- package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/client_flows_benchmark.js +58 -54
- package/dest/bench/client_flows/data_extractor.js +3 -3
- package/dest/bench/utils.d.ts +11 -2
- package/dest/bench/utils.d.ts.map +1 -1
- package/dest/bench/utils.js +34 -10
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +7 -7
- 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 +42 -42
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +8 -10
- 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 +33 -31
- package/dest/e2e_deploy_contract/deploy_test.d.ts +4 -10
- package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
- package/dest/e2e_deploy_contract/deploy_test.js +18 -9
- package/dest/e2e_epochs/epochs_test.d.ts +1 -3
- package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.js +9 -10
- package/dest/e2e_fees/bridging_race.notest.js +9 -12
- package/dest/e2e_fees/fees_test.d.ts +5 -5
- package/dest/e2e_fees/fees_test.d.ts.map +1 -1
- package/dest/e2e_fees/fees_test.js +31 -23
- package/dest/e2e_l1_publisher/write_json.d.ts +1 -3
- package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -1
- package/dest/e2e_l1_publisher/write_json.js +5 -5
- package/dest/e2e_multi_validator/utils.d.ts +1 -1
- package/dest/e2e_multi_validator/utils.d.ts.map +1 -1
- package/dest/e2e_nested_contract/nested_contract_test.d.ts +3 -6
- package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
- package/dest/e2e_nested_contract/nested_contract_test.js +9 -7
- package/dest/e2e_p2p/inactivity_slash_test.d.ts +2 -2
- package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -1
- package/dest/e2e_p2p/inactivity_slash_test.js +2 -5
- package/dest/e2e_p2p/p2p_network.d.ts +2 -14
- package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
- package/dest/e2e_p2p/p2p_network.js +10 -32
- package/dest/e2e_p2p/shared.d.ts +13 -11
- package/dest/e2e_p2p/shared.d.ts.map +1 -1
- package/dest/e2e_p2p/shared.js +45 -49
- package/dest/e2e_token_contract/token_contract_test.d.ts +4 -5
- package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
- package/dest/e2e_token_contract/token_contract_test.js +17 -14
- package/dest/fixtures/e2e_prover_test.d.ts +6 -8
- package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
- package/dest/fixtures/e2e_prover_test.js +50 -40
- package/dest/fixtures/get_acvm_config.d.ts +1 -1
- package/dest/fixtures/get_acvm_config.d.ts.map +1 -1
- package/dest/fixtures/get_bb_config.d.ts +1 -1
- package/dest/fixtures/get_bb_config.d.ts.map +1 -1
- package/dest/fixtures/get_bb_config.js +2 -2
- package/dest/fixtures/setup_l1_contracts.d.ts +1 -1
- package/dest/fixtures/setup_l1_contracts.d.ts.map +1 -1
- package/dest/fixtures/setup_l1_contracts.js +2 -2
- package/dest/fixtures/setup_p2p_test.d.ts +7 -0
- package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
- package/dest/fixtures/snapshot_manager.d.ts +7 -10
- package/dest/fixtures/snapshot_manager.d.ts.map +1 -1
- package/dest/fixtures/snapshot_manager.js +32 -42
- package/dest/fixtures/token_utils.d.ts +4 -6
- package/dest/fixtures/token_utils.d.ts.map +1 -1
- package/dest/fixtures/token_utils.js +15 -11
- package/dest/fixtures/utils.d.ts +27 -23
- package/dest/fixtures/utils.d.ts.map +1 -1
- package/dest/fixtures/utils.js +100 -75
- package/dest/fixtures/web3signer.d.ts +1 -1
- package/dest/fixtures/web3signer.d.ts.map +1 -1
- package/dest/fixtures/web3signer.js +5 -16
- package/dest/quality_of_service/alert_checker.d.ts +1 -1
- package/dest/quality_of_service/alert_checker.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.d.ts +10 -16
- package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.js +15 -13
- package/dest/shared/gas_portal_test_harness.d.ts +6 -9
- package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
- package/dest/shared/gas_portal_test_harness.js +7 -10
- package/dest/shared/jest_setup.js +1 -1
- package/dest/shared/submit-transactions.d.ts +3 -5
- package/dest/shared/submit-transactions.d.ts.map +1 -1
- package/dest/shared/submit-transactions.js +7 -8
- package/dest/shared/uniswap_l1_l2.d.ts +6 -9
- package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
- package/dest/shared/uniswap_l1_l2.js +45 -29
- package/dest/simulators/lending_simulator.d.ts +1 -2
- package/dest/simulators/lending_simulator.d.ts.map +1 -1
- package/dest/simulators/lending_simulator.js +2 -3
- package/dest/simulators/token_simulator.d.ts +1 -3
- 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 +13 -19
- package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.js +84 -107
- package/dest/spartan/utils.d.ts +0 -44
- package/dest/spartan/utils.d.ts.map +1 -1
- package/dest/spartan/utils.js +20 -212
- package/package.json +36 -37
- package/src/bench/client_flows/benchmark.ts +8 -8
- package/src/bench/client_flows/client_flows_benchmark.ts +82 -62
- package/src/bench/client_flows/data_extractor.ts +4 -4
- package/src/bench/utils.ts +37 -9
- package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +63 -46
- package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +47 -33
- package/src/e2e_deploy_contract/deploy_test.ts +35 -17
- package/src/e2e_epochs/epochs_test.ts +14 -12
- package/src/e2e_fees/bridging_race.notest.ts +9 -14
- package/src/e2e_fees/fees_test.ts +38 -26
- package/src/e2e_l1_publisher/write_json.ts +6 -8
- package/src/e2e_multi_validator/utils.ts +1 -1
- package/src/e2e_nested_contract/nested_contract_test.ts +10 -11
- package/src/e2e_p2p/inactivity_slash_test.ts +3 -7
- package/src/e2e_p2p/p2p_network.ts +67 -105
- package/src/e2e_p2p/shared.ts +55 -50
- package/src/e2e_token_contract/token_contract_test.ts +17 -17
- package/src/fixtures/e2e_prover_test.ts +88 -51
- package/src/fixtures/get_acvm_config.ts +1 -1
- package/src/fixtures/get_bb_config.ts +2 -3
- package/src/fixtures/setup_l1_contracts.ts +3 -3
- package/src/fixtures/setup_p2p_test.ts +8 -0
- package/src/fixtures/snapshot_manager.ts +59 -59
- package/src/fixtures/token_utils.ts +21 -13
- package/src/fixtures/utils.ts +137 -86
- package/src/fixtures/web3signer.ts +5 -22
- package/src/guides/up_quick_start.sh +10 -2
- package/src/quality_of_service/alert_checker.ts +1 -1
- package/src/shared/cross_chain_test_harness.ts +29 -18
- package/src/shared/gas_portal_test_harness.ts +19 -12
- package/src/shared/jest_setup.ts +1 -1
- package/src/shared/submit-transactions.ts +8 -12
- package/src/shared/uniswap_l1_l2.ts +67 -61
- package/src/simulators/lending_simulator.ts +2 -3
- package/src/simulators/token_simulator.ts +2 -5
- package/src/spartan/DEVELOP.md +3 -8
- package/src/spartan/setup_test_wallets.ts +125 -132
- package/src/spartan/utils.ts +18 -268
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { ContractFunctionInteraction, DeployMethod,
|
|
2
|
-
import type { Logger } from '@aztec/aztec.js/log';
|
|
1
|
+
import type { ContractFunctionInteraction, DeployMethod, DeployOptions, Logger, ProfileMethodOptions } from '@aztec/aztec.js';
|
|
3
2
|
import { type PrivateExecutionStep } from '@aztec/stdlib/kernel';
|
|
4
3
|
import type { ProvingStats, ProvingTimings, SimulationStats, SimulationTimings } from '@aztec/stdlib/tx';
|
|
5
4
|
import type { GithubActionBenchmarkResult } from '../utils.js';
|
|
@@ -56,6 +55,6 @@ type ClientFlowBenchmark = {
|
|
|
56
55
|
};
|
|
57
56
|
export declare function generateBenchmark(flow: string, logs: Log[], stats: ProvingStats | SimulationStats, privateExecutionSteps: PrivateExecutionStep[], proverType: ProverType, error: string | undefined): ClientFlowBenchmark;
|
|
58
57
|
export declare function convertProfileToGHBenchmark(benchmark: ClientFlowBenchmark): GithubActionBenchmarkResult[];
|
|
59
|
-
export declare function captureProfile(label: string, interaction: ContractFunctionInteraction | DeployMethod, opts: Omit<
|
|
58
|
+
export declare function captureProfile(label: string, interaction: ContractFunctionInteraction | DeployMethod, opts: Omit<ProfileMethodOptions & DeployOptions, 'profileMode'>, expectedSteps?: number): Promise<import("@aztec/aztec.js").TxProfileResult>;
|
|
60
59
|
export {};
|
|
61
60
|
//# sourceMappingURL=benchmark.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"benchmark.d.ts","sourceRoot":"","sources":["../../../src/bench/client_flows/benchmark.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"benchmark.d.ts","sourceRoot":"","sources":["../../../src/bench/client_flows/benchmark.ts"],"names":[],"mappings":"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"}
|
|
@@ -234,13 +234,13 @@ export async function captureProfile(label, interaction, opts, expectedSteps) {
|
|
|
234
234
|
const benchmark = generateBenchmark(label, logs, result.stats, result.executionSteps, 'wasm', undefined);
|
|
235
235
|
const ivcFolder = process.env.CAPTURE_IVC_FOLDER;
|
|
236
236
|
if (ivcFolder) {
|
|
237
|
-
logger.info(`Capturing
|
|
237
|
+
logger.info(`Capturing client ivc execution profile for ${label}`);
|
|
238
238
|
const resultsDirectory = join(ivcFolder, label);
|
|
239
239
|
logger.info(`Writing private execution steps to ${resultsDirectory}`);
|
|
240
240
|
await mkdir(resultsDirectory, {
|
|
241
241
|
recursive: true
|
|
242
242
|
});
|
|
243
|
-
// Write the
|
|
243
|
+
// Write the client IVC files read by the prover.
|
|
244
244
|
const ivcInputsPath = join(resultsDirectory, 'ivc-inputs.msgpack');
|
|
245
245
|
await writeFile(ivcInputsPath, serializePrivateExecutionSteps(result.executionSteps));
|
|
246
246
|
await writeFile(join(resultsDirectory, 'logs.json'), JSON.stringify(logs, null, 2));
|
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
import { AztecAddress } from '@aztec/aztec.js
|
|
2
|
-
import { FeeJuicePaymentMethodWithClaim } from '@aztec/aztec.js/fee';
|
|
3
|
-
import { type FeePaymentMethod, PrivateFeePaymentMethod, SponsoredFeePaymentMethod } from '@aztec/aztec.js/fee';
|
|
4
|
-
import { type Logger } from '@aztec/aztec.js/log';
|
|
5
|
-
import type { AztecNode } from '@aztec/aztec.js/node';
|
|
6
|
-
import type { Wallet } from '@aztec/aztec.js/wallet';
|
|
1
|
+
import { type AccountWallet, AccountWalletWithSecretKey, AztecAddress, type AztecNode, FeeJuicePaymentMethod, FeeJuicePaymentMethodWithClaim, type FeePaymentMethod, type Logger, type PXE, PrivateFeePaymentMethod, SponsoredFeePaymentMethod, type Wallet } from '@aztec/aztec.js';
|
|
7
2
|
import { CheatCodes } from '@aztec/aztec/testing';
|
|
8
3
|
import { type DeployL1ContractsArgs } from '@aztec/ethereum';
|
|
9
4
|
import { ChainMonitor } from '@aztec/ethereum/test';
|
|
@@ -13,24 +8,24 @@ import { FPCContract } from '@aztec/noir-contracts.js/FPC';
|
|
|
13
8
|
import { FeeJuiceContract } from '@aztec/noir-contracts.js/FeeJuice';
|
|
14
9
|
import { SponsoredFPCContract } from '@aztec/noir-contracts.js/SponsoredFPC';
|
|
15
10
|
import { TokenContract as BananaCoin, TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
16
|
-
import { TestWallet } from '@aztec/test-wallet/server';
|
|
17
11
|
import { type SubsystemsContext } from '../../fixtures/snapshot_manager.js';
|
|
18
12
|
import { type SetupOptions } from '../../fixtures/utils.js';
|
|
19
13
|
import { CrossChainTestHarness } from '../../shared/cross_chain_test_harness.js';
|
|
20
14
|
import { type GasBridgingTestHarness } from '../../shared/gas_portal_test_harness.js';
|
|
21
15
|
import { type ClientFlowsConfig } from './config.js';
|
|
22
16
|
export type AccountType = 'ecdsar1' | 'schnorr';
|
|
23
|
-
export type FeePaymentMethodGetter = (wallet: Wallet
|
|
17
|
+
export type FeePaymentMethodGetter = (wallet: Wallet) => Promise<FeePaymentMethod>;
|
|
24
18
|
export type BenchmarkingFeePaymentMethod = 'bridged_fee_juice' | 'private_fpc' | 'sponsored_fpc' | 'fee_juice';
|
|
25
19
|
export declare class ClientFlowsBenchmark {
|
|
26
20
|
private snapshotManager;
|
|
27
21
|
logger: Logger;
|
|
22
|
+
pxe: PXE;
|
|
28
23
|
aztecNode: AztecNode;
|
|
29
24
|
cheatCodes: CheatCodes;
|
|
30
25
|
context: SubsystemsContext;
|
|
31
26
|
chainMonitor: ChainMonitor;
|
|
32
27
|
feeJuiceBridgeTestHarness: GasBridgingTestHarness;
|
|
33
|
-
adminWallet:
|
|
28
|
+
adminWallet: AccountWallet;
|
|
34
29
|
adminAddress: AztecAddress;
|
|
35
30
|
sequencerAddress: AztecAddress;
|
|
36
31
|
coinbase: EthAddress;
|
|
@@ -41,7 +36,7 @@ export declare class ClientFlowsBenchmark {
|
|
|
41
36
|
amm: AMMContract;
|
|
42
37
|
liquidityToken: TokenContract;
|
|
43
38
|
sponsoredFPC: SponsoredFPCContract;
|
|
44
|
-
|
|
39
|
+
userPXE: PXE;
|
|
45
40
|
realProofs: boolean;
|
|
46
41
|
paymentMethods: Record<BenchmarkingFeePaymentMethod, {
|
|
47
42
|
forWallet: FeePaymentMethodGetter;
|
|
@@ -55,7 +50,7 @@ export declare class ClientFlowsBenchmark {
|
|
|
55
50
|
mintAndBridgeFeeJuice(address: AztecAddress): Promise<void>;
|
|
56
51
|
/** Admin mints bananaCoin tokens privately to the target address and redeems them. */
|
|
57
52
|
mintPrivateBananas(amount: bigint, address: AztecAddress): Promise<void>;
|
|
58
|
-
createBenchmarkingAccountManager(
|
|
53
|
+
createBenchmarkingAccountManager(pxe: PXE, type: 'ecdsar1' | 'schnorr'): Promise<import("@aztec/aztec.js").AccountManager>;
|
|
59
54
|
applyBaseSnapshots(): Promise<void>;
|
|
60
55
|
applyInitialAccountsSnapshot(): Promise<void>;
|
|
61
56
|
applySetupFeeJuiceSnapshot(): Promise<void>;
|
|
@@ -63,11 +58,12 @@ export declare class ClientFlowsBenchmark {
|
|
|
63
58
|
applyDeployCandyBarTokenSnapshot(): Promise<void>;
|
|
64
59
|
applyFPCSetupSnapshot(): Promise<void>;
|
|
65
60
|
applyDeploySponsoredFPCSnapshot(): Promise<void>;
|
|
66
|
-
createCrossChainTestHarness(owner:
|
|
67
|
-
|
|
61
|
+
createCrossChainTestHarness(owner: AccountWallet): Promise<CrossChainTestHarness>;
|
|
62
|
+
createAndFundBenchmarkingWallet(accountType: AccountType): Promise<AccountWalletWithSecretKey>;
|
|
68
63
|
applyDeployAmmSnapshot(): Promise<void>;
|
|
69
|
-
getBridgedFeeJuicePaymentMethodForWallet(
|
|
70
|
-
getPrivateFPCPaymentMethodForWallet(wallet: Wallet
|
|
71
|
-
getSponsoredFPCPaymentMethodForWallet(_wallet: Wallet
|
|
64
|
+
getBridgedFeeJuicePaymentMethodForWallet(wallet: Wallet): Promise<FeeJuicePaymentMethodWithClaim>;
|
|
65
|
+
getPrivateFPCPaymentMethodForWallet(wallet: Wallet): Promise<PrivateFeePaymentMethod>;
|
|
66
|
+
getSponsoredFPCPaymentMethodForWallet(_wallet: Wallet): Promise<SponsoredFeePaymentMethod>;
|
|
67
|
+
getFeeJuicePaymentMethodForWallet(wallet: Wallet): Promise<FeeJuicePaymentMethod>;
|
|
72
68
|
}
|
|
73
69
|
//# sourceMappingURL=client_flows_benchmark.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client_flows_benchmark.d.ts","sourceRoot":"","sources":["../../../src/bench/client_flows/client_flows_benchmark.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client_flows_benchmark.d.ts","sourceRoot":"","sources":["../../../src/bench/client_flows/client_flows_benchmark.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { PrivateFeePaymentMethod, SponsoredFeePaymentMethod } from '@aztec/aztec.js
|
|
4
|
-
import {
|
|
1
|
+
import { EcdsaRAccountContractArtifact, getEcdsaRAccount } from '@aztec/accounts/ecdsa';
|
|
2
|
+
import { SchnorrAccountContractArtifact, getSchnorrAccount, getSchnorrWallet } from '@aztec/accounts/schnorr';
|
|
3
|
+
import { AccountWalletWithSecretKey, FeeJuicePaymentMethod, FeeJuicePaymentMethodWithClaim, PrivateFeePaymentMethod, SponsoredFeePaymentMethod, createLogger } from '@aztec/aztec.js';
|
|
4
|
+
import { CheatCodes } from '@aztec/aztec/testing';
|
|
5
5
|
import { RollupContract, createExtendedL1Client, deployL1Contract } from '@aztec/ethereum';
|
|
6
6
|
import { ChainMonitor } from '@aztec/ethereum/test';
|
|
7
7
|
import { randomBytes } from '@aztec/foundation/crypto';
|
|
@@ -16,10 +16,8 @@ import { SponsoredFPCContract } from '@aztec/noir-contracts.js/SponsoredFPC';
|
|
|
16
16
|
import { TokenContract as BananaCoin, TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
17
17
|
import { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
18
18
|
import { getCanonicalFeeJuice } from '@aztec/protocol-contracts/fee-juice';
|
|
19
|
-
import {
|
|
20
|
-
import { GasSettings } from '@aztec/stdlib/gas';
|
|
19
|
+
import { createPXEService, getPXEServiceConfig } from '@aztec/pxe/server';
|
|
21
20
|
import { deriveSigningKey } from '@aztec/stdlib/keys';
|
|
22
|
-
import { TestWallet } from '@aztec/test-wallet/server';
|
|
23
21
|
import { MNEMONIC } from '../../fixtures/fixtures.js';
|
|
24
22
|
import { createSnapshotManager, deployAccounts } from '../../fixtures/snapshot_manager.js';
|
|
25
23
|
import { mintTokensToPrivate } from '../../fixtures/token_utils.js';
|
|
@@ -32,13 +30,14 @@ const { E2E_DATA_PATH: dataPath, BENCHMARK_CONFIG } = process.env;
|
|
|
32
30
|
export class ClientFlowsBenchmark {
|
|
33
31
|
snapshotManager;
|
|
34
32
|
logger;
|
|
33
|
+
pxe;
|
|
35
34
|
aztecNode;
|
|
36
35
|
cheatCodes;
|
|
37
36
|
context;
|
|
38
37
|
chainMonitor;
|
|
39
38
|
feeJuiceBridgeTestHarness;
|
|
40
|
-
adminWallet;
|
|
41
39
|
// The admin that aids in the setup of the test
|
|
40
|
+
adminWallet;
|
|
42
41
|
adminAddress;
|
|
43
42
|
// Aztec Node config
|
|
44
43
|
sequencerAddress;
|
|
@@ -56,8 +55,8 @@ export class ClientFlowsBenchmark {
|
|
|
56
55
|
liquidityToken;
|
|
57
56
|
// Sponsored FPC contract
|
|
58
57
|
sponsoredFPC;
|
|
59
|
-
// PXE
|
|
60
|
-
|
|
58
|
+
// PXE used by the benchmarking user. It can be set up with client-side proving enabled
|
|
59
|
+
userPXE;
|
|
61
60
|
realProofs = [
|
|
62
61
|
'true',
|
|
63
62
|
'1'
|
|
@@ -83,7 +82,7 @@ export class ClientFlowsBenchmark {
|
|
|
83
82
|
},
|
|
84
83
|
// eslint-disable-next-line camelcase
|
|
85
84
|
fee_juice: {
|
|
86
|
-
forWallet:
|
|
85
|
+
forWallet: this.getFeeJuicePaymentMethodForWallet.bind(this),
|
|
87
86
|
circuits: 0
|
|
88
87
|
}
|
|
89
88
|
};
|
|
@@ -126,46 +125,53 @@ export class ClientFlowsBenchmark {
|
|
|
126
125
|
const balanceBefore = await this.bananaCoin.methods.balance_of_private(address).simulate({
|
|
127
126
|
from: this.adminAddress
|
|
128
127
|
});
|
|
129
|
-
await mintTokensToPrivate(this.bananaCoin, this.adminAddress, address, amount);
|
|
128
|
+
await mintTokensToPrivate(this.bananaCoin, this.adminAddress, this.adminWallet, address, amount);
|
|
130
129
|
const balanceAfter = await this.bananaCoin.methods.balance_of_private(address).simulate({
|
|
131
130
|
from: this.adminAddress
|
|
132
131
|
});
|
|
133
132
|
expect(balanceAfter).toEqual(balanceBefore + amount);
|
|
134
133
|
}
|
|
135
|
-
createBenchmarkingAccountManager(
|
|
136
|
-
const
|
|
134
|
+
async createBenchmarkingAccountManager(pxe, type) {
|
|
135
|
+
const benchysSecretKey = Fr.random();
|
|
137
136
|
const salt = Fr.random();
|
|
138
137
|
let benchysPrivateSigningKey;
|
|
138
|
+
let benchysAccountManager;
|
|
139
139
|
if (type === 'schnorr') {
|
|
140
|
-
benchysPrivateSigningKey = deriveSigningKey(
|
|
141
|
-
|
|
140
|
+
benchysPrivateSigningKey = deriveSigningKey(benchysSecretKey);
|
|
141
|
+
benchysAccountManager = await getSchnorrAccount(pxe, benchysSecretKey, benchysPrivateSigningKey, salt);
|
|
142
142
|
} else if (type === 'ecdsar1') {
|
|
143
143
|
benchysPrivateSigningKey = randomBytes(32);
|
|
144
|
-
|
|
144
|
+
benchysAccountManager = await getEcdsaRAccount(pxe, benchysSecretKey, benchysPrivateSigningKey, salt);
|
|
145
145
|
} else {
|
|
146
146
|
throw new Error(`Unknown account type: ${type}`);
|
|
147
147
|
}
|
|
148
|
+
await benchysAccountManager.register();
|
|
149
|
+
return benchysAccountManager;
|
|
148
150
|
}
|
|
149
151
|
async applyBaseSnapshots() {
|
|
150
152
|
await this.applyInitialAccountsSnapshot();
|
|
151
153
|
await this.applySetupFeeJuiceSnapshot();
|
|
152
154
|
}
|
|
153
155
|
async applyInitialAccountsSnapshot() {
|
|
154
|
-
await this.snapshotManager.snapshot('initial_accounts', deployAccounts(2, this.logger), async ({ deployedAccounts
|
|
155
|
-
this.
|
|
156
|
+
await this.snapshotManager.snapshot('initial_accounts', deployAccounts(2, this.logger), async ({ deployedAccounts }, { pxe, aztecNode, aztecNodeConfig })=>{
|
|
157
|
+
this.pxe = pxe;
|
|
156
158
|
this.aztecNode = aztecNode;
|
|
157
|
-
this.cheatCodes =
|
|
158
|
-
|
|
159
|
-
this.
|
|
159
|
+
this.cheatCodes = await CheatCodes.create(aztecNodeConfig.l1RpcUrls, pxe);
|
|
160
|
+
const deployedWallets = await Promise.all(deployedAccounts.map((a)=>getSchnorrWallet(pxe, a.address, a.signingKey)));
|
|
161
|
+
[this.adminWallet] = deployedWallets;
|
|
162
|
+
this.adminAddress = this.adminWallet.getAddress();
|
|
163
|
+
this.sequencerAddress = deployedWallets[1].getAddress();
|
|
160
164
|
const canonicalFeeJuice = await getCanonicalFeeJuice();
|
|
161
165
|
this.feeJuiceContract = await FeeJuiceContract.at(canonicalFeeJuice.address, this.adminWallet);
|
|
162
166
|
this.coinbase = EthAddress.random();
|
|
163
|
-
const userPXEConfig =
|
|
167
|
+
const userPXEConfig = getPXEServiceConfig();
|
|
168
|
+
const l1Contracts = await aztecNode.getL1ContractAddresses();
|
|
164
169
|
const userPXEConfigWithContracts = {
|
|
165
170
|
...userPXEConfig,
|
|
166
|
-
proverEnabled: this.realProofs
|
|
171
|
+
proverEnabled: this.realProofs,
|
|
172
|
+
l1Contracts
|
|
167
173
|
};
|
|
168
|
-
this.
|
|
174
|
+
this.userPXE = await createPXEService(this.aztecNode, userPXEConfigWithContracts, {
|
|
169
175
|
loggers: {
|
|
170
176
|
prover: this.proxyLogger.createLogger('pxe:bb:wasm:bundle:proxied')
|
|
171
177
|
}
|
|
@@ -179,6 +185,7 @@ export class ClientFlowsBenchmark {
|
|
|
179
185
|
this.feeJuiceBridgeTestHarness = await FeeJuicePortalTestingHarnessFactory.create({
|
|
180
186
|
aztecNode: context.aztecNode,
|
|
181
187
|
aztecNodeAdmin: context.aztecNode,
|
|
188
|
+
pxeService: context.pxe,
|
|
182
189
|
l1Client: context.deployL1ContractsValues.l1Client,
|
|
183
190
|
wallet: this.adminWallet,
|
|
184
191
|
logger: this.logger
|
|
@@ -214,7 +221,7 @@ export class ClientFlowsBenchmark {
|
|
|
214
221
|
async applyFPCSetupSnapshot() {
|
|
215
222
|
await this.snapshotManager.snapshot('fpc_setup', async (context)=>{
|
|
216
223
|
const feeJuiceContract = this.feeJuiceBridgeTestHarness.feeJuice;
|
|
217
|
-
expect((await context.
|
|
224
|
+
expect((await context.pxe.getContractMetadata(feeJuiceContract.address)).isContractPublished).toBe(true);
|
|
218
225
|
const bananaCoin = this.bananaCoin;
|
|
219
226
|
const bananaFPC = await FPCContract.deploy(this.adminWallet, bananaCoin.address, this.adminAddress).send({
|
|
220
227
|
from: this.adminAddress
|
|
@@ -230,7 +237,7 @@ export class ClientFlowsBenchmark {
|
|
|
230
237
|
}
|
|
231
238
|
async applyDeploySponsoredFPCSnapshot() {
|
|
232
239
|
await this.snapshotManager.snapshot('deploy_sponsored_fpc', async ()=>{
|
|
233
|
-
const sponsoredFPC = await setupSponsoredFPC(this.
|
|
240
|
+
const sponsoredFPC = await setupSponsoredFPC(this.pxe);
|
|
234
241
|
this.logger.info(`SponsoredFPC at ${sponsoredFPC.address}`);
|
|
235
242
|
return {
|
|
236
243
|
sponsoredFPCAddress: sponsoredFPC.address
|
|
@@ -247,29 +254,29 @@ export class ClientFlowsBenchmark {
|
|
|
247
254
|
l1Client.account.address
|
|
248
255
|
]).then(({ address })=>address);
|
|
249
256
|
this.logger.verbose(`Setting up cross chain harness...`);
|
|
250
|
-
const crossChainTestHarness = await CrossChainTestHarness.new(this.aztecNode, l1Client,
|
|
257
|
+
const crossChainTestHarness = await CrossChainTestHarness.new(this.aztecNode, this.pxe, l1Client, owner, owner.getAddress(), this.logger, underlyingERC20Address);
|
|
251
258
|
this.logger.verbose(`L2 token deployed to: ${crossChainTestHarness.l2Token.address}`);
|
|
252
259
|
return crossChainTestHarness;
|
|
253
260
|
}
|
|
254
|
-
async
|
|
255
|
-
const benchysAccountManager = await this.createBenchmarkingAccountManager(this.
|
|
256
|
-
const
|
|
257
|
-
const benchysAddress = benchysAccountManager.
|
|
261
|
+
async createAndFundBenchmarkingWallet(accountType) {
|
|
262
|
+
const benchysAccountManager = await this.createBenchmarkingAccountManager(this.pxe, accountType);
|
|
263
|
+
const benchysWallet = await benchysAccountManager.getWallet();
|
|
264
|
+
const benchysAddress = benchysAccountManager.getAddress();
|
|
258
265
|
const claim = await this.feeJuiceBridgeTestHarness.prepareTokensOnL1(benchysAddress);
|
|
259
|
-
const
|
|
260
|
-
await
|
|
261
|
-
from: AztecAddress.ZERO,
|
|
266
|
+
const paymentMethod = new FeeJuicePaymentMethodWithClaim(benchysWallet, claim);
|
|
267
|
+
await benchysAccountManager.deploy({
|
|
262
268
|
fee: {
|
|
263
|
-
paymentMethod
|
|
269
|
+
paymentMethod
|
|
264
270
|
}
|
|
265
271
|
}).wait();
|
|
266
|
-
// Register benchy on the user's
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
contract: benchysAccountManager.getAccountContract()
|
|
272
|
+
// Register benchy on the user's PXE, where we're going to be interacting from
|
|
273
|
+
await this.userPXE.registerContract({
|
|
274
|
+
instance: benchysAccountManager.getInstance(),
|
|
275
|
+
artifact: accountType === 'ecdsar1' ? EcdsaRAccountContractArtifact : SchnorrAccountContractArtifact
|
|
271
276
|
});
|
|
272
|
-
|
|
277
|
+
await this.userPXE.registerAccount(benchysWallet.getSecretKey(), benchysWallet.getCompleteAddress().partialAddress);
|
|
278
|
+
const entrypoint = await benchysAccountManager.getAccount();
|
|
279
|
+
return new AccountWalletWithSecretKey(this.userPXE, entrypoint, benchysWallet.getSecretKey(), benchysAccountManager.salt);
|
|
273
280
|
}
|
|
274
281
|
async applyDeployAmmSnapshot() {
|
|
275
282
|
await this.snapshotManager.snapshot('deploy_amm', async ()=>{
|
|
@@ -292,20 +299,17 @@ export class ClientFlowsBenchmark {
|
|
|
292
299
|
this.amm = await AMMContract.at(ammAddress, this.adminWallet);
|
|
293
300
|
});
|
|
294
301
|
}
|
|
295
|
-
async getBridgedFeeJuicePaymentMethodForWallet(
|
|
296
|
-
const claim = await this.feeJuiceBridgeTestHarness.prepareTokensOnL1(
|
|
297
|
-
return new FeeJuicePaymentMethodWithClaim(
|
|
302
|
+
async getBridgedFeeJuicePaymentMethodForWallet(wallet) {
|
|
303
|
+
const claim = await this.feeJuiceBridgeTestHarness.prepareTokensOnL1(wallet.getAddress());
|
|
304
|
+
return new FeeJuicePaymentMethodWithClaim(wallet, claim);
|
|
298
305
|
}
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
// fee the user is willing to pay
|
|
302
|
-
const maxFeesPerGas = (await this.aztecNode.getCurrentBaseFees()).mul(1.5);
|
|
303
|
-
const gasSettings = GasSettings.default({
|
|
304
|
-
maxFeesPerGas
|
|
305
|
-
});
|
|
306
|
-
return new PrivateFeePaymentMethod(this.bananaFPC.address, sender, wallet, gasSettings);
|
|
306
|
+
getPrivateFPCPaymentMethodForWallet(wallet) {
|
|
307
|
+
return Promise.resolve(new PrivateFeePaymentMethod(this.bananaFPC.address, wallet));
|
|
307
308
|
}
|
|
308
|
-
getSponsoredFPCPaymentMethodForWallet(_wallet
|
|
309
|
+
getSponsoredFPCPaymentMethodForWallet(_wallet) {
|
|
309
310
|
return Promise.resolve(new SponsoredFeePaymentMethod(this.sponsoredFPC.address));
|
|
310
311
|
}
|
|
312
|
+
getFeeJuicePaymentMethodForWallet(wallet) {
|
|
313
|
+
return Promise.resolve(new FeeJuicePaymentMethod(wallet.getAddress()));
|
|
314
|
+
}
|
|
311
315
|
}
|
|
@@ -40,7 +40,7 @@ async function main() {
|
|
|
40
40
|
bbBinaryPath: process.env.BB_BINARY_PATH,
|
|
41
41
|
bbWorkingDirectory: process.env.BB_WORKING_DIRECTORY
|
|
42
42
|
}, proxyLogger.createLogger('bb:prover'));
|
|
43
|
-
const userLog = createLogger('
|
|
43
|
+
const userLog = createLogger('client_ivc_flows:data_processor');
|
|
44
44
|
for (const flow of flows){
|
|
45
45
|
userLog.info(`Processing flow ${flow}`);
|
|
46
46
|
const ivcInputs = await readFile(join(ivcFolder, flow, 'ivc-inputs.msgpack'));
|
|
@@ -73,10 +73,10 @@ async function main() {
|
|
|
73
73
|
let provingTime;
|
|
74
74
|
try {
|
|
75
75
|
const provingTimer = new Timer();
|
|
76
|
-
await prover.
|
|
76
|
+
await prover.createClientIvcProof(privateExecutionSteps);
|
|
77
77
|
provingTime = provingTimer.ms();
|
|
78
78
|
} catch (e) {
|
|
79
|
-
userLog.error(`Failed to generate
|
|
79
|
+
userLog.error(`Failed to generate client ivc proof for ${flow}`, e);
|
|
80
80
|
error = e.message;
|
|
81
81
|
}
|
|
82
82
|
// Extract logs from this run from the proxy and write them to disk unconditionally
|
package/dest/bench/utils.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { type SentTx, type WaitOpts } from '@aztec/aztec.js
|
|
1
|
+
import { type AztecNode, type SentTx, type WaitOpts } from '@aztec/aztec.js';
|
|
2
2
|
import { BenchmarkingContract } from '@aztec/noir-test-contracts.js/Benchmarking';
|
|
3
|
+
import { type PXEService } from '@aztec/pxe/server';
|
|
3
4
|
import type { MetricsType } from '@aztec/telemetry-client';
|
|
4
5
|
import type { BenchmarkTelemetryClient } from '@aztec/telemetry-client/bench';
|
|
5
6
|
import { type EndToEndContext, type SetupOptions } from '../fixtures/utils.js';
|
|
@@ -38,7 +39,15 @@ export type GithubActionBenchmarkResult = {
|
|
|
38
39
|
* @param heavyPublicCompute - Whether the transactions include heavy public compute (like a big sha256).
|
|
39
40
|
* @returns Array of sent txs.
|
|
40
41
|
*/
|
|
41
|
-
export declare function sendTxs(txCount: number, context: EndToEndContext, contract: BenchmarkingContract, heavyPublicCompute?: boolean): SentTx[]
|
|
42
|
+
export declare function sendTxs(txCount: number, context: EndToEndContext, contract: BenchmarkingContract, heavyPublicCompute?: boolean): Promise<SentTx[]>;
|
|
42
43
|
export declare function waitTxs(txs: SentTx[], context: EndToEndContext, txWaitOpts?: WaitOpts): Promise<void>;
|
|
44
|
+
/**
|
|
45
|
+
* Creates a new PXE
|
|
46
|
+
* @param node - Node to connect the pxe to.
|
|
47
|
+
* @param contract - Benchmark contract to add to the pxe.
|
|
48
|
+
* @param startingBlock - First l2 block to process.
|
|
49
|
+
* @returns The new PXE.
|
|
50
|
+
*/
|
|
51
|
+
export declare function createNewPXE(node: AztecNode, contract: BenchmarkingContract): Promise<PXEService>;
|
|
43
52
|
export {};
|
|
44
53
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/bench/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/bench/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAa,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAExF,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,KAAK,UAAU,EAA2C,MAAM,mBAAmB,CAAC;AAC7F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAA4C,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAKxH,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EAAS,MAAM,sBAAsB,CAAC;AAEtF;;GAEG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG;IAC5B,6BAA6B,CAAC,OAAO,EAAE,CAAC,WAAW,GAAG,YAAY,CAAC,EAAE,CAAC;IACtE,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;;;;;GA0BF;AAED,KAAK,YAAY,GAAG;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAGF,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AA6DF;;;;;;;;GAQG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,oBAAoB,EAC9B,kBAAkB,GAAE,OAAe,GAClC,OAAO,CAAC,MAAM,EAAE,CAAC,CAMnB;AAED,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,QAAQ,iBAI3F;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC,CAiBvG"}
|
package/dest/bench/utils.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { BatchCall } from '@aztec/aztec.js
|
|
1
|
+
import { BatchCall } from '@aztec/aztec.js';
|
|
2
2
|
import { mean, stdDev, times } from '@aztec/foundation/collection';
|
|
3
3
|
import { BenchmarkingContract } from '@aztec/noir-test-contracts.js/Benchmarking';
|
|
4
|
+
import { createPXEService } from '@aztec/pxe/server';
|
|
4
5
|
import { mkdirSync, writeFileSync } from 'fs';
|
|
5
6
|
import path from 'path';
|
|
6
7
|
import { setup } from '../fixtures/utils.js';
|
|
@@ -13,9 +14,8 @@ import { setup } from '../fixtures/utils.js';
|
|
|
13
14
|
benchmark: true
|
|
14
15
|
}
|
|
15
16
|
});
|
|
16
|
-
const defaultAccountAddress = context.accounts[0];
|
|
17
17
|
const contract = await BenchmarkingContract.deploy(context.wallet).send({
|
|
18
|
-
from:
|
|
18
|
+
from: context.wallet.getAddress()
|
|
19
19
|
}).deployed();
|
|
20
20
|
context.logger.info(`Deployed benchmarking contract at ${contract.address}`);
|
|
21
21
|
const sequencer = context.aztecNode.getSequencer();
|
|
@@ -92,10 +92,10 @@ function getMetricValues(points) {
|
|
|
92
92
|
* @param heavyPublicCompute - Whether the transactions include heavy public compute (like a big sha256).
|
|
93
93
|
* @returns A BatchCall instance.
|
|
94
94
|
*/ function makeCall(index, context, contract, heavyPublicCompute) {
|
|
95
|
-
const
|
|
95
|
+
const owner = context.wallet.getAddress();
|
|
96
96
|
if (heavyPublicCompute) {
|
|
97
97
|
return new BatchCall(context.wallet, [
|
|
98
|
-
contract.methods.
|
|
98
|
+
contract.methods.sha256_hash_2048(randomBytesAsBigInts(2048))
|
|
99
99
|
]);
|
|
100
100
|
} else {
|
|
101
101
|
return new BatchCall(context.wallet, [
|
|
@@ -112,20 +112,44 @@ function getMetricValues(points) {
|
|
|
112
112
|
* @param contract - Target contract.
|
|
113
113
|
* @param heavyPublicCompute - Whether the transactions include heavy public compute (like a big sha256).
|
|
114
114
|
* @returns Array of sent txs.
|
|
115
|
-
*/ export function sendTxs(txCount, context, contract, heavyPublicCompute = false) {
|
|
115
|
+
*/ export async function sendTxs(txCount, context, contract, heavyPublicCompute = false) {
|
|
116
116
|
const calls = times(txCount, (index)=>makeCall(index, context, contract, heavyPublicCompute));
|
|
117
117
|
context.logger.info(`Creating ${txCount} txs`);
|
|
118
|
-
const
|
|
118
|
+
const provenTxs = await Promise.all(calls.map((call)=>call.prove({
|
|
119
|
+
from: context.wallet.getAddress()
|
|
120
|
+
})));
|
|
119
121
|
context.logger.info(`Sending ${txCount} txs`);
|
|
120
|
-
return
|
|
121
|
-
from
|
|
122
|
-
}));
|
|
122
|
+
return provenTxs.map((tx)=>tx.send());
|
|
123
123
|
}
|
|
124
124
|
export async function waitTxs(txs, context, txWaitOpts) {
|
|
125
125
|
context.logger.info(`Awaiting ${txs.length} txs to be mined`);
|
|
126
126
|
await Promise.all(txs.map((tx)=>tx.wait(txWaitOpts)));
|
|
127
127
|
context.logger.info(`All ${txs.length} txs have been mined`);
|
|
128
128
|
}
|
|
129
|
+
/**
|
|
130
|
+
* Creates a new PXE
|
|
131
|
+
* @param node - Node to connect the pxe to.
|
|
132
|
+
* @param contract - Benchmark contract to add to the pxe.
|
|
133
|
+
* @param startingBlock - First l2 block to process.
|
|
134
|
+
* @returns The new PXE.
|
|
135
|
+
*/ export async function createNewPXE(node, contract) {
|
|
136
|
+
const l1Contracts = await node.getL1ContractAddresses();
|
|
137
|
+
const { l1ChainId, rollupVersion } = await node.getNodeInfo();
|
|
138
|
+
const pxeConfig = {
|
|
139
|
+
l2BlockBatchSize: 50,
|
|
140
|
+
l2BlockPollingIntervalMS: 100,
|
|
141
|
+
dataDirectory: undefined,
|
|
142
|
+
dataStoreMapSizeKb: 1024 * 1024,
|
|
143
|
+
l1Contracts,
|
|
144
|
+
l1ChainId,
|
|
145
|
+
rollupVersion
|
|
146
|
+
};
|
|
147
|
+
// docs:start:PXEcreate
|
|
148
|
+
const pxe = await createPXEService(node, pxeConfig);
|
|
149
|
+
// docs:end:PXEcreate
|
|
150
|
+
await pxe.registerContract(contract);
|
|
151
|
+
return pxe;
|
|
152
|
+
}
|
|
129
153
|
function randomBytesAsBigInts(length) {
|
|
130
154
|
return [
|
|
131
155
|
...Array(length)
|
|
@@ -1,13 +1,8 @@
|
|
|
1
|
-
import { AztecAddress } from '@aztec/aztec.js
|
|
2
|
-
import { Fr } from '@aztec/aztec.js/fields';
|
|
3
|
-
import { type Logger } from '@aztec/aztec.js/log';
|
|
4
|
-
import type { AztecNode } from '@aztec/aztec.js/node';
|
|
5
|
-
import type { TxHash } from '@aztec/aztec.js/tx';
|
|
1
|
+
import { type AccountWallet, AztecAddress, type AztecNode, type CompleteAddress, Fr, type Logger, type PXE, type TxHash } from '@aztec/aztec.js';
|
|
6
2
|
import type { CheatCodes } from '@aztec/aztec/testing';
|
|
7
3
|
import { TokenBlacklistContract } from '@aztec/noir-contracts.js/TokenBlacklist';
|
|
8
4
|
import { InvalidAccountContract } from '@aztec/noir-test-contracts.js/InvalidAccount';
|
|
9
5
|
import type { SequencerClient } from '@aztec/sequencer-client';
|
|
10
|
-
import type { TestWallet } from '@aztec/test-wallet/server';
|
|
11
6
|
import { type SubsystemsContext } from '../fixtures/snapshot_manager.js';
|
|
12
7
|
import { TokenSimulator } from '../simulators/token_simulator.js';
|
|
13
8
|
export declare class Role {
|
|
@@ -27,15 +22,20 @@ export declare class BlacklistTokenContractTest {
|
|
|
27
22
|
static CHANGE_ROLES_DELAY: number;
|
|
28
23
|
private snapshotManager;
|
|
29
24
|
logger: Logger;
|
|
30
|
-
|
|
25
|
+
wallets: AccountWallet[];
|
|
26
|
+
pxe: PXE;
|
|
27
|
+
accounts: CompleteAddress[];
|
|
31
28
|
asset: TokenBlacklistContract;
|
|
32
29
|
tokenSim: TokenSimulator;
|
|
33
30
|
badAccount: InvalidAccountContract;
|
|
34
31
|
cheatCodes: CheatCodes;
|
|
35
32
|
sequencer: SequencerClient;
|
|
36
33
|
aztecNode: AztecNode;
|
|
34
|
+
admin: AccountWallet;
|
|
37
35
|
adminAddress: AztecAddress;
|
|
36
|
+
other: AccountWallet;
|
|
38
37
|
otherAddress: AztecAddress;
|
|
38
|
+
blacklisted: AccountWallet;
|
|
39
39
|
blacklistedAddress: AztecAddress;
|
|
40
40
|
constructor(testName: string);
|
|
41
41
|
crossTimestampOfChange(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blacklist_token_contract_test.d.ts","sourceRoot":"","sources":["../../src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"blacklist_token_contract_test.d.ts","sourceRoot":"","sources":["../../src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,aAAa,EAClB,YAAY,EACZ,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,EAAE,EACF,KAAK,MAAM,EACX,KAAK,GAAG,EACR,KAAK,MAAM,EAGZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAI/D,OAAO,EAEL,KAAK,iBAAiB,EAIvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAIlE,qBAAa,IAAI;IACf,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,aAAa,CAAS;IAE9B,SAAS;IAKT,UAAU;IAKV,eAAe;IAKf,YAAY;;;;;CAKb;AAED,qBAAa,0BAA0B;IAErC,MAAM,CAAC,kBAAkB,SAAS;IAElC,OAAO,CAAC,eAAe,CAAmB;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,aAAa,EAAE,CAAM;IAC9B,GAAG,EAAG,GAAG,CAAC;IACV,QAAQ,EAAE,eAAe,EAAE,CAAM;IACjC,KAAK,EAAG,sBAAsB,CAAC;IAC/B,QAAQ,EAAG,cAAc,CAAC;IAC1B,UAAU,EAAG,sBAAsB,CAAC;IACpC,UAAU,EAAG,UAAU,CAAC;IACxB,SAAS,EAAG,eAAe,CAAC;IAC5B,SAAS,EAAG,SAAS,CAAC;IAEtB,KAAK,EAAG,aAAa,CAAC;IACtB,YAAY,EAAG,YAAY,CAAC;IAC5B,KAAK,EAAG,aAAa,CAAC;IACtB,YAAY,EAAG,YAAY,CAAC;IAC5B,WAAW,EAAG,aAAa,CAAC;IAC5B,kBAAkB,EAAG,YAAY,CAAC;gBAEtB,QAAQ,EAAE,MAAM;IAKtB,sBAAsB;IAQ5B;;;;OAIG;IACG,kBAAkB;IAoElB,KAAK;IAIX,QAAQ,GAAI,CAAC,EACX,MAAM,MAAM,EACZ,OAAO,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,EACjD,UAAS,CAAC,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAA2B,KAChG,OAAO,CAAC,IAAI,CAAC,CAAwD;IAElE,QAAQ;IAIR,yBAAyB,CAC7B,QAAQ,EAAE,sBAAsB,EAChC,SAAS,EAAE,YAAY,EACvB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,EAAE,EACd,MAAM,EAAE,MAAM;IAgBV,iBAAiB;CAqExB"}
|