@aztec/stdlib 3.0.0-nightly.20251208 → 3.0.0-nightly.20251209

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 (41) hide show
  1. package/dest/avm/avm.d.ts +334 -306
  2. package/dest/avm/avm.d.ts.map +1 -1
  3. package/dest/avm/avm.js +53 -7
  4. package/dest/block/in_block.d.ts +23 -7
  5. package/dest/block/in_block.d.ts.map +1 -1
  6. package/dest/block/in_block.js +14 -5
  7. package/dest/interfaces/aztec-node.d.ts +1 -1
  8. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  9. package/dest/interfaces/aztec-node.js +2 -2
  10. package/dest/logs/public_log.d.ts +2 -1
  11. package/dest/logs/public_log.d.ts.map +1 -1
  12. package/dest/logs/public_log.js +3 -0
  13. package/dest/messaging/l2_to_l1_message.d.ts +2 -1
  14. package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
  15. package/dest/messaging/l2_to_l1_message.js +3 -0
  16. package/dest/tests/mocks.d.ts +1 -1
  17. package/dest/tests/mocks.d.ts.map +1 -1
  18. package/dest/tests/mocks.js +4 -2
  19. package/dest/tx/in_tx.d.ts +26 -0
  20. package/dest/tx/in_tx.d.ts.map +1 -0
  21. package/dest/tx/in_tx.js +14 -0
  22. package/dest/tx/index.d.ts +2 -1
  23. package/dest/tx/index.d.ts.map +1 -1
  24. package/dest/tx/index.js +1 -0
  25. package/dest/tx/indexed_tx_effect.d.ts +5 -4
  26. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  27. package/dest/tx/indexed_tx_effect.js +3 -3
  28. package/dest/tx/processed_tx.d.ts +3 -2
  29. package/dest/tx/processed_tx.d.ts.map +1 -1
  30. package/dest/tx/processed_tx.js +4 -6
  31. package/package.json +8 -8
  32. package/src/avm/avm.ts +88 -5
  33. package/src/block/in_block.ts +14 -5
  34. package/src/interfaces/aztec-node.ts +2 -2
  35. package/src/logs/public_log.ts +7 -0
  36. package/src/messaging/l2_to_l1_message.ts +4 -0
  37. package/src/tests/mocks.ts +13 -0
  38. package/src/tx/in_tx.ts +24 -0
  39. package/src/tx/index.ts +1 -0
  40. package/src/tx/indexed_tx_effect.ts +3 -3
  41. package/src/tx/processed_tx.ts +10 -13
@@ -5,6 +5,7 @@ import { Buffer32 } from '@aztec/foundation/buffer';
5
5
  import { padArrayEnd, times } from '@aztec/foundation/collection';
6
6
  import { Secp256k1Signer, randomBytes } from '@aztec/foundation/crypto';
7
7
  import { Fr } from '@aztec/foundation/fields';
8
+ import { PublicTxEffect } from '../avm/avm.js';
8
9
  import { AvmCircuitPublicInputs } from '../avm/avm_circuit_public_inputs.js';
9
10
  import { PublicDataWrite } from '../avm/public_data_write.js';
10
11
  import { RevertCode } from '../avm/revert_code.js';
@@ -183,10 +184,11 @@ gasUsed = Gas.from({
183
184
  billedGas: Gas.empty()
184
185
  };
185
186
  await tx.recomputeHash();
186
- return makeProcessedTxFromTxWithPublicCalls(tx, {
187
+ const publicTxEffect = new PublicTxEffect(avmOutput.transactionFee, avmOutput.accumulatedData.noteHashes.filter((h)=>!h.isZero()), avmOutput.accumulatedData.nullifiers.filter((h)=>!h.isZero()), avmOutput.accumulatedData.l2ToL1Msgs.filter((h)=>!h.isEmpty()), avmOutput.accumulatedData.publicLogs.toLogs(), avmOutput.accumulatedData.publicDataWrites.filter((h)=>!h.isEmpty()));
188
+ return makeProcessedTxFromTxWithPublicCalls(tx, globalVariables, {
187
189
  type: ProvingRequestType.PUBLIC_VM,
188
190
  inputs: avmCircuitInputs
189
- }, gasUsed, RevertCode.OK, undefined /* revertReason */ );
191
+ }, publicTxEffect, gasUsed, RevertCode.OK, undefined /* revertReason */ );
190
192
  }
191
193
  }
192
194
  const emptyPrivateCallExecutionResult = ()=>new PrivateCallExecutionResult(Buffer.from(''), Buffer.from(''), new Map(), PrivateCircuitPublicInputs.empty(), new Map(), [], new Map(), [], [], [], [], []);
@@ -0,0 +1,26 @@
1
+ import { z } from 'zod';
2
+ import { type InBlock } from '../block/in_block.js';
3
+ import { TxHash } from './tx_hash.js';
4
+ export type InTx = InBlock & {
5
+ txHash: TxHash;
6
+ };
7
+ export declare function randomInTx(): InTx;
8
+ export declare function inTxSchema(): z.ZodIntersection<z.ZodObject<{
9
+ l2BlockNumber: z.ZodEffects<z.ZodPipeline<z.ZodUnion<[z.ZodNumber, z.ZodBigInt, z.ZodString]>, z.ZodNumber>, import("../../../foundation/dest/branded-types/block_number.js").BlockNumber, string | number | bigint>;
10
+ l2BlockHash: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, Buffer<ArrayBuffer>, string>, import("../block/block_hash.js").L2BlockHash, string>;
11
+ }, "strip", z.ZodTypeAny, {
12
+ l2BlockNumber: number & {
13
+ _branding: "BlockNumber";
14
+ };
15
+ l2BlockHash: import("../block/block_hash.js").L2BlockHash;
16
+ }, {
17
+ l2BlockNumber: string | number | bigint;
18
+ l2BlockHash: string;
19
+ }>, z.ZodObject<{
20
+ txHash: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, Buffer<ArrayBuffer>, string>, TxHash, string>;
21
+ }, "strip", z.ZodTypeAny, {
22
+ txHash: TxHash;
23
+ }, {
24
+ txHash: string;
25
+ }>>;
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5fdHguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eC9pbl90eC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sRUFBRSxLQUFLLE9BQU8sRUFBZ0MsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXRDLE1BQU0sTUFBTSxJQUFJLEdBQUcsT0FBTyxHQUFHO0lBQzNCLE1BQU0sRUFBRSxNQUFNLENBQUM7Q0FDaEIsQ0FBQztBQUVGLHdCQUFnQixVQUFVLElBQUksSUFBSSxDQUtqQztBQUVELHdCQUFnQixVQUFVOzs7Ozs7Ozs7Ozs7Ozs7OztJQU96QiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in_tx.d.ts","sourceRoot":"","sources":["../../src/tx/in_tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,KAAK,OAAO,EAAgC,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,MAAM,IAAI,GAAG,OAAO,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,UAAU,IAAI,IAAI,CAKjC;AAED,wBAAgB,UAAU;;;;;;;;;;;;;;;;;IAOzB"}
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+ import { inBlockSchema, randomInBlock } from '../block/in_block.js';
3
+ import { TxHash } from './tx_hash.js';
4
+ export function randomInTx() {
5
+ return {
6
+ ...randomInBlock(),
7
+ txHash: TxHash.random()
8
+ };
9
+ }
10
+ export function inTxSchema() {
11
+ return z.intersection(inBlockSchema(), z.object({
12
+ txHash: TxHash.schema
13
+ }));
14
+ }
@@ -32,4 +32,5 @@ export * from './offchain_effect.js';
32
32
  export * from './profiling.js';
33
33
  export * from './protocol_contracts.js';
34
34
  export * from './execution_payload.js';
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHdCQUF3QixDQUFDIn0=
35
+ export * from './in_tx.js';
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsWUFBWSxDQUFDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tx/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wCAAwC,CAAC;AACvD,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,cAAc,CAAC;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tx/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wCAAwC,CAAC;AACvD,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,cAAc,CAAC;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC"}
package/dest/tx/index.js CHANGED
@@ -32,3 +32,4 @@ export * from './offchain_effect.js';
32
32
  export * from './profiling.js';
33
33
  export * from './protocol_contracts.js';
34
34
  export * from './execution_payload.js';
35
+ export * from './in_tx.js';
@@ -6,25 +6,26 @@ export type IndexedTxEffect = DataInBlock<TxEffect> & {
6
6
  txIndexInBlock: number;
7
7
  };
8
8
  export declare function indexedTxSchema(): import("zod").ZodObject<{
9
- data: import("@aztec/foundation/schemas").ZodFor<TxEffect>;
10
9
  l2BlockNumber: import("zod").ZodEffects<import("zod").ZodPipeline<import("zod").ZodUnion<[import("zod").ZodNumber, import("zod").ZodBigInt, import("zod").ZodString]>, import("zod").ZodNumber>, BlockNumber, string | number | bigint>;
11
10
  l2BlockHash: import("zod").ZodEffects<import("zod").ZodEffects<import("zod").ZodEffects<import("zod").ZodEffects<import("zod").ZodString, string, string>, string, string>, Buffer<ArrayBuffer>, string>, L2BlockHash, string>;
11
+ } & {
12
+ data: import("@aztec/foundation/schemas").ZodFor<TxEffect>;
12
13
  } & {
13
14
  txIndexInBlock: import("zod").ZodPipeline<import("zod").ZodUnion<[import("zod").ZodBigInt, import("zod").ZodNumber, import("zod").ZodString]>, import("zod").ZodNumber>;
14
15
  }, "strip", import("zod").ZodTypeAny, {
15
- data: TxEffect;
16
16
  l2BlockNumber: number & {
17
17
  _branding: "BlockNumber";
18
18
  };
19
19
  l2BlockHash: L2BlockHash;
20
+ data: TxEffect;
20
21
  txIndexInBlock: number;
21
22
  }, {
22
- data?: any;
23
23
  l2BlockNumber: string | number | bigint;
24
24
  l2BlockHash: string;
25
+ data?: any;
25
26
  txIndexInBlock: string | number | bigint;
26
27
  }>;
27
28
  export declare function randomIndexedTxEffect(): Promise<IndexedTxEffect>;
28
29
  export declare function serializeIndexedTxEffect(effect: IndexedTxEffect): Buffer;
29
30
  export declare function deserializeIndexedTxEffect(buffer: Buffer): IndexedTxEffect;
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhlZF90eF9lZmZlY3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eC9pbmRleGVkX3R4X2VmZmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFJOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBbUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUMsTUFBTSxNQUFNLGVBQWUsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUc7SUFBRSxjQUFjLEVBQUUsTUFBTSxDQUFBO0NBQUUsQ0FBQztBQUVqRix3QkFBZ0IsZUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBRTlCO0FBRUQsd0JBQXNCLHFCQUFxQixJQUFJLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FLdEU7QUFFRCx3QkFBZ0Isd0JBQXdCLENBQUMsTUFBTSxFQUFFLGVBQWUsR0FBRyxNQUFNLENBRXhFO0FBRUQsd0JBQWdCLDBCQUEwQixDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsZUFBZSxDQWMxRSJ9
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhlZF90eF9lZmZlY3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eC9pbmRleGVkX3R4X2VmZmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFJOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBMkMsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUMsTUFBTSxNQUFNLGVBQWUsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUc7SUFBRSxjQUFjLEVBQUUsTUFBTSxDQUFBO0NBQUUsQ0FBQztBQUVqRix3QkFBZ0IsZUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQUU5QjtBQUVELHdCQUFzQixxQkFBcUIsSUFBSSxPQUFPLENBQUMsZUFBZSxDQUFDLENBS3RFO0FBRUQsd0JBQWdCLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxlQUFlLEdBQUcsTUFBTSxDQUV4RTtBQUVELHdCQUFnQiwwQkFBMEIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLGVBQWUsQ0FjMUUifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"indexed_tx_effect.d.ts","sourceRoot":"","sources":["../../src/tx/indexed_tx_effect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAI9D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,KAAK,WAAW,EAAmC,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,QAAQ,CAAC,GAAG;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjF,wBAAgB,eAAe;;;;;;;;;;;;;;;;;;GAE9B;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,eAAe,CAAC,CAKtE;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAExE;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAc1E"}
1
+ {"version":3,"file":"indexed_tx_effect.d.ts","sourceRoot":"","sources":["../../src/tx/indexed_tx_effect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAI9D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,KAAK,WAAW,EAA2C,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,QAAQ,CAAC,GAAG;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjF,wBAAgB,eAAe;;;;;;;;;;;;;;;;;;;GAE9B;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,eAAe,CAAC,CAKtE;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAExE;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAc1E"}
@@ -2,16 +2,16 @@ import { BlockNumber } from '@aztec/foundation/branded-types';
2
2
  import { schemas } from '@aztec/foundation/schemas';
3
3
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
4
4
  import { L2BlockHash } from '../block/block_hash.js';
5
- import { inBlockSchemaFor, randomInBlock } from '../block/in_block.js';
5
+ import { dataInBlockSchemaFor, randomDataInBlock } from '../block/in_block.js';
6
6
  import { TxEffect } from './tx_effect.js';
7
7
  export function indexedTxSchema() {
8
- return inBlockSchemaFor(TxEffect.schema).extend({
8
+ return dataInBlockSchemaFor(TxEffect.schema).extend({
9
9
  txIndexInBlock: schemas.Integer
10
10
  });
11
11
  }
12
12
  export async function randomIndexedTxEffect() {
13
13
  return {
14
- ...randomInBlock(await TxEffect.random({
14
+ ...randomDataInBlock(await TxEffect.random({
15
15
  numNullifiers: 1 + Math.floor(Math.random() * 64)
16
16
  })),
17
17
  txIndexInBlock: Math.floor(Math.random() * 1000)
@@ -1,4 +1,5 @@
1
1
  import { Fr } from '@aztec/foundation/fields';
2
+ import type { PublicTxEffect } from '../avm/avm.js';
2
3
  import type { AvmProvingRequest } from '../avm/avm_proving_request.js';
3
4
  import type { PublicDataWrite } from '../avm/public_data_write.js';
4
5
  import { RevertCode } from '../avm/revert_code.js';
@@ -68,5 +69,5 @@ export type FailedTx = {
68
69
  error: Error;
69
70
  };
70
71
  export declare function makeProcessedTxFromPrivateOnlyTx(tx: Tx, transactionFee: Fr, feePaymentPublicDataWrite: PublicDataWrite, globalVariables: GlobalVariables): ProcessedTx;
71
- export declare function makeProcessedTxFromTxWithPublicCalls(tx: Tx, avmProvingRequest: AvmProvingRequest, gasUsed: GasUsed, revertCode: RevertCode, revertReason: SimulationError | undefined): ProcessedTx;
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzc2VkX3R4LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHgvcHJvY2Vzc2VkX3R4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU5QyxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3ZFLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFaEUsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFbEQsT0FBTyxLQUFLLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNuSCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUzQyxvQkFBWSxnQkFBZ0I7SUFDMUIsS0FBSyxJQUFBO0lBQ0wsU0FBUyxJQUFBO0lBQ1QsUUFBUSxJQUFBO0NBQ1Q7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLE1BQU0sV0FBVyxHQUFHO0lBQ3hCOztPQUVHO0lBQ0gsSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUNiOztPQUVHO0lBQ0gsSUFBSSxFQUFFLG9DQUFvQyxDQUFDO0lBQzNDOztPQUVHO0lBQ0gsVUFBVSxFQUFFLFVBQVUsQ0FBQztJQUN2Qjs7T0FFRztJQUNILGlCQUFpQixFQUFFLGlCQUFpQixHQUFHLFNBQVMsQ0FBQztJQUNqRDs7T0FFRztJQUNILGVBQWUsRUFBRSxlQUFlLENBQUM7SUFDakM7O09BRUc7SUFDSCxRQUFRLEVBQUUsUUFBUSxDQUFDO0lBSW5CLE9BQU8sRUFBRSxPQUFPLENBQUM7SUFDakI7O09BRUc7SUFDSCxVQUFVLEVBQUUsVUFBVSxDQUFDO0lBQ3ZCOztPQUVHO0lBQ0gsWUFBWSxFQUFFLGVBQWUsR0FBRyxTQUFTLENBQUM7Q0FDM0MsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxNQUFNLFFBQVEsR0FBRztJQUNyQjs7T0FFRztJQUNILEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDUDs7T0FFRztJQUNILEtBQUssRUFBRSxLQUFLLENBQUM7Q0FDZCxDQUFDO0FBRUYsd0JBQWdCLGdDQUFnQyxDQUM5QyxFQUFFLEVBQUUsRUFBRSxFQUNOLGNBQWMsRUFBRSxFQUFFLEVBQ2xCLHlCQUF5QixFQUFFLGVBQWUsRUFDMUMsZUFBZSxFQUFFLGVBQWUsR0FDL0IsV0FBVyxDQTRDYjtBQUVELHdCQUFnQixvQ0FBb0MsQ0FDbEQsRUFBRSxFQUFFLEVBQUUsRUFDTixpQkFBaUIsRUFBRSxpQkFBaUIsRUFDcEMsT0FBTyxFQUFFLE9BQU8sRUFDaEIsVUFBVSxFQUFFLFVBQVUsRUFDdEIsWUFBWSxFQUFFLGVBQWUsR0FBRyxTQUFTLEdBQ3hDLFdBQVcsQ0F3RGIifQ==
72
+ export declare function makeProcessedTxFromTxWithPublicCalls(tx: Tx, globalVariables: GlobalVariables, avmProvingRequest: AvmProvingRequest | undefined, publicTxEffect: PublicTxEffect, gasUsed: GasUsed, revertCode: RevertCode, revertReason: SimulationError | undefined): ProcessedTx;
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzc2VkX3R4LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHgvcHJvY2Vzc2VkX3R4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU5QyxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN2RSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRWhFLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWxELE9BQU8sS0FBSyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDbkgsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFM0Msb0JBQVksZ0JBQWdCO0lBQzFCLEtBQUssSUFBQTtJQUNMLFNBQVMsSUFBQTtJQUNULFFBQVEsSUFBQTtDQUNUO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxNQUFNLFdBQVcsR0FBRztJQUN4Qjs7T0FFRztJQUNILElBQUksRUFBRSxNQUFNLENBQUM7SUFDYjs7T0FFRztJQUNILElBQUksRUFBRSxvQ0FBb0MsQ0FBQztJQUMzQzs7T0FFRztJQUNILFVBQVUsRUFBRSxVQUFVLENBQUM7SUFDdkI7O09BRUc7SUFDSCxpQkFBaUIsRUFBRSxpQkFBaUIsR0FBRyxTQUFTLENBQUM7SUFDakQ7O09BRUc7SUFDSCxlQUFlLEVBQUUsZUFBZSxDQUFDO0lBQ2pDOztPQUVHO0lBQ0gsUUFBUSxFQUFFLFFBQVEsQ0FBQztJQUluQixPQUFPLEVBQUUsT0FBTyxDQUFDO0lBQ2pCOztPQUVHO0lBQ0gsVUFBVSxFQUFFLFVBQVUsQ0FBQztJQUN2Qjs7T0FFRztJQUNILFlBQVksRUFBRSxlQUFlLEdBQUcsU0FBUyxDQUFDO0NBQzNDLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sTUFBTSxRQUFRLEdBQUc7SUFDckI7O09BRUc7SUFDSCxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQ1A7O09BRUc7SUFDSCxLQUFLLEVBQUUsS0FBSyxDQUFDO0NBQ2QsQ0FBQztBQUVGLHdCQUFnQixnQ0FBZ0MsQ0FDOUMsRUFBRSxFQUFFLEVBQUUsRUFDTixjQUFjLEVBQUUsRUFBRSxFQUNsQix5QkFBeUIsRUFBRSxlQUFlLEVBQzFDLGVBQWUsRUFBRSxlQUFlLEdBQy9CLFdBQVcsQ0E0Q2I7QUFFRCx3QkFBZ0Isb0NBQW9DLENBQ2xELEVBQUUsRUFBRSxFQUFFLEVBQ04sZUFBZSxFQUFFLGVBQWUsRUFDaEMsaUJBQWlCLEVBQUUsaUJBQWlCLEdBQUcsU0FBUyxFQUNoRCxjQUFjLEVBQUUsY0FBYyxFQUM5QixPQUFPLEVBQUUsT0FBTyxFQUNoQixVQUFVLEVBQUUsVUFBVSxFQUN0QixZQUFZLEVBQUUsZUFBZSxHQUFHLFNBQVMsR0FDeEMsV0FBVyxDQWtEYiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"processed_tx.d.ts","sourceRoot":"","sources":["../../src/tx/processed_tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,wDAAwD,CAAC;AACnH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,oBAAY,gBAAgB;IAC1B,KAAK,IAAA;IACL,SAAS,IAAA;IACT,QAAQ,IAAA;CACT;AAED;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,IAAI,EAAE,oCAAoC,CAAC;IAC3C;;OAEG;IACH,UAAU,EAAE,UAAU,CAAC;IACvB;;OAEG;IACH,iBAAiB,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACjD;;OAEG;IACH,eAAe,EAAE,eAAe,CAAC;IACjC;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC;IAInB,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,UAAU,EAAE,UAAU,CAAC;IACvB;;OAEG;IACH,YAAY,EAAE,eAAe,GAAG,SAAS,CAAC;CAC3C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB;;OAEG;IACH,EAAE,EAAE,EAAE,CAAC;IACP;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF,wBAAgB,gCAAgC,CAC9C,EAAE,EAAE,EAAE,EACN,cAAc,EAAE,EAAE,EAClB,yBAAyB,EAAE,eAAe,EAC1C,eAAe,EAAE,eAAe,GAC/B,WAAW,CA4Cb;AAED,wBAAgB,oCAAoC,CAClD,EAAE,EAAE,EAAE,EACN,iBAAiB,EAAE,iBAAiB,EACpC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,eAAe,GAAG,SAAS,GACxC,WAAW,CAwDb"}
1
+ {"version":3,"file":"processed_tx.d.ts","sourceRoot":"","sources":["../../src/tx/processed_tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,wDAAwD,CAAC;AACnH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,oBAAY,gBAAgB;IAC1B,KAAK,IAAA;IACL,SAAS,IAAA;IACT,QAAQ,IAAA;CACT;AAED;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,IAAI,EAAE,oCAAoC,CAAC;IAC3C;;OAEG;IACH,UAAU,EAAE,UAAU,CAAC;IACvB;;OAEG;IACH,iBAAiB,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACjD;;OAEG;IACH,eAAe,EAAE,eAAe,CAAC;IACjC;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC;IAInB,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,UAAU,EAAE,UAAU,CAAC;IACvB;;OAEG;IACH,YAAY,EAAE,eAAe,GAAG,SAAS,CAAC;CAC3C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB;;OAEG;IACH,EAAE,EAAE,EAAE,CAAC;IACP;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF,wBAAgB,gCAAgC,CAC9C,EAAE,EAAE,EAAE,EACN,cAAc,EAAE,EAAE,EAClB,yBAAyB,EAAE,eAAe,EAC1C,eAAe,EAAE,eAAe,GAC/B,WAAW,CA4Cb;AAED,wBAAgB,oCAAoC,CAClD,EAAE,EAAE,EAAE,EACN,eAAe,EAAE,eAAe,EAChC,iBAAiB,EAAE,iBAAiB,GAAG,SAAS,EAChD,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,eAAe,GAAG,SAAS,GACxC,WAAW,CAkDb"}
@@ -39,22 +39,20 @@ export function makeProcessedTxFromPrivateOnlyTx(tx, transactionFee, feePaymentP
39
39
  revertReason: undefined
40
40
  };
41
41
  }
42
- export function makeProcessedTxFromTxWithPublicCalls(tx, avmProvingRequest, gasUsed, revertCode, revertReason) {
43
- const avmPublicInputs = avmProvingRequest.inputs.publicInputs;
44
- const globalVariables = avmPublicInputs.globalVariables;
45
- const publicDataWrites = avmPublicInputs.accumulatedData.publicDataWrites.filter((w)=>!w.isEmpty());
42
+ export function makeProcessedTxFromTxWithPublicCalls(tx, globalVariables, avmProvingRequest, publicTxEffect, gasUsed, revertCode, revertReason) {
46
43
  const privateLogs = [
47
44
  ...tx.data.forPublic.nonRevertibleAccumulatedData.privateLogs,
48
45
  ...revertCode.isOK() ? tx.data.forPublic.revertibleAccumulatedData.privateLogs : []
49
46
  ].filter((l)=>!l.isEmpty());
50
47
  const contractClassLogs = revertCode.isOK() ? tx.getContractClassLogs() : tx.getSplitContractClassLogs(false);
51
- const txEffect = new TxEffect(revertCode, tx.getTxHash(), avmPublicInputs.transactionFee, avmPublicInputs.accumulatedData.noteHashes.filter((h)=>!h.isZero()), avmPublicInputs.accumulatedData.nullifiers.filter((h)=>!h.isZero()), avmPublicInputs.accumulatedData.l2ToL1Msgs.filter((msg)=>!msg.contractAddress.isZero()).map((msg)=>computeL2ToL1MessageHash({
48
+ const txEffect = new TxEffect(revertCode, tx.getTxHash(), publicTxEffect.transactionFee, publicTxEffect.noteHashes, publicTxEffect.nullifiers, publicTxEffect.l2ToL1Msgs // convert messages to hashes.
49
+ .filter((msg)=>!msg.contractAddress.isZero()).map((msg)=>computeL2ToL1MessageHash({
52
50
  l2Sender: msg.contractAddress,
53
51
  l1Recipient: msg.message.recipient,
54
52
  content: msg.message.content,
55
53
  rollupVersion: globalVariables.version,
56
54
  chainId: globalVariables.chainId
57
- })), publicDataWrites, privateLogs, avmPublicInputs.accumulatedData.publicLogs.toLogs(), contractClassLogs);
55
+ })), publicTxEffect.publicDataWrites, privateLogs, publicTxEffect.publicLogs, contractClassLogs);
58
56
  // Some callers expect a revert reason if the tx reverted.
59
57
  const finalRevertReason = revertReason === undefined && !revertCode.isOK() ? new SimulationError('TX reverted', /*functionErrorStack=*/ [], /*revertData=*/ []) : revertReason;
60
58
  return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/stdlib",
3
- "version": "3.0.0-nightly.20251208",
3
+ "version": "3.0.0-nightly.20251209",
4
4
  "type": "module",
5
5
  "inherits": [
6
6
  "../package.common.json",
@@ -72,13 +72,13 @@
72
72
  },
73
73
  "dependencies": {
74
74
  "@aws-sdk/client-s3": "^3.892.0",
75
- "@aztec/bb.js": "3.0.0-nightly.20251208",
76
- "@aztec/blob-lib": "3.0.0-nightly.20251208",
77
- "@aztec/constants": "3.0.0-nightly.20251208",
78
- "@aztec/ethereum": "3.0.0-nightly.20251208",
79
- "@aztec/foundation": "3.0.0-nightly.20251208",
80
- "@aztec/l1-artifacts": "3.0.0-nightly.20251208",
81
- "@aztec/noir-noirc_abi": "3.0.0-nightly.20251208",
75
+ "@aztec/bb.js": "3.0.0-nightly.20251209",
76
+ "@aztec/blob-lib": "3.0.0-nightly.20251209",
77
+ "@aztec/constants": "3.0.0-nightly.20251209",
78
+ "@aztec/ethereum": "3.0.0-nightly.20251209",
79
+ "@aztec/foundation": "3.0.0-nightly.20251209",
80
+ "@aztec/l1-artifacts": "3.0.0-nightly.20251209",
81
+ "@aztec/noir-noirc_abi": "3.0.0-nightly.20251209",
82
82
  "@google-cloud/storage": "^7.15.0",
83
83
  "axios": "^1.12.0",
84
84
  "json-stringify-deterministic": "1.0.12",
package/src/avm/avm.ts CHANGED
@@ -15,6 +15,7 @@ import { GasSettings } from '../gas/gas_settings.js';
15
15
  import { GasUsed } from '../gas/gas_used.js';
16
16
  import { PublicKeys } from '../keys/public_keys.js';
17
17
  import { DebugLog } from '../logs/debug_log.js';
18
+ import { PublicLog } from '../logs/public_log.js';
18
19
  import { ScopedL2ToL1Message } from '../messaging/l2_to_l1_message.js';
19
20
  import { NullishToUndefined, type ZodFor, schemas } from '../schemas/schemas.js';
20
21
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
@@ -33,6 +34,7 @@ import { TxExecutionPhase } from '../tx/processed_tx.js';
33
34
  import { WorldStateRevision } from '../world-state/world_state_revision.js';
34
35
  import { AvmCircuitPublicInputs } from './avm_circuit_public_inputs.js';
35
36
  import { serializeWithMessagePack } from './message_pack.js';
37
+ import { PublicDataWrite } from './public_data_write.js';
36
38
  import { RevertCode } from './revert_code.js';
37
39
 
38
40
  ////////////////////////////////////////////////////////////////////////////
@@ -1174,11 +1176,78 @@ export class CallStackMetadata {
1174
1176
  }
1175
1177
  }
1176
1178
 
1179
+ export class PublicTxEffect {
1180
+ constructor(
1181
+ public transactionFee: Fr,
1182
+ public noteHashes: Fr[],
1183
+ public nullifiers: Fr[],
1184
+ public l2ToL1Msgs: ScopedL2ToL1Message[],
1185
+ public publicLogs: PublicLog[],
1186
+ public publicDataWrites: PublicDataWrite[],
1187
+ ) {}
1188
+
1189
+ static empty() {
1190
+ return new PublicTxEffect(Fr.ZERO, [], [], [], [], []);
1191
+ }
1192
+
1193
+ static get schema(): ZodFor<PublicTxEffect> {
1194
+ return z
1195
+ .object({
1196
+ transactionFee: Fr.schema,
1197
+ noteHashes: Fr.schema.array(),
1198
+ nullifiers: Fr.schema.array(),
1199
+ l2ToL1Msgs: ScopedL2ToL1Message.schema.array(),
1200
+ publicLogs: PublicLog.schema.array(),
1201
+ publicDataWrites: PublicDataWrite.schema.array(),
1202
+ })
1203
+ .transform(PublicTxEffect.from);
1204
+ }
1205
+
1206
+ static from(obj: any): PublicTxEffect {
1207
+ return new PublicTxEffect(
1208
+ obj.transactionFee,
1209
+ obj.noteHashes,
1210
+ obj.nullifiers,
1211
+ obj.l2ToL1Msgs,
1212
+ obj.publicLogs,
1213
+ obj.publicDataWrites,
1214
+ );
1215
+ }
1216
+
1217
+ static fromPlainObject(obj: any): PublicTxEffect {
1218
+ return new PublicTxEffect(
1219
+ Fr.fromPlainObject(obj.transactionFee),
1220
+ obj.noteHashes.map((h: any) => Fr.fromPlainObject(h)),
1221
+ obj.nullifiers.map((n: any) => Fr.fromPlainObject(n)),
1222
+ obj.l2ToL1Msgs.map((m: any) => ScopedL2ToL1Message.fromPlainObject(m)),
1223
+ obj.publicLogs.map((l: any) => PublicLog.fromPlainObject(l)),
1224
+ obj.publicDataWrites.map((w: any) => PublicDataWrite.fromPlainObject(w)),
1225
+ );
1226
+ }
1227
+
1228
+ equals(other: PublicTxEffect): boolean {
1229
+ return (
1230
+ this.transactionFee.equals(other.transactionFee) &&
1231
+ this.noteHashes.length === other.noteHashes.length &&
1232
+ this.noteHashes.every((h, i) => h.equals(other.noteHashes[i])) &&
1233
+ this.nullifiers.length === other.nullifiers.length &&
1234
+ this.nullifiers.every((h, i) => h.equals(other.nullifiers[i])) &&
1235
+ this.l2ToL1Msgs.length === other.l2ToL1Msgs.length &&
1236
+ this.l2ToL1Msgs.every((m, i) => m.equals(other.l2ToL1Msgs[i])) &&
1237
+ this.publicLogs.length === other.publicLogs.length &&
1238
+ this.publicLogs.every((l, i) => l.equals(other.publicLogs[i])) &&
1239
+ this.publicDataWrites.length === other.publicDataWrites.length &&
1240
+ this.publicDataWrites.every((w, i) => w.equals(other.publicDataWrites[i]))
1241
+ );
1242
+ }
1243
+ }
1244
+
1177
1245
  export class PublicTxResult {
1178
1246
  constructor(
1179
1247
  // Simulation result.
1180
1248
  public gasUsed: GasUsed,
1181
1249
  public revertCode: RevertCode,
1250
+ public publicTxEffect: PublicTxEffect,
1182
1251
  // These are only guaranteed to be present if the simulator is configured to collect them.
1183
1252
  // TODO(fcarreiro): Remove NestedProcessReturnValues[] once we migrate to the C++ simulator.
1184
1253
  public callStackMetadata:
@@ -1187,7 +1256,7 @@ export class PublicTxResult {
1187
1256
  public logs: DebugLog[] | undefined,
1188
1257
  // For the proving request.
1189
1258
  public hints: AvmExecutionHints | undefined,
1190
- public publicInputs: AvmCircuitPublicInputs,
1259
+ public publicInputs: AvmCircuitPublicInputs | undefined,
1191
1260
  ) {}
1192
1261
 
1193
1262
  static empty() {
@@ -1199,6 +1268,7 @@ export class PublicTxResult {
1199
1268
  billedGas: Gas.empty(),
1200
1269
  },
1201
1270
  RevertCode.OK,
1271
+ PublicTxEffect.empty(),
1202
1272
  /*callStackMetadata=*/ [] as CallStackMetadata[],
1203
1273
  /*logs=*/ [],
1204
1274
  /*hints=*/ AvmExecutionHints.empty(),
@@ -1212,15 +1282,24 @@ export class PublicTxResult {
1212
1282
  gasUsed: schemas.GasUsed,
1213
1283
  revertCode: RevertCode.schema,
1214
1284
  revertReason: NullishToUndefined(SimulationError.schema),
1285
+ publicTxEffect: PublicTxEffect.schema,
1215
1286
  callStackMetadata: z.union([CallStackMetadata.schema.array(), NestedProcessReturnValues.schema.array()]),
1216
1287
  logs: NullishToUndefined(DebugLog.schema.array()),
1217
1288
  // For the proving request.
1218
- publicInputs: AvmCircuitPublicInputs.schema,
1289
+ publicInputs: NullishToUndefined(AvmCircuitPublicInputs.schema),
1219
1290
  hints: NullishToUndefined(AvmExecutionHints.schema),
1220
1291
  })
1221
1292
  .transform(
1222
- ({ gasUsed, revertCode, callStackMetadata, logs, hints, publicInputs }) =>
1223
- new PublicTxResult(gasUsed, revertCode as RevertCode, callStackMetadata, logs, hints, publicInputs),
1293
+ ({ gasUsed, revertCode, publicTxEffect, callStackMetadata, logs, hints, publicInputs }) =>
1294
+ new PublicTxResult(
1295
+ gasUsed,
1296
+ revertCode as RevertCode,
1297
+ publicTxEffect,
1298
+ callStackMetadata,
1299
+ logs,
1300
+ hints,
1301
+ publicInputs,
1302
+ ),
1224
1303
  );
1225
1304
  }
1226
1305
 
@@ -1235,10 +1314,11 @@ export class PublicTxResult {
1235
1314
  return new PublicTxResult(
1236
1315
  GasUsed.fromPlainObject(obj.gasUsed),
1237
1316
  RevertCode.fromPlainObject(obj.revertCode),
1317
+ PublicTxEffect.fromPlainObject(obj.publicTxEffect),
1238
1318
  obj.callStackMetadata.map(CallStackMetadata.fromPlainObject), // Always CallStackMetadata[] from MessagePack.
1239
1319
  obj.logs?.map(DebugLog.fromPlainObject),
1240
1320
  obj.hints ? AvmExecutionHints.fromPlainObject(obj.hints) : undefined,
1241
- AvmCircuitPublicInputs.fromPlainObject(obj.publicInputs),
1321
+ obj.publicInputs ? AvmCircuitPublicInputs.fromPlainObject(obj.publicInputs) : undefined,
1242
1322
  );
1243
1323
  }
1244
1324
 
@@ -1336,6 +1416,7 @@ export class PublicSimulatorConfig {
1336
1416
  public readonly skipFeeEnforcement: boolean,
1337
1417
  public readonly collectCallMetadata: boolean, // appLogicReturnValues.
1338
1418
  public readonly collectHints: boolean, // hints.
1419
+ public readonly collectPublicInputs: boolean, // public inputs.
1339
1420
  public readonly collectDebugLogs: boolean, // logs.
1340
1421
  public readonly collectStatistics: boolean, // timings etc.
1341
1422
  public readonly collectionLimits: CollectionLimitsConfig,
@@ -1347,6 +1428,7 @@ export class PublicSimulatorConfig {
1347
1428
  obj.skipFeeEnforcement ?? false,
1348
1429
  obj.collectCallMetadata ?? false,
1349
1430
  obj.collectHints ?? false,
1431
+ obj.collectPublicInputs ?? false,
1350
1432
  obj.collectDebugLogs ?? false,
1351
1433
  obj.collectStatistics ?? false,
1352
1434
  obj.collectionLimits ?? CollectionLimitsConfig.empty(),
@@ -1364,6 +1446,7 @@ export class PublicSimulatorConfig {
1364
1446
  skipFeeEnforcement: z.boolean(),
1365
1447
  collectCallMetadata: z.boolean(),
1366
1448
  collectHints: z.boolean(),
1449
+ collectPublicInputs: z.boolean(),
1367
1450
  collectDebugLogs: z.boolean(),
1368
1451
  collectStatistics: z.boolean(),
1369
1452
  collectionLimits: CollectionLimitsConfig.schema,
@@ -15,15 +15,21 @@ export type DataInBlock<T> = {
15
15
  data: T;
16
16
  } & InBlock;
17
17
 
18
- export function randomInBlock<T>(data: T): DataInBlock<T> {
18
+ export function randomInBlock(): InBlock {
19
19
  return {
20
- data,
21
20
  l2BlockNumber: BlockNumber(Math.floor(Math.random() * 1000)),
22
21
  l2BlockHash: L2BlockHash.random(),
23
22
  };
24
23
  }
25
24
 
26
- export async function wrapInBlock<T>(data: T, block: L2Block): Promise<DataInBlock<T>> {
25
+ export function randomDataInBlock<T>(data: T): DataInBlock<T> {
26
+ return {
27
+ ...randomInBlock(),
28
+ data,
29
+ };
30
+ }
31
+
32
+ export async function wrapDataInBlock<T>(data: T, block: L2Block): Promise<DataInBlock<T>> {
27
33
  return {
28
34
  data,
29
35
  l2BlockNumber: block.number,
@@ -31,10 +37,13 @@ export async function wrapInBlock<T>(data: T, block: L2Block): Promise<DataInBlo
31
37
  };
32
38
  }
33
39
 
34
- export function inBlockSchemaFor<T extends ZodTypeAny>(schema: T) {
40
+ export function inBlockSchema() {
35
41
  return z.object({
36
- data: schema,
37
42
  l2BlockNumber: BlockNumberSchema,
38
43
  l2BlockHash: L2BlockHash.schema,
39
44
  });
40
45
  }
46
+
47
+ export function dataInBlockSchemaFor<T extends ZodTypeAny>(schema: T) {
48
+ return inBlockSchema().extend({ data: schema });
49
+ }
@@ -21,7 +21,7 @@ import { z } from 'zod';
21
21
 
22
22
  import type { AztecAddress } from '../aztec-address/index.js';
23
23
  import { type BlockParameter, BlockParameterSchema } from '../block/block_parameter.js';
24
- import { type DataInBlock, inBlockSchemaFor } from '../block/in_block.js';
24
+ import { type DataInBlock, dataInBlockSchemaFor } from '../block/in_block.js';
25
25
  import { L2Block } from '../block/l2_block.js';
26
26
  import { type L2BlockSource, type L2Tips, L2TipsSchema } from '../block/l2_block_source.js';
27
27
  import { PublishedL2Block } from '../block/published_l2_block.js';
@@ -502,7 +502,7 @@ export const AztecNodeApiSchema: ApiSchemaFor<AztecNode> = {
502
502
  findLeavesIndexes: z
503
503
  .function()
504
504
  .args(BlockParameterSchema, z.nativeEnum(MerkleTreeId), z.array(schemas.Fr).max(MAX_RPC_LEN))
505
- .returns(z.array(optional(inBlockSchemaFor(schemas.BigInt)))),
505
+ .returns(z.array(optional(dataInBlockSchemaFor(schemas.BigInt)))),
506
506
 
507
507
  getNullifierSiblingPath: z
508
508
  .function()
@@ -172,6 +172,13 @@ export class PublicLog {
172
172
  return new PublicLog(reader.readObject(AztecAddress), reader.readArray(fieldsLength, Fr));
173
173
  }
174
174
 
175
+ static fromPlainObject(obj: any): PublicLog {
176
+ return new PublicLog(
177
+ AztecAddress.fromPlainObject(obj.contractAddress),
178
+ obj.fields.map((f: any) => Fr.fromPlainObject(f)),
179
+ );
180
+ }
181
+
175
182
  static async random() {
176
183
  return new PublicLog(
177
184
  await AztecAddress.random(),
@@ -160,6 +160,10 @@ export class ScopedL2ToL1Message {
160
160
  return new ScopedL2ToL1Message(L2ToL1Message.empty(), AztecAddress.ZERO);
161
161
  }
162
162
 
163
+ equals(other: ScopedL2ToL1Message): boolean {
164
+ return this.message.equals(other.message) && this.contractAddress.equals(other.contractAddress);
165
+ }
166
+
163
167
  /**
164
168
  * Creates a ScopedL2ToL1Message instance from a plain object without Zod validation.
165
169
  * This method is optimized for performance and skips validation, making it suitable
@@ -14,6 +14,7 @@ import { Secp256k1Signer, randomBytes } from '@aztec/foundation/crypto';
14
14
  import { Fr } from '@aztec/foundation/fields';
15
15
 
16
16
  import type { ContractArtifact } from '../abi/abi.js';
17
+ import { PublicTxEffect } from '../avm/avm.js';
17
18
  import { AvmCircuitPublicInputs } from '../avm/avm_circuit_public_inputs.js';
18
19
  import { PublicDataWrite } from '../avm/public_data_write.js';
19
20
  import { RevertCode } from '../avm/revert_code.js';
@@ -320,12 +321,24 @@ export async function mockProcessedTx({
320
321
  } satisfies GasUsed;
321
322
 
322
323
  await tx.recomputeHash();
324
+
325
+ const publicTxEffect = new PublicTxEffect(
326
+ avmOutput.transactionFee,
327
+ avmOutput.accumulatedData.noteHashes.filter(h => !h.isZero()),
328
+ avmOutput.accumulatedData.nullifiers.filter(h => !h.isZero()),
329
+ avmOutput.accumulatedData.l2ToL1Msgs.filter(h => !h.isEmpty()),
330
+ avmOutput.accumulatedData.publicLogs.toLogs(),
331
+ avmOutput.accumulatedData.publicDataWrites.filter(h => !h.isEmpty()),
332
+ );
333
+
323
334
  return makeProcessedTxFromTxWithPublicCalls(
324
335
  tx,
336
+ globalVariables,
325
337
  {
326
338
  type: ProvingRequestType.PUBLIC_VM,
327
339
  inputs: avmCircuitInputs,
328
340
  },
341
+ publicTxEffect,
329
342
  gasUsed,
330
343
  RevertCode.OK,
331
344
  undefined /* revertReason */,
@@ -0,0 +1,24 @@
1
+ import { z } from 'zod';
2
+
3
+ import { type InBlock, inBlockSchema, randomInBlock } from '../block/in_block.js';
4
+ import { TxHash } from './tx_hash.js';
5
+
6
+ export type InTx = InBlock & {
7
+ txHash: TxHash;
8
+ };
9
+
10
+ export function randomInTx(): InTx {
11
+ return {
12
+ ...randomInBlock(),
13
+ txHash: TxHash.random(),
14
+ };
15
+ }
16
+
17
+ export function inTxSchema() {
18
+ return z.intersection(
19
+ inBlockSchema(),
20
+ z.object({
21
+ txHash: TxHash.schema,
22
+ }),
23
+ );
24
+ }
package/src/tx/index.ts CHANGED
@@ -32,3 +32,4 @@ export * from './offchain_effect.js';
32
32
  export * from './profiling.js';
33
33
  export * from './protocol_contracts.js';
34
34
  export * from './execution_payload.js';
35
+ export * from './in_tx.js';
@@ -3,18 +3,18 @@ import { schemas } from '@aztec/foundation/schemas';
3
3
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
4
4
 
5
5
  import { L2BlockHash } from '../block/block_hash.js';
6
- import { type DataInBlock, inBlockSchemaFor, randomInBlock } from '../block/in_block.js';
6
+ import { type DataInBlock, dataInBlockSchemaFor, randomDataInBlock } from '../block/in_block.js';
7
7
  import { TxEffect } from './tx_effect.js';
8
8
 
9
9
  export type IndexedTxEffect = DataInBlock<TxEffect> & { txIndexInBlock: number };
10
10
 
11
11
  export function indexedTxSchema() {
12
- return inBlockSchemaFor(TxEffect.schema).extend({ txIndexInBlock: schemas.Integer });
12
+ return dataInBlockSchemaFor(TxEffect.schema).extend({ txIndexInBlock: schemas.Integer });
13
13
  }
14
14
 
15
15
  export async function randomIndexedTxEffect(): Promise<IndexedTxEffect> {
16
16
  return {
17
- ...randomInBlock(await TxEffect.random({ numNullifiers: 1 + Math.floor(Math.random() * 64) })),
17
+ ...randomDataInBlock(await TxEffect.random({ numNullifiers: 1 + Math.floor(Math.random() * 64) })),
18
18
  txIndexInBlock: Math.floor(Math.random() * 1000),
19
19
  };
20
20
  }