@aztec/simulator 0.67.1 → 0.68.1

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 (143) hide show
  1. package/dest/acvm/oracle/oracle.d.ts +1 -1
  2. package/dest/acvm/oracle/oracle.d.ts.map +1 -1
  3. package/dest/acvm/oracle/oracle.js +3 -3
  4. package/dest/acvm/oracle/typed_oracle.d.ts +1 -1
  5. package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
  6. package/dest/acvm/oracle/typed_oracle.js +3 -3
  7. package/dest/avm/avm_memory_types.d.ts +1 -1
  8. package/dest/avm/avm_memory_types.d.ts.map +1 -1
  9. package/dest/avm/avm_memory_types.js +45 -38
  10. package/dest/avm/avm_simulator.d.ts +1 -0
  11. package/dest/avm/avm_simulator.d.ts.map +1 -1
  12. package/dest/avm/avm_simulator.js +38 -18
  13. package/dest/avm/avm_tree.d.ts +2 -23
  14. package/dest/avm/avm_tree.d.ts.map +1 -1
  15. package/dest/avm/avm_tree.js +27 -82
  16. package/dest/avm/errors.d.ts +8 -1
  17. package/dest/avm/errors.d.ts.map +1 -1
  18. package/dest/avm/errors.js +13 -3
  19. package/dest/avm/fixtures/index.d.ts +2 -0
  20. package/dest/avm/fixtures/index.d.ts.map +1 -1
  21. package/dest/avm/fixtures/index.js +4 -4
  22. package/dest/avm/journal/journal.d.ts +15 -7
  23. package/dest/avm/journal/journal.d.ts.map +1 -1
  24. package/dest/avm/journal/journal.js +30 -22
  25. package/dest/avm/journal/nullifiers.d.ts +0 -4
  26. package/dest/avm/journal/nullifiers.d.ts.map +1 -1
  27. package/dest/avm/journal/nullifiers.js +1 -11
  28. package/dest/avm/journal/public_storage.d.ts +1 -49
  29. package/dest/avm/journal/public_storage.d.ts.map +1 -1
  30. package/dest/avm/journal/public_storage.js +1 -19
  31. package/dest/avm/opcodes/addressing_mode.js +3 -3
  32. package/dest/avm/opcodes/conversion.d.ts +4 -4
  33. package/dest/avm/opcodes/conversion.d.ts.map +1 -1
  34. package/dest/avm/opcodes/conversion.js +22 -18
  35. package/dest/avm/opcodes/ec_add.d.ts.map +1 -1
  36. package/dest/avm/opcodes/ec_add.js +5 -4
  37. package/dest/avm/opcodes/external_calls.js +2 -2
  38. package/dest/avm/opcodes/hashing.d.ts.map +1 -1
  39. package/dest/avm/opcodes/hashing.js +5 -5
  40. package/dest/avm/opcodes/misc.d.ts.map +1 -1
  41. package/dest/avm/opcodes/misc.js +3 -3
  42. package/dest/avm/opcodes/multi_scalar_mul.d.ts.map +1 -1
  43. package/dest/avm/opcodes/multi_scalar_mul.js +9 -6
  44. package/dest/avm/test_utils.d.ts +1 -0
  45. package/dest/avm/test_utils.d.ts.map +1 -1
  46. package/dest/avm/test_utils.js +4 -1
  47. package/dest/client/client_execution_context.d.ts.map +1 -1
  48. package/dest/client/client_execution_context.js +2 -1
  49. package/dest/client/db_oracle.d.ts +7 -3
  50. package/dest/client/db_oracle.d.ts.map +1 -1
  51. package/dest/client/index.d.ts +1 -0
  52. package/dest/client/index.d.ts.map +1 -1
  53. package/dest/client/index.js +2 -1
  54. package/dest/client/view_data_oracle.d.ts +2 -2
  55. package/dest/client/view_data_oracle.d.ts.map +1 -1
  56. package/dest/client/view_data_oracle.js +5 -4
  57. package/dest/providers/acvm_wasm.js +2 -2
  58. package/dest/providers/acvm_wasm_with_blobs.d.ts +7 -0
  59. package/dest/providers/acvm_wasm_with_blobs.d.ts.map +1 -0
  60. package/dest/providers/acvm_wasm_with_blobs.js +15 -0
  61. package/dest/providers/index.d.ts +1 -1
  62. package/dest/providers/index.d.ts.map +1 -1
  63. package/dest/providers/index.js +2 -2
  64. package/dest/public/bytecode_errors.d.ts +4 -0
  65. package/dest/public/bytecode_errors.d.ts.map +1 -0
  66. package/dest/public/bytecode_errors.js +7 -0
  67. package/dest/public/enqueued_call_side_effect_trace.d.ts +10 -4
  68. package/dest/public/enqueued_call_side_effect_trace.d.ts.map +1 -1
  69. package/dest/public/enqueued_call_side_effect_trace.js +63 -13
  70. package/dest/public/execution.d.ts +2 -2
  71. package/dest/public/execution.d.ts.map +1 -1
  72. package/dest/public/execution.js +1 -1
  73. package/dest/public/executor_metrics.d.ts +2 -0
  74. package/dest/public/executor_metrics.d.ts.map +1 -1
  75. package/dest/public/executor_metrics.js +11 -1
  76. package/dest/public/fee_payment.d.ts.map +1 -1
  77. package/dest/public/fee_payment.js +4 -3
  78. package/dest/public/fixtures/index.d.ts +17 -11
  79. package/dest/public/fixtures/index.d.ts.map +1 -1
  80. package/dest/public/fixtures/index.js +103 -35
  81. package/dest/public/public_db_sources.d.ts.map +1 -1
  82. package/dest/public/public_db_sources.js +7 -6
  83. package/dest/public/public_processor.d.ts +15 -7
  84. package/dest/public/public_processor.d.ts.map +1 -1
  85. package/dest/public/public_processor.js +119 -75
  86. package/dest/public/public_processor_metrics.d.ts +10 -2
  87. package/dest/public/public_processor_metrics.d.ts.map +1 -1
  88. package/dest/public/public_processor_metrics.js +49 -2
  89. package/dest/public/public_tx_context.d.ts +5 -0
  90. package/dest/public/public_tx_context.d.ts.map +1 -1
  91. package/dest/public/public_tx_context.js +40 -20
  92. package/dest/public/public_tx_simulator.d.ts +2 -1
  93. package/dest/public/public_tx_simulator.d.ts.map +1 -1
  94. package/dest/public/public_tx_simulator.js +35 -6
  95. package/dest/public/side_effect_errors.js +2 -2
  96. package/dest/public/side_effect_trace_interface.d.ts +2 -1
  97. package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
  98. package/dest/public/transitional_adapters.d.ts.map +1 -1
  99. package/dest/public/transitional_adapters.js +2 -35
  100. package/dest/public/unique_class_ids.d.ts +37 -0
  101. package/dest/public/unique_class_ids.d.ts.map +1 -0
  102. package/dest/public/unique_class_ids.js +66 -0
  103. package/package.json +12 -12
  104. package/src/acvm/oracle/oracle.ts +2 -2
  105. package/src/acvm/oracle/typed_oracle.ts +2 -2
  106. package/src/avm/avm_memory_types.ts +56 -38
  107. package/src/avm/avm_simulator.ts +48 -20
  108. package/src/avm/avm_tree.ts +35 -92
  109. package/src/avm/errors.ts +13 -2
  110. package/src/avm/fixtures/index.ts +4 -2
  111. package/src/avm/journal/journal.ts +39 -29
  112. package/src/avm/journal/nullifiers.ts +0 -11
  113. package/src/avm/journal/public_storage.ts +2 -21
  114. package/src/avm/opcodes/addressing_mode.ts +2 -2
  115. package/src/avm/opcodes/conversion.ts +21 -16
  116. package/src/avm/opcodes/ec_add.ts +4 -3
  117. package/src/avm/opcodes/external_calls.ts +1 -1
  118. package/src/avm/opcodes/hashing.ts +6 -4
  119. package/src/avm/opcodes/misc.ts +4 -3
  120. package/src/avm/opcodes/multi_scalar_mul.ts +10 -5
  121. package/src/avm/test_utils.ts +4 -0
  122. package/src/client/client_execution_context.ts +2 -0
  123. package/src/client/db_oracle.ts +8 -3
  124. package/src/client/index.ts +1 -0
  125. package/src/client/view_data_oracle.ts +6 -3
  126. package/src/providers/acvm_wasm.ts +1 -1
  127. package/src/providers/acvm_wasm_with_blobs.ts +25 -0
  128. package/src/providers/index.ts +1 -1
  129. package/src/public/bytecode_errors.ts +6 -0
  130. package/src/public/enqueued_call_side_effect_trace.ts +83 -19
  131. package/src/public/execution.ts +1 -2
  132. package/src/public/executor_metrics.ts +13 -0
  133. package/src/public/fee_payment.ts +3 -2
  134. package/src/public/fixtures/index.ts +152 -46
  135. package/src/public/public_db_sources.ts +6 -5
  136. package/src/public/public_processor.ts +171 -88
  137. package/src/public/public_processor_metrics.ts +64 -2
  138. package/src/public/public_tx_context.ts +57 -21
  139. package/src/public/public_tx_simulator.ts +34 -6
  140. package/src/public/side_effect_errors.ts +1 -1
  141. package/src/public/side_effect_trace_interface.ts +2 -1
  142. package/src/public/transitional_adapters.ts +0 -51
  143. package/src/public/unique_class_ids.ts +80 -0
@@ -1,10 +1,11 @@
1
1
  import { __esDecorate, __runInitializers } from "tslib";
2
2
  import { MerkleTreeId, NestedProcessReturnValues, Tx, TxExecutionPhase, makeProcessedTxFromPrivateOnlyTx, makeProcessedTxFromTxWithPublicCalls, } from '@aztec/circuit-types';
3
- import { Fr, MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, NULLIFIER_SUBTREE_HEIGHT, PublicDataWrite, } from '@aztec/circuits.js';
3
+ import { Fr, Gas, MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, NULLIFIER_SUBTREE_HEIGHT, PublicDataWrite, } from '@aztec/circuits.js';
4
4
  import { padArrayEnd } from '@aztec/foundation/collection';
5
5
  import { createLogger } from '@aztec/foundation/log';
6
- import { Timer } from '@aztec/foundation/timer';
7
- import { ContractClassRegisteredEvent, ProtocolContractAddress } from '@aztec/protocol-contracts';
6
+ import { Timer, elapsed, executeTimeout } from '@aztec/foundation/timer';
7
+ import { ProtocolContractAddress } from '@aztec/protocol-contracts';
8
+ import { ContractClassRegisteredEvent } from '@aztec/protocol-contracts/class-registerer';
8
9
  import { Attributes, trackSpan } from '@aztec/telemetry-client';
9
10
  import { computeFeePayerBalanceLeafSlot, computeFeePayerBalanceStorageSlot } from './fee_payment.js';
10
11
  import { WorldStateDB } from './public_db_sources.js';
@@ -14,22 +15,33 @@ import { PublicTxSimulator } from './public_tx_simulator.js';
14
15
  * Creates new instances of PublicProcessor given the provided merkle tree db and contract data source.
15
16
  */
16
17
  export class PublicProcessorFactory {
17
- constructor(contractDataSource, telemetryClient) {
18
+ constructor(contractDataSource, dateProvider, telemetryClient) {
18
19
  this.contractDataSource = contractDataSource;
20
+ this.dateProvider = dateProvider;
19
21
  this.telemetryClient = telemetryClient;
20
22
  }
21
23
  /**
22
24
  * Creates a new instance of a PublicProcessor.
23
25
  * @param historicalHeader - The header of a block previous to the one in which the tx is included.
24
26
  * @param globalVariables - The global variables for the block being processed.
27
+ * @param enforceFeePayment - Allows disabling balance checks for fee estimations.
25
28
  * @returns A new instance of a PublicProcessor.
26
29
  */
27
- create(merkleTree, maybeHistoricalHeader, globalVariables) {
30
+ create(merkleTree, maybeHistoricalHeader, globalVariables, enforceFeePayment) {
28
31
  const historicalHeader = maybeHistoricalHeader ?? merkleTree.getInitialHeader();
29
32
  const worldStateDB = new WorldStateDB(merkleTree, this.contractDataSource);
30
- const publicTxSimulator = new PublicTxSimulator(merkleTree, worldStateDB, this.telemetryClient, globalVariables,
31
- /*doMerkleOperations=*/ true);
32
- return new PublicProcessor(merkleTree, globalVariables, historicalHeader, worldStateDB, publicTxSimulator, this.telemetryClient);
33
+ const publicTxSimulator = this.createPublicTxSimulator(merkleTree, worldStateDB, this.telemetryClient, globalVariables,
34
+ /*doMerkleOperations=*/ true, enforceFeePayment);
35
+ return new PublicProcessor(merkleTree, globalVariables, historicalHeader, worldStateDB, publicTxSimulator, this.dateProvider, this.telemetryClient);
36
+ }
37
+ createPublicTxSimulator(db, worldStateDB, telemetryClient, globalVariables, doMerkleOperations, enforceFeePayment) {
38
+ return new PublicTxSimulator(db, worldStateDB, telemetryClient, globalVariables, doMerkleOperations, enforceFeePayment);
39
+ }
40
+ }
41
+ class PublicProcessorTimeoutError extends Error {
42
+ constructor(message = 'Timed out while processing tx') {
43
+ super(message);
44
+ this.name = 'PublicProcessorTimeoutError';
33
45
  }
34
46
  }
35
47
  /**
@@ -39,15 +51,17 @@ export class PublicProcessorFactory {
39
51
  let PublicProcessor = (() => {
40
52
  var _a;
41
53
  let _instanceExtraInitializers = [];
54
+ let _processTx_decorators;
42
55
  let _processPrivateOnlyTx_decorators;
43
56
  let _processTxWithPublicCalls_decorators;
44
57
  return _a = class PublicProcessor {
45
- constructor(db, globalVariables, historicalHeader, worldStateDB, publicTxSimulator, telemetryClient, log = createLogger('simulator:public-processor')) {
58
+ constructor(db, globalVariables, historicalHeader, worldStateDB, publicTxSimulator, dateProvider, telemetryClient, log = createLogger('simulator:public-processor')) {
46
59
  this.db = (__runInitializers(this, _instanceExtraInitializers), db);
47
60
  this.globalVariables = globalVariables;
48
61
  this.historicalHeader = historicalHeader;
49
62
  this.worldStateDB = worldStateDB;
50
63
  this.publicTxSimulator = publicTxSimulator;
64
+ this.dateProvider = dateProvider;
51
65
  this.log = log;
52
66
  this.metrics = new PublicProcessorMetrics(telemetryClient, 'PublicProcessor');
53
67
  }
@@ -60,90 +74,118 @@ let PublicProcessor = (() => {
60
74
  * @param processedTxHandler - Handler for processed txs in the context of block building or proving.
61
75
  * @returns The list of processed txs with their circuit simulation outputs.
62
76
  */
63
- async process(txs, maxTransactions = txs.length, processedTxHandler, txValidator) {
77
+ async process(txs, maxTransactions = txs.length, txValidator, deadline) {
64
78
  // The processor modifies the tx objects in place, so we need to clone them.
65
79
  txs = txs.map(tx => Tx.clone(tx));
66
80
  const result = [];
67
81
  const failed = [];
68
82
  let returns = [];
83
+ let totalGas = new Gas(0, 0);
84
+ const timer = new Timer();
69
85
  for (const tx of txs) {
70
86
  // only process up to the limit of the block
71
87
  if (result.length >= maxTransactions) {
72
88
  break;
73
89
  }
74
90
  try {
75
- const [processedTx, returnValues] = !tx.hasPublicCalls()
76
- ? await this.processPrivateOnlyTx(tx)
77
- : await this.processTxWithPublicCalls(tx);
78
- this.log.verbose(!tx.hasPublicCalls()
79
- ? `Processed tx ${processedTx.hash} with no public calls`
80
- : `Processed tx ${processedTx.hash} with ${tx.enqueuedPublicFunctionCalls.length} public calls`, {
81
- txHash: processedTx.hash,
82
- txFee: processedTx.txEffect.transactionFee.toBigInt(),
83
- revertCode: processedTx.txEffect.revertCode.getCode(),
84
- revertReason: processedTx.revertReason,
85
- gasUsed: processedTx.gasUsed,
86
- publicDataWriteCount: processedTx.txEffect.publicDataWrites.length,
87
- nullifierCount: processedTx.txEffect.nullifiers.length,
88
- noteHashCount: processedTx.txEffect.noteHashes.length,
89
- contractClassLogCount: processedTx.txEffect.contractClassLogs.getTotalLogCount(),
90
- unencryptedLogCount: processedTx.txEffect.unencryptedLogs.getTotalLogCount(),
91
- privateLogCount: processedTx.txEffect.privateLogs.length,
92
- l2ToL1MessageCount: processedTx.txEffect.l2ToL1Msgs.length,
93
- });
94
- // Commit the state updates from this transaction
95
- await this.worldStateDB.commit();
96
- // Re-validate the transaction
97
- if (txValidator) {
98
- // Only accept processed transactions that are not double-spends,
99
- // public functions emitting nullifiers would pass earlier check but fail here.
100
- // Note that we're checking all nullifiers generated in the private execution twice,
101
- // we could store the ones already checked and skip them here as an optimization.
102
- const [_, invalid] = await txValidator.validateTxs([processedTx]);
103
- if (invalid.length) {
104
- throw new Error(`Transaction ${invalid[0].hash} invalid after processing public functions`);
105
- }
106
- }
107
- // if we were given a handler then send the transaction to it for block building or proving
108
- if (processedTxHandler) {
109
- await processedTxHandler.addNewTx(processedTx);
110
- }
111
- // Update the state so that the next tx in the loop has the correct .startState
112
- // NB: before this change, all .startStates were actually incorrect, but the issue was never caught because we either:
113
- // a) had only 1 tx with public calls per block, so this loop had len 1
114
- // b) always had a txHandler with the same db passed to it as this.db, which updated the db in buildBaseRollupHints in this loop
115
- // To see how this ^ happens, move back to one shared db in test_context and run orchestrator_multi_public_functions.test.ts
116
- // The below is taken from buildBaseRollupHints:
117
- await this.db.appendLeaves(MerkleTreeId.NOTE_HASH_TREE, padArrayEnd(processedTx.txEffect.noteHashes, Fr.ZERO, MAX_NOTE_HASHES_PER_TX));
118
- try {
119
- await this.db.batchInsert(MerkleTreeId.NULLIFIER_TREE, padArrayEnd(processedTx.txEffect.nullifiers, Fr.ZERO, MAX_NULLIFIERS_PER_TX).map(n => n.toBuffer()), NULLIFIER_SUBTREE_HEIGHT);
120
- }
121
- catch (error) {
122
- if (txValidator) {
123
- // Ideally the validator has already caught this above, but just in case:
124
- throw new Error(`Transaction ${processedTx.hash} invalid after processing public functions`);
125
- }
126
- else {
127
- // We have no validator and assume this call should blindly process txs with duplicates being caught later
128
- this.log.warn(`Detected duplicate nullifier after public processing for: ${processedTx.hash}.`);
129
- }
130
- }
131
- await this.db.sequentialInsert(MerkleTreeId.PUBLIC_DATA_TREE, processedTx.txEffect.publicDataWrites.map(x => x.toBuffer()));
91
+ const [processedTx, returnValues] = await this.processTx(tx, txValidator, deadline);
132
92
  result.push(processedTx);
133
- returns = returns.concat(returnValues ?? []);
93
+ returns = returns.concat(returnValues);
94
+ totalGas = totalGas.add(processedTx.gasUsed.publicGas);
134
95
  }
135
96
  catch (err) {
97
+ if (err?.name === 'PublicProcessorTimeoutError') {
98
+ this.log.warn(`Stopping tx processing due to timeout.`);
99
+ break;
100
+ }
136
101
  const errorMessage = err instanceof Error ? err.message : 'Unknown error';
137
102
  this.log.warn(`Failed to process tx ${tx.getTxHash()}: ${errorMessage} ${err?.stack}`);
138
- failed.push({
139
- tx,
140
- error: err instanceof Error ? err : new Error(errorMessage),
141
- });
103
+ failed.push({ tx, error: err instanceof Error ? err : new Error(errorMessage) });
142
104
  returns.push(new NestedProcessReturnValues([]));
143
105
  }
144
106
  }
107
+ const duration = timer.s();
108
+ const rate = duration > 0 ? totalGas.l2Gas / duration : 0;
109
+ this.metrics.recordAllTxs(totalGas, rate);
145
110
  return [result, failed, returns];
146
111
  }
112
+ async processTx(tx, txValidator, deadline) {
113
+ const [time, [processedTx, returnValues]] = await elapsed(() => this.processTxWithinDeadline(tx, deadline));
114
+ this.log.verbose(!tx.hasPublicCalls()
115
+ ? `Processed tx ${processedTx.hash} with no public calls in ${time}ms`
116
+ : `Processed tx ${processedTx.hash} with ${tx.enqueuedPublicFunctionCalls.length} public calls in ${time}ms`, {
117
+ txHash: processedTx.hash,
118
+ txFee: processedTx.txEffect.transactionFee.toBigInt(),
119
+ revertCode: processedTx.txEffect.revertCode.getCode(),
120
+ revertReason: processedTx.revertReason,
121
+ gasUsed: processedTx.gasUsed,
122
+ publicDataWriteCount: processedTx.txEffect.publicDataWrites.length,
123
+ nullifierCount: processedTx.txEffect.nullifiers.length,
124
+ noteHashCount: processedTx.txEffect.noteHashes.length,
125
+ contractClassLogCount: processedTx.txEffect.contractClassLogs.getTotalLogCount(),
126
+ unencryptedLogCount: processedTx.txEffect.unencryptedLogs.getTotalLogCount(),
127
+ privateLogCount: processedTx.txEffect.privateLogs.length,
128
+ l2ToL1MessageCount: processedTx.txEffect.l2ToL1Msgs.length,
129
+ durationMs: time,
130
+ });
131
+ // Commit the state updates from this transaction
132
+ await this.worldStateDB.commit();
133
+ // Re-validate the transaction
134
+ if (txValidator) {
135
+ // Only accept processed transactions that are not double-spends,
136
+ // public functions emitting nullifiers would pass earlier check but fail here.
137
+ // Note that we're checking all nullifiers generated in the private execution twice,
138
+ // we could store the ones already checked and skip them here as an optimization.
139
+ const [_, invalid] = await txValidator.validateTxs([processedTx]);
140
+ if (invalid.length) {
141
+ throw new Error(`Transaction ${invalid[0].hash} invalid after processing public functions`);
142
+ }
143
+ }
144
+ // Update the state so that the next tx in the loop has the correct .startState
145
+ // NB: before this change, all .startStates were actually incorrect, but the issue was never caught because we either:
146
+ // a) had only 1 tx with public calls per block, so this loop had len 1
147
+ // b) always had a txHandler with the same db passed to it as this.db, which updated the db in buildBaseRollupHints in this loop
148
+ // To see how this ^ happens, move back to one shared db in test_context and run orchestrator_multi_public_functions.test.ts
149
+ // The below is taken from buildBaseRollupHints:
150
+ const treeInsertionStart = process.hrtime.bigint();
151
+ await this.db.appendLeaves(MerkleTreeId.NOTE_HASH_TREE, padArrayEnd(processedTx.txEffect.noteHashes, Fr.ZERO, MAX_NOTE_HASHES_PER_TX));
152
+ try {
153
+ await this.db.batchInsert(MerkleTreeId.NULLIFIER_TREE, padArrayEnd(processedTx.txEffect.nullifiers, Fr.ZERO, MAX_NULLIFIERS_PER_TX).map(n => n.toBuffer()), NULLIFIER_SUBTREE_HEIGHT);
154
+ }
155
+ catch (error) {
156
+ if (txValidator) {
157
+ // Ideally the validator has already caught this above, but just in case:
158
+ throw new Error(`Transaction ${processedTx.hash} invalid after processing public functions`);
159
+ }
160
+ else {
161
+ // We have no validator and assume this call should blindly process txs with duplicates being caught later
162
+ this.log.warn(`Detected duplicate nullifier after public processing for: ${processedTx.hash}.`);
163
+ }
164
+ }
165
+ await this.db.sequentialInsert(MerkleTreeId.PUBLIC_DATA_TREE, processedTx.txEffect.publicDataWrites.map(x => x.toBuffer()));
166
+ const treeInsertionEnd = process.hrtime.bigint();
167
+ this.metrics.recordTreeInsertions(Number(treeInsertionEnd - treeInsertionStart) / 1000);
168
+ return [processedTx, returnValues ?? []];
169
+ }
170
+ /** Processes the given tx within deadline. Returns timeout if deadline is hit. */
171
+ async processTxWithinDeadline(tx, deadline) {
172
+ const processFn = tx.hasPublicCalls()
173
+ ? () => this.processTxWithPublicCalls(tx)
174
+ : () => this.processPrivateOnlyTx(tx);
175
+ if (!deadline) {
176
+ return await processFn();
177
+ }
178
+ const timeout = +deadline - this.dateProvider.now();
179
+ this.log.debug(`Processing tx ${tx.getTxHash().toString()} within ${timeout}ms`, {
180
+ deadline: deadline.toISOString(),
181
+ now: new Date(this.dateProvider.now()).toISOString(),
182
+ txHash: tx.getTxHash().toString(),
183
+ });
184
+ if (timeout < 0) {
185
+ throw new PublicProcessorTimeoutError();
186
+ }
187
+ return await executeTimeout(() => processFn(), timeout, () => new PublicProcessorTimeoutError());
188
+ }
147
189
  /**
148
190
  * Creates the public data write for paying the tx fee.
149
191
  * This is used in private only txs, since for txs with public calls
@@ -175,7 +217,7 @@ let PublicProcessor = (() => {
175
217
  .unrollLogs()
176
218
  .filter(log => ContractClassRegisteredEvent.isContractClassRegisteredEvent(log.data))
177
219
  .map(log => ContractClassRegisteredEvent.fromLog(log.data)));
178
- return [processedTx];
220
+ return [processedTx, undefined];
179
221
  }
180
222
  async processTxWithPublicCalls(tx) {
181
223
  const timer = new Timer();
@@ -198,7 +240,7 @@ let PublicProcessor = (() => {
198
240
  .map(log => ContractClassRegisteredEvent.fromLog(log.data)));
199
241
  const phaseCount = processedPhases.length;
200
242
  const durationMs = timer.ms();
201
- this.metrics.recordTx(phaseCount, durationMs);
243
+ this.metrics.recordTx(phaseCount, durationMs, gasUsed.publicGas);
202
244
  const processedTx = makeProcessedTxFromTxWithPublicCalls(tx, avmProvingRequest, gasUsed, revertCode, revertReason);
203
245
  const returnValues = processedPhases.find(({ phase }) => phase === TxExecutionPhase.APP_LOGIC)?.returnValues ?? [];
204
246
  return [processedTx, returnValues];
@@ -206,12 +248,14 @@ let PublicProcessor = (() => {
206
248
  },
207
249
  (() => {
208
250
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
251
+ _processTx_decorators = [trackSpan('PublicProcessor.processTx', tx => ({ [Attributes.TX_HASH]: tx.tryGetTxHash()?.toString() }))];
209
252
  _processPrivateOnlyTx_decorators = [trackSpan('PublicProcessor.processPrivateOnlyTx', (tx) => ({
210
253
  [Attributes.TX_HASH]: tx.getTxHash().toString(),
211
254
  }))];
212
255
  _processTxWithPublicCalls_decorators = [trackSpan('PublicProcessor.processTxWithPublicCalls', tx => ({
213
256
  [Attributes.TX_HASH]: tx.getTxHash().toString(),
214
257
  }))];
258
+ __esDecorate(_a, null, _processTx_decorators, { kind: "method", name: "processTx", static: false, private: false, access: { has: obj => "processTx" in obj, get: obj => obj.processTx }, metadata: _metadata }, null, _instanceExtraInitializers);
215
259
  __esDecorate(_a, null, _processPrivateOnlyTx_decorators, { kind: "method", name: "processPrivateOnlyTx", static: false, private: false, access: { has: obj => "processPrivateOnlyTx" in obj, get: obj => obj.processPrivateOnlyTx }, metadata: _metadata }, null, _instanceExtraInitializers);
216
260
  __esDecorate(_a, null, _processTxWithPublicCalls_decorators, { kind: "method", name: "processTxWithPublicCalls", static: false, private: false, access: { has: obj => "processTxWithPublicCalls" in obj, get: obj => obj.processTxWithPublicCalls }, metadata: _metadata }, null, _instanceExtraInitializers);
217
261
  if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
@@ -219,4 +263,4 @@ let PublicProcessor = (() => {
219
263
  _a;
220
264
  })();
221
265
  export { PublicProcessor };
222
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3Byb2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvcHVibGljX3Byb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLFlBQVksRUFFWix5QkFBeUIsRUFHekIsRUFBRSxFQUNGLGdCQUFnQixFQUVoQixnQ0FBZ0MsRUFDaEMsb0NBQW9DLEdBQ3JDLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUlMLEVBQUUsRUFFRixzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLHdCQUF3QixFQUN4QixlQUFlLEdBQ2hCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEcsT0FBTyxFQUFFLFVBQVUsRUFBcUMsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbkcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLGlDQUFpQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTdEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxZQUFvQixrQkFBc0MsRUFBVSxlQUFnQztRQUFoRix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQVUsb0JBQWUsR0FBZixlQUFlLENBQWlCO0lBQUcsQ0FBQztJQUV4Rzs7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
266
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3Byb2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvcHVibGljX3Byb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLFlBQVksRUFFWix5QkFBeUIsRUFFekIsRUFBRSxFQUNGLGdCQUFnQixFQUVoQixnQ0FBZ0MsRUFDaEMsb0NBQW9DLEdBQ3JDLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUlMLEVBQUUsRUFDRixHQUFHLEVBRUgsc0JBQXNCLEVBQ3RCLHFCQUFxQixFQUNyQix3QkFBd0IsRUFDeEIsZUFBZSxHQUNoQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFxQixLQUFLLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxVQUFVLEVBQXFELFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRW5ILE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU3RDs7R0FFRztBQUNILE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsWUFDVSxrQkFBc0MsRUFDdEMsWUFBMEIsRUFDMUIsZUFBZ0M7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
@@ -1,5 +1,6 @@
1
1
  import { type TxExecutionPhase } from '@aztec/circuit-types';
2
- import { type ContractClassRegisteredEvent } from '@aztec/protocol-contracts';
2
+ import { type Gas } from '@aztec/circuits.js';
3
+ import { type ContractClassRegisteredEvent } from '@aztec/protocol-contracts/class-registerer';
3
4
  import { type TelemetryClient, type Tracer } from '@aztec/telemetry-client';
4
5
  export declare class PublicProcessorMetrics {
5
6
  readonly tracer: Tracer;
@@ -9,11 +10,18 @@ export declare class PublicProcessorMetrics {
9
10
  private phaseDuration;
10
11
  private phaseCount;
11
12
  private bytecodeDeployed;
13
+ private totalGas;
14
+ private totalGasHistogram;
15
+ private gasRate;
16
+ private txGas;
17
+ private treeInsertionDuration;
12
18
  constructor(client: TelemetryClient, name?: string);
13
19
  recordPhaseDuration(phaseName: TxExecutionPhase, durationMs: number): void;
14
- recordTx(phaseCount: number, durationMs: number): void;
20
+ recordTx(phaseCount: number, durationMs: number, gasUsed: Gas): void;
21
+ recordAllTxs(totalGas: Gas, gasRate: number): void;
15
22
  recordFailedTx(): void;
16
23
  recordRevertedPhase(phaseName: TxExecutionPhase): void;
17
24
  recordClassRegistration(...events: ContractClassRegisteredEvent[]): void;
25
+ recordTreeInsertions(durationUs: number): void;
18
26
  }
19
27
  //# sourceMappingURL=public_processor_metrics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"public_processor_metrics.d.ts","sourceRoot":"","sources":["../../src/public/public_processor_metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,sBAAsB;IACjC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,YAAY,CAAgB;IAEpC,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,UAAU,CAAgB;IAElC,OAAO,CAAC,gBAAgB,CAAY;gBAExB,MAAM,EAAE,eAAe,EAAE,IAAI,SAAoB;IAkC7D,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM;IAKnE,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAQ/C,cAAc;IAMd,mBAAmB,CAAC,SAAS,EAAE,gBAAgB;IAI/C,uBAAuB,CAAC,GAAG,MAAM,EAAE,4BAA4B,EAAE;CAUlE"}
1
+ {"version":3,"file":"public_processor_metrics.d.ts","sourceRoot":"","sources":["../../src/public/public_processor_metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,4CAA4C,CAAC;AAC/F,OAAO,EAKL,KAAK,eAAe,EACpB,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,sBAAsB;IACjC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,YAAY,CAAgB;IAEpC,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,UAAU,CAAgB;IAElC,OAAO,CAAC,gBAAgB,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,iBAAiB,CAAY;IACrC,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,KAAK,CAAY;IAEzB,OAAO,CAAC,qBAAqB,CAAY;gBAE7B,MAAM,EAAE,eAAe,EAAE,IAAI,SAAoB;IA4D7D,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM;IAKnE,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAc7D,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM;IAkB3C,cAAc;IAMd,mBAAmB,CAAC,SAAS,EAAE,gBAAgB;IAI/C,uBAAuB,CAAC,GAAG,MAAM,EAAE,4BAA4B,EAAE;IAWjE,oBAAoB,CAAC,UAAU,EAAE,MAAM;CAGxC"}
@@ -26,17 +26,61 @@ export class PublicProcessorMetrics {
26
26
  description: 'Size of deployed bytecode',
27
27
  unit: 'By',
28
28
  });
29
+ this.totalGas = meter.createGauge(Metrics.PUBLIC_PROCESSOR_TOTAL_GAS, {
30
+ description: 'Total gas used in block',
31
+ unit: 'gas',
32
+ });
33
+ this.totalGasHistogram = meter.createHistogram(Metrics.PUBLIC_PROCESSOR_TOTAL_GAS_HISTOGRAM, {
34
+ description: 'Total gas used in block as histogram',
35
+ unit: 'gas/block',
36
+ });
37
+ this.txGas = meter.createHistogram(Metrics.PUBLIC_PROCESSOR_TX_GAS, {
38
+ description: 'Gas used in transaction',
39
+ unit: 'gas/tx',
40
+ });
41
+ this.gasRate = meter.createHistogram(Metrics.PUBLIC_PROCESSOR_GAS_RATE, {
42
+ description: 'L2 gas per second for complete block',
43
+ unit: 'gas/s',
44
+ });
45
+ this.treeInsertionDuration = meter.createHistogram(Metrics.PUBLIC_PROCESSOR_TREE_INSERTION, {
46
+ description: 'How long it takes for tree insertion',
47
+ unit: 'us',
48
+ valueType: ValueType.INT,
49
+ });
29
50
  }
30
51
  recordPhaseDuration(phaseName, durationMs) {
31
52
  this.phaseCount.add(1, { [Attributes.TX_PHASE_NAME]: phaseName, [Attributes.OK]: true });
32
53
  this.phaseDuration.record(Math.ceil(durationMs), { [Attributes.TX_PHASE_NAME]: phaseName });
33
54
  }
34
- recordTx(phaseCount, durationMs) {
55
+ recordTx(phaseCount, durationMs, gasUsed) {
35
56
  this.txPhaseCount.add(phaseCount);
36
57
  this.txDuration.record(Math.ceil(durationMs));
37
58
  this.txCount.add(1, {
38
59
  [Attributes.OK]: true,
39
60
  });
61
+ this.txGas.record(gasUsed.daGas, {
62
+ [Attributes.GAS_DIMENSION]: 'DA',
63
+ });
64
+ this.txGas.record(gasUsed.l2Gas, {
65
+ [Attributes.GAS_DIMENSION]: 'L2',
66
+ });
67
+ }
68
+ recordAllTxs(totalGas, gasRate) {
69
+ this.totalGas.record(totalGas.daGas, {
70
+ [Attributes.GAS_DIMENSION]: 'DA',
71
+ });
72
+ this.totalGas.record(totalGas.l2Gas, {
73
+ [Attributes.GAS_DIMENSION]: 'L2',
74
+ });
75
+ this.gasRate.record(gasRate, {
76
+ [Attributes.GAS_DIMENSION]: 'L2',
77
+ });
78
+ this.totalGasHistogram.record(totalGas.daGas, {
79
+ [Attributes.GAS_DIMENSION]: 'DA',
80
+ });
81
+ this.totalGasHistogram.record(totalGas.l2Gas, {
82
+ [Attributes.GAS_DIMENSION]: 'L2',
83
+ });
40
84
  }
41
85
  recordFailedTx() {
42
86
  this.txCount.add(1, {
@@ -55,5 +99,8 @@ export class PublicProcessorMetrics {
55
99
  this.bytecodeDeployed.record(totalBytecode);
56
100
  }
57
101
  }
102
+ recordTreeInsertions(durationUs) {
103
+ this.treeInsertionDuration.record(Math.ceil(durationUs));
104
+ }
58
105
  }
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3Byb2Nlc3Nvcl9tZXRyaWNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1YmxpYy9wdWJsaWNfcHJvY2Vzc29yX21ldHJpY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUNMLFVBQVUsRUFFVixPQUFPLEVBSVAsU0FBUyxHQUNWLE1BQU0seUJBQXlCLENBQUM7QUFFakMsTUFBTSxPQUFPLHNCQUFzQjtJQVlqQyxZQUFZLE1BQXVCLEVBQUUsSUFBSSxHQUFHLGlCQUFpQjtRQUMzRCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVwQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLDRCQUE0QixFQUFFO1lBQzVFLFdBQVcsRUFBRSw0Q0FBNEM7WUFDekQsSUFBSSxFQUFFLElBQUk7WUFDVixTQUFTLEVBQUUsU0FBUyxDQUFDLEdBQUc7U0FDekIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLHlCQUF5QixFQUFFO1lBQzFFLFdBQVcsRUFBRSxrQ0FBa0M7U0FDaEQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLCtCQUErQixFQUFFO1lBQ3JGLFdBQVcsRUFBRSw0QkFBNEI7U0FDMUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQywrQkFBK0IsRUFBRTtZQUNsRixXQUFXLEVBQUUsc0NBQXNDO1lBQ25ELElBQUksRUFBRSxJQUFJO1lBQ1YsU0FBUyxFQUFFLFNBQVMsQ0FBQyxHQUFHO1NBQ3pCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsRUFBRTtZQUNoRixXQUFXLEVBQUUseUJBQXlCO1NBQ3ZDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxxQ0FBcUMsRUFBRTtZQUMzRixXQUFXLEVBQUUsMkJBQTJCO1lBQ3hDLElBQUksRUFBRSxJQUFJO1NBQ1gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELG1CQUFtQixDQUFDLFNBQTJCLEVBQUUsVUFBa0I7UUFDakUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDekYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVELFFBQVEsQ0FBQyxVQUFrQixFQUFFLFVBQWtCO1FBQzdDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDbEIsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUNsQixDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxTQUEyQjtRQUM3QyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBRUQsdUJBQXVCLENBQUMsR0FBRyxNQUFzQztRQUMvRCxJQUFJLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDdEIsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUMzQixhQUFhLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQztRQUNyRCxDQUFDO1FBRUQsSUFBSSxhQUFhLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM5QyxDQUFDO0lBQ0gsQ0FBQztDQUNGIn0=
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3Byb2Nlc3Nvcl9tZXRyaWNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1YmxpYy9wdWJsaWNfcHJvY2Vzc29yX21ldHJpY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUNMLFVBQVUsRUFHVixPQUFPLEVBSVAsU0FBUyxHQUNWLE1BQU0seUJBQXlCLENBQUM7QUFFakMsTUFBTSxPQUFPLHNCQUFzQjtJQWtCakMsWUFBWSxNQUF1QixFQUFFLElBQUksR0FBRyxpQkFBaUI7UUFDM0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsRUFBRTtZQUM1RSxXQUFXLEVBQUUsNENBQTRDO1lBQ3pELElBQUksRUFBRSxJQUFJO1lBQ1YsU0FBUyxFQUFFLFNBQVMsQ0FBQyxHQUFHO1NBQ3pCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsRUFBRTtZQUMxRSxXQUFXLEVBQUUsa0NBQWtDO1NBQ2hELENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQywrQkFBK0IsRUFBRTtZQUNyRixXQUFXLEVBQUUsNEJBQTRCO1NBQzFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsK0JBQStCLEVBQUU7WUFDbEYsV0FBVyxFQUFFLHNDQUFzQztZQUNuRCxJQUFJLEVBQUUsSUFBSTtZQUNWLFNBQVMsRUFBRSxTQUFTLENBQUMs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
@@ -86,6 +86,11 @@ export declare class PublicTxContext {
86
86
  * teardown gas limit.
87
87
  */
88
88
  getActualGasUsed(): Gas;
89
+ /**
90
+ * Compute the public gas used using the actual gas used during teardown instead
91
+ * of the teardown gas limit.
92
+ */
93
+ getActualPublicGasUsed(): Gas;
89
94
  /**
90
95
  * Get the transaction fee as is available to the specified phase.
91
96
  * Only teardown should have access to the actual transaction fee.
@@ -1 +1 @@
1
- {"version":3,"file":"public_tx_context.d.ts","sourceRoot":"","sources":["../../src/public/public_tx_context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"public_tx_context.d.ts","sourceRoot":"","sources":["../../src/public/public_tx_context.ts"],"names":[],"mappings":"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"}