@aztec/stdlib 0.87.6 → 1.0.0-nightly.20250604
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.
- package/dest/abi/abi.d.ts +3 -0
- package/dest/abi/abi.d.ts.map +1 -1
- package/dest/abi/abi.js +38 -0
- package/dest/avm/avm.d.ts +1188 -25
- package/dest/avm/avm.d.ts.map +1 -1
- package/dest/avm/avm.js +31 -14
- package/dest/avm/avm_accumulated_data.d.ts +77 -0
- package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
- package/dest/avm/avm_accumulated_data.js +67 -0
- package/dest/avm/avm_circuit_public_inputs.d.ts +73 -3
- package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
- package/dest/avm/avm_circuit_public_inputs.js +19 -9
- package/dest/avm/avm_proving_request.d.ts +572 -0
- package/dest/avm/avm_proving_request.d.ts.map +1 -1
- package/dest/avm/gas.d.ts +7 -0
- package/dest/avm/gas.d.ts.map +1 -0
- package/dest/avm/gas.js +13 -0
- package/dest/avm/index.d.ts +1 -0
- package/dest/avm/index.d.ts.map +1 -1
- package/dest/avm/index.js +1 -0
- package/dest/block/body.d.ts +1 -1
- package/dest/block/body.d.ts.map +1 -1
- package/dest/block/body.js +2 -2
- package/dest/block/index.d.ts +1 -0
- package/dest/block/index.d.ts.map +1 -1
- package/dest/block/index.js +1 -0
- package/dest/block/l2_block.d.ts +3 -2
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +10 -5
- package/dest/block/l2_block_source.d.ts +9 -4
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +1 -0
- package/dest/block/proposal/committee_attestation.d.ts +34 -0
- package/dest/block/proposal/committee_attestation.d.ts.map +1 -0
- package/dest/block/proposal/committee_attestation.js +59 -0
- package/dest/block/proposal/index.d.ts +2 -0
- package/dest/block/proposal/index.d.ts.map +1 -0
- package/dest/block/proposal/index.js +1 -0
- package/dest/block/published_l2_block.d.ts +99 -69
- package/dest/block/published_l2_block.d.ts.map +1 -1
- package/dest/block/published_l2_block.js +38 -12
- package/dest/block/test/l2_tips_store_test_suite.js +1 -1
- package/dest/interfaces/archiver.js +2 -2
- package/dest/interfaces/aztec-node.d.ts +3 -8
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +3 -6
- package/dest/interfaces/block-builder.d.ts +41 -2
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/block-builder.js +1 -1
- package/dest/interfaces/epoch-prover.d.ts +2 -2
- package/dest/interfaces/epoch-prover.d.ts.map +1 -1
- package/dest/interfaces/merkle_tree_operations.d.ts +14 -0
- package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
- package/dest/interfaces/p2p.d.ts +6 -3
- package/dest/interfaces/p2p.d.ts.map +1 -1
- package/dest/interfaces/p2p.js +1 -2
- package/dest/interfaces/proving-job.d.ts +576 -4
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/proving-job.js +2 -2
- package/dest/interfaces/server_circuit_prover.d.ts +3 -2
- package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
- package/dest/kernel/hints/find_private_kernel_reset_dimensions.js +1 -1
- package/dest/kernel/hints/key_validation_hint.d.ts +2 -6
- package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
- package/dest/kernel/hints/key_validation_hint.js +5 -7
- package/dest/kernel/hints/private_kernel_reset_hints.d.ts +7 -7
- package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
- package/dest/kernel/hints/private_kernel_reset_hints.js +8 -4
- package/dest/kernel/hints/read_request_hints.d.ts +8 -8
- package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
- package/dest/kernel/index.d.ts +1 -0
- package/dest/kernel/index.d.ts.map +1 -1
- package/dest/kernel/index.js +1 -0
- package/dest/kernel/padded_side_effects.d.ts +26 -0
- package/dest/kernel/padded_side_effects.d.ts.map +1 -0
- package/dest/kernel/padded_side_effects.js +51 -0
- package/dest/kernel/private_kernel_data.d.ts +6 -25
- package/dest/kernel/private_kernel_data.d.ts.map +1 -1
- package/dest/kernel/private_kernel_data.js +8 -19
- package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +7 -4
- package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_reset_circuit_private_inputs.js +10 -6
- package/dest/kernel/private_kernel_reset_dimensions.d.ts +10 -10
- package/dest/kernel/private_kernel_reset_dimensions.d.ts.map +1 -1
- package/dest/kernel/private_kernel_reset_dimensions.js +29 -29
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +10 -1
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +8 -3
- package/dest/kernel/private_to_avm_accumulated_data.d.ts +1 -0
- package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_to_avm_accumulated_data.js +4 -0
- package/dest/kernel/public_call_request.d.ts +54 -0
- package/dest/kernel/public_call_request.d.ts.map +1 -1
- package/dest/kernel/public_call_request.js +58 -0
- package/dest/logs/contract_class_log.d.ts +0 -4
- package/dest/logs/contract_class_log.d.ts.map +1 -1
- package/dest/logs/contract_class_log.js +0 -33
- package/dest/logs/log_with_tx_data.d.ts +13 -3
- package/dest/logs/log_with_tx_data.d.ts.map +1 -1
- package/dest/logs/log_with_tx_data.js +26 -14
- package/dest/logs/private_log.d.ts +1 -0
- package/dest/logs/private_log.d.ts.map +1 -1
- package/dest/logs/private_log.js +3 -0
- package/dest/logs/public_log.d.ts +1 -0
- package/dest/logs/public_log.d.ts.map +1 -1
- package/dest/logs/public_log.js +3 -0
- package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
- package/dest/logs/tx_scoped_l2_log.js +1 -0
- package/dest/messaging/index.d.ts +1 -0
- package/dest/messaging/index.d.ts.map +1 -1
- package/dest/messaging/index.js +1 -0
- package/dest/messaging/l2_to_l1_membership.d.ts +11 -0
- package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -0
- package/dest/messaging/l2_to_l1_membership.js +70 -0
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/rollup/avm_proof_data.d.ts +7 -5
- package/dest/rollup/avm_proof_data.d.ts.map +1 -1
- package/dest/rollup/avm_proof_data.js +12 -4
- package/dest/rollup/base_rollup_hints.d.ts +4 -4
- package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
- package/dest/rollup/base_rollup_hints.js +8 -8
- package/dest/rollup/previous_rollup_block_data.d.ts +6 -15
- package/dest/rollup/previous_rollup_block_data.d.ts.map +1 -1
- package/dest/rollup/previous_rollup_block_data.js +8 -13
- package/dest/rollup/previous_rollup_data.d.ts +6 -15
- package/dest/rollup/previous_rollup_data.d.ts.map +1 -1
- package/dest/rollup/previous_rollup_data.js +8 -13
- package/dest/rollup/private_tube_data.d.ts +3 -3
- package/dest/rollup/private_tube_data.d.ts.map +1 -1
- package/dest/rollup/private_tube_data.js +3 -3
- package/dest/rollup/public_tube_data.d.ts +3 -3
- package/dest/rollup/public_tube_data.d.ts.map +1 -1
- package/dest/rollup/public_tube_data.js +3 -3
- package/dest/rollup/root_rollup.d.ts +9 -10
- package/dest/rollup/root_rollup.d.ts.map +1 -1
- package/dest/rollup/root_rollup.js +9 -20
- package/dest/tests/factories.d.ts +2 -1
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +53 -28
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +4 -3
- package/dest/tx/processed_tx.d.ts.map +1 -1
- package/dest/tx/processed_tx.js +2 -5
- package/dest/tx/tx.d.ts +10 -25
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +25 -50
- package/dest/tx/tx_effect.d.ts +1 -1
- package/dest/tx/tx_effect.d.ts.map +1 -1
- package/dest/tx/tx_effect.js +2 -2
- package/dest/tx/tx_hash.d.ts +1 -0
- package/dest/tx/tx_hash.d.ts.map +1 -1
- package/dest/tx/tx_hash.js +3 -0
- package/dest/validators/types.d.ts +4 -0
- package/dest/validators/types.d.ts.map +1 -1
- package/dest/vks/index.d.ts +1 -1
- package/dest/vks/index.d.ts.map +1 -1
- package/dest/vks/index.js +1 -1
- package/dest/vks/{vk_witness_data.d.ts → vk_data.d.ts} +8 -8
- package/dest/vks/vk_data.d.ts.map +1 -0
- package/dest/vks/{vk_witness_data.js → vk_data.js} +10 -10
- package/package.json +7 -7
- package/src/abi/abi.ts +37 -0
- package/src/avm/avm.ts +25 -4
- package/src/avm/avm_accumulated_data.ts +93 -0
- package/src/avm/avm_circuit_public_inputs.ts +22 -2
- package/src/avm/gas.ts +26 -0
- package/src/avm/index.ts +1 -0
- package/src/block/body.ts +7 -2
- package/src/block/index.ts +1 -0
- package/src/block/l2_block.ts +8 -3
- package/src/block/l2_block_source.ts +9 -3
- package/src/block/proposal/committee_attestation.ts +70 -0
- package/src/block/proposal/index.ts +1 -0
- package/src/block/published_l2_block.ts +38 -24
- package/src/block/test/l2_tips_store_test_suite.ts +1 -1
- package/src/interfaces/archiver.ts +2 -2
- package/src/interfaces/aztec-node.ts +8 -16
- package/src/interfaces/block-builder.ts +49 -2
- package/src/interfaces/epoch-prover.ts +2 -2
- package/src/interfaces/merkle_tree_operations.ts +20 -0
- package/src/interfaces/p2p.ts +9 -4
- package/src/interfaces/proving-job.ts +3 -3
- package/src/interfaces/server_circuit_prover.ts +3 -2
- package/src/kernel/hints/find_private_kernel_reset_dimensions.ts +3 -3
- package/src/kernel/hints/key_validation_hint.ts +4 -6
- package/src/kernel/hints/private_kernel_reset_hints.ts +34 -43
- package/src/kernel/hints/read_request_hints.ts +27 -15
- package/src/kernel/index.ts +1 -0
- package/src/kernel/padded_side_effects.ts +73 -0
- package/src/kernel/private_kernel_data.ts +7 -29
- package/src/kernel/private_kernel_reset_circuit_private_inputs.ts +16 -13
- package/src/kernel/private_kernel_reset_dimensions.ts +27 -27
- package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +10 -2
- package/src/kernel/private_to_avm_accumulated_data.ts +9 -0
- package/src/kernel/public_call_request.ts +66 -0
- package/src/logs/contract_class_log.ts +0 -36
- package/src/logs/log_with_tx_data.ts +26 -12
- package/src/logs/private_log.ts +4 -0
- package/src/logs/public_log.ts +4 -0
- package/src/logs/tx_scoped_l2_log.ts +1 -0
- package/src/messaging/index.ts +1 -0
- package/src/messaging/l2_to_l1_membership.ts +113 -0
- package/src/p2p/consensus_payload.ts +3 -1
- package/src/rollup/avm_proof_data.ts +14 -7
- package/src/rollup/base_rollup_hints.ts +4 -4
- package/src/rollup/previous_rollup_block_data.ts +6 -12
- package/src/rollup/previous_rollup_data.ts +6 -12
- package/src/rollup/private_tube_data.ts +4 -4
- package/src/rollup/public_tube_data.ts +4 -4
- package/src/rollup/root_rollup.ts +6 -19
- package/src/tests/factories.ts +80 -43
- package/src/tests/mocks.ts +6 -3
- package/src/tx/processed_tx.ts +4 -5
- package/src/tx/tx.ts +28 -54
- package/src/tx/tx_effect.ts +23 -5
- package/src/tx/tx_hash.ts +4 -0
- package/src/validators/types.ts +2 -0
- package/src/vks/index.ts +1 -1
- package/src/vks/{vk_witness_data.ts → vk_data.ts} +6 -6
- package/dest/vks/vk_witness_data.d.ts.map +0 -1
package/dest/tx/tx.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../../src/tx/tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAyD,MAAM,6BAA6B,CAAC;AAClH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAIxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,
|
|
1
|
+
{"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../../src/tx/tx.ts"],"names":[],"mappings":"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"}
|
package/dest/tx/tx.js
CHANGED
|
@@ -16,7 +16,7 @@ import { TxHash } from './tx_hash.js';
|
|
|
16
16
|
*/ export class Tx extends Gossipable {
|
|
17
17
|
data;
|
|
18
18
|
clientIvcProof;
|
|
19
|
-
|
|
19
|
+
contractClassLogFields;
|
|
20
20
|
publicFunctionCalldata;
|
|
21
21
|
static p2pTopic = TopicType.tx;
|
|
22
22
|
// For memoization
|
|
@@ -28,11 +28,13 @@ import { TxHash } from './tx_hash.js';
|
|
|
28
28
|
* Proof from the private kernel circuit.
|
|
29
29
|
* TODO(#7368): This client IVC object currently contains various VKs that will eventually be more like static data.
|
|
30
30
|
*/ clientIvcProof, /**
|
|
31
|
-
* Contract class
|
|
32
|
-
|
|
31
|
+
* Contract class log fields emitted from the tx.
|
|
32
|
+
* Their order should match the order of the log hashes returned from `this.data.getNonEmptyContractClassLogsHashes`.
|
|
33
|
+
* It's checked in data_validator.ts
|
|
34
|
+
*/ contractClassLogFields, /**
|
|
33
35
|
* An array of calldata for the enqueued public function calls and the teardown function call.
|
|
34
36
|
*/ publicFunctionCalldata){
|
|
35
|
-
super(), this.data = data, this.clientIvcProof = clientIvcProof, this.
|
|
37
|
+
super(), this.data = data, this.clientIvcProof = clientIvcProof, this.contractClassLogFields = contractClassLogFields, this.publicFunctionCalldata = publicFunctionCalldata;
|
|
36
38
|
}
|
|
37
39
|
// Gossipable method
|
|
38
40
|
async generateP2PMessageIdentifier() {
|
|
@@ -86,7 +88,7 @@ import { TxHash } from './tx_hash.js';
|
|
|
86
88
|
return serializeToBuffer([
|
|
87
89
|
this.data,
|
|
88
90
|
this.clientIvcProof,
|
|
89
|
-
serializeArrayOfBufferableToVector(this.
|
|
91
|
+
serializeArrayOfBufferableToVector(this.contractClassLogFields, 1),
|
|
90
92
|
serializeArrayOfBufferableToVector(this.publicFunctionCalldata, 1)
|
|
91
93
|
]);
|
|
92
94
|
}
|
|
@@ -94,12 +96,12 @@ import { TxHash } from './tx_hash.js';
|
|
|
94
96
|
return z.object({
|
|
95
97
|
data: PrivateKernelTailCircuitPublicInputs.schema,
|
|
96
98
|
clientIvcProof: ClientIvcProof.schema,
|
|
97
|
-
|
|
99
|
+
contractClassLogFields: z.array(ContractClassLogFields.schema),
|
|
98
100
|
publicFunctionCalldata: z.array(HashedValues.schema)
|
|
99
101
|
}).transform(Tx.from);
|
|
100
102
|
}
|
|
101
103
|
static from(fields) {
|
|
102
|
-
return new Tx(fields.data, fields.clientIvcProof, fields.
|
|
104
|
+
return new Tx(fields.data, fields.clientIvcProof, fields.contractClassLogFields, fields.publicFunctionCalldata);
|
|
103
105
|
}
|
|
104
106
|
/**
|
|
105
107
|
* Gets public logs emitted by this tx.
|
|
@@ -110,38 +112,25 @@ import { TxHash } from './tx_hash.js';
|
|
|
110
112
|
txHash: await this.getTxHash()
|
|
111
113
|
});
|
|
112
114
|
}
|
|
115
|
+
getContractClassLogs() {
|
|
116
|
+
const logHashes = this.data.getNonEmptyContractClassLogsHashes();
|
|
117
|
+
return logHashes.map((logHash, i)=>ContractClassLog.from({
|
|
118
|
+
contractAddress: logHash.contractAddress,
|
|
119
|
+
fields: this.contractClassLogFields[i],
|
|
120
|
+
emittedLength: logHash.logHash.length
|
|
121
|
+
}));
|
|
122
|
+
}
|
|
113
123
|
/**
|
|
114
124
|
* Gets either revertible or non revertible contract class logs emitted by this tx.
|
|
115
125
|
* @param revertible - true for revertible only logs, false for non reverible only logs.
|
|
116
126
|
* @returns The requested logs.
|
|
117
|
-
*/
|
|
118
|
-
// Should only be called on txs with public calls
|
|
127
|
+
*/ getSplitContractClassLogs(revertible) {
|
|
119
128
|
if (!this.data.forPublic) {
|
|
120
|
-
|
|
129
|
+
throw new Error('`getSplitContractClassLogs` should only be called on txs with public calls');
|
|
121
130
|
}
|
|
122
|
-
const
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
/**
|
|
126
|
-
* Filters contract class logs emitted by this tx.
|
|
127
|
-
* @param logHashes - logs to keep represented by their hashes.
|
|
128
|
-
* @param silo - whether to silo the logs before returning them.
|
|
129
|
-
* @returns The requested logs.
|
|
130
|
-
*/ async filterContractClassLogs(logHashes, silo = false) {
|
|
131
|
-
const contractClassLogs = [];
|
|
132
|
-
for (const fields of this.contractClassLogs){
|
|
133
|
-
const hashedLog = await fields.hash();
|
|
134
|
-
const logHash = logHashes.find((hash)=>hash.value.equals(hashedLog));
|
|
135
|
-
if (logHash) {
|
|
136
|
-
const log = ContractClassLog.from({
|
|
137
|
-
contractAddress: logHash.contractAddress,
|
|
138
|
-
fields,
|
|
139
|
-
emittedLength: logHash.logHash.length
|
|
140
|
-
});
|
|
141
|
-
contractClassLogs.push(silo ? await log.silo() : log);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
return contractClassLogs;
|
|
131
|
+
const contractClassLogs = this.getContractClassLogs();
|
|
132
|
+
const numNonRevertible = this.data.forPublic.nonRevertibleAccumulatedData.contractClassLogsHashes.filter((h)=>!h.isEmpty()).length;
|
|
133
|
+
return revertible ? contractClassLogs.slice(numNonRevertible) : contractClassLogs.slice(0, numNonRevertible);
|
|
145
134
|
}
|
|
146
135
|
/**
|
|
147
136
|
* Computes (if necessary) & return transaction hash.
|
|
@@ -184,7 +173,7 @@ import { TxHash } from './tx_hash.js';
|
|
|
184
173
|
};
|
|
185
174
|
}
|
|
186
175
|
getSize() {
|
|
187
|
-
return this.data.getSize() + this.clientIvcProof.clientIvcProofBuffer.length + arraySerializedSizeOfNonEmpty(this.
|
|
176
|
+
return this.data.getSize() + this.clientIvcProof.clientIvcProofBuffer.length + arraySerializedSizeOfNonEmpty(this.contractClassLogFields) + this.publicFunctionCalldata.reduce((accum, cd)=>accum + cd.getSize(), 0);
|
|
188
177
|
}
|
|
189
178
|
/**
|
|
190
179
|
* Estimates the tx size based on its private effects. Note that the actual size of the tx
|
|
@@ -213,9 +202,9 @@ import { TxHash } from './tx_hash.js';
|
|
|
213
202
|
*/ static clone(tx) {
|
|
214
203
|
const publicInputs = PrivateKernelTailCircuitPublicInputs.fromBuffer(tx.data.toBuffer());
|
|
215
204
|
const clientIvcProof = ClientIvcProof.fromBuffer(tx.clientIvcProof.toBuffer());
|
|
216
|
-
const
|
|
205
|
+
const contractClassLogFields = tx.contractClassLogFields.map((p)=>p.clone());
|
|
217
206
|
const publicFunctionCalldata = tx.publicFunctionCalldata.map((cd)=>HashedValues.fromBuffer(cd.toBuffer()));
|
|
218
|
-
const clonedTx = new Tx(publicInputs, clientIvcProof,
|
|
207
|
+
const clonedTx = new Tx(publicInputs, clientIvcProof, contractClassLogFields, publicFunctionCalldata);
|
|
219
208
|
if (tx.txHash) {
|
|
220
209
|
clonedTx.setTxHash(TxHash.fromBuffer(tx.txHash.toBuffer()));
|
|
221
210
|
}
|
|
@@ -232,20 +221,6 @@ import { TxHash } from './tx_hash.js';
|
|
|
232
221
|
HashedValues.random()
|
|
233
222
|
]);
|
|
234
223
|
}
|
|
235
|
-
/**
|
|
236
|
-
* Filters out logs from functions that are not present in the provided kernel output.
|
|
237
|
-
*
|
|
238
|
-
* The purpose of this is to remove logs that got dropped due to a revert,
|
|
239
|
-
* in which case, we only have the kernel's hashes to go on, as opposed to
|
|
240
|
-
* this grouping by function maintained in this class.
|
|
241
|
-
*
|
|
242
|
-
* The logic therefore is to drop all FunctionLogs if any constituent hash
|
|
243
|
-
* does not appear in the provided hashes: it is impossible for part of a
|
|
244
|
-
* function to revert.
|
|
245
|
-
*/ // TODO: don't modify the tx object directly. The preimages should match the log hashes. When did the log hashes change?
|
|
246
|
-
async filterRevertedLogs() {
|
|
247
|
-
this.contractClassLogs = (await this.getSplitContractClassLogs(false)).map((log)=>log.fields);
|
|
248
|
-
}
|
|
249
224
|
#combinePublicCallRequestWithCallData(request) {
|
|
250
225
|
const calldataMap = this.getCalldataMap();
|
|
251
226
|
// Assume empty calldata if nothing is given for the hash.
|
package/dest/tx/tx_effect.d.ts
CHANGED
|
@@ -112,7 +112,7 @@ export declare class TxEffect {
|
|
|
112
112
|
* @dev Follows new_sha in variable_merkle_tree.nr
|
|
113
113
|
*/
|
|
114
114
|
txOutHash(): Buffer<ArrayBufferLike>;
|
|
115
|
-
static random(numPublicCallsPerTx?: number, numPublicLogsPerCall?: number): Promise<TxEffect>;
|
|
115
|
+
static random(numPublicCallsPerTx?: number, numPublicLogsPerCall?: number, maxEffects?: number | undefined): Promise<TxEffect>;
|
|
116
116
|
static empty(): TxEffect;
|
|
117
117
|
isEmpty(): boolean;
|
|
118
118
|
/** Returns a hex representation of the TxEffect object. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx_effect.d.ts","sourceRoot":"","sources":["../../src/tx/tx_effect.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,QAAQ,EAA6B,MAAM,yBAAyB,CAAC;AAInF,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,2BAA2B,CAAC;AACjE,OAAO,EACL,YAAY,EACZ,WAAW,EAGZ,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,eAAO,MAAM,eAAe,uBAAuB,CAAC;AAEpD,eAAO,MAAM,4BAA4B,QAA0C,CAAC;AAEpF,eAAO,MAAM,4BAA4B,QAAmC,CAAC;AAE7E,qBAAa,QAAQ;IAEjB;;OAEG;IACI,UAAU,EAAE,UAAU;IAC7B;;OAEG;IACI,MAAM,EAAE,MAAM;IACrB;;OAEG;IACI,cAAc,EAAE,EAAE;IACzB;;OAEG;IACI,UAAU,EAAE,EAAE,EAAE;IACvB;;OAEG;IACI,UAAU,EAAE,EAAE,EAAE;IACvB;;;OAGG;IACI,UAAU,EAAE,EAAE,EAAE;IACvB;;OAEG;IACI,gBAAgB,EAAE,eAAe,EAAE;IAC1C;;OAEG;IACI,WAAW,EAAE,UAAU,EAAE;IAChC;;OAEG;IACI,UAAU,EAAE,SAAS,EAAE;IAC9B;;OAEG;IACI,iBAAiB,EAAE,gBAAgB,EAAE;;IAxC5C;;OAEG;IACI,UAAU,EAAE,UAAU;IAC7B;;OAEG;IACI,MAAM,EAAE,MAAM;IACrB;;OAEG;IACI,cAAc,EAAE,EAAE;IACzB;;OAEG;IACI,UAAU,EAAE,EAAE,EAAE;IACvB;;OAEG;IACI,UAAU,EAAE,EAAE,EAAE;IACvB;;;OAGG;IACI,UAAU,EAAE,EAAE,EAAE;IACvB;;OAEG;IACI,gBAAgB,EAAE,eAAe,EAAE;IAC1C;;OAEG;IACI,WAAW,EAAE,UAAU,EAAE;IAChC;;OAEG;IACI,UAAU,EAAE,SAAS,EAAE;IAC9B;;OAEG;IACI,iBAAiB,EAAE,gBAAgB,EAAE;IAoD9C,QAAQ,IAAI,MAAM;IAelB,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO;IAsBhC,yEAAyE;IACzE,SAAS;IAIT;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ;IAiB1D;;;;OAIG;IACH,SAAS;WAuBI,MAAM,
|
|
1
|
+
{"version":3,"file":"tx_effect.d.ts","sourceRoot":"","sources":["../../src/tx/tx_effect.ts"],"names":[],"mappings":"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"}
|
package/dest/tx/tx_effect.js
CHANGED
|
@@ -160,8 +160,8 @@ export class TxEffect {
|
|
|
160
160
|
}
|
|
161
161
|
return thisLayer[0];
|
|
162
162
|
}
|
|
163
|
-
static async random(numPublicCallsPerTx = 3, numPublicLogsPerCall = 1) {
|
|
164
|
-
return new TxEffect(RevertCode.random(), TxHash.random(), new Fr(Math.floor(Math.random() * 100_000)), makeTuple(MAX_NOTE_HASHES_PER_TX, Fr.random), makeTuple(MAX_NULLIFIERS_PER_TX, Fr.random), makeTuple(MAX_L2_TO_L1_MSGS_PER_TX, Fr.random), makeTuple(MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, PublicDataWrite.random), makeTuple(MAX_PRIVATE_LOGS_PER_TX, ()=>PrivateLog.random()), await makeTupleAsync(numPublicCallsPerTx * numPublicLogsPerCall, async ()=>await PublicLog.random()), await makeTupleAsync(MAX_CONTRACT_CLASS_LOGS_PER_TX, ContractClassLog.random));
|
|
163
|
+
static async random(numPublicCallsPerTx = 3, numPublicLogsPerCall = 1, maxEffects = undefined) {
|
|
164
|
+
return new TxEffect(RevertCode.random(), TxHash.random(), new Fr(Math.floor(Math.random() * 100_000)), makeTuple(maxEffects === undefined ? MAX_NOTE_HASHES_PER_TX : Math.min(maxEffects, MAX_NOTE_HASHES_PER_TX), Fr.random), makeTuple(maxEffects === undefined ? MAX_NULLIFIERS_PER_TX : Math.min(maxEffects, MAX_NULLIFIERS_PER_TX), Fr.random), makeTuple(maxEffects === undefined ? MAX_L2_TO_L1_MSGS_PER_TX : Math.min(maxEffects, MAX_L2_TO_L1_MSGS_PER_TX), Fr.random), makeTuple(maxEffects === undefined ? MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX : Math.min(maxEffects, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX), PublicDataWrite.random), makeTuple(MAX_PRIVATE_LOGS_PER_TX, ()=>PrivateLog.random()), await makeTupleAsync(numPublicCallsPerTx * numPublicLogsPerCall, async ()=>await PublicLog.random()), await makeTupleAsync(MAX_CONTRACT_CLASS_LOGS_PER_TX, ContractClassLog.random));
|
|
165
165
|
}
|
|
166
166
|
static empty() {
|
|
167
167
|
return new TxEffect(RevertCode.OK, TxHash.zero(), Fr.ZERO, [], [], [], [], [], [], []);
|
package/dest/tx/tx_hash.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export declare class TxHash {
|
|
|
13
13
|
static fromBuffer(buffer: Uint8Array | BufferReader): TxHash;
|
|
14
14
|
static fromString(str: string): TxHash;
|
|
15
15
|
static fromBigInt(value: bigint): TxHash;
|
|
16
|
+
static fromField(value: Fr): TxHash;
|
|
16
17
|
toBuffer(): Buffer<ArrayBufferLike>;
|
|
17
18
|
toString(): `0x${string}`;
|
|
18
19
|
toBigInt(): bigint;
|
package/dest/tx/tx_hash.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx_hash.d.ts","sourceRoot":"","sources":["../../src/tx/tx_hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAI3D;;GAEG;AACH,qBAAa,MAAM;IAEf,mGAAmG;aACnF,IAAI,EAAE,EAAE;;IADxB,mGAAmG;IACnF,IAAI,EAAE,EAAE;IAG1B,MAAM,CAAC,MAAM;IAIb,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY;IAKnD,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;IAI7B,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"tx_hash.d.ts","sourceRoot":"","sources":["../../src/tx/tx_hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAI3D;;GAEG;AACH,qBAAa,MAAM;IAEf,mGAAmG;aACnF,IAAI,EAAE,EAAE;;IADxB,mGAAmG;IACnF,IAAI,EAAE,EAAE;IAG1B,MAAM,CAAC,MAAM;IAIb,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY;IAKnD,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;IAI7B,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM;IAI/B,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE;IAInB,QAAQ;IAIR,QAAQ;IAIR,QAAQ;IAIf,MAAM;IAIC,MAAM,CAAC,KAAK,EAAE,MAAM;IAI3B,MAAM,KAAK,MAAM,iNAEhB;IAED,MAAM,CAAC,IAAI;IAIX,MAAM,KAAK,IAAI,WAEd;CACF"}
|
package/dest/tx/tx_hash.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/validators/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,aAAa,CAAC;AAE1D,MAAM,MAAM,qBAAqB,GAC7B,aAAa,GACb,gBAAgB,GAChB,cAAc,GACd,kBAAkB,GAClB,oBAAoB,CAAC;AAEzB,MAAM,MAAM,sBAAsB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,qBAAqB,CAAA;CAAE,EAAE,CAAC;AAEvF,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,UAAU,CAAC;IACpB,YAAY,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,eAAe,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,kBAAkB,EAAE;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,OAAO,EAAE,sBAAsB,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACtC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/validators/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,aAAa,CAAC;AAE1D,MAAM,MAAM,qBAAqB,GAC7B,aAAa,GACb,gBAAgB,GAChB,cAAc,GACd,kBAAkB,GAClB,oBAAoB,CAAC;AAEzB,MAAM,MAAM,sBAAsB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,qBAAqB,CAAA;CAAE,EAAE,CAAC;AAEvF,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,UAAU,CAAC;IACpB,YAAY,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,eAAe,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,kBAAkB,EAAE;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,OAAO,EAAE,sBAAsB,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACtC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,KAAK,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC"}
|
package/dest/vks/index.d.ts
CHANGED
package/dest/vks/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vks/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vks/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC"}
|
package/dest/vks/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from './verification_key.js';
|
|
2
|
-
export * from './
|
|
2
|
+
export * from './vk_data.js';
|
|
@@ -3,28 +3,28 @@ import { Fr } from '@aztec/foundation/fields';
|
|
|
3
3
|
import { BufferReader, type Tuple } from '@aztec/foundation/serialize';
|
|
4
4
|
import type { UInt32 } from '../types/shared.js';
|
|
5
5
|
import { VerificationKeyData } from './verification_key.js';
|
|
6
|
-
export declare class
|
|
6
|
+
export declare class VkData {
|
|
7
7
|
vk: VerificationKeyData;
|
|
8
8
|
/**
|
|
9
9
|
* Index of the vk in the vk tree.
|
|
10
10
|
*/
|
|
11
|
-
|
|
11
|
+
leafIndex: UInt32;
|
|
12
12
|
/**
|
|
13
13
|
* Sibling path of the vk in the vk tree.
|
|
14
14
|
*/
|
|
15
|
-
|
|
15
|
+
siblingPath: Tuple<Fr, typeof VK_TREE_HEIGHT>;
|
|
16
16
|
constructor(vk: VerificationKeyData,
|
|
17
17
|
/**
|
|
18
18
|
* Index of the vk in the vk tree.
|
|
19
19
|
*/
|
|
20
|
-
|
|
20
|
+
leafIndex: UInt32,
|
|
21
21
|
/**
|
|
22
22
|
* Sibling path of the vk in the vk tree.
|
|
23
23
|
*/
|
|
24
|
-
|
|
25
|
-
static empty():
|
|
26
|
-
static fromBuffer(buffer: Buffer | BufferReader):
|
|
24
|
+
siblingPath: Tuple<Fr, typeof VK_TREE_HEIGHT>);
|
|
25
|
+
static empty(): VkData;
|
|
26
|
+
static fromBuffer(buffer: Buffer | BufferReader): VkData;
|
|
27
27
|
toBuffer(): Buffer<ArrayBufferLike>;
|
|
28
28
|
toString(): `0x${string}`;
|
|
29
29
|
}
|
|
30
|
-
//# sourceMappingURL=
|
|
30
|
+
//# sourceMappingURL=vk_data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vk_data.d.ts","sourceRoot":"","sources":["../../src/vks/vk_data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAqB,MAAM,6BAA6B,CAAC;AAG1F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,qBAAa,MAAM;IAER,EAAE,EAAE,mBAAmB;IAC9B;;OAEG;IACI,SAAS,EAAE,MAAM;IACxB;;OAEG;IACI,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,cAAc,CAAC;gBAR7C,EAAE,EAAE,mBAAmB;IAC9B;;OAEG;IACI,SAAS,EAAE,MAAM;IACxB;;OAEG;IACI,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,cAAc,CAAC;IAGtD,MAAM,CAAC,KAAK;IAIZ,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAS/C,QAAQ;IAIR,QAAQ;CAGT"}
|
|
@@ -4,28 +4,28 @@ import { Fr } from '@aztec/foundation/fields';
|
|
|
4
4
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
5
5
|
import { bufferToHex } from '@aztec/foundation/string';
|
|
6
6
|
import { VerificationKeyData } from './verification_key.js';
|
|
7
|
-
export class
|
|
7
|
+
export class VkData {
|
|
8
8
|
vk;
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
leafIndex;
|
|
10
|
+
siblingPath;
|
|
11
11
|
constructor(vk, /**
|
|
12
12
|
* Index of the vk in the vk tree.
|
|
13
|
-
*/
|
|
13
|
+
*/ leafIndex, /**
|
|
14
14
|
* Sibling path of the vk in the vk tree.
|
|
15
|
-
*/
|
|
15
|
+
*/ siblingPath){
|
|
16
16
|
this.vk = vk;
|
|
17
|
-
this.
|
|
18
|
-
this.
|
|
17
|
+
this.leafIndex = leafIndex;
|
|
18
|
+
this.siblingPath = siblingPath;
|
|
19
19
|
}
|
|
20
20
|
static empty() {
|
|
21
|
-
return new
|
|
21
|
+
return new VkData(VerificationKeyData.empty(), 0, makeTuple(VK_TREE_HEIGHT, Fr.zero));
|
|
22
22
|
}
|
|
23
23
|
static fromBuffer(buffer) {
|
|
24
24
|
const reader = BufferReader.asReader(buffer);
|
|
25
|
-
return new
|
|
25
|
+
return new VkData(reader.readObject(VerificationKeyData), reader.readNumber(), reader.readArray(VK_TREE_HEIGHT, Fr));
|
|
26
26
|
}
|
|
27
27
|
toBuffer() {
|
|
28
|
-
return serializeToBuffer(this.vk, this.
|
|
28
|
+
return serializeToBuffer(this.vk, this.leafIndex, this.siblingPath);
|
|
29
29
|
}
|
|
30
30
|
toString() {
|
|
31
31
|
return bufferToHex(this.toBuffer());
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/stdlib",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0-nightly.20250604",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"inherits": [
|
|
6
6
|
"../package.common.json",
|
|
@@ -67,12 +67,12 @@
|
|
|
67
67
|
"test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}"
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"@aztec/bb.js": "0.
|
|
71
|
-
"@aztec/blob-lib": "0.
|
|
72
|
-
"@aztec/constants": "0.
|
|
73
|
-
"@aztec/ethereum": "0.
|
|
74
|
-
"@aztec/foundation": "0.
|
|
75
|
-
"@aztec/noir-noirc_abi": "0.
|
|
70
|
+
"@aztec/bb.js": "1.0.0-nightly.20250604",
|
|
71
|
+
"@aztec/blob-lib": "1.0.0-nightly.20250604",
|
|
72
|
+
"@aztec/constants": "1.0.0-nightly.20250604",
|
|
73
|
+
"@aztec/ethereum": "1.0.0-nightly.20250604",
|
|
74
|
+
"@aztec/foundation": "1.0.0-nightly.20250604",
|
|
75
|
+
"@aztec/noir-noirc_abi": "1.0.0-nightly.20250604",
|
|
76
76
|
"@google-cloud/storage": "^7.15.0",
|
|
77
77
|
"axios": "^1.9.0",
|
|
78
78
|
"json-stringify-deterministic": "1.0.12",
|
package/src/abi/abi.ts
CHANGED
|
@@ -533,3 +533,40 @@ export function getInitializer(
|
|
|
533
533
|
return initializerNameOrArtifact;
|
|
534
534
|
}
|
|
535
535
|
}
|
|
536
|
+
|
|
537
|
+
export function emptyFunctionAbi(): FunctionAbi {
|
|
538
|
+
return {
|
|
539
|
+
name: '',
|
|
540
|
+
functionType: FunctionType.PRIVATE,
|
|
541
|
+
isInternal: false,
|
|
542
|
+
isStatic: false,
|
|
543
|
+
parameters: [],
|
|
544
|
+
returnTypes: [],
|
|
545
|
+
errorTypes: {},
|
|
546
|
+
isInitializer: false,
|
|
547
|
+
};
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
export function emptyFunctionArtifact(): FunctionArtifact {
|
|
551
|
+
const abi = emptyFunctionAbi();
|
|
552
|
+
return {
|
|
553
|
+
...abi,
|
|
554
|
+
bytecode: Buffer.from([]),
|
|
555
|
+
debugSymbols: '',
|
|
556
|
+
};
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
export function emptyContractArtifact(): ContractArtifact {
|
|
560
|
+
return {
|
|
561
|
+
name: '',
|
|
562
|
+
functions: [emptyFunctionArtifact()],
|
|
563
|
+
nonDispatchPublicFunctions: [emptyFunctionAbi()],
|
|
564
|
+
outputs: {
|
|
565
|
+
structs: {},
|
|
566
|
+
globals: {},
|
|
567
|
+
},
|
|
568
|
+
storageLayout: {},
|
|
569
|
+
fileMap: {},
|
|
570
|
+
notes: {},
|
|
571
|
+
};
|
|
572
|
+
}
|
package/src/avm/avm.ts
CHANGED
|
@@ -5,13 +5,17 @@ import { schemas } from '@aztec/foundation/schemas';
|
|
|
5
5
|
import { z } from 'zod';
|
|
6
6
|
|
|
7
7
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
8
|
+
import { Gas } from '../gas/gas.js';
|
|
9
|
+
import { GasSettings } from '../gas/gas_settings.js';
|
|
8
10
|
import { PublicKeys } from '../keys/public_keys.js';
|
|
11
|
+
import { ScopedL2ToL1Message } from '../messaging/l2_to_l1_message.js';
|
|
9
12
|
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
10
13
|
import { MerkleTreeId } from '../trees/merkle_tree_id.js';
|
|
11
14
|
import { NullifierLeafPreimage } from '../trees/nullifier_leaf.js';
|
|
12
15
|
import { PublicDataTreeLeafPreimage } from '../trees/public_data_leaf.js';
|
|
13
16
|
import { GlobalVariables, TreeSnapshots, type Tx } from '../tx/index.js';
|
|
14
17
|
import { AvmCircuitPublicInputs } from './avm_circuit_public_inputs.js';
|
|
18
|
+
import { clampGasSettingsForAVM } from './gas.js';
|
|
15
19
|
import { serializeWithMessagePack } from './message_pack.js';
|
|
16
20
|
|
|
17
21
|
////////////////////////////////////////////////////////////////////////////
|
|
@@ -406,27 +410,30 @@ export class AvmTxHint {
|
|
|
406
410
|
constructor(
|
|
407
411
|
public readonly hash: string,
|
|
408
412
|
public readonly globalVariables: GlobalVariables,
|
|
413
|
+
public readonly gasSettings: GasSettings,
|
|
409
414
|
public readonly nonRevertibleAccumulatedData: {
|
|
410
415
|
noteHashes: Fr[];
|
|
411
416
|
nullifiers: Fr[];
|
|
412
|
-
|
|
417
|
+
l2ToL1Messages: ScopedL2ToL1Message[];
|
|
413
418
|
},
|
|
414
419
|
public readonly revertibleAccumulatedData: {
|
|
415
420
|
noteHashes: Fr[];
|
|
416
421
|
nullifiers: Fr[];
|
|
417
|
-
|
|
422
|
+
l2ToL1Messages: ScopedL2ToL1Message[];
|
|
418
423
|
},
|
|
419
424
|
public readonly setupEnqueuedCalls: AvmEnqueuedCallHint[],
|
|
420
425
|
public readonly appLogicEnqueuedCalls: AvmEnqueuedCallHint[],
|
|
421
426
|
// We need this to be null and not undefined because that's what
|
|
422
427
|
// MessagePack expects for an std::optional.
|
|
423
428
|
public readonly teardownEnqueuedCall: AvmEnqueuedCallHint | null,
|
|
429
|
+
public readonly gasUsedByPrivate: Gas,
|
|
424
430
|
) {}
|
|
425
431
|
|
|
426
432
|
static async fromTx(tx: Tx): Promise<AvmTxHint> {
|
|
427
433
|
const setupCallRequests = tx.getNonRevertiblePublicCallRequestsWithCalldata();
|
|
428
434
|
const appLogicCallRequests = tx.getRevertiblePublicCallRequestsWithCalldata();
|
|
429
435
|
const teardownCallRequest = tx.getTeardownPublicCallRequestWithCalldata();
|
|
436
|
+
const gasSettings = clampGasSettingsForAVM(tx.data.constants.txContext.gasSettings, tx.data.gasUsed);
|
|
430
437
|
|
|
431
438
|
// For informational purposes. Assumed quick because it should be cached.
|
|
432
439
|
const txHash = await tx.getTxHash();
|
|
@@ -434,13 +441,16 @@ export class AvmTxHint {
|
|
|
434
441
|
return new AvmTxHint(
|
|
435
442
|
txHash.hash.toString(),
|
|
436
443
|
tx.data.constants.historicalHeader.globalVariables,
|
|
444
|
+
gasSettings,
|
|
437
445
|
{
|
|
438
446
|
noteHashes: tx.data.forPublic!.nonRevertibleAccumulatedData.noteHashes.filter(x => !x.isZero()),
|
|
439
447
|
nullifiers: tx.data.forPublic!.nonRevertibleAccumulatedData.nullifiers.filter(x => !x.isZero()),
|
|
448
|
+
l2ToL1Messages: tx.data.forPublic!.nonRevertibleAccumulatedData.l2ToL1Msgs.filter(x => !x.isEmpty()),
|
|
440
449
|
},
|
|
441
450
|
{
|
|
442
451
|
noteHashes: tx.data.forPublic!.revertibleAccumulatedData.noteHashes.filter(x => !x.isZero()),
|
|
443
452
|
nullifiers: tx.data.forPublic!.revertibleAccumulatedData.nullifiers.filter(x => !x.isZero()),
|
|
453
|
+
l2ToL1Messages: tx.data.forPublic!.revertibleAccumulatedData.l2ToL1Msgs.filter(x => !x.isEmpty()),
|
|
444
454
|
},
|
|
445
455
|
setupCallRequests.map(
|
|
446
456
|
call =>
|
|
@@ -468,6 +478,7 @@ export class AvmTxHint {
|
|
|
468
478
|
teardownCallRequest.request.isStaticCall,
|
|
469
479
|
)
|
|
470
480
|
: null,
|
|
481
|
+
tx.data.gasUsed,
|
|
471
482
|
);
|
|
472
483
|
}
|
|
473
484
|
|
|
@@ -475,11 +486,13 @@ export class AvmTxHint {
|
|
|
475
486
|
return new AvmTxHint(
|
|
476
487
|
'',
|
|
477
488
|
GlobalVariables.empty(),
|
|
478
|
-
|
|
479
|
-
{ noteHashes: [], nullifiers: [] },
|
|
489
|
+
GasSettings.empty(),
|
|
490
|
+
{ noteHashes: [], nullifiers: [], l2ToL1Messages: [] },
|
|
491
|
+
{ noteHashes: [], nullifiers: [], l2ToL1Messages: [] },
|
|
480
492
|
[],
|
|
481
493
|
[],
|
|
482
494
|
null,
|
|
495
|
+
Gas.empty(),
|
|
483
496
|
);
|
|
484
497
|
}
|
|
485
498
|
|
|
@@ -488,36 +501,44 @@ export class AvmTxHint {
|
|
|
488
501
|
.object({
|
|
489
502
|
hash: z.string(),
|
|
490
503
|
globalVariables: GlobalVariables.schema,
|
|
504
|
+
gasSettings: GasSettings.schema,
|
|
491
505
|
nonRevertibleAccumulatedData: z.object({
|
|
492
506
|
noteHashes: schemas.Fr.array(),
|
|
493
507
|
nullifiers: schemas.Fr.array(),
|
|
508
|
+
l2ToL1Messages: ScopedL2ToL1Message.schema.array(),
|
|
494
509
|
}),
|
|
495
510
|
revertibleAccumulatedData: z.object({
|
|
496
511
|
noteHashes: schemas.Fr.array(),
|
|
497
512
|
nullifiers: schemas.Fr.array(),
|
|
513
|
+
l2ToL1Messages: ScopedL2ToL1Message.schema.array(),
|
|
498
514
|
}),
|
|
499
515
|
setupEnqueuedCalls: AvmEnqueuedCallHint.schema.array(),
|
|
500
516
|
appLogicEnqueuedCalls: AvmEnqueuedCallHint.schema.array(),
|
|
501
517
|
teardownEnqueuedCall: AvmEnqueuedCallHint.schema.nullable(),
|
|
518
|
+
gasUsedByPrivate: Gas.schema,
|
|
502
519
|
})
|
|
503
520
|
.transform(
|
|
504
521
|
({
|
|
505
522
|
hash,
|
|
506
523
|
globalVariables,
|
|
524
|
+
gasSettings,
|
|
507
525
|
nonRevertibleAccumulatedData,
|
|
508
526
|
revertibleAccumulatedData,
|
|
509
527
|
setupEnqueuedCalls,
|
|
510
528
|
appLogicEnqueuedCalls,
|
|
511
529
|
teardownEnqueuedCall,
|
|
530
|
+
gasUsedByPrivate,
|
|
512
531
|
}) =>
|
|
513
532
|
new AvmTxHint(
|
|
514
533
|
hash,
|
|
515
534
|
globalVariables,
|
|
535
|
+
gasSettings,
|
|
516
536
|
nonRevertibleAccumulatedData,
|
|
517
537
|
revertibleAccumulatedData,
|
|
518
538
|
setupEnqueuedCalls,
|
|
519
539
|
appLogicEnqueuedCalls,
|
|
520
540
|
teardownEnqueuedCall,
|
|
541
|
+
gasUsedByPrivate,
|
|
521
542
|
),
|
|
522
543
|
);
|
|
523
544
|
}
|
|
@@ -185,3 +185,96 @@ export class AvmAccumulatedData {
|
|
|
185
185
|
}`;
|
|
186
186
|
}
|
|
187
187
|
}
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Represents the lengths of arrays in AVM accumulated data
|
|
191
|
+
*/
|
|
192
|
+
export class AvmAccumulatedDataArrayLengths {
|
|
193
|
+
constructor(
|
|
194
|
+
/**
|
|
195
|
+
* Number of note hashes
|
|
196
|
+
*/
|
|
197
|
+
public noteHashes: number,
|
|
198
|
+
/**
|
|
199
|
+
* Number of nullifiers
|
|
200
|
+
*/
|
|
201
|
+
public nullifiers: number,
|
|
202
|
+
/**
|
|
203
|
+
* Number of L2 to L1 messages
|
|
204
|
+
*/
|
|
205
|
+
public l2ToL1Msgs: number,
|
|
206
|
+
/**
|
|
207
|
+
* Number of public logs
|
|
208
|
+
*/
|
|
209
|
+
public publicLogs: number,
|
|
210
|
+
/**
|
|
211
|
+
* Number of public data writes
|
|
212
|
+
*/
|
|
213
|
+
public publicDataWrites: number,
|
|
214
|
+
) {}
|
|
215
|
+
|
|
216
|
+
static get schema() {
|
|
217
|
+
return z
|
|
218
|
+
.object({
|
|
219
|
+
noteHashes: z.number(),
|
|
220
|
+
nullifiers: z.number(),
|
|
221
|
+
l2ToL1Msgs: z.number(),
|
|
222
|
+
publicLogs: z.number(),
|
|
223
|
+
publicDataWrites: z.number(),
|
|
224
|
+
})
|
|
225
|
+
.transform(
|
|
226
|
+
({ noteHashes, nullifiers, l2ToL1Msgs, publicLogs, publicDataWrites }) =>
|
|
227
|
+
new AvmAccumulatedDataArrayLengths(noteHashes, nullifiers, l2ToL1Msgs, publicLogs, publicDataWrites),
|
|
228
|
+
);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
232
|
+
const reader = BufferReader.asReader(buffer);
|
|
233
|
+
return new AvmAccumulatedDataArrayLengths(
|
|
234
|
+
reader.readNumber(),
|
|
235
|
+
reader.readNumber(),
|
|
236
|
+
reader.readNumber(),
|
|
237
|
+
reader.readNumber(),
|
|
238
|
+
reader.readNumber(),
|
|
239
|
+
);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
toBuffer() {
|
|
243
|
+
return serializeToBuffer(this.noteHashes, this.nullifiers, this.l2ToL1Msgs, this.publicLogs, this.publicDataWrites);
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
static fromFields(fields: Fr[] | FieldReader) {
|
|
247
|
+
const reader = FieldReader.asReader(fields);
|
|
248
|
+
return new AvmAccumulatedDataArrayLengths(
|
|
249
|
+
Number(reader.readField()),
|
|
250
|
+
Number(reader.readField()),
|
|
251
|
+
Number(reader.readField()),
|
|
252
|
+
Number(reader.readField()),
|
|
253
|
+
Number(reader.readField()),
|
|
254
|
+
);
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
toFields(): Fr[] {
|
|
258
|
+
return [
|
|
259
|
+
new Fr(this.noteHashes),
|
|
260
|
+
new Fr(this.nullifiers),
|
|
261
|
+
new Fr(this.l2ToL1Msgs),
|
|
262
|
+
new Fr(this.publicLogs),
|
|
263
|
+
new Fr(this.publicDataWrites),
|
|
264
|
+
];
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
static empty() {
|
|
268
|
+
return new AvmAccumulatedDataArrayLengths(0, 0, 0, 0, 0);
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
[inspect.custom]() {
|
|
272
|
+
return `AvmAccumulatedDataArrayLengths {
|
|
273
|
+
noteHashes: ${this.noteHashes},
|
|
274
|
+
nullifiers: ${this.nullifiers},
|
|
275
|
+
l2ToL1Msgs: ${this.l2ToL1Msgs},
|
|
276
|
+
publicLogs: ${this.publicLogs},
|
|
277
|
+
publicDataWrites: ${this.publicDataWrites},
|
|
278
|
+
}`;
|
|
279
|
+
}
|
|
280
|
+
}
|