diff --git a/yarn-project/stdlib/src/abi/event_metadata_definition.ts b/yarn-project/stdlib/src/abi/event_metadata_definition.ts index 889a34466842..bf60d04b7c5a 100644 --- a/yarn-project/stdlib/src/abi/event_metadata_definition.ts +++ b/yarn-project/stdlib/src/abi/event_metadata_definition.ts @@ -1,8 +1,10 @@ import type { AbiType } from './abi.js'; import type { EventSelector } from './event_selector.js'; +/** Metadata for a contract event, used to decode emitted event logs back into structured data. */ export type EventMetadataDefinition = { eventSelector: EventSelector; abiType: AbiType; + /** Names of the event's struct members (not serialized Noir Field elements). */ fieldNames: string[]; }; diff --git a/yarn-project/stdlib/src/logs/public_log.ts b/yarn-project/stdlib/src/logs/public_log.ts index 5932261b4b90..490e39a0bcae 100644 --- a/yarn-project/stdlib/src/logs/public_log.ts +++ b/yarn-project/stdlib/src/logs/public_log.ts @@ -120,8 +120,8 @@ export class FlatPublicLogs { export class PublicLog { constructor( - public contractAddress: AztecAddress, - public fields: Fr[], + public readonly contractAddress: AztecAddress, + public readonly fields: Fr[], ) {} static from(fields: FieldsOf) { @@ -146,7 +146,9 @@ export class PublicLog { return this.fields.length + PUBLIC_LOG_HEADER_LENGTH; } + /** Returns the serialized log (field as in noir field and not a struct field). */ getEmittedFields() { + // We slice from 0 to return a shallow copy. return this.fields.slice(0); }