@aztec/end-to-end 1.0.0-nightly.20250730 → 1.0.0-nightly.20250805
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/e2e_epochs/epochs_test.d.ts +1 -0
- package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.js +2 -1
- package/dest/e2e_p2p/p2p_network.js +1 -1
- package/dest/fixtures/utils.d.ts +2 -0
- package/dest/fixtures/utils.d.ts.map +1 -1
- package/dest/fixtures/utils.js +2 -1
- 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/shared/uniswap_l1_l2.js +6 -6
- package/package.json +35 -35
- package/src/e2e_epochs/epochs_test.ts +4 -1
- package/src/e2e_p2p/p2p_network.ts +1 -1
- package/src/fixtures/utils.ts +7 -1
- package/src/integration_l1_publisher/write_json.ts +74 -0
- package/src/shared/uniswap_l1_l2.ts +6 -6
|
@@ -12,6 +12,7 @@ import { type EndToEndContext, type SetupOptions } from '../fixtures/utils.js';
|
|
|
12
12
|
export declare const WORLD_STATE_BLOCK_HISTORY = 2;
|
|
13
13
|
export declare const WORLD_STATE_BLOCK_CHECK_INTERVAL = 50;
|
|
14
14
|
export declare const ARCHIVER_POLL_INTERVAL = 50;
|
|
15
|
+
export declare const DEFAULT_L1_BLOCK_TIME: number;
|
|
15
16
|
export type EpochsTestOpts = Partial<SetupOptions> & {
|
|
16
17
|
numberOfAccounts?: number;
|
|
17
18
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"epochs_test.d.ts","sourceRoot":"","sources":["../../src/e2e_epochs/epochs_test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EACL,EAAE,EACF,KAAK,MAAM,EAEX,KAAK,MAAM,EAKZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAA4B,KAAK,wBAAwB,EAA0B,MAAM,iBAAiB,CAAC;AAClH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAkB,KAAK,OAAO,EAAqC,MAAM,sBAAsB,CAAC;AAIrH,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,OAAO,EAAE,UAAU,EAAuB,MAAM,oBAAoB,CAAC;AAErE,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,eAAe,EAGrB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,KAAK,iBAAiB,EAAuC,MAAM,6BAA6B,CAAC;AAO1G,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EAIlB,MAAM,sBAAsB,CAAC;AAE9B,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,gCAAgC,KAAK,CAAC;AACnD,eAAO,MAAM,sBAAsB,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"epochs_test.d.ts","sourceRoot":"","sources":["../../src/e2e_epochs/epochs_test.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ import { createAndSyncProverNode, getPrivateKeyFromIndex, setup } from '../fixtu
|
|
|
17
17
|
export const WORLD_STATE_BLOCK_HISTORY = 2;
|
|
18
18
|
export const WORLD_STATE_BLOCK_CHECK_INTERVAL = 50;
|
|
19
19
|
export const ARCHIVER_POLL_INTERVAL = 50;
|
|
20
|
+
export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
|
|
20
21
|
/**
|
|
21
22
|
* Tests building of epochs using fast block times and short epochs.
|
|
22
23
|
* Spawns an aztec node and a prover node with fake proofs.
|
|
@@ -41,7 +42,7 @@ export const ARCHIVER_POLL_INTERVAL = 50;
|
|
|
41
42
|
return test;
|
|
42
43
|
}
|
|
43
44
|
static getSlotDurations(opts = {}) {
|
|
44
|
-
const envEthereumSlotDuration = process.env.L1_BLOCK_TIME ? parseInt(process.env.L1_BLOCK_TIME) :
|
|
45
|
+
const envEthereumSlotDuration = process.env.L1_BLOCK_TIME ? parseInt(process.env.L1_BLOCK_TIME) : DEFAULT_L1_BLOCK_TIME;
|
|
45
46
|
const ethereumSlotDuration = opts.ethereumSlotDuration ?? envEthereumSlotDuration;
|
|
46
47
|
const aztecSlotDuration = opts.aztecSlotDuration ?? ethereumSlotDuration * 2;
|
|
47
48
|
const aztecEpochDuration = opts.aztecEpochDuration ?? 4;
|
|
@@ -152,7 +152,7 @@ export class P2PNetworkTest {
|
|
|
152
152
|
abi: MultiAdderArtifact.contractAbi,
|
|
153
153
|
client: deployL1ContractsValues.l1Client
|
|
154
154
|
});
|
|
155
|
-
const stakeNeeded = l1ContractsConfig.
|
|
155
|
+
const stakeNeeded = l1ContractsConfig.activationThreshold * BigInt(this.numberOfValidators);
|
|
156
156
|
await Promise.all([
|
|
157
157
|
await stakingAsset.write.mint([
|
|
158
158
|
multiAdder.address,
|
package/dest/fixtures/utils.d.ts
CHANGED
|
@@ -89,6 +89,8 @@ export type SetupOptions = {
|
|
|
89
89
|
automineL1Setup?: boolean;
|
|
90
90
|
/** How many accounts to seed and unlock in anvil. */
|
|
91
91
|
anvilAccounts?: number;
|
|
92
|
+
/** Port to start anvil (defaults to 8545) */
|
|
93
|
+
anvilPort?: number;
|
|
92
94
|
} & Partial<AztecNodeConfig>;
|
|
93
95
|
/** Context for an end-to-end test as returned by the `setup` function */
|
|
94
96
|
export type EndToEndContext = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/utils.ts"],"names":[],"mappings":"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"}
|
package/dest/fixtures/utils.js
CHANGED
|
@@ -214,7 +214,8 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
|
|
|
214
214
|
}
|
|
215
215
|
const res = await startAnvil({
|
|
216
216
|
l1BlockTime: opts.ethereumSlotDuration,
|
|
217
|
-
accounts: opts.anvilAccounts
|
|
217
|
+
accounts: opts.anvilAccounts,
|
|
218
|
+
port: opts.anvilPort
|
|
218
219
|
});
|
|
219
220
|
anvil = res.anvil;
|
|
220
221
|
config.l1RpcUrls = [
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AztecAddress, Fr, type L2Block } from '@aztec/aztec.js';
|
|
2
|
+
import { BatchedBlob, Blob } from '@aztec/blob-lib';
|
|
3
|
+
/**
|
|
4
|
+
* Creates a json object that can be used to test the solidity contract.
|
|
5
|
+
* The json object must be put into
|
|
6
|
+
*/
|
|
7
|
+
export declare function writeJson(fileName: string, block: L2Block, l1ToL2Content: Fr[], blobs: Blob[], batchedBlob: BatchedBlob, recipientAddress: AztecAddress, deployerAddress: `0x${string}`): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=write_json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write_json.d.ts","sourceRoot":"","sources":["../../src/integration_l1_publisher/write_json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAOpD;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,EAAE,EAAE,EACnB,KAAK,EAAE,IAAI,EAAE,EACb,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,YAAY,EAC9B,eAAe,EAAE,KAAK,MAAM,EAAE,GAC7B,OAAO,CAAC,IAAI,CAAC,CAqDf"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Blob } from '@aztec/blob-lib';
|
|
2
|
+
import { writeFile } from 'fs/promises';
|
|
3
|
+
const AZTEC_GENERATE_TEST_DATA = !!process.env.AZTEC_GENERATE_TEST_DATA;
|
|
4
|
+
/**
|
|
5
|
+
* Creates a json object that can be used to test the solidity contract.
|
|
6
|
+
* The json object must be put into
|
|
7
|
+
*/ export async function writeJson(fileName, block, l1ToL2Content, blobs, batchedBlob, recipientAddress, deployerAddress) {
|
|
8
|
+
if (!AZTEC_GENERATE_TEST_DATA) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
// Path relative to the package.json in the end-to-end folder
|
|
12
|
+
const path = `../../l1-contracts/test/fixtures/${fileName}.json`;
|
|
13
|
+
const asHex = (value, size = 64)=>{
|
|
14
|
+
const buffer = Buffer.isBuffer(value) ? value : value.toBuffer();
|
|
15
|
+
return `0x${buffer.toString('hex').padStart(size, '0')}`;
|
|
16
|
+
};
|
|
17
|
+
const jsonObject = {
|
|
18
|
+
populate: {
|
|
19
|
+
l1ToL2Content: l1ToL2Content.map(asHex),
|
|
20
|
+
recipient: asHex(recipientAddress.toField()),
|
|
21
|
+
sender: deployerAddress
|
|
22
|
+
},
|
|
23
|
+
messages: {
|
|
24
|
+
l2ToL1Messages: block.body.txEffects.flatMap((txEffect)=>txEffect.l2ToL1Msgs).map(asHex)
|
|
25
|
+
},
|
|
26
|
+
block: {
|
|
27
|
+
// The json formatting in forge is a bit brittle, so we convert Fr to a number in the few values below.
|
|
28
|
+
// This should not be a problem for testing as long as the values are not larger than u32.
|
|
29
|
+
archive: asHex(block.archive.root),
|
|
30
|
+
blobCommitments: Blob.getPrefixedEthBlobCommitments(blobs),
|
|
31
|
+
batchedBlobInputs: batchedBlob.getEthBlobEvaluationInputs(),
|
|
32
|
+
blockNumber: block.number,
|
|
33
|
+
body: `0x${block.body.toBuffer().toString('hex')}`,
|
|
34
|
+
header: {
|
|
35
|
+
lastArchiveRoot: asHex(block.header.lastArchive.root),
|
|
36
|
+
contentCommitment: {
|
|
37
|
+
blobsHash: asHex(block.header.contentCommitment.blobsHash),
|
|
38
|
+
inHash: asHex(block.header.contentCommitment.inHash),
|
|
39
|
+
outHash: asHex(block.header.contentCommitment.outHash)
|
|
40
|
+
},
|
|
41
|
+
slotNumber: Number(block.header.globalVariables.slotNumber),
|
|
42
|
+
timestamp: Number(block.header.globalVariables.timestamp),
|
|
43
|
+
coinbase: asHex(block.header.globalVariables.coinbase, 40),
|
|
44
|
+
feeRecipient: asHex(block.header.globalVariables.feeRecipient),
|
|
45
|
+
gasFees: {
|
|
46
|
+
feePerDaGas: Number(block.header.globalVariables.gasFees.feePerDaGas),
|
|
47
|
+
feePerL2Gas: Number(block.header.globalVariables.gasFees.feePerL2Gas)
|
|
48
|
+
},
|
|
49
|
+
totalManaUsed: block.header.totalManaUsed.toNumber()
|
|
50
|
+
},
|
|
51
|
+
headerHash: asHex(block.header.toPropose().hash()),
|
|
52
|
+
numTxs: block.body.txEffects.length
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
const output = JSON.stringify(jsonObject, null, 2);
|
|
56
|
+
await writeFile(path, output, 'utf8');
|
|
57
|
+
}
|
|
@@ -167,9 +167,9 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
167
167
|
const daiL1BalanceOfPortalBeforeSwap = await daiCrossChainHarness.getL1BalanceOf(daiCrossChainHarness.tokenPortalAddress);
|
|
168
168
|
const swapResult = await computeL2ToL1MembershipWitness(aztecNode, l2UniswapInteractionReceipt.blockNumber, swapPrivateLeaf);
|
|
169
169
|
const withdrawResult = await computeL2ToL1MembershipWitness(aztecNode, l2UniswapInteractionReceipt.blockNumber, withdrawLeaf);
|
|
170
|
-
const swapPrivateL2MessageIndex = swapResult.
|
|
170
|
+
const swapPrivateL2MessageIndex = swapResult.leafIndex;
|
|
171
171
|
const swapPrivateSiblingPath = swapResult.siblingPath;
|
|
172
|
-
const withdrawL2MessageIndex = withdrawResult.
|
|
172
|
+
const withdrawL2MessageIndex = withdrawResult.leafIndex;
|
|
173
173
|
const withdrawSiblingPath = withdrawResult.siblingPath;
|
|
174
174
|
const withdrawMessageMetadata = {
|
|
175
175
|
_l2BlockNumber: BigInt(l2UniswapInteractionReceipt.blockNumber),
|
|
@@ -559,9 +559,9 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
559
559
|
});
|
|
560
560
|
const swapResult = await computeL2ToL1MembershipWitness(aztecNode, withdrawReceipt.blockNumber, swapPrivateLeaf);
|
|
561
561
|
const withdrawResult = await computeL2ToL1MembershipWitness(aztecNode, withdrawReceipt.blockNumber, withdrawLeaf);
|
|
562
|
-
const swapPrivateL2MessageIndex = swapResult.
|
|
562
|
+
const swapPrivateL2MessageIndex = swapResult.leafIndex;
|
|
563
563
|
const swapPrivateSiblingPath = swapResult.siblingPath;
|
|
564
|
-
const withdrawL2MessageIndex = withdrawResult.
|
|
564
|
+
const withdrawL2MessageIndex = withdrawResult.leafIndex;
|
|
565
565
|
const withdrawSiblingPath = withdrawResult.siblingPath;
|
|
566
566
|
const withdrawMessageMetadata = {
|
|
567
567
|
_l2BlockNumber: BigInt(withdrawReceipt.blockNumber),
|
|
@@ -643,9 +643,9 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
643
643
|
});
|
|
644
644
|
const swapResult = await computeL2ToL1MembershipWitness(aztecNode, withdrawReceipt.blockNumber, swapPublicLeaf);
|
|
645
645
|
const withdrawResult = await computeL2ToL1MembershipWitness(aztecNode, withdrawReceipt.blockNumber, withdrawLeaf);
|
|
646
|
-
const swapPublicL2MessageIndex = swapResult.
|
|
646
|
+
const swapPublicL2MessageIndex = swapResult.leafIndex;
|
|
647
647
|
const swapPublicSiblingPath = swapResult.siblingPath;
|
|
648
|
-
const withdrawL2MessageIndex = withdrawResult.
|
|
648
|
+
const withdrawL2MessageIndex = withdrawResult.leafIndex;
|
|
649
649
|
const withdrawSiblingPath = withdrawResult.siblingPath;
|
|
650
650
|
const withdrawMessageMetadata = {
|
|
651
651
|
_l2BlockNumber: BigInt(withdrawReceipt.blockNumber),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/end-to-end",
|
|
3
|
-
"version": "1.0.0-nightly.
|
|
3
|
+
"version": "1.0.0-nightly.20250805",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": "./dest/index.js",
|
|
6
6
|
"inherits": [
|
|
@@ -25,40 +25,40 @@
|
|
|
25
25
|
"formatting": "run -T prettier --check ./src && run -T eslint ./src"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@aztec/accounts": "1.0.0-nightly.
|
|
29
|
-
"@aztec/archiver": "1.0.0-nightly.
|
|
30
|
-
"@aztec/aztec": "1.0.0-nightly.
|
|
31
|
-
"@aztec/aztec-node": "1.0.0-nightly.
|
|
32
|
-
"@aztec/aztec.js": "1.0.0-nightly.
|
|
33
|
-
"@aztec/bb-prover": "1.0.0-nightly.
|
|
34
|
-
"@aztec/blob-lib": "1.0.0-nightly.
|
|
35
|
-
"@aztec/blob-sink": "1.0.0-nightly.
|
|
36
|
-
"@aztec/bot": "1.0.0-nightly.
|
|
37
|
-
"@aztec/cli": "1.0.0-nightly.
|
|
38
|
-
"@aztec/constants": "1.0.0-nightly.
|
|
39
|
-
"@aztec/entrypoints": "1.0.0-nightly.
|
|
40
|
-
"@aztec/epoch-cache": "1.0.0-nightly.
|
|
41
|
-
"@aztec/ethereum": "1.0.0-nightly.
|
|
42
|
-
"@aztec/foundation": "1.0.0-nightly.
|
|
43
|
-
"@aztec/kv-store": "1.0.0-nightly.
|
|
44
|
-
"@aztec/l1-artifacts": "1.0.0-nightly.
|
|
45
|
-
"@aztec/merkle-tree": "1.0.0-nightly.
|
|
46
|
-
"@aztec/noir-contracts.js": "1.0.0-nightly.
|
|
47
|
-
"@aztec/noir-noirc_abi": "1.0.0-nightly.
|
|
48
|
-
"@aztec/noir-protocol-circuits-types": "1.0.0-nightly.
|
|
49
|
-
"@aztec/noir-test-contracts.js": "1.0.0-nightly.
|
|
50
|
-
"@aztec/p2p": "1.0.0-nightly.
|
|
51
|
-
"@aztec/protocol-contracts": "1.0.0-nightly.
|
|
52
|
-
"@aztec/prover-client": "1.0.0-nightly.
|
|
53
|
-
"@aztec/prover-node": "1.0.0-nightly.
|
|
54
|
-
"@aztec/pxe": "1.0.0-nightly.
|
|
55
|
-
"@aztec/sequencer-client": "1.0.0-nightly.
|
|
56
|
-
"@aztec/simulator": "1.0.0-nightly.
|
|
57
|
-
"@aztec/slasher": "1.0.0-nightly.
|
|
58
|
-
"@aztec/stdlib": "1.0.0-nightly.
|
|
59
|
-
"@aztec/telemetry-client": "1.0.0-nightly.
|
|
60
|
-
"@aztec/validator-client": "1.0.0-nightly.
|
|
61
|
-
"@aztec/world-state": "1.0.0-nightly.
|
|
28
|
+
"@aztec/accounts": "1.0.0-nightly.20250805",
|
|
29
|
+
"@aztec/archiver": "1.0.0-nightly.20250805",
|
|
30
|
+
"@aztec/aztec": "1.0.0-nightly.20250805",
|
|
31
|
+
"@aztec/aztec-node": "1.0.0-nightly.20250805",
|
|
32
|
+
"@aztec/aztec.js": "1.0.0-nightly.20250805",
|
|
33
|
+
"@aztec/bb-prover": "1.0.0-nightly.20250805",
|
|
34
|
+
"@aztec/blob-lib": "1.0.0-nightly.20250805",
|
|
35
|
+
"@aztec/blob-sink": "1.0.0-nightly.20250805",
|
|
36
|
+
"@aztec/bot": "1.0.0-nightly.20250805",
|
|
37
|
+
"@aztec/cli": "1.0.0-nightly.20250805",
|
|
38
|
+
"@aztec/constants": "1.0.0-nightly.20250805",
|
|
39
|
+
"@aztec/entrypoints": "1.0.0-nightly.20250805",
|
|
40
|
+
"@aztec/epoch-cache": "1.0.0-nightly.20250805",
|
|
41
|
+
"@aztec/ethereum": "1.0.0-nightly.20250805",
|
|
42
|
+
"@aztec/foundation": "1.0.0-nightly.20250805",
|
|
43
|
+
"@aztec/kv-store": "1.0.0-nightly.20250805",
|
|
44
|
+
"@aztec/l1-artifacts": "1.0.0-nightly.20250805",
|
|
45
|
+
"@aztec/merkle-tree": "1.0.0-nightly.20250805",
|
|
46
|
+
"@aztec/noir-contracts.js": "1.0.0-nightly.20250805",
|
|
47
|
+
"@aztec/noir-noirc_abi": "1.0.0-nightly.20250805",
|
|
48
|
+
"@aztec/noir-protocol-circuits-types": "1.0.0-nightly.20250805",
|
|
49
|
+
"@aztec/noir-test-contracts.js": "1.0.0-nightly.20250805",
|
|
50
|
+
"@aztec/p2p": "1.0.0-nightly.20250805",
|
|
51
|
+
"@aztec/protocol-contracts": "1.0.0-nightly.20250805",
|
|
52
|
+
"@aztec/prover-client": "1.0.0-nightly.20250805",
|
|
53
|
+
"@aztec/prover-node": "1.0.0-nightly.20250805",
|
|
54
|
+
"@aztec/pxe": "1.0.0-nightly.20250805",
|
|
55
|
+
"@aztec/sequencer-client": "1.0.0-nightly.20250805",
|
|
56
|
+
"@aztec/simulator": "1.0.0-nightly.20250805",
|
|
57
|
+
"@aztec/slasher": "1.0.0-nightly.20250805",
|
|
58
|
+
"@aztec/stdlib": "1.0.0-nightly.20250805",
|
|
59
|
+
"@aztec/telemetry-client": "1.0.0-nightly.20250805",
|
|
60
|
+
"@aztec/validator-client": "1.0.0-nightly.20250805",
|
|
61
|
+
"@aztec/world-state": "1.0.0-nightly.20250805",
|
|
62
62
|
"@iarna/toml": "^2.2.5",
|
|
63
63
|
"@jest/globals": "^30.0.0",
|
|
64
64
|
"@noble/curves": "^1.0.0",
|
|
@@ -45,6 +45,7 @@ import {
|
|
|
45
45
|
export const WORLD_STATE_BLOCK_HISTORY = 2;
|
|
46
46
|
export const WORLD_STATE_BLOCK_CHECK_INTERVAL = 50;
|
|
47
47
|
export const ARCHIVER_POLL_INTERVAL = 50;
|
|
48
|
+
export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
|
|
48
49
|
|
|
49
50
|
export type EpochsTestOpts = Partial<SetupOptions> & { numberOfAccounts?: number };
|
|
50
51
|
|
|
@@ -86,7 +87,9 @@ export class EpochsTestContext {
|
|
|
86
87
|
}
|
|
87
88
|
|
|
88
89
|
public static getSlotDurations(opts: EpochsTestOpts = {}) {
|
|
89
|
-
const envEthereumSlotDuration = process.env.L1_BLOCK_TIME
|
|
90
|
+
const envEthereumSlotDuration = process.env.L1_BLOCK_TIME
|
|
91
|
+
? parseInt(process.env.L1_BLOCK_TIME)
|
|
92
|
+
: DEFAULT_L1_BLOCK_TIME;
|
|
90
93
|
const ethereumSlotDuration = opts.ethereumSlotDuration ?? envEthereumSlotDuration;
|
|
91
94
|
const aztecSlotDuration = opts.aztecSlotDuration ?? ethereumSlotDuration * 2;
|
|
92
95
|
const aztecEpochDuration = opts.aztecEpochDuration ?? 4;
|
|
@@ -245,7 +245,7 @@ export class P2PNetworkTest {
|
|
|
245
245
|
client: deployL1ContractsValues.l1Client,
|
|
246
246
|
});
|
|
247
247
|
|
|
248
|
-
const stakeNeeded = l1ContractsConfig.
|
|
248
|
+
const stakeNeeded = l1ContractsConfig.activationThreshold * BigInt(this.numberOfValidators);
|
|
249
249
|
await Promise.all(
|
|
250
250
|
[await stakingAsset.write.mint([multiAdder.address, stakeNeeded], {} as any)].map(txHash =>
|
|
251
251
|
deployL1ContractsValues.l1Client.waitForTransactionReceipt({ hash: txHash }),
|
package/src/fixtures/utils.ts
CHANGED
|
@@ -313,6 +313,8 @@ export type SetupOptions = {
|
|
|
313
313
|
automineL1Setup?: boolean;
|
|
314
314
|
/** How many accounts to seed and unlock in anvil. */
|
|
315
315
|
anvilAccounts?: number;
|
|
316
|
+
/** Port to start anvil (defaults to 8545) */
|
|
317
|
+
anvilPort?: number;
|
|
316
318
|
} & Partial<AztecNodeConfig>;
|
|
317
319
|
|
|
318
320
|
/** Context for an end-to-end test as returned by the `setup` function */
|
|
@@ -404,7 +406,11 @@ export async function setup(
|
|
|
404
406
|
);
|
|
405
407
|
}
|
|
406
408
|
|
|
407
|
-
const res = await startAnvil({
|
|
409
|
+
const res = await startAnvil({
|
|
410
|
+
l1BlockTime: opts.ethereumSlotDuration,
|
|
411
|
+
accounts: opts.anvilAccounts,
|
|
412
|
+
port: opts.anvilPort,
|
|
413
|
+
});
|
|
408
414
|
anvil = res.anvil;
|
|
409
415
|
config.l1RpcUrls = [res.rpcUrl];
|
|
410
416
|
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { AztecAddress, Fr, type L2Block } from '@aztec/aztec.js';
|
|
2
|
+
import { BatchedBlob, Blob } from '@aztec/blob-lib';
|
|
3
|
+
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
|
+
|
|
5
|
+
import { writeFile } from 'fs/promises';
|
|
6
|
+
|
|
7
|
+
const AZTEC_GENERATE_TEST_DATA = !!process.env.AZTEC_GENERATE_TEST_DATA;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Creates a json object that can be used to test the solidity contract.
|
|
11
|
+
* The json object must be put into
|
|
12
|
+
*/
|
|
13
|
+
export async function writeJson(
|
|
14
|
+
fileName: string,
|
|
15
|
+
block: L2Block,
|
|
16
|
+
l1ToL2Content: Fr[],
|
|
17
|
+
blobs: Blob[],
|
|
18
|
+
batchedBlob: BatchedBlob,
|
|
19
|
+
recipientAddress: AztecAddress,
|
|
20
|
+
deployerAddress: `0x${string}`,
|
|
21
|
+
): Promise<void> {
|
|
22
|
+
if (!AZTEC_GENERATE_TEST_DATA) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
// Path relative to the package.json in the end-to-end folder
|
|
26
|
+
const path = `../../l1-contracts/test/fixtures/${fileName}.json`;
|
|
27
|
+
|
|
28
|
+
const asHex = (value: Fr | Buffer | EthAddress | AztecAddress, size = 64) => {
|
|
29
|
+
const buffer = Buffer.isBuffer(value) ? value : value.toBuffer();
|
|
30
|
+
return `0x${buffer.toString('hex').padStart(size, '0')}`;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
const jsonObject = {
|
|
34
|
+
populate: {
|
|
35
|
+
l1ToL2Content: l1ToL2Content.map(asHex),
|
|
36
|
+
recipient: asHex(recipientAddress.toField()),
|
|
37
|
+
sender: deployerAddress,
|
|
38
|
+
},
|
|
39
|
+
messages: {
|
|
40
|
+
l2ToL1Messages: block.body.txEffects.flatMap(txEffect => txEffect.l2ToL1Msgs).map(asHex),
|
|
41
|
+
},
|
|
42
|
+
block: {
|
|
43
|
+
// The json formatting in forge is a bit brittle, so we convert Fr to a number in the few values below.
|
|
44
|
+
// This should not be a problem for testing as long as the values are not larger than u32.
|
|
45
|
+
archive: asHex(block.archive.root),
|
|
46
|
+
blobCommitments: Blob.getPrefixedEthBlobCommitments(blobs),
|
|
47
|
+
batchedBlobInputs: batchedBlob.getEthBlobEvaluationInputs(),
|
|
48
|
+
blockNumber: block.number,
|
|
49
|
+
body: `0x${block.body.toBuffer().toString('hex')}`,
|
|
50
|
+
header: {
|
|
51
|
+
lastArchiveRoot: asHex(block.header.lastArchive.root),
|
|
52
|
+
contentCommitment: {
|
|
53
|
+
blobsHash: asHex(block.header.contentCommitment.blobsHash),
|
|
54
|
+
inHash: asHex(block.header.contentCommitment.inHash),
|
|
55
|
+
outHash: asHex(block.header.contentCommitment.outHash),
|
|
56
|
+
},
|
|
57
|
+
slotNumber: Number(block.header.globalVariables.slotNumber),
|
|
58
|
+
timestamp: Number(block.header.globalVariables.timestamp),
|
|
59
|
+
coinbase: asHex(block.header.globalVariables.coinbase, 40),
|
|
60
|
+
feeRecipient: asHex(block.header.globalVariables.feeRecipient),
|
|
61
|
+
gasFees: {
|
|
62
|
+
feePerDaGas: Number(block.header.globalVariables.gasFees.feePerDaGas),
|
|
63
|
+
feePerL2Gas: Number(block.header.globalVariables.gasFees.feePerL2Gas),
|
|
64
|
+
},
|
|
65
|
+
totalManaUsed: block.header.totalManaUsed.toNumber(),
|
|
66
|
+
},
|
|
67
|
+
headerHash: asHex(block.header.toPropose().hash()),
|
|
68
|
+
numTxs: block.body.txEffects.length,
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
const output = JSON.stringify(jsonObject, null, 2);
|
|
73
|
+
await writeFile(path, output, 'utf8');
|
|
74
|
+
}
|
|
@@ -290,10 +290,10 @@ export const uniswapL1L2TestSuite = (
|
|
|
290
290
|
withdrawLeaf,
|
|
291
291
|
);
|
|
292
292
|
|
|
293
|
-
const swapPrivateL2MessageIndex = swapResult!.
|
|
293
|
+
const swapPrivateL2MessageIndex = swapResult!.leafIndex;
|
|
294
294
|
const swapPrivateSiblingPath = swapResult!.siblingPath;
|
|
295
295
|
|
|
296
|
-
const withdrawL2MessageIndex = withdrawResult!.
|
|
296
|
+
const withdrawL2MessageIndex = withdrawResult!.leafIndex;
|
|
297
297
|
const withdrawSiblingPath = withdrawResult!.siblingPath;
|
|
298
298
|
|
|
299
299
|
const withdrawMessageMetadata = {
|
|
@@ -868,10 +868,10 @@ export const uniswapL1L2TestSuite = (
|
|
|
868
868
|
withdrawLeaf,
|
|
869
869
|
);
|
|
870
870
|
|
|
871
|
-
const swapPrivateL2MessageIndex = swapResult!.
|
|
871
|
+
const swapPrivateL2MessageIndex = swapResult!.leafIndex;
|
|
872
872
|
const swapPrivateSiblingPath = swapResult!.siblingPath;
|
|
873
873
|
|
|
874
|
-
const withdrawL2MessageIndex = withdrawResult!.
|
|
874
|
+
const withdrawL2MessageIndex = withdrawResult!.leafIndex;
|
|
875
875
|
const withdrawSiblingPath = withdrawResult!.siblingPath;
|
|
876
876
|
|
|
877
877
|
const withdrawMessageMetadata = {
|
|
@@ -1002,10 +1002,10 @@ export const uniswapL1L2TestSuite = (
|
|
|
1002
1002
|
withdrawLeaf,
|
|
1003
1003
|
);
|
|
1004
1004
|
|
|
1005
|
-
const swapPublicL2MessageIndex = swapResult!.
|
|
1005
|
+
const swapPublicL2MessageIndex = swapResult!.leafIndex;
|
|
1006
1006
|
const swapPublicSiblingPath = swapResult!.siblingPath;
|
|
1007
1007
|
|
|
1008
|
-
const withdrawL2MessageIndex = withdrawResult!.
|
|
1008
|
+
const withdrawL2MessageIndex = withdrawResult!.leafIndex;
|
|
1009
1009
|
const withdrawSiblingPath = withdrawResult!.siblingPath;
|
|
1010
1010
|
|
|
1011
1011
|
const withdrawMessageMetadata = {
|