@aztec/end-to-end 1.2.0 → 2.0.0-nightly.20250813
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 -2
- package/dest/bench/client_flows/benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/benchmark.js +4 -2
- package/dest/bench/client_flows/client_flows_benchmark.d.ts +1 -1
- package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/client_flows_benchmark.js +33 -15
- package/dest/bench/utils.d.ts.map +1 -1
- package/dest/bench/utils.js +7 -4
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +11 -3
- 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 +59 -24
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +3 -2
- 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 +13 -10
- package/dest/e2e_deploy_contract/deploy_test.d.ts +1 -1
- package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
- package/dest/e2e_deploy_contract/deploy_test.js +7 -6
- package/dest/e2e_epochs/epochs_test.d.ts +16 -2
- package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.js +65 -7
- package/dest/e2e_fees/bridging_race.notest.js +3 -1
- package/dest/e2e_fees/fees_test.d.ts +5 -4
- package/dest/e2e_fees/fees_test.d.ts.map +1 -1
- package/dest/e2e_fees/fees_test.js +44 -59
- 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 +17 -12
- package/dest/e2e_p2p/p2p_network.d.ts +7 -4
- package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
- package/dest/e2e_p2p/p2p_network.js +43 -22
- package/dest/e2e_p2p/shared.d.ts +3 -3
- package/dest/e2e_p2p/shared.d.ts.map +1 -1
- package/dest/e2e_p2p/shared.js +16 -12
- package/dest/e2e_token_contract/token_contract_test.d.ts +8 -4
- package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
- package/dest/e2e_token_contract/token_contract_test.js +48 -23
- package/dest/fixtures/e2e_prover_test.d.ts +1 -1
- package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
- package/dest/fixtures/e2e_prover_test.js +27 -10
- package/dest/fixtures/setup_p2p_test.d.ts +4 -1
- package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
- package/dest/fixtures/setup_p2p_test.js +39 -8
- package/dest/fixtures/snapshot_manager.d.ts +3 -1
- package/dest/fixtures/snapshot_manager.d.ts.map +1 -1
- package/dest/fixtures/snapshot_manager.js +20 -17
- package/dest/fixtures/token_utils.d.ts +3 -3
- package/dest/fixtures/token_utils.d.ts.map +1 -1
- package/dest/fixtures/token_utils.js +14 -10
- package/dest/fixtures/utils.d.ts +23 -8
- package/dest/fixtures/utils.d.ts.map +1 -1
- package/dest/fixtures/utils.js +88 -56
- package/dest/integration_l1_publisher/write_json.d.ts +8 -0
- package/dest/integration_l1_publisher/write_json.d.ts.map +1 -0
- package/dest/integration_l1_publisher/write_json.js +57 -0
- package/dest/sample-dapp/connect.d.mts +2 -0
- package/dest/sample-dapp/connect.d.mts.map +1 -0
- package/dest/sample-dapp/connect.js +1 -1
- package/dest/sample-dapp/contracts.d.mts +3 -0
- package/dest/sample-dapp/contracts.d.mts.map +1 -0
- package/dest/sample-dapp/contracts.js +1 -1
- package/dest/sample-dapp/deploy.d.mts +3 -0
- package/dest/sample-dapp/deploy.d.mts.map +1 -0
- package/dest/sample-dapp/deploy.js +4 -1
- package/dest/sample-dapp/index.d.mts +2 -0
- package/dest/sample-dapp/index.d.mts.map +1 -0
- package/dest/sample-dapp/index.js +18 -8
- package/dest/shared/cross_chain_test_harness.d.ts +6 -3
- package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.js +50 -20
- package/dest/shared/gas_portal_test_harness.d.ts +3 -3
- package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
- package/dest/shared/gas_portal_test_harness.js +21 -6
- 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 +45 -22
- package/dest/simulators/lending_simulator.d.ts +1 -1
- package/dest/simulators/lending_simulator.d.ts.map +1 -1
- package/dest/simulators/lending_simulator.js +6 -2
- package/dest/simulators/token_simulator.d.ts +2 -1
- package/dest/simulators/token_simulator.d.ts.map +1 -1
- package/dest/simulators/token_simulator.js +12 -4
- package/dest/spartan/setup_test_wallets.d.ts +7 -0
- package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.js +96 -11
- package/dest/spartan/utils.d.ts +23 -3
- package/dest/spartan/utils.d.ts.map +1 -1
- package/dest/spartan/utils.js +9 -6
- package/package.json +36 -36
- package/src/bench/client_flows/benchmark.ts +8 -3
- package/src/bench/client_flows/client_flows_benchmark.ts +23 -14
- package/src/bench/utils.ts +5 -4
- package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +47 -26
- package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +14 -9
- package/src/e2e_deploy_contract/deploy_test.ts +7 -7
- package/src/e2e_epochs/epochs_test.ts +97 -25
- package/src/e2e_fees/bridging_race.notest.ts +1 -1
- package/src/e2e_fees/fees_test.ts +55 -82
- package/src/e2e_nested_contract/nested_contract_test.ts +16 -11
- package/src/e2e_p2p/p2p_network.ts +51 -26
- package/src/e2e_p2p/shared.ts +14 -12
- package/src/e2e_token_contract/token_contract_test.ts +38 -36
- package/src/fixtures/e2e_prover_test.ts +17 -10
- package/src/fixtures/setup_p2p_test.ts +51 -9
- package/src/fixtures/snapshot_manager.ts +24 -17
- package/src/fixtures/token_utils.ts +14 -9
- package/src/fixtures/utils.ts +116 -57
- package/src/guides/up_quick_start.sh +1 -1
- package/src/integration_l1_publisher/write_json.ts +74 -0
- package/src/sample-dapp/connect.mjs +1 -1
- package/src/sample-dapp/contracts.mjs +1 -1
- package/src/sample-dapp/deploy.mjs +3 -3
- package/src/sample-dapp/index.mjs +11 -8
- package/src/shared/cross_chain_test_harness.ts +31 -18
- package/src/shared/gas_portal_test_harness.ts +17 -7
- package/src/shared/uniswap_l1_l2.ts +28 -24
- package/src/simulators/lending_simulator.ts +3 -3
- package/src/simulators/token_simulator.ts +12 -3
- package/src/spartan/setup_test_wallets.ts +130 -19
- package/src/spartan/utils.ts +10 -3
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { getSchnorrAccount, getSchnorrWalletWithSecretKey } from '@aztec/accounts/schnorr';
|
|
2
2
|
import { generateSchnorrAccounts, getDeployedTestAccountsWallets } from '@aztec/accounts/testing';
|
|
3
|
-
import { FeeJuicePaymentMethodWithClaim, Fr, L1FeeJuicePortalManager, createAztecNodeClient, createCompatibleClient, retryUntil } from '@aztec/aztec.js';
|
|
3
|
+
import { FeeJuicePaymentMethodWithClaim, Fr, L1FeeJuicePortalManager, SponsoredFeePaymentMethod, createAztecNodeClient, createCompatibleClient, retryUntil } from '@aztec/aztec.js';
|
|
4
4
|
import { createEthereumChain, createExtendedL1Client } from '@aztec/ethereum';
|
|
5
5
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
6
|
+
import { createPXEService } from '@aztec/pxe/server';
|
|
7
|
+
import { getACVMConfig } from '../fixtures/get_acvm_config.js';
|
|
8
|
+
import { getBBConfig } from '../fixtures/get_bb_config.js';
|
|
9
|
+
import { getSponsoredFPCAddress, registerSponsoredFPC } from '../fixtures/utils.js';
|
|
6
10
|
const TOKEN_NAME = 'USDC';
|
|
7
11
|
const TOKEN_SYMBOL = 'USD';
|
|
8
12
|
const TOKEN_DECIMALS = 18n;
|
|
@@ -11,17 +15,51 @@ export async function setupTestWalletsWithTokens(pxeUrl, mintAmount, logger) {
|
|
|
11
15
|
const pxe = await createCompatibleClient(pxeUrl, logger);
|
|
12
16
|
const [recipientWallet, ...wallets] = (await getDeployedTestAccountsWallets(pxe)).slice(0, WALLET_COUNT + 1);
|
|
13
17
|
const tokenAdmin = wallets[0];
|
|
14
|
-
const tokenAddress = await deployTokenAndMint(wallets, tokenAdmin.getAddress(), mintAmount, logger);
|
|
18
|
+
const tokenAddress = await deployTokenAndMint(wallets, tokenAdmin.getAddress(), mintAmount, undefined, logger);
|
|
15
19
|
const tokenAdminWallet = await TokenContract.at(tokenAddress, tokenAdmin);
|
|
16
20
|
return {
|
|
17
21
|
pxe,
|
|
18
22
|
wallets,
|
|
19
23
|
tokenAdminWallet,
|
|
24
|
+
tokenAdminAddress: tokenAdmin.getAddress(),
|
|
20
25
|
tokenName: TOKEN_NAME,
|
|
21
26
|
tokenAddress,
|
|
27
|
+
recipientAddress: recipientWallet.getAddress(),
|
|
22
28
|
recipientWallet
|
|
23
29
|
};
|
|
24
30
|
}
|
|
31
|
+
export async function deploySponsoredTestWallets(pxe, mintAmount, logger, numberOfFundedWallets = 1) {
|
|
32
|
+
const [recipient, ...funded] = await generateSchnorrAccounts(numberOfFundedWallets + 1);
|
|
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({
|
|
40
|
+
fee: {
|
|
41
|
+
paymentMethod
|
|
42
|
+
}
|
|
43
|
+
}).wait({
|
|
44
|
+
timeout: 2400
|
|
45
|
+
}); // increase timeout on purpose in order to account for two empty epochs
|
|
46
|
+
logger.info(`Account deployed at ${a.getAddress()}`);
|
|
47
|
+
return wallet;
|
|
48
|
+
}));
|
|
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);
|
|
52
|
+
return {
|
|
53
|
+
pxe,
|
|
54
|
+
wallets,
|
|
55
|
+
tokenAdminAddress: tokenAdmin.getAddress(),
|
|
56
|
+
tokenAdminWallet,
|
|
57
|
+
tokenName: TOKEN_NAME,
|
|
58
|
+
tokenAddress,
|
|
59
|
+
recipientWallet,
|
|
60
|
+
recipientAddress: recipientWallet.getAddress()
|
|
61
|
+
};
|
|
62
|
+
}
|
|
25
63
|
export async function deployTestWalletWithTokens(pxeUrl, nodeUrl, l1RpcUrls, mnemonicOrPrivateKey, mintAmount, logger, numberOfFundedWallets = 1) {
|
|
26
64
|
const pxe = await createCompatibleClient(pxeUrl, logger);
|
|
27
65
|
const node = createAztecNodeClient(nodeUrl);
|
|
@@ -45,15 +83,17 @@ export async function deployTestWalletWithTokens(pxeUrl, nodeUrl, l1RpcUrls, mne
|
|
|
45
83
|
return wallet;
|
|
46
84
|
}));
|
|
47
85
|
const tokenAdmin = wallets[0];
|
|
48
|
-
const tokenAddress = await deployTokenAndMint(wallets, tokenAdmin.getAddress(), mintAmount, logger);
|
|
86
|
+
const tokenAddress = await deployTokenAndMint(wallets, tokenAdmin.getAddress(), mintAmount, undefined, logger);
|
|
49
87
|
const tokenAdminWallet = await TokenContract.at(tokenAddress, tokenAdmin);
|
|
50
88
|
return {
|
|
51
89
|
pxe,
|
|
52
90
|
wallets,
|
|
91
|
+
tokenAdminAddress: tokenAdmin.getAddress(),
|
|
53
92
|
tokenAdminWallet,
|
|
54
93
|
tokenName: TOKEN_NAME,
|
|
55
94
|
tokenAddress,
|
|
56
|
-
recipientWallet
|
|
95
|
+
recipientWallet,
|
|
96
|
+
recipientAddress: recipientWallet.getAddress()
|
|
57
97
|
};
|
|
58
98
|
}
|
|
59
99
|
async function bridgeL1FeeJuice(l1RpcUrls, mnemonicOrPrivateKey, pxe, recipient, amount, log) {
|
|
@@ -71,17 +111,38 @@ async function bridgeL1FeeJuice(l1RpcUrls, mnemonicOrPrivateKey, pxe, recipient,
|
|
|
71
111
|
}
|
|
72
112
|
async function advanceL2Block(node, nodeAdmin) {
|
|
73
113
|
const initialBlockNumber = await node.getBlockNumber();
|
|
74
|
-
|
|
114
|
+
let minTxsPerBlock = undefined;
|
|
115
|
+
if (nodeAdmin) {
|
|
116
|
+
({ minTxsPerBlock } = await nodeAdmin.getConfig());
|
|
117
|
+
await nodeAdmin.setConfig({
|
|
118
|
+
minTxsPerBlock: 0
|
|
119
|
+
}); // Set to 0 to ensure we can advance the block
|
|
120
|
+
}
|
|
75
121
|
await retryUntil(async ()=>await node.getBlockNumber() >= initialBlockNumber + 1);
|
|
122
|
+
if (nodeAdmin && minTxsPerBlock !== undefined) {
|
|
123
|
+
await nodeAdmin.setConfig({
|
|
124
|
+
minTxsPerBlock
|
|
125
|
+
});
|
|
126
|
+
}
|
|
76
127
|
}
|
|
77
|
-
async function deployTokenAndMint(wallets, admin, mintAmount, logger) {
|
|
128
|
+
async function deployTokenAndMint(wallets, admin, mintAmount, paymentMethod, logger) {
|
|
78
129
|
logger.verbose(`Deploying TokenContract...`);
|
|
79
|
-
const tokenContract = await TokenContract.deploy(wallets[0], admin, TOKEN_NAME, TOKEN_SYMBOL, TOKEN_DECIMALS).send(
|
|
130
|
+
const tokenContract = await TokenContract.deploy(wallets[0], admin, TOKEN_NAME, TOKEN_SYMBOL, TOKEN_DECIMALS).send({
|
|
131
|
+
from: admin,
|
|
132
|
+
fee: {
|
|
133
|
+
paymentMethod
|
|
134
|
+
}
|
|
135
|
+
}).deployed({
|
|
80
136
|
timeout: 600
|
|
81
137
|
});
|
|
82
138
|
const tokenAddress = tokenContract.address;
|
|
83
139
|
logger.verbose(`Minting ${mintAmount} public assets to the ${wallets.length} wallets...`);
|
|
84
|
-
await Promise.all(wallets.map(async (w)=>(await TokenContract.at(tokenAddress, w)).methods.mint_to_public(w.getAddress(), mintAmount).send(
|
|
140
|
+
await Promise.all(wallets.map(async (w)=>(await TokenContract.at(tokenAddress, w)).methods.mint_to_public(w.getAddress(), mintAmount).send({
|
|
141
|
+
from: admin,
|
|
142
|
+
fee: {
|
|
143
|
+
paymentMethod
|
|
144
|
+
}
|
|
145
|
+
}).wait({
|
|
85
146
|
timeout: 600
|
|
86
147
|
})));
|
|
87
148
|
logger.verbose(`Minting complete.`);
|
|
@@ -90,11 +151,35 @@ async function deployTokenAndMint(wallets, admin, mintAmount, logger) {
|
|
|
90
151
|
export async function performTransfers({ testWallets, rounds, transferAmount, logger }) {
|
|
91
152
|
const recipient = testWallets.recipientWallet.getAddress();
|
|
92
153
|
for(let i = 0; i < rounds; i++){
|
|
93
|
-
const
|
|
94
|
-
|
|
95
|
-
|
|
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
|
+
}));
|
|
157
|
+
const provenTxs = await Promise.all(txs);
|
|
158
|
+
await Promise.all(provenTxs.map((t)=>t.send().wait({
|
|
96
159
|
timeout: 600
|
|
97
160
|
})));
|
|
98
161
|
logger.info(`Completed round ${i + 1} / ${rounds}`);
|
|
99
162
|
}
|
|
100
163
|
}
|
|
164
|
+
export async function startCompatiblePXE(nodeUrl, proverEnabled, logger) {
|
|
165
|
+
const node = createAztecNodeClient(nodeUrl);
|
|
166
|
+
const [bbConfig, acvmConfig] = await Promise.all([
|
|
167
|
+
getBBConfig(logger),
|
|
168
|
+
getACVMConfig(logger)
|
|
169
|
+
]);
|
|
170
|
+
const pxe = await createPXEService(node, {
|
|
171
|
+
dataDirectory: undefined,
|
|
172
|
+
dataStoreMapSizeKB: 1024 * 1024,
|
|
173
|
+
...bbConfig,
|
|
174
|
+
...acvmConfig,
|
|
175
|
+
proverEnabled
|
|
176
|
+
});
|
|
177
|
+
return {
|
|
178
|
+
pxe,
|
|
179
|
+
async cleanup () {
|
|
180
|
+
await pxe.stop();
|
|
181
|
+
await bbConfig?.cleanup();
|
|
182
|
+
await acvmConfig?.cleanup();
|
|
183
|
+
}
|
|
184
|
+
};
|
|
185
|
+
}
|
package/dest/spartan/utils.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RollupCheatCodes } from '@aztec/aztec
|
|
1
|
+
import type { RollupCheatCodes } from '@aztec/aztec/testing';
|
|
2
2
|
import type { Logger } from '@aztec/foundation/log';
|
|
3
3
|
import type { SequencerConfig } from '@aztec/sequencer-client';
|
|
4
4
|
import { ChildProcess } from 'child_process';
|
|
@@ -9,6 +9,7 @@ declare const k8sLocalConfigSchema: z.ZodObject<{
|
|
|
9
9
|
AZTEC_SLOT_DURATION: z.ZodNumber;
|
|
10
10
|
AZTEC_EPOCH_DURATION: z.ZodNumber;
|
|
11
11
|
AZTEC_PROOF_SUBMISSION_WINDOW: z.ZodNumber;
|
|
12
|
+
AZTEC_REAL_PROOFS: z.ZodDefault<z.ZodString>;
|
|
12
13
|
INSTANCE_NAME: z.ZodString;
|
|
13
14
|
NAMESPACE: z.ZodString;
|
|
14
15
|
CONTAINER_NODE_PORT: z.ZodDefault<z.ZodNumber>;
|
|
@@ -30,6 +31,7 @@ declare const k8sLocalConfigSchema: z.ZodObject<{
|
|
|
30
31
|
AZTEC_SLOT_DURATION: number;
|
|
31
32
|
AZTEC_EPOCH_DURATION: number;
|
|
32
33
|
AZTEC_PROOF_SUBMISSION_WINDOW: number;
|
|
34
|
+
AZTEC_REAL_PROOFS: string;
|
|
33
35
|
INSTANCE_NAME: string;
|
|
34
36
|
NAMESPACE: string;
|
|
35
37
|
CONTAINER_NODE_PORT: number;
|
|
@@ -56,6 +58,7 @@ declare const k8sLocalConfigSchema: z.ZodObject<{
|
|
|
56
58
|
SPARTAN_DIR: string;
|
|
57
59
|
K8S: "local";
|
|
58
60
|
ETHEREUM_HOSTS?: string | undefined;
|
|
61
|
+
AZTEC_REAL_PROOFS?: string | undefined;
|
|
59
62
|
CONTAINER_NODE_PORT?: number | undefined;
|
|
60
63
|
CONTAINER_NODE_ADMIN_PORT?: number | undefined;
|
|
61
64
|
CONTAINER_SEQUENCER_PORT?: number | undefined;
|
|
@@ -73,6 +76,7 @@ declare const k8sGCloudConfigSchema: z.ZodObject<z.objectUtil.extendShape<{
|
|
|
73
76
|
AZTEC_SLOT_DURATION: z.ZodNumber;
|
|
74
77
|
AZTEC_EPOCH_DURATION: z.ZodNumber;
|
|
75
78
|
AZTEC_PROOF_SUBMISSION_WINDOW: z.ZodNumber;
|
|
79
|
+
AZTEC_REAL_PROOFS: z.ZodDefault<z.ZodString>;
|
|
76
80
|
INSTANCE_NAME: z.ZodString;
|
|
77
81
|
NAMESPACE: z.ZodString;
|
|
78
82
|
CONTAINER_NODE_PORT: z.ZodDefault<z.ZodNumber>;
|
|
@@ -93,11 +97,13 @@ declare const k8sGCloudConfigSchema: z.ZodObject<z.objectUtil.extendShape<{
|
|
|
93
97
|
K8S: z.ZodLiteral<"gcloud">;
|
|
94
98
|
CLUSTER_NAME: z.ZodString;
|
|
95
99
|
REGION: z.ZodString;
|
|
100
|
+
PROJECT_ID: z.ZodString;
|
|
96
101
|
}>, "strip", z.ZodTypeAny, {
|
|
97
102
|
ETHEREUM_SLOT_DURATION: number;
|
|
98
103
|
AZTEC_SLOT_DURATION: number;
|
|
99
104
|
AZTEC_EPOCH_DURATION: number;
|
|
100
105
|
AZTEC_PROOF_SUBMISSION_WINDOW: number;
|
|
106
|
+
AZTEC_REAL_PROOFS: string;
|
|
101
107
|
INSTANCE_NAME: string;
|
|
102
108
|
NAMESPACE: string;
|
|
103
109
|
CONTAINER_NODE_PORT: number;
|
|
@@ -114,6 +120,7 @@ declare const k8sGCloudConfigSchema: z.ZodObject<z.objectUtil.extendShape<{
|
|
|
114
120
|
K8S: "gcloud";
|
|
115
121
|
CLUSTER_NAME: string;
|
|
116
122
|
REGION: string;
|
|
123
|
+
PROJECT_ID: string;
|
|
117
124
|
ETHEREUM_HOSTS?: string | undefined;
|
|
118
125
|
GRAFANA_PASSWORD?: string | undefined;
|
|
119
126
|
}, {
|
|
@@ -127,7 +134,9 @@ declare const k8sGCloudConfigSchema: z.ZodObject<z.objectUtil.extendShape<{
|
|
|
127
134
|
K8S: "gcloud";
|
|
128
135
|
CLUSTER_NAME: string;
|
|
129
136
|
REGION: string;
|
|
137
|
+
PROJECT_ID: string;
|
|
130
138
|
ETHEREUM_HOSTS?: string | undefined;
|
|
139
|
+
AZTEC_REAL_PROOFS?: string | undefined;
|
|
131
140
|
CONTAINER_NODE_PORT?: number | undefined;
|
|
132
141
|
CONTAINER_NODE_ADMIN_PORT?: number | undefined;
|
|
133
142
|
CONTAINER_SEQUENCER_PORT?: number | undefined;
|
|
@@ -164,6 +173,7 @@ declare const envSchema: z.ZodDiscriminatedUnion<"K8S", [z.ZodObject<{
|
|
|
164
173
|
AZTEC_SLOT_DURATION: z.ZodNumber;
|
|
165
174
|
AZTEC_EPOCH_DURATION: z.ZodNumber;
|
|
166
175
|
AZTEC_PROOF_SUBMISSION_WINDOW: z.ZodNumber;
|
|
176
|
+
AZTEC_REAL_PROOFS: z.ZodDefault<z.ZodString>;
|
|
167
177
|
INSTANCE_NAME: z.ZodString;
|
|
168
178
|
NAMESPACE: z.ZodString;
|
|
169
179
|
CONTAINER_NODE_PORT: z.ZodDefault<z.ZodNumber>;
|
|
@@ -185,6 +195,7 @@ declare const envSchema: z.ZodDiscriminatedUnion<"K8S", [z.ZodObject<{
|
|
|
185
195
|
AZTEC_SLOT_DURATION: number;
|
|
186
196
|
AZTEC_EPOCH_DURATION: number;
|
|
187
197
|
AZTEC_PROOF_SUBMISSION_WINDOW: number;
|
|
198
|
+
AZTEC_REAL_PROOFS: string;
|
|
188
199
|
INSTANCE_NAME: string;
|
|
189
200
|
NAMESPACE: string;
|
|
190
201
|
CONTAINER_NODE_PORT: number;
|
|
@@ -211,6 +222,7 @@ declare const envSchema: z.ZodDiscriminatedUnion<"K8S", [z.ZodObject<{
|
|
|
211
222
|
SPARTAN_DIR: string;
|
|
212
223
|
K8S: "local";
|
|
213
224
|
ETHEREUM_HOSTS?: string | undefined;
|
|
225
|
+
AZTEC_REAL_PROOFS?: string | undefined;
|
|
214
226
|
CONTAINER_NODE_PORT?: number | undefined;
|
|
215
227
|
CONTAINER_NODE_ADMIN_PORT?: number | undefined;
|
|
216
228
|
CONTAINER_SEQUENCER_PORT?: number | undefined;
|
|
@@ -227,6 +239,7 @@ declare const envSchema: z.ZodDiscriminatedUnion<"K8S", [z.ZodObject<{
|
|
|
227
239
|
AZTEC_SLOT_DURATION: z.ZodNumber;
|
|
228
240
|
AZTEC_EPOCH_DURATION: z.ZodNumber;
|
|
229
241
|
AZTEC_PROOF_SUBMISSION_WINDOW: z.ZodNumber;
|
|
242
|
+
AZTEC_REAL_PROOFS: z.ZodDefault<z.ZodString>;
|
|
230
243
|
INSTANCE_NAME: z.ZodString;
|
|
231
244
|
NAMESPACE: z.ZodString;
|
|
232
245
|
CONTAINER_NODE_PORT: z.ZodDefault<z.ZodNumber>;
|
|
@@ -247,11 +260,13 @@ declare const envSchema: z.ZodDiscriminatedUnion<"K8S", [z.ZodObject<{
|
|
|
247
260
|
K8S: z.ZodLiteral<"gcloud">;
|
|
248
261
|
CLUSTER_NAME: z.ZodString;
|
|
249
262
|
REGION: z.ZodString;
|
|
263
|
+
PROJECT_ID: z.ZodString;
|
|
250
264
|
}>, "strip", z.ZodTypeAny, {
|
|
251
265
|
ETHEREUM_SLOT_DURATION: number;
|
|
252
266
|
AZTEC_SLOT_DURATION: number;
|
|
253
267
|
AZTEC_EPOCH_DURATION: number;
|
|
254
268
|
AZTEC_PROOF_SUBMISSION_WINDOW: number;
|
|
269
|
+
AZTEC_REAL_PROOFS: string;
|
|
255
270
|
INSTANCE_NAME: string;
|
|
256
271
|
NAMESPACE: string;
|
|
257
272
|
CONTAINER_NODE_PORT: number;
|
|
@@ -268,6 +283,7 @@ declare const envSchema: z.ZodDiscriminatedUnion<"K8S", [z.ZodObject<{
|
|
|
268
283
|
K8S: "gcloud";
|
|
269
284
|
CLUSTER_NAME: string;
|
|
270
285
|
REGION: string;
|
|
286
|
+
PROJECT_ID: string;
|
|
271
287
|
ETHEREUM_HOSTS?: string | undefined;
|
|
272
288
|
GRAFANA_PASSWORD?: string | undefined;
|
|
273
289
|
}, {
|
|
@@ -281,7 +297,9 @@ declare const envSchema: z.ZodDiscriminatedUnion<"K8S", [z.ZodObject<{
|
|
|
281
297
|
K8S: "gcloud";
|
|
282
298
|
CLUSTER_NAME: string;
|
|
283
299
|
REGION: string;
|
|
300
|
+
PROJECT_ID: string;
|
|
284
301
|
ETHEREUM_HOSTS?: string | undefined;
|
|
302
|
+
AZTEC_REAL_PROOFS?: string | undefined;
|
|
285
303
|
CONTAINER_NODE_PORT?: number | undefined;
|
|
286
304
|
CONTAINER_NODE_ADMIN_PORT?: number | undefined;
|
|
287
305
|
CONTAINER_SEQUENCER_PORT?: number | undefined;
|
|
@@ -344,10 +362,11 @@ export declare function deleteResourceByName({ resource, namespace, name, force,
|
|
|
344
362
|
name: string;
|
|
345
363
|
force?: boolean;
|
|
346
364
|
}): Promise<string>;
|
|
347
|
-
export declare function deleteResourceByLabel({ resource, namespace, label, }: {
|
|
365
|
+
export declare function deleteResourceByLabel({ resource, namespace, label, timeout, }: {
|
|
348
366
|
resource: string;
|
|
349
367
|
namespace: string;
|
|
350
368
|
label: string;
|
|
369
|
+
timeout?: string;
|
|
351
370
|
}): Promise<string>;
|
|
352
371
|
export declare function waitForResourceByLabel({ resource, label, namespace, condition, timeout, }: {
|
|
353
372
|
resource: string;
|
|
@@ -407,10 +426,11 @@ export declare function applyBootNodeFailure({ namespace, spartanDir, durationSe
|
|
|
407
426
|
durationSeconds: number;
|
|
408
427
|
logger: Logger;
|
|
409
428
|
}): Promise<string>;
|
|
410
|
-
export declare function applyValidatorKill({ namespace, spartanDir, logger, }: {
|
|
429
|
+
export declare function applyValidatorKill({ namespace, spartanDir, logger, values, }: {
|
|
411
430
|
namespace: string;
|
|
412
431
|
spartanDir: string;
|
|
413
432
|
logger: Logger;
|
|
433
|
+
values?: Record<string, string | number>;
|
|
414
434
|
}): Promise<string>;
|
|
415
435
|
export declare function applyNetworkShaping({ valuesFile, namespace, spartanDir, logger, }: {
|
|
416
436
|
valuesFile: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/spartan/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/spartan/utils.ts"],"names":[],"mappings":"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"}
|
package/dest/spartan/utils.js
CHANGED
|
@@ -21,6 +21,7 @@ const k8sLocalConfigSchema = z.object({
|
|
|
21
21
|
AZTEC_SLOT_DURATION: z.coerce.number().min(1, 'AZTEC_SLOT_DURATION env variable must be set'),
|
|
22
22
|
AZTEC_EPOCH_DURATION: z.coerce.number().min(1, 'AZTEC_EPOCH_DURATION env variable must be set'),
|
|
23
23
|
AZTEC_PROOF_SUBMISSION_WINDOW: z.coerce.number().min(1, 'AZTEC_PROOF_SUBMISSION_WINDOW env variable must be set'),
|
|
24
|
+
AZTEC_REAL_PROOFS: z.string().default('false'),
|
|
24
25
|
INSTANCE_NAME: z.string().min(1, 'INSTANCE_NAME env variable must be set'),
|
|
25
26
|
NAMESPACE: z.string().min(1, 'NAMESPACE env variable must be set'),
|
|
26
27
|
CONTAINER_NODE_PORT: z.coerce.number().default(8080),
|
|
@@ -41,7 +42,8 @@ const k8sLocalConfigSchema = z.object({
|
|
|
41
42
|
const k8sGCloudConfigSchema = k8sLocalConfigSchema.extend({
|
|
42
43
|
K8S: z.literal('gcloud'),
|
|
43
44
|
CLUSTER_NAME: z.string().min(1, 'CLUSTER_NAME env variable must be set'),
|
|
44
|
-
REGION: z.string().min(1, 'REGION env variable must be set')
|
|
45
|
+
REGION: z.string().min(1, 'REGION env variable must be set'),
|
|
46
|
+
PROJECT_ID: z.string().min(1, 'PROJECT_ID env variable must be set')
|
|
45
47
|
});
|
|
46
48
|
const directConfigSchema = z.object({
|
|
47
49
|
PXE_URL: z.string().url('PXE_URL must be a valid URL'),
|
|
@@ -64,7 +66,7 @@ export function isGCloudConfig(config) {
|
|
|
64
66
|
export function setupEnvironment(env) {
|
|
65
67
|
const config = envSchema.parse(env);
|
|
66
68
|
if (isGCloudConfig(config)) {
|
|
67
|
-
const command = `gcloud container clusters get-credentials ${config.CLUSTER_NAME} --region=${config.REGION}`;
|
|
69
|
+
const command = `gcloud container clusters get-credentials ${config.CLUSTER_NAME} --region=${config.REGION} --project=${config.PROJECT_ID}`;
|
|
68
70
|
execSync(command);
|
|
69
71
|
}
|
|
70
72
|
return config;
|
|
@@ -188,8 +190,8 @@ export async function deleteResourceByName({ resource, namespace, name, force =
|
|
|
188
190
|
const { stdout } = await execAsync(command);
|
|
189
191
|
return stdout;
|
|
190
192
|
}
|
|
191
|
-
export async function deleteResourceByLabel({ resource, namespace, label }) {
|
|
192
|
-
const command = `kubectl delete ${resource} -l ${label} -n ${namespace} --ignore-not-found=true --wait=true`;
|
|
193
|
+
export async function deleteResourceByLabel({ resource, namespace, label, timeout = '5m' }) {
|
|
194
|
+
const command = `kubectl delete ${resource} -l ${label} -n ${namespace} --ignore-not-found=true --wait=true --timeout=${timeout}`;
|
|
193
195
|
logger.info(`command: ${command}`);
|
|
194
196
|
const { stdout } = await execAsync(command);
|
|
195
197
|
return stdout;
|
|
@@ -310,13 +312,14 @@ export function applyBootNodeFailure({ namespace, spartanDir, durationSeconds, l
|
|
|
310
312
|
logger
|
|
311
313
|
});
|
|
312
314
|
}
|
|
313
|
-
export function applyValidatorKill({ namespace, spartanDir, logger }) {
|
|
315
|
+
export function applyValidatorKill({ namespace, spartanDir, logger, values }) {
|
|
314
316
|
return installChaosMeshChart({
|
|
315
317
|
instanceName: 'validator-kill',
|
|
316
318
|
targetNamespace: namespace,
|
|
317
319
|
valuesFile: 'validator-kill.yaml',
|
|
318
320
|
helmChartDir: getChartDir(spartanDir, 'aztec-chaos-scenarios'),
|
|
319
|
-
logger
|
|
321
|
+
logger,
|
|
322
|
+
values
|
|
320
323
|
});
|
|
321
324
|
}
|
|
322
325
|
export function applyNetworkShaping({ valuesFile, namespace, spartanDir, logger }) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/end-to-end",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0-nightly.20250813",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": "./dest/index.js",
|
|
6
6
|
"inherits": [
|
|
@@ -25,43 +25,43 @@
|
|
|
25
25
|
"formatting": "run -T prettier --check ./src && run -T eslint ./src"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@aztec/accounts": "
|
|
29
|
-
"@aztec/archiver": "
|
|
30
|
-
"@aztec/aztec": "
|
|
31
|
-
"@aztec/aztec-node": "
|
|
32
|
-
"@aztec/aztec.js": "
|
|
33
|
-
"@aztec/bb-prover": "
|
|
34
|
-
"@aztec/blob-lib": "
|
|
35
|
-
"@aztec/blob-sink": "
|
|
36
|
-
"@aztec/bot": "
|
|
37
|
-
"@aztec/cli": "
|
|
38
|
-
"@aztec/constants": "
|
|
39
|
-
"@aztec/entrypoints": "
|
|
40
|
-
"@aztec/epoch-cache": "
|
|
41
|
-
"@aztec/ethereum": "
|
|
42
|
-
"@aztec/foundation": "
|
|
43
|
-
"@aztec/kv-store": "
|
|
44
|
-
"@aztec/l1-artifacts": "
|
|
45
|
-
"@aztec/merkle-tree": "
|
|
46
|
-
"@aztec/noir-contracts.js": "
|
|
47
|
-
"@aztec/noir-noirc_abi": "
|
|
48
|
-
"@aztec/noir-protocol-circuits-types": "
|
|
49
|
-
"@aztec/noir-test-contracts.js": "
|
|
50
|
-
"@aztec/p2p": "
|
|
51
|
-
"@aztec/protocol-contracts": "
|
|
52
|
-
"@aztec/prover-client": "
|
|
53
|
-
"@aztec/prover-node": "
|
|
54
|
-
"@aztec/pxe": "
|
|
55
|
-
"@aztec/sequencer-client": "
|
|
56
|
-
"@aztec/simulator": "
|
|
57
|
-
"@aztec/slasher": "
|
|
58
|
-
"@aztec/stdlib": "
|
|
59
|
-
"@aztec/telemetry-client": "
|
|
60
|
-
"@aztec/validator-client": "
|
|
61
|
-
"@aztec/world-state": "
|
|
28
|
+
"@aztec/accounts": "2.0.0-nightly.20250813",
|
|
29
|
+
"@aztec/archiver": "2.0.0-nightly.20250813",
|
|
30
|
+
"@aztec/aztec": "2.0.0-nightly.20250813",
|
|
31
|
+
"@aztec/aztec-node": "2.0.0-nightly.20250813",
|
|
32
|
+
"@aztec/aztec.js": "2.0.0-nightly.20250813",
|
|
33
|
+
"@aztec/bb-prover": "2.0.0-nightly.20250813",
|
|
34
|
+
"@aztec/blob-lib": "2.0.0-nightly.20250813",
|
|
35
|
+
"@aztec/blob-sink": "2.0.0-nightly.20250813",
|
|
36
|
+
"@aztec/bot": "2.0.0-nightly.20250813",
|
|
37
|
+
"@aztec/cli": "2.0.0-nightly.20250813",
|
|
38
|
+
"@aztec/constants": "2.0.0-nightly.20250813",
|
|
39
|
+
"@aztec/entrypoints": "2.0.0-nightly.20250813",
|
|
40
|
+
"@aztec/epoch-cache": "2.0.0-nightly.20250813",
|
|
41
|
+
"@aztec/ethereum": "2.0.0-nightly.20250813",
|
|
42
|
+
"@aztec/foundation": "2.0.0-nightly.20250813",
|
|
43
|
+
"@aztec/kv-store": "2.0.0-nightly.20250813",
|
|
44
|
+
"@aztec/l1-artifacts": "2.0.0-nightly.20250813",
|
|
45
|
+
"@aztec/merkle-tree": "2.0.0-nightly.20250813",
|
|
46
|
+
"@aztec/noir-contracts.js": "2.0.0-nightly.20250813",
|
|
47
|
+
"@aztec/noir-noirc_abi": "2.0.0-nightly.20250813",
|
|
48
|
+
"@aztec/noir-protocol-circuits-types": "2.0.0-nightly.20250813",
|
|
49
|
+
"@aztec/noir-test-contracts.js": "2.0.0-nightly.20250813",
|
|
50
|
+
"@aztec/p2p": "2.0.0-nightly.20250813",
|
|
51
|
+
"@aztec/protocol-contracts": "2.0.0-nightly.20250813",
|
|
52
|
+
"@aztec/prover-client": "2.0.0-nightly.20250813",
|
|
53
|
+
"@aztec/prover-node": "2.0.0-nightly.20250813",
|
|
54
|
+
"@aztec/pxe": "2.0.0-nightly.20250813",
|
|
55
|
+
"@aztec/sequencer-client": "2.0.0-nightly.20250813",
|
|
56
|
+
"@aztec/simulator": "2.0.0-nightly.20250813",
|
|
57
|
+
"@aztec/slasher": "2.0.0-nightly.20250813",
|
|
58
|
+
"@aztec/stdlib": "2.0.0-nightly.20250813",
|
|
59
|
+
"@aztec/telemetry-client": "2.0.0-nightly.20250813",
|
|
60
|
+
"@aztec/validator-client": "2.0.0-nightly.20250813",
|
|
61
|
+
"@aztec/world-state": "2.0.0-nightly.20250813",
|
|
62
62
|
"@iarna/toml": "^2.2.5",
|
|
63
63
|
"@jest/globals": "^30.0.0",
|
|
64
|
-
"@noble/curves": "
|
|
64
|
+
"@noble/curves": "=1.0.0",
|
|
65
65
|
"@swc/core": "^1.4.11",
|
|
66
66
|
"@swc/jest": "^0.2.36",
|
|
67
67
|
"@types/fs-extra": "^11.0.2",
|
|
@@ -36,7 +36,8 @@ const GATE_TYPES = [
|
|
|
36
36
|
'arithmetic',
|
|
37
37
|
'delta_range',
|
|
38
38
|
'elliptic',
|
|
39
|
-
'
|
|
39
|
+
'memory',
|
|
40
|
+
'nnf',
|
|
40
41
|
'poseidon2_external',
|
|
41
42
|
'poseidon2_internal',
|
|
42
43
|
'overflow',
|
|
@@ -126,9 +127,13 @@ type ClientFlowBenchmark = {
|
|
|
126
127
|
};
|
|
127
128
|
|
|
128
129
|
function getMinimumTrace(logs: Log[]): StructuredTrace {
|
|
130
|
+
const LOG_MESSAGE_CANDIDATE_PADDING = 5;
|
|
129
131
|
const minimumMessage = 'Minimum required block sizes for structured trace';
|
|
130
132
|
const minimumMessageIndex = logs.findIndex(log => log.message.includes(minimumMessage));
|
|
131
|
-
const candidateLogs = logs.slice(
|
|
133
|
+
const candidateLogs = logs.slice(
|
|
134
|
+
minimumMessageIndex - GATE_TYPES.length,
|
|
135
|
+
minimumMessageIndex + LOG_MESSAGE_CANDIDATE_PADDING,
|
|
136
|
+
);
|
|
132
137
|
|
|
133
138
|
const traceLogs = candidateLogs
|
|
134
139
|
.filter(log => GATE_TYPES.some(type => log.message.includes(type)))
|
|
@@ -296,7 +301,7 @@ export function convertProfileToGHBenchmark(benchmark: ClientFlowBenchmark): Git
|
|
|
296
301
|
export async function captureProfile(
|
|
297
302
|
label: string,
|
|
298
303
|
interaction: ContractFunctionInteraction | DeployMethod,
|
|
299
|
-
opts
|
|
304
|
+
opts: Omit<ProfileMethodOptions & DeployOptions, 'profileMode'>,
|
|
300
305
|
expectedSteps?: number,
|
|
301
306
|
) {
|
|
302
307
|
// Make sure the proxy logger starts from a clean slate
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
type Wallet,
|
|
16
16
|
createLogger,
|
|
17
17
|
} from '@aztec/aztec.js';
|
|
18
|
-
import { CheatCodes } from '@aztec/aztec
|
|
18
|
+
import { CheatCodes } from '@aztec/aztec/testing';
|
|
19
19
|
import { FEE_FUNDING_FOR_TESTER_ACCOUNT } from '@aztec/constants';
|
|
20
20
|
import { type DeployL1ContractsArgs, RollupContract, createExtendedL1Client, deployL1Contract } from '@aztec/ethereum';
|
|
21
21
|
import { ChainMonitor } from '@aztec/ethereum/test';
|
|
@@ -145,7 +145,7 @@ export class ClientFlowsBenchmark {
|
|
|
145
145
|
await context.aztecNode.setConfig({ feeRecipient: this.sequencerAddress, coinbase: this.coinbase });
|
|
146
146
|
|
|
147
147
|
const rollupContract = RollupContract.getFromConfig(context.aztecNodeConfig);
|
|
148
|
-
this.chainMonitor = new ChainMonitor(rollupContract, this.logger, 200).start();
|
|
148
|
+
this.chainMonitor = new ChainMonitor(rollupContract, context.dateProvider, this.logger, 200).start();
|
|
149
149
|
|
|
150
150
|
return this;
|
|
151
151
|
}
|
|
@@ -158,16 +158,20 @@ export class ClientFlowsBenchmark {
|
|
|
158
158
|
async mintAndBridgeFeeJuice(address: AztecAddress, amount: bigint) {
|
|
159
159
|
const claim = await this.feeJuiceBridgeTestHarness.prepareTokensOnL1(amount, address);
|
|
160
160
|
const { claimSecret: secret, messageLeafIndex: index } = claim;
|
|
161
|
-
await this.feeJuiceContract.methods.claim(address, amount, secret, index).send().wait();
|
|
161
|
+
await this.feeJuiceContract.methods.claim(address, amount, secret, index).send({ from: this.adminAddress }).wait();
|
|
162
162
|
}
|
|
163
163
|
|
|
164
164
|
/** Admin mints bananaCoin tokens privately to the target address and redeems them. */
|
|
165
165
|
async mintPrivateBananas(amount: bigint, address: AztecAddress) {
|
|
166
|
-
const balanceBefore = await this.bananaCoin.methods
|
|
166
|
+
const balanceBefore = await this.bananaCoin.methods
|
|
167
|
+
.balance_of_private(address)
|
|
168
|
+
.simulate({ from: this.adminAddress });
|
|
167
169
|
|
|
168
|
-
await mintTokensToPrivate(this.bananaCoin, this.adminWallet, address, amount);
|
|
170
|
+
await mintTokensToPrivate(this.bananaCoin, this.adminAddress, this.adminWallet, address, amount);
|
|
169
171
|
|
|
170
|
-
const balanceAfter = await this.bananaCoin.methods
|
|
172
|
+
const balanceAfter = await this.bananaCoin.methods
|
|
173
|
+
.balance_of_private(address)
|
|
174
|
+
.simulate({ from: this.adminAddress });
|
|
171
175
|
expect(balanceAfter).toEqual(balanceBefore + amount);
|
|
172
176
|
}
|
|
173
177
|
|
|
@@ -259,7 +263,7 @@ export class ClientFlowsBenchmark {
|
|
|
259
263
|
'deploy_banana_token',
|
|
260
264
|
async () => {
|
|
261
265
|
const bananaCoin = await BananaCoin.deploy(this.adminWallet, this.adminAddress, 'BC', 'BC', 18n)
|
|
262
|
-
.send()
|
|
266
|
+
.send({ from: this.adminAddress })
|
|
263
267
|
.deployed();
|
|
264
268
|
this.logger.info(`BananaCoin deployed at ${bananaCoin.address}`);
|
|
265
269
|
return { bananaCoinAddress: bananaCoin.address };
|
|
@@ -275,7 +279,7 @@ export class ClientFlowsBenchmark {
|
|
|
275
279
|
'deploy_candy_bar_token',
|
|
276
280
|
async () => {
|
|
277
281
|
const candyBarCoin = await TokenContract.deploy(this.adminWallet, this.adminAddress, 'CBC', 'CBC', 18n)
|
|
278
|
-
.send()
|
|
282
|
+
.send({ from: this.adminAddress })
|
|
279
283
|
.deployed();
|
|
280
284
|
this.logger.info(`CandyBarCoin deployed at ${candyBarCoin.address}`);
|
|
281
285
|
return { candyBarCoinAddress: candyBarCoin.address };
|
|
@@ -291,16 +295,20 @@ export class ClientFlowsBenchmark {
|
|
|
291
295
|
'fpc_setup',
|
|
292
296
|
async context => {
|
|
293
297
|
const feeJuiceContract = this.feeJuiceBridgeTestHarness.feeJuice;
|
|
294
|
-
expect((await context.pxe.getContractMetadata(feeJuiceContract.address)).
|
|
298
|
+
expect((await context.pxe.getContractMetadata(feeJuiceContract.address)).isContractPublished).toBe(true);
|
|
295
299
|
|
|
296
300
|
const bananaCoin = this.bananaCoin;
|
|
297
301
|
const bananaFPC = await FPCContract.deploy(this.adminWallet, bananaCoin.address, this.adminAddress)
|
|
298
|
-
.send()
|
|
302
|
+
.send({ from: this.adminAddress })
|
|
299
303
|
.deployed();
|
|
300
304
|
|
|
301
305
|
this.logger.info(`BananaPay deployed at ${bananaFPC.address}`);
|
|
302
306
|
|
|
303
|
-
await this.feeJuiceBridgeTestHarness.bridgeFromL1ToL2(
|
|
307
|
+
await this.feeJuiceBridgeTestHarness.bridgeFromL1ToL2(
|
|
308
|
+
FEE_FUNDING_FOR_TESTER_ACCOUNT,
|
|
309
|
+
bananaFPC.address,
|
|
310
|
+
this.adminAddress,
|
|
311
|
+
);
|
|
304
312
|
|
|
305
313
|
return { bananaFPCAddress: bananaFPC.address };
|
|
306
314
|
},
|
|
@@ -339,6 +347,7 @@ export class ClientFlowsBenchmark {
|
|
|
339
347
|
this.pxe,
|
|
340
348
|
l1Client,
|
|
341
349
|
owner,
|
|
350
|
+
owner.getAddress(),
|
|
342
351
|
this.logger,
|
|
343
352
|
underlyingERC20Address,
|
|
344
353
|
);
|
|
@@ -378,7 +387,7 @@ export class ClientFlowsBenchmark {
|
|
|
378
387
|
'deploy_amm',
|
|
379
388
|
async () => {
|
|
380
389
|
const liquidityToken = await TokenContract.deploy(this.adminWallet, this.adminAddress, 'LPT', 'LPT', 18n)
|
|
381
|
-
.send()
|
|
390
|
+
.send({ from: this.adminAddress })
|
|
382
391
|
.deployed();
|
|
383
392
|
const amm = await AMMContract.deploy(
|
|
384
393
|
this.adminWallet,
|
|
@@ -386,10 +395,10 @@ export class ClientFlowsBenchmark {
|
|
|
386
395
|
this.candyBarCoin.address,
|
|
387
396
|
liquidityToken.address,
|
|
388
397
|
)
|
|
389
|
-
.send()
|
|
398
|
+
.send({ from: this.adminAddress })
|
|
390
399
|
.deployed();
|
|
391
400
|
this.logger.info(`AMM deployed at ${amm.address}`);
|
|
392
|
-
await liquidityToken.methods.set_minter(amm.address, true).send().wait();
|
|
401
|
+
await liquidityToken.methods.set_minter(amm.address, true).send({ from: this.adminAddress }).wait();
|
|
393
402
|
return { ammAddress: amm.address, liquidityTokenAddress: liquidityToken.address };
|
|
394
403
|
},
|
|
395
404
|
async ({ ammAddress, liquidityTokenAddress }) => {
|