Skip to content

Commit

Permalink
feat: slot duration flexibility
Browse files Browse the repository at this point in the history
  • Loading branch information
LHerskind committed Aug 21, 2024
1 parent bf38d61 commit e55098b
Show file tree
Hide file tree
Showing 24 changed files with 634 additions and 303 deletions.
9 changes: 6 additions & 3 deletions l1-contracts/src/core/Rollup.sol
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,11 @@ contract Rollup is Leonidas, IRollup, ITestRollup {
VERSION = 1;

// Genesis block
blocks[0] = BlockLog({archive: bytes32(0), slotNumber: 0, isProven: true});
blocks[0] = BlockLog({
archive: bytes32(0x1200a06aae1368abe36530b585bd7a4d2ba4de5037b82076412691a187d7621e),
slotNumber: 0,
isProven: true
});
pendingBlockCount = 1;
provenBlockCount = 1;
}
Expand Down Expand Up @@ -526,9 +530,8 @@ contract Rollup is Leonidas, IRollup, ITestRollup {
);
}

// TODO(#4148) Proper genesis state. If the state is empty, we allow anything for now.
bytes32 tipArchive = archive();
if (tipArchive != bytes32(0) && tipArchive != _header.lastArchive.root) {
if (tipArchive != _header.lastArchive.root) {
revert Errors.Rollup__InvalidArchive(tipArchive, _header.lastArchive.root);
}

Expand Down
4 changes: 3 additions & 1 deletion l1-contracts/src/core/libraries/ConstantsGen.sol
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,9 @@ library Constants {
uint256 internal constant INITIAL_L2_BLOCK_NUM = 1;
uint256 internal constant BLOB_SIZE_IN_BYTES = 126976;
uint256 internal constant ETHEREUM_SLOT_DURATION = 12;
uint256 internal constant IS_DEV_NET = 1;
uint256 internal constant AZTEC_SLOT_DURATION = 36;
uint256 internal constant AZTEC_EPOCH_DURATION = 48;
uint256 internal constant IS_DEV_NET = 0;
uint256 internal constant FEE_JUICE_INITIAL_MINT = 20000000000;
uint256 internal constant MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS = 20000;
uint256 internal constant MAX_PACKED_BYTECODE_SIZE_PER_PRIVATE_FUNCTION_IN_FIELDS = 3000;
Expand Down
2 changes: 1 addition & 1 deletion l1-contracts/src/core/libraries/Errors.sol
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ library Errors {
error Leonidas__EpochNotSetup(); // 0xcf4e597e
error Leonidas__InvalidProposer(address expected, address actual); // 0xd02d278e
error Leonidas__InsufficientAttestations(uint256 minimumNeeded, uint256 provided); // 0xbf1ca4cb
error Leonidas__InsufficientAttestationsProvided(uint256 minimumNeeded, uint256 provided); // 0x2e7debe9
error Leonidas__InsufficientAttestationsProvided(uint256 minimumNeeded, uint256 provided); // 0xb3a697c2

// Fee Juice Portal
error FeeJuicePortal__AlreadyInitialized(); // 0xc7a172fe
Expand Down
4 changes: 2 additions & 2 deletions l1-contracts/src/core/sequencer_selection/Leonidas.sol
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,12 @@ contract Leonidas is Ownable, ILeonidas {
//
// The value should be a higher multiple for any actual chain
// @todo #8019
uint256 public constant SLOT_DURATION = Constants.ETHEREUM_SLOT_DURATION * 1;
uint256 public constant SLOT_DURATION = Constants.AZTEC_SLOT_DURATION;

// The duration of an epoch in slots
// @todo @LHerskind - This value should be updated when we are not blind.
// @todo #8020
uint256 public constant EPOCH_DURATION = 32;
uint256 public constant EPOCH_DURATION = Constants.AZTEC_EPOCH_DURATION;

// The target number of validators in a committee
// @todo #8021
Expand Down
9 changes: 9 additions & 0 deletions l1-contracts/test/Rollup.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,9 @@ contract RollupTest is DecoderBase {
bytes32 archive = data.archive;
bytes memory body = data.body;

// Progress time as necessary
vm.warp(max(block.timestamp, data.decodedHeader.globalVariables.timestamp));

assembly {
mstore(add(header, add(0x20, 0x0248)), feeAmount)
}
Expand Down Expand Up @@ -303,6 +306,9 @@ contract RollupTest is DecoderBase {

function testBlocksWithAssumeProven() public setUpFor("mixed_block_1") {
rollup.setAssumeProvenUntilBlockNumber(2);
assertEq(rollup.pendingBlockCount(), 1, "Invalid pending block count");
assertEq(rollup.provenBlockCount(), 1, "Invalid proven block count");

_testBlock("mixed_block_1", false);
_testBlock("mixed_block_2", false);

Expand All @@ -311,6 +317,9 @@ contract RollupTest is DecoderBase {
}

function testSetAssumeProvenAfterBlocksProcessed() public setUpFor("mixed_block_1") {
assertEq(rollup.pendingBlockCount(), 1, "Invalid pending block count");
assertEq(rollup.provenBlockCount(), 1, "Invalid proven block count");

_testBlock("mixed_block_1", false);
_testBlock("mixed_block_2", false);
rollup.setAssumeProvenUntilBlockNumber(2);
Expand Down
14 changes: 7 additions & 7 deletions l1-contracts/test/fixtures/empty_block_1.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"l2ToL1Messages": []
},
"block": {
"archive": "0x0b97584f2e175ce708df94c14fee5e53d1c92cd5308346c6eabb79005ccf6733",
"archive": "0x0f1c8759c5d468bc2923b86ca6489d28a90698c79e7dcab441e5a3bef80a8bea",
"body": "0x00000000",
"txsEffectsHash": "0x00e994e16b3763fd5039413cf99c2b3c378e2bab939e7992a77bd201b28160d6",
"decodedHeader": {
Expand All @@ -20,12 +20,12 @@
},
"globalVariables": {
"blockNumber": 1,
"slotNumber": "0x0000000000000000000000000000000000000000000000000000000000000005",
"slotNumber": "0x0000000000000000000000000000000000000000000000000000000000000031",
"chainId": 31337,
"timestamp": 1723460388,
"timestamp": 1724273554,
"version": 1,
"coinbase": "0x92c3bc662a41b5406370e6e30b6e4541c9c223e3",
"feeRecipient": "0x2af4d139729812fa69edfc27fc2d19b3d2616c9e4ec2313efb66fb2f234d59da",
"coinbase": "0x15b9be2e7cb33a2fcbb4329e6c5ef65aeffe27e3",
"feeRecipient": "0x01f04e3f96a8bc93bbefcf569bf0e7538d240c089133389702f2fc6c128b8170",
"gasFees": {
"feePerDaGas": 0,
"feePerL2Gas": 0
Expand Down Expand Up @@ -56,8 +56,8 @@
}
}
},
"header": "0x1200a06aae1368abe36530b585bd7a4d2ba4de5037b82076412691a187d7621e00000001000000000000000000000000000000000000000000000000000000000000000200e994e16b3763fd5039413cf99c2b3c378e2bab939e7992a77bd201b28160d600089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c00f5a5fd42d16a20302798ef6ed309979b43003d2320d9f0e8ea9831a92759fb14f44d672eb357739e42463497f9fdac46623af863eea4d947ca00a497dcdeb3000000100b59baa35b9dc267744f0ccb4e3b0255c1fc512460d91130c6bc19fb2668568d0000008019a8c197c12bb33da6314c4ef4f8f6fcb9e25250c085df8672adf67c8f1e3dbc0000010023c08a6b1297210c5e24c76b9a936250a1ce2721576c26ea797c7ec35f9e46a9000001000000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000066b9eb2492c3bc662a41b5406370e6e30b6e4541c9c223e32af4d139729812fa69edfc27fc2d19b3d2616c9e4ec2313efb66fb2f234d59da000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"publicInputsHash": "0x00330b9ccec92816ea3dd5fefce65cdb3803cf663cf2959f403501ff1f27a73c",
"header": "0x1200a06aae1368abe36530b585bd7a4d2ba4de5037b82076412691a187d7621e00000001000000000000000000000000000000000000000000000000000000000000000200e994e16b3763fd5039413cf99c2b3c378e2bab939e7992a77bd201b28160d600089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c00f5a5fd42d16a20302798ef6ed309979b43003d2320d9f0e8ea9831a92759fb14f44d672eb357739e42463497f9fdac46623af863eea4d947ca00a497dcdeb3000000100b59baa35b9dc267744f0ccb4e3b0255c1fc512460d91130c6bc19fb2668568d0000008019a8c197c12bb33da6314c4ef4f8f6fcb9e25250c085df8672adf67c8f1e3dbc0000010023c08a6b1297210c5e24c76b9a936250a1ce2721576c26ea797c7ec35f9e46a9000001000000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000066c6539215b9be2e7cb33a2fcbb4329e6c5ef65aeffe27e301f04e3f96a8bc93bbefcf569bf0e7538d240c089133389702f2fc6c128b8170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"publicInputsHash": "0x00f44db060111d0b69ed4305560101aa0b4b2bbe49dba30bcbc59a7f441aa3aa",
"numTxs": 0
}
}
16 changes: 8 additions & 8 deletions l1-contracts/test/fixtures/empty_block_2.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"l2ToL1Messages": []
},
"block": {
"archive": "0x1d77208270a6eca3c2b56adaad130b28e2fa111d6bc325ce3cc52b6a68f4894f",
"archive": "0x1ff51fd469761e649b7538a6095cdc2ce1510773cabba6920e9883d56c7c4073",
"body": "0x00000000",
"txsEffectsHash": "0x00e994e16b3763fd5039413cf99c2b3c378e2bab939e7992a77bd201b28160d6",
"decodedHeader": {
Expand All @@ -20,20 +20,20 @@
},
"globalVariables": {
"blockNumber": 2,
"slotNumber": "0x0000000000000000000000000000000000000000000000000000000000000006",
"slotNumber": "0x0000000000000000000000000000000000000000000000000000000000000033",
"chainId": 31337,
"timestamp": 1723460400,
"timestamp": 1724273626,
"version": 1,
"coinbase": "0x92c3bc662a41b5406370e6e30b6e4541c9c223e3",
"feeRecipient": "0x2af4d139729812fa69edfc27fc2d19b3d2616c9e4ec2313efb66fb2f234d59da",
"coinbase": "0x15b9be2e7cb33a2fcbb4329e6c5ef65aeffe27e3",
"feeRecipient": "0x01f04e3f96a8bc93bbefcf569bf0e7538d240c089133389702f2fc6c128b8170",
"gasFees": {
"feePerDaGas": 0,
"feePerL2Gas": 0
}
},
"lastArchive": {
"nextAvailableLeafIndex": 2,
"root": "0x0b97584f2e175ce708df94c14fee5e53d1c92cd5308346c6eabb79005ccf6733"
"root": "0x0f1c8759c5d468bc2923b86ca6489d28a90698c79e7dcab441e5a3bef80a8bea"
},
"stateReference": {
"l1ToL2MessageTree": {
Expand All @@ -56,8 +56,8 @@
}
}
},
"header": "0x0b97584f2e175ce708df94c14fee5e53d1c92cd5308346c6eabb79005ccf673300000002000000000000000000000000000000000000000000000000000000000000000200e994e16b3763fd5039413cf99c2b3c378e2bab939e7992a77bd201b28160d600089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c00f5a5fd42d16a20302798ef6ed309979b43003d2320d9f0e8ea9831a92759fb14f44d672eb357739e42463497f9fdac46623af863eea4d947ca00a497dcdeb3000000200b59baa35b9dc267744f0ccb4e3b0255c1fc512460d91130c6bc19fb2668568d0000010019a8c197c12bb33da6314c4ef4f8f6fcb9e25250c085df8672adf67c8f1e3dbc0000018023c08a6b1297210c5e24c76b9a936250a1ce2721576c26ea797c7ec35f9e46a9000001800000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000066b9eb3092c3bc662a41b5406370e6e30b6e4541c9c223e32af4d139729812fa69edfc27fc2d19b3d2616c9e4ec2313efb66fb2f234d59da000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"publicInputsHash": "0x006ccf0ce5551a2a07b16c10a4b208bd30403231409d44cedac9b6d489b9f212",
"header": "0x0f1c8759c5d468bc2923b86ca6489d28a90698c79e7dcab441e5a3bef80a8bea00000002000000000000000000000000000000000000000000000000000000000000000200e994e16b3763fd5039413cf99c2b3c378e2bab939e7992a77bd201b28160d600089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c00f5a5fd42d16a20302798ef6ed309979b43003d2320d9f0e8ea9831a92759fb14f44d672eb357739e42463497f9fdac46623af863eea4d947ca00a497dcdeb3000000200b59baa35b9dc267744f0ccb4e3b0255c1fc512460d91130c6bc19fb2668568d0000010019a8c197c12bb33da6314c4ef4f8f6fcb9e25250c085df8672adf67c8f1e3dbc0000018023c08a6b1297210c5e24c76b9a936250a1ce2721576c26ea797c7ec35f9e46a9000001800000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000330000000000000000000000000000000000000000000000000000000066c653da15b9be2e7cb33a2fcbb4329e6c5ef65aeffe27e301f04e3f96a8bc93bbefcf569bf0e7538d240c089133389702f2fc6c128b8170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"publicInputsHash": "0x001d78131989b826aabf44621ab134c2eb31c676c72a3936295a37b36ce609a5",
"numTxs": 0
}
}
14 changes: 7 additions & 7 deletions l1-contracts/test/fixtures/mixed_block_1.json

Large diffs are not rendered by default.

16 changes: 8 additions & 8 deletions l1-contracts/test/fixtures/mixed_block_2.json

Large diffs are not rendered by default.

40 changes: 7 additions & 33 deletions l1-contracts/test/sparta/Sparta.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -109,12 +109,9 @@ contract SpartaTest is DecoderBase {
}

assertGt(rollup.getValidators().length, rollup.TARGET_COMMITTEE_SIZE(), "Not enough validators");
_testBlock("mixed_block_1", false, 0, false); // We run a block before the epoch with validators

uint256 ts = block.timestamp + rollup.EPOCH_DURATION() * rollup.SLOT_DURATION();

uint256 committeSize = rollup.TARGET_COMMITTEE_SIZE() * 2 / 3 + (_insufficientSigs ? 0 : 1);
_testBlock("mixed_block_2", _insufficientSigs, committeSize, false, ts); // We need signatures!

_testBlock("mixed_block_1", _insufficientSigs, committeSize, false);

assertEq(
rollup.getEpochCommittee(rollup.getCurrentEpoch()).length,
Expand All @@ -128,7 +125,7 @@ contract SpartaTest is DecoderBase {
return;
}

_testBlock("mixed_block_1", false, 0, false); // We run a block before the epoch with validators
_testBlock("mixed_block_1", false, 3, false); // We run a block before the epoch with validators
_testBlock("mixed_block_2", false, 3, false); // We need signatures!
}

Expand All @@ -137,17 +134,15 @@ contract SpartaTest is DecoderBase {
return;
}

_testBlock("mixed_block_1", false, 0, false); // We run a block before the epoch with validators
_testBlock("mixed_block_2", true, 3, true); // We need signatures!
_testBlock("mixed_block_1", true, 3, true);
}

function testInsufficientSigs() public setup(4) {
if (Constants.IS_DEV_NET == 1) {
return;
}

_testBlock("mixed_block_1", false, 0, false); // We run a block before the epoch with validators
_testBlock("mixed_block_2", true, 2, false); // We need signatures!
_testBlock("mixed_block_1", true, 2, false);
}

struct StructToAvoidDeepStacks {
Expand All @@ -161,16 +156,6 @@ contract SpartaTest is DecoderBase {
bool _expectRevert,
uint256 _signatureCount,
bool _invalidaProposer
) internal {
_testBlock(_name, _expectRevert, _signatureCount, _invalidaProposer, 0);
}

function _testBlock(
string memory _name,
bool _expectRevert,
uint256 _signatureCount,
bool _invalidaProposer,
uint256 _ts
) internal {
DecoderBase.Full memory full = load(_name);
bytes memory header = full.block.header;
Expand All @@ -180,18 +165,7 @@ contract SpartaTest is DecoderBase {
StructToAvoidDeepStacks memory ree;

// We jump to the time of the block. (unless it is in the past)
vm.warp(max(block.timestamp, max(full.block.decodedHeader.globalVariables.timestamp, _ts)));

if (_ts > 0) {
// Update the timestamp and slot in the header
uint256 slotValue = rollup.getCurrentSlot();
uint256 timestampMemoryPosition = 0x01b4;
uint256 slotMemoryPosition = 0x0194;
assembly {
mstore(add(header, add(0x20, timestampMemoryPosition)), _ts)
mstore(add(header, add(0x20, slotMemoryPosition)), slotValue)
}
}
vm.warp(max(block.timestamp, full.block.decodedHeader.globalVariables.timestamp));

_populateInbox(full.populate.sender, full.populate.recipient, full.populate.l1ToL2Content);

Expand Down Expand Up @@ -248,7 +222,7 @@ contract SpartaTest is DecoderBase {
rollup.process(header, archive);
}

assertEq(_expectRevert, ree.shouldRevert, "Invalid revert expectation");
assertEq(_expectRevert, ree.shouldRevert, "Does not match revert expectation");

bytes32 l2ToL1MessageTreeRoot;
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -132,8 +132,10 @@ global INITIALIZATION_SLOT_SEPARATOR: Field = 1000_000_000;
global INITIAL_L2_BLOCK_NUM: Field = 1;
global BLOB_SIZE_IN_BYTES: Field = 31 * 4096;
global ETHEREUM_SLOT_DURATION: u32 = 12;
global IS_DEV_NET: bool = true;
// The following and the value in `deploy_l1_contracts´ must match. We should not have the code both places, but
global AZTEC_SLOT_DURATION: u32 = ETHEREUM_SLOT_DURATION * 3;
global AZTEC_EPOCH_DURATION: u32 = 48;
global IS_DEV_NET: bool = false;
// The following and the value in `deploy_l1_contracts´ must match. We should not have the code both places, but
// we are running into circular dependency issues. #3342
global FEE_JUICE_INITIAL_MINT: Field = 20000000000;

Expand Down
4 changes: 3 additions & 1 deletion yarn-project/circuits.js/src/constants.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,9 @@ export const INITIALIZATION_SLOT_SEPARATOR = 1000000000;
export const INITIAL_L2_BLOCK_NUM = 1;
export const BLOB_SIZE_IN_BYTES = 126976;
export const ETHEREUM_SLOT_DURATION = 12;
export const IS_DEV_NET = 1;
export const AZTEC_SLOT_DURATION = 36;
export const AZTEC_EPOCH_DURATION = 48;
export const IS_DEV_NET = 0;
export const FEE_JUICE_INITIAL_MINT = 20000000000;
export const MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS = 20000;
export const MAX_PACKED_BYTECODE_SIZE_PER_PRIVATE_FUNCTION_IN_FIELDS = 3000;
Expand Down
12 changes: 6 additions & 6 deletions yarn-project/end-to-end/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@
"clean": "rm -rf ./dest .tsbuildinfo",
"formatting": "run -T prettier --check ./src \"!src/web/main.js\" && run -T eslint ./src",
"formatting:fix": "run -T eslint --fix ./src && run -T prettier -w ./src",
"test": "LOG_LEVEL=${LOG_LEVEL:-verbose} DEBUG_COLORS=1 NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --testTimeout=300000 --forceExit",
"test:profile": "LOG_LEVEL=${LOG_LEVEL:-verbose} DEBUG_COLORS=1 NODE_NO_WARNINGS=1 0x --output-dir \"flame_graph/{pid}.0x\" -- node --experimental-vm-modules ../node_modules/jest/bin/jest.js --runInBand --testTimeout=300000 --forceExit",
"test": "TIME_TRAVELER=${TIME_TRAVELER:-true} LOG_LEVEL=${LOG_LEVEL:-verbose} DEBUG_COLORS=1 NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --testTimeout=300000 --forceExit",
"test:profile": "TIME_TRAVELER=${TIME_TRAVELER:-true} LOG_LEVEL=${LOG_LEVEL:-verbose} DEBUG_COLORS=1 NODE_NO_WARNINGS=1 0x --output-dir \"flame_graph/{pid}.0x\" -- node --experimental-vm-modules ../node_modules/jest/bin/jest.js --runInBand --testTimeout=300000 --forceExit",
"serve:flames": "python3 -m http.server --directory \"flame_graph\" 8000",
"test:debug": "LOG_LEVEL=${LOG_LEVEL:-verbose} DEBUG_COLORS=1 NODE_NO_WARNINGS=1 node --inspect --experimental-vm-modules ../node_modules/.bin/jest --testTimeout=300000 --forceExit",
"test:integration": "concurrently -k -s first -c reset,dim -n test,anvil \"yarn test:integration:run\" \"anvil\"",
"test:integration:run": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --no-cache --runInBand --config jest.integration.config.json",
"test:unit": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest src/fixtures"
"test:debug": "TIME_TRAVELER=${TIME_TRAVELER:-true} LOG_LEVEL=${LOG_LEVEL:-verbose} DEBUG_COLORS=1 NODE_NO_WARNINGS=1 node --inspect --experimental-vm-modules ../node_modules/.bin/jest --testTimeout=300000 --forceExit",
"test:integration": "TIME_TRAVELER=${TIME_TRAVELER:-true} concurrently -k -s first -c reset,dim -n test,anvil \"yarn test:integration:run\" \"anvil\"",
"test:integration:run": "TIME_TRAVELER=${TIME_TRAVELER:-true} NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --no-cache --runInBand --config jest.integration.config.json",
"test:unit": "TIME_TRAVELER=${TIME_TRAVELER:-true} NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest src/fixtures"
},
"dependencies": {
"@aztec/accounts": "workspace:^",
Expand Down
Loading

0 comments on commit e55098b

Please sign in to comment.