@aztec/txe 0.0.1-commit.993d240 → 0.0.1-commit.9a89641

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 (144) hide show
  1. package/dest/AuthRegistry-QVGDDH5X.js +3 -0
  2. package/dest/AuthRegistry-QVGDDH5X.js.map +7 -0
  3. package/dest/ContractClassRegistry-PVNCKGG7.js +3 -0
  4. package/dest/ContractClassRegistry-PVNCKGG7.js.map +7 -0
  5. package/dest/ContractInstanceRegistry-WLOZKTR6.js +3 -0
  6. package/dest/ContractInstanceRegistry-WLOZKTR6.js.map +7 -0
  7. package/dest/FeeJuice-MAQJU53K.js +3 -0
  8. package/dest/FeeJuice-MAQJU53K.js.map +7 -0
  9. package/dest/HandshakeRegistry-GY5CPEPS.js +3 -0
  10. package/dest/HandshakeRegistry-GY5CPEPS.js.map +7 -0
  11. package/dest/MultiCallEntrypoint-QG5H33ZZ.js +3 -0
  12. package/dest/MultiCallEntrypoint-QG5H33ZZ.js.map +7 -0
  13. package/dest/SchnorrAccount-ADD65DYA.js +3 -0
  14. package/dest/SchnorrAccount-ADD65DYA.js.map +7 -0
  15. package/dest/SchnorrInitializerlessAccount-TWGKRUSY.js +3 -0
  16. package/dest/SchnorrInitializerlessAccount-TWGKRUSY.js.map +7 -0
  17. package/dest/bin/check_txe_oracle_version.js +9 -19
  18. package/dest/bin/index.js +1 -1
  19. package/dest/bin/oracle_test_server.d.ts +3 -0
  20. package/dest/bin/oracle_test_server.d.ts.map +1 -0
  21. package/dest/bin/oracle_test_server.js +41 -0
  22. package/dest/chunk-32UHX7YY.js +3 -0
  23. package/dest/{chunk-DF6RMOC6.js → chunk-RVEPNDEP.js} +2 -2
  24. package/dest/{chunk-DF6RMOC6.js.map → chunk-RVEPNDEP.js.map} +3 -3
  25. package/dest/chunk-XWIMXLKD.js +258 -0
  26. package/dest/chunk-XWIMXLKD.js.map +7 -0
  27. package/dest/constants.d.ts +3 -1
  28. package/dest/constants.d.ts.map +1 -1
  29. package/dest/constants.js +5 -2
  30. package/dest/dispatcher_pool.d.ts +2 -2
  31. package/dest/dispatcher_pool.d.ts.map +1 -1
  32. package/dest/dispatcher_pool.js +5 -3
  33. package/dest/index.d.ts +6 -143
  34. package/dest/index.d.ts.map +1 -1
  35. package/dest/index.js +12 -169
  36. package/dest/metafile.json +10267 -9581
  37. package/dest/oracle/interfaces.d.ts +38 -11
  38. package/dest/oracle/interfaces.d.ts.map +1 -1
  39. package/dest/oracle/tagging_secret_strategy.d.ts +12 -0
  40. package/dest/oracle/tagging_secret_strategy.d.ts.map +1 -0
  41. package/dest/oracle/tagging_secret_strategy.js +12 -0
  42. package/dest/oracle/test-resolver/default_fixtures.d.ts +16 -0
  43. package/dest/oracle/test-resolver/default_fixtures.d.ts.map +1 -0
  44. package/dest/oracle/test-resolver/default_fixtures.js +200 -0
  45. package/dest/oracle/test-resolver/index.d.ts +9 -0
  46. package/dest/oracle/test-resolver/index.d.ts.map +1 -0
  47. package/dest/oracle/test-resolver/index.js +32 -0
  48. package/dest/oracle/test-resolver/resolver.d.ts +48 -0
  49. package/dest/oracle/test-resolver/resolver.d.ts.map +1 -0
  50. package/dest/oracle/test-resolver/resolver.js +181 -0
  51. package/dest/oracle/txe_oracle_public_context.d.ts +25 -6
  52. package/dest/oracle/txe_oracle_public_context.d.ts.map +1 -1
  53. package/dest/oracle/txe_oracle_public_context.js +34 -1
  54. package/dest/oracle/txe_oracle_registry.d.ts +172 -0
  55. package/dest/oracle/txe_oracle_registry.d.ts.map +1 -0
  56. package/dest/oracle/txe_oracle_registry.js +767 -0
  57. package/dest/oracle/txe_oracle_top_level_context.d.ts +39 -14
  58. package/dest/oracle/txe_oracle_top_level_context.d.ts.map +1 -1
  59. package/dest/oracle/txe_oracle_top_level_context.js +489 -289
  60. package/dest/{txe_oracle_version.d.ts → oracle/txe_oracle_version.d.ts} +5 -5
  61. package/dest/oracle/txe_oracle_version.d.ts.map +1 -0
  62. package/dest/{txe_oracle_version.js → oracle/txe_oracle_version.js} +4 -4
  63. package/dest/rpc_translator.d.ts +116 -284
  64. package/dest/rpc_translator.d.ts.map +1 -1
  65. package/dest/rpc_translator.js +809 -860
  66. package/dest/server.bundle.js +1 -1
  67. package/dest/state_machine/archiver.d.ts +3 -2
  68. package/dest/state_machine/archiver.d.ts.map +1 -1
  69. package/dest/state_machine/archiver.js +9 -3
  70. package/dest/state_machine/dummy_p2p_client.d.ts +5 -2
  71. package/dest/state_machine/dummy_p2p_client.d.ts.map +1 -1
  72. package/dest/state_machine/dummy_p2p_client.js +9 -0
  73. package/dest/state_machine/global_variable_builder.d.ts +3 -4
  74. package/dest/state_machine/global_variable_builder.d.ts.map +1 -1
  75. package/dest/state_machine/global_variable_builder.js +0 -3
  76. package/dest/state_machine/index.d.ts +8 -6
  77. package/dest/state_machine/index.d.ts.map +1 -1
  78. package/dest/state_machine/index.js +41 -19
  79. package/dest/state_machine/mock_epoch_cache.d.ts +2 -3
  80. package/dest/state_machine/mock_epoch_cache.d.ts.map +1 -1
  81. package/dest/state_machine/mock_epoch_cache.js +3 -6
  82. package/dest/state_machine/synchronizer.d.ts +10 -2
  83. package/dest/state_machine/synchronizer.d.ts.map +1 -1
  84. package/dest/state_machine/synchronizer.js +18 -5
  85. package/dest/txe_session.d.ts +43 -28
  86. package/dest/txe_session.d.ts.map +1 -1
  87. package/dest/txe_session.js +183 -47
  88. package/dest/utils/block_creation.d.ts +2 -2
  89. package/dest/utils/block_creation.d.ts.map +1 -1
  90. package/dest/utils/block_creation.js +2 -2
  91. package/dest/utils/encoding.d.ts +8 -5
  92. package/dest/utils/encoding.d.ts.map +1 -1
  93. package/dest/utils/tx_effect_creation.d.ts +1 -1
  94. package/dest/utils/tx_effect_creation.d.ts.map +1 -1
  95. package/dest/utils/tx_effect_creation.js +0 -1
  96. package/dest/utils/txe_artifact_resolver.d.ts +37 -0
  97. package/dest/utils/txe_artifact_resolver.d.ts.map +1 -0
  98. package/dest/utils/txe_artifact_resolver.js +161 -0
  99. package/dest/utils/txe_public_contract_data_source.d.ts +1 -1
  100. package/dest/utils/txe_public_contract_data_source.d.ts.map +1 -1
  101. package/dest/utils/txe_public_contract_data_source.js +7 -4
  102. package/dest/worker.bundle.js +1 -1
  103. package/package.json +18 -17
  104. package/src/bin/check_txe_oracle_version.ts +11 -17
  105. package/src/bin/oracle_test_server.ts +51 -0
  106. package/src/constants.ts +6 -2
  107. package/src/dispatcher_pool.ts +4 -3
  108. package/src/index.ts +21 -198
  109. package/src/oracle/interfaces.ts +35 -9
  110. package/src/oracle/tagging_secret_strategy.ts +25 -0
  111. package/src/oracle/test-resolver/default_fixtures.ts +271 -0
  112. package/src/oracle/test-resolver/index.ts +44 -0
  113. package/src/oracle/test-resolver/resolver.ts +245 -0
  114. package/src/oracle/txe_oracle_public_context.ts +36 -4
  115. package/src/oracle/txe_oracle_registry.ts +556 -0
  116. package/src/oracle/txe_oracle_top_level_context.ts +249 -66
  117. package/src/{txe_oracle_version.ts → oracle/txe_oracle_version.ts} +4 -4
  118. package/src/rpc_translator.ts +850 -1065
  119. package/src/state_machine/archiver.ts +9 -3
  120. package/src/state_machine/dummy_p2p_client.ts +13 -0
  121. package/src/state_machine/global_variable_builder.ts +2 -16
  122. package/src/state_machine/index.ts +50 -34
  123. package/src/state_machine/mock_epoch_cache.ts +4 -8
  124. package/src/state_machine/synchronizer.ts +26 -5
  125. package/src/txe_session.ts +325 -56
  126. package/src/utils/block_creation.ts +2 -1
  127. package/src/utils/tx_effect_creation.ts +0 -2
  128. package/src/utils/txe_artifact_resolver.ts +217 -0
  129. package/src/utils/txe_public_contract_data_source.ts +6 -4
  130. package/dest/ContractClassRegistry-KKNT527R.js +0 -3
  131. package/dest/ContractClassRegistry-KKNT527R.js.map +0 -7
  132. package/dest/ContractInstanceRegistry-GSKBNL3Q.js +0 -3
  133. package/dest/ContractInstanceRegistry-GSKBNL3Q.js.map +0 -7
  134. package/dest/FeeJuice-GUJ5O6GB.js +0 -3
  135. package/dest/FeeJuice-GUJ5O6GB.js.map +0 -7
  136. package/dest/MultiCallEntrypoint-ZQPCKVKL.js +0 -3
  137. package/dest/MultiCallEntrypoint-ZQPCKVKL.js.map +0 -7
  138. package/dest/SchnorrAccount-QIXE5DXA.js +0 -3
  139. package/dest/SchnorrAccount-QIXE5DXA.js.map +0 -7
  140. package/dest/chunk-BJVAAXNA.js +0 -3
  141. package/dest/chunk-PPJTNNUG.js +0 -265
  142. package/dest/chunk-PPJTNNUG.js.map +0 -7
  143. package/dest/txe_oracle_version.d.ts.map +0 -1
  144. /package/dest/{chunk-BJVAAXNA.js.map → chunk-32UHX7YY.js.map} +0 -0
@@ -0,0 +1,181 @@
1
+ /* eslint-disable camelcase */ import { createLogger } from '@aztec/foundation/log';
2
+ import { withoutHexPrefix } from '@aztec/foundation/string';
3
+ import { BOUNDED_VEC, BoundedVec, Option, U8, makeEntry } from '@aztec/pxe/simulator';
4
+ import { toInputSlots } from '../txe_oracle_registry.js';
5
+ import { synthesizeDefaultFixtures } from './default_fixtures.js';
6
+ /** Name of the meta-oracle that Noir tests call to announce the next call's scenario by name. */ const SET_SCENARIO_ORACLE = 'aztec_oracle_test_set_scenario';
7
+ export const SET_SCENARIO_ENTRY = makeEntry({
8
+ params: [
9
+ {
10
+ name: 'name',
11
+ type: BOUNDED_VEC(U8)
12
+ }
13
+ ]
14
+ });
15
+ /**
16
+ * Oracle resolver for serialization tests. Selects a fixture scenario, verifies that the received inputs match, and
17
+ * returns the corresponding fixture output.
18
+ *
19
+ * For oracles with a single scenario, it is selected automatically. For oracles with multiple scenarios, the Noir test
20
+ * announces the scenario by name via the `aztec_oracle_test_set_scenario` meta-oracle before calling the real oracle.
21
+ */ export class OracleTestResolver {
22
+ registry;
23
+ fixtures;
24
+ calledOracles;
25
+ pendingScenario;
26
+ logger;
27
+ constructor(registry, fixtures, logger){
28
+ this.registry = registry;
29
+ this.fixtures = fixtures;
30
+ this.calledOracles = new Set();
31
+ this.pendingScenario = new Map();
32
+ this.logger = logger ?? createLogger('txe:test-resolver');
33
+ }
34
+ /**
35
+ * Builds a resolver whose fixtures are the default scenarios synthesized from the registry's type mappings. The
36
+ * matching Noir serialization tests are auto-generated by `#[generate_oracle_tests]` from the same convention.
37
+ */ static fromRegistry(registry, logger) {
38
+ return new OracleTestResolver(registry, synthesizeDefaultFixtures(registry), logger);
39
+ }
40
+ // eslint-disable-next-line require-await
41
+ async resolve_foreign_call(callData) {
42
+ const oracleName = callData.function;
43
+ this.logger.debug('Resolving oracle', {
44
+ oracleName
45
+ });
46
+ if (oracleName === SET_SCENARIO_ORACLE) {
47
+ return this.#handleSetScenario(callData);
48
+ }
49
+ if (!(oracleName in this.registry)) {
50
+ throw new Error(`Oracle '${oracleName}' not found in registry`);
51
+ }
52
+ const entry = this.registry[oracleName];
53
+ const scenarios = this.fixtures[oracleName];
54
+ if (!scenarios || scenarios.length === 0) {
55
+ throw new Error(`No fixture defined for oracle '${oracleName}'`);
56
+ }
57
+ const match = this.#selectScenario(callData.session_id, oracleName, scenarios);
58
+ this.#verifyInputs(callData.inputs, entry, match, oracleName);
59
+ this.calledOracles.add(oracleName);
60
+ this.logger.debug('Verified scenario for oracle', {
61
+ oracleName
62
+ });
63
+ const outputSlots = entry.serializeReturn(match.output);
64
+ return {
65
+ values: outputSlots.map((slot)=>Array.isArray(slot) ? slot.map(withoutHexPrefix) : withoutHexPrefix(slot))
66
+ };
67
+ }
68
+ /** Returns oracles that have a fixture defined but were never called during testing. */ getUncalledFixtures() {
69
+ return Object.keys(this.fixtures).filter((name)=>!this.calledOracles.has(name));
70
+ }
71
+ /** Returns oracles in the registry that have no fixture defined at all. */ getMissingFixtures() {
72
+ return Object.keys(this.registry).filter((name)=>!(name in this.fixtures));
73
+ }
74
+ /**
75
+ * Records the scenario name for the session's next oracle call. A test announces once per multi-scenario position
76
+ * (param or return), so successive announcements accumulate joined with `+`, matching the names the fixture
77
+ * synthesizer builds (e.g. `some+some`).
78
+ */ #handleSetScenario(callData) {
79
+ const name = decodeScenarioName(callData.inputs);
80
+ const existing = this.pendingScenario.get(callData.session_id);
81
+ const scenario = existing !== undefined ? `${existing}+${name}` : name;
82
+ this.logger.debug('Setting scenario for next oracle call', {
83
+ sessionId: callData.session_id,
84
+ scenario
85
+ });
86
+ this.pendingScenario.set(callData.session_id, scenario);
87
+ return {
88
+ values: []
89
+ };
90
+ }
91
+ /** Selects the fixture by the announced scenario name (for multi-scenario oracles) or returns the single fixture. */ #selectScenario(sessionId, oracleName, fixtures) {
92
+ const announced = this.pendingScenario.get(sessionId);
93
+ if (announced !== undefined) {
94
+ this.pendingScenario.delete(sessionId);
95
+ const match = fixtures.find((s)=>s.scenario === announced);
96
+ if (!match) {
97
+ const available = fixtures.map((s)=>s.scenario ?? '<default>').join(', ');
98
+ throw new Error(`No scenario '${announced}' for oracle '${oracleName}'. Available: ${available}`);
99
+ }
100
+ return match;
101
+ }
102
+ if (fixtures.length === 1) {
103
+ return fixtures[0];
104
+ }
105
+ throw new Error(`Oracle '${oracleName}' has ${fixtures.length} scenarios but none was announced before the call.`);
106
+ }
107
+ /** Deserializes actual inputs and verifies they match the scenario's expected inputs. */ #verifyInputs(rawInputs, entry, fixture, oracleName) {
108
+ const expectedInputs = fixture.inputs;
109
+ if (Object.keys(expectedInputs).length === 0) {
110
+ return;
111
+ }
112
+ const scenarioLabel = fixture.scenario ? ` (scenario '${fixture.scenario}')` : '';
113
+ const named = entry.deserializeParams(toInputSlots(rawInputs));
114
+ for (const param of named){
115
+ if (!(param.name in expectedInputs)) {
116
+ throw new Error(`Unexpected param '${param.name}' for oracle '${oracleName}'. ` + `Expected: ${Object.keys(expectedInputs).join(', ')}`);
117
+ }
118
+ if (!valuesEqual(param.value, expectedInputs[param.name])) {
119
+ throw new Error(`Input mismatch for oracle '${oracleName}'${scenarioLabel}: ` + `param '${param.name}' expected ${String(expectedInputs[param.name])} ` + `but got ${String(param.value)}. ${versionBumpHint(oracleName)}`);
120
+ }
121
+ }
122
+ }
123
+ }
124
+ /**
125
+ * Decodes the scenario name announced by `set_oracle_test_scenario`, whose argument is a `BoundedVec<u8, N>`
126
+ */ function decodeScenarioName(inputs) {
127
+ const [{ value }] = SET_SCENARIO_ENTRY.deserializeParams(toInputSlots(inputs));
128
+ return String.fromCharCode(...value.data);
129
+ }
130
+ function valuesEqual(actual, expected) {
131
+ if (!isNonNullObject(actual) || !isNonNullObject(expected)) {
132
+ // Primitive scalars; String() bridges bigint vs number representations of the same seed. A primitive compared
133
+ // against an object is never equal.
134
+ return isNonNullObject(actual) === isNonNullObject(expected) && String(actual) === String(expected);
135
+ }
136
+ if (actual instanceof Option && expected instanceof Option) {
137
+ return actual.equals(expected, valuesEqual);
138
+ }
139
+ if (actual instanceof BoundedVec && expected instanceof BoundedVec) {
140
+ return actual.equals(expected, valuesEqual);
141
+ }
142
+ if (Array.isArray(actual) && Array.isArray(expected)) {
143
+ return actual.length === expected.length && actual.every((v, i)=>valuesEqual(v, expected[i]));
144
+ }
145
+ if (isPlainObject(actual) && isPlainObject(expected)) {
146
+ const expectedKeys = Object.keys(expected);
147
+ return Object.keys(actual).length === expectedKeys.length && expectedKeys.every((key)=>valuesEqual(actual[key], expected[key]));
148
+ }
149
+ if (actual.constructor !== expected.constructor) {
150
+ return false;
151
+ }
152
+ if (hasEquals(actual)) {
153
+ return actual.equals(expected);
154
+ }
155
+ const actualStr = customStringForm(actual);
156
+ const expectedStr = customStringForm(expected);
157
+ if (actualStr !== undefined && expectedStr !== undefined) {
158
+ return actualStr === expectedStr;
159
+ }
160
+ // Comparing blindly here could pass vacuously (e.g. two '[object Object]' strings), so refuse instead.
161
+ throw new Error(`valuesEqual cannot compare a '${actual.constructor?.name}' against a '${expected.constructor?.name}'. Add a branch for the type.`);
162
+ }
163
+ function isNonNullObject(value) {
164
+ return typeof value === 'object' && value !== null;
165
+ }
166
+ function isPlainObject(value) {
167
+ return isNonNullObject(value) && value.constructor === Object;
168
+ }
169
+ function hasEquals(value) {
170
+ return typeof value.equals === 'function';
171
+ }
172
+ /** The value's string form when its class overrides `toString` (a meaningful representation), undefined otherwise. */ function customStringForm(value) {
173
+ const { toString } = value;
174
+ if (typeof toString !== 'function' || toString === Object.prototype.toString) {
175
+ return undefined;
176
+ }
177
+ return toString.call(value);
178
+ }
179
+ function versionBumpHint(oracle) {
180
+ return oracle.startsWith('aztec_txe_') || oracle.startsWith('aztec_avm_') ? 'If you changed this oracle, consider bumping the TXE oracle version in yarn-project/txe/src/oracle/txe_oracle_version.ts.' : 'If you changed this oracle, consider bumping the PXE oracle version in yarn-project/pxe/src/oracle_version.ts.';
181
+ }
@@ -1,5 +1,6 @@
1
1
  import { BlockNumber } from '@aztec/foundation/branded-types';
2
2
  import { Fr } from '@aztec/foundation/curves/bn254';
3
+ import type { ContractStore } from '@aztec/pxe/server';
3
4
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
4
5
  import type { L2Block } from '@aztec/stdlib/block';
5
6
  import { type MerkleTreeWriteOperations } from '@aztec/stdlib/trees';
@@ -10,12 +11,13 @@ export declare class TXEOraclePublicContext implements IAvmExecutionOracle {
10
11
  private forkedWorldTrees;
11
12
  private txRequestHash;
12
13
  private globalVariables;
14
+ private contractStore;
13
15
  isAvm: true;
14
16
  private logger;
15
17
  private transientUniqueNoteHashes;
16
18
  private transientSiloedNullifiers;
17
19
  private publicDataWrites;
18
- constructor(contractAddress: AztecAddress, forkedWorldTrees: MerkleTreeWriteOperations, txRequestHash: Fr, globalVariables: GlobalVariables);
20
+ constructor(contractAddress: AztecAddress, forkedWorldTrees: MerkleTreeWriteOperations, txRequestHash: Fr, globalVariables: GlobalVariables, contractStore: ContractStore);
19
21
  address(): Promise<AztecAddress>;
20
22
  sender(): Promise<AztecAddress>;
21
23
  blockNumber(): Promise<BlockNumber>;
@@ -28,12 +30,29 @@ export declare class TXEOraclePublicContext implements IAvmExecutionOracle {
28
30
  nullifierExists(siloedNullifier: Fr): Promise<boolean>;
29
31
  storageWrite(slot: Fr, value: Fr): Promise<void>;
30
32
  storageRead(slot: Fr, contractAddress: AztecAddress): Promise<Fr>;
31
- returndataSize(): Promise<Fr>;
33
+ getContractInstanceDeployer(address: AztecAddress): Promise<{
34
+ member: Fr;
35
+ exists: boolean;
36
+ }[]>;
37
+ getContractInstanceClassId(address: AztecAddress): Promise<{
38
+ member: Fr;
39
+ exists: boolean;
40
+ }[]>;
41
+ getContractInstanceInitializationHash(address: AztecAddress): Promise<{
42
+ member: Fr;
43
+ exists: boolean;
44
+ }[]>;
45
+ getContractInstanceImmutablesHash(address: AztecAddress): Promise<{
46
+ member: Fr;
47
+ exists: boolean;
48
+ }[]>;
49
+ private getContractInstanceMember;
50
+ returndataSize(): Promise<number>;
32
51
  returndataCopy(_rdOffset: number, _copySize: number): Promise<Fr[]>;
33
- call(_l2Gas: number, _daGas: number, _address: AztecAddress, _argsLength: number, _args: Fr[]): Promise<Fr[]>;
34
- staticCall(_l2Gas: number, _daGas: number, _address: AztecAddress, _argsLength: number, _args: Fr[]): Promise<Fr[]>;
35
- successCopy(): Promise<Fr>;
52
+ call(_l2Gas: number, _daGas: number, _address: AztecAddress, _argsLength: number, _args: Fr[]): Promise<void>;
53
+ staticCall(_l2Gas: number, _daGas: number, _address: AztecAddress, _argsLength: number, _args: Fr[]): Promise<void>;
54
+ successCopy(): Promise<boolean>;
36
55
  close(): Promise<L2Block>;
37
56
  private makeTxEffect;
38
57
  }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhlX29yYWNsZV9wdWJsaWNfY29udGV4dC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29yYWNsZS90eGVfb3JhY2xlX3B1YmxpY19jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRW5ELE9BQU8sRUFFTCxLQUFLLHlCQUF5QixFQUcvQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxlQUFlLEVBQW9CLE1BQU0sa0JBQWtCLENBQUM7QUFHckUsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUzRCxxQkFBYSxzQkFBdUIsWUFBVyxtQkFBbUI7SUFTOUQsT0FBTyxDQUFDLGVBQWU7SUFDdkIsT0FBTyxDQUFDLGdCQUFnQjtJQUN4QixPQUFPLENBQUMsYUFBYTtJQUNyQixPQUFPLENBQUMsZUFBZTtJQVh6QixLQUFLLE9BQWlCO0lBRXRCLE9BQU8sQ0FBQyxNQUFNLENBQVM7SUFDdkIsT0FBTyxDQUFDLHlCQUF5QixDQUFZO0lBQzdDLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBWTtJQUM3QyxPQUFPLENBQUMsZ0JBQWdCLENBQXlCO0lBRWpELFlBQ1UsZUFBZSxFQUFFLFlBQVksRUFDN0IsZ0JBQWdCLEVBQUUseUJBQXlCLEVBQzNDLGFBQWEsRUFBRSxFQUFFLEVBQ2pCLGVBQWUsRUFBRSxlQUFlLEVBU3pDO0lBRUQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FFL0I7SUFFRCxNQUFNLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUU5QjtJQUVELFdBQVcsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLENBRWxDO0lBRUQsU0FBUyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FFM0I7SUFFRCxZQUFZLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUUvQjtJQUVELE9BQU8sSUFBSSxPQUFPLENBQUMsRUFBRSxDQUFDLENBRXJCO0lBRUQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FFckI7SUFFSyxhQUFhLENBQUMsU0FBUyxFQUFFLEVBQUUsaUJBR2hDO0lBRUssWUFBWSxDQUFDLFFBQVEsRUFBRSxFQUFFLGlCQUk5QjtJQUVLLGVBQWUsQ0FBQyxlQUFlLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FPM0Q7SUFFSyxZQUFZLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxpQkFVckM7SUFFSyxXQUFXLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUUsWUFBWSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FxQnRFO0lBRUQsY0FBYyxJQUFJLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FJNUI7SUFFRCxjQUFjLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUlsRTtJQUVELElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FJNUc7SUFFRCxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBSWxIO0lBRUQsV0FBVyxJQUFJLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FJekI7SUFFSyxLQUFLLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQWtCOUI7SUFFRCxPQUFPLENBQUMsWUFBWTtDQWFyQiJ9
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhlX29yYWNsZV9wdWJsaWNfY29udGV4dC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29yYWNsZS90eGVfb3JhY2xlX3B1YmxpY19jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEQsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR25ELE9BQU8sRUFFTCxLQUFLLHlCQUF5QixFQUcvQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxlQUFlLEVBQW9CLE1BQU0sa0JBQWtCLENBQUM7QUFHckUsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUzRCxxQkFBYSxzQkFBdUIsWUFBVyxtQkFBbUI7SUFTOUQsT0FBTyxDQUFDLGVBQWU7SUFDdkIsT0FBTyxDQUFDLGdCQUFnQjtJQUN4QixPQUFPLENBQUMsYUFBYTtJQUNyQixPQUFPLENBQUMsZUFBZTtJQUN2QixPQUFPLENBQUMsYUFBYTtJQVp2QixLQUFLLE9BQWlCO0lBRXRCLE9BQU8sQ0FBQyxNQUFNLENBQVM7SUFDdkIsT0FBTyxDQUFDLHlCQUF5QixDQUFZO0lBQzdDLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBWTtJQUM3QyxPQUFPLENBQUMsZ0JBQWdCLENBQXlCO0lBRWpELFlBQ1UsZUFBZSxFQUFFLFlBQVksRUFDN0IsZ0JBQWdCLEVBQUUseUJBQXlCLEVBQzNDLGFBQWEsRUFBRSxFQUFFLEVBQ2pCLGVBQWUsRUFBRSxlQUFlLEVBQ2hDLGFBQWEsRUFBRSxhQUFh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
@@ -1 +1 @@
1
- {"version":3,"file":"txe_oracle_public_context.d.ts","sourceRoot":"","sources":["../../src/oracle/txe_oracle_public_context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAEL,KAAK,yBAAyB,EAG/B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAoB,MAAM,kBAAkB,CAAC;AAGrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,qBAAa,sBAAuB,YAAW,mBAAmB;IAS9D,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,eAAe;IAXzB,KAAK,OAAiB;IAEtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,yBAAyB,CAAY;IAC7C,OAAO,CAAC,yBAAyB,CAAY;IAC7C,OAAO,CAAC,gBAAgB,CAAyB;IAEjD,YACU,eAAe,EAAE,YAAY,EAC7B,gBAAgB,EAAE,yBAAyB,EAC3C,aAAa,EAAE,EAAE,EACjB,eAAe,EAAE,eAAe,EASzC;IAED,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC,CAE/B;IAED,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC,CAE9B;IAED,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,CAElC;IAED,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAE3B;IAED,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAE/B;IAED,OAAO,IAAI,OAAO,CAAC,EAAE,CAAC,CAErB;IAED,OAAO,IAAI,OAAO,CAAC,EAAE,CAAC,CAErB;IAEK,aAAa,CAAC,SAAS,EAAE,EAAE,iBAGhC;IAEK,YAAY,CAAC,QAAQ,EAAE,EAAE,iBAI9B;IAEK,eAAe,CAAC,eAAe,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAO3D;IAEK,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,iBAUrC;IAEK,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC,EAAE,CAAC,CAqBtE;IAED,cAAc,IAAI,OAAO,CAAC,EAAE,CAAC,CAI5B;IAED,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CAIlE;IAED,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CAI5G;IAED,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CAIlH;IAED,WAAW,IAAI,OAAO,CAAC,EAAE,CAAC,CAIzB;IAEK,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,CAkB9B;IAED,OAAO,CAAC,YAAY;CAarB"}
1
+ {"version":3,"file":"txe_oracle_public_context.d.ts","sourceRoot":"","sources":["../../src/oracle/txe_oracle_public_context.ts"],"names":[],"mappings":"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"}
@@ -11,16 +11,18 @@ export class TXEOraclePublicContext {
11
11
  forkedWorldTrees;
12
12
  txRequestHash;
13
13
  globalVariables;
14
+ contractStore;
14
15
  isAvm;
15
16
  logger;
16
17
  transientUniqueNoteHashes;
17
18
  transientSiloedNullifiers;
18
19
  publicDataWrites;
19
- constructor(contractAddress, forkedWorldTrees, txRequestHash, globalVariables){
20
+ constructor(contractAddress, forkedWorldTrees, txRequestHash, globalVariables, contractStore){
20
21
  this.contractAddress = contractAddress;
21
22
  this.forkedWorldTrees = forkedWorldTrees;
22
23
  this.txRequestHash = txRequestHash;
23
24
  this.globalVariables = globalVariables;
25
+ this.contractStore = contractStore;
24
26
  this.isAvm = true;
25
27
  this.transientUniqueNoteHashes = [];
26
28
  this.transientSiloedNullifiers = [];
@@ -91,6 +93,37 @@ export class TXEOraclePublicContext {
91
93
  });
92
94
  return value;
93
95
  }
96
+ getContractInstanceDeployer(address) {
97
+ return this.getContractInstanceMember(address, (i)=>i.deployer.toField());
98
+ }
99
+ getContractInstanceClassId(address) {
100
+ // TXE has no contract updates, so the current class always equals the original.
101
+ return this.getContractInstanceMember(address, (i)=>i.originalContractClassId);
102
+ }
103
+ getContractInstanceInitializationHash(address) {
104
+ return this.getContractInstanceMember(address, (i)=>i.initializationHash);
105
+ }
106
+ getContractInstanceImmutablesHash(address) {
107
+ return this.getContractInstanceMember(address, (i)=>i.immutablesHash);
108
+ }
109
+ // The one-element array mirrors the oracles' Noir return type, `[GetContractInstanceResult; 1]`.
110
+ async getContractInstanceMember(address, accessor) {
111
+ const instance = await this.contractStore.getContractInstance(address);
112
+ if (!instance) {
113
+ return [
114
+ {
115
+ member: Fr.ZERO,
116
+ exists: false
117
+ }
118
+ ];
119
+ }
120
+ return [
121
+ {
122
+ member: accessor(instance),
123
+ exists: true
124
+ }
125
+ ];
126
+ }
94
127
  returndataSize() {
95
128
  throw new Error('Contract calls are forbidden inside a `TestEnvironment::public_context`, use `public_call` instead');
96
129
  }
@@ -0,0 +1,172 @@
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
+ import type { TaggingSecretStrategy } from '@aztec/pxe/server';
3
+ import { type InputSlot, type MaybePromise, type OracleRegistryEntry, type ParamTypes, buildACIRCallback } from '@aztec/pxe/simulator';
4
+ import { EventSelector } from '@aztec/stdlib/abi';
5
+ import { CompleteAddress } from '@aztec/stdlib/contract';
6
+ import { GasSettings } from '@aztec/stdlib/gas';
7
+ import { PrivateContextInputs } from '@aztec/stdlib/kernel';
8
+ import type { PrivateLog } from '@aztec/stdlib/logs';
9
+ import type { TxHash } from '@aztec/stdlib/tx';
10
+ import type { ForeignCallArgs, ForeignCallResult } from '../utils/encoding.js';
11
+ export type { ContractClassLogData, EmbeddedCurvePoint, TxEffectData } from '@aztec/pxe/simulator';
12
+ export type { BlockHash } from '@aztec/stdlib/block';
13
+ export type { MembershipWitness } from '@aztec/foundation/trees';
14
+ export type { NullifierMembershipWitness, PublicDataWitness } from '@aztec/stdlib/trees';
15
+ export declare const TXE_ORACLE_REGISTRY: {
16
+ aztec_misc_assertCompatibleOracleVersion: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"major", number>, import("@aztec/pxe/simulator").NamedValue<"minor", number>], any>;
17
+ aztec_misc_getRandomField: OracleRegistryEntry<import("@aztec/pxe/simulator").NamedValue<string, any>[], Fr>;
18
+ aztec_misc_log: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"level", number>, import("@aztec/pxe/simulator").NamedValue<"message", string>, import("@aztec/pxe/simulator").NamedValue<"fieldsSize", number>, import("@aztec/pxe/simulator").NamedValue<"fields", Fr[]>], any>;
19
+ aztec_utl_getUtilityContext: OracleRegistryEntry<import("@aztec/pxe/simulator").NamedValue<string, any>[], import("@aztec/pxe/simulator").UtilityContext>;
20
+ aztec_utl_getKeyValidationRequest: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"pkMHash", Fr>, import("@aztec/pxe/simulator").NamedValue<"keyIndex", Fr>], import("@aztec/stdlib/kernel").KeyValidationRequest>;
21
+ aztec_utl_getContractInstance: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"address", import("@aztec/stdlib/aztec-address").AztecAddress>], import("@aztec/stdlib/contract").ContractInstancePreimage>;
22
+ aztec_utl_getNoteHashMembershipWitness: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"anchorBlockHash", import("@aztec/stdlib/block").BlockHash>, import("@aztec/pxe/simulator").NamedValue<"noteHash", Fr>], import("@aztec/foundation/trees").MembershipWitness<42>>;
23
+ aztec_utl_getBlockHashMembershipWitness: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"anchorBlockHash", import("@aztec/stdlib/block").BlockHash>, import("@aztec/pxe/simulator").NamedValue<"blockHash", import("@aztec/stdlib/block").BlockHash>], import("@aztec/pxe/simulator").Option<import("@aztec/foundation/trees").MembershipWitness<30>>>;
24
+ aztec_utl_areBlockHashesInArchive: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"anchorBlockHash", import("@aztec/stdlib/block").BlockHash>, import("@aztec/pxe/simulator").NamedValue<"blockHashes", import("@aztec/pxe/simulator").EphemeralArray<import("@aztec/stdlib/block").BlockHash>>], import("@aztec/pxe/simulator").EphemeralArray<boolean>>;
25
+ aztec_utl_getNullifierMembershipWitness: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"blockHash", import("@aztec/stdlib/block").BlockHash>, import("@aztec/pxe/simulator").NamedValue<"nullifier", Fr>], import("@aztec/stdlib/trees").NullifierMembershipWitness>;
26
+ aztec_utl_getLowNullifierMembershipWitness: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"blockHash", import("@aztec/stdlib/block").BlockHash>, import("@aztec/pxe/simulator").NamedValue<"nullifier", Fr>], import("@aztec/stdlib/trees").NullifierMembershipWitness>;
27
+ aztec_utl_getPublicDataWitness: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"blockHash", import("@aztec/stdlib/block").BlockHash>, import("@aztec/pxe/simulator").NamedValue<"leafSlot", Fr>], import("@aztec/stdlib/trees").PublicDataWitness>;
28
+ aztec_utl_getBlockHeader: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"blockNumber", import("@aztec/foundation/branded-types").BlockNumber>], import("@aztec/stdlib/tx").BlockHeader>;
29
+ aztec_utl_getAuthWitness: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"messageHash", Fr>], Fr[]>;
30
+ aztec_utl_getPublicKeysAndPartialAddress: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"address", import("@aztec/stdlib/aztec-address").AztecAddress>], import("@aztec/pxe/simulator").Option<{
31
+ publicKeys: import("@aztec/stdlib/keys").PublicKeys;
32
+ partialAddress: Fr;
33
+ }>>;
34
+ aztec_utl_doesNullifierExist: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"innerNullifier", Fr>], boolean>;
35
+ aztec_utl_getL1ToL2MembershipWitnessV2: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"messageHash", Fr>, import("@aztec/pxe/simulator").NamedValue<"nullifier", import("@aztec/pxe/simulator").Option<import("@aztec/stdlib/messaging").UnsiloedMessageNullifier>>], import("@aztec/pxe/simulator").MessageLoadOracleInputs<36>>;
36
+ aztec_utl_getFromPublicStorage: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"blockHash", import("@aztec/stdlib/block").BlockHash>, import("@aztec/pxe/simulator").NamedValue<"contractAddress", import("@aztec/stdlib/aztec-address").AztecAddress>, import("@aztec/pxe/simulator").NamedValue<"startStorageSlot", Fr>, import("@aztec/pxe/simulator").NamedValue<"numberOfElements", number>], Fr[]>;
37
+ aztec_utl_getNotes: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"owner", import("@aztec/pxe/simulator").Option<import("@aztec/stdlib/aztec-address").AztecAddress>>, import("@aztec/pxe/simulator").NamedValue<"storageSlot", Fr>, import("@aztec/pxe/simulator").NamedValue<"numSelects", number>, import("@aztec/pxe/simulator").NamedValue<"selectByIndexes", number[]>, import("@aztec/pxe/simulator").NamedValue<"selectByOffsets", number[]>, import("@aztec/pxe/simulator").NamedValue<"selectByLengths", number[]>, import("@aztec/pxe/simulator").NamedValue<"selectValues", Fr[]>, import("@aztec/pxe/simulator").NamedValue<"selectComparators", number[]>, import("@aztec/pxe/simulator").NamedValue<"sortByIndexes", number[]>, import("@aztec/pxe/simulator").NamedValue<"sortByOffsets", number[]>, import("@aztec/pxe/simulator").NamedValue<"sortByLengths", number[]>, import("@aztec/pxe/simulator").NamedValue<"sortOrder", number[]>, import("@aztec/pxe/simulator").NamedValue<"limit", number>, import("@aztec/pxe/simulator").NamedValue<"offset", number>, import("@aztec/pxe/simulator").NamedValue<"status", number>, import("@aztec/pxe/simulator").NamedValue<"maxNotes", number>, import("@aztec/pxe/simulator").NamedValue<"packedHintedNoteLength", number>], import("@aztec/pxe/simulator").BoundedVec<import("@aztec/pxe/simulator").NoteData>>;
38
+ aztec_utl_getPendingTaggedLogsV2: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"scope", import("@aztec/stdlib/aztec-address").AztecAddress>, import("@aztec/pxe/simulator").NamedValue<"providedSecrets", import("@aztec/pxe/simulator").EphemeralArray<import("@aztec/pxe/simulator").ProvidedSecret>>], import("@aztec/pxe/simulator").EphemeralArray<import("@aztec/pxe/simulator").PendingTaggedLog>>;
39
+ aztec_utl_validateAndStoreEnqueuedNotesAndEvents: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"noteValidationRequests", import("@aztec/pxe/simulator").EphemeralArray<import("@aztec/pxe/simulator").NoteValidationRequest>>, import("@aztec/pxe/simulator").NamedValue<"eventValidationRequests", import("@aztec/pxe/simulator").EphemeralArray<import("@aztec/pxe/simulator").EventValidationRequest>>, import("@aztec/pxe/simulator").NamedValue<"scope", import("@aztec/stdlib/aztec-address").AztecAddress>], any>;
40
+ aztec_utl_getLogsByTagV2: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"requests", import("@aztec/pxe/simulator").EphemeralArray<import("@aztec/pxe/simulator").LogRetrievalRequest>>], import("@aztec/pxe/simulator").EphemeralArray<import("@aztec/pxe/simulator").EphemeralArray<import("@aztec/pxe/simulator").LogRetrievalResponse>>>;
41
+ aztec_utl_getResolvedTxs: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"requests", import("@aztec/pxe/simulator").EphemeralArray<Fr>>], import("@aztec/pxe/simulator").EphemeralArray<import("@aztec/pxe/simulator").Option<import("@aztec/pxe/simulator").ResolvedTx>>>;
42
+ aztec_utl_getTxEffect: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"txHash", TxHash>], import("@aztec/pxe/simulator").Option<import("@aztec/pxe/simulator").TxEffectData>>;
43
+ aztec_utl_getTxEffects: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"txHashes", import("@aztec/pxe/simulator").EphemeralArray<TxHash>>], import("@aztec/pxe/simulator").EphemeralArray<import("@aztec/pxe/simulator").Option<import("@aztec/pxe/simulator").TxEffectData>>>;
44
+ aztec_utl_setCapsule: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"contractAddress", import("@aztec/stdlib/aztec-address").AztecAddress>, import("@aztec/pxe/simulator").NamedValue<"slot", Fr>, import("@aztec/pxe/simulator").NamedValue<"capsule", Fr[]>, import("@aztec/pxe/simulator").NamedValue<"scope", import("@aztec/stdlib/aztec-address").AztecAddress>], any>;
45
+ aztec_utl_getCapsule: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"contractAddress", import("@aztec/stdlib/aztec-address").AztecAddress>, import("@aztec/pxe/simulator").NamedValue<"slot", Fr>, import("@aztec/pxe/simulator").NamedValue<"tSize", number>, import("@aztec/pxe/simulator").NamedValue<"scope", import("@aztec/stdlib/aztec-address").AztecAddress>], import("@aztec/pxe/simulator").Option<Fr[]>>;
46
+ aztec_utl_deleteCapsule: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"contractAddress", import("@aztec/stdlib/aztec-address").AztecAddress>, import("@aztec/pxe/simulator").NamedValue<"slot", Fr>, import("@aztec/pxe/simulator").NamedValue<"scope", import("@aztec/stdlib/aztec-address").AztecAddress>], any>;
47
+ aztec_utl_copyCapsule: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"contractAddress", import("@aztec/stdlib/aztec-address").AztecAddress>, import("@aztec/pxe/simulator").NamedValue<"srcSlot", Fr>, import("@aztec/pxe/simulator").NamedValue<"dstSlot", Fr>, import("@aztec/pxe/simulator").NamedValue<"numEntries", number>, import("@aztec/pxe/simulator").NamedValue<"scope", import("@aztec/stdlib/aztec-address").AztecAddress>], any>;
48
+ aztec_utl_decryptAes128: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"ciphertext", import("@aztec/pxe/simulator").BoundedVec<number>>, import("@aztec/pxe/simulator").NamedValue<"iv", number[]>, import("@aztec/pxe/simulator").NamedValue<"symKey", number[]>], import("@aztec/pxe/simulator").Option<import("@aztec/pxe/simulator").BoundedVec<number>>>;
49
+ aztec_utl_getSharedSecrets: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"address", import("@aztec/stdlib/aztec-address").AztecAddress>, import("@aztec/pxe/simulator").NamedValue<"ephPks", import("@aztec/pxe/simulator").EphemeralArray<import("@aztec/pxe/simulator").EmbeddedCurvePoint>>, import("@aztec/pxe/simulator").NamedValue<"contractAddress", import("@aztec/stdlib/aztec-address").AztecAddress>], import("@aztec/pxe/simulator").EphemeralArray<Fr>>;
50
+ aztec_utl_setContractSyncCacheInvalid: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"contractAddress", import("@aztec/stdlib/aztec-address").AztecAddress>, import("@aztec/pxe/simulator").NamedValue<"scopes", import("@aztec/pxe/simulator").BoundedVec<import("@aztec/stdlib/aztec-address").AztecAddress>>], any>;
51
+ aztec_utl_emitOffchainEffect: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"data", Fr[]>], any>;
52
+ aztec_utl_recordFact: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"contractAddress", import("@aztec/stdlib/aztec-address").AztecAddress>, import("@aztec/pxe/simulator").NamedValue<"scope", import("@aztec/stdlib/aztec-address").AztecAddress>, import("@aztec/pxe/simulator").NamedValue<"factCollectionTypeId", Fr>, import("@aztec/pxe/simulator").NamedValue<"factCollectionId", Fr>, import("@aztec/pxe/simulator").NamedValue<"factTypeId", Fr>, import("@aztec/pxe/simulator").NamedValue<"payload", import("@aztec/pxe/simulator").EphemeralArray<Fr>>, import("@aztec/pxe/simulator").NamedValue<"originBlock", import("@aztec/pxe/simulator").Option<import("@aztec/pxe/server").OriginBlock>>], any>;
53
+ aztec_utl_deleteFactCollection: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"contractAddress", import("@aztec/stdlib/aztec-address").AztecAddress>, import("@aztec/pxe/simulator").NamedValue<"scope", import("@aztec/stdlib/aztec-address").AztecAddress>, import("@aztec/pxe/simulator").NamedValue<"factCollectionTypeId", Fr>, import("@aztec/pxe/simulator").NamedValue<"factCollectionId", Fr>], any>;
54
+ aztec_utl_getFactCollection: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"contractAddress", import("@aztec/stdlib/aztec-address").AztecAddress>, import("@aztec/pxe/simulator").NamedValue<"scope", import("@aztec/stdlib/aztec-address").AztecAddress>, import("@aztec/pxe/simulator").NamedValue<"factCollectionTypeId", Fr>, import("@aztec/pxe/simulator").NamedValue<"factCollectionId", Fr>], import("@aztec/pxe/simulator").Option<import("@aztec/pxe/simulator").FactCollection>>;
55
+ aztec_utl_getFactCollectionsByType: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"contractAddress", import("@aztec/stdlib/aztec-address").AztecAddress>, import("@aztec/pxe/simulator").NamedValue<"scope", import("@aztec/stdlib/aztec-address").AztecAddress>, import("@aztec/pxe/simulator").NamedValue<"factCollectionTypeId", Fr>], import("@aztec/pxe/simulator").EphemeralArray<import("@aztec/pxe/simulator").FactCollection>>;
56
+ aztec_utl_callUtilityFunction: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"contractAddress", import("@aztec/stdlib/aztec-address").AztecAddress>, import("@aztec/pxe/simulator").NamedValue<"functionSelector", import("@aztec/stdlib/abi").FunctionSelector>, import("@aztec/pxe/simulator").NamedValue<"args", Fr[]>], Fr[]>;
57
+ aztec_utl_pushEphemeral: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"slot", Fr>, import("@aztec/pxe/simulator").NamedValue<"elements", Fr[]>], number>;
58
+ aztec_utl_popEphemeral: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"slot", Fr>], Fr[]>;
59
+ aztec_utl_getEphemeral: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"slot", Fr>, import("@aztec/pxe/simulator").NamedValue<"index", number>], Fr[]>;
60
+ aztec_utl_setEphemeral: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"slot", Fr>, import("@aztec/pxe/simulator").NamedValue<"index", number>, import("@aztec/pxe/simulator").NamedValue<"elements", Fr[]>], any>;
61
+ aztec_utl_getEphemeralLen: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"slot", Fr>], number>;
62
+ aztec_utl_removeEphemeral: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"slot", Fr>, import("@aztec/pxe/simulator").NamedValue<"index", number>], any>;
63
+ aztec_utl_clearEphemeral: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"slot", Fr>], any>;
64
+ aztec_utl_pushTransient: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"slot", Fr>, import("@aztec/pxe/simulator").NamedValue<"elements", Fr[]>], number>;
65
+ aztec_utl_popTransient: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"slot", Fr>], Fr[]>;
66
+ aztec_utl_getTransient: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"slot", Fr>, import("@aztec/pxe/simulator").NamedValue<"index", number>], Fr[]>;
67
+ aztec_utl_setTransient: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"slot", Fr>, import("@aztec/pxe/simulator").NamedValue<"index", number>, import("@aztec/pxe/simulator").NamedValue<"elements", Fr[]>], any>;
68
+ aztec_utl_getTransientLen: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"slot", Fr>], number>;
69
+ aztec_utl_removeTransient: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"slot", Fr>, import("@aztec/pxe/simulator").NamedValue<"index", number>], any>;
70
+ aztec_utl_clearTransient: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"slot", Fr>], any>;
71
+ aztec_prv_setHashPreimage: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"values", Fr[]>, import("@aztec/pxe/simulator").NamedValue<"hash", Fr>], any>;
72
+ aztec_prv_getHashPreimage: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"returnsHash", Fr>], Fr[]>;
73
+ aztec_prv_notifyCreatedNote: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"owner", import("@aztec/stdlib/aztec-address").AztecAddress>, import("@aztec/pxe/simulator").NamedValue<"storageSlot", Fr>, import("@aztec/pxe/simulator").NamedValue<"randomness", Fr>, import("@aztec/pxe/simulator").NamedValue<"noteTypeId", import("@aztec/stdlib/abi").NoteSelector>, import("@aztec/pxe/simulator").NamedValue<"note", Fr[]>, import("@aztec/pxe/simulator").NamedValue<"noteHash", Fr>, import("@aztec/pxe/simulator").NamedValue<"counter", number>], any>;
74
+ aztec_prv_notifyNullifiedNote: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"innerNullifier", Fr>, import("@aztec/pxe/simulator").NamedValue<"noteHash", Fr>, import("@aztec/pxe/simulator").NamedValue<"counter", number>], any>;
75
+ aztec_prv_notifyCreatedNullifier: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"innerNullifier", Fr>], any>;
76
+ aztec_prv_isNullifierPending: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"innerNullifier", Fr>, import("@aztec/pxe/simulator").NamedValue<"contractAddress", import("@aztec/stdlib/aztec-address").AztecAddress>], boolean>;
77
+ aztec_prv_notifyCreatedContractClassLog: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"log", import("@aztec/pxe/simulator").ContractClassLogData>, import("@aztec/pxe/simulator").NamedValue<"counter", number>], any>;
78
+ aztec_prv_callPrivateFunction: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"contractAddress", import("@aztec/stdlib/aztec-address").AztecAddress>, import("@aztec/pxe/simulator").NamedValue<"functionSelector", import("@aztec/stdlib/abi").FunctionSelector>, import("@aztec/pxe/simulator").NamedValue<"argsHash", Fr>, import("@aztec/pxe/simulator").NamedValue<"sideEffectCounter", number>, import("@aztec/pxe/simulator").NamedValue<"isStaticCall", boolean>], {
79
+ endSideEffectCounter: Fr;
80
+ returnsHash: Fr;
81
+ }>;
82
+ aztec_prv_assertValidPublicCalldata: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"calldataHash", Fr>], any>;
83
+ aztec_prv_notifyRevertiblePhaseStart: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"minRevertibleSideEffectCounter", number>], any>;
84
+ aztec_prv_isExecutionInRevertiblePhase: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"sideEffectCounter", number>], boolean>;
85
+ aztec_prv_getAppTaggingSecret: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"sender", import("@aztec/stdlib/aztec-address").AztecAddress>, import("@aztec/pxe/simulator").NamedValue<"recipient", import("@aztec/stdlib/aztec-address").AztecAddress>], import("@aztec/pxe/simulator").Option<Fr>>;
86
+ aztec_prv_getNextTaggingIndex: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"secret", Fr>, import("@aztec/pxe/simulator").NamedValue<"deliveryMode", import("@aztec/stdlib/logs").AppTaggingSecretKind>], number>;
87
+ aztec_prv_getSenderForTags: OracleRegistryEntry<import("@aztec/pxe/simulator").NamedValue<string, any>[], import("@aztec/pxe/simulator").Option<import("@aztec/stdlib/aztec-address").AztecAddress>>;
88
+ aztec_prv_resolveTaggingStrategy: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"sender", import("@aztec/stdlib/aztec-address").AztecAddress>, import("@aztec/pxe/simulator").NamedValue<"recipient", import("@aztec/stdlib/aztec-address").AztecAddress>, import("@aztec/pxe/simulator").NamedValue<"deliveryMode", import("@aztec/stdlib/logs").AppTaggingSecretKind>], import("@aztec/pxe/simulator").ResolvedTaggingStrategy>;
89
+ aztec_prv_resolveCustomRequest: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"kind", Fr>, import("@aztec/pxe/simulator").NamedValue<"payload", Fr[]>], Fr[]>;
90
+ aztec_txe_assertCompatibleOracleVersion: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"major", number>, import("@aztec/pxe/simulator").NamedValue<"minor", number>], any>;
91
+ aztec_txe_setTopLevelTXEContext: OracleRegistryEntry<import("@aztec/pxe/simulator").NamedValue<string, any>[], any>;
92
+ aztec_txe_setPrivateTXEContext: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"contractAddress", import("@aztec/pxe/simulator").Option<import("@aztec/stdlib/aztec-address").AztecAddress>>, import("@aztec/pxe/simulator").NamedValue<"anchorBlockNumber", import("@aztec/pxe/simulator").Option<import("@aztec/foundation/branded-types").BlockNumber>>, import("@aztec/pxe/simulator").NamedValue<"gasSettings", GasSettings>], PrivateContextInputs>;
93
+ aztec_txe_setPublicTXEContext: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"contractAddress", import("@aztec/pxe/simulator").Option<import("@aztec/stdlib/aztec-address").AztecAddress>>], any>;
94
+ aztec_txe_setUtilityTXEContext: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"contractAddress", import("@aztec/pxe/simulator").Option<import("@aztec/stdlib/aztec-address").AztecAddress>>], any>;
95
+ aztec_txe_getDefaultAddress: OracleRegistryEntry<import("@aztec/pxe/simulator").NamedValue<string, any>[], import("@aztec/stdlib/aztec-address").AztecAddress>;
96
+ aztec_txe_getNextBlockNumber: OracleRegistryEntry<import("@aztec/pxe/simulator").NamedValue<string, any>[], import("@aztec/foundation/branded-types").BlockNumber>;
97
+ aztec_txe_getNextBlockTimestamp: OracleRegistryEntry<import("@aztec/pxe/simulator").NamedValue<string, any>[], bigint>;
98
+ aztec_txe_advanceBlocksBy: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"blocks", number>], any>;
99
+ aztec_txe_advanceTimestampBy: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"duration", bigint>], any>;
100
+ aztec_txe_deploy: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"contractPath", string>, import("@aztec/pxe/simulator").NamedValue<"initializer", string>, import("@aztec/pxe/simulator").NamedValue<"argsLength", number>, import("@aztec/pxe/simulator").NamedValue<"args", Fr[]>, import("@aztec/pxe/simulator").NamedValue<"secret", Fr>, import("@aztec/pxe/simulator").NamedValue<"salt", Fr>, import("@aztec/pxe/simulator").NamedValue<"deployer", import("@aztec/stdlib/aztec-address").AztecAddress>], Fr[]>;
101
+ aztec_txe_createAccount: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"secret", Fr>, import("@aztec/pxe/simulator").NamedValue<"partialAddress", Fr>], CompleteAddress>;
102
+ aztec_txe_addAccount: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"secret", Fr>], CompleteAddress>;
103
+ aztec_txe_addAuthWitness: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"address", import("@aztec/stdlib/aztec-address").AztecAddress>, import("@aztec/pxe/simulator").NamedValue<"messageHash", Fr>], any>;
104
+ aztec_txe_sendL1ToL2Message: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"content", Fr>, import("@aztec/pxe/simulator").NamedValue<"secretHash", Fr>, import("@aztec/pxe/simulator").NamedValue<"sender", import("@aztec/foundation/eth-address").EthAddress>, import("@aztec/pxe/simulator").NamedValue<"recipient", import("@aztec/stdlib/aztec-address").AztecAddress>], Fr>;
105
+ aztec_txe_setTaggingSecretStrategies: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"unconstrainedStrategy", import("@aztec/pxe/simulator").Option<TaggingSecretStrategy>>, import("@aztec/pxe/simulator").NamedValue<"constrainedStrategy", import("@aztec/pxe/simulator").Option<TaggingSecretStrategy>>], any>;
106
+ aztec_txe_setAuthorizeAllUtilityCallTargets: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"authorizeAll", boolean>], any>;
107
+ aztec_txe_getLastBlockTimestamp: OracleRegistryEntry<import("@aztec/pxe/simulator").NamedValue<string, any>[], bigint>;
108
+ aztec_txe_getLastTxEffects: OracleRegistryEntry<import("@aztec/pxe/simulator").NamedValue<string, any>[], {
109
+ txHash: TxHash;
110
+ noteHashes: Fr[];
111
+ nullifiers: Fr[];
112
+ privateLogs: PrivateLog[];
113
+ }>;
114
+ aztec_txe_getLastCallOffchainEffects: OracleRegistryEntry<import("@aztec/pxe/simulator").NamedValue<string, any>[], {
115
+ effects: Fr[][];
116
+ }>;
117
+ aztec_txe_getLastCallContext: OracleRegistryEntry<import("@aztec/pxe/simulator").NamedValue<string, any>[], {
118
+ txHash: Fr;
119
+ anchorBlockTimestamp: bigint;
120
+ }>;
121
+ aztec_txe_getPrivateEvents: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"selector", EventSelector>, import("@aztec/pxe/simulator").NamedValue<"contractAddress", import("@aztec/stdlib/aztec-address").AztecAddress>, import("@aztec/pxe/simulator").NamedValue<"scope", import("@aztec/stdlib/aztec-address").AztecAddress>], Fr[][]>;
122
+ aztec_txe_privateCallNewFlow: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"from", import("@aztec/pxe/simulator").Option<import("@aztec/stdlib/aztec-address").AztecAddress>>, import("@aztec/pxe/simulator").NamedValue<"targetContractAddress", import("@aztec/stdlib/aztec-address").AztecAddress>, import("@aztec/pxe/simulator").NamedValue<"functionSelector", import("@aztec/stdlib/abi").FunctionSelector>, import("@aztec/pxe/simulator").NamedValue<"args", Fr[]>, import("@aztec/pxe/simulator").NamedValue<"argsHash", Fr>, import("@aztec/pxe/simulator").NamedValue<"isStaticCall", boolean>, import("@aztec/pxe/simulator").NamedValue<"additionalScopes", import("@aztec/stdlib/aztec-address").AztecAddress[]>, import("@aztec/pxe/simulator").NamedValue<"authorizedUtilityCallTargets", import("@aztec/stdlib/aztec-address").AztecAddress[]>, import("@aztec/pxe/simulator").NamedValue<"gasSettings", GasSettings>], Fr[]>;
123
+ aztec_txe_executeUtilityFunction: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"from", import("@aztec/pxe/simulator").Option<import("@aztec/stdlib/aztec-address").AztecAddress>>, import("@aztec/pxe/simulator").NamedValue<"targetContractAddress", import("@aztec/stdlib/aztec-address").AztecAddress>, import("@aztec/pxe/simulator").NamedValue<"functionSelector", import("@aztec/stdlib/abi").FunctionSelector>, import("@aztec/pxe/simulator").NamedValue<"args", Fr[]>, import("@aztec/pxe/simulator").NamedValue<"authorizedUtilityCallTargets", import("@aztec/stdlib/aztec-address").AztecAddress[]>], Fr[]>;
124
+ aztec_txe_publicCallNewFlow: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"from", import("@aztec/pxe/simulator").Option<import("@aztec/stdlib/aztec-address").AztecAddress>>, import("@aztec/pxe/simulator").NamedValue<"address", import("@aztec/stdlib/aztec-address").AztecAddress>, import("@aztec/pxe/simulator").NamedValue<"calldata", Fr[]>, import("@aztec/pxe/simulator").NamedValue<"isStaticCall", boolean>, import("@aztec/pxe/simulator").NamedValue<"gasSettings", GasSettings>], Fr[]>;
125
+ aztec_avm_address: OracleRegistryEntry<import("@aztec/pxe/simulator").NamedValue<string, any>[], import("@aztec/stdlib/aztec-address").AztecAddress>;
126
+ aztec_avm_sender: OracleRegistryEntry<import("@aztec/pxe/simulator").NamedValue<string, any>[], import("@aztec/stdlib/aztec-address").AztecAddress>;
127
+ aztec_avm_blockNumber: OracleRegistryEntry<import("@aztec/pxe/simulator").NamedValue<string, any>[], import("@aztec/foundation/branded-types").BlockNumber>;
128
+ aztec_avm_timestamp: OracleRegistryEntry<import("@aztec/pxe/simulator").NamedValue<string, any>[], bigint>;
129
+ aztec_avm_isStaticCall: OracleRegistryEntry<import("@aztec/pxe/simulator").NamedValue<string, any>[], boolean>;
130
+ aztec_avm_chainId: OracleRegistryEntry<import("@aztec/pxe/simulator").NamedValue<string, any>[], Fr>;
131
+ aztec_avm_version: OracleRegistryEntry<import("@aztec/pxe/simulator").NamedValue<string, any>[], Fr>;
132
+ aztec_avm_emitNullifier: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"nullifier", Fr>], any>;
133
+ aztec_avm_emitNoteHash: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"noteHash", Fr>], any>;
134
+ aztec_avm_nullifierExists: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"siloedNullifier", Fr>], boolean>;
135
+ aztec_avm_storageRead: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"slot", Fr>, import("@aztec/pxe/simulator").NamedValue<"contractAddress", import("@aztec/stdlib/aztec-address").AztecAddress>], Fr>;
136
+ aztec_avm_storageWrite: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"slot", Fr>, import("@aztec/pxe/simulator").NamedValue<"value", Fr>], any>;
137
+ aztec_avm_emitPublicLog: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"message", Fr[]>], any>;
138
+ aztec_avm_returndataSize: OracleRegistryEntry<import("@aztec/pxe/simulator").NamedValue<string, any>[], number>;
139
+ aztec_avm_returndataCopy: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"rdOffset", number>, import("@aztec/pxe/simulator").NamedValue<"copySize", number>], Fr[]>;
140
+ aztec_avm_call: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"l2Gas", number>, import("@aztec/pxe/simulator").NamedValue<"daGas", number>, import("@aztec/pxe/simulator").NamedValue<"address", import("@aztec/stdlib/aztec-address").AztecAddress>, import("@aztec/pxe/simulator").NamedValue<"argsLength", number>, import("@aztec/pxe/simulator").NamedValue<"args", Fr[]>], any>;
141
+ aztec_avm_staticCall: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"l2Gas", number>, import("@aztec/pxe/simulator").NamedValue<"daGas", number>, import("@aztec/pxe/simulator").NamedValue<"address", import("@aztec/stdlib/aztec-address").AztecAddress>, import("@aztec/pxe/simulator").NamedValue<"argsLength", number>, import("@aztec/pxe/simulator").NamedValue<"args", Fr[]>], any>;
142
+ aztec_avm_successCopy: OracleRegistryEntry<import("@aztec/pxe/simulator").NamedValue<string, any>[], boolean>;
143
+ aztec_avm_getContractInstanceDeployer: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"address", import("@aztec/stdlib/aztec-address").AztecAddress>], {
144
+ exists: boolean;
145
+ member: Fr;
146
+ }[]>;
147
+ aztec_avm_getContractInstanceClassId: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"address", import("@aztec/stdlib/aztec-address").AztecAddress>], {
148
+ exists: boolean;
149
+ member: Fr;
150
+ }[]>;
151
+ aztec_avm_getContractInstanceInitializationHash: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"address", import("@aztec/stdlib/aztec-address").AztecAddress>], {
152
+ exists: boolean;
153
+ member: Fr;
154
+ }[]>;
155
+ aztec_avm_getContractInstanceImmutablesHash: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"address", import("@aztec/stdlib/aztec-address").AztecAddress>], {
156
+ exists: boolean;
157
+ member: Fr;
158
+ }[]>;
159
+ };
160
+ export declare function toInputSlots(inputs: ForeignCallArgs): InputSlot[];
161
+ /**
162
+ * Deserializes oracle inputs, calls the handler with typed params, serializes the result, and wraps
163
+ * it in a `ForeignCallResult`. Normalizes `ForeignCallArgs` (which may contain bare strings) into
164
+ * `InputSlot[]` (always arrays) before deserialization.
165
+ */
166
+ export declare function callTxeHandler<K extends keyof typeof TXE_ORACLE_REGISTRY>({ oracle, inputs, handler }: {
167
+ oracle: K;
168
+ inputs: ForeignCallArgs;
169
+ handler: (params: ParamTypes<ReturnType<(typeof TXE_ORACLE_REGISTRY)[K]['deserializeParams']>>) => MaybePromise<Parameters<(typeof TXE_ORACLE_REGISTRY)[K]['serializeReturn']>[0]>;
170
+ }): Promise<ForeignCallResult>;
171
+ export declare function callTxeLegacyHandler(oracle: string, inputs: ForeignCallArgs, oracleHandler: Parameters<typeof buildACIRCallback>[0]): Promise<ForeignCallResult>;
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhlX29yYWNsZV9yZWdpc3RyeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29yYWNsZS90eGVfb3JhY2xlX3JlZ2lzdHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUdwRCxPQUFPLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9ELE9BQU8sRUFTTCxLQUFLLFNBQVMsRUFFZCxLQUFLLFlBQVksRUFHakIsS0FBSyxtQkFBbUIsRUFFeEIsS0FBSyxVQUFVLEVBUWYsaUJBQWlCLEVBRWxCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFRL0MsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFLL0UsWUFBWSxFQUFFLG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25HLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxZQUFZLEVBQUUsMEJBQTBCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQTRMekYsZUFBTyxNQUFNLG1CQUFtQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBcVBlLENBQUM7QUFFaEQsd0JBQWdCLFlBQVksQ0FBQyxNQUFNLEVBQUUsZUFBZSxHQUFHLFNBQVMsRUFBRSxDQUdqRTtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBc0IsY0FBYyxDQUFDLENBQUMsU0FBUyxNQUFNLE9BQU8sbUJBQW1CLEVBQUUsRUFDL0UsTUFBTSxFQUNOLE1BQU0sRUFDTixPQUFPLEVBQ1IsRUFBRTtJQUNELE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDVixNQUFNLEVBQUUsZUFBZSxDQUFDO0lBQ3hCLE9BQU8sRUFBRSxDQUNQLE1BQU0sRUFBRSxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxLQUNqRixZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQ3RGLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBTTdCO0FBU0Qsd0JBQXNCLG9CQUFvQixDQUN4QyxNQUFNLEVBQUUsTUFBTSxFQUNkLE1BQU0sRUFBRSxlQUFlLEVBQ3ZCLGFBQWEsRUFBRSxVQUFVLENBQUMsT0FBTyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUNyRCxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FVNUIifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"txe_oracle_registry.d.ts","sourceRoot":"","sources":["../../src/oracle/txe_oracle_registry.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGpD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EASL,KAAK,SAAS,EAEd,KAAK,YAAY,EAGjB,KAAK,mBAAmB,EAExB,KAAK,UAAU,EAQf,iBAAiB,EAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAQ/C,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAK/E,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACnG,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,YAAY,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AA4LzF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqPe,CAAC;AAEhD,wBAAgB,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,EAAE,CAGjE;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,CAAC,SAAS,MAAM,OAAO,mBAAmB,EAAE,EAC/E,MAAM,EACN,MAAM,EACN,OAAO,EACR,EAAE;IACD,MAAM,EAAE,CAAC,CAAC;IACV,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,CACP,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,KACjF,YAAY,CAAC,UAAU,CAAC,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACtF,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAM7B;AASD,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,eAAe,EACvB,aAAa,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,GACrD,OAAO,CAAC,iBAAiB,CAAC,CAU5B"}