@aztec/stdlib 0.77.0-testnet-ignition.30 → 0.77.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.
- package/dest/contract/interfaces/contract_instance_update.js +1 -1
- package/dest/contract/interfaces/node-info.js +2 -2
- package/dest/database-version/index.d.ts +2 -0
- package/dest/database-version/index.d.ts.map +1 -0
- package/dest/database-version/index.js +1 -0
- package/dest/database-version/version_manager.d.ts +99 -0
- package/dest/database-version/version_manager.d.ts.map +1 -0
- package/dest/database-version/version_manager.js +188 -0
- package/dest/errors/simulation_error.js +2 -2
- package/dest/hash/hash.d.ts +0 -2
- package/dest/hash/hash.d.ts.map +1 -1
- package/dest/hash/hash.js +0 -11
- package/dest/interfaces/world_state.js +3 -3
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +2 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +4 -1
- package/dest/logs/contract_class_log.d.ts +4 -0
- package/dest/logs/contract_class_log.d.ts.map +1 -1
- package/dest/logs/contract_class_log.js +30 -9
- package/dest/logs/private_log.d.ts +2 -0
- package/dest/logs/private_log.d.ts.map +1 -1
- package/dest/logs/private_log.js +9 -0
- package/dest/logs/public_log.d.ts +2 -0
- package/dest/logs/public_log.d.ts.map +1 -1
- package/dest/logs/public_log.js +10 -0
- package/dest/messaging/l2_to_l1_message.js +1 -1
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +4 -6
- package/dest/tx/tx_effect.d.ts.map +1 -1
- package/dest/tx/tx_effect.js +26 -10
- package/dest/tx/tx_receipt.js +1 -1
- package/package.json +8 -7
- package/src/contract/interfaces/contract_instance_update.ts +1 -1
- package/src/contract/interfaces/node-info.ts +2 -2
- package/src/database-version/README.md +63 -0
- package/src/database-version/index.ts +1 -0
- package/src/database-version/version_manager.ts +207 -0
- package/src/errors/simulation_error.ts +2 -2
- package/src/hash/hash.ts +0 -10
- package/src/interfaces/world_state.ts +3 -3
- package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +5 -1
- package/src/logs/contract_class_log.ts +28 -9
- package/src/logs/private_log.ts +11 -0
- package/src/logs/public_log.ts +12 -0
- package/src/messaging/l2_to_l1_message.ts +1 -1
- package/src/tx/tx.ts +7 -7
- package/src/tx/tx_effect.ts +29 -9
- package/src/tx/tx_receipt.ts +1 -1
package/src/tx/tx.ts
CHANGED
|
@@ -8,13 +8,11 @@ import type { FieldsOf } from '@aztec/foundation/types';
|
|
|
8
8
|
import { z } from 'zod';
|
|
9
9
|
|
|
10
10
|
import type { GasSettings } from '../gas/gas_settings.js';
|
|
11
|
-
import { siloContractClassLog } from '../hash/hash.js';
|
|
12
11
|
import type { GetPublicLogsResponse } from '../interfaces/get_logs_response.js';
|
|
13
12
|
import type { L2LogsSource } from '../interfaces/l2_logs_source.js';
|
|
14
13
|
import type { ScopedLogHash } from '../kernel/log_hash.js';
|
|
15
14
|
import { PrivateKernelTailCircuitPublicInputs } from '../kernel/private_kernel_tail_circuit_public_inputs.js';
|
|
16
15
|
import { ContractClassLog } from '../logs/contract_class_log.js';
|
|
17
|
-
import { PrivateLog } from '../logs/private_log.js';
|
|
18
16
|
import { Gossipable } from '../p2p/gossipable.js';
|
|
19
17
|
import { TopicType, createTopicString } from '../p2p/topic_type.js';
|
|
20
18
|
import { ClientIvcProof } from '../proofs/client_ivc_proof.js';
|
|
@@ -197,9 +195,11 @@ export class Tx extends Gossipable {
|
|
|
197
195
|
const contractClassLogs = [];
|
|
198
196
|
for (const log of this.contractClassLogs) {
|
|
199
197
|
const hashedLog = await log.hash();
|
|
200
|
-
const logHash = logHashes.find(
|
|
198
|
+
const logHash = logHashes.find(
|
|
199
|
+
hash => hash.value.equals(hashedLog) && hash.contractAddress.equals(log.contractAddress),
|
|
200
|
+
);
|
|
201
201
|
if (logHash) {
|
|
202
|
-
contractClassLogs.push(silo ? await
|
|
202
|
+
contractClassLogs.push(silo ? await log.silo() : log);
|
|
203
203
|
}
|
|
204
204
|
}
|
|
205
205
|
return contractClassLogs;
|
|
@@ -238,7 +238,7 @@ export class Tx extends Gossipable {
|
|
|
238
238
|
nullifierCount: this.data.getNonEmptyNullifiers().length,
|
|
239
239
|
privateLogCount: this.data.getNonEmptyPrivateLogs().length,
|
|
240
240
|
classRegisteredCount: this.data.getNonEmptyContractClassLogsHashes().length,
|
|
241
|
-
contractClassLogSize: this.data.
|
|
241
|
+
contractClassLogSize: this.data.getEmittedContractClassLogsLength(),
|
|
242
242
|
|
|
243
243
|
proofSize: this.clientIvcProof.clientIvcProofBuffer.length,
|
|
244
244
|
size: this.toBuffer().length,
|
|
@@ -272,8 +272,8 @@ export class Tx extends Gossipable {
|
|
|
272
272
|
return (
|
|
273
273
|
this.data.getNonEmptyNoteHashes().length * Fr.SIZE_IN_BYTES +
|
|
274
274
|
this.data.getNonEmptyNullifiers().length * Fr.SIZE_IN_BYTES +
|
|
275
|
-
this.data.
|
|
276
|
-
this.data.
|
|
275
|
+
this.data.getEmittedPrivateLogsLength() * Fr.SIZE_IN_BYTES +
|
|
276
|
+
this.data.getEmittedContractClassLogsLength() * Fr.SIZE_IN_BYTES
|
|
277
277
|
);
|
|
278
278
|
}
|
|
279
279
|
|
package/src/tx/tx_effect.ts
CHANGED
|
@@ -354,15 +354,26 @@ export class TxEffect {
|
|
|
354
354
|
flattened.push(...this.publicDataWrites.map(w => [w.leafSlot, w.value]).flat());
|
|
355
355
|
}
|
|
356
356
|
if (this.privateLogs.length) {
|
|
357
|
-
|
|
358
|
-
|
|
357
|
+
const totalLogLen = this.privateLogs.reduce(
|
|
358
|
+
// +1 for length prefix
|
|
359
|
+
(total, log) => total + (log.getEmittedLength() == 0 ? 0 : log.getEmittedLength() + 1),
|
|
360
|
+
0,
|
|
361
|
+
);
|
|
362
|
+
flattened.push(this.toPrefix(PRIVATE_LOGS_PREFIX, totalLogLen));
|
|
363
|
+
flattened.push(...this.privateLogs.flatMap(l => [new Fr(l.getEmittedLength()), ...l.getEmittedFields()]));
|
|
359
364
|
}
|
|
360
365
|
if (this.publicLogs.length) {
|
|
361
|
-
|
|
362
|
-
|
|
366
|
+
const totalLogLen = this.publicLogs.reduce(
|
|
367
|
+
// +1 for length prefix
|
|
368
|
+
(total, log) => total + (log.getEmittedLength() == 0 ? 0 : log.getEmittedLength() + 1),
|
|
369
|
+
0,
|
|
370
|
+
);
|
|
371
|
+
flattened.push(this.toPrefix(PUBLIC_LOGS_PREFIX, totalLogLen));
|
|
372
|
+
flattened.push(...this.publicLogs.flatMap(l => [new Fr(l.getEmittedLength()), ...l.getEmittedFields()]));
|
|
363
373
|
}
|
|
364
374
|
if (this.contractClassLogs.length) {
|
|
365
375
|
const totalLogLen = this.contractClassLogs.reduce(
|
|
376
|
+
// +2 for length prefix and contract address
|
|
366
377
|
(total, log) => total + (log.getEmittedLength() == 0 ? 0 : log.getEmittedLength() + 2),
|
|
367
378
|
0,
|
|
368
379
|
);
|
|
@@ -435,19 +446,28 @@ export class TxEffect {
|
|
|
435
446
|
break;
|
|
436
447
|
}
|
|
437
448
|
case PRIVATE_LOGS_PREFIX: {
|
|
438
|
-
// TODO(Miranda): squash log 0s in a nested loop and add len prefix?
|
|
439
449
|
ensureEmpty(effect.privateLogs);
|
|
440
450
|
const flatPrivateLogs = reader.readFieldArray(length);
|
|
441
|
-
|
|
442
|
-
|
|
451
|
+
let i = 0;
|
|
452
|
+
while (i < length) {
|
|
453
|
+
const logLen = flatPrivateLogs[i++].toNumber();
|
|
454
|
+
const logFields = flatPrivateLogs.slice(i, (i += logLen));
|
|
455
|
+
effect.privateLogs.push(
|
|
456
|
+
PrivateLog.fromFields(logFields.concat(new Array(PRIVATE_LOG_SIZE_IN_FIELDS - logLen).fill(Fr.ZERO))),
|
|
457
|
+
);
|
|
443
458
|
}
|
|
444
459
|
break;
|
|
445
460
|
}
|
|
446
461
|
case PUBLIC_LOGS_PREFIX: {
|
|
447
462
|
ensureEmpty(effect.publicLogs);
|
|
448
463
|
const flatPublicLogs = reader.readFieldArray(length);
|
|
449
|
-
|
|
450
|
-
|
|
464
|
+
let i = 0;
|
|
465
|
+
while (i < length) {
|
|
466
|
+
const logLen = flatPublicLogs[i++].toNumber();
|
|
467
|
+
const logFields = flatPublicLogs.slice(i, (i += logLen));
|
|
468
|
+
effect.publicLogs.push(
|
|
469
|
+
PublicLog.fromFields(logFields.concat(new Array(PUBLIC_LOG_SIZE_IN_FIELDS - logLen).fill(Fr.ZERO))),
|
|
470
|
+
);
|
|
451
471
|
}
|
|
452
472
|
break;
|
|
453
473
|
}
|
package/src/tx/tx_receipt.ts
CHANGED
|
@@ -56,7 +56,7 @@ export class TxReceipt {
|
|
|
56
56
|
status: z.nativeEnum(TxStatus),
|
|
57
57
|
error: z.string(),
|
|
58
58
|
blockHash: L2BlockHash.schema.optional(),
|
|
59
|
-
blockNumber: z.number().optional(),
|
|
59
|
+
blockNumber: z.number().int().nonnegative().optional(),
|
|
60
60
|
transactionFee: schemas.BigInt.optional(),
|
|
61
61
|
debugInfo: DebugInfoSchema.optional(),
|
|
62
62
|
})
|