@aztec/txe 5.0.0-rc.2 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/dest/AuthRegistry-56AMRLSQ.js +3 -0
  2. package/dest/AuthRegistry-56AMRLSQ.js.map +7 -0
  3. package/dest/ContractClassRegistry-N6NA3SFA.js +3 -0
  4. package/dest/ContractClassRegistry-N6NA3SFA.js.map +7 -0
  5. package/dest/ContractInstanceRegistry-NADDSLGL.js +3 -0
  6. package/dest/ContractInstanceRegistry-NADDSLGL.js.map +7 -0
  7. package/dest/FeeJuice-QBH5JWJV.js +3 -0
  8. package/dest/FeeJuice-QBH5JWJV.js.map +7 -0
  9. package/dest/HandshakeRegistry-D2W3AOPD.js +3 -0
  10. package/dest/HandshakeRegistry-D2W3AOPD.js.map +7 -0
  11. package/dest/MultiCallEntrypoint-MIDICLQB.js +3 -0
  12. package/dest/MultiCallEntrypoint-MIDICLQB.js.map +7 -0
  13. package/dest/SchnorrAccount-HNL7EN7Y.js +3 -0
  14. package/dest/SchnorrAccount-HNL7EN7Y.js.map +7 -0
  15. package/dest/SchnorrInitializerlessAccount-TFAFXZW6.js +3 -0
  16. package/dest/SchnorrInitializerlessAccount-TFAFXZW6.js.map +7 -0
  17. package/dest/bin/index.js +1 -1
  18. package/dest/bin/oracle_test_server.js +1 -1
  19. package/dest/chunk-EKHK6CRD.js +268 -0
  20. package/dest/chunk-EKHK6CRD.js.map +7 -0
  21. package/dest/{chunk-I6DL4FT2.js → chunk-RELAEYUE.js} +2 -2
  22. package/dest/{chunk-I6DL4FT2.js.map → chunk-RELAEYUE.js.map} +3 -3
  23. package/dest/index.d.ts +1 -1
  24. package/dest/index.d.ts.map +1 -1
  25. package/dest/index.js +5 -3
  26. package/dest/metafile.json +3677 -3076
  27. package/dest/oracle/interfaces.d.ts +15 -7
  28. package/dest/oracle/interfaces.d.ts.map +1 -1
  29. package/dest/oracle/tagging_secret_strategy.d.ts +12 -0
  30. package/dest/oracle/tagging_secret_strategy.d.ts.map +1 -0
  31. package/dest/oracle/tagging_secret_strategy.js +12 -0
  32. package/dest/oracle/test-resolver/default_fixtures.d.ts +3 -3
  33. package/dest/oracle/test-resolver/default_fixtures.d.ts.map +1 -1
  34. package/dest/oracle/test-resolver/default_fixtures.js +54 -11
  35. package/dest/oracle/test-resolver/resolver.d.ts +1 -1
  36. package/dest/oracle/test-resolver/resolver.js +39 -2
  37. package/dest/oracle/txe_oracle_public_context.d.ts +6 -6
  38. package/dest/oracle/txe_oracle_public_context.d.ts.map +1 -1
  39. package/dest/oracle/txe_oracle_public_context.js +15 -9
  40. package/dest/oracle/txe_oracle_registry.d.ts +21 -16
  41. package/dest/oracle/txe_oracle_registry.d.ts.map +1 -1
  42. package/dest/oracle/txe_oracle_registry.js +59 -17
  43. package/dest/oracle/txe_oracle_top_level_context.d.ts +22 -7
  44. package/dest/oracle/txe_oracle_top_level_context.d.ts.map +1 -1
  45. package/dest/oracle/txe_oracle_top_level_context.js +67 -35
  46. package/dest/oracle/txe_oracle_version.d.ts +3 -3
  47. package/dest/oracle/txe_oracle_version.js +3 -3
  48. package/dest/rpc_translator.d.ts +9 -5
  49. package/dest/rpc_translator.d.ts.map +1 -1
  50. package/dest/rpc_translator.js +44 -12
  51. package/dest/server.bundle.js +1 -1
  52. package/dest/state_machine/dummy_p2p_client.d.ts +2 -1
  53. package/dest/state_machine/dummy_p2p_client.d.ts.map +1 -1
  54. package/dest/state_machine/dummy_p2p_client.js +3 -0
  55. package/dest/state_machine/index.d.ts +4 -3
  56. package/dest/state_machine/index.d.ts.map +1 -1
  57. package/dest/state_machine/index.js +7 -4
  58. package/dest/state_machine/synchronizer.d.ts +3 -1
  59. package/dest/state_machine/synchronizer.d.ts.map +1 -1
  60. package/dest/state_machine/synchronizer.js +3 -0
  61. package/dest/txe_session.d.ts +3 -2
  62. package/dest/txe_session.d.ts.map +1 -1
  63. package/dest/txe_session.js +35 -15
  64. package/dest/utils/encoding.d.ts +4 -3
  65. package/dest/utils/encoding.d.ts.map +1 -1
  66. package/dest/utils/tx_effect_creation.d.ts +1 -1
  67. package/dest/utils/tx_effect_creation.d.ts.map +1 -1
  68. package/dest/utils/tx_effect_creation.js +0 -1
  69. package/dest/utils/txe_public_contract_data_source.d.ts +1 -1
  70. package/dest/utils/txe_public_contract_data_source.d.ts.map +1 -1
  71. package/dest/utils/txe_public_contract_data_source.js +7 -4
  72. package/dest/worker.bundle.js +1 -1
  73. package/package.json +17 -17
  74. package/src/bin/oracle_test_server.ts +1 -1
  75. package/src/index.ts +5 -3
  76. package/src/oracle/interfaces.ts +17 -6
  77. package/src/oracle/tagging_secret_strategy.ts +25 -0
  78. package/src/oracle/test-resolver/default_fixtures.ts +73 -17
  79. package/src/oracle/test-resolver/resolver.ts +49 -2
  80. package/src/oracle/txe_oracle_public_context.ts +13 -11
  81. package/src/oracle/txe_oracle_registry.ts +58 -9
  82. package/src/oracle/txe_oracle_top_level_context.ts +108 -31
  83. package/src/oracle/txe_oracle_version.ts +3 -3
  84. package/src/rpc_translator.ts +51 -13
  85. package/src/state_machine/dummy_p2p_client.ts +4 -0
  86. package/src/state_machine/index.ts +19 -2
  87. package/src/state_machine/synchronizer.ts +5 -0
  88. package/src/txe_session.ts +63 -15
  89. package/src/utils/tx_effect_creation.ts +0 -2
  90. package/src/utils/txe_public_contract_data_source.ts +6 -4
  91. package/dest/AuthRegistry-URXCCPYF.js +0 -3
  92. package/dest/AuthRegistry-URXCCPYF.js.map +0 -7
  93. package/dest/ContractClassRegistry-5RDBM6TC.js +0 -3
  94. package/dest/ContractClassRegistry-5RDBM6TC.js.map +0 -7
  95. package/dest/ContractInstanceRegistry-GCR4G4D7.js +0 -3
  96. package/dest/ContractInstanceRegistry-GCR4G4D7.js.map +0 -7
  97. package/dest/FeeJuice-O3KOSZO5.js +0 -3
  98. package/dest/FeeJuice-O3KOSZO5.js.map +0 -7
  99. package/dest/HandshakeRegistry-TXSMHMNY.js +0 -3
  100. package/dest/HandshakeRegistry-TXSMHMNY.js.map +0 -7
  101. package/dest/MultiCallEntrypoint-P4FSRXAD.js +0 -3
  102. package/dest/MultiCallEntrypoint-P4FSRXAD.js.map +0 -7
  103. package/dest/SchnorrAccount-AQZX7ROU.js +0 -3
  104. package/dest/SchnorrAccount-AQZX7ROU.js.map +0 -7
  105. package/dest/SchnorrInitializerlessAccount-KMX2H3J6.js +0 -3
  106. package/dest/SchnorrInitializerlessAccount-KMX2H3J6.js.map +0 -7
  107. package/dest/chunk-IAO54JS2.js +0 -266
  108. package/dest/chunk-IAO54JS2.js.map +0 -7
@@ -2,7 +2,7 @@
2
2
  import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import { Point } from '@aztec/foundation/curves/grumpkin';
4
4
  import { withHexPrefix, withoutHexPrefix } from '@aztec/foundation/string';
5
- import { ARRAY, AZTEC_ADDRESS, BIGINT, BLOCK_NUMBER, BOOL, ETH_ADDRESS, FIELD, FUNCTION_SELECTOR, OPTION, ORACLE_REGISTRY, STR, U32, makeEntry } from '@aztec/pxe/simulator';
5
+ import { ARRAY, AZTEC_ADDRESS, BIGINT, BLOCK_NUMBER, BOOL, ETH_ADDRESS, FIELD, FIXED_ARRAY, FUNCTION_SELECTOR, OPTION, ORACLE_REGISTRY, STR, STRUCT, U32, buildACIRCallback, makeEntry } from '@aztec/pxe/simulator';
6
6
  import { EventSelector } from '@aztec/stdlib/abi';
7
7
  import { GasSettings } from '@aztec/stdlib/gas';
8
8
  import { MAX_OFFCHAIN_EFFECTS_PER_TXE_QUERY, MAX_OFFCHAIN_EFFECT_LEN, MAX_PRIVATE_EVENTS_PER_TXE_QUERY, MAX_PRIVATE_EVENT_LEN } from '../constants.js';
@@ -17,11 +17,12 @@ const GAS_SETTINGS = {
17
17
  ]
18
18
  };
19
19
  // Tagging secret strategy discriminants. Must match the Noir test helper `TaggingSecretStrategy` in
20
- // aztec-nr `test/helpers/tagging_secret_strategy.nr`. This is a test-only oracle (only `set_tagging_secret_strategy`
20
+ // aztec-nr `test/helpers/tagging_secret_strategy.nr`. This is a test-only oracle (only `set_tagging_secret_strategies`
21
21
  // reads it), so the mapping lives here on the TXE side rather than in the production oracle type mappings.
22
22
  const STRATEGY_NON_INTERACTIVE_HANDSHAKE = 1;
23
23
  const STRATEGY_ARBITRARY_SECRET = 2;
24
24
  const STRATEGY_ADDRESS_DERIVED = 3;
25
+ const STRATEGY_INTERACTIVE_HANDSHAKE = 4;
25
26
  const TAGGING_SECRET_STRATEGY = {
26
27
  serialization: {
27
28
  fn: (strategy)=>{
@@ -32,6 +33,12 @@ const TAGGING_SECRET_STRATEGY = {
32
33
  Fr.ZERO,
33
34
  Fr.ZERO
34
35
  ];
36
+ case 'interactive-handshake':
37
+ return [
38
+ new Fr(STRATEGY_INTERACTIVE_HANDSHAKE),
39
+ Fr.ZERO,
40
+ Fr.ZERO
41
+ ];
35
42
  case 'address-derived':
36
43
  return [
37
44
  new Fr(STRATEGY_ADDRESS_DERIVED),
@@ -59,6 +66,10 @@ const TAGGING_SECRET_STRATEGY = {
59
66
  return {
60
67
  type: 'non-interactive-handshake'
61
68
  };
69
+ case STRATEGY_INTERACTIVE_HANDSHAKE:
70
+ return {
71
+ type: 'interactive-handshake'
72
+ };
62
73
  case STRATEGY_ADDRESS_DERIVED:
63
74
  return {
64
75
  type: 'address-derived'
@@ -177,18 +188,16 @@ const TXE_CALL_CONTEXT = {
177
188
  'scalar'
178
189
  ]
179
190
  };
180
- const CONTRACT_INSTANCE_MEMBER = {
181
- serialization: {
182
- fn: ({ member, exists })=>[
183
- member,
184
- new Fr(exists)
185
- ]
191
+ const CONTRACT_INSTANCE_MEMBER = FIXED_ARRAY(STRUCT([
192
+ {
193
+ name: 'exists',
194
+ type: BOOL
186
195
  },
187
- shape: [
188
- 'scalar',
189
- 'scalar'
190
- ]
191
- };
196
+ {
197
+ name: 'member',
198
+ type: FIELD
199
+ }
200
+ ]), 1);
192
201
  const EVENT_SELECTOR = {
193
202
  serialization: {
194
203
  fn: (v)=>[
@@ -382,14 +391,26 @@ export const TXE_ORACLE_REGISTRY = {
382
391
  ],
383
392
  returnType: FIELD
384
393
  }),
385
- aztec_txe_setTaggingSecretStrategy: makeEntry({
394
+ aztec_txe_setTaggingSecretStrategies: makeEntry({
386
395
  params: [
387
396
  {
388
- name: 'strategy',
397
+ name: 'unconstrainedStrategy',
398
+ type: OPTION(TAGGING_SECRET_STRATEGY)
399
+ },
400
+ {
401
+ name: 'constrainedStrategy',
389
402
  type: OPTION(TAGGING_SECRET_STRATEGY)
390
403
  }
391
404
  ]
392
405
  }),
406
+ aztec_txe_setAuthorizeAllUtilityCallTargets: makeEntry({
407
+ params: [
408
+ {
409
+ name: 'authorizeAll',
410
+ type: BOOL
411
+ }
412
+ ]
413
+ }),
393
414
  aztec_txe_getLastBlockTimestamp: makeEntry({
394
415
  returnType: BIGINT
395
416
  }),
@@ -590,7 +611,7 @@ export const TXE_ORACLE_REGISTRY = {
590
611
  ]
591
612
  }),
592
613
  aztec_avm_returndataSize: makeEntry({
593
- returnType: FIELD
614
+ returnType: U32
594
615
  }),
595
616
  aztec_avm_returndataCopy: makeEntry({
596
617
  params: [
@@ -708,7 +729,28 @@ export function toInputSlots(inputs) {
708
729
  const named = entry.deserializeParams(toInputSlots(inputs));
709
730
  const positional = named.map((p)=>p.value);
710
731
  const result = await handler(positional);
711
- const outputSlots = entry.serializeReturn(result);
732
+ return outputSlotsToForeignCallResult(entry.serializeReturn(result));
733
+ }
734
+ /**
735
+ * Dispatches an oracle that has been retired into the PXE legacy registry. TXE has no explicit handler method for such
736
+ * names; this runs them through the same `buildACIRCallback` legacy path that contract execution already uses, so
737
+ * TXE's top-level oracle path and its in-contract path treat the legacy registry identically.
738
+ */ const legacyCallbacksByHandler = new WeakMap();
739
+ export async function callTxeLegacyHandler(oracle, inputs, oracleHandler) {
740
+ // `buildACIRCallback` materializes the whole real+legacy closure set, so memoize it per handler rather than
741
+ // rebuilding on every call (TXE routes one legacy oracle through here on each top-level discovery).
742
+ let callback = legacyCallbacksByHandler.get(oracleHandler);
743
+ if (!callback) {
744
+ callback = buildACIRCallback(oracleHandler);
745
+ legacyCallbacksByHandler.set(oracleHandler, callback);
746
+ }
747
+ const outputSlots = await callback[oracle](...toInputSlots(inputs));
748
+ return outputSlotsToForeignCallResult(outputSlots);
749
+ }
750
+ /**
751
+ * Strips the `0x` prefix from each serialized output slot (TXE foreign calls use bare hex strings) and wraps them in a
752
+ * `ForeignCallResult`.
753
+ */ function outputSlotsToForeignCallResult(outputSlots) {
712
754
  return {
713
755
  values: outputSlots.map((slot)=>Array.isArray(slot) ? slot.map(withoutHexPrefix) : withoutHexPrefix(slot))
714
756
  };
@@ -2,18 +2,20 @@ import { BlockNumber } from '@aztec/foundation/branded-types';
2
2
  import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import type { EthAddress } from '@aztec/foundation/eth-address';
4
4
  import type { KeyStore } from '@aztec/key-store';
5
- import { AddressStore, CapsuleStore, type ContractStore, FactStore, NoteStore, PrivateEventStore, RecipientTaggingStore, SenderTaggingStore, TaggingSecretSourcesStore, type TaggingSecretStrategy } from '@aztec/pxe/server';
5
+ import { AddressStore, CapsuleStore, type ContractStore, type ExecutionHooks, FactStore, NoteStore, PrivateEventStore, RecipientTaggingStore, SenderTaggingStore, TaggingSecretSourcesStore, type TaggingSecretStrategy } from '@aztec/pxe/server';
6
6
  import { type IMiscOracle, type Option } from '@aztec/pxe/simulator';
7
7
  import { EventSelector, FunctionSelector } from '@aztec/stdlib/abi';
8
8
  import { AuthWitness } from '@aztec/stdlib/auth-witness';
9
9
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
10
10
  import { GasSettings } from '@aztec/stdlib/gas';
11
+ import type { PrivateLog } from '@aztec/stdlib/logs';
11
12
  import { TxHash } from '@aztec/stdlib/tx';
12
13
  import type { UInt64 } from '@aztec/stdlib/types';
13
14
  import type { TXEStateMachine } from '../state_machine/index.js';
14
15
  import type { TXEAccountStore } from '../utils/txe_account_store.js';
15
16
  import type { TXEArtifactResolver } from '../utils/txe_artifact_resolver.js';
16
17
  import type { ITxeExecutionOracle } from './interfaces.js';
18
+ import { type TXETaggingSecretStrategies } from './tagging_secret_strategy.js';
17
19
  export declare class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecutionOracle {
18
20
  private stateMachine;
19
21
  private contractStore;
@@ -31,14 +33,15 @@ export declare class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecut
31
33
  private version;
32
34
  private chainId;
33
35
  private authwits;
34
- private taggingSecretStrategy;
36
+ private taggingSecretStrategies;
37
+ private authorizeAllUtilityCallTargets;
35
38
  private readonly artifactResolver;
36
39
  private readonly rootPath;
37
40
  private readonly packageName;
38
41
  isMisc: true;
39
42
  isTxe: true;
40
43
  private logger;
41
- constructor(stateMachine: TXEStateMachine, contractStore: ContractStore, noteStore: NoteStore, keyStore: KeyStore, addressStore: AddressStore, accountStore: TXEAccountStore, senderTaggingStore: SenderTaggingStore, recipientTaggingStore: RecipientTaggingStore, taggingSecretSourcesStore: TaggingSecretSourcesStore, capsuleStore: CapsuleStore, factStore: FactStore, privateEventStore: PrivateEventStore, nextBlockTimestamp: bigint, version: Fr, chainId: Fr, authwits: Map<string, AuthWitness>, taggingSecretStrategy: TaggingSecretStrategy | undefined, artifactResolver: TXEArtifactResolver, rootPath: string, packageName: string);
44
+ constructor(stateMachine: TXEStateMachine, contractStore: ContractStore, noteStore: NoteStore, keyStore: KeyStore, addressStore: AddressStore, accountStore: TXEAccountStore, senderTaggingStore: SenderTaggingStore, recipientTaggingStore: RecipientTaggingStore, taggingSecretSourcesStore: TaggingSecretSourcesStore, capsuleStore: CapsuleStore, factStore: FactStore, privateEventStore: PrivateEventStore, nextBlockTimestamp: bigint, version: Fr, chainId: Fr, authwits: Map<string, AuthWitness>, taggingSecretStrategies: TXETaggingSecretStrategies, authorizeAllUtilityCallTargets: boolean, artifactResolver: TXEArtifactResolver, rootPath: string, packageName: string);
42
45
  private contractOracleVersion;
43
46
  assertCompatibleOracleVersion(major: number, minor: number): void;
44
47
  nonOracleFunctionGetContractOracleVersion(): {
@@ -55,7 +58,7 @@ export declare class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecut
55
58
  txHash: TxHash;
56
59
  noteHashes: Fr[];
57
60
  nullifiers: Fr[];
58
- privateLogs: import("@aztec/stdlib/logs").PrivateLog[];
61
+ privateLogs: PrivateLog[];
59
62
  }>;
60
63
  syncContractNonOracleMethod(contractAddress: AztecAddress, scope: AztecAddress, jobId: string): Promise<void>;
61
64
  getPrivateEvents(selector: EventSelector, contractAddress: AztecAddress, scope: AztecAddress): Promise<Fr[][]>;
@@ -71,7 +74,8 @@ export declare class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecut
71
74
  private registerContractAndAddAccount;
72
75
  createAccount(secret: Fr): Promise<import("@aztec/stdlib/contract").CompleteAddress>;
73
76
  addAuthWitness(address: AztecAddress, messageHash: Fr): Promise<void>;
74
- setTaggingSecretStrategy(strategy: Option<TaggingSecretStrategy>): void;
77
+ setTaggingSecretStrategies(unconstrainedStrategy: Option<TaggingSecretStrategy>, constrainedStrategy: Option<TaggingSecretStrategy>): void;
78
+ setAuthorizeAllUtilityCallTargets(authorizeAll: boolean): void;
75
79
  sendL1ToL2Message(content: Fr, secretHash: Fr, sender: EthAddress, recipient: AztecAddress): Promise<Fr>;
76
80
  mineBlock(options?: {
77
81
  nullifiers?: Fr[];
@@ -84,8 +88,19 @@ export declare class TXEOracleTopLevelContext implements IMiscOracle, ITxeExecut
84
88
  publicCallNewFlow(from: AztecAddress | undefined, targetContractAddress: AztecAddress, calldata: Fr[], isStaticCall: boolean, gasSettings: GasSettings): Promise<Fr[]>;
85
89
  executeUtilityFunction(from: AztecAddress | undefined, targetContractAddress: AztecAddress, functionSelector: FunctionSelector, args: Fr[], jobId: string, authorizedUtilityCallTargets: AztecAddress[]): Promise<Fr[]>;
86
90
  private executeUtilityCall;
87
- close(): [bigint, Map<string, AuthWitness>, TaggingSecretStrategy | undefined];
91
+ close(): {
92
+ nextBlockTimestamp: bigint;
93
+ authwits: Map<string, AuthWitness>;
94
+ taggingSecretStrategies: TXETaggingSecretStrategies;
95
+ authorizeAllUtilityCallTargets: boolean;
96
+ };
88
97
  private getLastBlockNumber;
89
98
  private buildAuthorizeUtilityCallHook;
90
99
  }
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhlX29yYWNsZV90b3BfbGV2ZWxfY29udGV4dC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29yYWNsZS90eGVfb3JhY2xlX3RvcF9sZXZlbF9jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU5RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHaEUsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUNMLFlBQVksRUFFWixZQUFZLEVBQ1osS0FBSyxhQUFhLEVBR2xCLFNBQVMsRUFDVCxTQUFTLEVBRVQsaUJBQWlCLEVBQ2pCLHFCQUFxQixFQUNyQixrQkFBa0IsRUFDbEIseUJBQXlCLEVBQ3pCLEtBQUsscUJBQXFCLEVBRzNCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUtMLEtBQUssV0FBVyxFQUNoQixLQUFLLE1BQU0sRUFPWixNQUFNLHNCQUFzQixDQUFDO0FBZ0I5QixPQUFPLEVBQXlCLGFBQWEsRUFBZ0IsZ0JBQWdCLEVBQWdCLE1BQU0sbUJBQW1CLENBQUM7QUFDdkgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXpELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUzRCxPQUFPLEVBQWdCLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBYTlELE9BQU8sRUFTTCxNQUFNLEVBRVAsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUlsRCxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVqRSxPQUFP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
100
+ /**
101
+ * An `authorizeUtilityCall` hook that authorizes every cross-contract utility call.
102
+ *
103
+ * Backs the `aztec_txe_setAuthorizeAllUtilityCallTargets` oracle.
104
+ */
105
+ export declare const authorizeAllUtilityCallsHook: NonNullable<ExecutionHooks['authorizeUtilityCall']>;
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhlX29yYWNsZV90b3BfbGV2ZWxfY29udGV4dC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29yYWNsZS90eGVfb3JhY2xlX3RvcF9sZXZlbF9jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU5RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHaEUsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUNMLFlBQVksRUFHWixZQUFZLEVBQ1osS0FBSyxhQUFhLEVBQ2xCLEtBQUssY0FBYyxFQUVuQixTQUFTLEVBQ1QsU0FBUyxFQUVULGlCQUFpQixFQUNqQixxQkFBcUIsRUFDckIsa0JBQWtCLEVBQ2xCLHlCQUF5QixFQUN6QixLQUFLLHFCQUFxQixFQUczQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFLTCxLQUFLLFdBQVcsRUFDaEIsS0FBSyxNQUFNLEVBT1osTUFBTSxzQkFBc0IsQ0FBQztBQWdCOUIsT0FBTyxFQUF5QixhQUFhLEVBQWdCLGdCQUFnQixFQUFnQixNQUFNLG1CQUFtQixDQUFDO0FBQ3ZILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFM0QsT0FBTyxFQUFnQixXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQVM5RCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQU1yRCxPQUFPLEVBU0wsTUFBTSxFQUVQLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFC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
@@ -1 +1 @@
1
- {"version":3,"file":"txe_oracle_top_level_context.d.ts","sourceRoot":"","sources":["../../src/oracle/txe_oracle_top_level_context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"txe_oracle_top_level_context.d.ts","sourceRoot":"","sources":["../../src/oracle/txe_oracle_top_level_context.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { Schnorr } from '@aztec/foundation/crypto/schnorr';
4
4
  import { Fr } from '@aztec/foundation/curves/bn254';
5
5
  import { LogLevels, applyStringFormatting, createLogger } from '@aztec/foundation/log';
6
6
  import { TestDateProvider } from '@aztec/foundation/timer';
7
- import { CapsuleService, FactService, ORACLE_VERSION_MAJOR, composeHooks, enrichPublicSimulationError } from '@aztec/pxe/server';
7
+ import { AnchoredContractData, CapsuleService, FactService, ORACLE_VERSION_MAJOR, composeHooks, enrichPublicSimulationError } from '@aztec/pxe/server';
8
8
  import { CONTRACT_INSTANCE, ExecutionNoteCache, ExecutionTaggingIndexCache, HashedValuesCache, PrivateExecutionOracle, TransientArrayService, UtilityExecutionOracle, buildACIRCallback, executePrivateFunction, generateSimulatedProvingResult } from '@aztec/pxe/simulator';
9
9
  import { ExecutionError, WASMSimulator, createSimulationError, extractCallStack, resolveAssertionMessageFromError, toACVMWitness, witnessMapToFields } from '@aztec/simulator/client';
10
10
  import { CppPublicTxSimulator, GuardedMerkleTreeOperations, PublicContractsDB, PublicProcessor } from '@aztec/simulator/server';
@@ -16,7 +16,8 @@ import { computePartialAddress } from '@aztec/stdlib/contract';
16
16
  import { Gas, GasFees } from '@aztec/stdlib/gas';
17
17
  import { computeCalldataHash, computeProtocolNullifier, siloNullifier } from '@aztec/stdlib/hash';
18
18
  import { PartialPrivateTailPublicInputsForPublic, PrivateKernelTailCircuitPublicInputs, PrivateToPublicAccumulatedData, PublicCallRequest } from '@aztec/stdlib/kernel';
19
- import { hashPublicKey } from '@aztec/stdlib/keys';
19
+ import { deriveKeys, hashPublicKey } from '@aztec/stdlib/keys';
20
+ import { AppTaggingSecretKind } from '@aztec/stdlib/logs';
20
21
  import { L1Actor, L1ToL2Message, L2Actor } from '@aztec/stdlib/messaging';
21
22
  import { ChonkProof } from '@aztec/stdlib/proofs';
22
23
  import { makeGlobalVariables } from '@aztec/stdlib/testing';
@@ -26,6 +27,7 @@ import { ForkCheckpoint } from '@aztec/world-state/native';
26
27
  import { DEFAULT_ADDRESS, MAX_PRIVATE_EVENTS_PER_TXE_QUERY, MAX_PRIVATE_EVENT_LEN } from '../constants.js';
27
28
  import { getSingleTxBlockRequestHash, insertTxEffectIntoWorldTrees, makeTXEBlock } from '../utils/block_creation.js';
28
29
  import { TXEPublicContractDataSource } from '../utils/txe_public_contract_data_source.js';
30
+ import { makeResolveTaggingSecretStrategyHook } from './tagging_secret_strategy.js';
29
31
  export class TXEOracleTopLevelContext {
30
32
  stateMachine;
31
33
  contractStore;
@@ -43,14 +45,15 @@ export class TXEOracleTopLevelContext {
43
45
  version;
44
46
  chainId;
45
47
  authwits;
46
- taggingSecretStrategy;
48
+ taggingSecretStrategies;
49
+ authorizeAllUtilityCallTargets;
47
50
  artifactResolver;
48
51
  rootPath;
49
52
  packageName;
50
53
  isMisc;
51
54
  isTxe;
52
55
  logger;
53
- constructor(stateMachine, contractStore, noteStore, keyStore, addressStore, accountStore, senderTaggingStore, recipientTaggingStore, taggingSecretSourcesStore, capsuleStore, factStore, privateEventStore, nextBlockTimestamp, version, chainId, authwits, taggingSecretStrategy, artifactResolver, rootPath, packageName){
56
+ constructor(stateMachine, contractStore, noteStore, keyStore, addressStore, accountStore, senderTaggingStore, recipientTaggingStore, taggingSecretSourcesStore, capsuleStore, factStore, privateEventStore, nextBlockTimestamp, version, chainId, authwits, taggingSecretStrategies, authorizeAllUtilityCallTargets, artifactResolver, rootPath, packageName){
54
57
  this.stateMachine = stateMachine;
55
58
  this.contractStore = contractStore;
56
59
  this.noteStore = noteStore;
@@ -67,7 +70,8 @@ export class TXEOracleTopLevelContext {
67
70
  this.version = version;
68
71
  this.chainId = chainId;
69
72
  this.authwits = authwits;
70
- this.taggingSecretStrategy = taggingSecretStrategy;
73
+ this.taggingSecretStrategies = taggingSecretStrategies;
74
+ this.authorizeAllUtilityCallTargets = authorizeAllUtilityCallTargets;
71
75
  this.artifactResolver = artifactResolver;
72
76
  this.rootPath = rootPath;
73
77
  this.packageName = packageName;
@@ -227,7 +231,7 @@ export class TXEOracleTopLevelContext {
227
231
  this.logger.debug(`Deployed ${artifact.name} at ${instance.address}`);
228
232
  await this.contractStore.addContractInstance(instance);
229
233
  await this.contractStore.addContractArtifact(artifact);
230
- const completeAddress = await this.keyStore.addAccount(secret, partialAddress);
234
+ const completeAddress = await this.keyStore.addAccount(await deriveKeys(secret), partialAddress);
231
235
  await this.accountStore.setAccount(completeAddress.address, completeAddress);
232
236
  await this.addressStore.addCompleteAddress(completeAddress);
233
237
  this.logger.debug(`Created account ${completeAddress.address}`);
@@ -235,7 +239,7 @@ export class TXEOracleTopLevelContext {
235
239
  }
236
240
  async createAccount(secret) {
237
241
  // This is a foot gun !
238
- const completeAddress = await this.keyStore.addAccount(secret, secret);
242
+ const completeAddress = await this.keyStore.addAccount(await deriveKeys(secret), secret);
239
243
  await this.accountStore.setAccount(completeAddress.address, completeAddress);
240
244
  await this.addressStore.addCompleteAddress(completeAddress);
241
245
  this.logger.debug(`Created account ${completeAddress.address}`);
@@ -250,8 +254,19 @@ export class TXEOracleTopLevelContext {
250
254
  const authWitness = new AuthWitness(messageHash, signature.toLimbFields());
251
255
  this.authwits.set(authWitness.requestHash.toString(), authWitness);
252
256
  }
253
- setTaggingSecretStrategy(strategy) {
254
- this.taggingSecretStrategy = strategy.value;
257
+ setTaggingSecretStrategies(unconstrainedStrategy, constrainedStrategy) {
258
+ const apply = (mode, strategy)=>{
259
+ if (strategy.isSome()) {
260
+ this.taggingSecretStrategies.set(mode, strategy.value);
261
+ } else {
262
+ this.taggingSecretStrategies.delete(mode);
263
+ }
264
+ };
265
+ apply(AppTaggingSecretKind.UNCONSTRAINED, unconstrainedStrategy);
266
+ apply(AppTaggingSecretKind.CONSTRAINED, constrainedStrategy);
267
+ }
268
+ setAuthorizeAllUtilityCallTargets(authorizeAll) {
269
+ this.authorizeAllUtilityCallTargets = authorizeAll;
255
270
  }
256
271
  async sendL1ToL2Message(content, secretHash, sender, recipient) {
257
272
  // Messages are appended to the tree, so the next free slot is simply the current tree size.
@@ -289,8 +304,10 @@ export class TXEOracleTopLevelContext {
289
304
  await this.stateMachine.handleL2Block(block, options.l1ToL2Messages ?? []);
290
305
  }
291
306
  async privateCallNewFlow(from, targetContractAddress = AztecAddress.zero(), functionSelector = FunctionSelector.empty(), args, argsHash = Fr.zero(), isStaticCall = false, additionalScopes = [], jobId, authorizedUtilityCallTargets, gasSettings) {
292
- this.logger.verbose(`Executing external function ${await this.contractStore.getDebugFunctionName(targetContractAddress, functionSelector)}@${targetContractAddress} isStaticCall=${isStaticCall}`);
293
- const artifact = await this.contractStore.getFunctionArtifact(targetContractAddress, functionSelector);
307
+ const blockHeader = await this.stateMachine.anchorBlockStore.getBlockHeader();
308
+ const anchoredContractData = new AnchoredContractData(this.contractStore, this.stateMachine.contractClassService, blockHeader);
309
+ this.logger.verbose(`Executing external function ${await anchoredContractData.getDebugFunctionName(targetContractAddress, functionSelector)}@${targetContractAddress} isStaticCall=${isStaticCall}`);
310
+ const artifact = await anchoredContractData.getFunctionArtifact(targetContractAddress, functionSelector);
294
311
  if (!artifact) {
295
312
  const message = functionSelector.equals(await FunctionSelector.fromSignature('verify_private_authwit(Field)')) ? 'Found no account contract artifact for a private authwit check - use `create_contract_account` instead of `create_light_account` for authwit support.' : 'Function Artifact does not exist';
296
313
  throw new Error(message);
@@ -306,7 +323,6 @@ export class TXEOracleTopLevelContext {
306
323
  jobId
307
324
  });
308
325
  };
309
- const blockHeader = await this.stateMachine.anchorBlockStore.getBlockHeader();
310
326
  await this.stateMachine.contractSyncService.ensureContractSynced(targetContractAddress, functionSelector, utilityExecutor, blockHeader, jobId, scopes);
311
327
  const blockNumber = await this.getNextBlockNumber();
312
328
  const msgSender = from ?? AztecAddress.NULL_MSG_SENDER;
@@ -322,10 +338,11 @@ export class TXEOracleTopLevelContext {
322
338
  const taggingIndexCache = new ExecutionTaggingIndexCache();
323
339
  const simulator = new WASMSimulator();
324
340
  const transientArrayService = new TransientArrayService();
325
- const taggingSecretStrategy = this.taggingSecretStrategy;
326
341
  const privateExecutionOracle = new PrivateExecutionOracle({
327
342
  argsHash,
328
343
  txContext,
344
+ // The TXE does not run the init kernel's salt binding, so no tx-request salt is in scope.
345
+ txRequestSalt: Fr.ZERO,
329
346
  callContext,
330
347
  anchorBlockHeader: blockHeader,
331
348
  utilityExecutor,
@@ -336,7 +353,7 @@ export class TXEOracleTopLevelContext {
336
353
  ]),
337
354
  noteCache,
338
355
  taggingIndexCache,
339
- contractStore: this.contractStore,
356
+ anchoredContractData,
340
357
  noteStore: this.noteStore,
341
358
  keyStore: this.keyStore,
342
359
  addressStore: this.addressStore,
@@ -360,9 +377,7 @@ export class TXEOracleTopLevelContext {
360
377
  l2TipsStore: this.stateMachine.l2TipsProvider,
361
378
  hooks: composeHooks({
362
379
  authorizeUtilityCall: this.buildAuthorizeUtilityCallHook(isStaticCall ? 'private view' : 'private', authorizedUtilityCallTargets),
363
- // Only configure the hook when a strategy was explicitly set, so that otherwise the default tagging secret
364
- // strategy is exercised.
365
- resolveTaggingSecretStrategy: taggingSecretStrategy ? ()=>Promise.resolve(taggingSecretStrategy) : undefined
380
+ resolveTaggingSecretStrategy: makeResolveTaggingSecretStrategyHook(this.taggingSecretStrategies)
366
381
  }),
367
382
  transientArrayService
368
383
  });
@@ -380,7 +395,6 @@ export class TXEOracleTopLevelContext {
380
395
  const calldata = await privateExecutionOracle.getHashPreimage(r.calldataHash);
381
396
  return new HashedValues(calldata, r.calldataHash);
382
397
  }));
383
- noteCache.finish();
384
398
  const nonceGenerator = noteCache.getNonceGenerator();
385
399
  result = new PrivateExecutionResult(executionResult, nonceGenerator, publicFunctionsCalldata);
386
400
  } catch (err) {
@@ -389,7 +403,7 @@ export class TXEOracleTopLevelContext {
389
403
  // According to the protocol rules, there must be at least one nullifier in the tx. The first nullifier is used as
390
404
  // the nonce generator for the note hashes.
391
405
  // We pass the non-zero minRevertibleSideEffectCounter to make sure the side effects are split correctly.
392
- const { publicInputs } = await generateSimulatedProvingResult(result, (addr, sel)=>this.contractStore.getDebugFunctionName(addr, sel), this.stateMachine.node, minRevertibleSideEffectCounter);
406
+ const { publicInputs } = await generateSimulatedProvingResult(result, (addr, sel)=>anchoredContractData.getDebugFunctionName(addr, sel), this.stateMachine.node, minRevertibleSideEffectCounter);
393
407
  const globals = makeGlobalVariables();
394
408
  globals.blockNumber = blockNumber;
395
409
  globals.timestamp = this.nextBlockTimestamp;
@@ -428,7 +442,7 @@ export class TXEOracleTopLevelContext {
428
442
  } else if (!processedTx.revertCode.isOK()) {
429
443
  if (processedTx.revertReason) {
430
444
  try {
431
- await enrichPublicSimulationError(processedTx.revertReason, this.contractStore, this.logger);
445
+ await enrichPublicSimulationError(processedTx.revertReason, this.contractStore, this.stateMachine.contractClassService, await this.stateMachine.anchorBlockStore.getBlockHeader(), this.logger);
432
446
  // eslint-disable-next-line no-empty
433
447
  } catch {}
434
448
  throw new Error(`Contract execution has reverted: ${processedTx.revertReason.getMessage()}`);
@@ -471,10 +485,11 @@ export class TXEOracleTopLevelContext {
471
485
  };
472
486
  }
473
487
  async publicCallNewFlow(from, targetContractAddress, calldata, isStaticCall, gasSettings) {
474
- this.logger.verbose(`Executing public function ${await this.contractStore.getDebugFunctionName(targetContractAddress, FunctionSelector.fromField(calldata[0]))}@${targetContractAddress} isStaticCall=${isStaticCall}`);
488
+ const anchorBlockHeader = await this.stateMachine.anchorBlockStore.getBlockHeader();
489
+ const anchoredContractData = new AnchoredContractData(this.contractStore, this.stateMachine.contractClassService, anchorBlockHeader);
490
+ this.logger.verbose(`Executing public function ${await anchoredContractData.getDebugFunctionName(targetContractAddress, FunctionSelector.fromField(calldata[0]))}@${targetContractAddress} isStaticCall=${isStaticCall}`);
475
491
  const blockNumber = await this.getNextBlockNumber();
476
492
  const txContext = new TxContext(this.chainId, this.version, gasSettings);
477
- const anchorBlockHeader = await this.stateMachine.anchorBlockStore.getBlockHeader();
478
493
  const calldataHash = await computeCalldataHash(calldata);
479
494
  const calldataHashedValues = new HashedValues(calldata, calldataHash);
480
495
  const globals = makeGlobalVariables();
@@ -531,7 +546,7 @@ export class TXEOracleTopLevelContext {
531
546
  } else if (!processedTx.revertCode.isOK()) {
532
547
  if (processedTx.revertReason) {
533
548
  try {
534
- await enrichPublicSimulationError(processedTx.revertReason, this.contractStore, this.logger);
549
+ await enrichPublicSimulationError(processedTx.revertReason, this.contractStore, this.stateMachine.contractClassService, anchorBlockHeader, this.logger);
535
550
  // eslint-disable-next-line no-empty
536
551
  } catch {}
537
552
  throw new Error(`Contract execution has reverted: ${processedTx.revertReason.getMessage()}`);
@@ -562,12 +577,13 @@ export class TXEOracleTopLevelContext {
562
577
  return returnValues ?? [];
563
578
  }
564
579
  async executeUtilityFunction(from, targetContractAddress, functionSelector, args, jobId, authorizedUtilityCallTargets) {
565
- const artifact = await this.contractStore.getFunctionArtifact(targetContractAddress, functionSelector);
580
+ const blockHeader = await this.stateMachine.anchorBlockStore.getBlockHeader();
581
+ const anchoredContractData = new AnchoredContractData(this.contractStore, this.stateMachine.contractClassService, blockHeader);
582
+ const artifact = await anchoredContractData.getFunctionArtifact(targetContractAddress, functionSelector);
566
583
  if (!artifact) {
567
584
  throw new Error(`Cannot call ${functionSelector} as there is no artifact found at ${targetContractAddress}.`);
568
585
  }
569
586
  // Sync notes before executing utility function to discover notes from previous transactions
570
- const blockHeader = await this.stateMachine.anchorBlockStore.getBlockHeader();
571
587
  await this.stateMachine.contractSyncService.ensureContractSynced(targetContractAddress, functionSelector, async (call, execScopes)=>{
572
588
  await this.executeUtilityCall(call, {
573
589
  scopes: execScopes,
@@ -592,7 +608,12 @@ export class TXEOracleTopLevelContext {
592
608
  });
593
609
  }
594
610
  async executeUtilityCall(call, { from = AztecAddress.NULL_MSG_SENDER, scopes, jobId, authorizedUtilityCallTargets = [] }) {
595
- const entryPointArtifact = await this.contractStore.getFunctionArtifactWithDebugMetadata(call.to, call.selector);
611
+ const anchorBlockHeader = await this.stateMachine.anchorBlockStore.getBlockHeader();
612
+ const anchoredContractData = new AnchoredContractData(this.contractStore, this.stateMachine.contractClassService, anchorBlockHeader);
613
+ const entryPointArtifact = await anchoredContractData.getFunctionArtifactWithDebugMetadata(call.to, call.selector);
614
+ if (!entryPointArtifact) {
615
+ throw new Error(`Cannot run function ${call.selector} on ${call.to}: the contract is not registered.`);
616
+ }
596
617
  if (entryPointArtifact.functionType !== FunctionType.UTILITY) {
597
618
  throw new Error(`Cannot run ${entryPointArtifact.functionType} function as utility`);
598
619
  }
@@ -601,12 +622,12 @@ export class TXEOracleTopLevelContext {
601
622
  selector: call.selector
602
623
  });
603
624
  try {
604
- const anchorBlockHeader = await this.stateMachine.anchorBlockStore.getBlockHeader();
605
625
  const simulator = new WASMSimulator();
606
626
  const utilityExecutor = async (syncCall, execScopes)=>{
607
627
  await this.executeUtilityCall(syncCall, {
608
628
  scopes: execScopes,
609
- jobId
629
+ jobId,
630
+ authorizedUtilityCallTargets
610
631
  });
611
632
  };
612
633
  const oracle = new UtilityExecutionOracle({
@@ -619,7 +640,7 @@ export class TXEOracleTopLevelContext {
619
640
  authWitnesses: [],
620
641
  capsules: [],
621
642
  anchorBlockHeader,
622
- contractStore: this.contractStore,
643
+ anchoredContractData,
623
644
  noteStore: this.noteStore,
624
645
  keyStore: this.keyStore,
625
646
  addressStore: this.addressStore,
@@ -635,10 +656,10 @@ export class TXEOracleTopLevelContext {
635
656
  jobId,
636
657
  scopes,
637
658
  simulator,
659
+ utilityExecutor,
638
660
  hooks: composeHooks({
639
661
  authorizeUtilityCall: this.buildAuthorizeUtilityCallHook('utility', authorizedUtilityCallTargets)
640
662
  }),
641
- utilityExecutor,
642
663
  // Execution-tree root (top-level utility run or contract sync): own store; nested frames inherit it.
643
664
  transientArrayService: new TransientArrayService()
644
665
  });
@@ -659,17 +680,21 @@ export class TXEOracleTopLevelContext {
659
680
  }
660
681
  close() {
661
682
  this.logger.debug('Exiting Top Level Context');
662
- return [
663
- this.nextBlockTimestamp,
664
- this.authwits,
665
- this.taggingSecretStrategy
666
- ];
683
+ return {
684
+ nextBlockTimestamp: this.nextBlockTimestamp,
685
+ authwits: this.authwits,
686
+ taggingSecretStrategies: this.taggingSecretStrategies,
687
+ authorizeAllUtilityCallTargets: this.authorizeAllUtilityCallTargets
688
+ };
667
689
  }
668
690
  async getLastBlockNumber() {
669
691
  const block = await this.stateMachine.node.getBlock('latest');
670
692
  return block ? block.header.globalVariables.blockNumber : BlockNumber.ZERO;
671
693
  }
672
694
  buildAuthorizeUtilityCallHook(callerContext, authorizedTargets) {
695
+ if (this.authorizeAllUtilityCallTargets) {
696
+ return authorizeAllUtilityCallsHook;
697
+ }
673
698
  if (authorizedTargets.length === 0) {
674
699
  return undefined;
675
700
  }
@@ -678,3 +703,10 @@ export class TXEOracleTopLevelContext {
678
703
  });
679
704
  }
680
705
  }
706
+ /**
707
+ * An `authorizeUtilityCall` hook that authorizes every cross-contract utility call.
708
+ *
709
+ * Backs the `aztec_txe_setAuthorizeAllUtilityCallTargets` oracle.
710
+ */ export const authorizeAllUtilityCallsHook = ()=>Promise.resolve({
711
+ authorized: true
712
+ });
@@ -5,13 +5,13 @@
5
5
  *
6
6
  * The Noir counterparts are in `noir-projects/aztec-nr/aztec/src/test/helpers/txe_oracles.nr`.
7
7
  */
8
- export declare const TXE_ORACLE_VERSION_MAJOR = 2;
9
- export declare const TXE_ORACLE_VERSION_MINOR = 2;
8
+ export declare const TXE_ORACLE_VERSION_MAJOR = 3;
9
+ export declare const TXE_ORACLE_VERSION_MINOR = 1;
10
10
  /**
11
11
  * This hash is computed from the TXE oracle interfaces (IAvmExecutionOracle and ITxeExecutionOracle) and is used to
12
12
  * detect when those interfaces change. When it does, bump:
13
13
  * - TXE_ORACLE_VERSION_MAJOR (and reset MINOR to 0) for breaking changes, or
14
14
  * - TXE_ORACLE_VERSION_MINOR for additive changes (new oracle method added).
15
15
  */
16
- export declare const TXE_ORACLE_INTERFACE_HASH = "118698345ea9d368ca82ea574a051e72f4df0b85454539ade14838a934976b62";
16
+ export declare const TXE_ORACLE_INTERFACE_HASH = "89c60f191f8f60ef72d592e46dd6c4afff10dc47a9e14f4f8d37e31e40857d9c";
17
17
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhlX29yYWNsZV92ZXJzaW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb3JhY2xlL3R4ZV9vcmFjbGVfdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxlQUFPLE1BQU0sd0JBQXdCLElBQUksQ0FBQztBQUMxQyxlQUFPLE1BQU0sd0JBQXdCLElBQUksQ0FBQztBQUUxQzs7Ozs7R0FLRztBQUNILGVBQU8sTUFBTSx5QkFBeUIscUVBQXFFLENBQUMifQ==
@@ -4,11 +4,11 @@
4
4
  * oracles used during contract execution by PXE.
5
5
  *
6
6
  * The Noir counterparts are in `noir-projects/aztec-nr/aztec/src/test/helpers/txe_oracles.nr`.
7
- */ export const TXE_ORACLE_VERSION_MAJOR = 2;
8
- export const TXE_ORACLE_VERSION_MINOR = 2;
7
+ */ export const TXE_ORACLE_VERSION_MAJOR = 3;
8
+ export const TXE_ORACLE_VERSION_MINOR = 1;
9
9
  /**
10
10
  * This hash is computed from the TXE oracle interfaces (IAvmExecutionOracle and ITxeExecutionOracle) and is used to
11
11
  * detect when those interfaces change. When it does, bump:
12
12
  * - TXE_ORACLE_VERSION_MAJOR (and reset MINOR to 0) for breaking changes, or
13
13
  * - TXE_ORACLE_VERSION_MINOR for additive changes (new oracle method added).
14
- */ export const TXE_ORACLE_INTERFACE_HASH = '118698345ea9d368ca82ea574a051e72f4df0b85454539ade14838a934976b62';
14
+ */ export const TXE_ORACLE_INTERFACE_HASH = '89c60f191f8f60ef72d592e46dd6c4afff10dc47a9e14f4f8d37e31e40857d9c';