@aztec/txe 0.0.1-commit.c2eed6949 → 0.0.1-commit.c52d6e7

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 (168) 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.d.ts +2 -0
  18. package/dest/bin/check_txe_oracle_version.d.ts.map +1 -0
  19. package/dest/bin/check_txe_oracle_version.js +22 -0
  20. package/dest/bin/index.js +3 -30
  21. package/dest/bin/index.js.map +7 -0
  22. package/dest/bin/oracle_test_server.d.ts +3 -0
  23. package/dest/bin/oracle_test_server.d.ts.map +1 -0
  24. package/dest/bin/oracle_test_server.js +41 -0
  25. package/dest/chunk-32UHX7YY.js +3 -0
  26. package/dest/chunk-32UHX7YY.js.map +7 -0
  27. package/dest/chunk-RVEPNDEP.js +304 -0
  28. package/dest/chunk-RVEPNDEP.js.map +7 -0
  29. package/dest/chunk-XWIMXLKD.js +258 -0
  30. package/dest/chunk-XWIMXLKD.js.map +7 -0
  31. package/dest/constants.d.ts +5 -1
  32. package/dest/constants.d.ts.map +1 -1
  33. package/dest/constants.js +9 -1
  34. package/dest/dispatcher_pool.d.ts +67 -0
  35. package/dest/dispatcher_pool.d.ts.map +1 -0
  36. package/dest/dispatcher_pool.js +286 -0
  37. package/dest/index.d.ts +51 -7
  38. package/dest/index.d.ts.map +1 -1
  39. package/dest/index.js +72 -190
  40. package/dest/metafile.json +38833 -0
  41. package/dest/msgpackr_fr_extension.d.ts +2 -0
  42. package/dest/msgpackr_fr_extension.d.ts.map +1 -0
  43. package/dest/msgpackr_fr_extension.js +21 -0
  44. package/dest/oracle/interfaces.d.ts +47 -9
  45. package/dest/oracle/interfaces.d.ts.map +1 -1
  46. package/dest/oracle/tagging_secret_strategy.d.ts +12 -0
  47. package/dest/oracle/tagging_secret_strategy.d.ts.map +1 -0
  48. package/dest/oracle/tagging_secret_strategy.js +12 -0
  49. package/dest/oracle/test-resolver/default_fixtures.d.ts +16 -0
  50. package/dest/oracle/test-resolver/default_fixtures.d.ts.map +1 -0
  51. package/dest/oracle/test-resolver/default_fixtures.js +200 -0
  52. package/dest/oracle/test-resolver/index.d.ts +9 -0
  53. package/dest/oracle/test-resolver/index.d.ts.map +1 -0
  54. package/dest/oracle/test-resolver/index.js +32 -0
  55. package/dest/oracle/test-resolver/resolver.d.ts +48 -0
  56. package/dest/oracle/test-resolver/resolver.d.ts.map +1 -0
  57. package/dest/oracle/test-resolver/resolver.js +181 -0
  58. package/dest/oracle/txe_oracle_public_context.d.ts +26 -2
  59. package/dest/oracle/txe_oracle_public_context.d.ts.map +1 -1
  60. package/dest/oracle/txe_oracle_public_context.js +49 -1
  61. package/dest/oracle/txe_oracle_registry.d.ts +172 -0
  62. package/dest/oracle/txe_oracle_registry.d.ts.map +1 -0
  63. package/dest/oracle/txe_oracle_registry.js +767 -0
  64. package/dest/oracle/txe_oracle_top_level_context.d.ts +58 -18
  65. package/dest/oracle/txe_oracle_top_level_context.d.ts.map +1 -1
  66. package/dest/oracle/txe_oracle_top_level_context.js +558 -304
  67. package/dest/oracle/txe_oracle_version.d.ts +17 -0
  68. package/dest/oracle/txe_oracle_version.d.ts.map +1 -0
  69. package/dest/oracle/txe_oracle_version.js +14 -0
  70. package/dest/oracle/txe_private_execution_oracle.d.ts +17 -0
  71. package/dest/oracle/txe_private_execution_oracle.d.ts.map +1 -0
  72. package/dest/oracle/txe_private_execution_oracle.js +15 -0
  73. package/dest/rpc_server.d.ts +14 -0
  74. package/dest/rpc_server.d.ts.map +1 -0
  75. package/dest/rpc_server.js +78 -0
  76. package/dest/rpc_translator.d.ts +116 -233
  77. package/dest/rpc_translator.d.ts.map +1 -1
  78. package/dest/rpc_translator.js +799 -636
  79. package/dest/server.bundle.js +3 -0
  80. package/dest/server.bundle.js.map +7 -0
  81. package/dest/state_machine/archiver.d.ts +4 -3
  82. package/dest/state_machine/archiver.d.ts.map +1 -1
  83. package/dest/state_machine/archiver.js +24 -14
  84. package/dest/state_machine/dummy_p2p_client.d.ts +16 -7
  85. package/dest/state_machine/dummy_p2p_client.d.ts.map +1 -1
  86. package/dest/state_machine/dummy_p2p_client.js +25 -4
  87. package/dest/state_machine/global_variable_builder.d.ts +10 -6
  88. package/dest/state_machine/global_variable_builder.d.ts.map +1 -1
  89. package/dest/state_machine/global_variable_builder.js +8 -5
  90. package/dest/state_machine/index.d.ts +11 -7
  91. package/dest/state_machine/index.d.ts.map +1 -1
  92. package/dest/state_machine/index.js +50 -14
  93. package/dest/state_machine/mock_epoch_cache.d.ts +2 -2
  94. package/dest/state_machine/mock_epoch_cache.d.ts.map +1 -1
  95. package/dest/state_machine/mock_epoch_cache.js +3 -3
  96. package/dest/state_machine/synchronizer.d.ts +10 -2
  97. package/dest/state_machine/synchronizer.d.ts.map +1 -1
  98. package/dest/state_machine/synchronizer.js +19 -6
  99. package/dest/txe_session.d.ts +92 -20
  100. package/dest/txe_session.d.ts.map +1 -1
  101. package/dest/txe_session.js +324 -69
  102. package/dest/utils/block_creation.d.ts +2 -2
  103. package/dest/utils/block_creation.d.ts.map +1 -1
  104. package/dest/utils/block_creation.js +2 -2
  105. package/dest/utils/encoding.d.ts +194 -0
  106. package/dest/utils/encoding.d.ts.map +1 -0
  107. package/dest/{util → utils}/encoding.js +7 -2
  108. package/dest/{util → utils}/expected_failure_error.d.ts +1 -1
  109. package/dest/utils/expected_failure_error.d.ts.map +1 -0
  110. package/dest/utils/tx_effect_creation.d.ts +1 -1
  111. package/dest/utils/tx_effect_creation.d.ts.map +1 -1
  112. package/dest/utils/tx_effect_creation.js +0 -1
  113. package/dest/{util → utils}/txe_account_store.d.ts +1 -1
  114. package/dest/utils/txe_account_store.d.ts.map +1 -0
  115. package/dest/utils/txe_artifact_resolver.d.ts +37 -0
  116. package/dest/utils/txe_artifact_resolver.d.ts.map +1 -0
  117. package/dest/utils/txe_artifact_resolver.js +161 -0
  118. package/dest/utils/txe_public_contract_data_source.d.ts +20 -0
  119. package/dest/utils/txe_public_contract_data_source.d.ts.map +1 -0
  120. package/dest/{util → utils}/txe_public_contract_data_source.js +7 -4
  121. package/dest/worker.bundle.js +3 -0
  122. package/dest/worker.bundle.js.map +7 -0
  123. package/dest/worker.d.ts +2 -0
  124. package/dest/worker.d.ts.map +1 -0
  125. package/dest/worker.js +92 -0
  126. package/package.json +38 -21
  127. package/src/bin/check_txe_oracle_version.ts +31 -0
  128. package/src/bin/index.ts +11 -2
  129. package/src/bin/oracle_test_server.ts +51 -0
  130. package/src/constants.ts +11 -1
  131. package/src/dispatcher_pool.ts +317 -0
  132. package/src/index.ts +99 -227
  133. package/src/msgpackr_fr_extension.ts +23 -0
  134. package/src/oracle/interfaces.ts +47 -8
  135. package/src/oracle/tagging_secret_strategy.ts +25 -0
  136. package/src/oracle/test-resolver/default_fixtures.ts +271 -0
  137. package/src/oracle/test-resolver/index.ts +44 -0
  138. package/src/oracle/test-resolver/resolver.ts +245 -0
  139. package/src/oracle/txe_oracle_public_context.ts +62 -0
  140. package/src/oracle/txe_oracle_registry.ts +556 -0
  141. package/src/oracle/txe_oracle_top_level_context.ts +364 -117
  142. package/src/oracle/txe_oracle_version.ts +17 -0
  143. package/src/oracle/txe_private_execution_oracle.ts +30 -0
  144. package/src/rpc_server.ts +87 -0
  145. package/src/rpc_translator.ts +889 -901
  146. package/src/state_machine/archiver.ts +37 -16
  147. package/src/state_machine/dummy_p2p_client.ts +44 -11
  148. package/src/state_machine/global_variable_builder.ts +12 -11
  149. package/src/state_machine/index.ts +62 -32
  150. package/src/state_machine/mock_epoch_cache.ts +4 -4
  151. package/src/state_machine/synchronizer.ts +27 -6
  152. package/src/txe_session.ts +561 -85
  153. package/src/utils/block_creation.ts +2 -1
  154. package/src/{util → utils}/encoding.ts +8 -2
  155. package/src/utils/tx_effect_creation.ts +0 -2
  156. package/src/utils/txe_artifact_resolver.ts +217 -0
  157. package/src/{util → utils}/txe_public_contract_data_source.ts +6 -4
  158. package/src/worker.ts +98 -0
  159. package/dest/util/encoding.d.ts +0 -788
  160. package/dest/util/encoding.d.ts.map +0 -1
  161. package/dest/util/expected_failure_error.d.ts.map +0 -1
  162. package/dest/util/txe_account_store.d.ts.map +0 -1
  163. package/dest/util/txe_public_contract_data_source.d.ts +0 -20
  164. package/dest/util/txe_public_contract_data_source.d.ts.map +0 -1
  165. /package/dest/{util → utils}/expected_failure_error.js +0 -0
  166. /package/dest/{util → utils}/txe_account_store.js +0 -0
  167. /package/src/{util → utils}/expected_failure_error.ts +0 -0
  168. /package/src/{util → utils}/txe_account_store.ts +0 -0
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXNncGFja3JfZnJfZXh0ZW5zaW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbXNncGFja3JfZnJfZXh0ZW5zaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"msgpackr_fr_extension.d.ts","sourceRoot":"","sources":["../src/msgpackr_fr_extension.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
+ import { addExtension } from 'msgpackr';
3
+ // `@aztec/native/msgpack_channel` registers a msgpackr extension that packs `Fr` instances to
4
+ // their raw 32-byte buffer for the C++ world-state side to deserialize. Because `@aztec/native`
5
+ // is externalized in TXE's esbuild config (it loads a `.node` binary that can't be bundled),
6
+ // the `Fr` class the extension is keyed on belongs to the *external* `@aztec/foundation`
7
+ // module instance — a different class identity than the `Fr` bundled into the TXE worker /
8
+ // bin. msgpackr's extension match uses `instanceof`, so bundled `Fr` instances slip through
9
+ // and msgpackr falls back to `Fr.toJSON()` (returns `Fr.toString()` — a `0x...` hex string).
10
+ // The C++ side then sees a string where a 32-byte binary was expected and throws
11
+ // `msgpack::type_error` whose `what()` is literally `"std::bad_cast"`.
12
+ //
13
+ // Fix: register the same extension under the BUNDLED `Fr` class identity. msgpackr's extension
14
+ // table holds an entry per `Class`, so both Fr classes now resolve to the same `write` callback
15
+ // and produce the same wire format. Imported as a side-effect from `./index.js` so both the
16
+ // worker (via `./worker.ts`) and the main-thread RPC server (via `./rpc_server.ts`) get the
17
+ // registration before any `sendMessage` runs.
18
+ addExtension({
19
+ Class: Fr,
20
+ write: (fr)=>fr.toBuffer()
21
+ });
@@ -1,11 +1,14 @@
1
- import type { ContractArtifact } from '@aztec/aztec.js/abi';
2
1
  import { CompleteAddress } from '@aztec/aztec.js/addresses';
3
- import type { ContractInstanceWithAddress } from '@aztec/aztec.js/contracts';
4
2
  import { TxHash } from '@aztec/aztec.js/tx';
5
3
  import { BlockNumber } from '@aztec/foundation/branded-types';
6
4
  import type { Fr } from '@aztec/foundation/curves/bn254';
5
+ import type { EthAddress } from '@aztec/foundation/eth-address';
6
+ import type { TaggingSecretStrategy } from '@aztec/pxe/server';
7
+ import type { Option } from '@aztec/pxe/simulator';
7
8
  import type { EventSelector, FunctionSelector } from '@aztec/stdlib/abi';
8
9
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
10
+ import type { GasSettings } from '@aztec/stdlib/gas';
11
+ import type { PrivateLog } from '@aztec/stdlib/logs';
9
12
  import type { UInt64 } from '@aztec/stdlib/types';
10
13
  /**
11
14
  * Oracle methods associated with the execution of an Aztec #[external("public")] function.
@@ -28,6 +31,27 @@ export interface IAvmExecutionOracle {
28
31
  nullifierExists(siloedNullifier: Fr): Promise<boolean>;
29
32
  storageWrite(slot: Fr, value: Fr): Promise<void>;
30
33
  storageRead(slot: Fr, contractAddress: AztecAddress): Promise<Fr>;
34
+ getContractInstanceDeployer(address: AztecAddress): Promise<{
35
+ member: Fr;
36
+ exists: boolean;
37
+ }[]>;
38
+ getContractInstanceClassId(address: AztecAddress): Promise<{
39
+ member: Fr;
40
+ exists: boolean;
41
+ }[]>;
42
+ getContractInstanceInitializationHash(address: AztecAddress): Promise<{
43
+ member: Fr;
44
+ exists: boolean;
45
+ }[]>;
46
+ getContractInstanceImmutablesHash(address: AztecAddress): Promise<{
47
+ member: Fr;
48
+ exists: boolean;
49
+ }[]>;
50
+ returndataSize(): Promise<number>;
51
+ returndataCopy(rdOffset: number, copySize: number): 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>;
31
55
  }
32
56
  /**
33
57
  * Oracle methods associated with the execution of an Aztec Noir test.
@@ -39,20 +63,34 @@ export interface ITxeExecutionOracle {
39
63
  getNextBlockTimestamp(): Promise<UInt64>;
40
64
  advanceBlocksBy(blocks: number): Promise<void>;
41
65
  advanceTimestampBy(duration: UInt64): void;
42
- deploy(artifact: ContractArtifact, instance: ContractInstanceWithAddress, foreignSecret: Fr): Promise<void>;
43
- createAccount(secret: Fr): Promise<CompleteAddress>;
44
- addAccount(artifact: ContractArtifact, instance: ContractInstanceWithAddress, secret: Fr): Promise<CompleteAddress>;
66
+ deploy(contractPath: string, initializer: string, args: Fr[], secret: Fr, salt: Fr, deployer: AztecAddress): Promise<Fr[]>;
67
+ createAccount(secret: Fr, partialAddress: Fr): Promise<CompleteAddress>;
68
+ addAccount(secret: Fr): Promise<CompleteAddress>;
45
69
  addAuthWitness(address: AztecAddress, messageHash: Fr): Promise<void>;
70
+ sendL1ToL2Message(content: Fr, secretHash: Fr, sender: EthAddress, recipient: AztecAddress): Promise<Fr>;
71
+ /**
72
+ * Configures the tagging secret strategy the test's simulated wallet resolves for each delivery mode. A `none`
73
+ * clears that mode, so it falls back to the default strategy (or, when both modes end up unset, to no hook at all).
74
+ */
75
+ setTaggingSecretStrategies(unconstrainedStrategy: Option<TaggingSecretStrategy>, constrainedStrategy: Option<TaggingSecretStrategy>): void;
76
+ /**
77
+ * Configures whether the test's simulated wallet authorizes every cross-contract utility call target.
78
+ */
79
+ setAuthorizeAllUtilityCallTargets(authorizeAll: boolean): void;
46
80
  getLastBlockTimestamp(): Promise<bigint>;
47
81
  getLastTxEffects(): Promise<{
48
82
  txHash: TxHash;
49
83
  noteHashes: Fr[];
50
84
  nullifiers: Fr[];
85
+ privateLogs: PrivateLog[];
51
86
  }>;
52
87
  getPrivateEvents(selector: EventSelector, contractAddress: AztecAddress, scope: AztecAddress): Promise<Fr[][]>;
53
- privateCallNewFlow(from: AztecAddress, targetContractAddress: AztecAddress, functionSelector: FunctionSelector, args: Fr[], argsHash: Fr, isStaticCall: boolean, jobId: string): Promise<Fr[]>;
54
- executeUtilityFunction(targetContractAddress: AztecAddress, functionSelector: FunctionSelector, args: Fr[], jobId: string): Promise<Fr[]>;
55
- publicCallNewFlow(from: AztecAddress, targetContractAddress: AztecAddress, calldata: Fr[], isStaticCall: boolean): Promise<Fr[]>;
88
+ privateCallNewFlow(from: AztecAddress | undefined, targetContractAddress: AztecAddress, functionSelector: FunctionSelector, args: Fr[], argsHash: Fr, isStaticCall: boolean, additionalScopes: AztecAddress[], jobId: string, authorizedUtilityCallTargets: AztecAddress[], gasSettings: GasSettings): Promise<{
89
+ returnValues: Fr[];
90
+ offchainEffects: Fr[][];
91
+ }>;
92
+ executeUtilityFunction(from: AztecAddress | undefined, targetContractAddress: AztecAddress, functionSelector: FunctionSelector, args: Fr[], jobId: string, authorizedUtilityCallTargets: AztecAddress[]): Promise<Fr[]>;
93
+ publicCallNewFlow(from: AztecAddress | undefined, targetContractAddress: AztecAddress, calldata: Fr[], isStaticCall: boolean, gasSettings: GasSettings): Promise<Fr[]>;
56
94
  syncContractNonOracleMethod(contractAddress: AztecAddress, scope: AztecAddress, jobId: string): Promise<void>;
57
95
  }
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29yYWNsZS9pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sS0FBSyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQVFsRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFdBQVcsbUJBQW1CO0lBQ2xDLEtBQUssRUFBRSxJQUFJLENBQUM7SUFFWixPQUFPLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pDLE1BQU0sSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNwQyxTQUFTLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdCLFlBQVksSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2QixPQUFPLElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQyxD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
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29yYWNsZS9pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0QsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekUsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFRbEQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxXQUFXLG1CQUFtQjtJQUNsQyxLQUFLLEVBQUUsSUFBSSxDQUFDO0lBRVosT0FBTyxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqQyxNQUFNLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2hDLFdBQVcsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDcEMsU0FBUyxJQUFJLE9B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
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/oracle/interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/oracle/interfaces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { type ResolveTaggingSecretStrategy, type TaggingSecretStrategy } from '@aztec/pxe/server';
2
+ import type { AppTaggingSecretKind } from '@aztec/stdlib/logs';
3
+ /** The tagging secret strategies a TXE test has configured, keyed by delivery mode. Absence means "not configured". */
4
+ export type TXETaggingSecretStrategies = Map<AppTaggingSecretKind, TaggingSecretStrategy>;
5
+ /**
6
+ * Builds the `resolveTaggingSecretStrategy` hook backing the `aztec_txe_setTaggingSecretStrategies` oracle. Returns
7
+ * `undefined` when no strategy is configured, so PXE's own no-hook default path is exercised. When at least one mode
8
+ * is configured, modes without an entry resolve to {@link DEFAULT_TAGGING_SECRET_STRATEGY}, matching what PXE would
9
+ * apply without a hook.
10
+ */
11
+ export declare function makeResolveTaggingSecretStrategyHook(strategies: TXETaggingSecretStrategies): ResolveTaggingSecretStrategy | undefined;
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnZ2luZ19zZWNyZXRfc3RyYXRlZ3kuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmFjbGUvdGFnZ2luZ19zZWNyZXRfc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLEtBQUssNEJBQTRCLEVBQ2pDLEtBQUsscUJBQXFCLEVBQzNCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUvRCx1SEFBdUg7QUFDdkgsTUFBTSxNQUFNLDBCQUEwQixHQUFHLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0FBRTFGOzs7OztHQUtHO0FBQ0gsd0JBQWdCLG9DQUFvQyxDQUNsRCxVQUFVLEVBQUUsMEJBQTBCLEdBQ3JDLDRCQUE0QixHQUFHLFNBQVMsQ0FNMUMifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tagging_secret_strategy.d.ts","sourceRoot":"","sources":["../../src/oracle/tagging_secret_strategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,4BAA4B,EACjC,KAAK,qBAAqB,EAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,uHAAuH;AACvH,MAAM,MAAM,0BAA0B,GAAG,GAAG,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,CAAC;AAE1F;;;;;GAKG;AACH,wBAAgB,oCAAoC,CAClD,UAAU,EAAE,0BAA0B,GACrC,4BAA4B,GAAG,SAAS,CAM1C"}
@@ -0,0 +1,12 @@
1
+ import { DEFAULT_TAGGING_SECRET_STRATEGY } from '@aztec/pxe/server';
2
+ /**
3
+ * Builds the `resolveTaggingSecretStrategy` hook backing the `aztec_txe_setTaggingSecretStrategies` oracle. Returns
4
+ * `undefined` when no strategy is configured, so PXE's own no-hook default path is exercised. When at least one mode
5
+ * is configured, modes without an entry resolve to {@link DEFAULT_TAGGING_SECRET_STRATEGY}, matching what PXE would
6
+ * apply without a hook.
7
+ */ export function makeResolveTaggingSecretStrategyHook(strategies) {
8
+ if (strategies.size === 0) {
9
+ return undefined;
10
+ }
11
+ return ({ deliveryMode })=>Promise.resolve(strategies.get(deliveryMode) ?? DEFAULT_TAGGING_SECRET_STRATEGY);
12
+ }
@@ -0,0 +1,16 @@
1
+ import { type OracleRegistryEntry, type TypeMapping } from '@aztec/pxe/simulator';
2
+ import type { OracleTestScenario } from './resolver.js';
3
+ /**
4
+ * Synthesizes fixture scenarios for every oracle in the registry whose parameters and return are built from scalars,
5
+ * arrays/bounded vecs of them, `Option`s of them, or `STRUCT`s over them. The matching Noir serialization tests are
6
+ * auto-generated by `#[generate_oracle_tests]` from the same seed/scenario convention.
7
+ */
8
+ export declare function synthesizeDefaultFixtures(registry: Record<string, OracleRegistryEntry>): Record<string, OracleTestScenario[]>;
9
+ /** The scalar mappings with a registered test-value impl. */
10
+ export declare const SCALAR_MAPPINGS: TypeMapping<any>[];
11
+ /**
12
+ * The test value of `type` at `seed`, matching what the Noir synthesizer produces for the same type and seed. Throws
13
+ * for types without a test-value impl.
14
+ */
15
+ export declare function testValueFor(type: TypeMapping<any>, seed: number): unknown;
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdF9maXh0dXJlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL29yYWNsZS90ZXN0LXJlc29sdmVyL2RlZmF1bHRfZml4dHVyZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQWVMLEtBQUssbUJBQW1CLEVBR3hCLEtBQUssV0FBVyxFQVlqQixNQUFNLHNCQUFzQixDQUFDO0FBSzlCLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhEOzs7O0dBSUc7QUFDSCx3QkFBZ0IseUJBQXlCLENBQ3ZDLFFBQVEsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLG1CQUFtQixDQUFDLEdBQzVDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQVd0QztBQXdERCw2REFBNkQ7QUFDN0QsZUFBTyxNQUFNLGVBQWUsRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQTJDLENBQUM7QUE4RjFGOzs7R0FHRztBQUNILHdCQUFnQixZQUFZLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FFMUUifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default_fixtures.d.ts","sourceRoot":"","sources":["../../../src/oracle/test-resolver/default_fixtures.ts"],"names":[],"mappings":"AAIA,OAAO,EAeL,KAAK,mBAAmB,EAGxB,KAAK,WAAW,EAYjB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAC5C,MAAM,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAWtC;AAwDD,6DAA6D;AAC7D,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,GAAG,CAAC,EAA2C,CAAC;AA8F1F;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1E"}
@@ -0,0 +1,200 @@
1
+ import { AztecAddress } from '@aztec/aztec.js/addresses';
2
+ import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
3
+ import { Fr } from '@aztec/foundation/curves/bn254';
4
+ import { EthAddress } from '@aztec/foundation/eth-address';
5
+ import { AZTEC_ADDRESS, BIGINT, BLOCK_HASH, BLOCK_NUMBER, BOOL, BoundedVec, DELIVERY_MODE, ETH_ADDRESS, FIELD, FUNCTION_SELECTOR, LEAF_INDEX, NOTE_SELECTOR, Option, SLOT_NUMBER, U8, U32, U64, U128, isArrayMapping, isBoundedVecMapping, isFixedArrayMapping, isFixedBoundedVecMapping, isOptionMapping, isStructMapping, tryFieldWidth } from '@aztec/pxe/simulator';
6
+ import { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
7
+ import { BlockHash } from '@aztec/stdlib/block';
8
+ import { AppTaggingSecretKind } from '@aztec/stdlib/logs';
9
+ /**
10
+ * Synthesizes fixture scenarios for every oracle in the registry whose parameters and return are built from scalars,
11
+ * arrays/bounded vecs of them, `Option`s of them, or `STRUCT`s over them. The matching Noir serialization tests are
12
+ * auto-generated by `#[generate_oracle_tests]` from the same seed/scenario convention.
13
+ */ export function synthesizeDefaultFixtures(registry) {
14
+ const synthesized = {};
15
+ for (const [name, entry] of Object.entries(registry)){
16
+ const scenarios = synthesizeScenarios(entry);
17
+ if (scenarios !== undefined) {
18
+ synthesized[name] = scenarios;
19
+ }
20
+ }
21
+ return synthesized;
22
+ }
23
+ /**
24
+ * The scalar test-value implementations, mirroring the Noir synthesizer's `scalars` table in
25
+ * `noir-projects/labs/aztec-nr/.../macros/oracle_testing.nr` exactly.
26
+ */ const SCALAR_IMPLS = [
27
+ scalar(FIELD, (seed)=>new Fr(seed)),
28
+ scalar(U32, (seed)=>seed),
29
+ scalar(BLOCK_NUMBER, (seed)=>BlockNumber(seed)),
30
+ scalar(BIGINT, (seed)=>BigInt(seed)),
31
+ scalar(U64, (seed)=>BigInt(seed)),
32
+ scalar(U128, (seed)=>BigInt(seed)),
33
+ scalar(LEAF_INDEX, (seed)=>seed),
34
+ scalar(U8, (seed)=>seed),
35
+ scalar(BOOL, (seed)=>seed % 2 !== 0),
36
+ scalar(AZTEC_ADDRESS, (seed)=>AztecAddress.fromNumberUnsafe(seed)),
37
+ scalar(ETH_ADDRESS, (seed)=>EthAddress.fromField(new Fr(seed))),
38
+ scalar(FUNCTION_SELECTOR, (seed)=>FunctionSelector.fromField(new Fr(seed))),
39
+ scalar(NOTE_SELECTOR, (seed)=>NoteSelector.fromField(new Fr(seed))),
40
+ scalar(BLOCK_HASH, (seed)=>new BlockHash(new Fr(seed))),
41
+ scalar(SLOT_NUMBER, (seed)=>SlotNumber(seed)),
42
+ // Only two delivery modes are valid for tagging, so the seed alternates between them, matching the Noir impl.
43
+ scalar(DELIVERY_MODE, (seed)=>seed % 2 === 0 ? AppTaggingSecretKind.UNCONSTRAINED : AppTaggingSecretKind.CONSTRAINED)
44
+ ];
45
+ /**
46
+ * The composite test-value implementations, one per combinator, mirroring the Noir synthesizer's `synthesizers` table.
47
+ */ const COMPOSITE_IMPLS = [
48
+ composite(isOptionMapping, (type, seed)=>[
49
+ named(Option.some(testValueFor(type.inner, seed)), 'some'),
50
+ named(Option.none(testValueFor(type.inner, seed)), 'none')
51
+ ]),
52
+ composite(isArrayMapping, (type, seed)=>[
53
+ unnamed(collectionData(type.inner, seed, DEFAULT_ARRAY_LENGTH))
54
+ ]),
55
+ composite(isBoundedVecMapping, (type, seed)=>[
56
+ unnamed(BoundedVec.from({
57
+ data: collectionData(type.inner, seed, DEFAULT_ARRAY_LENGTH),
58
+ maxLength: BOUNDED_VEC_MAX_LENGTH
59
+ }))
60
+ ]),
61
+ composite(isStructMapping, (type, seed)=>[
62
+ unnamed(structValue(type, seed))
63
+ ]),
64
+ // A fixed-length array uses its real (signature) length, unlike the generic-length ARRAY which is pinned to
65
+ // DEFAULT_ARRAY_LENGTH.
66
+ composite(isFixedArrayMapping, (type, seed)=>[
67
+ unnamed(collectionData(type.inner, seed, type.length))
68
+ ]),
69
+ // Same for a fixed-capacity bounded vec: real capacity, DEFAULT_ARRAY_LENGTH elements (its value type is a plain
70
+ // element array, unlike the two-slot BOUNDED_VEC), clamped to the capacity so small vecs stay valid.
71
+ composite(isFixedBoundedVecMapping, (type, seed)=>[
72
+ unnamed(collectionData(type.inner, seed, Math.min(DEFAULT_ARRAY_LENGTH, type.maxLength)))
73
+ ])
74
+ ];
75
+ /** The scalar mappings with a registered test-value impl. */ export const SCALAR_MAPPINGS = SCALAR_IMPLS.map((impl)=>impl.mapping);
76
+ /**
77
+ * The base every seed is offset by, applied once where a parameter's position becomes its seed, so generated values
78
+ * stay clear of 0. Must match `SEED_BASE` in the Noir `oracle_testing.nr`.
79
+ */ const SEED_BASE = 10;
80
+ /** Elements per synthesized array and bounded vec. Must match `TEST_COLLECTION_LEN` in the Noir `oracle_testing.nr`. */ const DEFAULT_ARRAY_LENGTH = 3;
81
+ /**
82
+ * Capacity of synthesized bounded vecs, deliberately larger than the data length so padding is exercised. Must match
83
+ * `TEST_BOUNDED_VEC_CAP` in the Noir `oracle_testing.nr`.
84
+ */ const BOUNDED_VEC_MAX_LENGTH = 5;
85
+ function unnamed(value) {
86
+ return {
87
+ value
88
+ };
89
+ }
90
+ function named(value, name) {
91
+ return {
92
+ value,
93
+ name
94
+ };
95
+ }
96
+ /** A scalar impl yielding a single unnamed scenario. */ function scalar(mapping, value) {
97
+ return {
98
+ mapping,
99
+ scenarios: (_type, seed)=>[
100
+ unnamed(value(seed))
101
+ ]
102
+ };
103
+ }
104
+ /** A composite impl, recursing through the matched mapping's element/inner mapping. */ function composite(guard, scenarios) {
105
+ return {
106
+ match: guard,
107
+ scenarios: (type, seed)=>scenarios(type, seed)
108
+ };
109
+ }
110
+ /** Synthesized element values for a collection. */ function collectionData(element, seed, length) {
111
+ return Array.from({
112
+ length
113
+ }, (_, i)=>testValueFor(element, seed + i));
114
+ }
115
+ /**
116
+ * The synthesized prop bag for a struct: each field's first scenario, seeded at the field's flat wire offset so the
117
+ * values depend on the wire layout rather than on how each side groups its fields. Mirrors the Noir reflected impls.
118
+ */ function structValue(type, seed) {
119
+ const value = {};
120
+ let offset = 0;
121
+ for (const field of type.fields){
122
+ value[field.name] = testValueFor(field.type, seed + offset);
123
+ const width = tryFieldWidth(field.type.shape);
124
+ if (width === undefined) {
125
+ // A variable-width field has no flat offset to seed the next field at, so only this oracle is unsynthesizable.
126
+ throw new UnsynthesizableTypeError(field.type, `struct field '${field.name}' has a variable-width shape`);
127
+ }
128
+ offset += width;
129
+ }
130
+ return value;
131
+ }
132
+ /**
133
+ * The [`Scenario`]s for `type` at `seed`, one per serialization *shape*, mirroring the Noir `scenarios_for`
134
+ * dispatcher. Throws if the type has no matching impl.
135
+ */ function scenariosForType(type, seed) {
136
+ const impl = SCALAR_IMPLS.find((i)=>i.mapping === type) ?? COMPOSITE_IMPLS.find((i)=>i.match(type));
137
+ if (!impl) {
138
+ throw new UnsynthesizableTypeError(type);
139
+ }
140
+ return impl.scenarios(type, seed);
141
+ }
142
+ /**
143
+ * The test value of `type` at `seed`, matching what the Noir synthesizer produces for the same type and seed. Throws
144
+ * for types without a test-value impl.
145
+ */ export function testValueFor(type, seed) {
146
+ return scenariosForType(type, seed)[0].value;
147
+ }
148
+ class UnsynthesizableTypeError extends Error {
149
+ constructor(type, detail){
150
+ super(detail ?? `No test-value impl for type: ${JSON.stringify(Object.keys(type))}`);
151
+ this.name = 'UnsynthesizableTypeError';
152
+ }
153
+ }
154
+ /**
155
+ * Synthesizes the scenarios for one oracle by zipping every position's [`Scenario`] list to one case per test (a
156
+ * shorter list wraps around via mod), mirroring the Noir macro. Returns `undefined` if any param or return type is
157
+ * unsynthesizable (ephemeral arrays, structs with a variable-width field).
158
+ */ function synthesizeScenarios(entry) {
159
+ try {
160
+ return synthesizeScenariosOrThrow(entry);
161
+ } catch (e) {
162
+ if (e instanceof UnsynthesizableTypeError) {
163
+ return undefined;
164
+ }
165
+ throw e;
166
+ }
167
+ }
168
+ function synthesizeScenariosOrThrow(entry) {
169
+ const params = entry.params.map((param, index)=>({
170
+ name: param.name,
171
+ scenarios: scenariosForType(param.type, SEED_BASE + index)
172
+ }));
173
+ // The return's seed is the slot right after the last parameter, so its value is distinct from every parameter.
174
+ const returnScenarios = entry.returnType === undefined ? undefined : scenariosForType(entry.returnType, SEED_BASE + entry.params.length);
175
+ // Positions with more than one scenario drive the test count; their names are zipped together (joined with `+`) per
176
+ // test, matching the announcements the Noir tests emit and the resolver joins.
177
+ const positions = [
178
+ ...params.map((p)=>p.scenarios),
179
+ ...returnScenarios !== undefined ? [
180
+ returnScenarios
181
+ ] : []
182
+ ];
183
+ const namedPositions = positions.filter((s)=>s.length > 1);
184
+ const testCount = Math.max(1, ...positions.map((s)=>s.length));
185
+ const scenarios = [];
186
+ for(let index = 0; index < testCount; index++){
187
+ const inputs = {};
188
+ for (const { name, scenarios: cases } of params){
189
+ inputs[name] = cases[index % cases.length].value;
190
+ }
191
+ const output = returnScenarios === undefined ? undefined : returnScenarios[index % returnScenarios.length].value;
192
+ const scenario = namedPositions.length === 0 ? undefined : namedPositions.map((cases)=>cases[index % cases.length].name).join('+');
193
+ scenarios.push({
194
+ scenario,
195
+ inputs,
196
+ output
197
+ });
198
+ }
199
+ return scenarios;
200
+ }
@@ -0,0 +1,9 @@
1
+ import type { Logger } from '@aztec/foundation/log';
2
+ import { OracleTestResolver } from './resolver.js';
3
+ /** Creates an RPC server backed by the oracle test resolver. */
4
+ export declare function createOracleTestRpcServer(logger: Logger): {
5
+ server: import("@aztec/foundation/json-rpc/server").SafeJsonRpcServer;
6
+ resolver: OracleTestResolver;
7
+ };
8
+ export { OracleTestResolver } from './resolver.js';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vcmFjbGUvdGVzdC1yZXNvbHZlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVFwRCxPQUFPLEVBQTRCLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBd0I3RSxnRUFBZ0U7QUFDaEUsd0JBQWdCLHlCQUF5QixDQUFDLE1BQU0sRUFBRSxNQUFNOzs7RUFNdkQ7QUFFRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxlQUFlLENBQUMifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/oracle/test-resolver/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAQpD,OAAO,EAA4B,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAwB7E,gEAAgE;AAChE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM;;;EAMvD;AAED,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,32 @@
1
+ /* eslint-disable camelcase */ import { createSafeJsonRpcServer } from '@aztec/foundation/json-rpc/server';
2
+ import { zodFor } from '@aztec/stdlib/schemas';
3
+ import { z } from 'zod';
4
+ import { ForeignCallArgsSchema, ForeignCallResultSchema } from '../../utils/encoding.js';
5
+ import { TXE_ORACLE_REGISTRY } from '../txe_oracle_registry.js';
6
+ import { OracleTestResolver } from './resolver.js';
7
+ const OracleTestCallInputSchema = zodFor()(z.object({
8
+ session_id: z.number().nonnegative(),
9
+ function: z.string(),
10
+ root_path: z.string(),
11
+ package_name: z.string(),
12
+ inputs: ForeignCallArgsSchema
13
+ }));
14
+ const OracleTestRpcHandlerSchema = {
15
+ resolve_foreign_call: z.function({
16
+ input: z.tuple([
17
+ OracleTestCallInputSchema
18
+ ]),
19
+ output: ForeignCallResultSchema
20
+ })
21
+ };
22
+ /** Creates an RPC server backed by the oracle test resolver. */ export function createOracleTestRpcServer(logger) {
23
+ const resolver = OracleTestResolver.fromRegistry(TXE_ORACLE_REGISTRY, logger);
24
+ const server = createSafeJsonRpcServer(resolver, OracleTestRpcHandlerSchema, {
25
+ http200OnError: true
26
+ });
27
+ return {
28
+ server,
29
+ resolver
30
+ };
31
+ }
32
+ export { OracleTestResolver } from './resolver.js';
@@ -0,0 +1,48 @@
1
+ import type { Logger } from '@aztec/foundation/log';
2
+ import { BoundedVec, type OracleRegistryEntry } from '@aztec/pxe/simulator';
3
+ import type { ForeignCallArgs, ForeignCallResult } from '../../utils/encoding.js';
4
+ export declare const SET_SCENARIO_ENTRY: OracleRegistryEntry<[import("@aztec/pxe/simulator").NamedValue<"name", BoundedVec<number>>], void>;
5
+ export type OracleTestCallInput = {
6
+ session_id: number;
7
+ function: string;
8
+ root_path: string;
9
+ package_name: string;
10
+ inputs: ForeignCallArgs;
11
+ };
12
+ /**
13
+ * One test case for an oracle: the expected deserialized `inputs`, the `output` to serialize back to Noir, and the
14
+ * `scenario` name (`some`/`none`) the matching Noir test announces. Single-scenario oracles leave `scenario` undefined
15
+ * and are selected automatically.
16
+ */
17
+ export interface OracleTestScenario {
18
+ scenario?: string;
19
+ inputs: Record<string, unknown>;
20
+ output: unknown;
21
+ }
22
+ /**
23
+ * Oracle resolver for serialization tests. Selects a fixture scenario, verifies that the received inputs match, and
24
+ * returns the corresponding fixture output.
25
+ *
26
+ * For oracles with a single scenario, it is selected automatically. For oracles with multiple scenarios, the Noir test
27
+ * announces the scenario by name via the `aztec_oracle_test_set_scenario` meta-oracle before calling the real oracle.
28
+ */
29
+ export declare class OracleTestResolver {
30
+ #private;
31
+ private readonly registry;
32
+ private readonly fixtures;
33
+ private readonly calledOracles;
34
+ private readonly pendingScenario;
35
+ private readonly logger;
36
+ constructor(registry: Record<string, OracleRegistryEntry>, fixtures: Record<string, OracleTestScenario[]>, logger?: Logger);
37
+ /**
38
+ * Builds a resolver whose fixtures are the default scenarios synthesized from the registry's type mappings. The
39
+ * matching Noir serialization tests are auto-generated by `#[generate_oracle_tests]` from the same convention.
40
+ */
41
+ static fromRegistry(registry: Record<string, OracleRegistryEntry>, logger?: Logger): OracleTestResolver;
42
+ resolve_foreign_call(callData: OracleTestCallInput): Promise<ForeignCallResult>;
43
+ /** Returns oracles that have a fixture defined but were never called during testing. */
44
+ getUncalledFixtures(): string[];
45
+ /** Returns oracles in the registry that have no fixture defined at all. */
46
+ getMissingFixtures(): string[];
47
+ }
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vcmFjbGUvdGVzdC1yZXNvbHZlci9yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUdwRCxPQUFPLEVBQWUsVUFBVSxFQUFVLEtBQUssbUJBQW1CLEVBQWlCLE1BQU0sc0JBQXNCLENBQUM7QUFFaEgsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFNbEYsZUFBTyxNQUFNLGtCQUFrQixvR0FBbUUsQ0FBQztBQUVuRyxNQUFNLE1BQU0sbUJBQW1CLEdBQUc7SUFDaEMsVUFBVSxFQUFFLE1BQU0sQ0FBQztJQUNuQixRQUFRLEVBQUUsTUFBTSxDQUFDO0lBQ2pCLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsWUFBWSxFQUFFLE1BQU0sQ0FBQztJQUNyQixNQUFNLEVBQUUsZUFBZSxDQUFDO0NBQ3pCLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsTUFBTSxXQUFXLGtCQUFrQjtJQUNqQyxRQUFRLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDbEIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEMsTUFBTSxFQUFFLE9BQU8sQ0FBQztDQUNqQjtBQUVEOzs7Ozs7R0FNRztBQUNILHFCQUFhLGtCQUFrQjs7SUFNM0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRO0lBQ3pCLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUTtJQU4zQixPQUFPLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBcUI7SUFDbkQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQTZCO0lBQzdELE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFTO0lBRWhDLFlBQ21CLFFBQVEsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLG1CQUFtQixDQUFDLEVBQzdDLFFBQVEsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLGtCQUFrQixFQUFFLENBQUMsRUFDL0QsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUdoQjtJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsbUJBQW1CLENBQUMsRUFBRSxNQUFNLENBQUMsRUFBRSxNQUFNLEdBQUcsa0JBQWtCLENBRXRHO0lBR0ssb0JBQW9CLENBQUMsUUFBUSxFQUFFLG1CQUFtQixHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQTRCcEY7SUFFRCx3RkFBd0Y7SUFDeEYsbUJBQW1CLElBQUksTUFBTSxFQUFFLENBRTlCO0lBRUQsMkVBQTJFO0lBQzNFLGtCQUFrQixJQUFJLE1BQU0sRUFBRSxDQUU3QjtDQXNFRiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../src/oracle/test-resolver/resolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,EAAe,UAAU,EAAU,KAAK,mBAAmB,EAAiB,MAAM,sBAAsB,CAAC;AAEhH,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAMlF,eAAO,MAAM,kBAAkB,oGAAmE,CAAC;AAEnG,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,eAAe,CAAC;CACzB,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;GAMG;AACH,qBAAa,kBAAkB;;IAM3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAN3B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6B;IAC7D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC,YACmB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAC7C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,EAC/D,MAAM,CAAC,EAAE,MAAM,EAGhB;IAED;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAEtG;IAGK,oBAAoB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA4BpF;IAED,wFAAwF;IACxF,mBAAmB,IAAI,MAAM,EAAE,CAE9B;IAED,2EAA2E;IAC3E,kBAAkB,IAAI,MAAM,EAAE,CAE7B;CAsEF"}