@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,129 +1,116 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { L1FeeJuicePortalManager } from '@aztec/aztec.js
|
|
4
|
-
import { FeeJuicePaymentMethodWithClaim } from '@aztec/aztec.js/fee';
|
|
5
|
-
import { SponsoredFeePaymentMethod } from '@aztec/aztec.js/fee';
|
|
6
|
-
import { Fr } from '@aztec/aztec.js/fields';
|
|
7
|
-
import { createAztecNodeClient } from '@aztec/aztec.js/node';
|
|
1
|
+
import { getSchnorrAccount, getSchnorrWalletWithSecretKey } from '@aztec/accounts/schnorr';
|
|
2
|
+
import { generateSchnorrAccounts, getDeployedTestAccountsWallets } from '@aztec/accounts/testing';
|
|
3
|
+
import { FeeJuicePaymentMethodWithClaim, Fr, L1FeeJuicePortalManager, SponsoredFeePaymentMethod, createAztecNodeClient, createCompatibleClient, retryUntil } from '@aztec/aztec.js';
|
|
8
4
|
import { createEthereumChain, createExtendedL1Client } from '@aztec/ethereum';
|
|
9
|
-
import { retryUntil } from '@aztec/foundation/retry';
|
|
10
5
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
11
|
-
import {
|
|
6
|
+
import { createPXEService } from '@aztec/pxe/server';
|
|
12
7
|
import { getACVMConfig } from '../fixtures/get_acvm_config.js';
|
|
13
8
|
import { getBBConfig } from '../fixtures/get_bb_config.js';
|
|
14
9
|
import { getSponsoredFPCAddress, registerSponsoredFPC } from '../fixtures/utils.js';
|
|
15
10
|
const TOKEN_NAME = 'USDC';
|
|
16
11
|
const TOKEN_SYMBOL = 'USD';
|
|
17
12
|
const TOKEN_DECIMALS = 18n;
|
|
18
|
-
export async function
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
const
|
|
25
|
-
const tokenContract = await TokenContract.at(tokenAddress, wallet);
|
|
13
|
+
export async function setupTestWalletsWithTokens(pxeUrl, mintAmount, logger) {
|
|
14
|
+
const WALLET_COUNT = 1; // TODO fix this to allow for 16 wallets again
|
|
15
|
+
const pxe = await createCompatibleClient(pxeUrl, logger);
|
|
16
|
+
const [recipientWallet, ...wallets] = (await getDeployedTestAccountsWallets(pxe)).slice(0, WALLET_COUNT + 1);
|
|
17
|
+
const tokenAdmin = wallets[0];
|
|
18
|
+
const tokenAddress = await deployTokenAndMint(wallets, tokenAdmin.getAddress(), mintAmount, undefined, logger);
|
|
19
|
+
const tokenAdminWallet = await TokenContract.at(tokenAddress, tokenAdmin);
|
|
26
20
|
return {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
tokenAdminAddress: tokenAdmin,
|
|
21
|
+
pxe,
|
|
22
|
+
wallets,
|
|
23
|
+
tokenAdminWallet,
|
|
24
|
+
tokenAdminAddress: tokenAdmin.getAddress(),
|
|
31
25
|
tokenName: TOKEN_NAME,
|
|
32
26
|
tokenAddress,
|
|
33
|
-
|
|
34
|
-
|
|
27
|
+
recipientAddress: recipientWallet.getAddress(),
|
|
28
|
+
recipientWallet
|
|
35
29
|
};
|
|
36
30
|
}
|
|
37
|
-
export async function
|
|
31
|
+
export async function deploySponsoredTestWallets(pxe, mintAmount, logger, numberOfFundedWallets = 1) {
|
|
38
32
|
const [recipient, ...funded] = await generateSchnorrAccounts(numberOfFundedWallets + 1);
|
|
39
|
-
const
|
|
40
|
-
const fundedAccounts = await Promise.all(funded.map((a)=>
|
|
41
|
-
await registerSponsoredFPC(
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
fee: {
|
|
47
|
-
paymentMethod
|
|
48
|
-
}
|
|
49
|
-
}).wait({
|
|
50
|
-
timeout: 2400
|
|
51
|
-
});
|
|
52
|
-
await Promise.all(fundedAccounts.map(async (a)=>{
|
|
53
|
-
const deployMethod = await a.getDeployMethod();
|
|
54
|
-
await deployMethod.send({
|
|
55
|
-
from: AztecAddress.ZERO,
|
|
33
|
+
const recipientWallet = await getSchnorrWalletWithSecretKey(pxe, recipient.secret, recipient.signingKey, recipient.salt);
|
|
34
|
+
const fundedAccounts = await Promise.all(funded.map((a)=>getSchnorrAccount(pxe, a.secret, a.signingKey, a.salt)));
|
|
35
|
+
await registerSponsoredFPC(pxe);
|
|
36
|
+
const wallets = await Promise.all(fundedAccounts.map(async (a)=>{
|
|
37
|
+
const wallet = await a.getWallet();
|
|
38
|
+
const paymentMethod = new SponsoredFeePaymentMethod(await getSponsoredFPCAddress());
|
|
39
|
+
await a.deploy({
|
|
56
40
|
fee: {
|
|
57
41
|
paymentMethod
|
|
58
42
|
}
|
|
59
43
|
}).wait({
|
|
60
44
|
timeout: 2400
|
|
61
45
|
}); // increase timeout on purpose in order to account for two empty epochs
|
|
62
|
-
logger.info(`Account deployed at ${a.
|
|
46
|
+
logger.info(`Account deployed at ${a.getAddress()}`);
|
|
47
|
+
return wallet;
|
|
63
48
|
}));
|
|
64
|
-
const tokenAdmin =
|
|
65
|
-
const tokenAddress = await deployTokenAndMint(
|
|
66
|
-
const
|
|
49
|
+
const tokenAdmin = wallets[0];
|
|
50
|
+
const tokenAddress = await deployTokenAndMint(wallets, tokenAdmin.getAddress(), mintAmount, new SponsoredFeePaymentMethod(await getSponsoredFPCAddress()), logger);
|
|
51
|
+
const tokenAdminWallet = await TokenContract.at(tokenAddress, tokenAdmin);
|
|
67
52
|
return {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
53
|
+
pxe,
|
|
54
|
+
wallets,
|
|
55
|
+
tokenAdminAddress: tokenAdmin.getAddress(),
|
|
56
|
+
tokenAdminWallet,
|
|
72
57
|
tokenName: TOKEN_NAME,
|
|
73
58
|
tokenAddress,
|
|
74
|
-
|
|
75
|
-
recipientAddress:
|
|
59
|
+
recipientWallet,
|
|
60
|
+
recipientAddress: recipientWallet.getAddress()
|
|
76
61
|
};
|
|
77
62
|
}
|
|
78
|
-
export async function
|
|
79
|
-
const
|
|
80
|
-
const
|
|
63
|
+
export async function deployTestWalletWithTokens(pxeUrl, nodeUrl, l1RpcUrls, mnemonicOrPrivateKey, mintAmount, logger, numberOfFundedWallets = 1) {
|
|
64
|
+
const pxe = await createCompatibleClient(pxeUrl, logger);
|
|
65
|
+
const node = createAztecNodeClient(nodeUrl);
|
|
81
66
|
const [recipient, ...funded] = await generateSchnorrAccounts(numberOfFundedWallets + 1);
|
|
82
|
-
const
|
|
83
|
-
const fundedAccounts = await Promise.all(funded.map((a)=>
|
|
84
|
-
const claims = await Promise.all(fundedAccounts.map((a)=>bridgeL1FeeJuice(l1RpcUrls, mnemonicOrPrivateKey,
|
|
67
|
+
const recipientWallet = await getSchnorrWalletWithSecretKey(pxe, recipient.secret, recipient.signingKey, recipient.salt);
|
|
68
|
+
const fundedAccounts = await Promise.all(funded.map((a)=>getSchnorrAccount(pxe, a.secret, a.signingKey, a.salt)));
|
|
69
|
+
const claims = await Promise.all(fundedAccounts.map((a)=>bridgeL1FeeJuice(l1RpcUrls, mnemonicOrPrivateKey, pxe, a.getAddress(), undefined, logger)));
|
|
85
70
|
// Progress by 3 L2 blocks so that the l1ToL2Message added above will be available to use on L2.
|
|
86
|
-
await advanceL2Block(
|
|
87
|
-
await advanceL2Block(
|
|
88
|
-
await advanceL2Block(
|
|
89
|
-
await Promise.all(fundedAccounts.map(async (a, i)=>{
|
|
90
|
-
const
|
|
91
|
-
const
|
|
92
|
-
await
|
|
93
|
-
from: AztecAddress.ZERO,
|
|
71
|
+
await advanceL2Block(node);
|
|
72
|
+
await advanceL2Block(node);
|
|
73
|
+
await advanceL2Block(node);
|
|
74
|
+
const wallets = await Promise.all(fundedAccounts.map(async (a, i)=>{
|
|
75
|
+
const wallet = await a.getWallet();
|
|
76
|
+
const paymentMethod = new FeeJuicePaymentMethodWithClaim(wallet, claims[i]);
|
|
77
|
+
await a.deploy({
|
|
94
78
|
fee: {
|
|
95
79
|
paymentMethod
|
|
96
80
|
}
|
|
97
81
|
}).wait();
|
|
98
|
-
logger.info(`Account deployed at ${a.
|
|
82
|
+
logger.info(`Account deployed at ${a.getAddress()}`);
|
|
83
|
+
return wallet;
|
|
99
84
|
}));
|
|
100
|
-
const tokenAdmin =
|
|
101
|
-
const tokenAddress = await deployTokenAndMint(
|
|
102
|
-
const
|
|
85
|
+
const tokenAdmin = wallets[0];
|
|
86
|
+
const tokenAddress = await deployTokenAndMint(wallets, tokenAdmin.getAddress(), mintAmount, undefined, logger);
|
|
87
|
+
const tokenAdminWallet = await TokenContract.at(tokenAddress, tokenAdmin);
|
|
103
88
|
return {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
89
|
+
pxe,
|
|
90
|
+
wallets,
|
|
91
|
+
tokenAdminAddress: tokenAdmin.getAddress(),
|
|
92
|
+
tokenAdminWallet,
|
|
108
93
|
tokenName: TOKEN_NAME,
|
|
109
94
|
tokenAddress,
|
|
110
|
-
|
|
111
|
-
recipientAddress:
|
|
95
|
+
recipientWallet,
|
|
96
|
+
recipientAddress: recipientWallet.getAddress()
|
|
112
97
|
};
|
|
113
98
|
}
|
|
114
|
-
async function bridgeL1FeeJuice(l1RpcUrls, mnemonicOrPrivateKey,
|
|
115
|
-
const { l1ChainId } = await
|
|
99
|
+
async function bridgeL1FeeJuice(l1RpcUrls, mnemonicOrPrivateKey, pxe, recipient, amount, log) {
|
|
100
|
+
const { l1ChainId } = await pxe.getNodeInfo();
|
|
116
101
|
const chain = createEthereumChain(l1RpcUrls, l1ChainId);
|
|
117
102
|
const l1Client = createExtendedL1Client(chain.rpcUrls, mnemonicOrPrivateKey, chain.chainInfo);
|
|
118
|
-
|
|
103
|
+
// docs:start:bridge_fee_juice
|
|
104
|
+
const portal = await L1FeeJuicePortalManager.new(pxe, l1Client, log);
|
|
119
105
|
const claim = await portal.bridgeTokensPublic(recipient, amount, true);
|
|
120
|
-
|
|
106
|
+
// docs:end:bridge_fee_juice
|
|
107
|
+
const isSynced = async ()=>await pxe.isL1ToL2MessageSynced(Fr.fromHexString(claim.messageHash));
|
|
121
108
|
await retryUntil(isSynced, `message ${claim.messageHash} sync`, 24, 0.5);
|
|
122
109
|
log.info(`Created a claim for ${amount} L1 fee juice to ${recipient}.`, claim);
|
|
123
110
|
return claim;
|
|
124
111
|
}
|
|
125
|
-
async function advanceL2Block(
|
|
126
|
-
const initialBlockNumber = await
|
|
112
|
+
async function advanceL2Block(node, nodeAdmin) {
|
|
113
|
+
const initialBlockNumber = await node.getBlockNumber();
|
|
127
114
|
let minTxsPerBlock = undefined;
|
|
128
115
|
if (nodeAdmin) {
|
|
129
116
|
({ minTxsPerBlock } = await nodeAdmin.getConfig());
|
|
@@ -131,16 +118,16 @@ async function advanceL2Block(aztecNode, nodeAdmin) {
|
|
|
131
118
|
minTxsPerBlock: 0
|
|
132
119
|
}); // Set to 0 to ensure we can advance the block
|
|
133
120
|
}
|
|
134
|
-
await retryUntil(async ()=>await
|
|
121
|
+
await retryUntil(async ()=>await node.getBlockNumber() >= initialBlockNumber + 1);
|
|
135
122
|
if (nodeAdmin && minTxsPerBlock !== undefined) {
|
|
136
123
|
await nodeAdmin.setConfig({
|
|
137
124
|
minTxsPerBlock
|
|
138
125
|
});
|
|
139
126
|
}
|
|
140
127
|
}
|
|
141
|
-
async function deployTokenAndMint(
|
|
128
|
+
async function deployTokenAndMint(wallets, admin, mintAmount, paymentMethod, logger) {
|
|
142
129
|
logger.verbose(`Deploying TokenContract...`);
|
|
143
|
-
const tokenContract = await TokenContract.deploy(
|
|
130
|
+
const tokenContract = await TokenContract.deploy(wallets[0], admin, TOKEN_NAME, TOKEN_SYMBOL, TOKEN_DECIMALS).send({
|
|
144
131
|
from: admin,
|
|
145
132
|
fee: {
|
|
146
133
|
paymentMethod
|
|
@@ -149,8 +136,8 @@ async function deployTokenAndMint(wallet, accounts, admin, mintAmount, paymentMe
|
|
|
149
136
|
timeout: 600
|
|
150
137
|
});
|
|
151
138
|
const tokenAddress = tokenContract.address;
|
|
152
|
-
logger.verbose(`Minting ${mintAmount} public assets to the ${
|
|
153
|
-
await Promise.all(
|
|
139
|
+
logger.verbose(`Minting ${mintAmount} public assets to the ${wallets.length} wallets...`);
|
|
140
|
+
await Promise.all(wallets.map(async (w)=>(await TokenContract.at(tokenAddress, w)).methods.mint_to_public(w.getAddress(), mintAmount).send({
|
|
154
141
|
from: admin,
|
|
155
142
|
fee: {
|
|
156
143
|
paymentMethod
|
|
@@ -161,20 +148,12 @@ async function deployTokenAndMint(wallet, accounts, admin, mintAmount, paymentMe
|
|
|
161
148
|
logger.verbose(`Minting complete.`);
|
|
162
149
|
return tokenAddress;
|
|
163
150
|
}
|
|
164
|
-
export async function performTransfers({
|
|
165
|
-
const recipient =
|
|
166
|
-
// Default to sponsored fee payment if no fee method is provided
|
|
167
|
-
const defaultFeePaymentMethod = feePaymentMethod || new SponsoredFeePaymentMethod(await getSponsoredFPCAddress());
|
|
151
|
+
export async function performTransfers({ testWallets, rounds, transferAmount, logger }) {
|
|
152
|
+
const recipient = testWallets.recipientWallet.getAddress();
|
|
168
153
|
for(let i = 0; i < rounds; i++){
|
|
169
|
-
const txs =
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
from: acc,
|
|
173
|
-
fee: {
|
|
174
|
-
paymentMethod: defaultFeePaymentMethod
|
|
175
|
-
}
|
|
176
|
-
});
|
|
177
|
-
});
|
|
154
|
+
const txs = testWallets.wallets.map(async (w)=>(await TokenContract.at(testWallets.tokenAddress, w)).methods.transfer_in_public(w.getAddress(), recipient, transferAmount, 0).prove({
|
|
155
|
+
from: w.getAddress()
|
|
156
|
+
}));
|
|
178
157
|
const provenTxs = await Promise.all(txs);
|
|
179
158
|
await Promise.all(provenTxs.map((t)=>t.send().wait({
|
|
180
159
|
timeout: 600
|
|
@@ -182,25 +161,23 @@ export async function performTransfers({ wallet, testAccounts, rounds, transferA
|
|
|
182
161
|
logger.info(`Completed round ${i + 1} / ${rounds}`);
|
|
183
162
|
}
|
|
184
163
|
}
|
|
185
|
-
export async function
|
|
186
|
-
const
|
|
164
|
+
export async function startCompatiblePXE(nodeUrl, proverEnabled, logger) {
|
|
165
|
+
const node = createAztecNodeClient(nodeUrl);
|
|
187
166
|
const [bbConfig, acvmConfig] = await Promise.all([
|
|
188
167
|
getBBConfig(logger),
|
|
189
168
|
getACVMConfig(logger)
|
|
190
169
|
]);
|
|
191
|
-
const
|
|
170
|
+
const pxe = await createPXEService(node, {
|
|
192
171
|
dataDirectory: undefined,
|
|
193
172
|
dataStoreMapSizeKb: 1024 * 1024,
|
|
194
173
|
...bbConfig,
|
|
195
174
|
...acvmConfig,
|
|
196
175
|
proverEnabled
|
|
197
|
-
};
|
|
198
|
-
const wallet = await TestWallet.create(aztecNode, pxeConfig);
|
|
176
|
+
});
|
|
199
177
|
return {
|
|
200
|
-
|
|
201
|
-
aztecNode,
|
|
178
|
+
pxe,
|
|
202
179
|
async cleanup () {
|
|
203
|
-
await
|
|
180
|
+
await pxe.stop();
|
|
204
181
|
await bbConfig?.cleanup();
|
|
205
182
|
await acvmConfig?.cleanup();
|
|
206
183
|
}
|
package/dest/spartan/utils.d.ts
CHANGED
|
@@ -9,25 +9,16 @@ declare const testConfigSchema: z.ZodObject<{
|
|
|
9
9
|
REAL_VERIFIER: z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodEffects<z.ZodEffects<z.ZodNumber, 0 | 1, number>, boolean, number>, z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, boolean, string>]>>>;
|
|
10
10
|
CREATE_ETH_DEVNET: z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodEffects<z.ZodEffects<z.ZodNumber, 0 | 1, number>, boolean, number>, z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, boolean, string>]>>>;
|
|
11
11
|
L1_RPC_URLS_JSON: z.ZodOptional<z.ZodString>;
|
|
12
|
-
L1_ACCOUNT_MNEMONIC: z.ZodOptional<z.ZodString>;
|
|
13
|
-
AZTEC_SLOT_DURATION: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
14
|
-
AZTEC_PROOF_SUBMISSION_WINDOW: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
15
12
|
}, "strip", z.ZodTypeAny, {
|
|
16
|
-
AZTEC_SLOT_DURATION: number;
|
|
17
13
|
NAMESPACE: string;
|
|
18
14
|
REAL_VERIFIER: boolean;
|
|
19
15
|
CREATE_ETH_DEVNET: boolean;
|
|
20
|
-
AZTEC_PROOF_SUBMISSION_WINDOW: number;
|
|
21
16
|
L1_RPC_URLS_JSON?: string | undefined;
|
|
22
|
-
L1_ACCOUNT_MNEMONIC?: string | undefined;
|
|
23
17
|
}, {
|
|
24
|
-
AZTEC_SLOT_DURATION?: number | undefined;
|
|
25
18
|
NAMESPACE?: string | undefined;
|
|
26
19
|
REAL_VERIFIER?: string | number | boolean | undefined;
|
|
27
20
|
CREATE_ETH_DEVNET?: string | number | boolean | undefined;
|
|
28
21
|
L1_RPC_URLS_JSON?: string | undefined;
|
|
29
|
-
L1_ACCOUNT_MNEMONIC?: string | undefined;
|
|
30
|
-
AZTEC_PROOF_SUBMISSION_WINDOW?: number | undefined;
|
|
31
22
|
}>;
|
|
32
23
|
export type TestConfig = z.infer<typeof testConfigSchema>;
|
|
33
24
|
export declare function setupEnvironment(env: unknown): TestConfig;
|
|
@@ -143,41 +134,6 @@ export declare function applyNetworkShaping({ valuesFile, namespace, spartanDir,
|
|
|
143
134
|
}): Promise<string>;
|
|
144
135
|
export declare function awaitL2BlockNumber(rollupCheatCodes: RollupCheatCodes, blockNumber: bigint, timeoutSeconds: number, logger: Logger): Promise<void>;
|
|
145
136
|
export declare function restartBot(namespace: string, logger: Logger): Promise<void>;
|
|
146
|
-
/**
|
|
147
|
-
* Installs or upgrades the transfer bot Helm release for the given namespace.
|
|
148
|
-
* Intended for test setup to enable L2 traffic generation only when needed.
|
|
149
|
-
*/
|
|
150
|
-
export declare function installTransferBot({ namespace, spartanDir, logger, replicas, txIntervalSeconds, followChain, mnemonic, mnemonicStartIndex, botPrivateKey, nodeUrl, timeout, reuseValues, aztecSlotDuration, }: {
|
|
151
|
-
namespace: string;
|
|
152
|
-
spartanDir: string;
|
|
153
|
-
logger: Logger;
|
|
154
|
-
replicas?: number;
|
|
155
|
-
txIntervalSeconds?: number;
|
|
156
|
-
followChain?: string;
|
|
157
|
-
mnemonic?: string;
|
|
158
|
-
mnemonicStartIndex?: number | string;
|
|
159
|
-
botPrivateKey?: string;
|
|
160
|
-
nodeUrl?: string;
|
|
161
|
-
timeout?: string;
|
|
162
|
-
reuseValues?: boolean;
|
|
163
|
-
aztecSlotDuration?: number;
|
|
164
|
-
}): Promise<void>;
|
|
165
|
-
/**
|
|
166
|
-
* Uninstalls the transfer bot Helm release from the given namespace.
|
|
167
|
-
* Intended for test teardown to clean up bot resources.
|
|
168
|
-
*/
|
|
169
|
-
export declare function uninstallTransferBot(namespace: string, logger: Logger): Promise<void>;
|
|
170
|
-
/**
|
|
171
|
-
* Enables or disables probabilistic transaction dropping on validators and waits for rollout.
|
|
172
|
-
* Wired to env vars P2P_DROP_TX and P2P_DROP_TX_CHANCE via Helm values.
|
|
173
|
-
*/
|
|
174
|
-
export declare function setValidatorTxDrop({ namespace, enabled, probability, logger, }: {
|
|
175
|
-
namespace: string;
|
|
176
|
-
enabled: boolean;
|
|
177
|
-
probability: number;
|
|
178
|
-
logger: Logger;
|
|
179
|
-
}): Promise<void>;
|
|
180
|
-
export declare function restartValidators(namespace: string, logger: Logger): Promise<void>;
|
|
181
137
|
export declare function enableValidatorDynamicBootNode(instanceName: string, namespace: string, spartanDir: string, logger: Logger): Promise<void>;
|
|
182
138
|
export declare function getSequencers(namespace: string): Promise<string[]>;
|
|
183
139
|
export declare function updateSequencersConfig(env: TestConfig, config: Partial<AztecNodeAdminConfig>): Promise<AztecNodeAdminConfig[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/spartan/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/spartan/utils.ts"],"names":[],"mappings":"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"}
|