@aztec/sequencer-client 0.74.0 → 0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2

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 (85) hide show
  1. package/dest/client/index.js +0 -1
  2. package/dest/client/sequencer-client.js +52 -57
  3. package/dest/config.js +40 -42
  4. package/dest/global_variable_builder/global_builder.js +39 -26
  5. package/dest/global_variable_builder/index.js +0 -1
  6. package/dest/index.js +0 -1
  7. package/dest/publisher/config.js +49 -50
  8. package/dest/publisher/index.js +0 -1
  9. package/dest/publisher/sequencer-publisher-metrics.js +32 -23
  10. package/dest/publisher/sequencer-publisher.js +216 -191
  11. package/dest/sequencer/allowed.js +5 -12
  12. package/dest/sequencer/config.js +1 -2
  13. package/dest/sequencer/index.js +0 -1
  14. package/dest/sequencer/metrics.js +26 -18
  15. package/dest/sequencer/sequencer.js +648 -607
  16. package/dest/sequencer/timetable.js +33 -19
  17. package/dest/sequencer/utils.js +22 -32
  18. package/dest/slasher/factory.js +5 -4
  19. package/dest/slasher/index.js +0 -1
  20. package/dest/slasher/slasher_client.js +107 -110
  21. package/dest/test/index.js +4 -1
  22. package/dest/tx_validator/archive_cache.js +7 -7
  23. package/dest/tx_validator/gas_validator.js +76 -64
  24. package/dest/tx_validator/nullifier_cache.js +8 -8
  25. package/dest/tx_validator/phases_validator.js +27 -19
  26. package/dest/tx_validator/test_utils.js +1 -2
  27. package/dest/tx_validator/tx_validator_factory.js +5 -5
  28. package/package.json +23 -22
  29. package/src/config.ts +1 -1
  30. package/src/publisher/sequencer-publisher.ts +1 -1
  31. package/src/sequencer/sequencer.ts +29 -13
  32. package/dest/client/index.d.ts +0 -2
  33. package/dest/client/index.d.ts.map +0 -1
  34. package/dest/client/sequencer-client.d.ts +0 -68
  35. package/dest/client/sequencer-client.d.ts.map +0 -1
  36. package/dest/config.d.ts +0 -37
  37. package/dest/config.d.ts.map +0 -1
  38. package/dest/global_variable_builder/global_builder.d.ts +0 -29
  39. package/dest/global_variable_builder/global_builder.d.ts.map +0 -1
  40. package/dest/global_variable_builder/index.d.ts +0 -2
  41. package/dest/global_variable_builder/index.d.ts.map +0 -1
  42. package/dest/index.d.ts +0 -8
  43. package/dest/index.d.ts.map +0 -1
  44. package/dest/publisher/config.d.ts +0 -38
  45. package/dest/publisher/config.d.ts.map +0 -1
  46. package/dest/publisher/index.d.ts +0 -2
  47. package/dest/publisher/index.d.ts.map +0 -1
  48. package/dest/publisher/sequencer-publisher-metrics.d.ts +0 -24
  49. package/dest/publisher/sequencer-publisher-metrics.d.ts.map +0 -1
  50. package/dest/publisher/sequencer-publisher.d.ts +0 -163
  51. package/dest/publisher/sequencer-publisher.d.ts.map +0 -1
  52. package/dest/sequencer/allowed.d.ts +0 -3
  53. package/dest/sequencer/allowed.d.ts.map +0 -1
  54. package/dest/sequencer/config.d.ts +0 -2
  55. package/dest/sequencer/config.d.ts.map +0 -1
  56. package/dest/sequencer/index.d.ts +0 -4
  57. package/dest/sequencer/index.d.ts.map +0 -1
  58. package/dest/sequencer/metrics.d.ts +0 -24
  59. package/dest/sequencer/metrics.d.ts.map +0 -1
  60. package/dest/sequencer/sequencer.d.ts +0 -172
  61. package/dest/sequencer/sequencer.d.ts.map +0 -1
  62. package/dest/sequencer/timetable.d.ts +0 -38
  63. package/dest/sequencer/timetable.d.ts.map +0 -1
  64. package/dest/sequencer/utils.d.ts +0 -47
  65. package/dest/sequencer/utils.d.ts.map +0 -1
  66. package/dest/slasher/factory.d.ts +0 -11
  67. package/dest/slasher/factory.d.ts.map +0 -1
  68. package/dest/slasher/index.d.ts +0 -3
  69. package/dest/slasher/index.d.ts.map +0 -1
  70. package/dest/slasher/slasher_client.d.ts +0 -127
  71. package/dest/slasher/slasher_client.d.ts.map +0 -1
  72. package/dest/test/index.d.ts +0 -17
  73. package/dest/test/index.d.ts.map +0 -1
  74. package/dest/tx_validator/archive_cache.d.ts +0 -14
  75. package/dest/tx_validator/archive_cache.d.ts.map +0 -1
  76. package/dest/tx_validator/gas_validator.d.ts +0 -12
  77. package/dest/tx_validator/gas_validator.d.ts.map +0 -1
  78. package/dest/tx_validator/nullifier_cache.d.ts +0 -16
  79. package/dest/tx_validator/nullifier_cache.d.ts.map +0 -1
  80. package/dest/tx_validator/phases_validator.d.ts +0 -11
  81. package/dest/tx_validator/phases_validator.d.ts.map +0 -1
  82. package/dest/tx_validator/test_utils.d.ts +0 -21
  83. package/dest/tx_validator/test_utils.d.ts.map +0 -1
  84. package/dest/tx_validator/tx_validator_factory.d.ts +0 -16
  85. package/dest/tx_validator/tx_validator_factory.d.ts.map +0 -1
@@ -1,2 +1 @@
1
1
  export * from './sequencer-client.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUJBQXVCLENBQUMifQ==
@@ -1,5 +1,5 @@
1
1
  import { EpochCache } from '@aztec/epoch-cache';
2
- import { ForwarderContract, GovernanceProposerContract, L1TxUtilsWithBlobs, RollupContract, SlashingProposerContract, createEthereumChain, createL1Clients, isAnvilTestChain, } from '@aztec/ethereum';
2
+ import { ForwarderContract, GovernanceProposerContract, L1TxUtilsWithBlobs, RollupContract, SlashingProposerContract, createEthereumChain, createL1Clients, isAnvilTestChain } from '@aztec/ethereum';
3
3
  import { EthAddress } from '@aztec/foundation/eth-address';
4
4
  import { createLogger } from '@aztec/foundation/log';
5
5
  import { LightweightBlockBuilderFactory } from '@aztec/prover-client/block-builder';
@@ -9,26 +9,25 @@ import { SequencerPublisher } from '../publisher/index.js';
9
9
  import { Sequencer } from '../sequencer/index.js';
10
10
  /**
11
11
  * Encapsulates the full sequencer and publisher.
12
- */
13
- export class SequencerClient {
14
- constructor(sequencer) {
12
+ */ export class SequencerClient {
13
+ sequencer;
14
+ constructor(sequencer){
15
15
  this.sequencer = sequencer;
16
16
  }
17
17
  /**
18
- * Initializes and starts a new instance.
19
- * @param config - Configuration for the sequencer, publisher, and L1 tx sender.
20
- * @param p2pClient - P2P client that provides the txs to be sequenced.
21
- * @param validatorClient - Validator client performs attestation duties when rotating proposers.
22
- * @param worldStateSynchronizer - Provides access to world state.
23
- * @param contractDataSource - Provides access to contract bytecode for public executions.
24
- * @param l2BlockSource - Provides information about the previously published blocks.
25
- * @param l1ToL2MessageSource - Provides access to L1 to L2 messages.
26
- * @param prover - An instance of a block prover
27
- * @param simulationProvider - An instance of a simulation provider
28
- * @returns A new running instance.
29
- */
30
- static async new(config, deps) {
31
- const { validatorClient, p2pClient, worldStateSynchronizer, slasherClient, contractDataSource, l2BlockSource, l1ToL2MessageSource, telemetry: telemetryClient, } = deps;
18
+ * Initializes and starts a new instance.
19
+ * @param config - Configuration for the sequencer, publisher, and L1 tx sender.
20
+ * @param p2pClient - P2P client that provides the txs to be sequenced.
21
+ * @param validatorClient - Validator client performs attestation duties when rotating proposers.
22
+ * @param worldStateSynchronizer - Provides access to world state.
23
+ * @param contractDataSource - Provides access to contract bytecode for public executions.
24
+ * @param l2BlockSource - Provides information about the previously published blocks.
25
+ * @param l1ToL2MessageSource - Provides access to L1 to L2 messages.
26
+ * @param prover - An instance of a block prover
27
+ * @param simulationProvider - An instance of a simulation provider
28
+ * @returns A new running instance.
29
+ */ static async new(config, deps) {
30
+ const { validatorClient, p2pClient, worldStateSynchronizer, slasherClient, contractDataSource, l2BlockSource, l1ToL2MessageSource, telemetry: telemetryClient } = deps;
32
31
  const { l1RpcUrl: rpcUrl, l1ChainId: chainId, publisherPrivateKey } = config;
33
32
  const chain = createEthereumChain(rpcUrl, chainId);
34
33
  const log = createLogger('sequencer-client');
@@ -37,34 +36,32 @@ export class SequencerClient {
37
36
  const rollupContract = new RollupContract(publicClient, config.l1Contracts.rollupAddress.toString());
38
37
  const [l1GenesisTime, slotDuration] = await Promise.all([
39
38
  rollupContract.getL1GenesisTime(),
40
- rollupContract.getSlotDuration(),
39
+ rollupContract.getSlotDuration()
41
40
  ]);
42
- const forwarderContract = config.customForwarderContractAddress && config.customForwarderContractAddress !== EthAddress.ZERO
43
- ? new ForwarderContract(publicClient, config.customForwarderContractAddress.toString(), config.l1Contracts.rollupAddress.toString())
44
- : await ForwarderContract.create(walletClient.account.address, walletClient, publicClient, log, config.l1Contracts.rollupAddress.toString());
41
+ const forwarderContract = config.customForwarderContractAddress && config.customForwarderContractAddress !== EthAddress.ZERO ? new ForwarderContract(publicClient, config.customForwarderContractAddress.toString(), config.l1Contracts.rollupAddress.toString()) : await ForwarderContract.create(walletClient.account.address, walletClient, publicClient, log, config.l1Contracts.rollupAddress.toString());
45
42
  const governanceProposerContract = new GovernanceProposerContract(publicClient, config.l1Contracts.governanceProposerAddress.toString());
46
43
  const slashingProposerAddress = await rollupContract.getSlashingProposerAddress();
47
44
  const slashingProposerContract = new SlashingProposerContract(publicClient, slashingProposerAddress.toString());
48
- const epochCache = deps.epochCache ??
49
- (await EpochCache.create(config.l1Contracts.rollupAddress, {
50
- l1RpcUrl: rpcUrl,
51
- l1ChainId: chainId,
52
- viemPollingIntervalMS: config.viemPollingIntervalMS,
53
- aztecSlotDuration: config.aztecSlotDuration,
54
- ethereumSlotDuration: config.ethereumSlotDuration,
55
- aztecEpochDuration: config.aztecEpochDuration,
56
- }, { dateProvider: deps.dateProvider }));
57
- const publisher = deps.publisher ??
58
- new SequencerPublisher(config, {
59
- l1TxUtils,
60
- telemetry: telemetryClient,
61
- blobSinkClient: deps.blobSinkClient,
62
- rollupContract,
63
- epochCache,
64
- forwarderContract,
65
- governanceProposerContract,
66
- slashingProposerContract,
67
- });
45
+ const epochCache = deps.epochCache ?? await EpochCache.create(config.l1Contracts.rollupAddress, {
46
+ l1RpcUrl: rpcUrl,
47
+ l1ChainId: chainId,
48
+ viemPollingIntervalMS: config.viemPollingIntervalMS,
49
+ aztecSlotDuration: config.aztecSlotDuration,
50
+ ethereumSlotDuration: config.ethereumSlotDuration,
51
+ aztecEpochDuration: config.aztecEpochDuration
52
+ }, {
53
+ dateProvider: deps.dateProvider
54
+ });
55
+ const publisher = deps.publisher ?? new SequencerPublisher(config, {
56
+ l1TxUtils,
57
+ telemetry: telemetryClient,
58
+ blobSinkClient: deps.blobSinkClient,
59
+ rollupContract,
60
+ epochCache,
61
+ forwarderContract,
62
+ governanceProposerContract,
63
+ slashingProposerContract
64
+ });
68
65
  const globalsBuilder = new GlobalVariableBuilder(config);
69
66
  const publicProcessorFactory = new PublicProcessorFactory(contractDataSource, deps.dateProvider, telemetryClient);
70
67
  const ethereumSlotDuration = config.ethereumSlotDuration;
@@ -78,34 +75,33 @@ export class SequencerClient {
78
75
  const l1Constants = {
79
76
  l1GenesisTime,
80
77
  slotDuration: Number(slotDuration),
81
- ethereumSlotDuration,
78
+ ethereumSlotDuration
82
79
  };
83
- const sequencer = new Sequencer(publisher, validatorClient, globalsBuilder, p2pClient, worldStateSynchronizer, slasherClient, new LightweightBlockBuilderFactory(telemetryClient), l2BlockSource, l1ToL2MessageSource, publicProcessorFactory, contractDataSource, l1Constants, deps.dateProvider, { ...config, maxL1TxInclusionTimeIntoSlot }, telemetryClient);
80
+ const sequencer = new Sequencer(publisher, validatorClient, globalsBuilder, p2pClient, worldStateSynchronizer, slasherClient, new LightweightBlockBuilderFactory(telemetryClient), l2BlockSource, l1ToL2MessageSource, publicProcessorFactory, contractDataSource, l1Constants, deps.dateProvider, {
81
+ ...config,
82
+ maxL1TxInclusionTimeIntoSlot
83
+ }, telemetryClient);
84
84
  await validatorClient?.start();
85
85
  await sequencer.start();
86
86
  return new SequencerClient(sequencer);
87
87
  }
88
88
  /**
89
- * Updates sequencer config.
90
- * @param config - New parameters.
91
- */
92
- updateSequencerConfig(config) {
89
+ * Updates sequencer config.
90
+ * @param config - New parameters.
91
+ */ updateSequencerConfig(config) {
93
92
  return this.sequencer.updateConfig(config);
94
93
  }
95
94
  /**
96
- * Stops the sequencer from processing new txs.
97
- */
98
- async stop() {
95
+ * Stops the sequencer from processing new txs.
96
+ */ async stop() {
99
97
  await this.sequencer.stop();
100
98
  }
101
- /** Forces the sequencer to bypass all time and tx count checks for the next block and build anyway. */
102
- flush() {
99
+ /** Forces the sequencer to bypass all time and tx count checks for the next block and build anyway. */ flush() {
103
100
  this.sequencer.flush();
104
101
  }
105
102
  /**
106
- * Restarts the sequencer after being stopped.
107
- */
108
- restart() {
103
+ * Restarts the sequencer after being stopped.
104
+ */ restart() {
109
105
  this.sequencer.restart();
110
106
  }
111
107
  get coinbase() {
@@ -118,4 +114,3 @@ export class SequencerClient {
118
114
  return this.sequencer.getForwarderAddress();
119
115
  }
120
116
  }
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2VyLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvc2VxdWVuY2VyLWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUNMLGlCQUFpQixFQUNqQiwwQkFBMEIsRUFDMUIsa0JBQWtCLEVBQ2xCLGNBQWMsRUFDZCx3QkFBd0IsRUFDeEIsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZixnQkFBZ0IsR0FDakIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3JELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBS2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQXdCLE1BQU0sdUJBQXVCLENBQUM7QUFHeEU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUFzQixTQUFvQjtRQUFwQixjQUFTLEdBQVQsU0FBUyxDQUFXO0lBQUcsQ0FBQztJQUU5Qzs7Ozs7Ozs7Ozs7O09BWUc7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FDckIsTUFBNkIsRUFDN0IsSUFjQztRQUVELE1BQU0sRUFDSixlQUFlLEVBQ2YsU0FBUyxFQUNULHNCQUFzQixFQUN0QixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixtQkFBbUIsRUFDbkIsU0FBUyxFQUFFLGVBQWUsR0FDM0IsR0FBRyxJQUFJLENBQUM7UUFDVCxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQzdFLE1BQU0sS0FBSyxHQUFHLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNuRCxNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUM3QyxNQUFNLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxHQUFHLGVBQWUsQ0FBQyxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JHLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNwRyxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNyRyxNQUFNLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUN0RCxjQUFjLENBQUMsZ0JBQWdCLEVBQUU7WUFDakMsY0FBYyxDQUFDLGVBQWUsRUFBRTtTQUN4QixDQUFDLENBQUM7UUFDWixNQUFNLGlCQUFpQixHQUNyQixNQUFNLENBQUMsOEJBQThCLElBQUksTUFBTSxDQUFDLDhCQUE4QixLQUFLLFVBQVUsQ0FBQyxJQUFJO1lBQ2hHLENBQUMsQ0FBQyxJQUFJLGlCQUFpQixDQUNuQixZQUFZLEVBQ1osTUFBTSxDQUFDLDhCQUE4QixDQUFDLFFBQVEsRUFBRSxFQUNoRCxNQUFNLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FDNUM7WUFDSCxDQUFDLENBQUMsTUFBTSxpQkFBaUIsQ0FBQyxNQUFNLENBQzVCLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUM1QixZQUFZLEVBQ1osWUFBWSxFQUNaLEdBQUcsRUFDSCxNQUFNLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FDNUMsQ0FBQztRQUVSLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSwwQkFBMEIsQ0FDL0QsWUFBWSxFQUNaLE1BQU0sQ0FBQyxXQUFXLENBQUMseUJBQXlCLENBQUMsUUFBUSxFQUFFLENBQ3hELENBQUM7UUFDRixNQUFNLHVCQUF1QixHQUFHLE1BQU0sY0FBYyxDQUFDLDBCQUEwQixFQUFFLENBQUM7UUFDbEYsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLHdCQUF3QixDQUFDLFlBQVksRUFBRSx1QkFBdUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2hILE1BQU0sVUFBVSxHQUNkLElBQUksQ0FBQyxVQUFVO1lBQ2YsQ0FBQyxNQUFNLFVBQVUsQ0FBQyxNQUFNLENBQ3RCLE1BQU0sQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUNoQztnQkFDRSxRQUFRLEVBQUUsTUFBTTtnQkFDaEIsU0FBUyxFQUFFLE9BQU87Z0JBQ2xCLHFCQUFxQixFQUFFLE1BQU0sQ0FBQyxxQkFBcUI7Z0JBQ25ELGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxpQkFBaUI7Z0JBQzNDLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxvQkFBb0I7Z0JBQ2pELGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxrQkFBa0I7YUFDOUMsRUFDRCxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQ3BDLENBQUMsQ0FBQztRQUVMLE1BQU0sU0FBUyxHQUNiLElBQUksQ0FBQyxTQUFTO1lBQ2QsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLEVBQUU7Z0JBQzdCLFNBQVM7Z0JBQ1QsU0FBUyxFQUFFLGVBQWU7Z0JBQzFCLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztnQkFDbkMsY0FBYztnQkFDZCxVQUFVO2dCQUNWLGlCQUFpQjtnQkFDakIsMEJBQTBCO2dCQUMxQix3QkFBd0I7YUFDekIsQ0FBQyxDQUFDO1FBQ0wsTUFBTSxjQUFjLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV6RCxNQUFNLHNCQUFzQixHQUFHLElBQUksc0JBQXNCLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUMsQ0FBQztRQUVsSCxNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQztRQUV6RCw4RkFBOEY7UUFDOUYsOEZBQThGO1FBQzlGLHlFQUF5RTtRQUN6RSw0RkFBNEY7UUFDNUYsZ0dBQWdHO1FBQ2hHLDBFQUEwRTtRQUMxRSxNQUFNLDRCQUE0QixHQUNoQyxNQUFNLENBQUMsNEJBQTRCLElBQUksZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXZHLE1BQU0sV0FBVyxHQUFHO1lBQ2xCLGFBQWE7WUFDYixZQUFZLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQztZQUNsQyxvQkFBb0I7U0FDckIsQ0FBQztRQUVGLE1BQU0sU0FBUyxHQUFHLElBQUksU0FBUyxDQUM3QixTQUFTLEVBQ1QsZUFBZSxFQUNmLGNBQWMsRUFDZCxTQUFTLEVBQ1Qsc0JBQXNCLEVBQ3RCLGFBQWEsRUFDYixJQUFJLDhCQUE4QixDQUFDLGVBQWUsQ0FBQyxFQUNuRCxhQUFhLEVBQ2IsbUJBQW1CLEVBQ25CLHNCQUFzQixFQUN0QixrQkFBa0IsRUFDbEIsV0FBVyxFQUNYLElBQUksQ0FBQyxZQUFZLEVBQ2pCLEVBQUUsR0FBRyxNQUFNLEVBQUUsNEJBQTRCLEVBQUUsRUFDM0MsZUFBZSxDQUNoQixDQUFDO1FBQ0YsTUFBTSxlQUFlLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDL0IsTUFBTSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDeEIsT0FBTyxJQUFJLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0kscUJBQXFCLENBQUMsTUFBdUI7UUFDbEQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsSUFBSTtRQUNmLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsdUdBQXVHO0lBQ2hHLEtBQUs7UUFDVixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU87UUFDWixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0NBQ0YifQ==
package/dest/config.js CHANGED
@@ -1,94 +1,94 @@
1
1
  import { AztecAddress, Fr, FunctionSelector } from '@aztec/circuits.js';
2
- import { l1ContractsConfigMappings, l1ReaderConfigMappings, } from '@aztec/ethereum';
3
- import { booleanConfigHelper, getConfigFromMappings, numberConfigHelper, pickConfigMappings, } from '@aztec/foundation/config';
2
+ import { l1ContractsConfigMappings, l1ReaderConfigMappings } from '@aztec/ethereum';
3
+ import { booleanConfigHelper, getConfigFromMappings, numberConfigHelper, pickConfigMappings } from '@aztec/foundation/config';
4
4
  import { EthAddress } from '@aztec/foundation/eth-address';
5
- import { getPublisherConfigMappings, getTxSenderConfigMappings, } from './publisher/config.js';
5
+ import { getPublisherConfigMappings, getTxSenderConfigMappings } from './publisher/config.js';
6
6
  export * from './publisher/config.js';
7
7
  export const sequencerConfigMappings = {
8
8
  transactionPollingIntervalMS: {
9
9
  env: 'SEQ_TX_POLLING_INTERVAL_MS',
10
10
  description: 'The number of ms to wait between polling for pending txs.',
11
- ...numberConfigHelper(500),
11
+ ...numberConfigHelper(500)
12
12
  },
13
13
  maxTxsPerBlock: {
14
14
  env: 'SEQ_MAX_TX_PER_BLOCK',
15
15
  description: 'The maximum number of txs to include in a block.',
16
- ...numberConfigHelper(32),
16
+ ...numberConfigHelper(32)
17
17
  },
18
18
  minTxsPerBlock: {
19
19
  env: 'SEQ_MIN_TX_PER_BLOCK',
20
20
  description: 'The minimum number of txs to include in a block.',
21
- ...numberConfigHelper(1),
21
+ ...numberConfigHelper(1)
22
22
  },
23
23
  maxL2BlockGas: {
24
24
  env: 'SEQ_MAX_L2_BLOCK_GAS',
25
25
  description: 'The maximum L2 block gas.',
26
- ...numberConfigHelper(10e9),
26
+ ...numberConfigHelper(10e9)
27
27
  },
28
28
  maxDABlockGas: {
29
29
  env: 'SEQ_MAX_DA_BLOCK_GAS',
30
30
  description: 'The maximum DA block gas.',
31
- ...numberConfigHelper(10e9),
31
+ ...numberConfigHelper(10e9)
32
32
  },
33
33
  coinbase: {
34
34
  env: 'COINBASE',
35
- parseEnv: (val) => EthAddress.fromString(val),
36
- description: 'Recipient of block reward.',
35
+ parseEnv: (val)=>EthAddress.fromString(val),
36
+ description: 'Recipient of block reward.'
37
37
  },
38
38
  feeRecipient: {
39
39
  env: 'FEE_RECIPIENT',
40
- parseEnv: (val) => AztecAddress.fromString(val),
41
- description: 'Address to receive fees.',
40
+ parseEnv: (val)=>AztecAddress.fromString(val),
41
+ description: 'Address to receive fees.'
42
42
  },
43
43
  acvmWorkingDirectory: {
44
44
  env: 'ACVM_WORKING_DIRECTORY',
45
- description: 'The working directory to use for simulation/proving',
45
+ description: 'The working directory to use for simulation/proving'
46
46
  },
47
47
  acvmBinaryPath: {
48
48
  env: 'ACVM_BINARY_PATH',
49
- description: 'The path to the ACVM binary',
49
+ description: 'The path to the ACVM binary'
50
50
  },
51
51
  allowedInSetup: {
52
52
  env: 'SEQ_ALLOWED_SETUP_FN',
53
- parseEnv: (val) => parseSequencerAllowList(val),
53
+ parseEnv: (val)=>parseSequencerAllowList(val),
54
54
  description: 'The list of functions calls allowed to run in setup',
55
- printDefault: () => 'AuthRegistry, FeeJuice.increase_public_balance, Token.increase_public_balance, FPC.prepare_fee',
55
+ printDefault: ()=>'AuthRegistry, FeeJuice.increase_public_balance, Token.increase_public_balance, FPC.prepare_fee'
56
56
  },
57
57
  maxBlockSizeInBytes: {
58
58
  env: 'SEQ_MAX_BLOCK_SIZE_IN_BYTES',
59
59
  description: 'Max block size',
60
- ...numberConfigHelper(1024 * 1024),
60
+ ...numberConfigHelper(1024 * 1024)
61
61
  },
62
62
  enforceFees: {
63
63
  env: 'ENFORCE_FEES',
64
64
  description: 'Whether to require every tx to have a fee payer',
65
- ...booleanConfigHelper(),
65
+ ...booleanConfigHelper()
66
66
  },
67
67
  enforceTimeTable: {
68
68
  env: 'SEQ_ENFORCE_TIME_TABLE',
69
69
  description: 'Whether to enforce the time table when building blocks',
70
70
  ...booleanConfigHelper(),
71
- defaultValue: false,
71
+ defaultValue: false
72
72
  },
73
73
  governanceProposerPayload: {
74
74
  env: 'GOVERNANCE_PROPOSER_PAYLOAD_ADDRESS',
75
75
  description: 'The address of the payload for the governanceProposer',
76
- parseEnv: (val) => EthAddress.fromString(val),
77
- defaultValue: EthAddress.ZERO,
76
+ parseEnv: (val)=>EthAddress.fromString(val),
77
+ defaultValue: EthAddress.ZERO
78
78
  },
79
79
  maxL1TxInclusionTimeIntoSlot: {
80
80
  env: 'SEQ_MAX_L1_TX_INCLUSION_TIME_INTO_SLOT',
81
81
  description: 'How many seconds into an L1 slot we can still send a tx and get it mined.',
82
- parseEnv: (val) => (val ? parseInt(val, 10) : undefined),
83
- },
82
+ parseEnv: (val)=>val ? parseInt(val, 10) : undefined
83
+ }
84
84
  };
85
85
  export const chainConfigMappings = {
86
86
  l1ChainId: l1ReaderConfigMappings.l1ChainId,
87
87
  version: {
88
88
  env: 'VERSION',
89
89
  description: 'The version of the rollup.',
90
- ...numberConfigHelper(1),
91
- },
90
+ ...numberConfigHelper(1)
91
+ }
92
92
  };
93
93
  export const sequencerClientConfigMappings = {
94
94
  ...sequencerConfigMappings,
@@ -96,12 +96,15 @@ export const sequencerClientConfigMappings = {
96
96
  ...getTxSenderConfigMappings('SEQ'),
97
97
  ...getPublisherConfigMappings('SEQ'),
98
98
  ...chainConfigMappings,
99
- ...pickConfigMappings(l1ContractsConfigMappings, ['ethereumSlotDuration', 'aztecSlotDuration', 'aztecEpochDuration']),
99
+ ...pickConfigMappings(l1ContractsConfigMappings, [
100
+ 'ethereumSlotDuration',
101
+ 'aztecSlotDuration',
102
+ 'aztecEpochDuration'
103
+ ])
100
104
  };
101
105
  /**
102
106
  * Creates an instance of SequencerClientConfig out of environment variables using sensible defaults for integration testing if not set.
103
- */
104
- export function getConfigEnvVars() {
107
+ */ export function getConfigEnvVars() {
105
108
  return getConfigFromMappings(sequencerClientConfigMappings);
106
109
  }
107
110
  /**
@@ -114,42 +117,37 @@ export function getConfigEnvVars() {
114
117
  *
115
118
  * @param value The string to parse
116
119
  * @returns A list of allowed elements
117
- */
118
- export function parseSequencerAllowList(value) {
120
+ */ export function parseSequencerAllowList(value) {
119
121
  const entries = [];
120
122
  if (!value) {
121
123
  return entries;
122
124
  }
123
- for (const val of value.split(',')) {
125
+ for (const val of value.split(',')){
124
126
  const [typeString, identifierString, selectorString] = val.split(':');
125
127
  const selector = selectorString !== undefined ? FunctionSelector.fromString(selectorString) : undefined;
126
128
  if (typeString === 'I') {
127
129
  if (selector) {
128
130
  entries.push({
129
131
  address: AztecAddress.fromString(identifierString),
130
- selector,
132
+ selector
131
133
  });
132
- }
133
- else {
134
+ } else {
134
135
  entries.push({
135
- address: AztecAddress.fromString(identifierString),
136
+ address: AztecAddress.fromString(identifierString)
136
137
  });
137
138
  }
138
- }
139
- else if (typeString === 'C') {
139
+ } else if (typeString === 'C') {
140
140
  if (selector) {
141
141
  entries.push({
142
142
  classId: Fr.fromHexString(identifierString),
143
- selector,
143
+ selector
144
144
  });
145
- }
146
- else {
145
+ } else {
147
146
  entries.push({
148
- classId: Fr.fromHexString(identifierString),
147
+ classId: Fr.fromHexString(identifierString)
149
148
  });
150
149
  }
151
150
  }
152
151
  }
153
152
  return entries;
154
153
  }
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hFLE9BQU8sRUFHTCx5QkFBeUIsRUFDekIsc0JBQXNCLEdBQ3ZCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUVMLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIsa0JBQWtCLEVBQ2xCLGtCQUFrQixHQUNuQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUUzRCxPQUFPLEVBR0wsMEJBQTBCLEVBQzFCLHlCQUF5QixHQUMxQixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLGNBQWMsdUJBQXVCLENBQUM7QUFxQnRDLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUF3QztJQUMxRSw0QkFBNEIsRUFBRTtRQUM1QixHQUFHLEVBQUUsNEJBQTRCO1FBQ2pDLFdBQVcsRUFBRSwyREFBMkQ7UUFDeEUsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUM7S0FDM0I7SUFDRCxjQUFjLEVBQUU7UUFDZCxHQUFHLEVBQUUsc0JBQXNCO1FBQzNCLFdBQVcsRUFBRSxrREFBa0Q7UUFDL0QsR0FBRyxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7S0FDMUI7SUFDRCxjQUFjLEVBQUU7UUFDZCxHQUFHLEVBQUUsc0JBQXNCO1FBQzNCLFdBQVcsRUFBRSxrREFBa0Q7UUFDL0QsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7S0FDekI7SUFDRCxhQUFhLEVBQUU7UUFDYixHQUFHLEVBQUUsc0JBQXNCO1FBQzNCLFdBQVcsRUFBRSwyQkFBMkI7UUFDeEMsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7S0FDNUI7SUFDRCxhQUFhLEVBQUU7UUFDYixHQUFHLEVBQUUs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
@@ -3,63 +3,76 @@ import { createEthereumChain } from '@aztec/ethereum';
3
3
  import { Fr } from '@aztec/foundation/fields';
4
4
  import { createLogger } from '@aztec/foundation/log';
5
5
  import { RollupAbi } from '@aztec/l1-artifacts';
6
- import { createPublicClient, getAddress, getContract, http, } from 'viem';
6
+ import { createPublicClient, getAddress, getContract, http } from 'viem';
7
7
  /**
8
8
  * Simple global variables builder.
9
- */
10
- export class GlobalVariableBuilder {
11
- constructor(config) {
12
- this.log = createLogger('sequencer:global_variable_builder');
9
+ */ export class GlobalVariableBuilder {
10
+ log = createLogger('sequencer:global_variable_builder');
11
+ rollupContract;
12
+ publicClient;
13
+ ethereumSlotDuration;
14
+ constructor(config){
13
15
  const { l1RpcUrl, l1ChainId: chainId, l1Contracts } = config;
14
16
  const chain = createEthereumChain(l1RpcUrl, chainId);
15
17
  this.ethereumSlotDuration = config.ethereumSlotDuration;
16
18
  this.publicClient = createPublicClient({
17
19
  chain: chain.chainInfo,
18
20
  transport: http(chain.rpcUrl),
19
- pollingInterval: config.viemPollingIntervalMS,
21
+ pollingInterval: config.viemPollingIntervalMS
20
22
  });
21
23
  this.rollupContract = getContract({
22
24
  address: getAddress(l1Contracts.rollupAddress.toString()),
23
25
  abi: RollupAbi,
24
- client: this.publicClient,
26
+ client: this.publicClient
25
27
  });
26
28
  }
27
29
  /**
28
- * Computes the "current" base fees, e.g., the price that you currently should pay to get include in the next block
29
- * @returns Base fees for the expected next block
30
- */
31
- async getCurrentBaseFees() {
30
+ * Computes the "current" base fees, e.g., the price that you currently should pay to get include in the next block
31
+ * @returns Base fees for the expected next block
32
+ */ async getCurrentBaseFees() {
32
33
  // Since this might be called in the middle of a slot where a block might have been published,
33
34
  // we need to fetch the last block written, and estimate the earliest timestamp for the next block.
34
35
  // The timestamp of that last block will act as a lower bound for the next block.
35
- const lastBlock = await this.rollupContract.read.getBlock([await this.rollupContract.read.getPendingBlockNumber()]);
36
- const earliestTimestamp = await this.rollupContract.read.getTimestampForSlot([lastBlock.slotNumber + 1n]);
36
+ const lastBlock = await this.rollupContract.read.getBlock([
37
+ await this.rollupContract.read.getPendingBlockNumber()
38
+ ]);
39
+ const earliestTimestamp = await this.rollupContract.read.getTimestampForSlot([
40
+ lastBlock.slotNumber + 1n
41
+ ]);
37
42
  const nextEthTimestamp = BigInt((await this.publicClient.getBlock()).timestamp + BigInt(this.ethereumSlotDuration));
38
43
  const timestamp = earliestTimestamp > nextEthTimestamp ? earliestTimestamp : nextEthTimestamp;
39
- return new GasFees(Fr.ZERO, new Fr(await this.rollupContract.read.getManaBaseFeeAt([timestamp, true])));
44
+ return new GasFees(Fr.ZERO, new Fr(await this.rollupContract.read.getManaBaseFeeAt([
45
+ timestamp,
46
+ true
47
+ ])));
40
48
  }
41
49
  /**
42
- * Simple builder of global variables that use the minimum time possible.
43
- * @param blockNumber - The block number to build global variables for.
44
- * @param coinbase - The address to receive block reward.
45
- * @param feeRecipient - The address to receive fees.
46
- * @param slotNumber - The slot number to use for the global variables, if undefined it will be calculated.
47
- * @returns The global variables for the given block number.
48
- */
49
- async buildGlobalVariables(blockNumber, coinbase, feeRecipient, slotNumber) {
50
+ * Simple builder of global variables that use the minimum time possible.
51
+ * @param blockNumber - The block number to build global variables for.
52
+ * @param coinbase - The address to receive block reward.
53
+ * @param feeRecipient - The address to receive fees.
54
+ * @param slotNumber - The slot number to use for the global variables, if undefined it will be calculated.
55
+ * @returns The global variables for the given block number.
56
+ */ async buildGlobalVariables(blockNumber, coinbase, feeRecipient, slotNumber) {
50
57
  const version = new Fr(await this.rollupContract.read.VERSION());
51
58
  const chainId = new Fr(this.publicClient.chain.id);
52
59
  if (slotNumber === undefined) {
53
60
  const ts = BigInt((await this.publicClient.getBlock()).timestamp + BigInt(this.ethereumSlotDuration));
54
- slotNumber = await this.rollupContract.read.getSlotAt([ts]);
61
+ slotNumber = await this.rollupContract.read.getSlotAt([
62
+ ts
63
+ ]);
55
64
  }
56
- const timestamp = await this.rollupContract.read.getTimestampForSlot([slotNumber]);
65
+ const timestamp = await this.rollupContract.read.getTimestampForSlot([
66
+ slotNumber
67
+ ]);
57
68
  const slotFr = new Fr(slotNumber);
58
69
  const timestampFr = new Fr(timestamp);
59
70
  // We can skip much of the logic in getCurrentBaseFees since it we already check that we are not within a slot elsewhere.
60
- const gasFees = new GasFees(Fr.ZERO, new Fr(await this.rollupContract.read.getManaBaseFeeAt([timestamp, true])));
71
+ const gasFees = new GasFees(Fr.ZERO, new Fr(await this.rollupContract.read.getManaBaseFeeAt([
72
+ timestamp,
73
+ true
74
+ ])));
61
75
  const globalVariables = new GlobalVariables(chainId, version, blockNumber, slotFr, timestampFr, coinbase, feeRecipient, gasFees);
62
76
  return globalVariables;
63
77
  }
64
78
  }
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsX2J1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2xvYmFsX3ZhcmlhYmxlX2J1aWxkZXIvZ2xvYmFsX2J1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEcsT0FBTyxFQUErQyxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25HLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWhELE9BQU8sRUFJTCxrQkFBa0IsRUFDbEIsVUFBVSxFQUNWLFdBQVcsRUFDWCxJQUFJLEdBQ0wsTUFBTSxNQUFNLENBQUM7QUFHZDs7R0FFRztBQUNILE1BQU0sT0FBTyxxQkFBcUI7SUFPaEMsWUFBWSxNQUF3RTtRQU41RSxRQUFHLEdBQUcsWUFBWSxDQUFDLG1DQUFtQyxDQUFDLENBQUM7UUFPOUQsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUU3RCxNQUFNLEtBQUssR0FBRyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFckQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQztRQUV4RCxJQUFJLENBQUMsWUFBWSxHQUFHLGtCQUFrQixDQUFDO1lBQ3JDLEtBQUssRUFBRSxLQUFLLENBQUMsU0FBUztZQUN0QixTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDN0IsZUFBZSxFQUFFLE1BQU0sQ0FBQyxxQkFBcUI7U0FDOUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGNB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
@@ -1,2 +1 @@
1
1
  export { GlobalVariableBuilder } from './global_builder.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2xvYmFsX3ZhcmlhYmxlX2J1aWxkZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUJBQXFCLENBQUMifQ==
package/dest/index.js CHANGED
@@ -7,4 +7,3 @@ export { Sequencer, SequencerState, getDefaultAllowedSetupFunctions } from './se
7
7
  // Used by the node to simulate public parts of transactions. Should these be moved to a shared library?
8
8
  // ISSUE(#9832)
9
9
  export * from './global_variable_builder/index.js';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxPQUFPLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxHLHdHQUF3RztBQUN4RyxlQUFlO0FBQ2YsY0FBYyxvQ0FBb0MsQ0FBQyJ9
@@ -1,59 +1,58 @@
1
1
  import { NULL_KEY, l1TxUtilsConfigMappings } from '@aztec/ethereum';
2
2
  import { getConfigFromMappings, numberConfigHelper } from '@aztec/foundation/config';
3
3
  import { EthAddress } from '@aztec/foundation/eth-address';
4
- export const getTxSenderConfigMappings = (scope) => ({
5
- l1RpcUrl: {
6
- env: 'ETHEREUM_HOST',
7
- description: 'The RPC Url of the ethereum host.',
8
- },
9
- l1ChainId: {
10
- env: 'L1_CHAIN_ID',
11
- parseEnv: (val) => +val,
12
- defaultValue: 31337,
13
- description: 'The chain ID of the ethereum host.',
14
- },
15
- customForwarderContractAddress: {
16
- env: `CUSTOM_FORWARDER_CONTRACT_ADDRESS`,
17
- parseEnv: (val) => EthAddress.fromString(val),
18
- description: 'The address of the custom forwarder contract.',
19
- defaultValue: EthAddress.ZERO,
20
- },
21
- publisherPrivateKey: {
22
- env: `${scope}_PUBLISHER_PRIVATE_KEY`,
23
- description: 'The private key to be used by the publisher.',
24
- parseEnv: (val) => (val ? `0x${val.replace('0x', '')}` : NULL_KEY),
25
- defaultValue: NULL_KEY,
26
- },
27
- requiredConfirmations: {
28
- env: `${scope}_REQUIRED_CONFIRMATIONS`,
29
- parseEnv: (val) => +val,
30
- defaultValue: 1,
31
- description: 'The number of confirmations required.',
32
- },
33
- viemPollingIntervalMS: {
34
- env: `${scope}_VIEM_POLLING_INTERVAL_MS`,
35
- description: 'The polling interval viem uses in ms',
36
- ...numberConfigHelper(1000),
37
- },
38
- });
4
+ export const getTxSenderConfigMappings = (scope)=>({
5
+ l1RpcUrl: {
6
+ env: 'ETHEREUM_HOST',
7
+ description: 'The RPC Url of the ethereum host.'
8
+ },
9
+ l1ChainId: {
10
+ env: 'L1_CHAIN_ID',
11
+ parseEnv: (val)=>+val,
12
+ defaultValue: 31337,
13
+ description: 'The chain ID of the ethereum host.'
14
+ },
15
+ customForwarderContractAddress: {
16
+ env: `CUSTOM_FORWARDER_CONTRACT_ADDRESS`,
17
+ parseEnv: (val)=>EthAddress.fromString(val),
18
+ description: 'The address of the custom forwarder contract.',
19
+ defaultValue: EthAddress.ZERO
20
+ },
21
+ publisherPrivateKey: {
22
+ env: `${scope}_PUBLISHER_PRIVATE_KEY`,
23
+ description: 'The private key to be used by the publisher.',
24
+ parseEnv: (val)=>val ? `0x${val.replace('0x', '')}` : NULL_KEY,
25
+ defaultValue: NULL_KEY
26
+ },
27
+ requiredConfirmations: {
28
+ env: `${scope}_REQUIRED_CONFIRMATIONS`,
29
+ parseEnv: (val)=>+val,
30
+ defaultValue: 1,
31
+ description: 'The number of confirmations required.'
32
+ },
33
+ viemPollingIntervalMS: {
34
+ env: `${scope}_VIEM_POLLING_INTERVAL_MS`,
35
+ description: 'The polling interval viem uses in ms',
36
+ ...numberConfigHelper(1_000)
37
+ }
38
+ });
39
39
  export function getTxSenderConfigFromEnv(scope) {
40
40
  return getConfigFromMappings(getTxSenderConfigMappings(scope));
41
41
  }
42
- export const getPublisherConfigMappings = scope => ({
43
- l1PublishRetryIntervalMS: {
44
- env: `${scope}_PUBLISH_RETRY_INTERVAL_MS`,
45
- parseEnv: (val) => +val,
46
- defaultValue: 1000,
47
- description: 'The interval to wait between publish retries.',
48
- },
49
- ...l1TxUtilsConfigMappings,
50
- blobSinkUrl: {
51
- env: 'BLOB_SINK_URL',
52
- description: 'The URL of the blob sink.',
53
- parseEnv: (val) => val,
54
- },
55
- });
42
+ export const getPublisherConfigMappings = (scope)=>({
43
+ l1PublishRetryIntervalMS: {
44
+ env: `${scope}_PUBLISH_RETRY_INTERVAL_MS`,
45
+ parseEnv: (val)=>+val,
46
+ defaultValue: 1000,
47
+ description: 'The interval to wait between publish retries.'
48
+ },
49
+ ...l1TxUtilsConfigMappings,
50
+ blobSinkUrl: {
51
+ env: 'BLOB_SINK_URL',
52
+ description: 'The URL of the blob sink.',
53
+ parseEnv: (val)=>val
54
+ }
55
+ });
56
56
  export function getPublisherConfigFromEnv(scope) {
57
57
  return getConfigFromMappings(getPublisherConfigMappings(scope));
58
58
  }
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1Ymxpc2hlci9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE2QyxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRyxPQUFPLEVBQTJCLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBcUMzRCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FFeUIsQ0FBQyxLQUF1QixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzNGLFFBQVEsRUFBRTtRQUNSLEdBQUcsRUFBRSxlQUFlO1FBQ3BCLFdBQVcsRUFBRSxtQ0FBbUM7S0FDakQ7SUFDRCxTQUFTLEVBQUU7UUFDVCxHQUFHLEVBQUUsYUFBYTtRQUNsQixRQUFRLEVBQUUsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRztRQUMvQixZQUFZLEVBQUUsS0FBSztRQUNuQixXQUFXLEVBQUUsb0NBQW9DO0tBQ2xEO0lBQ0QsOEJBQThCLEVBQUU7UUFDOUIsR0FBRyxFQUFFLG1DQUFtQztRQUN4QyxRQUFRLEVBQUUsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1FBQ3JELFdBQVcsRUFBRSwrQ0FBK0M7UUFDNUQsWUFBWSxFQUFFLFVBQVUsQ0FBQyxJQUFJO0tBQzlCO0lBQ0QsbUJBQW1CLEVBQUU7UUFDbkIsR0FBRyxFQUFFLEdBQUcsS0FBSyx3QkFBd0I7UUFDckMsV0FBVyxFQUFFLDhDQUE4QztRQUMzRCxRQUFRLEVBQUUsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUMxRSxZQUFZLEVBQUUsUUFBUTtLQUN2QjtJQUNELHFCQUFxQixFQUFFO1FBQ3JCLEdBQUcsRUFBRSxHQUFHLEtBQUsseUJBQXlCO1FBQ3RDLFFBQVEsRUFBRSxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHO1FBQy9CLFlBQVksRUFBRSxDQUFDO1FBQ2YsV0FBVyxFQUFFLHVDQUF1QztLQUNyRDtJQUNELHFCQUFxQixFQUFFO1FBQ3JCLEdBQUcsRUFBRSxHQUFHLEtBQUssMkJBQTJCO1FBQ3hDLFdBQVcsRUFBRSxzQ0FBc0M7UUFDbkQsR0FBRyxrQkFBa0IsQ0FBQyxJQUFLLENBQUM7S0FDN0I7Q0FDRixDQUFDLENBQUM7QUFFSCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsS0FBdUI7SUFDOUQsT0FBTyxxQkFBcUIsQ0FBQyx5QkFBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ2pFLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FFc0IsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JFLHdCQUF3QixFQUFFO1FBQ3hCLEdBQUcsRUFBRSxHQUFHLEtBQUssNEJBQTRCO1FBQ3pDLFFBQVEsRUFBRSxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHO1FBQy9CLFlBQVksRUFBRSxJQUFJO1FBQ2xCLFdBQVcsRUFBRSwrQ0FBK0M7S0FDN0Q7SUFDRCxHQUFHLHVCQUF1QjtJQUMxQixXQUFXLEVBQUU7UUFDWCxHQUFHLEVBQUUsZUFBZTtRQUNwQixXQUFXLEVBQUUsMkJBQTJCO1FBQ3hDLFFBQVEsRUFBRSxDQUFDLEdBQVksRUFBRSxFQUFFLENBQUMsR0FBRztLQUNoQztDQUNGLENBQUMsQ0FBQztBQUVILE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxLQUF1QjtJQUMvRCxPQUFPLHFCQUFxQixDQUFDLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDbEUsQ0FBQyJ9
@@ -1,2 +1 @@
1
1
  export { SequencerPublisher } from './sequencer-publisher.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGlzaGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDIn0=