@aztec/ethereum 0.0.1-commit.f2ce05ee → 0.0.1-commit.f5d02921e

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.
Files changed (129) hide show
  1. package/dest/client.d.ts +10 -2
  2. package/dest/client.d.ts.map +1 -1
  3. package/dest/client.js +13 -7
  4. package/dest/config.d.ts +3 -1
  5. package/dest/config.d.ts.map +1 -1
  6. package/dest/config.js +10 -2
  7. package/dest/contracts/empire_base.d.ts +3 -1
  8. package/dest/contracts/empire_base.d.ts.map +1 -1
  9. package/dest/contracts/empire_slashing_proposer.d.ts +3 -1
  10. package/dest/contracts/empire_slashing_proposer.d.ts.map +1 -1
  11. package/dest/contracts/empire_slashing_proposer.js +9 -0
  12. package/dest/contracts/fee_asset_price_oracle.d.ts +101 -0
  13. package/dest/contracts/fee_asset_price_oracle.d.ts.map +1 -0
  14. package/dest/contracts/fee_asset_price_oracle.js +651 -0
  15. package/dest/contracts/governance.js +3 -3
  16. package/dest/contracts/governance_proposer.d.ts +3 -1
  17. package/dest/contracts/governance_proposer.d.ts.map +1 -1
  18. package/dest/contracts/governance_proposer.js +9 -0
  19. package/dest/contracts/index.d.ts +2 -1
  20. package/dest/contracts/index.d.ts.map +1 -1
  21. package/dest/contracts/index.js +1 -0
  22. package/dest/contracts/multicall.d.ts +51 -2
  23. package/dest/contracts/multicall.d.ts.map +1 -1
  24. package/dest/contracts/multicall.js +85 -0
  25. package/dest/contracts/registry.d.ts +3 -1
  26. package/dest/contracts/registry.d.ts.map +1 -1
  27. package/dest/contracts/registry.js +30 -1
  28. package/dest/contracts/rollup.d.ts +45 -9
  29. package/dest/contracts/rollup.d.ts.map +1 -1
  30. package/dest/contracts/rollup.js +209 -17
  31. package/dest/deploy_aztec_l1_contracts.d.ts +2 -3
  32. package/dest/deploy_aztec_l1_contracts.d.ts.map +1 -1
  33. package/dest/deploy_aztec_l1_contracts.js +33 -19
  34. package/dest/deploy_l1_contract.js +3 -3
  35. package/dest/generated/l1-contracts-defaults.d.ts +1 -1
  36. package/dest/generated/l1-contracts-defaults.js +1 -1
  37. package/dest/l1_artifacts.d.ts +1051 -42
  38. package/dest/l1_artifacts.d.ts.map +1 -1
  39. package/dest/l1_reader.d.ts +3 -1
  40. package/dest/l1_reader.d.ts.map +1 -1
  41. package/dest/l1_reader.js +6 -1
  42. package/dest/l1_tx_utils/config.d.ts +7 -1
  43. package/dest/l1_tx_utils/config.d.ts.map +1 -1
  44. package/dest/l1_tx_utils/config.js +14 -1
  45. package/dest/l1_tx_utils/factory.d.ts +18 -10
  46. package/dest/l1_tx_utils/factory.d.ts.map +1 -1
  47. package/dest/l1_tx_utils/factory.js +17 -7
  48. package/dest/l1_tx_utils/fee-strategies/p75_competitive.js +1 -1
  49. package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.js +1 -1
  50. package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts +15 -15
  51. package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts.map +1 -1
  52. package/dest/l1_tx_utils/forwarder_l1_tx_utils.js +9 -15
  53. package/dest/l1_tx_utils/index-blobs.d.ts +3 -3
  54. package/dest/l1_tx_utils/index-blobs.d.ts.map +1 -1
  55. package/dest/l1_tx_utils/index-blobs.js +2 -2
  56. package/dest/l1_tx_utils/index.d.ts +2 -1
  57. package/dest/l1_tx_utils/index.d.ts.map +1 -1
  58. package/dest/l1_tx_utils/index.js +1 -0
  59. package/dest/l1_tx_utils/l1_tx_utils.d.ts +20 -7
  60. package/dest/l1_tx_utils/l1_tx_utils.d.ts.map +1 -1
  61. package/dest/l1_tx_utils/l1_tx_utils.js +74 -50
  62. package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts +1 -1
  63. package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts.map +1 -1
  64. package/dest/l1_tx_utils/readonly_l1_tx_utils.js +8 -4
  65. package/dest/l1_tx_utils/tx_delayer.d.ts +56 -0
  66. package/dest/l1_tx_utils/tx_delayer.d.ts.map +1 -0
  67. package/dest/{test → l1_tx_utils}/tx_delayer.js +62 -34
  68. package/dest/publisher_manager.d.ts +21 -7
  69. package/dest/publisher_manager.d.ts.map +1 -1
  70. package/dest/publisher_manager.js +81 -7
  71. package/dest/test/chain_monitor.d.ts +22 -3
  72. package/dest/test/chain_monitor.d.ts.map +1 -1
  73. package/dest/test/chain_monitor.js +33 -2
  74. package/dest/test/eth_cheat_codes.d.ts +6 -4
  75. package/dest/test/eth_cheat_codes.d.ts.map +1 -1
  76. package/dest/test/eth_cheat_codes.js +6 -4
  77. package/dest/test/index.d.ts +1 -3
  78. package/dest/test/index.d.ts.map +1 -1
  79. package/dest/test/index.js +0 -2
  80. package/dest/test/start_anvil.d.ts +23 -3
  81. package/dest/test/start_anvil.d.ts.map +1 -1
  82. package/dest/test/start_anvil.js +143 -29
  83. package/dest/test/upgrade_utils.js +2 -2
  84. package/dest/utils.d.ts +1 -1
  85. package/dest/utils.d.ts.map +1 -1
  86. package/dest/utils.js +16 -12
  87. package/package.json +5 -7
  88. package/src/client.ts +10 -2
  89. package/src/config.ts +14 -1
  90. package/src/contracts/empire_base.ts +2 -0
  91. package/src/contracts/empire_slashing_proposer.ts +6 -0
  92. package/src/contracts/fee_asset_price_oracle.ts +280 -0
  93. package/src/contracts/governance.ts +3 -3
  94. package/src/contracts/governance_proposer.ts +6 -0
  95. package/src/contracts/index.ts +1 -0
  96. package/src/contracts/multicall.ts +65 -1
  97. package/src/contracts/registry.ts +31 -1
  98. package/src/contracts/rollup.ts +244 -29
  99. package/src/deploy_aztec_l1_contracts.ts +56 -29
  100. package/src/deploy_l1_contract.ts +3 -3
  101. package/src/generated/l1-contracts-defaults.ts +1 -1
  102. package/src/l1_reader.ts +13 -1
  103. package/src/l1_tx_utils/config.ts +20 -0
  104. package/src/l1_tx_utils/factory.ts +31 -31
  105. package/src/l1_tx_utils/fee-strategies/p75_competitive.ts +1 -1
  106. package/src/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.ts +1 -1
  107. package/src/l1_tx_utils/forwarder_l1_tx_utils.ts +43 -54
  108. package/src/l1_tx_utils/index-blobs.ts +2 -2
  109. package/src/l1_tx_utils/index.ts +1 -0
  110. package/src/l1_tx_utils/l1_tx_utils.ts +67 -29
  111. package/src/l1_tx_utils/readonly_l1_tx_utils.ts +8 -4
  112. package/src/{test → l1_tx_utils}/tx_delayer.ts +78 -50
  113. package/src/publisher_manager.ts +105 -10
  114. package/src/test/chain_monitor.ts +60 -3
  115. package/src/test/eth_cheat_codes.ts +6 -4
  116. package/src/test/index.ts +0 -2
  117. package/src/test/start_anvil.ts +177 -29
  118. package/src/test/upgrade_utils.ts +2 -2
  119. package/src/utils.ts +17 -14
  120. package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts +0 -26
  121. package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts.map +0 -1
  122. package/dest/l1_tx_utils/l1_tx_utils_with_blobs.js +0 -26
  123. package/dest/test/delayed_tx_utils.d.ts +0 -13
  124. package/dest/test/delayed_tx_utils.d.ts.map +0 -1
  125. package/dest/test/delayed_tx_utils.js +0 -28
  126. package/dest/test/tx_delayer.d.ts +0 -36
  127. package/dest/test/tx_delayer.d.ts.map +0 -1
  128. package/src/l1_tx_utils/l1_tx_utils_with_blobs.ts +0 -77
  129. package/src/test/delayed_tx_utils.ts +0 -52
@@ -376,12 +376,13 @@ import { Buffer32 } from '@aztec/foundation/buffer';
376
376
  import { Fr } from '@aztec/foundation/curves/bn254';
377
377
  import { memoize } from '@aztec/foundation/decorators';
378
378
  import { EthAddress } from '@aztec/foundation/eth-address';
379
+ import { createLogger } from '@aztec/foundation/log';
379
380
  import { makeBackoff, retry } from '@aztec/foundation/retry';
380
381
  import { EscapeHatchAbi } from '@aztec/l1-artifacts/EscapeHatchAbi';
381
382
  import { RollupAbi } from '@aztec/l1-artifacts/RollupAbi';
382
383
  import { RollupStorage } from '@aztec/l1-artifacts/RollupStorage';
383
384
  import chunk from 'lodash.chunk';
384
- import { encodeFunctionData, getContract, hexToBigInt, keccak256 } from 'viem';
385
+ import { encodeAbiParameters, encodeFunctionData, getContract, hexToBigInt, keccak256 } from 'viem';
385
386
  import { getPublicClient } from '../client.js';
386
387
  import { formatViemError } from '../utils.js';
387
388
  import { EmpireSlashingProposerContract } from './empire_slashing_proposer.js';
@@ -499,6 +500,16 @@ export class RollupContract {
499
500
  2,
500
501
  "getGenesisArchiveTreeRoot"
501
502
  ],
503
+ [
504
+ memoize,
505
+ 2,
506
+ "getVkTreeRoot"
507
+ ],
508
+ [
509
+ memoize,
510
+ 2,
511
+ "getProtocolContractsHash"
512
+ ],
502
513
  [
503
514
  memoize,
504
515
  2,
@@ -507,6 +518,7 @@ export class RollupContract {
507
518
  ], []));
508
519
  }
509
520
  rollup;
521
+ logger;
510
522
  static cachedStfStorageSlot;
511
523
  cachedEscapeHatch;
512
524
  static get checkBlobStorageSlot() {
@@ -530,7 +542,7 @@ export class RollupContract {
530
542
  }
531
543
  constructor(client, address){
532
544
  this.client = client;
533
- _initProto(this);
545
+ this.logger = (_initProto(this), createLogger('ethereum:rollup'));
534
546
  if (address instanceof EthAddress) {
535
547
  address = address.toString();
536
548
  }
@@ -640,18 +652,35 @@ export class RollupContract {
640
652
  0n
641
653
  ]));
642
654
  }
655
+ async getVkTreeRoot() {
656
+ const slot = BigInt(RollupContract.stfStorageSlot) + 3n;
657
+ const value = await this.client.getStorageAt({
658
+ address: this.address,
659
+ slot: `0x${slot.toString(16)}`
660
+ });
661
+ return Fr.fromString(value ?? '0x0');
662
+ }
663
+ async getProtocolContractsHash() {
664
+ const slot = BigInt(RollupContract.stfStorageSlot) + 4n;
665
+ const value = await this.client.getStorageAt({
666
+ address: this.address,
667
+ slot: `0x${slot.toString(16)}`
668
+ });
669
+ return Fr.fromString(value ?? '0x0');
670
+ }
643
671
  /**
644
672
  * Returns rollup constants used for epoch queries.
645
673
  * Return type is `L1RollupConstants` which is defined in stdlib,
646
674
  * so we cant reference it until we move this contract to that package.
647
675
  */ async getRollupConstants() {
648
- const [l1StartBlock, l1GenesisTime, slotDuration, epochDuration, proofSubmissionEpochs, targetCommitteeSize] = await Promise.all([
676
+ const [l1StartBlock, l1GenesisTime, slotDuration, epochDuration, proofSubmissionEpochs, targetCommitteeSize, rollupManaLimit] = await Promise.all([
649
677
  this.getL1StartBlock(),
650
678
  this.getL1GenesisTime(),
651
679
  this.getSlotDuration(),
652
680
  this.getEpochDuration(),
653
681
  this.getProofSubmissionEpochs(),
654
- this.getTargetCommitteeSize()
682
+ this.getTargetCommitteeSize(),
683
+ this.getManaLimit()
655
684
  ]);
656
685
  return {
657
686
  l1StartBlock,
@@ -659,7 +688,8 @@ export class RollupContract {
659
688
  slotDuration,
660
689
  epochDuration: Number(epochDuration),
661
690
  proofSubmissionEpochs: Number(proofSubmissionEpochs),
662
- targetCommitteeSize
691
+ targetCommitteeSize,
692
+ rollupManaLimit: Number(rollupManaLimit)
663
693
  };
664
694
  }
665
695
  async getSlasherAddress() {
@@ -705,7 +735,11 @@ export class RollupContract {
705
735
  BigInt(epoch)
706
736
  ]);
707
737
  return isOpen;
708
- } catch {
738
+ } catch (err) {
739
+ this.logger.warn('isEscapeHatchOpen failed (treating as closed); RPC or contract error may cause liveness risk', {
740
+ epoch: Number(epoch),
741
+ error: err
742
+ });
709
743
  return false;
710
744
  }
711
745
  }
@@ -737,8 +771,9 @@ export class RollupContract {
737
771
  async getCheckpointNumber() {
738
772
  return CheckpointNumber.fromBigInt(await this.rollup.read.getPendingCheckpointNumber());
739
773
  }
740
- async getProvenCheckpointNumber() {
741
- return CheckpointNumber.fromBigInt(await this.rollup.read.getProvenCheckpointNumber());
774
+ async getProvenCheckpointNumber(options) {
775
+ await checkBlockTag(options?.blockNumber, this.client);
776
+ return CheckpointNumber.fromBigInt(await this.rollup.read.getProvenCheckpointNumber(options));
742
777
  }
743
778
  async getSlotNumber() {
744
779
  return SlotNumber.fromBigInt(await this.rollup.read.getCurrentSlot());
@@ -937,10 +972,10 @@ export class RollupContract {
937
972
  * @return [slot, checkpointNumber, timeOfNextL1Slot] - If you can propose, the L2 slot number, checkpoint number and
938
973
  * timestamp of the next L1 block
939
974
  * @throws otherwise
940
- */ async canProposeAtNextEthBlock(archive, account, slotDuration, opts = {}) {
941
- const latestBlock = await this.client.getBlock();
942
- const timeOfNextL1Slot = latestBlock.timestamp + BigInt(slotDuration);
975
+ */ async canProposeAt(archive, account, timestamp, opts = {}) {
976
+ const timeOfNextL1Slot = timestamp;
943
977
  const who = typeof account === 'string' ? account : account.address;
978
+ const stateOverride = RollupContract.mergeStateOverrides(await this.makePendingCheckpointNumberOverride(opts.forcePendingCheckpointNumber), opts.forceArchive ? this.makeArchiveOverride(opts.forceArchive.checkpointNumber, opts.forceArchive.archive) : []);
944
979
  try {
945
980
  const { result: [slot, checkpointNumber] } = await this.client.simulateContract({
946
981
  address: this.address,
@@ -952,7 +987,7 @@ export class RollupContract {
952
987
  who
953
988
  ],
954
989
  account,
955
- stateOverride: await this.makePendingCheckpointNumberOverride(opts.forcePendingCheckpointNumber)
990
+ stateOverride
956
991
  });
957
992
  return {
958
993
  slot: SlotNumber.fromBigInt(slot),
@@ -990,6 +1025,139 @@ export class RollupContract {
990
1025
  }
991
1026
  ];
992
1027
  }
1028
+ /**
1029
+ * Returns a state override that sets tempCheckpointLogs[checkpointNumber].feeHeader to the compressed fee header.
1030
+ * Used when simulating a propose call where the parent checkpoint hasn't landed on L1 yet (pipelining).
1031
+ */ async makeFeeHeaderOverride(checkpointNumber, feeHeader) {
1032
+ const { epochDuration, proofSubmissionEpochs } = await this.getRollupConstants();
1033
+ const roundaboutSize = BigInt(epochDuration * (proofSubmissionEpochs + 1) + 1);
1034
+ const circularIndex = BigInt(checkpointNumber) % roundaboutSize;
1035
+ // tempCheckpointLogs is at offset 2 in RollupStore
1036
+ const tempCheckpointLogsMappingBase = hexToBigInt(RollupContract.stfStorageSlot) + 2n;
1037
+ // Solidity mapping slot: keccak256(abi.encode(key, baseSlot))
1038
+ const structBaseSlot = hexToBigInt(keccak256(encodeAbiParameters([
1039
+ {
1040
+ type: 'uint256'
1041
+ },
1042
+ {
1043
+ type: 'uint256'
1044
+ }
1045
+ ], [
1046
+ circularIndex,
1047
+ tempCheckpointLogsMappingBase
1048
+ ])));
1049
+ // feeHeader is the 7th field (offset 6) in CompressedTempCheckpointLog
1050
+ const feeHeaderSlot = structBaseSlot + 6n;
1051
+ const compressed = RollupContract.compressFeeHeader(feeHeader);
1052
+ return [
1053
+ {
1054
+ address: this.address,
1055
+ stateDiff: [
1056
+ {
1057
+ slot: `0x${feeHeaderSlot.toString(16).padStart(64, '0')}`,
1058
+ value: `0x${compressed.toString(16).padStart(64, '0')}`
1059
+ }
1060
+ ]
1061
+ }
1062
+ ];
1063
+ }
1064
+ /**
1065
+ * Returns a state override that sets archives[checkpointNumber] to the given archive value.
1066
+ * Used when simulating a canProposeAtTime call where the local archive differs from L1
1067
+ * (e.g. pipelining where the parent checkpoint hasn't landed on L1 yet).
1068
+ */ makeArchiveOverride(checkpointNumber, archive) {
1069
+ const archivesMappingBase = hexToBigInt(RollupContract.stfStorageSlot) + 1n;
1070
+ const archiveSlot = hexToBigInt(keccak256(encodeAbiParameters([
1071
+ {
1072
+ type: 'uint256'
1073
+ },
1074
+ {
1075
+ type: 'uint256'
1076
+ }
1077
+ ], [
1078
+ BigInt(checkpointNumber),
1079
+ archivesMappingBase
1080
+ ])));
1081
+ return [
1082
+ {
1083
+ address: this.address,
1084
+ stateDiff: [
1085
+ {
1086
+ slot: `0x${archiveSlot.toString(16).padStart(64, '0')}`,
1087
+ value: archive.toString()
1088
+ }
1089
+ ]
1090
+ }
1091
+ ];
1092
+ }
1093
+ /** Merges multiple StateOverride arrays, combining stateDiff entries for the same address. */ static mergeStateOverrides(...overrides) {
1094
+ const byAddress = new Map();
1095
+ for (const override of overrides){
1096
+ for (const entry of override){
1097
+ const key = entry.address.toLowerCase();
1098
+ const existing = byAddress.get(key);
1099
+ if (existing) {
1100
+ existing.stateDiff.push(...entry.stateDiff ?? []);
1101
+ if (entry.balance !== undefined) {
1102
+ existing.balance = entry.balance;
1103
+ }
1104
+ } else {
1105
+ byAddress.set(key, {
1106
+ address: entry.address,
1107
+ balance: entry.balance,
1108
+ stateDiff: [
1109
+ ...entry.stateDiff ?? []
1110
+ ]
1111
+ });
1112
+ }
1113
+ }
1114
+ }
1115
+ return [
1116
+ ...byAddress.values()
1117
+ ];
1118
+ }
1119
+ /** Compresses a FeeHeader into a uint256 matching FeeHeaderLib.compress() in FeeStructs.sol. */ static compressFeeHeader(feeHeader) {
1120
+ const MASK_48_BITS = (1n << 48n) - 1n;
1121
+ const MASK_64_BITS = (1n << 64n) - 1n;
1122
+ const MASK_63_BITS = (1n << 63n) - 1n;
1123
+ let value = BigInt(feeHeader.manaUsed) & (1n << 32n) - 1n; // bits [0:31]
1124
+ value |= (feeHeader.excessMana < MASK_48_BITS ? feeHeader.excessMana : MASK_48_BITS) << 32n; // bits [32:79]
1125
+ value |= (BigInt(feeHeader.ethPerFeeAsset) & MASK_48_BITS) << 80n; // bits [80:127]
1126
+ value |= (feeHeader.congestionCost < MASK_64_BITS ? feeHeader.congestionCost : MASK_64_BITS) << 128n; // bits [128:191]
1127
+ value |= (feeHeader.proverCost < MASK_63_BITS ? feeHeader.proverCost : MASK_63_BITS) << 192n; // bits [192:254]
1128
+ value |= 1n << 255n; // preheat flag
1129
+ return value;
1130
+ }
1131
+ /** Computes the fee header for a child checkpoint given parent fee header and child data.
1132
+ * Must stay in sync with Solidity FeeLib.sol (computeNewEthPerFeeAsset, clampedAdd). */ static computeChildFeeHeader(parentFeeHeader, childManaUsed, feeAssetPriceModifier, manaTarget) {
1133
+ const MIN_ETH_PER_FEE_ASSET = 100n;
1134
+ const MAX_ETH_PER_FEE_ASSET = 100_000_000_000_000n; // 1e14, matches FeeLib.sol
1135
+ // excessMana = clampedAdd(parent.excessMana + parent.manaUsed, -manaTarget)
1136
+ const sum = parentFeeHeader.excessMana + parentFeeHeader.manaUsed;
1137
+ const excessMana = sum > manaTarget ? sum - manaTarget : 0n;
1138
+ // ethPerFeeAsset = computeNewEthPerFeeAsset(max(parent.ethPerFeeAsset, MIN), modifier)
1139
+ const parentPrice = parentFeeHeader.ethPerFeeAsset > MIN_ETH_PER_FEE_ASSET ? parentFeeHeader.ethPerFeeAsset : MIN_ETH_PER_FEE_ASSET;
1140
+ let newPrice;
1141
+ if (feeAssetPriceModifier >= 0n) {
1142
+ newPrice = parentPrice * (10_000n + feeAssetPriceModifier) / 10_000n;
1143
+ } else {
1144
+ const absMod = -feeAssetPriceModifier;
1145
+ newPrice = parentPrice * (10_000n - absMod) / 10_000n;
1146
+ }
1147
+ if (newPrice < MIN_ETH_PER_FEE_ASSET) {
1148
+ newPrice = MIN_ETH_PER_FEE_ASSET;
1149
+ }
1150
+ if (newPrice > MAX_ETH_PER_FEE_ASSET) {
1151
+ newPrice = MAX_ETH_PER_FEE_ASSET;
1152
+ }
1153
+ return {
1154
+ excessMana,
1155
+ manaUsed: childManaUsed,
1156
+ ethPerFeeAsset: newPrice,
1157
+ congestionCost: 0n,
1158
+ proverCost: 0n
1159
+ };
1160
+ }
993
1161
  /** Creates a request to Rollup#invalidateBadAttestation to be simulated or sent */ buildInvalidateBadAttestationRequest(checkpointNumber, attestationsAndSigners, committee, invalidIndex) {
994
1162
  return {
995
1163
  to: this.address,
@@ -1031,11 +1199,25 @@ export class RollupContract {
1031
1199
  prover
1032
1200
  ]);
1033
1201
  }
1034
- getManaMinFeeAt(timestamp, inFeeAsset) {
1202
+ getManaMinFeeAt(timestamp, inFeeAsset, stateOverride) {
1035
1203
  return this.rollup.read.getManaMinFeeAt([
1036
1204
  timestamp,
1037
1205
  inFeeAsset
1206
+ ], {
1207
+ stateOverride
1208
+ });
1209
+ }
1210
+ async getManaMinFeeComponentsAt(timestamp, inFeeAsset) {
1211
+ const result = await this.rollup.read.getManaMinFeeComponentsAt([
1212
+ timestamp,
1213
+ inFeeAsset
1038
1214
  ]);
1215
+ return {
1216
+ sequencerCost: result.sequencerCost,
1217
+ proverCost: result.proverCost,
1218
+ congestionCost: result.congestionCost,
1219
+ congestionMultiplier: result.congestionMultiplier
1220
+ };
1039
1221
  }
1040
1222
  async getSlotAt(timestamp) {
1041
1223
  return SlotNumber.fromBigInt(await this.rollup.read.getSlotAt([
@@ -1086,10 +1268,10 @@ export class RollupContract {
1086
1268
  prover
1087
1269
  ]);
1088
1270
  }
1089
- async getAttesters() {
1271
+ async getAttesters(timestamp) {
1090
1272
  const attesterSize = await this.getActiveAttesterCount();
1091
1273
  const gse = new GSEContract(this.client, await this.getGSE());
1092
- const ts = (await this.client.getBlock()).timestamp;
1274
+ const ts = timestamp ?? (await this.client.getBlock()).timestamp;
1093
1275
  const indices = Array.from({
1094
1276
  length: attesterSize
1095
1277
  }, (_, i)=>BigInt(i));
@@ -1239,8 +1421,18 @@ export class RollupContract {
1239
1421
  checkpointNumber: CheckpointNumber.fromBigInt(log.args.checkpointNumber),
1240
1422
  archive: Fr.fromString(log.args.archive),
1241
1423
  versionedBlobHashes: log.args.versionedBlobHashes.map((h)=>Buffer.from(h.slice(2), 'hex')),
1242
- attestationsHash: log.args.attestationsHash ? Buffer32.fromString(log.args.attestationsHash) : undefined,
1243
- payloadDigest: log.args.payloadDigest ? Buffer32.fromString(log.args.payloadDigest) : undefined
1424
+ attestationsHash: (()=>{
1425
+ if (!log.args.attestationsHash) {
1426
+ throw new Error(`CheckpointProposed event missing attestationsHash for checkpoint ${log.args.checkpointNumber}`);
1427
+ }
1428
+ return Buffer32.fromString(log.args.attestationsHash);
1429
+ })(),
1430
+ payloadDigest: (()=>{
1431
+ if (!log.args.payloadDigest) {
1432
+ throw new Error(`CheckpointProposed event missing payloadDigest for checkpoint ${log.args.checkpointNumber}`);
1433
+ }
1434
+ return Buffer32.fromString(log.args.payloadDigest);
1435
+ })()
1244
1436
  }
1245
1437
  }));
1246
1438
  }
@@ -6,7 +6,6 @@ import type { Hex } from 'viem';
6
6
  import type { L1ContractsConfig } from './config.js';
7
7
  import { RollupContract } from './contracts/rollup.js';
8
8
  import type { L1ContractAddresses } from './l1_contract_addresses.js';
9
- import type { L1TxUtilsConfig } from './l1_tx_utils/config.js';
10
9
  import type { ExtendedViemWalletClient } from './types.js';
11
10
  export interface G2PointJson {
12
11
  x0: string;
@@ -156,7 +155,7 @@ export type VerificationRecord = {
156
155
  constructorArgsHex: Hex;
157
156
  libraries: VerificationLibraryEntry[];
158
157
  };
159
- export interface DeployAztecL1ContractsArgs extends Omit<L1ContractsConfig, keyof L1TxUtilsConfig> {
158
+ export interface DeployAztecL1ContractsArgs extends Omit<L1ContractsConfig, 'gasLimitBufferPercentage' | 'maxGwei' | 'maxBlobGwei' | 'priorityFeeBumpPercentage' | 'priorityFeeRetryBumpPercentage' | 'minimumPriorityFeePerGas' | 'maxSpeedUpAttempts' | 'checkIntervalMs' | 'stallTimeMs' | 'txTimeoutMs' | 'cancelTxOnTimeout' | 'txCancellationFinalTimeoutMs' | 'txUnseenConsideredDroppedMs' | 'enableDelayer' | 'txDelayerMaxInclusionTimeIntoSlot'> {
160
159
  /** The vk tree root. */
161
160
  vkTreeRoot: Fr;
162
161
  /** The hash of the protocol contracts. */
@@ -257,4 +256,4 @@ export declare const deployRollupForUpgrade: (privateKey: `0x${string}`, rpcUrl:
257
256
  rollup: RollupContract;
258
257
  slashFactoryAddress: `0x${string}`;
259
258
  }>;
260
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X2F6dGVjX2wxX2NvbnRyYWN0cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2RlcGxveV9henRlY19sMV9jb250cmFjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBd0IsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJM0QsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJcEQsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQU0zQyxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFLaEMsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFnRTNELE1BQU0sV0FBVyxXQUFXO0lBQzFCLEVBQUUsRUFBRSxNQUFNLENBQUM7SUFDWCxFQUFFLEVBQUUsTUFBTSxDQUFDO0lBQ1gsRUFBRSxFQUFFLE1BQU0sQ0FBQztJQUNYLEVBQUUsRUFBRSxNQUFNLENBQUM7Q0FDWjtBQUVEOzs7R0FHRztBQUNILE1BQU0sV0FBVyxhQUFhO0lBQzVCLFFBQVEsRUFBRSxNQUFNLENBQUM7SUFDakIsVUFBVSxFQUFFLE1BQU0sQ0FBQztJQUNuQixxQ0FBcUM7SUFDckMsVUFBVSxFQUFFLE1BQU0sQ0FBQztJQUNuQixrRUFBa0U7SUFDbEUsYUFBYSxFQUFFLFdBQVcs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
259
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X2F6dGVjX2wxX2NvbnRyYWN0cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2RlcGxveV9henRlY19sMV9jb250cmFjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBd0IsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJM0QsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJcEQsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQU0zQyxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFLaEMsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUErRTNELE1BQU0sV0FBVyxXQUFXO0lBQzFCLEVBQUUsRUFBRSxNQUFNLENBQUM7SUFDWCxFQUFFLEVBQUUsTUFBTSxDQUFDO0lBQ1gsRUFBRSxFQUFFLE1BQU0sQ0FBQztJQUNYLEVBQUUsRUFBRSxNQUFNLENBQUM7Q0FDWjtBQUVEOzs7R0FHRztBQUNILE1BQU0sV0FBVyxhQUFhO0lBQzVCLFFBQVEsRUFBRSxNQUFNLENBQUM7SUFDakIsVUFBVSxFQUFFLE1BQU0sQ0FBQztJQUNuQixxQ0FBcUM7SUFDckMsVUFBVSxFQUFFLE1BQU0sQ0FBQztJQUNuQixrRUFBa0U7SUFDbEUsYUFBYSxFQUFFLFdBQVcsQ0FBQztDQUM1QjtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0Isa0JBQWtCLElBQUks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
@@ -1 +1 @@
1
- {"version":3,"file":"deploy_aztec_l1_contracts.d.ts","sourceRoot":"","sources":["../src/deploy_aztec_l1_contracts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy_aztec_l1_contracts.d.ts","sourceRoot":"","sources":["../src/deploy_aztec_l1_contracts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAwB,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAI3D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,2BAA2B,CAAC;AAIpD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAM3C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAKhC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AA+E3D,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,aAAa,EAAE,WAAW,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAK3C;AAgBD;;;;GAIG;AACH,wBAAgB,+BAA+B,IAAI,MAAM,CA0CxD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,aAAa,CAoBtE;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,GAAG,CAAC;IACnB,eAAe,EAAE,GAAG,CAAC;IACrB,mBAAmB,EAAE,GAAG,CAAC;IACzB,YAAY,EAAE,GAAG,CAAC;IAClB,aAAa,EAAE,GAAG,CAAC;IACnB,qBAAqB,EAAE,GAAG,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,4BAA6B,SAAQ,wBAAwB;IAC5E,eAAe,EAAE,GAAG,CAAC;IACrB,eAAe,EAAE,GAAG,CAAC;IACrB,mBAAmB,EAAE,GAAG,CAAC;IACzB,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,wBAAwB,EAAE,GAAG,CAAC;IAC9B,iBAAiB,EAAE,GAAG,CAAC;IACvB,yBAAyB,EAAE,GAAG,CAAC;IAC/B,iBAAiB,EAAE,GAAG,CAAC;IACvB,uBAAuB,CAAC,EAAE,GAAG,CAAC;IAC9B,sBAAsB,CAAC,EAAE,GAAG,CAAC;IAC7B,0BAA0B,CAAC,EAAE,GAAG,CAAC;IACjC,yBAAyB,CAAC,EAAE,GAAG,CAAC;CACjC;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,KAAK,MAAM,EAAE,EACzB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,0BAA0B,GAC/B,OAAO,CAAC,gCAAgC,CAAC,CAyI3C;AAED,eAAO,MAAM,gBAAgB,EAAE,GAAkD,CAAC;AAElF,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,EAAE,UAAU,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACrC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gCAAgC,GAAG;IAC7C,mCAAmC;IACnC,QAAQ,EAAE,wBAAwB,CAAC;IACnC,mDAAmD;IACnD,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,8CAA8C;IAC9C,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,CAAC,QAAQ,EAAE,MAAM,GAAG;QAClB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,CAAC;YACpC,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC,CAAC;KACJ,CAAC;CACH;AAED,MAAM,WAAW,SAAS;IACxB,cAAc,EAAE,cAAc,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,IAAI,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,GAAG,GAAG;IAC5E;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1B;;OAEG;IACH,gBAAgB,EAAE,GAAG,CAAC;IACtB;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,GAAG,CAAC;IACxB,SAAS,EAAE,wBAAwB,EAAE,CAAC;CACvC,CAAC;AAEF,MAAM,WAAW,0BACf,SAAQ,IAAI,CACV,iBAAiB,EACf,0BAA0B,GAC1B,SAAS,GACT,aAAa,GACb,2BAA2B,GAC3B,gCAAgC,GAChC,0BAA0B,GAC1B,oBAAoB,GACpB,iBAAiB,GACjB,aAAa,GACb,aAAa,GACb,mBAAmB,GACnB,8BAA8B,GAC9B,6BAA6B,GAC7B,eAAe,GACf,mCAAmC,CACtC;IACD,wBAAwB;IACxB,UAAU,EAAE,EAAE,CAAC;IACf,0CAA0C;IAC1C,qBAAqB,EAAE,EAAE,CAAC;IAC1B,4CAA4C;IAC5C,kBAAkB,EAAE,EAAE,CAAC;IACvB,sDAAsD;IACtD,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC/B,iHAAiH;IACjH,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,+DAA+D;IAC/D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,2BAA2B;IAC3B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,qFAAqF;IACrF,oBAAoB,CAAC,EAAE,UAAU,CAAC;CACnC;AAED,MAAM,WAAW,cAAc;IAC7B,0CAA0C;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qDAAqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAGD,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYhF;AAGD,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,IAAI,CACR,0BAA0B,EACxB,0BAA0B,GAC1B,6BAA6B,GAC7B,mBAAmB,GACnB,qBAAqB,GACrB,mBAAmB,CACtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmCF;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;EAiDlC,CAAC"}
@@ -19,9 +19,9 @@ import { RollupContract } from './contracts/rollup.js';
19
19
  const logger = createLogger('ethereum:deploy_aztec_l1_contracts');
20
20
  const JSON_DEPLOY_RESULT_PREFIX = 'JSON DEPLOY RESULT:';
21
21
  /**
22
- * Runs a process with the given command, arguments, and environment.
23
- * If the process outputs a line starting with JSON_DEPLOY_RESULT_PREFIX,
24
- * the JSON is parsed and returned.
22
+ * Runs a process and parses JSON deploy results from stdout.
23
+ * Lines starting with JSON_DEPLOY_RESULT_PREFIX are parsed and returned.
24
+ * All other stdout goes to logger.info, stderr goes to logger.warn.
25
25
  */ function runProcess(command, args, env, cwd) {
26
26
  const { promise, resolve, reject } = promiseWithResolvers();
27
27
  const proc = spawn(command, args, {
@@ -37,27 +37,42 @@ const JSON_DEPLOY_RESULT_PREFIX = 'JSON DEPLOY RESULT:';
37
37
  ]
38
38
  });
39
39
  let result;
40
+ let parseError;
41
+ let settled = false;
40
42
  readline.createInterface({
41
43
  input: proc.stdout
42
44
  }).on('line', (line)=>{
43
45
  const trimmedLine = line.trim();
44
46
  if (trimmedLine.startsWith(JSON_DEPLOY_RESULT_PREFIX)) {
45
47
  const jsonStr = trimmedLine.slice(JSON_DEPLOY_RESULT_PREFIX.length).trim();
46
- // TODO(AD): should this be a zod parse?
47
- result = JSON.parse(jsonStr);
48
+ try {
49
+ result = JSON.parse(jsonStr);
50
+ } catch {
51
+ parseError = new Error(`Failed to parse deploy result JSON: ${jsonStr.slice(0, 200)}`);
52
+ }
48
53
  } else {
49
54
  logger.info(line);
50
55
  }
51
56
  });
52
57
  readline.createInterface({
53
58
  input: proc.stderr
54
- }).on('line', logger.error.bind(logger));
59
+ }).on('line', logger.warn.bind(logger));
55
60
  proc.on('error', (error)=>{
61
+ if (settled) {
62
+ return;
63
+ }
64
+ settled = true;
56
65
  reject(new Error(`Failed to spawn ${command}: ${error.message}`));
57
66
  });
58
67
  proc.on('close', (code)=>{
68
+ if (settled) {
69
+ return;
70
+ }
71
+ settled = true;
59
72
  if (code !== 0) {
60
- reject(new Error(`${command} exited with code ${code}. See logs for details.\n`));
73
+ reject(new Error(`${command} exited with code ${code}`));
74
+ } else if (parseError) {
75
+ reject(parseError);
61
76
  } else {
62
77
  resolve(result);
63
78
  }
@@ -228,11 +243,8 @@ function cleanupDeployDir() {
228
243
  if (isVerifiableChain && !process.env.ETHERSCAN_API_KEY) {
229
244
  logger.warn(`Deploying to chain ${chainId} (${chainId === mainnet.id ? 'mainnet' : 'sepolia'}) without ETHERSCAN_API_KEY. ` + `Contracts will NOT be verified on Etherscan. Set ETHERSCAN_API_KEY environment variable to enable verification.`);
230
245
  }
231
- // From heuristic testing. More caused issues with anvil.
232
- const MAGIC_ANVIL_BATCH_SIZE = 8;
233
- // Anvil seems to stall with unbounded batch size. Otherwise no max batch size is desirable.
246
+ const scriptPath = join(getL1ContractsPath(), 'scripts', 'forge_broadcast.js');
234
247
  const forgeArgs = [
235
- 'script',
236
248
  FORGE_SCRIPT,
237
249
  '--sig',
238
250
  'run()',
@@ -240,9 +252,6 @@ function cleanupDeployDir() {
240
252
  privateKey,
241
253
  '--rpc-url',
242
254
  rpcUrl,
243
- '--broadcast',
244
- '--batch-size',
245
- MAGIC_ANVIL_BATCH_SIZE.toString(),
246
255
  ...shouldVerify ? [
247
256
  '--verify'
248
257
  ] : []
@@ -253,7 +262,10 @@ function cleanupDeployDir() {
253
262
  FOUNDRY_PROFILE: chainId === mainnet.id ? 'production' : undefined,
254
263
  ...getDeployAztecL1ContractsEnvVars(args)
255
264
  };
256
- const result = await runProcess('forge', forgeArgs, forgeEnv, l1ContractsPath);
265
+ const result = await runProcess(process.execPath, [
266
+ scriptPath,
267
+ ...forgeArgs
268
+ ], forgeEnv, l1ContractsPath);
257
269
  if (!result) {
258
270
  throw new Error('Forge script did not output deployment result');
259
271
  }
@@ -365,16 +377,15 @@ export function getDeployRollupForUpgradeEnvVars(args) {
365
377
  const l1ContractsPath = prepareL1ContractsForDeployment();
366
378
  const FORGE_SCRIPT = 'script/deploy/DeployRollupForUpgrade.s.sol';
367
379
  await maybeForgeForceProductionBuild(l1ContractsPath, FORGE_SCRIPT, chainId);
380
+ const scriptPath = join(getL1ContractsPath(), 'scripts', 'forge_broadcast.js');
368
381
  const forgeArgs = [
369
- 'script',
370
382
  FORGE_SCRIPT,
371
383
  '--sig',
372
384
  'run()',
373
385
  '--private-key',
374
386
  privateKey,
375
387
  '--rpc-url',
376
- rpcUrl,
377
- '--broadcast'
388
+ rpcUrl
378
389
  ];
379
390
  const forgeEnv = {
380
391
  FOUNDRY_PROFILE: chainId === mainnet.id ? 'production' : undefined,
@@ -383,7 +394,10 @@ export function getDeployRollupForUpgradeEnvVars(args) {
383
394
  NETWORK: getActiveNetworkName(),
384
395
  ...getDeployRollupForUpgradeEnvVars(args)
385
396
  };
386
- const result = await runProcess('forge', forgeArgs, forgeEnv, l1ContractsPath);
397
+ const result = await runProcess(process.execPath, [
398
+ scriptPath,
399
+ ...forgeArgs
400
+ ], forgeEnv, l1ContractsPath);
387
401
  if (!result) {
388
402
  throw new Error('Forge script did not output deployment result');
389
403
  }
@@ -5,7 +5,7 @@ import { concatHex, encodeAbiParameters, encodeDeployData, getContractAddress, n
5
5
  import { DEPLOYER_ADDRESS } from './deploy_aztec_l1_contracts.js';
6
6
  import { RegisterNewRollupVersionPayloadArtifact } from './l1_artifacts.js';
7
7
  import { getL1TxUtilsConfigEnvVars } from './l1_tx_utils/config.js';
8
- import { createL1TxUtilsFromViemWallet } from './l1_tx_utils/factory.js';
8
+ import { createL1TxUtils } from './l1_tx_utils/factory.js';
9
9
  import { formatViemError } from './utils.js';
10
10
  export class L1Deployer {
11
11
  client;
@@ -28,7 +28,7 @@ export class L1Deployer {
28
28
  this.salt = maybeSalt ? padHex(numberToHex(maybeSalt), {
29
29
  size: 32
30
30
  }) : undefined;
31
- this.l1TxUtils = createL1TxUtilsFromViemWallet(this.client, {
31
+ this.l1TxUtils = createL1TxUtils(this.client, {
32
32
  logger: this.logger,
33
33
  dateProvider
34
34
  }, {
@@ -130,7 +130,7 @@ export class L1Deployer {
130
130
  let { l1TxUtils } = opts;
131
131
  if (!l1TxUtils) {
132
132
  const config = getL1TxUtilsConfigEnvVars();
133
- l1TxUtils = createL1TxUtilsFromViemWallet(extendedClient, {
133
+ l1TxUtils = createL1TxUtils(extendedClient, {
134
134
  logger
135
135
  }, {
136
136
  ...config,
@@ -1,7 +1,7 @@
1
1
  /** Default L1 contracts configuration values from network-defaults.yml */
2
2
  export declare const l1ContractsDefaultEnv: {
3
3
  readonly ETHEREUM_SLOT_DURATION: 12;
4
- readonly AZTEC_SLOT_DURATION: 36;
4
+ readonly AZTEC_SLOT_DURATION: 72;
5
5
  readonly AZTEC_EPOCH_DURATION: 32;
6
6
  readonly AZTEC_TARGET_COMMITTEE_SIZE: 48;
7
7
  readonly AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET: 2;
@@ -2,7 +2,7 @@
2
2
  // Do not edit manually - run yarn generate to regenerate
3
3
  /** Default L1 contracts configuration values from network-defaults.yml */ export const l1ContractsDefaultEnv = {
4
4
  ETHEREUM_SLOT_DURATION: 12,
5
- AZTEC_SLOT_DURATION: 36,
5
+ AZTEC_SLOT_DURATION: 72,
6
6
  AZTEC_EPOCH_DURATION: 32,
7
7
  AZTEC_TARGET_COMMITTEE_SIZE: 48,
8
8
  AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET: 2,