@aztec-labs/pxe 6.0.0-rc.1 → 6.0.0-rc.3
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/contract_function_simulator/contract_function_simulator.d.ts +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.js +7 -1
- package/dest/contract_function_simulator/index.d.ts +3 -1
- package/dest/contract_function_simulator/index.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/note_origin.d.ts +10 -0
- package/dest/contract_function_simulator/noir-structs/note_origin.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/note_origin.js +1 -0
- package/dest/contract_function_simulator/noir-structs/nullifier_status.d.ts +9 -0
- package/dest/contract_function_simulator/noir-structs/nullifier_status.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/nullifier_status.js +1 -0
- package/dest/contract_function_simulator/oracle/acir_callback.d.ts +5 -2
- package/dest/contract_function_simulator/oracle/acir_callback.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/acir_callback.js +10 -10
- package/dest/contract_function_simulator/oracle/oracle_registry.d.ts +6 -5
- package/dest/contract_function_simulator/oracle/oracle_registry.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/oracle_registry.js +37 -16
- package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts +9 -3
- package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/oracle_type_mappings.js +31 -1
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +3 -2
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution_oracle.js +16 -8
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +26 -10
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +60 -14
- package/dest/operation_queue.d.ts +6 -1
- package/dest/operation_queue.d.ts.map +1 -1
- package/dest/operation_queue.js +33 -3
- package/dest/oracle_version.d.ts +3 -3
- package/dest/oracle_version.js +3 -3
- package/dest/storage/fact_store/fact_service.d.ts +3 -3
- package/dest/storage/fact_store/fact_service.d.ts.map +1 -1
- package/dest/storage/fact_store/fact_store.d.ts +3 -3
- package/dest/storage/fact_store/fact_store.d.ts.map +1 -1
- package/dest/storage/fact_store/fact_store_keys.d.ts +3 -5
- package/dest/storage/fact_store/fact_store_keys.d.ts.map +1 -1
- package/dest/storage/fact_store/index.d.ts +2 -2
- package/dest/storage/fact_store/index.d.ts.map +1 -1
- package/dest/storage/fact_store/origin_state.d.ts +3 -3
- package/dest/storage/fact_store/origin_state.d.ts.map +1 -1
- package/dest/storage/fact_store/stored_fact.d.ts +5 -5
- package/dest/storage/fact_store/stored_fact.d.ts.map +1 -1
- package/package.json +18 -18
- package/src/contract_function_simulator/contract_function_simulator.ts +6 -1
- package/src/contract_function_simulator/index.ts +2 -0
- package/src/contract_function_simulator/noir-structs/note_origin.ts +11 -0
- package/src/contract_function_simulator/noir-structs/nullifier_status.ts +9 -0
- package/src/contract_function_simulator/oracle/acir_callback.ts +25 -14
- package/src/contract_function_simulator/oracle/oracle_registry.ts +26 -16
- package/src/contract_function_simulator/oracle/oracle_type_mappings.ts +20 -2
- package/src/contract_function_simulator/oracle/private_execution_oracle.ts +13 -10
- package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +91 -16
- package/src/operation_queue.ts +36 -5
- package/src/oracle_version.ts +3 -3
- package/src/storage/backwards_compatibility_tests/__snapshots__/AddressStore.json +6 -6
- package/src/storage/backwards_compatibility_tests/__snapshots__/KeyStore.json +12 -12
- package/src/storage/fact_store/fact_service.ts +2 -2
- package/src/storage/fact_store/fact_store.ts +2 -2
- package/src/storage/fact_store/fact_store_keys.ts +2 -4
- package/src/storage/fact_store/index.ts +1 -1
- package/src/storage/fact_store/origin_state.ts +2 -2
- package/src/storage/fact_store/stored_fact.ts +3 -3
- package/dest/contract_function_simulator/noir-structs/origin_block.d.ts +0 -11
- package/dest/contract_function_simulator/noir-structs/origin_block.d.ts.map +0 -1
- package/dest/contract_function_simulator/noir-structs/origin_block.js +0 -5
- package/src/contract_function_simulator/noir-structs/origin_block.ts +0 -8
|
@@ -2,7 +2,7 @@ import type { Fr } from '@aztec-labs/foundation/curves/bn254';
|
|
|
2
2
|
import type { AztecAsyncKVStore, AztecAsyncMap, AztecAsyncMultiMap } from '@aztec-labs/kv-store';
|
|
3
3
|
import { BaseStagingStore } from '../base_staging_store.js';
|
|
4
4
|
import type { ChangeSetId } from '../staged_write_coordinator.js';
|
|
5
|
-
import { FactCollectionKey, type FactCollectionTypeKey
|
|
5
|
+
import { type BlockReference, FactCollectionKey, type FactCollectionTypeKey } from './fact_store_keys.js';
|
|
6
6
|
import { type Fact, StoredFact } from './stored_fact.js';
|
|
7
7
|
type BlockNum = number;
|
|
8
8
|
type FactBuffer = Buffer;
|
|
@@ -64,7 +64,7 @@ export declare class FactStore extends BaseStagingStore<FactStoreChangeSet, Fact
|
|
|
64
64
|
* Idempotent: re-recording an identical fact (same collection, fact type, payload, and origin block) is a no-op.
|
|
65
65
|
* The same payload tied to a different origin block is a distinct fact.
|
|
66
66
|
*/
|
|
67
|
-
recordFact(factCollectionKey: FactCollectionKey, factTypeId: Fr, payload: Fr[], originBlock:
|
|
67
|
+
recordFact(factCollectionKey: FactCollectionKey, factTypeId: Fr, payload: Fr[], originBlock: BlockReference | undefined, changeSetId: ChangeSetId): Promise<void>;
|
|
68
68
|
/**
|
|
69
69
|
* Deletes a fact collection: removes every fact under the (scope-qualified) collection key.
|
|
70
70
|
*
|
|
@@ -98,4 +98,4 @@ type FactStoreDb = {
|
|
|
98
98
|
factsByBlock: AztecAsyncMultiMap<BlockNum, FactKeyStr>;
|
|
99
99
|
};
|
|
100
100
|
export {};
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdF9zdG9yZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0b3JhZ2UvZmFjdF9zdG9yZS9mYWN0X3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRzlELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWpHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBbUIsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsS0FBSyxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFHLE9BQU8sRUFBRSxLQUFLLElBQUksRUFBRSxVQUFVLEVBQWdCLE1BQU0sa0JBQWtCLENBQUM7QUFFdkUsS0FBSyxRQUFRLEdBQUcsTUFBTSxDQUFDO0FBQ3ZCLEtBQUssVUFBVSxHQUFHLE1BQU0sQ0FBQztBQUV6QixLQUFLLG9CQUFvQixHQUFHLE1BQU0sQ0FBQztBQUNuQyxLQUFLLFVBQVUsR0FBRyxNQUFNLENBQUM7QUFFekIsa0RBQWtEO0FBQ2xELE1BQU0sTUFBTSxjQUFjLEdBQUc7SUFBRSxHQUFHLEVBQUUsaUJBQWlCLENBQUM7SUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUE7Q0FBRSxDQUFDO0FBS3ZFLHdGQUF3RjtBQUN4RixLQUFLLFFBQVEsR0FBRztJQUFFLElBQUksRUFBRSxZQUFZLENBQUM7SUFBQyxJQUFJLEVBQUUsVUFBVSxDQUFBO0NBQUUsR0FBRztJQUFFLElBQUksRUFBRSxzQkFBc0IsQ0FBQztJQUFDLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQTtDQUFFLENBQUM7QUFFcEg7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEJHO0FBQ0gscUJBQWEsU0FBVSxTQUFRLGdCQUFnQixDQUFDLGtCQUFrQixFQUFFLFdBQVcsQ0FBQzs7SUFDOUUsTUFBTSw4Q0FBOEI7SUFFcEMsWUFBWSxLQUFLLEVBQUUsaUJBQWlCLEVBV25DO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxVQUFVLENBQ1IsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQ3BDLFVBQVUsRUFBRSxFQUFFLEVBQ2QsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUNiLFdBQVcsRUFBRSxjQUFjLEdBQUcsU0FBUyxFQUN2QyxXQUFXLEVBQUUsV0FBVyxHQUN2QixPQUFPLENBQUMsSUFBSSxDQUFDLENBT2Y7SUFFRDs7OztPQUlHO0lBQ0gsb0JBQW9CLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBSWxHO0lBRUQ7O09BRUc7SUFDSCxpQkFBaUIsQ0FDZixpQkFBaUIsRUFBRSxpQkFBaUIsRUFDcEMsV0FBVyxFQUFFLFdBQVcsR0FDdkIsT0FBTyxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUMsQ0FhckM7SUFFRDs7T0FFRztJQUNILHdCQUF3QixDQUN0QixxQkFBcUIsRUFBRSxxQkFBcUIsRUFDNUMsV0FBVyxFQUFFLFdBQVcsR0FDdkIsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBUzNCO0lBRUQsVUFBZ0IsY0FBYyxDQUFDLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxFQUFFLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FlNUY7SUFFRDs7OztPQUlHO0lBQ0gsVUFBZ0IsYUFBYSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBSS9FO0NBK09GO0FBRUQsa0hBQWtIO0FBQ2xILEtBQUssa0JBQWtCLEdBQUcsUUFBUSxFQUFFLENBQUM7QUFFckMsS0FBSyxXQUFXLEdBQUc7SUFDakIscUNBQXFDO0lBQ3JDLEtBQUssRUFBRSxhQUFhLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRTdDLGtGQUFrRjtJQUNsRixpQkFBaUIsRUFBRSxrQkFBa0IsQ0FBQyxvQkFBb0IsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUV4RSxtRkFBbUY7SUFDbkYsWUFBWSxFQUFFLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztDQUN4RCxDQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fact_store.d.ts","sourceRoot":"","sources":["../../../src/storage/fact_store/fact_store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AAG9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAEjG,OAAO,EAAE,gBAAgB,EAAmB,MAAM,0BAA0B,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"fact_store.d.ts","sourceRoot":"","sources":["../../../src/storage/fact_store/fact_store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AAG9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAEjG,OAAO,EAAE,gBAAgB,EAAmB,MAAM,0BAA0B,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,KAAK,cAAc,EAAE,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC1G,OAAO,EAAE,KAAK,IAAI,EAAE,UAAU,EAAgB,MAAM,kBAAkB,CAAC;AAEvE,KAAK,QAAQ,GAAG,MAAM,CAAC;AACvB,KAAK,UAAU,GAAG,MAAM,CAAC;AAEzB,KAAK,oBAAoB,GAAG,MAAM,CAAC;AACnC,KAAK,UAAU,GAAG,MAAM,CAAC;AAEzB,kDAAkD;AAClD,MAAM,MAAM,cAAc,GAAG;IAAE,GAAG,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,IAAI,EAAE,CAAA;CAAE,CAAC;AAKvE,wFAAwF;AACxF,KAAK,QAAQ,GAAG;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,sBAAsB,CAAC;IAAC,GAAG,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAEpH;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,SAAU,SAAQ,gBAAgB,CAAC,kBAAkB,EAAE,WAAW,CAAC;;IAC9E,MAAM,8CAA8B;IAEpC,YAAY,KAAK,EAAE,iBAAiB,EAWnC;IAED;;;;;;;;;;;OAWG;IACH,UAAU,CACR,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,EAAE,EACd,OAAO,EAAE,EAAE,EAAE,EACb,WAAW,EAAE,cAAc,GAAG,SAAS,EACvC,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,IAAI,CAAC,CAOf;IAED;;;;OAIG;IACH,oBAAoB,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAIlG;IAED;;OAEG;IACH,iBAAiB,CACf,iBAAiB,EAAE,iBAAiB,EACpC,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAarC;IAED;;OAEG;IACH,wBAAwB,CACtB,qBAAqB,EAAE,qBAAqB,EAC5C,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,cAAc,EAAE,CAAC,CAS3B;IAED,UAAgB,cAAc,CAAC,SAAS,EAAE,kBAAkB,EAAE,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAe5F;IAED;;;;OAIG;IACH,UAAgB,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAI/E;CA+OF;AAED,kHAAkH;AAClH,KAAK,kBAAkB,GAAG,QAAQ,EAAE,CAAC;AAErC,KAAK,WAAW,GAAG;IACjB,qCAAqC;IACrC,KAAK,EAAE,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAE7C,kFAAkF;IAClF,iBAAiB,EAAE,kBAAkB,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;IAExE,mFAAmF;IACnF,YAAY,EAAE,kBAAkB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;CACxD,CAAC"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { Fr } from '@aztec-labs/foundation/curves/bn254';
|
|
2
2
|
import type { FieldsOf } from '@aztec-labs/foundation/types';
|
|
3
3
|
import { AztecAddress } from '@aztec-labs/stdlib/aztec-address';
|
|
4
|
-
/**
|
|
5
|
-
|
|
6
|
-
*/
|
|
7
|
-
export type OriginBlock = {
|
|
4
|
+
/** A block, identified by its number and hash. */
|
|
5
|
+
export type BlockReference = {
|
|
8
6
|
blockNumber: number;
|
|
9
7
|
blockHash: Fr;
|
|
10
8
|
};
|
|
@@ -31,4 +29,4 @@ export declare class FactCollectionKey {
|
|
|
31
29
|
factCollectionTypeKey(): FactCollectionTypeKey;
|
|
32
30
|
toString(): string;
|
|
33
31
|
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdF9zdG9yZV9rZXlzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RvcmFnZS9mYWN0X3N0b3JlL2ZhY3Rfc3RvcmVfa2V5cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRWhFLGtEQUFrRDtBQUNsRCxNQUFNLE1BQU0sY0FBYyxHQUFHO0lBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQztJQUFDLFNBQVMsRUFBRSxFQUFFLENBQUE7Q0FBRSxDQUFDO0FBU3BFLG9GQUFvRjtBQUNwRixxQkFBYSxxQkFBcUI7YUFFZCxlQUFlLEVBQUUsWUFBWTthQUM3QixLQUFLLEVBQUUsWUFBWTthQUNuQixvQkFBb0IsRUFBRSxFQUFFO0lBSDFDLFlBQ2tCLGVBQWUsRUFBRSxZQUFZLEVBQzdCLEtBQUssRUFBRSxZQUFZLEVBQ25CLG9CQUFvQixFQUFFLEVBQUUsRUFHekM7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMscUJBQXFCLENBQUMsR0FBRyxxQkFBcUIsQ0FFMUU7SUFFRCxRQUFRLElBQUksTUFBTSxDQUVqQjtDQUNGO0FBRUQscUdBQXFHO0FBQ3JHLHFCQUFhLGlCQUFpQjthQUVWLGVBQWUsRUFBRSxZQUFZO2FBQzdCLEtBQUssRUFBRSxZQUFZO2FBQ25CLG9CQUFvQixFQUFFLEVBQUU7YUFDeEIsZ0JBQWdCLEVBQUUsRUFBRTtJQUp0QyxZQUNrQixlQUFlLEVBQUUsWUFBWSxFQUM3QixLQUFLLEVBQUUsWUFBWSxFQUNuQixvQkFBb0IsRUFBRSxFQUFFLEVBQ3hCLGdCQUFnQixFQUFFLEVBQUUsRUFHckM7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsaUJBQWlCLENBQUMsR0FBRyxpQkFBaUIsQ0FPbEU7SUFFRCwwQkFBMEI7SUFDMUIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLGlCQUFpQixDQVFoRDtJQUVELGtIQUFrSDtJQUNsSCxxQkFBcUIsSUFBSSxxQkFBcUIsQ0FFN0M7SUFFRCxRQUFRLElBQUksTUFBTSxDQUVqQjtDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fact_store_keys.d.ts","sourceRoot":"","sources":["../../../src/storage/fact_store/fact_store_keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE
|
|
1
|
+
{"version":3,"file":"fact_store_keys.d.ts","sourceRoot":"","sources":["../../../src/storage/fact_store/fact_store_keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE,kDAAkD;AAClD,MAAM,MAAM,cAAc,GAAG;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,EAAE,CAAA;CAAE,CAAC;AASpE,oFAAoF;AACpF,qBAAa,qBAAqB;aAEd,eAAe,EAAE,YAAY;aAC7B,KAAK,EAAE,YAAY;aACnB,oBAAoB,EAAE,EAAE;IAH1C,YACkB,eAAe,EAAE,YAAY,EAC7B,KAAK,EAAE,YAAY,EACnB,oBAAoB,EAAE,EAAE,EAGzC;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,qBAAqB,CAAC,GAAG,qBAAqB,CAE1E;IAED,QAAQ,IAAI,MAAM,CAEjB;CACF;AAED,qGAAqG;AACrG,qBAAa,iBAAiB;aAEV,eAAe,EAAE,YAAY;aAC7B,KAAK,EAAE,YAAY;aACnB,oBAAoB,EAAE,EAAE;aACxB,gBAAgB,EAAE,EAAE;IAJtC,YACkB,eAAe,EAAE,YAAY,EAC7B,KAAK,EAAE,YAAY,EACnB,oBAAoB,EAAE,EAAE,EACxB,gBAAgB,EAAE,EAAE,EAGrC;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,iBAAiB,CAOlE;IAED,0BAA0B;IAC1B,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAQhD;IAED,kHAAkH;IAClH,qBAAqB,IAAI,qBAAqB,CAE7C;IAED,QAAQ,IAAI,MAAM,CAEjB;CACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { FactStore, type FactCollection } from './fact_store.js';
|
|
2
2
|
export { FactService } from './fact_service.js';
|
|
3
|
-
export { FactCollectionKey, FactCollectionTypeKey, type
|
|
3
|
+
export { FactCollectionKey, FactCollectionTypeKey, type BlockReference } from './fact_store_keys.js';
|
|
4
4
|
export type { Fact } from './stored_fact.js';
|
|
5
5
|
export { OriginBlockState, classifyOriginBlockState, originBlockStateFromNumber, anchoredTipBlockNumbers, toFactWithOriginState, type TipBlockNumbers, type RetractableFactOrigin, type FactWithOriginState, type FactCollectionWithOriginState, } from './origin_state.js';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdG9yYWdlL2ZhY3Rfc3RvcmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRyxZQUFZLEVBQUUsSUFBSSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0MsT0FBTyxFQUNMLGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsMEJBQTBCLEVBQzFCLHVCQUF1QixFQUN2QixxQkFBcUIsRUFDckIsS0FBSyxlQUFlLEVBQ3BCLEtBQUsscUJBQXFCLEVBQzFCLEtBQUssbUJBQW1CLEVBQ3hCLEtBQUssNkJBQTZCLEdBQ25DLE1BQU0sbUJBQW1CLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/fact_store/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/fact_store/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACrG,YAAY,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,EACvB,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,6BAA6B,GACnC,MAAM,mBAAmB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Fr } from '@aztec-labs/foundation/curves/bn254';
|
|
2
2
|
import type { L2Tips } from '@aztec-labs/stdlib/block';
|
|
3
|
-
import type {
|
|
3
|
+
import type { BlockReference, FactCollectionKey } from './fact_store_keys.js';
|
|
4
4
|
import type { Fact } from './stored_fact.js';
|
|
5
5
|
/**
|
|
6
6
|
* Chain state of a retractable fact's origin block, mirroring the L2 chain tips.
|
|
@@ -35,7 +35,7 @@ export type TipBlockNumbers = {
|
|
|
35
35
|
*/
|
|
36
36
|
export declare function anchoredTipBlockNumbers(tips: L2Tips, anchorBlockNumber: number): TipBlockNumbers;
|
|
37
37
|
/** A retractable fact's origin block annotated with that block's current chain state. */
|
|
38
|
-
export type RetractableFactOrigin =
|
|
38
|
+
export type RetractableFactOrigin = BlockReference & {
|
|
39
39
|
blockState: OriginBlockState;
|
|
40
40
|
};
|
|
41
41
|
/** A fact enriched with origin-block state. `originBlock` is undefined for a non-retractable fact. */
|
|
@@ -56,4 +56,4 @@ export type FactCollectionWithOriginState = {
|
|
|
56
56
|
export declare function classifyOriginBlockState(blockNumber: number, tips: TipBlockNumbers): OriginBlockState;
|
|
57
57
|
/** Enriches a stored fact with the chain state of its origin block (when retractable). */
|
|
58
58
|
export declare function toFactWithOriginState(fact: Fact, tips: TipBlockNumbers): FactWithOriginState;
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JpZ2luX3N0YXRlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RvcmFnZS9mYWN0X3N0b3JlL29yaWdpbl9zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV2RCxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RSxPQUFPLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU3Qzs7Ozs7Ozs7OztHQVVHO0FBQ0gsb0JBQVksZ0JBQWdCO0lBQzFCLE9BQU8sSUFBSTtJQUNYLE1BQU0sSUFBSTtJQUNWLFNBQVMsSUFBSTtDQUNkO0FBRUQsa0ZBQWtGO0FBQ2xGLHdCQUFnQiwwQkFBMEIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLGdCQUFnQixDQU0xRTtBQUVELCtHQUErRztBQUMvRyxNQUFNLE1BQU0sZUFBZSxHQUFHO0lBQUUsaUJBQWlCLEVBQUUsTUFBTSxDQUFDO0lBQUMsb0JBQW9CLEVBQUUsTUFBTSxDQUFBO0NBQUUsQ0FBQztBQUUxRjs7Ozs7OztHQU9HO0FBQ0gsd0JBQWdCLHVCQUF1QixDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxHQUFHLGVBQWUsQ0FLaEc7QUFFRCx5RkFBeUY7QUFDekYsTUFBTSxNQUFNLHFCQUFxQixHQUFHLGNBQWMsR0FBRztJQUFFLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQTtDQUFFLENBQUM7QUFFdEYsc0dBQXNHO0FBQ3RHLE1BQU0sTUFBTSxtQkFBbUIsR0FBRztJQUFFLFVBQVUsRUFBRSxFQUFFLENBQUM7SUFBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFBQyxXQUFXLEVBQUUscUJBQXFCLEdBQUcsU0FBUyxDQUFBO0NBQUUsQ0FBQztBQUVwSCw4REFBOEQ7QUFDOUQsTUFBTSxNQUFNLDZCQUE2QixHQUFHO0lBQUUsR0FBRyxFQUFFLGlCQUFpQixDQUFDO0lBQUMsS0FBSyxFQUFFLG1CQUFtQixFQUFFLENBQUE7Q0FBRSxDQUFDO0FBRXJHOzs7R0FHRztBQUNILHdCQUFnQix3QkFBd0IsQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxlQUFlLEdBQUcsZ0JBQWdCLENBUXJHO0FBRUQsMEZBQTBGO0FBQzFGLHdCQUFnQixxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxlQUFlLEdBQUcsbUJBQW1CLENBUzVGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"origin_state.d.ts","sourceRoot":"","sources":["../../../src/storage/fact_store/origin_state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"origin_state.d.ts","sourceRoot":"","sources":["../../../src/storage/fact_store/origin_state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C;;;;;;;;;;GAUG;AACH,oBAAY,gBAAgB;IAC1B,OAAO,IAAI;IACX,MAAM,IAAI;IACV,SAAS,IAAI;CACd;AAED,kFAAkF;AAClF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAM1E;AAED,+GAA+G;AAC/G,MAAM,MAAM,eAAe,GAAG;IAAE,iBAAiB,EAAE,MAAM,CAAC;IAAC,oBAAoB,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1F;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,eAAe,CAKhG;AAED,yFAAyF;AACzF,MAAM,MAAM,qBAAqB,GAAG,cAAc,GAAG;IAAE,UAAU,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAEtF,sGAAsG;AACtG,MAAM,MAAM,mBAAmB,GAAG;IAAE,UAAU,EAAE,EAAE,CAAC;IAAC,OAAO,EAAE,EAAE,EAAE,CAAC;IAAC,WAAW,EAAE,qBAAqB,GAAG,SAAS,CAAA;CAAE,CAAC;AAEpH,8DAA8D;AAC9D,MAAM,MAAM,6BAA6B,GAAG;IAAE,GAAG,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,mBAAmB,EAAE,CAAA;CAAE,CAAC;AAErG;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,gBAAgB,CAQrG;AAED,0FAA0F;AAC1F,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,GAAG,mBAAmB,CAS5F"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Fr } from '@aztec-labs/foundation/curves/bn254';
|
|
2
2
|
import { BufferReader } from '@aztec-labs/foundation/serialize';
|
|
3
|
-
import {
|
|
3
|
+
import { type BlockReference, FactCollectionKey } from './fact_store_keys.js';
|
|
4
4
|
/** A fact as returned by the fact store. */
|
|
5
5
|
export type Fact = {
|
|
6
6
|
factTypeId: Fr;
|
|
7
7
|
payload: Fr[];
|
|
8
|
-
originBlock:
|
|
8
|
+
originBlock: BlockReference | undefined;
|
|
9
9
|
};
|
|
10
10
|
/**
|
|
11
11
|
* A single immutable fact belonging to a fact collection.
|
|
@@ -14,8 +14,8 @@ export declare class StoredFact {
|
|
|
14
14
|
readonly factCollectionKey: FactCollectionKey;
|
|
15
15
|
readonly factTypeId: Fr;
|
|
16
16
|
readonly payload: Fr[];
|
|
17
|
-
readonly originBlock:
|
|
18
|
-
constructor(factCollectionKey: FactCollectionKey, factTypeId: Fr, payload: Fr[], originBlock:
|
|
17
|
+
readonly originBlock: BlockReference | undefined;
|
|
18
|
+
constructor(factCollectionKey: FactCollectionKey, factTypeId: Fr, payload: Fr[], originBlock: BlockReference | undefined);
|
|
19
19
|
/** Whether this fact is deleted on block pruning (true) or survives reorgs (false). */
|
|
20
20
|
get isRetractable(): boolean;
|
|
21
21
|
/** Stable digest of the payload, used for fact idempotency. */
|
|
@@ -29,4 +29,4 @@ export declare class StoredFact {
|
|
|
29
29
|
* Builds the serialized key that identifies a fact in the store.
|
|
30
30
|
*/
|
|
31
31
|
export declare function factKeyStrOf(fact: StoredFact): string;
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmVkX2ZhY3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdG9yYWdlL2ZhY3Rfc3RvcmUvc3RvcmVkX2ZhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0sa0NBQWtDLENBQUM7QUFHbkYsT0FBTyxFQUFFLEtBQUssY0FBYyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFOUUsNENBQTRDO0FBQzVDLE1BQU0sTUFBTSxJQUFJLEdBQUc7SUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDO0lBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQUMsV0FBVyxFQUFFLGNBQWMsR0FBRyxTQUFTLENBQUE7Q0FBRSxDQUFDO0FBRTlGOztHQUVHO0FBQ0gscUJBQWEsVUFBVTthQUVILGlCQUFpQixFQUFFLGlCQUFpQjthQUNwQyxVQUFVLEVBQUUsRUFBRTthQUNkLE9BQU8sRUFBRSxFQUFFLEVBQUU7YUFDYixXQUFXLEVBQUUsY0FBYyxHQUFHLFNBQVM7SUFKekQsWUFDa0IsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQ3BDLFVBQVUsRUFBRSxFQUFFLEVBQ2QsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUNiLFdBQVcsRUFBRSxjQUFjLEdBQUcsU0FBUyxFQUNyRDtJQUVKLHVGQUF1RjtJQUN2RixJQUFJLGFBQWEsSUFBSSxPQUFPLENBRTNCO0lBRUQsK0RBQStEO0lBQy9ELFdBQVcsSUFBSSxFQUFFLENBRWhCO0lBRUQsdURBQXVEO0lBQ3ZELE1BQU0sSUFBSSxJQUFJLENBRWI7SUFFRCxRQUFRLElBQUksTUFBTSxDQWFqQjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsVUFBVSxDQW1CM0Q7Q0FDRjtBQUVEOztHQUVHO0FBQ0gsd0JBQWdCLFlBQVksQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLE1BQU0sQ0FHckQifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stored_fact.d.ts","sourceRoot":"","sources":["../../../src/storage/fact_store/stored_fact.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AACzD,OAAO,EAAE,YAAY,EAAqB,MAAM,kCAAkC,CAAC;AAGnF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"stored_fact.d.ts","sourceRoot":"","sources":["../../../src/storage/fact_store/stored_fact.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AACzD,OAAO,EAAE,YAAY,EAAqB,MAAM,kCAAkC,CAAC;AAGnF,OAAO,EAAE,KAAK,cAAc,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9E,4CAA4C;AAC5C,MAAM,MAAM,IAAI,GAAG;IAAE,UAAU,EAAE,EAAE,CAAC;IAAC,OAAO,EAAE,EAAE,EAAE,CAAC;IAAC,WAAW,EAAE,cAAc,GAAG,SAAS,CAAA;CAAE,CAAC;AAE9F;;GAEG;AACH,qBAAa,UAAU;aAEH,iBAAiB,EAAE,iBAAiB;aACpC,UAAU,EAAE,EAAE;aACd,OAAO,EAAE,EAAE,EAAE;aACb,WAAW,EAAE,cAAc,GAAG,SAAS;IAJzD,YACkB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,EAAE,EACd,OAAO,EAAE,EAAE,EAAE,EACb,WAAW,EAAE,cAAc,GAAG,SAAS,EACrD;IAEJ,uFAAuF;IACvF,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,+DAA+D;IAC/D,WAAW,IAAI,EAAE,CAEhB;IAED,uDAAuD;IACvD,MAAM,IAAI,IAAI,CAEb;IAED,QAAQ,IAAI,MAAM,CAajB;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU,CAmB3D;CACF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAGrD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec-labs/pxe",
|
|
3
|
-
"version": "6.0.0-rc.
|
|
3
|
+
"version": "6.0.0-rc.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"typedocOptions": {
|
|
6
6
|
"entryPoints": [
|
|
@@ -71,21 +71,21 @@
|
|
|
71
71
|
]
|
|
72
72
|
},
|
|
73
73
|
"dependencies": {
|
|
74
|
-
"@aztec-foundation/bb.js": "6.0.0-rc.
|
|
75
|
-
"@aztec-foundation/noir-acvm_js": "6.0.0-rc.
|
|
76
|
-
"@aztec-foundation/noir-noirc_abi": "6.0.0-rc.
|
|
77
|
-
"@aztec-foundation/noir-types": "6.0.0-rc.
|
|
78
|
-
"@aztec-labs/bb-prover": "6.0.0-rc.
|
|
79
|
-
"@aztec-labs/constants": "6.0.0-rc.
|
|
80
|
-
"@aztec-labs/ethereum": "6.0.0-rc.
|
|
81
|
-
"@aztec-labs/foundation": "6.0.0-rc.
|
|
82
|
-
"@aztec-labs/key-store": "6.0.0-rc.
|
|
83
|
-
"@aztec-labs/kv-store": "6.0.0-rc.
|
|
84
|
-
"@aztec-labs/noir-protocol-circuits-types": "6.0.0-rc.
|
|
85
|
-
"@aztec-labs/protocol-contracts": "6.0.0-rc.
|
|
86
|
-
"@aztec-labs/simulator": "6.0.0-rc.
|
|
87
|
-
"@aztec-labs/standard-contracts": "6.0.0-rc.
|
|
88
|
-
"@aztec-labs/stdlib": "6.0.0-rc.
|
|
74
|
+
"@aztec-foundation/bb.js": "6.0.0-rc.6",
|
|
75
|
+
"@aztec-foundation/noir-acvm_js": "6.0.0-rc.6",
|
|
76
|
+
"@aztec-foundation/noir-noirc_abi": "6.0.0-rc.6",
|
|
77
|
+
"@aztec-foundation/noir-types": "6.0.0-rc.6",
|
|
78
|
+
"@aztec-labs/bb-prover": "6.0.0-rc.3",
|
|
79
|
+
"@aztec-labs/constants": "6.0.0-rc.3",
|
|
80
|
+
"@aztec-labs/ethereum": "6.0.0-rc.3",
|
|
81
|
+
"@aztec-labs/foundation": "6.0.0-rc.3",
|
|
82
|
+
"@aztec-labs/key-store": "6.0.0-rc.3",
|
|
83
|
+
"@aztec-labs/kv-store": "6.0.0-rc.3",
|
|
84
|
+
"@aztec-labs/noir-protocol-circuits-types": "6.0.0-rc.3",
|
|
85
|
+
"@aztec-labs/protocol-contracts": "6.0.0-rc.3",
|
|
86
|
+
"@aztec-labs/simulator": "6.0.0-rc.3",
|
|
87
|
+
"@aztec-labs/standard-contracts": "6.0.0-rc.3",
|
|
88
|
+
"@aztec-labs/stdlib": "6.0.0-rc.3",
|
|
89
89
|
"koa": "^2.16.1",
|
|
90
90
|
"koa-router": "^13.1.1",
|
|
91
91
|
"lodash.omit": "^4.5.0",
|
|
@@ -94,8 +94,8 @@
|
|
|
94
94
|
"viem": "npm:@aztec/viem@2.38.3"
|
|
95
95
|
},
|
|
96
96
|
"devDependencies": {
|
|
97
|
-
"@aztec-labs/noir-test-contracts.js": "6.0.0-rc.
|
|
98
|
-
"@aztec-labs/world-state": "6.0.0-rc.
|
|
97
|
+
"@aztec-labs/noir-test-contracts.js": "6.0.0-rc.3",
|
|
98
|
+
"@aztec-labs/world-state": "6.0.0-rc.3",
|
|
99
99
|
"@jest/globals": "^30.0.0",
|
|
100
100
|
"@types/jest": "^30.0.0",
|
|
101
101
|
"@types/lodash.omit": "^4.5.7",
|
|
@@ -732,7 +732,12 @@ export async function generateSimulatedProvingResult(
|
|
|
732
732
|
);
|
|
733
733
|
gasUsed = meterGasUsed(revertibleData, isPrivateOnlyTx).add(meterGasUsed(nonRevertibleData, isPrivateOnlyTx));
|
|
734
734
|
if (publicTeardownCallRequest) {
|
|
735
|
-
|
|
735
|
+
// The teardown call is dispatched by the AVM like any other enqueued public call, so it consumes the startup
|
|
736
|
+
// gas on top of its gas limits.
|
|
737
|
+
const teardownStartupGas = Gas.from({ daGas: 0, l2Gas: FIXED_AVM_STARTUP_L2_GAS });
|
|
738
|
+
gasUsed = gasUsed
|
|
739
|
+
.add(privateExecutionResult.entrypoint.publicInputs.txContext.gasSettings.teardownGasLimits)
|
|
740
|
+
.add(teardownStartupGas);
|
|
736
741
|
}
|
|
737
742
|
|
|
738
743
|
inputsForPublic = new PartialPrivateTailPublicInputsForPublic(
|
|
@@ -79,6 +79,8 @@ export { pickNotes } from './pick_notes.js';
|
|
|
79
79
|
export type { IMiscOracle, IUtilityExecutionOracle, IPrivateExecutionOracle } from './oracle/interfaces.js';
|
|
80
80
|
export type { FactCollection } from './noir-structs/fact_collection.js';
|
|
81
81
|
export type { NoteData } from './noir-structs/note_data.js';
|
|
82
|
+
export type { NullifierStatus } from './noir-structs/nullifier_status.js';
|
|
83
|
+
export type { NoteOrigin } from './noir-structs/note_origin.js';
|
|
82
84
|
export type { ResolvedTaggingStrategy } from './noir-structs/resolved_tagging_strategy.js';
|
|
83
85
|
export { TxResolverService } from '../messages/tx_resolver_service.js';
|
|
84
86
|
export { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Fr } from '@aztec-labs/foundation/curves/bn254';
|
|
2
|
+
|
|
3
|
+
import type { BlockReference } from '../../storage/fact_store/index.js';
|
|
4
|
+
|
|
5
|
+
/** TypeScript counterpart of `NoteOrigin` in Aztec.nr. */
|
|
6
|
+
export type NoteOrigin = {
|
|
7
|
+
/** Hash of the tx that created the note. */
|
|
8
|
+
txHash: Fr;
|
|
9
|
+
/** The block that tx was included in. */
|
|
10
|
+
block: BlockReference;
|
|
11
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { BlockReference } from '../../storage/fact_store/index.js';
|
|
2
|
+
import type { Option } from './option.js';
|
|
3
|
+
|
|
4
|
+
/** TypeScript counterpart of `NullifierStatus` in Aztec.nr. */
|
|
5
|
+
export type NullifierStatus = {
|
|
6
|
+
exists: boolean;
|
|
7
|
+
/** The block the nullifier was included in. Absent when it does not exist or is pending in the current transaction. */
|
|
8
|
+
originBlock: Option<BlockReference>;
|
|
9
|
+
};
|
|
@@ -24,7 +24,10 @@ export class UnavailableOracleError extends Error {
|
|
|
24
24
|
export function buildACIRCallback(
|
|
25
25
|
handler: OracleHandler,
|
|
26
26
|
options: {
|
|
27
|
-
/**
|
|
27
|
+
/**
|
|
28
|
+
* The contract whose function the callback is built for. Protocol contracts are only served the protocol oracles,
|
|
29
|
+
* which no other contract is served.
|
|
30
|
+
*/
|
|
28
31
|
contractAddress?: AztecAddress;
|
|
29
32
|
currentRegistry?: Record<string, OracleRegistryEntry>;
|
|
30
33
|
legacyRegistry?: Record<string, LegacyOracleEntry>;
|
|
@@ -37,6 +40,18 @@ export function buildACIRCallback(
|
|
|
37
40
|
legacyRegistry = LEGACY_ORACLE_REGISTRY,
|
|
38
41
|
protocolRegistry = PROTOCOL_ORACLE_REGISTRY,
|
|
39
42
|
} = options;
|
|
43
|
+
const calledByProtocolContract = contractAddress !== undefined && isProtocolContract(contractAddress);
|
|
44
|
+
const target = calledByProtocolContract
|
|
45
|
+
? buildProtocolOracleCallbacks(handler, protocolRegistry)
|
|
46
|
+
: buildCurrentAndLegacyOracleCallbacks(handler, currentRegistry, legacyRegistry);
|
|
47
|
+
return new Proxy(target, makeUnknownOracleTrap(handler, calledByProtocolContract));
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function buildCurrentAndLegacyOracleCallbacks(
|
|
51
|
+
handler: OracleHandler,
|
|
52
|
+
currentRegistry: Record<string, OracleRegistryEntry>,
|
|
53
|
+
legacyRegistry: Record<string, LegacyOracleEntry>,
|
|
54
|
+
): ACIRCallback {
|
|
40
55
|
const target = {} as ACIRCallback;
|
|
41
56
|
for (const [oracleKey, entry] of Object.entries(currentRegistry)) {
|
|
42
57
|
const { oracleKind, methodName } = parseOracleName(oracleKey, 'Oracle');
|
|
@@ -72,27 +87,23 @@ export function buildACIRCallback(
|
|
|
72
87
|
};
|
|
73
88
|
}
|
|
74
89
|
|
|
75
|
-
|
|
76
|
-
|
|
90
|
+
return target;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
function buildProtocolOracleCallbacks(
|
|
94
|
+
handler: OracleHandler,
|
|
95
|
+
protocolRegistry: Record<string, ProtocolOracleEntry>,
|
|
96
|
+
): ACIRCallback {
|
|
97
|
+
const target = {} as ACIRCallback;
|
|
77
98
|
for (const [protocolKey, protocol] of Object.entries(protocolRegistry)) {
|
|
78
|
-
if (protocolKey in target) {
|
|
79
|
-
throw new Error(`Protocol oracle "${protocolKey}" collides with another oracle of the same name`);
|
|
80
|
-
}
|
|
81
99
|
const wire = makeEntry({ params: [...protocol.params], returnType: protocol.returnType });
|
|
82
100
|
target[protocolKey] = async (...inputs: ACVMField[][]) => {
|
|
83
|
-
if (!calledByProtocolContract) {
|
|
84
|
-
const caller = contractAddress ?? 'a caller that is not a contract';
|
|
85
|
-
throw new Error(
|
|
86
|
-
`Oracle '${protocolKey}' can only be called by protocol contracts, but was called by ${caller}`,
|
|
87
|
-
);
|
|
88
|
-
}
|
|
89
101
|
assertHandlerSupportsOracleKind(handler, protocol.oracleKind);
|
|
90
102
|
const args = wire.deserializeParams(inputs).map(p => p.value);
|
|
91
103
|
return wire.serializeReturn(await protocol.serve(handler, args));
|
|
92
104
|
};
|
|
93
105
|
}
|
|
94
|
-
|
|
95
|
-
return new Proxy(target, makeUnknownOracleTrap(handler, calledByProtocolContract));
|
|
106
|
+
return target;
|
|
96
107
|
}
|
|
97
108
|
|
|
98
109
|
/** Parses an `aztec_{oracleKind}_{method}` oracle name into its parts, throwing if it doesn't follow the convention. */
|
|
@@ -3,7 +3,6 @@ import { ARCHIVE_HEIGHT, L1_TO_L2_MSG_TREE_HEIGHT, NOTE_HASH_TREE_HEIGHT } from
|
|
|
3
3
|
import { Fr } from '@aztec-labs/foundation/curves/bn254';
|
|
4
4
|
import { FieldReader } from '@aztec-labs/foundation/serialize';
|
|
5
5
|
import { toACVMField } from '@aztec-labs/simulator/client';
|
|
6
|
-
import type { UnsiloedMessageNullifier } from '@aztec-labs/stdlib/messaging';
|
|
7
6
|
|
|
8
7
|
import {
|
|
9
8
|
ARRAY,
|
|
@@ -11,6 +10,7 @@ import {
|
|
|
11
10
|
BLOCK_HASH,
|
|
12
11
|
BLOCK_HEADER,
|
|
13
12
|
BLOCK_NUMBER,
|
|
13
|
+
BLOCK_REFERENCE,
|
|
14
14
|
BOOL,
|
|
15
15
|
BOUNDED_VEC,
|
|
16
16
|
CALL_PRIVATE_RESULT,
|
|
@@ -29,11 +29,12 @@ import {
|
|
|
29
29
|
MEMBERSHIP_WITNESS,
|
|
30
30
|
type MaybePromise,
|
|
31
31
|
NOTE,
|
|
32
|
+
NOTE_ORIGIN,
|
|
32
33
|
NOTE_SELECTOR,
|
|
33
34
|
NOTE_VALIDATION_REQUEST,
|
|
34
35
|
NULLIFIER_MEMBERSHIP_WITNESS,
|
|
36
|
+
NULLIFIER_STATUS,
|
|
35
37
|
OPTION,
|
|
36
|
-
ORIGIN_BLOCK,
|
|
37
38
|
type OutputSlot,
|
|
38
39
|
PENDING_TAGGED_LOG,
|
|
39
40
|
POINT,
|
|
@@ -43,12 +44,12 @@ import {
|
|
|
43
44
|
RESOLVED_TAGGING_STRATEGY,
|
|
44
45
|
RESOLVED_TX,
|
|
45
46
|
STR,
|
|
46
|
-
STRUCT,
|
|
47
47
|
TX_EFFECT,
|
|
48
48
|
TX_HASH,
|
|
49
49
|
type TypeMapping,
|
|
50
50
|
U8,
|
|
51
51
|
U32,
|
|
52
|
+
UNSILOED_MESSAGE_NULLIFIER,
|
|
52
53
|
UTILITY_CONTEXT,
|
|
53
54
|
assertReadersConsumed,
|
|
54
55
|
slotsOf,
|
|
@@ -184,27 +185,27 @@ export const ORACLE_REGISTRY = {
|
|
|
184
185
|
returnType: OPTION(PUBLIC_KEYS_AND_PARTIAL_ADDRESS),
|
|
185
186
|
}),
|
|
186
187
|
|
|
187
|
-
|
|
188
|
-
params: [{ name: '
|
|
189
|
-
returnType:
|
|
188
|
+
aztec_utl_getNullifierStatuses: makeEntry({
|
|
189
|
+
params: [{ name: 'innerNullifiers', type: EPHEMERAL_ARRAY(FIELD) }],
|
|
190
|
+
returnType: EPHEMERAL_ARRAY(NULLIFIER_STATUS),
|
|
190
191
|
}),
|
|
191
192
|
|
|
192
193
|
aztec_utl_getL1ToL2MembershipWitnessV2: makeEntry({
|
|
193
194
|
params: [
|
|
194
195
|
{ name: 'messageHash', type: FIELD },
|
|
195
|
-
{
|
|
196
|
-
name: 'nullifier',
|
|
197
|
-
type: OPTION(
|
|
198
|
-
STRUCT<UnsiloedMessageNullifier>([
|
|
199
|
-
{ name: 'contractAddress', type: AZTEC_ADDRESS },
|
|
200
|
-
{ name: 'nullifier', type: FIELD },
|
|
201
|
-
]),
|
|
202
|
-
),
|
|
203
|
-
},
|
|
196
|
+
{ name: 'nullifier', type: OPTION(UNSILOED_MESSAGE_NULLIFIER) },
|
|
204
197
|
],
|
|
205
198
|
returnType: MEMBERSHIP_WITNESS(L1_TO_L2_MSG_TREE_HEIGHT),
|
|
206
199
|
}),
|
|
207
200
|
|
|
201
|
+
aztec_utl_tryGetL1ToL2MembershipWitness: makeEntry({
|
|
202
|
+
params: [
|
|
203
|
+
{ name: 'messageHash', type: FIELD },
|
|
204
|
+
{ name: 'nullifier', type: OPTION(UNSILOED_MESSAGE_NULLIFIER) },
|
|
205
|
+
],
|
|
206
|
+
returnType: OPTION(MEMBERSHIP_WITNESS(L1_TO_L2_MSG_TREE_HEIGHT)),
|
|
207
|
+
}),
|
|
208
|
+
|
|
208
209
|
aztec_utl_getFromPublicStorage: makeEntry({
|
|
209
210
|
params: [
|
|
210
211
|
{ name: 'blockHash', type: BLOCK_HASH },
|
|
@@ -238,6 +239,15 @@ export const ORACLE_REGISTRY = {
|
|
|
238
239
|
returnType: BOUNDED_VEC(NOTE),
|
|
239
240
|
}),
|
|
240
241
|
|
|
242
|
+
aztec_utl_getSettledNoteOrigin: makeEntry({
|
|
243
|
+
params: [
|
|
244
|
+
{ name: 'noteHash', type: FIELD },
|
|
245
|
+
{ name: 'contractAddress', type: AZTEC_ADDRESS },
|
|
246
|
+
{ name: 'noteNonce', type: FIELD },
|
|
247
|
+
],
|
|
248
|
+
returnType: OPTION(NOTE_ORIGIN),
|
|
249
|
+
}),
|
|
250
|
+
|
|
241
251
|
aztec_utl_getPendingTaggedLogsV2: makeEntry({
|
|
242
252
|
params: [
|
|
243
253
|
{ name: 'scope', type: AZTEC_ADDRESS },
|
|
@@ -348,7 +358,7 @@ export const ORACLE_REGISTRY = {
|
|
|
348
358
|
{ name: 'factCollectionId', type: FIELD },
|
|
349
359
|
{ name: 'factTypeId', type: FIELD },
|
|
350
360
|
{ name: 'payload', type: EPHEMERAL_ARRAY(FIELD) },
|
|
351
|
-
{ name: 'originBlock', type: OPTION(
|
|
361
|
+
{ name: 'originBlock', type: OPTION(BLOCK_REFERENCE) },
|
|
352
362
|
],
|
|
353
363
|
}),
|
|
354
364
|
|
|
@@ -34,6 +34,7 @@ import {
|
|
|
34
34
|
Tag,
|
|
35
35
|
appTaggingSecretKindFromDeliveryMode,
|
|
36
36
|
} from '@aztec-labs/stdlib/logs';
|
|
37
|
+
import type { UnsiloedMessageNullifier } from '@aztec-labs/stdlib/messaging';
|
|
37
38
|
import type {
|
|
38
39
|
AppendOnlyTreeSnapshot,
|
|
39
40
|
NullifierLeaf,
|
|
@@ -50,7 +51,7 @@ import {
|
|
|
50
51
|
} from '@aztec-labs/stdlib/tx';
|
|
51
52
|
|
|
52
53
|
import {
|
|
53
|
-
type
|
|
54
|
+
type BlockReference,
|
|
54
55
|
type OriginBlockState,
|
|
55
56
|
type RetractableFactOrigin,
|
|
56
57
|
originBlockStateFromNumber,
|
|
@@ -65,8 +66,10 @@ import type { FactCollection } from '../noir-structs/fact_collection.js';
|
|
|
65
66
|
import { type LogRetrievalRequest, type LogSource, logSourceFromField } from '../noir-structs/log_retrieval_request.js';
|
|
66
67
|
import type { LogRetrievalResponse } from '../noir-structs/log_retrieval_response.js';
|
|
67
68
|
import type { NoteData } from '../noir-structs/note_data.js';
|
|
69
|
+
import type { NoteOrigin } from '../noir-structs/note_origin.js';
|
|
68
70
|
import { NoteValidationRequest } from '../noir-structs/note_validation_request.js';
|
|
69
71
|
import type { NullifierMembershipWitnessData } from '../noir-structs/nullifier_membership_witness_data.js';
|
|
72
|
+
import type { NullifierStatus } from '../noir-structs/nullifier_status.js';
|
|
70
73
|
import { Option } from '../noir-structs/option.js';
|
|
71
74
|
import type { PendingTaggedLog } from '../noir-structs/pending_tagged_log.js';
|
|
72
75
|
import type { ProvidedSecret } from '../noir-structs/provided_secret.js';
|
|
@@ -543,11 +546,26 @@ export const PENDING_TAGGED_LOG: TypeMapping<PendingTaggedLog> = STRUCT([
|
|
|
543
546
|
{ name: 'context', type: RESOLVED_TX },
|
|
544
547
|
]);
|
|
545
548
|
|
|
546
|
-
export const
|
|
549
|
+
export const BLOCK_REFERENCE: TypeMapping<BlockReference> = STRUCT([
|
|
547
550
|
{ name: 'blockNumber', type: U32 },
|
|
548
551
|
{ name: 'blockHash', type: FIELD },
|
|
549
552
|
]);
|
|
550
553
|
|
|
554
|
+
export const UNSILOED_MESSAGE_NULLIFIER: TypeMapping<UnsiloedMessageNullifier> = STRUCT([
|
|
555
|
+
{ name: 'contractAddress', type: AZTEC_ADDRESS },
|
|
556
|
+
{ name: 'nullifier', type: FIELD },
|
|
557
|
+
]);
|
|
558
|
+
|
|
559
|
+
export const NULLIFIER_STATUS: TypeMapping<NullifierStatus> = STRUCT([
|
|
560
|
+
{ name: 'exists', type: BOOL },
|
|
561
|
+
{ name: 'originBlock', type: OPTION(BLOCK_REFERENCE) },
|
|
562
|
+
]);
|
|
563
|
+
|
|
564
|
+
export const NOTE_ORIGIN: TypeMapping<NoteOrigin> = STRUCT([
|
|
565
|
+
{ name: 'txHash', type: FIELD },
|
|
566
|
+
{ name: 'block', type: BLOCK_REFERENCE },
|
|
567
|
+
]);
|
|
568
|
+
|
|
551
569
|
const ORIGIN_BLOCK_STATE: TypeMapping<OriginBlockState> = SCALAR({
|
|
552
570
|
kind: 'origin-block-state',
|
|
553
571
|
serialization: { fn: v => [new Fr(v)] },
|
|
@@ -45,6 +45,7 @@ import { ExecutionTaggingIndexCache } from '../execution_tagging_index_cache.js'
|
|
|
45
45
|
import type { HashedValuesCache } from '../hashed_values_cache.js';
|
|
46
46
|
import { BoundedVec } from '../noir-structs/bounded_vec.js';
|
|
47
47
|
import type { NoteData } from '../noir-structs/note_data.js';
|
|
48
|
+
import type { NullifierStatus } from '../noir-structs/nullifier_status.js';
|
|
48
49
|
import { Option } from '../noir-structs/option.js';
|
|
49
50
|
import type { ResolvedTaggingStrategy } from '../noir-structs/resolved_tagging_strategy.js';
|
|
50
51
|
import { pickNotes } from '../pick_notes.js';
|
|
@@ -417,21 +418,23 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
417
418
|
return Promise.resolve(preimage);
|
|
418
419
|
}
|
|
419
420
|
|
|
420
|
-
override async
|
|
421
|
-
// This
|
|
422
|
-
//
|
|
423
|
-
//
|
|
421
|
+
protected override async getSiloedNullifierStatuses(siloedNullifiers: Fr[]): Promise<NullifierStatus[]> {
|
|
422
|
+
// This must be overridden because while utility execution can only meaningfully check if a nullifier exists in
|
|
423
|
+
// the anchor block, during private execution there's also the possibility of it being pending, i.e. created in
|
|
424
|
+
// the current transaction.
|
|
424
425
|
|
|
425
|
-
this.logger.debug(`Checking existence of
|
|
426
|
+
this.logger.debug(`Checking existence of ${siloedNullifiers.length} nullifiers`, {
|
|
426
427
|
contractAddress: this.contractAddress,
|
|
428
|
+
siloedNullifiers,
|
|
427
429
|
});
|
|
428
430
|
|
|
429
|
-
const
|
|
431
|
+
const pendingNullifiers = this.noteCache.getNullifiers(this.contractAddress);
|
|
432
|
+
const isPending = siloedNullifiers.map(nullifier => pendingNullifiers.has(nullifier.toBigInt()));
|
|
433
|
+
const settledStatuses = await super.getSiloedNullifierStatuses(siloedNullifiers.filter((_, i) => !isPending[i]));
|
|
430
434
|
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
);
|
|
435
|
+
const pendingStatus: NullifierStatus = { exists: true, originBlock: Option.none() };
|
|
436
|
+
let nextSettled = 0;
|
|
437
|
+
return isPending.map(pending => (pending ? pendingStatus : settledStatuses[nextSettled++]));
|
|
435
438
|
}
|
|
436
439
|
|
|
437
440
|
/**
|