@aztec/txe 5.0.0-rc.1 → 5.0.0-rc.2
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.
- package/dest/AuthRegistry-URXCCPYF.js +3 -0
- package/dest/AuthRegistry-URXCCPYF.js.map +7 -0
- package/dest/{ContractClassRegistry-EHVIHGEK.js → ContractClassRegistry-5RDBM6TC.js} +1 -1
- package/dest/{ContractClassRegistry-EHVIHGEK.js.map → ContractClassRegistry-5RDBM6TC.js.map} +2 -2
- package/dest/{ContractInstanceRegistry-DWZDXHRG.js → ContractInstanceRegistry-GCR4G4D7.js} +1 -1
- package/dest/{ContractInstanceRegistry-DWZDXHRG.js.map → ContractInstanceRegistry-GCR4G4D7.js.map} +1 -1
- package/dest/{FeeJuice-MI32ZO7B.js → FeeJuice-O3KOSZO5.js} +1 -1
- package/dest/{FeeJuice-MI32ZO7B.js.map → FeeJuice-O3KOSZO5.js.map} +1 -1
- package/dest/HandshakeRegistry-TXSMHMNY.js +3 -0
- package/dest/HandshakeRegistry-TXSMHMNY.js.map +7 -0
- package/dest/MultiCallEntrypoint-P4FSRXAD.js +3 -0
- package/dest/MultiCallEntrypoint-P4FSRXAD.js.map +7 -0
- package/dest/SchnorrAccount-AQZX7ROU.js +3 -0
- package/dest/SchnorrAccount-AQZX7ROU.js.map +7 -0
- package/dest/SchnorrInitializerlessAccount-KMX2H3J6.js +3 -0
- package/dest/SchnorrInitializerlessAccount-KMX2H3J6.js.map +7 -0
- package/dest/bin/index.js +1 -1
- package/dest/bin/oracle_test_server.js +2 -2
- package/dest/{chunk-UPW55EJX.js → chunk-I6DL4FT2.js} +2 -2
- package/dest/chunk-IAO54JS2.js +266 -0
- package/dest/{chunk-5U25VAFR.js.map → chunk-IAO54JS2.js.map} +4 -4
- package/dest/constants.d.ts +1 -1
- package/dest/constants.d.ts.map +1 -1
- package/dest/constants.js +1 -1
- package/dest/metafile.json +7241 -6706
- package/dest/oracle/interfaces.d.ts +10 -5
- package/dest/oracle/interfaces.d.ts.map +1 -1
- package/dest/oracle/test-resolver/default_fixtures.d.ts +9 -0
- package/dest/oracle/test-resolver/default_fixtures.d.ts.map +1 -0
- package/dest/oracle/test-resolver/default_fixtures.js +164 -0
- package/dest/oracle/test-resolver/index.d.ts +1 -1
- package/dest/oracle/test-resolver/index.d.ts.map +1 -1
- package/dest/oracle/test-resolver/index.js +1 -2
- package/dest/oracle/test-resolver/resolver.d.ts +22 -8
- package/dest/oracle/test-resolver/resolver.d.ts.map +1 -1
- package/dest/oracle/test-resolver/resolver.js +62 -32
- package/dest/oracle/txe_oracle_public_context.d.ts +4 -4
- package/dest/oracle/txe_oracle_public_context.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_registry.d.ts +156 -3
- package/dest/oracle/txe_oracle_registry.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_registry.js +179 -26
- package/dest/oracle/txe_oracle_top_level_context.d.ts +20 -8
- package/dest/oracle/txe_oracle_top_level_context.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_top_level_context.js +72 -30
- package/dest/oracle/txe_oracle_version.d.ts +2 -2
- package/dest/oracle/txe_oracle_version.js +2 -2
- package/dest/rpc_translator.d.ts +10 -2
- package/dest/rpc_translator.d.ts.map +1 -1
- package/dest/rpc_translator.js +69 -5
- package/dest/server.bundle.js +1 -1
- package/dest/state_machine/archiver.d.ts +1 -1
- package/dest/state_machine/archiver.d.ts.map +1 -1
- package/dest/state_machine/archiver.js +1 -2
- package/dest/state_machine/dummy_p2p_client.d.ts +3 -2
- package/dest/state_machine/dummy_p2p_client.d.ts.map +1 -1
- package/dest/state_machine/dummy_p2p_client.js +3 -0
- package/dest/state_machine/global_variable_builder.d.ts +3 -4
- package/dest/state_machine/global_variable_builder.d.ts.map +1 -1
- package/dest/state_machine/global_variable_builder.js +0 -3
- package/dest/state_machine/index.d.ts +6 -5
- package/dest/state_machine/index.d.ts.map +1 -1
- package/dest/state_machine/index.js +35 -10
- package/dest/state_machine/synchronizer.d.ts +3 -2
- package/dest/state_machine/synchronizer.d.ts.map +1 -1
- package/dest/state_machine/synchronizer.js +3 -2
- package/dest/txe_session.d.ts +8 -6
- package/dest/txe_session.d.ts.map +1 -1
- package/dest/txe_session.js +53 -27
- package/dest/utils/block_creation.d.ts +2 -2
- package/dest/utils/block_creation.d.ts.map +1 -1
- package/dest/utils/block_creation.js +2 -2
- package/dest/worker.bundle.js +1 -1
- package/package.json +17 -17
- package/src/bin/oracle_test_server.ts +2 -2
- package/src/constants.ts +1 -1
- package/src/oracle/interfaces.ts +9 -3
- package/src/oracle/test-resolver/default_fixtures.ts +226 -0
- package/src/oracle/test-resolver/index.ts +1 -2
- package/src/oracle/test-resolver/resolver.ts +74 -41
- package/src/oracle/txe_oracle_public_context.ts +3 -3
- package/src/oracle/txe_oracle_registry.ts +106 -13
- package/src/oracle/txe_oracle_top_level_context.ts +76 -30
- package/src/oracle/txe_oracle_version.ts +2 -2
- package/src/rpc_translator.ts +93 -5
- package/src/state_machine/archiver.ts +0 -1
- package/src/state_machine/dummy_p2p_client.ts +5 -0
- package/src/state_machine/global_variable_builder.ts +2 -16
- package/src/state_machine/index.ts +31 -29
- package/src/state_machine/synchronizer.ts +3 -2
- package/src/txe_session.ts +62 -23
- package/src/utils/block_creation.ts +2 -1
- package/dest/AuthRegistry-CPGFQR26.js +0 -3
- package/dest/AuthRegistry-CPGFQR26.js.map +0 -7
- package/dest/HandshakeRegistry-3KSP3ITH.js +0 -3
- package/dest/HandshakeRegistry-3KSP3ITH.js.map +0 -7
- package/dest/MultiCallEntrypoint-IU7HYFYE.js +0 -3
- package/dest/MultiCallEntrypoint-IU7HYFYE.js.map +0 -7
- package/dest/SchnorrAccount-6TUE7JX4.js +0 -3
- package/dest/SchnorrAccount-6TUE7JX4.js.map +0 -7
- package/dest/SchnorrInitializerlessAccount-S3DU2DJK.js +0 -3
- package/dest/SchnorrInitializerlessAccount-S3DU2DJK.js.map +0 -7
- package/dest/chunk-5U25VAFR.js +0 -265
- package/dest/oracle/test-resolver/fixtures.d.ts +0 -43
- package/dest/oracle/test-resolver/fixtures.d.ts.map +0 -1
- package/dest/oracle/test-resolver/fixtures.js +0 -39
- package/src/oracle/test-resolver/fixtures.ts +0 -84
- /package/dest/{chunk-UPW55EJX.js.map → chunk-I6DL4FT2.js.map} +0 -0
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { type NamedValue } from '@aztec/pxe/simulator';
|
|
2
|
-
import { TXE_ORACLE_REGISTRY } from '../txe_oracle_registry.js';
|
|
3
|
-
/**
|
|
4
|
-
* Fixture definitions for oracle roundtrip tests.
|
|
5
|
-
*
|
|
6
|
-
* Each key is an oracle name from TXE_ORACLE_REGISTRY, and the value is an array of scenarios. The resolver selects a
|
|
7
|
-
* scenario (by name for multi-scenario oracles, or automatically for single-scenario ones), verifies that the
|
|
8
|
-
* deserialized inputs match the fixture's expected values, and returns the fixture output.
|
|
9
|
-
*
|
|
10
|
-
* To add a new oracle test:
|
|
11
|
-
* 1. Add a fixture entry here with the expected inputs and output.
|
|
12
|
-
* 2. Add a Noir `#[oracle_test]` function that calls the oracle with the same input values and asserts the output.
|
|
13
|
-
*/
|
|
14
|
-
export declare const ORACLE_TEST_FIXTURES: OracleTestFixtures;
|
|
15
|
-
/**
|
|
16
|
-
* Converts a `NamedValue` tuple (from `deserializeParams`) to a record.
|
|
17
|
-
* `[NamedValue<'slot', Fr>, NamedValue<'addr', AztecAddress>]` → `{ slot: Fr, addr: AztecAddress }`.
|
|
18
|
-
*/
|
|
19
|
-
type NamedValuesToRecord<T extends readonly NamedValue[]> = {
|
|
20
|
-
[K in T[number] as K extends NamedValue<infer N, any> ? N : never]: K extends NamedValue<string, infer V> ? V : never;
|
|
21
|
-
};
|
|
22
|
-
/** Extracts the deserialized inputs record type from an oracle registry entry. */
|
|
23
|
-
type OracleInputs<K extends keyof typeof TXE_ORACLE_REGISTRY> = (typeof TXE_ORACLE_REGISTRY)[K] extends {
|
|
24
|
-
deserializeParams(...args: any[]): infer P;
|
|
25
|
-
} ? P extends readonly NamedValue[] ? NamedValuesToRecord<P> : Record<string, never> : Record<string, never>;
|
|
26
|
-
/** Extracts the return type from an oracle registry entry's serializeReturn method. */
|
|
27
|
-
type OracleOutput<K extends keyof typeof TXE_ORACLE_REGISTRY> = (typeof TXE_ORACLE_REGISTRY)[K] extends {
|
|
28
|
-
serializeReturn(result: infer R): any;
|
|
29
|
-
} ? R : void;
|
|
30
|
-
/** A single test scenario for an oracle, typed against the oracle registry. */
|
|
31
|
-
export interface OracleTestScenario<K extends keyof typeof TXE_ORACLE_REGISTRY = keyof typeof TXE_ORACLE_REGISTRY> {
|
|
32
|
-
/** Scenario name for selection via `#[oracle_test("name")]`. Required when an oracle has multiple scenarios. */
|
|
33
|
-
scenario?: string;
|
|
34
|
-
/** Expected deserialized inputs. */
|
|
35
|
-
inputs: OracleInputs<K>;
|
|
36
|
-
/** Return value to serialize back to Noir. */
|
|
37
|
-
output: OracleOutput<K>;
|
|
38
|
-
}
|
|
39
|
-
type OracleTestFixtures = {
|
|
40
|
-
[K in keyof typeof TXE_ORACLE_REGISTRY]?: OracleTestScenario<K>[];
|
|
41
|
-
};
|
|
42
|
-
export {};
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vcmFjbGUvdGVzdC1yZXNvbHZlci9maXh0dXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsS0FBSyxVQUFVLEVBQVUsTUFBTSxzQkFBc0IsQ0FBQztBQUUvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVoRTs7Ozs7Ozs7OztHQVVHO0FBQ0gsZUFBTyxNQUFNLG9CQUFvQixFQUFFLGtCQW9CbEMsQ0FBQztBQUVGOzs7R0FHRztBQUNILEtBQUssbUJBQW1CLENBQUMsQ0FBQyxTQUFTLFNBQVMsVUFBVSxFQUFFLElBQUk7S0FDekQsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxTQUFTLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSztDQUN0SCxDQUFDO0FBRUYsa0ZBQWtGO0FBQ2xGLEtBQUssWUFBWSxDQUFDLENBQUMsU0FBUyxNQUFNLE9BQU8sbUJBQW1CLElBQUksQ0FBQyxPQUFPLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7SUFDdEcsaUJBQWlCLENBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUM7Q0FDNUMsR0FDRyxDQUFDLFNBQVMsU0FBUyxVQUFVLEVBQUUsR0FDN0IsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLEdBQ3RCLE1BQU0sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQ3ZCLE1BQU0sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFFMUIsdUZBQXVGO0FBQ3ZGLEtBQUssWUFBWSxDQUFDLENBQUMsU0FBUyxNQUFNLE9BQU8sbUJBQW1CLElBQUksQ0FBQyxPQUFPLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7SUFDdEcsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUM7Q0FDdkMsR0FDRyxDQUFDLEdBQ0QsSUFBSSxDQUFDO0FBRVQsK0VBQStFO0FBQy9FLE1BQU0sV0FBVyxrQkFBa0IsQ0FBQyxDQUFDLFNBQVMsTUFBTSxPQUFPLG1CQUFtQixHQUFHLE1BQU0sT0FBTyxtQkFBbUI7SUFDL0csZ0hBQWdIO0lBQ2hILFFBQVEsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNsQixvQ0FBb0M7SUFDcEMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4Qiw4Q0FBOEM7SUFDOUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUN6QjtBQUVELEtBQUssa0JBQWtCLEdBQUc7S0FDdkIsQ0FBQyxJQUFJLE1BQU0sT0FBTyxtQkFBbUIsQ0FBQyxDQUFDLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEVBQUU7Q0FDbEUsQ0FBQyJ9
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../../src/oracle/test-resolver/fixtures.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,UAAU,EAAU,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,EAAE,kBAoBlC,CAAC;AAEF;;;GAGG;AACH,KAAK,mBAAmB,CAAC,CAAC,SAAS,SAAS,UAAU,EAAE,IAAI;KACzD,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,SAAS,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CACtH,CAAC;AAEF,kFAAkF;AAClF,KAAK,YAAY,CAAC,CAAC,SAAS,MAAM,OAAO,mBAAmB,IAAI,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,SAAS;IACtG,iBAAiB,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC;CAC5C,GACG,CAAC,SAAS,SAAS,UAAU,EAAE,GAC7B,mBAAmB,CAAC,CAAC,CAAC,GACtB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACvB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAE1B,uFAAuF;AACvF,KAAK,YAAY,CAAC,CAAC,SAAS,MAAM,OAAO,mBAAmB,IAAI,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,SAAS;IACtG,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC;CACvC,GACG,CAAC,GACD,IAAI,CAAC;AAET,+EAA+E;AAC/E,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,MAAM,OAAO,mBAAmB,GAAG,MAAM,OAAO,mBAAmB;IAC/G,gHAAgH;IAChH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IACxB,8CAA8C;IAC9C,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;CACzB;AAED,KAAK,kBAAkB,GAAG;KACvB,CAAC,IAAI,MAAM,OAAO,mBAAmB,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE;CAClE,CAAC"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/* eslint-disable camelcase */ import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
2
|
-
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
|
-
import { Option } from '@aztec/pxe/simulator';
|
|
4
|
-
/**
|
|
5
|
-
* Fixture definitions for oracle roundtrip tests.
|
|
6
|
-
*
|
|
7
|
-
* Each key is an oracle name from TXE_ORACLE_REGISTRY, and the value is an array of scenarios. The resolver selects a
|
|
8
|
-
* scenario (by name for multi-scenario oracles, or automatically for single-scenario ones), verifies that the
|
|
9
|
-
* deserialized inputs match the fixture's expected values, and returns the fixture output.
|
|
10
|
-
*
|
|
11
|
-
* To add a new oracle test:
|
|
12
|
-
* 1. Add a fixture entry here with the expected inputs and output.
|
|
13
|
-
* 2. Add a Noir `#[oracle_test]` function that calls the oracle with the same input values and asserts the output.
|
|
14
|
-
*/ export const ORACLE_TEST_FIXTURES = {
|
|
15
|
-
aztec_avm_storageRead: [
|
|
16
|
-
makeScenario({
|
|
17
|
-
inputs: {
|
|
18
|
-
slot: new Fr(10),
|
|
19
|
-
contractAddress: AztecAddress.fromNumber(1)
|
|
20
|
-
},
|
|
21
|
-
output: new Fr(42)
|
|
22
|
-
})
|
|
23
|
-
],
|
|
24
|
-
aztec_prv_getSenderForTags: [
|
|
25
|
-
makeScenario({
|
|
26
|
-
scenario: 'some',
|
|
27
|
-
inputs: {},
|
|
28
|
-
output: Option.some(AztecAddress.fromNumber(42))
|
|
29
|
-
}),
|
|
30
|
-
makeScenario({
|
|
31
|
-
scenario: 'none',
|
|
32
|
-
inputs: {},
|
|
33
|
-
output: Option.none(AztecAddress.ZERO)
|
|
34
|
-
})
|
|
35
|
-
]
|
|
36
|
-
};
|
|
37
|
-
/** Creates a typed fixture scenario for a given oracle. */ function makeScenario(scenario) {
|
|
38
|
-
return scenario;
|
|
39
|
-
}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
/* eslint-disable camelcase */
|
|
2
|
-
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
3
|
-
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
|
-
import { type NamedValue, Option } from '@aztec/pxe/simulator';
|
|
5
|
-
|
|
6
|
-
import { TXE_ORACLE_REGISTRY } from '../txe_oracle_registry.js';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Fixture definitions for oracle roundtrip tests.
|
|
10
|
-
*
|
|
11
|
-
* Each key is an oracle name from TXE_ORACLE_REGISTRY, and the value is an array of scenarios. The resolver selects a
|
|
12
|
-
* scenario (by name for multi-scenario oracles, or automatically for single-scenario ones), verifies that the
|
|
13
|
-
* deserialized inputs match the fixture's expected values, and returns the fixture output.
|
|
14
|
-
*
|
|
15
|
-
* To add a new oracle test:
|
|
16
|
-
* 1. Add a fixture entry here with the expected inputs and output.
|
|
17
|
-
* 2. Add a Noir `#[oracle_test]` function that calls the oracle with the same input values and asserts the output.
|
|
18
|
-
*/
|
|
19
|
-
export const ORACLE_TEST_FIXTURES: OracleTestFixtures = {
|
|
20
|
-
aztec_avm_storageRead: [
|
|
21
|
-
makeScenario({
|
|
22
|
-
inputs: { slot: new Fr(10), contractAddress: AztecAddress.fromNumber(1) },
|
|
23
|
-
output: new Fr(42),
|
|
24
|
-
}),
|
|
25
|
-
],
|
|
26
|
-
|
|
27
|
-
aztec_prv_getSenderForTags: [
|
|
28
|
-
makeScenario({
|
|
29
|
-
scenario: 'some',
|
|
30
|
-
inputs: {},
|
|
31
|
-
output: Option.some(AztecAddress.fromNumber(42)),
|
|
32
|
-
}),
|
|
33
|
-
makeScenario({
|
|
34
|
-
scenario: 'none',
|
|
35
|
-
inputs: {},
|
|
36
|
-
output: Option.none(AztecAddress.ZERO),
|
|
37
|
-
}),
|
|
38
|
-
],
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Converts a `NamedValue` tuple (from `deserializeParams`) to a record.
|
|
43
|
-
* `[NamedValue<'slot', Fr>, NamedValue<'addr', AztecAddress>]` → `{ slot: Fr, addr: AztecAddress }`.
|
|
44
|
-
*/
|
|
45
|
-
type NamedValuesToRecord<T extends readonly NamedValue[]> = {
|
|
46
|
-
[K in T[number] as K extends NamedValue<infer N, any> ? N : never]: K extends NamedValue<string, infer V> ? V : never;
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
/** Extracts the deserialized inputs record type from an oracle registry entry. */
|
|
50
|
-
type OracleInputs<K extends keyof typeof TXE_ORACLE_REGISTRY> = (typeof TXE_ORACLE_REGISTRY)[K] extends {
|
|
51
|
-
deserializeParams(...args: any[]): infer P;
|
|
52
|
-
}
|
|
53
|
-
? P extends readonly NamedValue[]
|
|
54
|
-
? NamedValuesToRecord<P>
|
|
55
|
-
: Record<string, never>
|
|
56
|
-
: Record<string, never>;
|
|
57
|
-
|
|
58
|
-
/** Extracts the return type from an oracle registry entry's serializeReturn method. */
|
|
59
|
-
type OracleOutput<K extends keyof typeof TXE_ORACLE_REGISTRY> = (typeof TXE_ORACLE_REGISTRY)[K] extends {
|
|
60
|
-
serializeReturn(result: infer R): any;
|
|
61
|
-
}
|
|
62
|
-
? R
|
|
63
|
-
: void;
|
|
64
|
-
|
|
65
|
-
/** A single test scenario for an oracle, typed against the oracle registry. */
|
|
66
|
-
export interface OracleTestScenario<K extends keyof typeof TXE_ORACLE_REGISTRY = keyof typeof TXE_ORACLE_REGISTRY> {
|
|
67
|
-
/** Scenario name for selection via `#[oracle_test("name")]`. Required when an oracle has multiple scenarios. */
|
|
68
|
-
scenario?: string;
|
|
69
|
-
/** Expected deserialized inputs. */
|
|
70
|
-
inputs: OracleInputs<K>;
|
|
71
|
-
/** Return value to serialize back to Noir. */
|
|
72
|
-
output: OracleOutput<K>;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
type OracleTestFixtures = {
|
|
76
|
-
[K in keyof typeof TXE_ORACLE_REGISTRY]?: OracleTestScenario<K>[];
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
/** Creates a typed fixture scenario for a given oracle. */
|
|
80
|
-
function makeScenario<K extends keyof typeof TXE_ORACLE_REGISTRY>(
|
|
81
|
-
scenario: OracleTestScenario<K>,
|
|
82
|
-
): OracleTestScenario<K> {
|
|
83
|
-
return scenario;
|
|
84
|
-
}
|
|
File without changes
|