@aztec/end-to-end 0.0.1-commit.6d3c34e → 0.0.1-commit.7035c9bd6
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 +3 -2
- package/dest/bench/client_flows/benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/benchmark.js +21 -1
- package/dest/bench/client_flows/client_flows_benchmark.d.ts +13 -14
- package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/client_flows_benchmark.js +130 -137
- package/dest/bench/client_flows/config.d.ts +2 -2
- package/dest/bench/client_flows/config.d.ts.map +1 -1
- package/dest/bench/client_flows/config.js +18 -0
- package/dest/bench/utils.d.ts +6 -5
- package/dest/bench/utils.d.ts.map +1 -1
- package/dest/bench/utils.js +13 -8
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +9 -8
- 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 +107 -113
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +7 -8
- 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 +68 -64
- package/dest/e2e_deploy_contract/deploy_test.d.ts +5 -4
- package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
- package/dest/e2e_deploy_contract/deploy_test.js +18 -13
- package/dest/e2e_epochs/epochs_test.d.ts +17 -7
- package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.js +90 -40
- package/dest/e2e_fees/bridging_race.notest.js +3 -5
- package/dest/e2e_fees/fees_test.d.ts +14 -14
- package/dest/e2e_fees/fees_test.d.ts.map +1 -1
- package/dest/e2e_fees/fees_test.js +133 -144
- package/dest/e2e_l1_publisher/write_json.d.ts +4 -3
- package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -1
- package/dest/e2e_l1_publisher/write_json.js +14 -13
- package/dest/e2e_nested_contract/nested_contract_test.d.ts +6 -9
- package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
- package/dest/e2e_nested_contract/nested_contract_test.js +30 -40
- package/dest/e2e_p2p/inactivity_slash_test.d.ts +3 -3
- package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -1
- package/dest/e2e_p2p/inactivity_slash_test.js +3 -3
- package/dest/e2e_p2p/p2p_network.d.ts +11 -9
- package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
- package/dest/e2e_p2p/p2p_network.js +132 -108
- package/dest/e2e_p2p/reqresp/utils.d.ts +22 -0
- package/dest/e2e_p2p/reqresp/utils.d.ts.map +1 -0
- package/dest/e2e_p2p/reqresp/utils.js +190 -0
- package/dest/e2e_p2p/shared.d.ts +26 -6
- package/dest/e2e_p2p/shared.d.ts.map +1 -1
- package/dest/e2e_p2p/shared.js +46 -18
- package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts +2 -0
- package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts.map +1 -0
- package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.js +184 -0
- package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts +18 -0
- package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts.map +1 -0
- package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.js +120 -0
- package/dest/e2e_token_contract/token_contract_test.d.ts +19 -10
- package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
- package/dest/e2e_token_contract/token_contract_test.js +100 -92
- package/dest/fixtures/authwit_proxy.d.ts +15 -0
- package/dest/fixtures/authwit_proxy.d.ts.map +1 -0
- package/dest/fixtures/authwit_proxy.js +30 -0
- package/dest/fixtures/e2e_prover_test.d.ts +11 -17
- package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
- package/dest/fixtures/e2e_prover_test.js +112 -127
- package/dest/fixtures/elu_monitor.d.ts +21 -0
- package/dest/fixtures/elu_monitor.d.ts.map +1 -0
- package/dest/fixtures/elu_monitor.js +102 -0
- package/dest/fixtures/fixtures.d.ts +5 -1
- package/dest/fixtures/fixtures.d.ts.map +1 -1
- package/dest/fixtures/fixtures.js +6 -0
- package/dest/fixtures/ha_setup.d.ts +71 -0
- package/dest/fixtures/ha_setup.d.ts.map +1 -0
- package/dest/fixtures/ha_setup.js +116 -0
- package/dest/fixtures/index.d.ts +2 -1
- package/dest/fixtures/index.d.ts.map +1 -1
- package/dest/fixtures/index.js +1 -0
- package/dest/fixtures/setup.d.ts +239 -0
- package/dest/fixtures/setup.d.ts.map +1 -0
- package/dest/fixtures/setup.js +606 -0
- package/dest/fixtures/setup_p2p_test.d.ts +16 -9
- package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
- package/dest/fixtures/setup_p2p_test.js +40 -29
- package/dest/fixtures/token_utils.d.ts +2 -2
- package/dest/fixtures/token_utils.d.ts.map +1 -1
- package/dest/fixtures/token_utils.js +12 -8
- package/dest/fixtures/utils.d.ts +5 -191
- package/dest/fixtures/utils.d.ts.map +1 -1
- package/dest/fixtures/utils.js +4 -615
- package/dest/quality_of_service/prometheus_client.d.ts +38 -0
- package/dest/quality_of_service/prometheus_client.d.ts.map +1 -0
- package/dest/quality_of_service/prometheus_client.js +67 -0
- package/dest/shared/cross_chain_test_harness.d.ts +14 -4
- package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.js +24 -24
- package/dest/shared/gas_portal_test_harness.d.ts +11 -1
- package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
- package/dest/shared/gas_portal_test_harness.js +3 -3
- package/dest/shared/index.d.ts +2 -1
- package/dest/shared/index.d.ts.map +1 -1
- package/dest/shared/index.js +1 -0
- package/dest/shared/jest_setup.js +41 -1
- package/dest/shared/mock_state_view.d.ts +86 -0
- package/dest/shared/mock_state_view.d.ts.map +1 -0
- package/dest/shared/mock_state_view.js +186 -0
- package/dest/shared/submit-transactions.d.ts +4 -4
- package/dest/shared/submit-transactions.d.ts.map +1 -1
- package/dest/shared/submit-transactions.js +9 -11
- 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 +27 -28
- package/dest/simulators/lending_simulator.d.ts +5 -1
- package/dest/simulators/lending_simulator.d.ts.map +1 -1
- package/dest/simulators/lending_simulator.js +4 -4
- package/dest/simulators/token_simulator.d.ts +1 -1
- package/dest/simulators/token_simulator.d.ts.map +1 -1
- package/dest/simulators/token_simulator.js +3 -24
- package/dest/spartan/setup_test_wallets.d.ts +12 -3
- package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.js +107 -37
- package/dest/spartan/tx_metrics.d.ts +51 -2
- package/dest/spartan/tx_metrics.d.ts.map +1 -1
- package/dest/spartan/tx_metrics.js +334 -7
- package/dest/spartan/utils/bot.d.ts +28 -0
- package/dest/spartan/utils/bot.d.ts.map +1 -0
- package/dest/spartan/utils/bot.js +142 -0
- package/dest/spartan/utils/chaos.d.ts +79 -0
- package/dest/spartan/utils/chaos.d.ts.map +1 -0
- package/dest/spartan/utils/chaos.js +142 -0
- package/dest/spartan/utils/clients.d.ts +39 -0
- package/dest/spartan/utils/clients.d.ts.map +1 -0
- package/dest/spartan/utils/clients.js +90 -0
- package/dest/spartan/utils/config.d.ts +45 -0
- package/dest/spartan/utils/config.d.ts.map +1 -0
- package/dest/spartan/utils/config.js +23 -0
- package/dest/spartan/utils/health.d.ts +63 -0
- package/dest/spartan/utils/health.d.ts.map +1 -0
- package/dest/spartan/utils/health.js +202 -0
- package/dest/spartan/utils/helm.d.ts +15 -0
- package/dest/spartan/utils/helm.d.ts.map +1 -0
- package/dest/spartan/utils/helm.js +47 -0
- package/dest/spartan/utils/index.d.ts +11 -0
- package/dest/spartan/utils/index.d.ts.map +1 -0
- package/dest/spartan/utils/index.js +22 -0
- package/dest/spartan/utils/k8s.d.ts +128 -0
- package/dest/spartan/utils/k8s.d.ts.map +1 -0
- package/dest/spartan/utils/k8s.js +381 -0
- package/dest/spartan/utils/nodes.d.ts +40 -0
- package/dest/spartan/utils/nodes.d.ts.map +1 -0
- package/dest/spartan/utils/nodes.js +461 -0
- package/dest/spartan/utils/pod_logs.d.ts +25 -0
- package/dest/spartan/utils/pod_logs.d.ts.map +1 -0
- package/dest/spartan/utils/pod_logs.js +74 -0
- package/dest/spartan/utils/scripts.d.ts +30 -0
- package/dest/spartan/utils/scripts.d.ts.map +1 -0
- package/dest/spartan/utils/scripts.js +81 -0
- package/dest/spartan/utils.d.ts +2 -253
- package/dest/spartan/utils.d.ts.map +1 -1
- package/dest/spartan/utils.js +1 -892
- package/dest/test-wallet/test_wallet.d.ts +76 -0
- package/dest/test-wallet/test_wallet.d.ts.map +1 -0
- package/dest/test-wallet/test_wallet.js +214 -0
- package/dest/test-wallet/utils.d.ts +41 -0
- package/dest/test-wallet/utils.d.ts.map +1 -0
- package/dest/test-wallet/utils.js +71 -0
- package/dest/test-wallet/wallet_worker_script.d.ts +2 -0
- package/dest/test-wallet/wallet_worker_script.d.ts.map +1 -0
- package/dest/test-wallet/wallet_worker_script.js +48 -0
- package/dest/test-wallet/worker_wallet.d.ts +52 -0
- package/dest/test-wallet/worker_wallet.d.ts.map +1 -0
- package/dest/test-wallet/worker_wallet.js +151 -0
- package/dest/test-wallet/worker_wallet_schema.d.ts +274 -0
- package/dest/test-wallet/worker_wallet_schema.d.ts.map +1 -0
- package/dest/test-wallet/worker_wallet_schema.js +10 -0
- package/package.json +46 -43
- package/src/bench/client_flows/benchmark.ts +24 -2
- package/src/bench/client_flows/client_flows_benchmark.ts +148 -210
- package/src/bench/client_flows/config.ts +9 -1
- package/src/bench/utils.ts +15 -8
- package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +120 -145
- package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +103 -111
- package/src/e2e_deploy_contract/deploy_test.ts +22 -15
- package/src/e2e_epochs/epochs_test.ts +139 -91
- package/src/e2e_fees/bridging_race.notest.ts +4 -10
- package/src/e2e_fees/fees_test.ts +170 -224
- package/src/e2e_l1_publisher/write_json.ts +16 -13
- package/src/e2e_nested_contract/nested_contract_test.ts +35 -56
- package/src/e2e_p2p/inactivity_slash_test.ts +3 -3
- package/src/e2e_p2p/p2p_network.ts +196 -166
- package/src/e2e_p2p/reqresp/utils.ts +256 -0
- package/src/e2e_p2p/shared.ts +76 -23
- package/src/e2e_storage_proof/fixtures/storage_proof.json +915 -0
- package/src/e2e_storage_proof/fixtures/storage_proof_fetcher.ts +190 -0
- package/src/e2e_storage_proof/fixtures/storage_proof_fixture.ts +173 -0
- package/src/e2e_token_contract/token_contract_test.ts +121 -119
- package/src/fixtures/authwit_proxy.ts +50 -0
- package/src/fixtures/dumps/epoch_proof_result.json +1 -1
- package/src/fixtures/e2e_prover_test.ts +133 -171
- package/src/fixtures/elu_monitor.ts +126 -0
- package/src/fixtures/fixtures.ts +10 -0
- package/src/fixtures/ha_setup.ts +186 -0
- package/src/fixtures/index.ts +1 -0
- package/src/fixtures/setup.ts +903 -0
- package/src/fixtures/setup_p2p_test.ts +40 -44
- package/src/fixtures/token_utils.ts +10 -6
- package/src/fixtures/utils.ts +27 -901
- package/src/guides/up_quick_start.sh +3 -3
- package/src/quality_of_service/prometheus_client.ts +113 -0
- package/src/shared/cross_chain_test_harness.ts +24 -34
- package/src/shared/gas_portal_test_harness.ts +2 -2
- package/src/shared/index.ts +1 -0
- package/src/shared/jest_setup.ts +51 -1
- package/src/shared/mock_state_view.ts +188 -0
- package/src/shared/submit-transactions.ts +11 -16
- package/src/shared/uniswap_l1_l2.ts +49 -51
- package/src/simulators/lending_simulator.ts +6 -4
- package/src/simulators/token_simulator.ts +6 -30
- package/src/spartan/setup_test_wallets.ts +158 -25
- package/src/spartan/tx_metrics.ts +256 -10
- package/src/spartan/utils/bot.ts +188 -0
- package/src/spartan/utils/chaos.ts +253 -0
- package/src/spartan/utils/clients.ts +100 -0
- package/src/spartan/utils/config.ts +29 -0
- package/src/spartan/utils/health.ts +255 -0
- package/src/spartan/utils/helm.ts +84 -0
- package/src/spartan/utils/index.ts +71 -0
- package/src/spartan/utils/k8s.ts +535 -0
- package/src/spartan/utils/nodes.ts +543 -0
- package/src/spartan/utils/pod_logs.ts +99 -0
- package/src/spartan/utils/scripts.ts +99 -0
- package/src/spartan/utils.ts +1 -1158
- package/src/test-wallet/test_wallet.ts +294 -0
- package/src/test-wallet/utils.ts +112 -0
- package/src/test-wallet/wallet_worker_script.ts +60 -0
- package/src/test-wallet/worker_wallet.ts +213 -0
- package/src/test-wallet/worker_wallet_schema.ts +13 -0
- package/dest/fixtures/snapshot_manager.d.ts +0 -93
- package/dest/fixtures/snapshot_manager.d.ts.map +0 -1
- package/dest/fixtures/snapshot_manager.js +0 -488
- package/src/fixtures/snapshot_manager.ts +0 -646
|
@@ -11,18 +11,18 @@ import type { DeployAztecL1ContractsReturnType } from '@aztec/ethereum/deploy-az
|
|
|
11
11
|
import { deployL1Contract } from '@aztec/ethereum/deploy-l1-contract';
|
|
12
12
|
import type { ExtendedViemWalletClient } from '@aztec/ethereum/types';
|
|
13
13
|
import { extractEvent } from '@aztec/ethereum/utils';
|
|
14
|
-
import {
|
|
14
|
+
import { EpochNumber } from '@aztec/foundation/branded-types';
|
|
15
15
|
import { sha256ToField } from '@aztec/foundation/crypto/sha256';
|
|
16
16
|
import { InboxAbi, UniswapPortalAbi, UniswapPortalBytecode } from '@aztec/l1-artifacts';
|
|
17
17
|
import { UniswapContract } from '@aztec/noir-contracts.js/Uniswap';
|
|
18
18
|
import { computeL2ToL1MessageHash } from '@aztec/stdlib/hash';
|
|
19
19
|
import { computeL2ToL1MembershipWitness } from '@aztec/stdlib/messaging';
|
|
20
|
-
import type { TestWallet } from '@aztec/test-wallet/server';
|
|
21
20
|
|
|
22
21
|
import { jest } from '@jest/globals';
|
|
23
22
|
import { type GetContractReturnType, getContract, parseEther, toFunctionSelector } from 'viem';
|
|
24
23
|
|
|
25
24
|
import { type EndToEndContext, ensureAccountContractsPublished } from '../fixtures/utils.js';
|
|
25
|
+
import type { TestWallet } from '../test-wallet/test_wallet.js';
|
|
26
26
|
import { CrossChainTestHarness } from './cross_chain_test_harness.js';
|
|
27
27
|
|
|
28
28
|
// PSA: This tests works on forked mainnet. There is a dump of the data in `dumpedState` such that we
|
|
@@ -84,7 +84,7 @@ export const uniswapL1L2TestSuite = (
|
|
|
84
84
|
|
|
85
85
|
l1Client = deployL1ContractsValues.l1Client;
|
|
86
86
|
|
|
87
|
-
t.watcher
|
|
87
|
+
t.watcher.setIsMarkingAsProven(false);
|
|
88
88
|
|
|
89
89
|
if (Number(await l1Client.getBlockNumber()) < expectedForkBlockNumber) {
|
|
90
90
|
throw new Error('This test must be run on a fork of mainnet with the expected fork block');
|
|
@@ -130,9 +130,9 @@ export const uniswapL1L2TestSuite = (
|
|
|
130
130
|
client: l1Client,
|
|
131
131
|
});
|
|
132
132
|
// deploy l2 uniswap contract and attach to portal
|
|
133
|
-
uniswapL2Contract = await UniswapContract.deploy(wallet, uniswapPortalAddress)
|
|
134
|
-
|
|
135
|
-
|
|
133
|
+
({ contract: uniswapL2Contract } = await UniswapContract.deploy(wallet, uniswapPortalAddress).send({
|
|
134
|
+
from: ownerAddress,
|
|
135
|
+
}));
|
|
136
136
|
|
|
137
137
|
const registryAddress = (await aztecNode.getNodeInfo()).l1ContractAddresses.registryAddress;
|
|
138
138
|
|
|
@@ -197,7 +197,7 @@ export const uniswapL1L2TestSuite = (
|
|
|
197
197
|
logger.info('Withdrawing weth to L1 and sending message to swap to dai');
|
|
198
198
|
const [secretForDepositingSwappedDai, secretHashForDepositingSwappedDai] = await generateClaimSecret();
|
|
199
199
|
|
|
200
|
-
const l2UniswapInteractionReceipt = await uniswapL2Contract.methods
|
|
200
|
+
const { receipt: l2UniswapInteractionReceipt } = await uniswapL2Contract.methods
|
|
201
201
|
.swap_private(
|
|
202
202
|
wethCrossChainHarness.l2Token.address,
|
|
203
203
|
wethCrossChainHarness.l2Bridge.address,
|
|
@@ -209,8 +209,7 @@ export const uniswapL1L2TestSuite = (
|
|
|
209
209
|
secretHashForDepositingSwappedDai,
|
|
210
210
|
ownerEthAddress,
|
|
211
211
|
)
|
|
212
|
-
.send({ from: ownerAddress, authWitnesses: [transferToPublicAuhtwit] })
|
|
213
|
-
.wait();
|
|
212
|
+
.send({ from: ownerAddress, authWitnesses: [transferToPublicAuhtwit] });
|
|
214
213
|
|
|
215
214
|
const swapPrivateFunction = 'swap_private(address,uint256,uint24,address,uint256,bytes32,address)';
|
|
216
215
|
const swapPrivateContent = sha256ToField([
|
|
@@ -253,8 +252,12 @@ export const uniswapL1L2TestSuite = (
|
|
|
253
252
|
await wethCrossChainHarness.expectPublicBalanceOnL2(uniswapL2Contract.address, 0n);
|
|
254
253
|
|
|
255
254
|
// Since the outbox is only consumable when the epoch is proven, we need to advance to the next epoch.
|
|
256
|
-
const
|
|
257
|
-
|
|
255
|
+
const swapResult = (await computeL2ToL1MembershipWitness(
|
|
256
|
+
aztecNode,
|
|
257
|
+
swapPrivateLeaf,
|
|
258
|
+
l2UniswapInteractionReceipt.txHash,
|
|
259
|
+
))!;
|
|
260
|
+
const { epochNumber: epoch } = swapResult;
|
|
258
261
|
await cheatCodes.rollup.advanceToEpoch(EpochNumber(epoch + 1));
|
|
259
262
|
await waitForProven(aztecNode, l2UniswapInteractionReceipt, { provenTimeout: 300 });
|
|
260
263
|
|
|
@@ -263,14 +266,17 @@ export const uniswapL1L2TestSuite = (
|
|
|
263
266
|
const daiL1BalanceOfPortalBeforeSwap = await daiCrossChainHarness.getL1BalanceOf(
|
|
264
267
|
daiCrossChainHarness.tokenPortalAddress,
|
|
265
268
|
);
|
|
266
|
-
const
|
|
267
|
-
|
|
269
|
+
const withdrawResult = (await computeL2ToL1MembershipWitness(
|
|
270
|
+
aztecNode,
|
|
271
|
+
withdrawLeaf,
|
|
272
|
+
l2UniswapInteractionReceipt.txHash,
|
|
273
|
+
))!;
|
|
268
274
|
|
|
269
|
-
const swapPrivateL2MessageIndex = swapResult
|
|
270
|
-
const swapPrivateSiblingPath = swapResult
|
|
275
|
+
const swapPrivateL2MessageIndex = swapResult.leafIndex;
|
|
276
|
+
const swapPrivateSiblingPath = swapResult.siblingPath;
|
|
271
277
|
|
|
272
|
-
const withdrawL2MessageIndex = withdrawResult
|
|
273
|
-
const withdrawSiblingPath = withdrawResult
|
|
278
|
+
const withdrawL2MessageIndex = withdrawResult.leafIndex;
|
|
279
|
+
const withdrawSiblingPath = withdrawResult.siblingPath;
|
|
274
280
|
|
|
275
281
|
const withdrawMessageMetadata = {
|
|
276
282
|
_epoch: BigInt(epoch),
|
|
@@ -428,10 +434,10 @@ export const uniswapL1L2TestSuite = (
|
|
|
428
434
|
// ownerEthAddress,
|
|
429
435
|
// nonceForSwap,
|
|
430
436
|
// );
|
|
431
|
-
// await ownerWallet.setPublicAuthWit({ caller: sponsorAddress, action }, true).send()
|
|
437
|
+
// await ownerWallet.setPublicAuthWit({ caller: sponsorAddress, action }, true).send();
|
|
432
438
|
|
|
433
439
|
// // 4.2 Call swap_public from user2 on behalf of owner
|
|
434
|
-
// const uniswapL2Interaction = await action.send()
|
|
440
|
+
// const uniswapL2Interaction = await action.send();
|
|
435
441
|
|
|
436
442
|
// const swapPublicContent = sha256ToField([
|
|
437
443
|
// Buffer.from(
|
|
@@ -649,8 +655,7 @@ export const uniswapL1L2TestSuite = (
|
|
|
649
655
|
Fr.random(),
|
|
650
656
|
ownerEthAddress,
|
|
651
657
|
)
|
|
652
|
-
.send({ from: ownerAddress, authWitnesses: [transferToPublicAuthwith] })
|
|
653
|
-
.wait(),
|
|
658
|
+
.send({ from: ownerAddress, authWitnesses: [transferToPublicAuthwith] }),
|
|
654
659
|
).rejects.toThrow('Assertion failed: input_asset address is not the same as seen in the bridge contract');
|
|
655
660
|
});
|
|
656
661
|
|
|
@@ -675,7 +680,7 @@ export const uniswapL1L2TestSuite = (
|
|
|
675
680
|
},
|
|
676
681
|
true,
|
|
677
682
|
);
|
|
678
|
-
await validateActionInteraction.send()
|
|
683
|
+
await validateActionInteraction.send();
|
|
679
684
|
|
|
680
685
|
// No approval to call `swap` but should work even without it:
|
|
681
686
|
const [_, secretHashForDepositingSwappedDai] = await generateClaimSecret();
|
|
@@ -694,8 +699,7 @@ export const uniswapL1L2TestSuite = (
|
|
|
694
699
|
ownerEthAddress,
|
|
695
700
|
Fr.ZERO, // nonce for swap -> doesn't matter
|
|
696
701
|
)
|
|
697
|
-
.send({ from: ownerAddress })
|
|
698
|
-
.wait();
|
|
702
|
+
.send({ from: ownerAddress });
|
|
699
703
|
// check weth balance of owner on L2 (we first bridged `wethAmountToBridge` into L2 and now withdrew it!)
|
|
700
704
|
await wethCrossChainHarness.expectPublicBalanceOnL2(ownerAddress, 0n);
|
|
701
705
|
});
|
|
@@ -725,7 +729,7 @@ export const uniswapL1L2TestSuite = (
|
|
|
725
729
|
{ caller: approvedUser, action },
|
|
726
730
|
true,
|
|
727
731
|
);
|
|
728
|
-
await validateActionInteraction.send()
|
|
732
|
+
await validateActionInteraction.send();
|
|
729
733
|
|
|
730
734
|
await expect(action.simulate({ from: sponsorAddress })).rejects.toThrow(/unauthorized/);
|
|
731
735
|
});
|
|
@@ -747,7 +751,7 @@ export const uniswapL1L2TestSuite = (
|
|
|
747
751
|
},
|
|
748
752
|
true,
|
|
749
753
|
);
|
|
750
|
-
await validateActionInteraction.send()
|
|
754
|
+
await validateActionInteraction.send();
|
|
751
755
|
|
|
752
756
|
await expect(
|
|
753
757
|
uniswapL2Contract.methods
|
|
@@ -792,7 +796,7 @@ export const uniswapL1L2TestSuite = (
|
|
|
792
796
|
logger.info('Withdrawing weth to L1 and sending message to swap to dai');
|
|
793
797
|
|
|
794
798
|
const [, secretHashForDepositingSwappedDai] = await generateClaimSecret();
|
|
795
|
-
const withdrawReceipt = await uniswapL2Contract.methods
|
|
799
|
+
const { receipt: withdrawReceipt } = await uniswapL2Contract.methods
|
|
796
800
|
.swap_private(
|
|
797
801
|
wethCrossChainHarness.l2Token.address,
|
|
798
802
|
wethCrossChainHarness.l2Bridge.address,
|
|
@@ -804,8 +808,7 @@ export const uniswapL1L2TestSuite = (
|
|
|
804
808
|
secretHashForDepositingSwappedDai,
|
|
805
809
|
ownerEthAddress,
|
|
806
810
|
)
|
|
807
|
-
.send({ from: ownerAddress, authWitnesses: [transferToPublicAuhtwit] })
|
|
808
|
-
.wait();
|
|
811
|
+
.send({ from: ownerAddress, authWitnesses: [transferToPublicAuhtwit] });
|
|
809
812
|
|
|
810
813
|
const swapPrivateContent = sha256ToField([
|
|
811
814
|
Buffer.from(
|
|
@@ -844,17 +847,15 @@ export const uniswapL1L2TestSuite = (
|
|
|
844
847
|
chainId: new Fr(l1Client.chain.id),
|
|
845
848
|
});
|
|
846
849
|
|
|
847
|
-
const
|
|
848
|
-
|
|
849
|
-
)
|
|
850
|
-
const swapResult = await computeL2ToL1MembershipWitness(aztecNode, epoch, swapPrivateLeaf);
|
|
851
|
-
const withdrawResult = await computeL2ToL1MembershipWitness(aztecNode, epoch, withdrawLeaf);
|
|
850
|
+
const swapResult = (await computeL2ToL1MembershipWitness(aztecNode, swapPrivateLeaf, withdrawReceipt.txHash))!;
|
|
851
|
+
const { epochNumber: epoch } = swapResult;
|
|
852
|
+
const withdrawResult = (await computeL2ToL1MembershipWitness(aztecNode, withdrawLeaf, withdrawReceipt.txHash))!;
|
|
852
853
|
|
|
853
|
-
const swapPrivateL2MessageIndex = swapResult
|
|
854
|
-
const swapPrivateSiblingPath = swapResult
|
|
854
|
+
const swapPrivateL2MessageIndex = swapResult.leafIndex;
|
|
855
|
+
const swapPrivateSiblingPath = swapResult.siblingPath;
|
|
855
856
|
|
|
856
|
-
const withdrawL2MessageIndex = withdrawResult
|
|
857
|
-
const withdrawSiblingPath = withdrawResult
|
|
857
|
+
const withdrawL2MessageIndex = withdrawResult.leafIndex;
|
|
858
|
+
const withdrawSiblingPath = withdrawResult.siblingPath;
|
|
858
859
|
|
|
859
860
|
const withdrawMessageMetadata = {
|
|
860
861
|
_epoch: BigInt(epoch),
|
|
@@ -918,11 +919,11 @@ export const uniswapL1L2TestSuite = (
|
|
|
918
919
|
},
|
|
919
920
|
true,
|
|
920
921
|
);
|
|
921
|
-
await validateActionInteraction.send()
|
|
922
|
+
await validateActionInteraction.send();
|
|
922
923
|
|
|
923
924
|
// Call swap_public on L2
|
|
924
925
|
const secretHashForDepositingSwappedDai = Fr.random();
|
|
925
|
-
const withdrawReceipt = await uniswapL2Contract.methods
|
|
926
|
+
const { receipt: withdrawReceipt } = await uniswapL2Contract.methods
|
|
926
927
|
.swap_public(
|
|
927
928
|
ownerAddress,
|
|
928
929
|
wethCrossChainHarness.l2Bridge.address,
|
|
@@ -936,8 +937,7 @@ export const uniswapL1L2TestSuite = (
|
|
|
936
937
|
ownerEthAddress,
|
|
937
938
|
Fr.ZERO,
|
|
938
939
|
)
|
|
939
|
-
.send({ from: ownerAddress })
|
|
940
|
-
.wait();
|
|
940
|
+
.send({ from: ownerAddress });
|
|
941
941
|
|
|
942
942
|
const swapPublicContent = sha256ToField([
|
|
943
943
|
Buffer.from(
|
|
@@ -979,17 +979,15 @@ export const uniswapL1L2TestSuite = (
|
|
|
979
979
|
chainId: new Fr(l1Client.chain.id),
|
|
980
980
|
});
|
|
981
981
|
|
|
982
|
-
const
|
|
983
|
-
|
|
984
|
-
)
|
|
985
|
-
const swapResult = await computeL2ToL1MembershipWitness(aztecNode, epoch, swapPublicLeaf);
|
|
986
|
-
const withdrawResult = await computeL2ToL1MembershipWitness(aztecNode, epoch, withdrawLeaf);
|
|
982
|
+
const swapResult = (await computeL2ToL1MembershipWitness(aztecNode, swapPublicLeaf, withdrawReceipt.txHash))!;
|
|
983
|
+
const { epochNumber: epoch } = swapResult;
|
|
984
|
+
const withdrawResult = (await computeL2ToL1MembershipWitness(aztecNode, withdrawLeaf, withdrawReceipt.txHash))!;
|
|
987
985
|
|
|
988
|
-
const swapPublicL2MessageIndex = swapResult
|
|
989
|
-
const swapPublicSiblingPath = swapResult
|
|
986
|
+
const swapPublicL2MessageIndex = swapResult.leafIndex;
|
|
987
|
+
const swapPublicSiblingPath = swapResult.siblingPath;
|
|
990
988
|
|
|
991
|
-
const withdrawL2MessageIndex = withdrawResult
|
|
992
|
-
const withdrawSiblingPath = withdrawResult
|
|
989
|
+
const withdrawL2MessageIndex = withdrawResult.leafIndex;
|
|
990
|
+
const withdrawSiblingPath = withdrawResult.siblingPath;
|
|
993
991
|
|
|
994
992
|
const withdrawMessageMetadata = {
|
|
995
993
|
_epoch: BigInt(epoch),
|
|
@@ -4,7 +4,7 @@ import { Fr } from '@aztec/aztec.js/fields';
|
|
|
4
4
|
import { CheatCodes } from '@aztec/aztec/testing';
|
|
5
5
|
import type { RollupContract } from '@aztec/ethereum/contracts';
|
|
6
6
|
import { SlotNumber } from '@aztec/foundation/branded-types';
|
|
7
|
-
import {
|
|
7
|
+
import { poseidon2Hash } from '@aztec/foundation/crypto/poseidon';
|
|
8
8
|
import type { TestDateProvider } from '@aztec/foundation/timer';
|
|
9
9
|
import type { LendingContract } from '@aztec/noir-contracts.js/Lending';
|
|
10
10
|
|
|
@@ -29,7 +29,7 @@ export class LendingAccount {
|
|
|
29
29
|
* @returns Key in public space
|
|
30
30
|
*/
|
|
31
31
|
public key() {
|
|
32
|
-
return
|
|
32
|
+
return poseidon2Hash([this.address, this.secret]);
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
|
|
@@ -186,14 +186,16 @@ export class LendingSimulator {
|
|
|
186
186
|
|
|
187
187
|
expect(this.borrowed).toEqual(this.stableCoin.totalSupply - this.mintedOutside);
|
|
188
188
|
|
|
189
|
-
const asset = await this.lendingContract.methods.get_asset(0).simulate({ from: this.account.address });
|
|
189
|
+
const { result: asset } = await this.lendingContract.methods.get_asset(0).simulate({ from: this.account.address });
|
|
190
190
|
|
|
191
191
|
const interestAccumulator = asset['interest_accumulator'];
|
|
192
192
|
expect(interestAccumulator).toEqual(this.accumulator);
|
|
193
193
|
expect(asset['last_updated_ts']).toEqual(BigInt(this.time));
|
|
194
194
|
|
|
195
195
|
for (const key of [this.account.address, AztecAddress.fromField(await this.account.key())]) {
|
|
196
|
-
const privatePos = await this.lendingContract.methods
|
|
196
|
+
const { result: privatePos } = await this.lendingContract.methods
|
|
197
|
+
.get_position(key)
|
|
198
|
+
.simulate({ from: this.account.address });
|
|
197
199
|
expect(new Fr(privatePos['collateral'])).toEqual(this.collateral[key.toString()] ?? Fr.ZERO);
|
|
198
200
|
expect(new Fr(privatePos['static_debt'])).toEqual(this.staticDebt[key.toString()] ?? Fr.ZERO);
|
|
199
201
|
expect(privatePos['debt']).toEqual(
|
|
@@ -109,7 +109,9 @@ export class TokenSimulator {
|
|
|
109
109
|
await Promise.all(
|
|
110
110
|
chunk(calls, 5).map(batch => new BatchCall(this.defaultWallet, batch).simulate({ from: this.defaultAddress })),
|
|
111
111
|
)
|
|
112
|
-
)
|
|
112
|
+
)
|
|
113
|
+
.flatMap(r => r.result)
|
|
114
|
+
.map(r => r.result);
|
|
113
115
|
expect(results[0]).toEqual(this.totalSupply);
|
|
114
116
|
|
|
115
117
|
// Check that all our balances match
|
|
@@ -119,39 +121,13 @@ export class TokenSimulator {
|
|
|
119
121
|
}
|
|
120
122
|
|
|
121
123
|
async checkPrivate() {
|
|
122
|
-
// Private calls
|
|
123
|
-
const defaultLookups = [];
|
|
124
|
-
const nonDefaultLookups = [];
|
|
125
|
-
|
|
126
124
|
for (const address of this.accounts) {
|
|
127
|
-
if (this.lookupProvider.has(address.toString())) {
|
|
128
|
-
nonDefaultLookups.push(address);
|
|
129
|
-
} else {
|
|
130
|
-
defaultLookups.push(address);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
const defaultCalls = defaultLookups.map(address => this.token.methods.balance_of_private(address));
|
|
135
|
-
const results = (
|
|
136
|
-
await Promise.all(
|
|
137
|
-
chunk(defaultCalls, 4).map(batch =>
|
|
138
|
-
new BatchCall(this.defaultWallet, batch).simulate({ from: this.defaultAddress }),
|
|
139
|
-
),
|
|
140
|
-
)
|
|
141
|
-
).flat();
|
|
142
|
-
for (let i = 0; i < defaultLookups.length; i++) {
|
|
143
|
-
expect(results[i]).toEqual(this.balanceOfPrivate(defaultLookups[i]));
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
// We are just running individual calls for the non-default lookups
|
|
147
|
-
// @todo We should also batch these
|
|
148
|
-
for (const address of nonDefaultLookups) {
|
|
149
125
|
const wallet = this.lookupProvider.get(address.toString());
|
|
150
126
|
const asset = wallet ? this.token.withWallet(wallet) : this.token;
|
|
151
127
|
|
|
152
|
-
const actualPrivateBalance = await asset.methods
|
|
153
|
-
.balance_of_private(
|
|
154
|
-
.simulate({ from:
|
|
128
|
+
const { result: actualPrivateBalance } = await asset.methods
|
|
129
|
+
.balance_of_private(address)
|
|
130
|
+
.simulate({ from: address });
|
|
155
131
|
expect(actualPrivateBalance).toEqual(this.balanceOfPrivate(address));
|
|
156
132
|
}
|
|
157
133
|
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { generateSchnorrAccounts } from '@aztec/accounts/testing';
|
|
2
2
|
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
3
|
+
import { NO_WAIT } from '@aztec/aztec.js/contracts';
|
|
3
4
|
import { L1FeeJuicePortalManager } from '@aztec/aztec.js/ethereum';
|
|
4
5
|
import { FeeJuicePaymentMethodWithClaim } from '@aztec/aztec.js/fee';
|
|
5
6
|
import { type FeePaymentMethod, SponsoredFeePaymentMethod } from '@aztec/aztec.js/fee';
|
|
6
7
|
import { Fr } from '@aztec/aztec.js/fields';
|
|
7
|
-
import { type AztecNode, createAztecNodeClient } from '@aztec/aztec.js/node';
|
|
8
|
+
import { type AztecNode, createAztecNodeClient, waitForTx } from '@aztec/aztec.js/node';
|
|
8
9
|
import type { Wallet } from '@aztec/aztec.js/wallet';
|
|
9
10
|
import { createEthereumChain } from '@aztec/ethereum/chain';
|
|
10
11
|
import { createExtendedL1Client } from '@aztec/ethereum/client';
|
|
@@ -12,11 +13,14 @@ import type { Logger } from '@aztec/foundation/log';
|
|
|
12
13
|
import { retryUntil } from '@aztec/foundation/retry';
|
|
13
14
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
14
15
|
import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
|
|
15
|
-
import {
|
|
16
|
+
import { registerInitialLocalNetworkAccountsInWallet } from '@aztec/wallets/testing';
|
|
16
17
|
|
|
17
18
|
import { getACVMConfig } from '../fixtures/get_acvm_config.js';
|
|
18
19
|
import { getBBConfig } from '../fixtures/get_bb_config.js';
|
|
19
20
|
import { getSponsoredFPCAddress, registerSponsoredFPC } from '../fixtures/utils.js';
|
|
21
|
+
import { TestWallet } from '../test-wallet/test_wallet.js';
|
|
22
|
+
import { proveInteraction } from '../test-wallet/utils.js';
|
|
23
|
+
import { WorkerWallet } from '../test-wallet/worker_wallet.js';
|
|
20
24
|
|
|
21
25
|
export interface TestAccounts {
|
|
22
26
|
aztecNode: AztecNode;
|
|
@@ -84,11 +88,19 @@ export async function deploySponsoredTestAccountsWithTokens(
|
|
|
84
88
|
|
|
85
89
|
const paymentMethod = new SponsoredFeePaymentMethod(await getSponsoredFPCAddress());
|
|
86
90
|
const recipientDeployMethod = await recipientAccount.getDeployMethod();
|
|
87
|
-
await recipientDeployMethod.send({
|
|
91
|
+
await recipientDeployMethod.send({
|
|
92
|
+
from: AztecAddress.ZERO,
|
|
93
|
+
fee: { paymentMethod },
|
|
94
|
+
wait: { timeout: 2400 },
|
|
95
|
+
});
|
|
88
96
|
await Promise.all(
|
|
89
97
|
fundedAccounts.map(async a => {
|
|
90
98
|
const deployMethod = await a.getDeployMethod();
|
|
91
|
-
await deployMethod.send({
|
|
99
|
+
await deployMethod.send({
|
|
100
|
+
from: AztecAddress.ZERO,
|
|
101
|
+
fee: { paymentMethod },
|
|
102
|
+
wait: { timeout: 2400 },
|
|
103
|
+
}); // increase timeout on purpose in order to account for two empty epochs
|
|
92
104
|
logger.info(`Account deployed at ${a.address}`);
|
|
93
105
|
}),
|
|
94
106
|
);
|
|
@@ -116,11 +128,84 @@ export async function deploySponsoredTestAccountsWithTokens(
|
|
|
116
128
|
};
|
|
117
129
|
}
|
|
118
130
|
|
|
131
|
+
async function deployAccountWithDiagnostics(
|
|
132
|
+
account: { getDeployMethod: () => Promise<{ simulate: (opts: any) => any; send: (opts: any) => any }>; address: any },
|
|
133
|
+
paymentMethod: SponsoredFeePaymentMethod,
|
|
134
|
+
aztecNode: AztecNode,
|
|
135
|
+
logger: Logger,
|
|
136
|
+
accountLabel: string,
|
|
137
|
+
estimateGas?: boolean,
|
|
138
|
+
): Promise<void> {
|
|
139
|
+
const deployMethod = await account.getDeployMethod();
|
|
140
|
+
let txHash;
|
|
141
|
+
try {
|
|
142
|
+
let gasSettings;
|
|
143
|
+
if (estimateGas) {
|
|
144
|
+
const sim = await deployMethod.simulate({ from: AztecAddress.ZERO, fee: { paymentMethod } });
|
|
145
|
+
gasSettings = sim.estimatedGas;
|
|
146
|
+
logger.info(`${accountLabel} estimated gas: DA=${gasSettings.gasLimits.daGas} L2=${gasSettings.gasLimits.l2Gas}`);
|
|
147
|
+
}
|
|
148
|
+
const deployResult = await deployMethod.send({
|
|
149
|
+
from: AztecAddress.ZERO,
|
|
150
|
+
fee: { paymentMethod, gasSettings },
|
|
151
|
+
wait: NO_WAIT,
|
|
152
|
+
});
|
|
153
|
+
txHash = deployResult.txHash;
|
|
154
|
+
await waitForTx(aztecNode, txHash, { timeout: 2400 });
|
|
155
|
+
logger.info(`${accountLabel} deployed at ${account.address}`);
|
|
156
|
+
} catch (error) {
|
|
157
|
+
const blockNumber = await aztecNode.getBlockNumber();
|
|
158
|
+
let receipt;
|
|
159
|
+
try {
|
|
160
|
+
receipt = await aztecNode.getTxReceipt(txHash);
|
|
161
|
+
} catch {
|
|
162
|
+
receipt = 'unavailable';
|
|
163
|
+
}
|
|
164
|
+
logger.error(`${accountLabel} deployment failed`, {
|
|
165
|
+
txHash: txHash.toString(),
|
|
166
|
+
receipt: JSON.stringify(receipt),
|
|
167
|
+
currentBlockNumber: blockNumber,
|
|
168
|
+
error: String(error),
|
|
169
|
+
});
|
|
170
|
+
throw error;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
async function deployAccountsInBatches(
|
|
175
|
+
accounts: {
|
|
176
|
+
getDeployMethod: () => Promise<{ simulate: (opts: any) => any; send: (opts: any) => any }>;
|
|
177
|
+
address: any;
|
|
178
|
+
}[],
|
|
179
|
+
paymentMethod: SponsoredFeePaymentMethod,
|
|
180
|
+
aztecNode: AztecNode,
|
|
181
|
+
logger: Logger,
|
|
182
|
+
labelPrefix: string,
|
|
183
|
+
batchSize = 2,
|
|
184
|
+
estimateGas?: boolean,
|
|
185
|
+
): Promise<void> {
|
|
186
|
+
for (let i = 0; i < accounts.length; i += batchSize) {
|
|
187
|
+
const batch = accounts.slice(i, i + batchSize);
|
|
188
|
+
await Promise.all(
|
|
189
|
+
batch.map((account, idx) =>
|
|
190
|
+
deployAccountWithDiagnostics(
|
|
191
|
+
account,
|
|
192
|
+
paymentMethod,
|
|
193
|
+
aztecNode,
|
|
194
|
+
logger,
|
|
195
|
+
`${labelPrefix}${i + idx + 1}`,
|
|
196
|
+
estimateGas,
|
|
197
|
+
),
|
|
198
|
+
),
|
|
199
|
+
);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
|
|
119
203
|
export async function deploySponsoredTestAccounts(
|
|
120
204
|
wallet: TestWallet,
|
|
121
205
|
aztecNode: AztecNode,
|
|
122
206
|
logger: Logger,
|
|
123
207
|
numberOfFundedWallets = 1,
|
|
208
|
+
opts?: { estimateGas?: boolean },
|
|
124
209
|
): Promise<TestAccountsWithoutTokens> {
|
|
125
210
|
const [recipient, ...funded] = await generateSchnorrAccounts(numberOfFundedWallets + 1);
|
|
126
211
|
const recipientAccount = await wallet.createSchnorrAccount(recipient.secret, recipient.salt);
|
|
@@ -129,14 +214,23 @@ export async function deploySponsoredTestAccounts(
|
|
|
129
214
|
await registerSponsoredFPC(wallet);
|
|
130
215
|
|
|
131
216
|
const paymentMethod = new SponsoredFeePaymentMethod(await getSponsoredFPCAddress());
|
|
132
|
-
|
|
133
|
-
await
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
217
|
+
|
|
218
|
+
await deployAccountWithDiagnostics(
|
|
219
|
+
recipientAccount,
|
|
220
|
+
paymentMethod,
|
|
221
|
+
aztecNode,
|
|
222
|
+
logger,
|
|
223
|
+
'Recipient account',
|
|
224
|
+
opts?.estimateGas,
|
|
225
|
+
);
|
|
226
|
+
await deployAccountsInBatches(
|
|
227
|
+
fundedAccounts,
|
|
228
|
+
paymentMethod,
|
|
229
|
+
aztecNode,
|
|
230
|
+
logger,
|
|
231
|
+
'Funded account ',
|
|
232
|
+
2,
|
|
233
|
+
opts?.estimateGas,
|
|
140
234
|
);
|
|
141
235
|
|
|
142
236
|
return {
|
|
@@ -175,7 +269,7 @@ export async function deployTestAccountsWithTokens(
|
|
|
175
269
|
fundedAccounts.map(async (a, i) => {
|
|
176
270
|
const paymentMethod = new FeeJuicePaymentMethodWithClaim(a.address, claims[i]);
|
|
177
271
|
const deployMethod = await a.getDeployMethod();
|
|
178
|
-
await deployMethod.send({ from: AztecAddress.ZERO, fee: { paymentMethod } })
|
|
272
|
+
await deployMethod.send({ from: AztecAddress.ZERO, fee: { paymentMethod } });
|
|
179
273
|
logger.info(`Account deployed at ${a.address}`);
|
|
180
274
|
}),
|
|
181
275
|
);
|
|
@@ -219,7 +313,7 @@ async function bridgeL1FeeJuice(
|
|
|
219
313
|
const claim = await portal.bridgeTokensPublic(recipient, amount, true /* mint */);
|
|
220
314
|
|
|
221
315
|
const isSynced = async () =>
|
|
222
|
-
(await aztecNode.
|
|
316
|
+
(await aztecNode.getL1ToL2MessageCheckpoint(Fr.fromHexString(claim.messageHash))) !== undefined;
|
|
223
317
|
await retryUntil(isSynced, `message ${claim.messageHash} sync`, 24, 0.5);
|
|
224
318
|
|
|
225
319
|
log.info(`Created a claim for ${amount} L1 fee juice to ${recipient}.`, claim);
|
|
@@ -251,14 +345,15 @@ async function deployTokenAndMint(
|
|
|
251
345
|
logger: Logger,
|
|
252
346
|
) {
|
|
253
347
|
logger.verbose(`Deploying TokenContract...`);
|
|
254
|
-
const
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
}
|
|
261
|
-
|
|
348
|
+
const {
|
|
349
|
+
receipt: { contract: tokenContract },
|
|
350
|
+
} = await TokenContract.deploy(wallet, admin, TOKEN_NAME, TOKEN_SYMBOL, TOKEN_DECIMALS).send({
|
|
351
|
+
from: admin,
|
|
352
|
+
fee: {
|
|
353
|
+
paymentMethod,
|
|
354
|
+
},
|
|
355
|
+
wait: { timeout: 600, returnReceipt: true },
|
|
356
|
+
});
|
|
262
357
|
|
|
263
358
|
const tokenAddress = tokenContract.address;
|
|
264
359
|
|
|
@@ -268,8 +363,7 @@ async function deployTokenAndMint(
|
|
|
268
363
|
accounts.map(acc =>
|
|
269
364
|
TokenContract.at(tokenAddress, wallet)
|
|
270
365
|
.methods.mint_to_public(acc, mintAmount)
|
|
271
|
-
.send({ from: admin, fee: { paymentMethod } })
|
|
272
|
-
.wait({ timeout: 600 }),
|
|
366
|
+
.send({ from: admin, fee: { paymentMethod }, wait: { timeout: 600 } }),
|
|
273
367
|
),
|
|
274
368
|
);
|
|
275
369
|
|
|
@@ -309,7 +403,7 @@ export async function performTransfers({
|
|
|
309
403
|
|
|
310
404
|
const provenTxs = await Promise.all(txs);
|
|
311
405
|
|
|
312
|
-
await Promise.all(provenTxs.map(t => t.send(
|
|
406
|
+
await Promise.all(provenTxs.map(t => t.send({ wait: { timeout: 600 } })));
|
|
313
407
|
|
|
314
408
|
logger.info(`Completed round ${i + 1} / ${rounds}`);
|
|
315
409
|
}
|
|
@@ -347,3 +441,42 @@ export async function createWalletAndAztecNodeClient(
|
|
|
347
441
|
},
|
|
348
442
|
};
|
|
349
443
|
}
|
|
444
|
+
|
|
445
|
+
export type WorkerWalletWrapper = {
|
|
446
|
+
wallet: WorkerWallet;
|
|
447
|
+
aztecNode: AztecNode;
|
|
448
|
+
cleanup: () => Promise<void>;
|
|
449
|
+
};
|
|
450
|
+
|
|
451
|
+
export async function createWorkerWalletClient(
|
|
452
|
+
nodeUrl: string,
|
|
453
|
+
proverEnabled: boolean,
|
|
454
|
+
logger: Logger,
|
|
455
|
+
): Promise<WorkerWalletWrapper> {
|
|
456
|
+
const aztecNode = createAztecNodeClient(nodeUrl);
|
|
457
|
+
const [bbConfig, acvmConfig] = await Promise.all([getBBConfig(logger), getACVMConfig(logger)]);
|
|
458
|
+
|
|
459
|
+
// Strip cleanup functions — they can't be structured-cloned for worker transfer
|
|
460
|
+
const { cleanup: bbCleanup, ...bbPaths } = bbConfig ?? {};
|
|
461
|
+
const { cleanup: acvmCleanup, ...acvmPaths } = acvmConfig ?? {};
|
|
462
|
+
|
|
463
|
+
const pxeConfig = {
|
|
464
|
+
dataDirectory: undefined,
|
|
465
|
+
dataStoreMapSizeKb: 1024 * 1024,
|
|
466
|
+
...bbPaths,
|
|
467
|
+
...acvmPaths,
|
|
468
|
+
proverEnabled,
|
|
469
|
+
};
|
|
470
|
+
|
|
471
|
+
const wallet = await WorkerWallet.create(nodeUrl, pxeConfig);
|
|
472
|
+
|
|
473
|
+
return {
|
|
474
|
+
wallet,
|
|
475
|
+
aztecNode,
|
|
476
|
+
async cleanup() {
|
|
477
|
+
await wallet.stop();
|
|
478
|
+
await bbCleanup?.();
|
|
479
|
+
await acvmCleanup?.();
|
|
480
|
+
},
|
|
481
|
+
};
|
|
482
|
+
}
|