@aztec/stdlib 5.2.0 → 5.3.0-nightly.20260819

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.
@@ -94,9 +94,9 @@ export declare class GasSettings {
94
94
  * the effective gas available for app logic is gasLimits - teardownGasLimits - privateOverhead.
95
95
  * To ensure estimation never hits gas caps, we set both limits above what the protocol allows:
96
96
  * teardown gets MAX_PROCESSABLE and gasLimits gets teardown + MAX_PROCESSABLE, so the full
97
- * processable amount remains available for each phase independently. To be used in conjunction
98
- * with skipTxValidation: true during public simulation, or the node would reject the transaction
99
- * outright due to gas limits being above protocol max.
97
+ * processable amount remains available for each phase independently. Tx validation exempts
98
+ * simulated txs from gas-limit admission (`isValidTx` with `isSimulation: true`), so these
99
+ * inflated limits pass validation; the wallet clamps the real tx to the admission limit afterward.
100
100
  */
101
101
  static forEstimation(overrides: {
102
102
  gasLimits?: Gas;
@@ -86,9 +86,9 @@ export const GAS_ESTIMATION_DA_GAS_LIMIT = GAS_ESTIMATION_TEARDOWN_DA_GAS_LIMIT
86
86
  * the effective gas available for app logic is gasLimits - teardownGasLimits - privateOverhead.
87
87
  * To ensure estimation never hits gas caps, we set both limits above what the protocol allows:
88
88
  * teardown gets MAX_PROCESSABLE and gasLimits gets teardown + MAX_PROCESSABLE, so the full
89
- * processable amount remains available for each phase independently. To be used in conjunction
90
- * with skipTxValidation: true during public simulation, or the node would reject the transaction
91
- * outright due to gas limits being above protocol max.
89
+ * processable amount remains available for each phase independently. Tx validation exempts
90
+ * simulated txs from gas-limit admission (`isValidTx` with `isSimulation: true`), so these
91
+ * inflated limits pass validation; the wallet clamps the real tx to the admission limit afterward.
92
92
  */ static forEstimation(overrides) {
93
93
  return GasSettings.from({
94
94
  gasLimits: overrides.gasLimits ?? {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/stdlib",
3
- "version": "5.2.0",
3
+ "version": "5.3.0-nightly.20260819",
4
4
  "type": "module",
5
5
  "inherits": [
6
6
  "../package.common.json",
@@ -92,13 +92,13 @@
92
92
  },
93
93
  "dependencies": {
94
94
  "@aws-sdk/client-s3": "^3.892.0",
95
- "@aztec/bb.js": "5.2.0",
96
- "@aztec/blob-lib": "5.2.0",
97
- "@aztec/constants": "5.2.0",
98
- "@aztec/ethereum": "5.2.0",
99
- "@aztec/foundation": "5.2.0",
100
- "@aztec/l1-artifacts": "5.2.0",
101
- "@aztec/noir-noirc_abi": "5.2.0",
95
+ "@aztec/bb.js": "5.3.0-nightly.20260819",
96
+ "@aztec/blob-lib": "5.3.0-nightly.20260819",
97
+ "@aztec/constants": "5.3.0-nightly.20260819",
98
+ "@aztec/ethereum": "5.3.0-nightly.20260819",
99
+ "@aztec/foundation": "5.3.0-nightly.20260819",
100
+ "@aztec/l1-artifacts": "5.3.0-nightly.20260819",
101
+ "@aztec/noir-noirc_abi": "5.3.0-nightly.20260819",
102
102
  "@google-cloud/storage": "^7.15.0",
103
103
  "axios": "^1.15.1",
104
104
  "json-stringify-deterministic": "1.0.12",
package/src/gas/README.md CHANGED
@@ -226,7 +226,8 @@ must also be buildable into a block and fit a valid checkpoint.
226
226
  ### Per-tx protocol maxima
227
227
 
228
228
  Hard ceilings on what any single tx may declare, independent of network configuration. Declaring more is
229
- rejected everywhere a tx is validated.
229
+ rejected by `GasLimitsValidator` at every tx validation entry point except simulation, which is exempt
230
+ because gas estimation deliberately declares limits above the per-tx maximum.
230
231
 
231
232
  - **`MAX_TX_DA_GAS`** (271,200) — `MAX_TX_BLOB_DATA_SIZE_IN_FIELDS` (8,475) × `DA_GAS_PER_FIELD` (32). This
232
233
  is the most DA a single tx's effects can encode into a blob, so it is the most DA gas a tx could ever use.
@@ -300,8 +301,8 @@ The outermost limits, enforced as proposal validity in `validateCheckpointLimits
300
301
 
301
302
  | Limit | Value (mainnet defaults) | Scope | Where enforced |
302
303
  | --------------------------------------- | ------------------------------- | ------------- | ----------------------------------------------------------- |
303
- | `MAX_TX_DA_GAS` | 271,200 | per-tx | every gas validator (hard ceiling) |
304
- | `MAX_PROCESSABLE_L2_GAS` | 6,540,000 | per-tx | every gas validator (hard ceiling) |
304
+ | `MAX_TX_DA_GAS` | 271,200 | per-tx | `GasLimitsValidator` (hard ceiling; simulation exempt) |
305
+ | `MAX_PROCESSABLE_L2_GAS` | 6,540,000 | per-tx | `GasLimitsValidator` (hard ceiling; simulation exempt) |
305
306
  | Network DA admission limit | min(271,200, ceil(784,448/10×1.5)) = 117,668 | per-tx (relay) | RPC, gossip, pending pool (`GasLimitsValidator`) |
306
307
  | Network L2 admission limit | min(6,540,000, ceil(manaLimit/10×1.2)) | per-tx (relay) | RPC, gossip, pending pool (`GasLimitsValidator`) |
307
308
  | Per-block fair share + caps | remaining budget / blocks × multiplier, min absolute caps & blob-field cap | per-block | `CheckpointBuilder.capLimitsByCheckpointBudgets` |
@@ -132,9 +132,9 @@ export class GasSettings {
132
132
  * the effective gas available for app logic is gasLimits - teardownGasLimits - privateOverhead.
133
133
  * To ensure estimation never hits gas caps, we set both limits above what the protocol allows:
134
134
  * teardown gets MAX_PROCESSABLE and gasLimits gets teardown + MAX_PROCESSABLE, so the full
135
- * processable amount remains available for each phase independently. To be used in conjunction
136
- * with skipTxValidation: true during public simulation, or the node would reject the transaction
137
- * outright due to gas limits being above protocol max.
135
+ * processable amount remains available for each phase independently. Tx validation exempts
136
+ * simulated txs from gas-limit admission (`isValidTx` with `isSimulation: true`), so these
137
+ * inflated limits pass validation; the wallet clamps the real tx to the admission limit afterward.
138
138
  */
139
139
  static forEstimation(overrides: {
140
140
  gasLimits?: Gas;