@proto-kit/common 0.1.1-develop.211 → 0.1.1-develop.2137
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/dist/cache/CacheManifest.d.ts +11 -0
- package/dist/cache/CacheManifest.d.ts.map +1 -0
- package/dist/cache/CacheManifest.js +56 -0
- package/dist/cache/CacheManifest.js.map +1 -0
- package/dist/cache/ProxyCache.d.ts +13 -0
- package/dist/cache/ProxyCache.d.ts.map +1 -0
- package/dist/cache/ProxyCache.js +24 -0
- package/dist/cache/ProxyCache.js.map +1 -0
- package/dist/cache/RemoteCache.d.ts +8 -0
- package/dist/cache/RemoteCache.d.ts.map +1 -0
- package/dist/cache/RemoteCache.js +2 -0
- package/dist/cache/RemoteCache.js.map +1 -0
- package/dist/cache/RemoteCacheCompiler.d.ts +16 -0
- package/dist/cache/RemoteCacheCompiler.d.ts.map +1 -0
- package/dist/cache/RemoteCacheCompiler.js +104 -0
- package/dist/cache/RemoteCacheCompiler.js.map +1 -0
- package/dist/compiling/AtomicCompileHelper.d.ts +15 -0
- package/dist/compiling/AtomicCompileHelper.d.ts.map +1 -0
- package/dist/compiling/AtomicCompileHelper.js +61 -0
- package/dist/compiling/AtomicCompileHelper.js.map +1 -0
- package/dist/compiling/CompilableModule.d.ts +6 -0
- package/dist/compiling/CompilableModule.d.ts.map +1 -0
- package/dist/compiling/CompilableModule.js +2 -0
- package/dist/compiling/CompilableModule.js.map +1 -0
- package/dist/compiling/CompileRegistry.d.ts +25 -0
- package/dist/compiling/CompileRegistry.d.ts.map +1 -0
- package/dist/compiling/CompileRegistry.js +62 -0
- package/dist/compiling/CompileRegistry.js.map +1 -0
- package/dist/compiling/services/ChildVerificationKeyService.d.ts +10 -0
- package/dist/compiling/services/ChildVerificationKeyService.d.ts.map +1 -0
- package/dist/compiling/services/ChildVerificationKeyService.js +27 -0
- package/dist/compiling/services/ChildVerificationKeyService.js.map +1 -0
- package/dist/config/ChildContainerCreatable.d.ts +5 -0
- package/dist/config/ChildContainerCreatable.d.ts.map +1 -0
- package/dist/config/ChildContainerCreatable.js +2 -0
- package/dist/config/ChildContainerCreatable.js.map +1 -0
- package/dist/config/ChildContainerProvider.d.ts +5 -0
- package/dist/config/ChildContainerProvider.d.ts.map +1 -0
- package/dist/config/ChildContainerProvider.js +2 -0
- package/dist/config/ChildContainerProvider.js.map +1 -0
- package/dist/config/ConfigurableModule.d.ts +6 -2
- package/dist/config/ConfigurableModule.d.ts.map +1 -1
- package/dist/config/ConfigurableModule.js +5 -0
- package/dist/config/ConfigurableModule.js.map +1 -0
- package/dist/config/ModuleContainer.d.ts +70 -23
- package/dist/config/ModuleContainer.d.ts.map +1 -1
- package/dist/config/ModuleContainer.js +164 -31
- package/dist/config/ModuleContainer.js.map +1 -0
- package/dist/config/Startable.d.ts +4 -0
- package/dist/config/Startable.d.ts.map +1 -0
- package/dist/config/Startable.js +2 -0
- package/dist/config/Startable.js.map +1 -0
- package/dist/config/injectAlias.d.ts +18 -0
- package/dist/config/injectAlias.d.ts.map +1 -0
- package/dist/config/injectAlias.js +47 -0
- package/dist/config/injectAlias.js.map +1 -0
- package/dist/dependencyFactory/DependencyFactory.d.ts +14 -9
- package/dist/dependencyFactory/DependencyFactory.d.ts.map +1 -1
- package/dist/dependencyFactory/DependencyFactory.js +2 -96
- package/dist/dependencyFactory/DependencyFactory.js.map +1 -0
- package/dist/dependencyFactory/injectOptional.d.ts +16 -0
- package/dist/dependencyFactory/injectOptional.d.ts.map +1 -0
- package/dist/dependencyFactory/injectOptional.js +40 -0
- package/dist/dependencyFactory/injectOptional.js.map +1 -0
- package/dist/dummyVerificationKey.d.ts +3 -0
- package/dist/dummyVerificationKey.d.ts.map +1 -0
- package/dist/dummyVerificationKey.js +8 -0
- package/dist/dummyVerificationKey.js.map +1 -0
- package/dist/events/EventEmitter.d.ts +19 -0
- package/dist/events/EventEmitter.d.ts.map +1 -0
- package/dist/events/EventEmitter.js +35 -0
- package/dist/events/EventEmitter.js.map +1 -0
- package/dist/events/EventEmitterProxy.d.ts +18 -0
- package/dist/events/EventEmitterProxy.d.ts.map +1 -0
- package/dist/events/EventEmitterProxy.js +35 -0
- package/dist/events/EventEmitterProxy.js.map +1 -0
- package/dist/events/EventEmittingComponent.d.ts +9 -0
- package/dist/events/EventEmittingComponent.d.ts.map +1 -0
- package/dist/events/EventEmittingComponent.js +2 -0
- package/dist/events/EventEmittingComponent.js.map +1 -0
- package/dist/events/ReplayingSingleUseEventEmitter.d.ts +17 -0
- package/dist/events/ReplayingSingleUseEventEmitter.d.ts.map +1 -0
- package/dist/events/ReplayingSingleUseEventEmitter.js +34 -0
- package/dist/events/ReplayingSingleUseEventEmitter.js.map +1 -0
- package/dist/index.d.ts +27 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -2
- package/dist/index.js.map +1 -0
- package/dist/log.d.ts +37 -0
- package/dist/log.d.ts.map +1 -0
- package/dist/log.js +117 -0
- package/dist/log.js.map +1 -0
- package/dist/trees/InMemoryLinkedLeafStore.d.ts +21 -0
- package/dist/trees/InMemoryLinkedLeafStore.d.ts.map +1 -0
- package/dist/trees/InMemoryLinkedLeafStore.js +26 -0
- package/dist/trees/InMemoryLinkedLeafStore.js.map +1 -0
- package/dist/trees/InMemoryLinkedMerkleLeafStore.d.ts +7 -0
- package/dist/trees/InMemoryLinkedMerkleLeafStore.d.ts.map +1 -0
- package/dist/trees/InMemoryLinkedMerkleLeafStore.js +6 -0
- package/dist/trees/InMemoryLinkedMerkleLeafStore.js.map +1 -0
- package/dist/trees/InMemoryMerkleTreeStorage.d.ts +11 -0
- package/dist/trees/InMemoryMerkleTreeStorage.d.ts.map +1 -0
- package/dist/trees/InMemoryMerkleTreeStorage.js +13 -0
- package/dist/trees/InMemoryMerkleTreeStorage.js.map +1 -0
- package/dist/trees/LinkedMerkleTree.d.ts +345 -0
- package/dist/trees/LinkedMerkleTree.d.ts.map +1 -0
- package/dist/trees/LinkedMerkleTree.js +337 -0
- package/dist/trees/LinkedMerkleTree.js.map +1 -0
- package/dist/trees/LinkedMerkleTreeStore.d.ts +24 -0
- package/dist/trees/LinkedMerkleTreeStore.d.ts.map +1 -0
- package/dist/trees/LinkedMerkleTreeStore.js +2 -0
- package/dist/trees/LinkedMerkleTreeStore.js.map +1 -0
- package/dist/trees/MerkleTreeStore.d.ts +5 -0
- package/dist/trees/MerkleTreeStore.d.ts.map +1 -0
- package/dist/trees/MerkleTreeStore.js +2 -0
- package/dist/trees/MerkleTreeStore.js.map +1 -0
- package/dist/trees/MockAsyncMerkleStore.d.ts +9 -0
- package/dist/trees/MockAsyncMerkleStore.d.ts.map +1 -0
- package/dist/trees/MockAsyncMerkleStore.js +20 -0
- package/dist/trees/MockAsyncMerkleStore.js.map +1 -0
- package/dist/trees/RollupMerkleTree.d.ts +147 -0
- package/dist/trees/RollupMerkleTree.d.ts.map +1 -0
- package/dist/trees/RollupMerkleTree.js +218 -0
- package/dist/trees/RollupMerkleTree.js.map +1 -0
- package/dist/trees/VirtualMerkleTreeStore.d.ts +13 -0
- package/dist/trees/VirtualMerkleTreeStore.d.ts.map +1 -0
- package/dist/trees/VirtualMerkleTreeStore.js +18 -0
- package/dist/trees/VirtualMerkleTreeStore.js.map +1 -0
- package/dist/trees/lmt/AbstractLinkedMerkleTree.d.ts +288 -0
- package/dist/trees/lmt/AbstractLinkedMerkleTree.d.ts.map +1 -0
- package/dist/trees/lmt/AbstractLinkedMerkleTree.js +22 -0
- package/dist/trees/lmt/AbstractLinkedMerkleTree.js.map +1 -0
- package/dist/trees/lmt/InMemoryLinkedLeafStore.d.ts +21 -0
- package/dist/trees/lmt/InMemoryLinkedLeafStore.d.ts.map +1 -0
- package/dist/trees/lmt/InMemoryLinkedLeafStore.js +26 -0
- package/dist/trees/lmt/InMemoryLinkedLeafStore.js.map +1 -0
- package/dist/trees/lmt/InMemoryLinkedMerkleLeafStore.d.ts +7 -0
- package/dist/trees/lmt/InMemoryLinkedMerkleLeafStore.d.ts.map +1 -0
- package/dist/trees/lmt/InMemoryLinkedMerkleLeafStore.js +6 -0
- package/dist/trees/lmt/InMemoryLinkedMerkleLeafStore.js.map +1 -0
- package/dist/trees/lmt/LinkedLeafStore.d.ts +16 -0
- package/dist/trees/lmt/LinkedLeafStore.d.ts.map +1 -0
- package/dist/trees/lmt/LinkedLeafStore.js +2 -0
- package/dist/trees/lmt/LinkedLeafStore.js.map +1 -0
- package/dist/trees/lmt/LinkedLinkedStore.d.ts +16 -0
- package/dist/trees/lmt/LinkedLinkedStore.d.ts.map +1 -0
- package/dist/trees/lmt/LinkedLinkedStore.js +2 -0
- package/dist/trees/lmt/LinkedLinkedStore.js.map +1 -0
- package/dist/trees/lmt/LinkedMerkleTree.d.ts +11 -0
- package/dist/trees/lmt/LinkedMerkleTree.d.ts.map +1 -0
- package/dist/trees/lmt/LinkedMerkleTree.js +241 -0
- package/dist/trees/lmt/LinkedMerkleTree.js.map +1 -0
- package/dist/trees/lmt/LinkedMerkleTreeCircuitOps.d.ts +113 -0
- package/dist/trees/lmt/LinkedMerkleTreeCircuitOps.d.ts.map +1 -0
- package/dist/trees/lmt/LinkedMerkleTreeCircuitOps.js +113 -0
- package/dist/trees/lmt/LinkedMerkleTreeCircuitOps.js.map +1 -0
- package/dist/trees/lmt/LinkedMerkleTreeDatabase.d.ts +7 -0
- package/dist/trees/lmt/LinkedMerkleTreeDatabase.d.ts.map +1 -0
- package/dist/trees/lmt/LinkedMerkleTreeDatabase.js +2 -0
- package/dist/trees/lmt/LinkedMerkleTreeDatabase.js.map +1 -0
- package/dist/trees/lmt/LinkedMerkleTreeStore.d.ts +16 -0
- package/dist/trees/lmt/LinkedMerkleTreeStore.d.ts.map +1 -0
- package/dist/trees/lmt/LinkedMerkleTreeStore.js +2 -0
- package/dist/trees/lmt/LinkedMerkleTreeStore.js.map +1 -0
- package/dist/trees/lmt/LinkedMerkleTreeTypes.d.ts +74 -0
- package/dist/trees/lmt/LinkedMerkleTreeTypes.d.ts.map +1 -0
- package/dist/trees/lmt/LinkedMerkleTreeTypes.js +50 -0
- package/dist/trees/lmt/LinkedMerkleTreeTypes.js.map +1 -0
- package/dist/trees/sparse/InMemoryMerkleTreeStorage.d.ts +11 -0
- package/dist/trees/sparse/InMemoryMerkleTreeStorage.d.ts.map +1 -0
- package/dist/trees/sparse/InMemoryMerkleTreeStorage.js +13 -0
- package/dist/trees/sparse/InMemoryMerkleTreeStorage.js.map +1 -0
- package/dist/trees/sparse/MerkleTreeStore.d.ts +5 -0
- package/dist/trees/sparse/MerkleTreeStore.d.ts.map +1 -0
- package/dist/trees/sparse/MerkleTreeStore.js +2 -0
- package/dist/trees/sparse/MerkleTreeStore.js.map +1 -0
- package/dist/trees/sparse/MockAsyncMerkleStore.d.ts +9 -0
- package/dist/trees/sparse/MockAsyncMerkleStore.d.ts.map +1 -0
- package/dist/trees/sparse/MockAsyncMerkleStore.js +20 -0
- package/dist/trees/sparse/MockAsyncMerkleStore.js.map +1 -0
- package/dist/trees/sparse/RollupMerkleTree.d.ts +158 -0
- package/dist/trees/sparse/RollupMerkleTree.d.ts.map +1 -0
- package/dist/trees/sparse/RollupMerkleTree.js +330 -0
- package/dist/trees/sparse/RollupMerkleTree.js.map +1 -0
- package/dist/types.d.ts +62 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +14 -1
- package/dist/types.js.map +1 -0
- package/dist/union/union.d.ts +177 -0
- package/dist/union/union.d.ts.map +1 -0
- package/dist/union/union.js +35 -0
- package/dist/union/union.js.map +1 -0
- package/dist/utils.d.ts +57 -2
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +153 -4
- package/dist/utils.js.map +1 -0
- package/dist/zkProgrammable/ProvableMethodExecutionContext.d.ts +4 -3
- package/dist/zkProgrammable/ProvableMethodExecutionContext.d.ts.map +1 -1
- package/dist/zkProgrammable/ProvableMethodExecutionContext.js +2 -3
- package/dist/zkProgrammable/ProvableMethodExecutionContext.js.map +1 -0
- package/dist/zkProgrammable/ZkProgrammable.d.ts +32 -11
- package/dist/zkProgrammable/ZkProgrammable.d.ts.map +1 -1
- package/dist/zkProgrammable/ZkProgrammable.js +36 -17
- package/dist/zkProgrammable/ZkProgrammable.js.map +1 -0
- package/dist/zkProgrammable/provableMethod.d.ts +7 -4
- package/dist/zkProgrammable/provableMethod.d.ts.map +1 -1
- package/dist/zkProgrammable/provableMethod.js +30 -14
- package/dist/zkProgrammable/provableMethod.js.map +1 -0
- package/jest.config.cjs +12 -1
- package/package.json +9 -7
- package/src/cache/CacheManifest.ts +57 -0
- package/src/cache/ProxyCache.ts +30 -0
- package/src/cache/RemoteCache.ts +9 -0
- package/src/cache/RemoteCacheCompiler.ts +131 -0
- package/src/compiling/AtomicCompileHelper.ts +71 -0
- package/src/compiling/CompilableModule.ts +6 -0
- package/src/compiling/CompileRegistry.ts +64 -0
- package/src/compiling/services/ChildVerificationKeyService.ts +26 -0
- package/src/config/ChildContainerCreatable.ts +5 -0
- package/src/config/ChildContainerProvider.ts +5 -0
- package/src/config/ConfigurableModule.ts +15 -2
- package/src/config/ModuleContainer.ts +286 -58
- package/src/config/Startable.ts +3 -0
- package/src/config/injectAlias.ts +70 -0
- package/src/dependencyFactory/DependencyFactory.ts +34 -109
- package/src/dummyVerificationKey.ts +10 -0
- package/src/events/EventEmitter.ts +61 -0
- package/src/events/EventEmitterProxy.ts +81 -0
- package/src/events/EventEmittingComponent.ts +11 -0
- package/src/events/ReplayingSingleUseEventEmitter.ts +42 -0
- package/src/index.ts +27 -2
- package/src/log.ts +145 -0
- package/src/trees/lmt/AbstractLinkedMerkleTree.ts +102 -0
- package/src/trees/lmt/InMemoryLinkedLeafStore.ts +42 -0
- package/src/trees/lmt/LinkedLeafStore.ts +13 -0
- package/src/trees/lmt/LinkedMerkleTree.ts +335 -0
- package/src/trees/lmt/LinkedMerkleTreeCircuitOps.ts +188 -0
- package/src/trees/lmt/LinkedMerkleTreeTypes.ts +53 -0
- package/src/trees/sparse/InMemoryMerkleTreeStorage.ts +17 -0
- package/src/trees/sparse/MerkleTreeStore.ts +5 -0
- package/src/trees/sparse/MockAsyncMerkleStore.ts +30 -0
- package/src/trees/sparse/RollupMerkleTree.ts +512 -0
- package/src/types.ts +53 -2
- package/src/utils.ts +281 -5
- package/src/zkProgrammable/ProvableMethodExecutionContext.ts +6 -6
- package/src/zkProgrammable/ZkProgrammable.ts +90 -35
- package/src/zkProgrammable/provableMethod.ts +50 -23
- package/test/config/ContainerEvents.test.ts +65 -0
- package/test/config/ModuleContainer.test.ts +146 -15
- package/test/config/injectAlias.test.ts +28 -0
- package/test/trees/LinkedMerkleTree.test.ts +124 -0
- package/test/trees/LinkedMerkleTreeCircuitOps.test.ts +147 -0
- package/test/trees/MerkleTree.test.ts +251 -0
- package/test/tsconfig.json +5 -2
- package/test/zkProgrammable/ZkProgrammable.test.ts +145 -119
- package/tsconfig.json +1 -1
- package/LICENSE.md +0 -201
- package/tsconfig.test.json +0 -9
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"union.js","sourceRoot":"","sources":["../../src/union/union.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAgC,MAAM,MAAM,CAAC;AAE7E,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,MAAM,UAAU,oBAAoB,CAElC,SAAY;IACZ,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CACxB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CACxD,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAChC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAClD,CAAC;IAEF,MAAM,aAAc,SAAQ,MAAM,CAAC;QACjC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC;QACvC,IAAI,EAAE,KAAK;KACZ,CAAC;QACO,MAAM,CAAC,IAAI,CAChB,QAAc,EACd,KAA0B;YAE1B,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/D,OAAO,IAAI,aAAa,CAAC;gBACvB,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACpC,CAAC,CAAC;QACL,CAAC;QAEM,IAAI,CAAyB,QAAc;YAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAEzC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YAEjE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YAE/C,OAAO,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACzC,CAAC;KACF;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAKD,MAAM,UAAU,wBAAwB,CAAC,MAAc;IACrD,OAAO,MAAM,kBAAmB,SAAQ,MAAM,CAAC;QAC7C,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC;QACpC,IAAI,EAAE,KAAK;KACZ,CAAC;KAAG,CAAC;AACR,CAAC"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,6 +1,17 @@
|
|
|
1
|
-
import { FlexibleProvablePure } from "
|
|
1
|
+
import { Field, FlexibleProvablePure, DynamicProof, Proof } from "o1js";
|
|
2
|
+
import { TypedClass } from "./types";
|
|
2
3
|
export declare function requireTrue(condition: boolean, errorOrFunction: Error | (() => Error)): void;
|
|
3
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Utility function to split an array of type T into a record <K, T[]> based on a
|
|
6
|
+
* function T => K that determines the key of each record
|
|
7
|
+
*/
|
|
8
|
+
export declare function splitArray<T, K extends string | number>(arr: T[], split: (t: T) => K): Record<K, T[] | undefined>;
|
|
9
|
+
export declare function range(startOrEnd: number, endOrNothing?: number | undefined): number[];
|
|
10
|
+
export declare function reduceSequential<T, U>(array: T[], callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => Promise<U>, initialValue: U): Promise<U>;
|
|
11
|
+
export declare function yieldSequential<Source, State, Target>(array: Source[], callbackfn: (previousValue: State, currentValue: Source, currentIndex: number, array: Source[]) => Promise<[State, Target]>, initialValue: State): Promise<[State, Target[]]>;
|
|
12
|
+
export declare function mapSequential<T, R>(array: T[], f: (element: T, index: number, array: T[]) => Promise<R>): Promise<R[]>;
|
|
13
|
+
export declare function unzip<A, B>(array: [A, B][]): [A[], B[]];
|
|
14
|
+
export declare function assertSizeOneOrTwo<T>(arr: T[]): asserts arr is [T] | [T, T];
|
|
4
15
|
/**
|
|
5
16
|
* Computes a dummy value for the given value type.
|
|
6
17
|
*
|
|
@@ -8,4 +19,48 @@ export declare function range(startOrEnd: number, end: number | undefined): numb
|
|
|
8
19
|
* @returns Dummy value for the given value type
|
|
9
20
|
*/
|
|
10
21
|
export declare function dummyValue<Value>(valueType: FlexibleProvablePure<Value>): Value;
|
|
22
|
+
export declare function noop(): void;
|
|
23
|
+
export interface ToFieldable {
|
|
24
|
+
toFields: () => Field[];
|
|
25
|
+
}
|
|
26
|
+
export interface ToFieldableStatic {
|
|
27
|
+
toFields: (value: unknown) => Field[];
|
|
28
|
+
}
|
|
29
|
+
export interface ToJSONableStatic {
|
|
30
|
+
toJSON: (value: unknown) => any;
|
|
31
|
+
}
|
|
32
|
+
export type ProofTypes = typeof Proof<unknown, unknown> | typeof DynamicProof<unknown, unknown>;
|
|
33
|
+
export declare function sleep(ms: number): Promise<void>;
|
|
34
|
+
export declare function filterNonNull<Type>(value: Type | null): value is Type;
|
|
35
|
+
export declare function filterNonUndefined<Type>(value: Type | undefined): value is Type;
|
|
36
|
+
export declare function prefixToField(prefix: string): Field;
|
|
37
|
+
export declare function hashWithPrefix(prefix: string, input: Field[]): import("o1js/dist/node/lib/provable/field").Field;
|
|
38
|
+
export declare function expectDefined<T>(value: T | undefined): asserts value is T;
|
|
39
|
+
type NonMethodKeys<Type> = {
|
|
40
|
+
[Key in keyof Type]: Type[Key] extends Function ? never : Key;
|
|
41
|
+
}[keyof Type];
|
|
42
|
+
export type NonMethods<Type> = Pick<Type, NonMethodKeys<Type>>;
|
|
43
|
+
export declare const MAX_FIELD: import("o1js/dist/node/lib/provable/field").Field;
|
|
44
|
+
/**
|
|
45
|
+
* Returns a boolean indicating whether a given class is a subclass of another class,
|
|
46
|
+
* indicated by the name parameter.
|
|
47
|
+
*/
|
|
48
|
+
export declare function isSubtypeOfName(clas: TypedClass<unknown>, name: string): boolean;
|
|
49
|
+
export declare function safeParseJson<T>(json: string): T;
|
|
50
|
+
export type Nullable<T> = {
|
|
51
|
+
[Key in keyof T]: T[Key] | undefined;
|
|
52
|
+
};
|
|
53
|
+
export declare function isFull<T>(t: Nullable<T>): t is T;
|
|
54
|
+
export declare function padArray<T>(array: T[], batchSize: number, generator: (index: number) => T): T[];
|
|
55
|
+
export declare function batch<T>(arr: T[], batchSize: number, dummy: (index: number) => T): T[][];
|
|
56
|
+
export type Reference<T> = {
|
|
57
|
+
set value(value: T);
|
|
58
|
+
get value(): T;
|
|
59
|
+
};
|
|
60
|
+
export declare function createReference<T>(initial: T): Reference<T>;
|
|
61
|
+
export declare namespace BigIntMath {
|
|
62
|
+
function max(...args: bigint[]): bigint;
|
|
63
|
+
}
|
|
64
|
+
export declare function assertDefined<T>(t: T | undefined, msg?: string): asserts t is T;
|
|
65
|
+
export {};
|
|
11
66
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { Field } from "
|
|
1
|
+
import { Field, Poseidon, } from "o1js";
|
|
2
|
+
import _ from "lodash";
|
|
2
3
|
export function requireTrue(condition, errorOrFunction) {
|
|
3
4
|
if (!condition) {
|
|
4
5
|
throw typeof errorOrFunction === "function"
|
|
@@ -6,12 +7,66 @@ export function requireTrue(condition, errorOrFunction) {
|
|
|
6
7
|
: errorOrFunction;
|
|
7
8
|
}
|
|
8
9
|
}
|
|
9
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Utility function to split an array of type T into a record <K, T[]> based on a
|
|
12
|
+
* function T => K that determines the key of each record
|
|
13
|
+
*/
|
|
14
|
+
export function splitArray(arr, split) {
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
16
|
+
const record = {};
|
|
17
|
+
arr.forEach((element) => {
|
|
18
|
+
const k = split(element);
|
|
19
|
+
if (record[k] !== undefined) {
|
|
20
|
+
record[k].push(element);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
record[k] = [element];
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
return record;
|
|
27
|
+
}
|
|
28
|
+
export function range(startOrEnd, endOrNothing) {
|
|
29
|
+
let end = endOrNothing;
|
|
30
|
+
let start = startOrEnd;
|
|
10
31
|
if (end === undefined) {
|
|
11
32
|
end = startOrEnd;
|
|
12
|
-
|
|
33
|
+
start = 0;
|
|
34
|
+
}
|
|
35
|
+
return Array.from({ length: end - start }, (ignored, index) => index + start);
|
|
36
|
+
}
|
|
37
|
+
export function reduceSequential(array, callbackfn, initialValue) {
|
|
38
|
+
return array.reduce(async (previousPromise, current, index, arr) => {
|
|
39
|
+
const previous = await previousPromise;
|
|
40
|
+
return await callbackfn(previous, current, index, arr);
|
|
41
|
+
}, Promise.resolve(initialValue));
|
|
42
|
+
}
|
|
43
|
+
export function yieldSequential(array, callbackfn, initialValue) {
|
|
44
|
+
return reduceSequential(array, async ([state, collectedTargets], curr, index, arr) => {
|
|
45
|
+
const [newState, addition] = await callbackfn(state, curr, index, arr);
|
|
46
|
+
// The reason we wrap this in an array here is for a special case where Target is a tuple
|
|
47
|
+
// or array itself. In this case, js interprets by flattening the Value in the array
|
|
48
|
+
// (which it does when a function (like concat) uses a spread operator and the
|
|
49
|
+
// input is an array)
|
|
50
|
+
return [newState, collectedTargets.concat([addition])];
|
|
51
|
+
}, [initialValue, []]);
|
|
52
|
+
}
|
|
53
|
+
export function mapSequential(array, f) {
|
|
54
|
+
return array.reduce(async (r, element, index, a) => {
|
|
55
|
+
const ret = await r;
|
|
56
|
+
const next = await f(element, index, a);
|
|
57
|
+
ret.push(next);
|
|
58
|
+
return ret;
|
|
59
|
+
}, Promise.resolve([]));
|
|
60
|
+
}
|
|
61
|
+
export function unzip(array) {
|
|
62
|
+
const as = array.map(([a]) => a);
|
|
63
|
+
const bs = array.map(([, b]) => b);
|
|
64
|
+
return [as, bs];
|
|
65
|
+
}
|
|
66
|
+
export function assertSizeOneOrTwo(arr) {
|
|
67
|
+
if (!(arr.length === 1 || arr.length === 2)) {
|
|
68
|
+
throw new Error("Given array not size 1 or 2");
|
|
13
69
|
}
|
|
14
|
-
return Array.from({ length: end - startOrEnd }, (ignored, index) => index);
|
|
15
70
|
}
|
|
16
71
|
/**
|
|
17
72
|
* Computes a dummy value for the given value type.
|
|
@@ -25,3 +80,97 @@ export function dummyValue(valueType) {
|
|
|
25
80
|
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
26
81
|
return valueType.fromFields(fields);
|
|
27
82
|
}
|
|
83
|
+
export function noop() { }
|
|
84
|
+
export async function sleep(ms) {
|
|
85
|
+
await new Promise((resolve) => {
|
|
86
|
+
setTimeout(resolve, ms);
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
export function filterNonNull(value) {
|
|
90
|
+
return value !== null;
|
|
91
|
+
}
|
|
92
|
+
export function filterNonUndefined(value) {
|
|
93
|
+
return value !== undefined;
|
|
94
|
+
}
|
|
95
|
+
const encoder = new TextEncoder();
|
|
96
|
+
// Copied from o1js binable.ts:317
|
|
97
|
+
export function prefixToField(prefix) {
|
|
98
|
+
const fieldSize = Field.sizeInBytes;
|
|
99
|
+
if (prefix.length >= fieldSize)
|
|
100
|
+
throw Error("prefix too long");
|
|
101
|
+
const stringBytes = [...encoder.encode(prefix)];
|
|
102
|
+
return Field.fromBytes(stringBytes.concat(Array(fieldSize - stringBytes.length).fill(0)));
|
|
103
|
+
}
|
|
104
|
+
export function hashWithPrefix(prefix, input) {
|
|
105
|
+
const salt = Poseidon.update([Field(0), Field(0), Field(0)], [prefixToField(prefix)]);
|
|
106
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
107
|
+
return Poseidon.update(salt, input)[0];
|
|
108
|
+
}
|
|
109
|
+
// end copy
|
|
110
|
+
export function expectDefined(value) {
|
|
111
|
+
expect(value).toBeDefined();
|
|
112
|
+
}
|
|
113
|
+
export const MAX_FIELD = Field(Field.ORDER - 1n);
|
|
114
|
+
/**
|
|
115
|
+
* Returns a boolean indicating whether a given class is a subclass of another class,
|
|
116
|
+
* indicated by the name parameter.
|
|
117
|
+
*/
|
|
118
|
+
// TODO Change to class reference based comparisons
|
|
119
|
+
export function isSubtypeOfName(clas, name) {
|
|
120
|
+
if (clas === undefined || clas === null) {
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
if (clas.name === name) {
|
|
124
|
+
return true;
|
|
125
|
+
}
|
|
126
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
127
|
+
return isSubtypeOfName(Object.getPrototypeOf(clas), name);
|
|
128
|
+
}
|
|
129
|
+
// TODO Eventually, replace this by a schema validation library
|
|
130
|
+
export function safeParseJson(json) {
|
|
131
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
132
|
+
return JSON.parse(json);
|
|
133
|
+
}
|
|
134
|
+
export function isFull(t) {
|
|
135
|
+
return Object.values(t).findIndex((v) => v === undefined) === -1;
|
|
136
|
+
}
|
|
137
|
+
// TODO Restructure utils into separate package and multiple files
|
|
138
|
+
export function padArray(array, batchSize, generator) {
|
|
139
|
+
const slice = array.slice();
|
|
140
|
+
const dummies = range(0, batchSize - (array.length % batchSize)).map((i) => generator(i + array.length));
|
|
141
|
+
slice.push(...dummies);
|
|
142
|
+
return slice;
|
|
143
|
+
}
|
|
144
|
+
export function batch(arr, batchSize, dummy) {
|
|
145
|
+
const padded = padArray(arr, batchSize, dummy);
|
|
146
|
+
const partitioned = _.groupBy(padded.map((v, i) => [v, i]), ([v, i]) => Math.floor(i / batchSize));
|
|
147
|
+
const numBatches = Math.ceil(arr.length / batchSize);
|
|
148
|
+
return range(0, numBatches).map((i) => partitioned[i].map((x) => x[0]));
|
|
149
|
+
}
|
|
150
|
+
class ReferenceObject {
|
|
151
|
+
constructor(internalValue) {
|
|
152
|
+
this.internalValue = internalValue;
|
|
153
|
+
}
|
|
154
|
+
get value() {
|
|
155
|
+
return this.internalValue;
|
|
156
|
+
}
|
|
157
|
+
set value(t) {
|
|
158
|
+
this.internalValue = t;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
export function createReference(initial) {
|
|
162
|
+
return new ReferenceObject(initial);
|
|
163
|
+
}
|
|
164
|
+
export var BigIntMath;
|
|
165
|
+
(function (BigIntMath) {
|
|
166
|
+
function max(...args) {
|
|
167
|
+
return args.reduce((m, e) => (e > m ? e : m));
|
|
168
|
+
}
|
|
169
|
+
BigIntMath.max = max;
|
|
170
|
+
})(BigIntMath || (BigIntMath = {}));
|
|
171
|
+
export function assertDefined(t, msg) {
|
|
172
|
+
if (t === undefined) {
|
|
173
|
+
throw new Error(msg ?? "Value is undefined");
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Proof } from "o1js";
|
|
2
|
+
import type { ArgumentTypes } from "./provableMethod";
|
|
2
3
|
export declare class ProvableMethodExecutionResult {
|
|
3
4
|
moduleName?: string;
|
|
4
5
|
methodName?: string;
|
|
5
|
-
args?:
|
|
6
|
+
args?: ArgumentTypes;
|
|
6
7
|
prover?: () => Promise<Proof<unknown, unknown>>;
|
|
7
8
|
prove<ProofType extends Proof<unknown, unknown>>(): Promise<ProofType>;
|
|
8
9
|
}
|
|
@@ -29,7 +30,7 @@ export declare class ProvableMethodExecutionContext {
|
|
|
29
30
|
*
|
|
30
31
|
* @param methodName - Name of the method being captured in the context
|
|
31
32
|
*/
|
|
32
|
-
beforeMethod(moduleName: string, methodName: string, args:
|
|
33
|
+
beforeMethod(moduleName: string, methodName: string, args: ArgumentTypes): void;
|
|
33
34
|
/**
|
|
34
35
|
* Removes the latest method from the execution context stack,
|
|
35
36
|
* keeping track of the amount of 'unfinished' methods. Allowing
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProvableMethodExecutionContext.d.ts","sourceRoot":"","sources":["../../src/zkProgrammable/ProvableMethodExecutionContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"ProvableMethodExecutionContext.d.ts","sourceRoot":"","sources":["../../src/zkProgrammable/ProvableMethodExecutionContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAIlC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAWtD,qBAAa,6BAA6B;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,IAAI,CAAC,EAAE,aAAa,CAAC;IAErB,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAE1C,KAAK,CAChB,SAAS,SAAS,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,KACtC,OAAO,CAAC,SAAS,CAAC;CAaxB;AAED;;;;GAIG;AACH,qBACa,8BAA8B;IAClC,EAAE,SAAc;IAEhB,OAAO,EAAE,MAAM,EAAE,CAAM;IAEvB,MAAM,EAAE,6BAA6B,CACN;IAGtC;;;;;;OAMG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAI/D;;;;;OAKG;IACI,YAAY,CACjB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,aAAa;IAYrB;;;;OAIG;IACI,WAAW;IAIlB,IAAW,UAAU,YAEpB;IAED,IAAW,UAAU,YAEpB;IAED;;OAEG;IACI,OAAO;;;;IAOd;;OAEG;IACI,KAAK;CAGb"}
|
|
@@ -29,13 +29,12 @@ export class ProvableMethodExecutionResult {
|
|
|
29
29
|
* allowing them to post relevant information (such as execution status)
|
|
30
30
|
* into the context without any unnecessary 'prop drilling'.
|
|
31
31
|
*/
|
|
32
|
-
let ProvableMethodExecutionContext = class ProvableMethodExecutionContext {
|
|
32
|
+
export let ProvableMethodExecutionContext = class ProvableMethodExecutionContext {
|
|
33
33
|
constructor() {
|
|
34
34
|
this.id = uniqueId();
|
|
35
35
|
this.methods = [];
|
|
36
36
|
this.result = new ProvableMethodExecutionResult();
|
|
37
37
|
}
|
|
38
|
-
// eslint-disable-next-line no-warning-comments,max-len
|
|
39
38
|
// TODO See if we should make this class generic, bc I think we can persist the type
|
|
40
39
|
/**
|
|
41
40
|
* Adds a method prover to the current execution context,
|
|
@@ -95,4 +94,4 @@ let ProvableMethodExecutionContext = class ProvableMethodExecutionContext {
|
|
|
95
94
|
ProvableMethodExecutionContext = __decorate([
|
|
96
95
|
singleton()
|
|
97
96
|
], ProvableMethodExecutionContext);
|
|
98
|
-
|
|
97
|
+
//# sourceMappingURL=ProvableMethodExecutionContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProvableMethodExecutionContext.js","sourceRoot":"","sources":["../../src/zkProgrammable/ProvableMethodExecutionContext.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AAIvC,MAAM,MAAM,GAAG;IACb,wBAAwB,EAAE,GAAG,EAAE,CAAC,IAAI,KAAK,CAAC,+BAA+B,CAAC;IAE1E,YAAY,EAAE,CAAC,UAAkB,EAAE,UAAkB,EAAE,EAAE,CACvD,IAAI,KAAK,CACP,uBAAuB,UAAU,IAAI,UAAU,4CAA4C,CAC5F;CACJ,CAAC;AAEF,MAAM,OAAO,6BAA6B;IASjC,KAAK,CAAC,KAAK;QAGhB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,yEAAyE;YACzE,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACxC,MAAM,MAAM,CAAC,wBAAwB,EAAE,CAAC;aACzC;YACD,MAAM,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;SAC7D;QAED,qDAAqD;QACrD,yEAAyE;QACzE,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAc,CAAC;IAC5C,CAAC;CACF;AAED;;;;GAIG;AAEI,WAAM,8BAA8B,GAApC,MAAM,8BAA8B;IAApC;QACE,OAAE,GAAG,QAAQ,EAAE,CAAC;QAEhB,YAAO,GAAa,EAAE,CAAC;QAEvB,WAAM,GACX,IAAI,6BAA6B,EAAE,CAAC;IAoExC,CAAC;IAlEC,oFAAoF;IACpF;;;;;;OAMG;IACI,SAAS,CAAC,MAA8C;QAC7D,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACI,YAAY,CACjB,UAAkB,EAClB,UAAkB,EAClB,IAAmB;QAEnB,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;SACzB;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACI,WAAW;QAChB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACI,OAAO;QACZ,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,KAAK;QACV,IAAI,CAAC,MAAM,GAAG,IAAI,6BAA6B,EAAE,CAAC;IACpD,CAAC;CACF,CAAA;AA1EY,8BAA8B;IAD1C,SAAS,EAAE;GACC,8BAA8B,CA0E1C"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ZkProgram, FlexibleProvablePure, Proof, Field, Provable, Cache as O1Cache } from "o1js";
|
|
2
|
+
import type { CompileRegistry } from "../compiling/CompileRegistry";
|
|
2
3
|
export interface CompileArtifact {
|
|
3
|
-
verificationKey:
|
|
4
|
+
verificationKey: {
|
|
5
|
+
data: string;
|
|
6
|
+
hash: Field;
|
|
7
|
+
};
|
|
4
8
|
}
|
|
5
9
|
export interface AreProofsEnabled {
|
|
6
10
|
areProofsEnabled: boolean;
|
|
@@ -10,21 +14,38 @@ export interface Verify<PublicInput, PublicOutput> {
|
|
|
10
14
|
(proof: Proof<PublicInput, PublicOutput>): Promise<boolean>;
|
|
11
15
|
}
|
|
12
16
|
export interface Compile {
|
|
13
|
-
(
|
|
17
|
+
(options?: {
|
|
18
|
+
cache?: O1Cache;
|
|
19
|
+
forceRecompile?: boolean;
|
|
20
|
+
proofsEnabled?: boolean;
|
|
21
|
+
withRuntimeTables?: boolean;
|
|
22
|
+
numChunks?: number;
|
|
23
|
+
lazyMode?: boolean;
|
|
24
|
+
}): Promise<CompileArtifact>;
|
|
14
25
|
}
|
|
15
|
-
export interface PlainZkProgram<PublicInput = undefined, PublicOutput =
|
|
26
|
+
export interface PlainZkProgram<PublicInput = undefined, PublicOutput = undefined> {
|
|
27
|
+
name: string;
|
|
16
28
|
compile: Compile;
|
|
17
29
|
verify: Verify<PublicInput, PublicOutput>;
|
|
18
|
-
Proof: ReturnType<typeof
|
|
19
|
-
methods: Record<string, ((...args: any) => Promise<
|
|
30
|
+
Proof: ReturnType<typeof ZkProgram.Proof<FlexibleProvablePure<PublicInput>, FlexibleProvablePure<PublicOutput>>>;
|
|
31
|
+
methods: Record<string, ((...args: any) => Promise<{
|
|
32
|
+
proof: Proof<PublicInput, PublicOutput>;
|
|
33
|
+
auxiliaryOutput: any;
|
|
34
|
+
}>) | ((publicInput: PublicInput, ...args: any) => Promise<{
|
|
35
|
+
proof: Proof<PublicInput, PublicOutput>;
|
|
36
|
+
auxiliaryOutput: any;
|
|
37
|
+
}>)>;
|
|
38
|
+
analyzeMethods: () => Promise<Record<string, Awaited<ReturnType<typeof Provable.constraintSystem>>>>;
|
|
20
39
|
}
|
|
21
40
|
export declare function verifyToMockable<PublicInput, PublicOutput>(verify: Verify<PublicInput, PublicOutput>, { areProofsEnabled }: AreProofsEnabled): (proof: Proof<PublicInput, PublicOutput>) => Promise<boolean>;
|
|
22
|
-
export declare const
|
|
23
|
-
export declare function compileToMockable(compile: Compile, { areProofsEnabled }: AreProofsEnabled):
|
|
41
|
+
export declare const MOCK_VERIFICATION_KEY: import("o1js/dist/node/lib/proof-system/verification-key").VerificationKey;
|
|
42
|
+
export declare function compileToMockable(compile: Compile, { areProofsEnabled }: AreProofsEnabled): Compile;
|
|
24
43
|
export declare abstract class ZkProgrammable<PublicInput = undefined, PublicOutput = void> {
|
|
25
|
-
abstract get
|
|
26
|
-
abstract zkProgramFactory(): PlainZkProgram<PublicInput, PublicOutput
|
|
27
|
-
|
|
44
|
+
abstract get areProofsEnabled(): AreProofsEnabled | undefined;
|
|
45
|
+
abstract zkProgramFactory(): PlainZkProgram<PublicInput, PublicOutput>[];
|
|
46
|
+
private zkProgramSingleton?;
|
|
47
|
+
get zkProgram(): PlainZkProgram<PublicInput, PublicOutput>[];
|
|
48
|
+
compile(registry: CompileRegistry): Promise<Record<string, CompileArtifact>>;
|
|
28
49
|
}
|
|
29
50
|
export interface WithZkProgrammable<PublicInput = undefined, PublicOutput = void> {
|
|
30
51
|
zkProgrammable: ZkProgrammable<PublicInput, PublicOutput>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ZkProgrammable.d.ts","sourceRoot":"","sources":["../../src/zkProgrammable/ZkProgrammable.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ZkProgrammable.d.ts","sourceRoot":"","sources":["../../src/zkProgrammable/ZkProgrammable.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,9 +8,12 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
10
|
import { Memoize } from "typescript-memoize";
|
|
11
|
-
import {
|
|
11
|
+
import { log } from "../log";
|
|
12
|
+
import { dummyVerificationKey } from "../dummyVerificationKey";
|
|
13
|
+
import { reduceSequential } from "../utils";
|
|
14
|
+
import { MOCK_PROOF } from "./provableMethod";
|
|
12
15
|
const errors = {
|
|
13
|
-
|
|
16
|
+
areProofsEnabledNotSet: (name) => new Error(`AreProofsEnabled was not injected for: ${name}`),
|
|
14
17
|
};
|
|
15
18
|
export function verifyToMockable(verify, { areProofsEnabled }) {
|
|
16
19
|
return async (proof) => {
|
|
@@ -21,40 +24,56 @@ export function verifyToMockable(verify, { areProofsEnabled }) {
|
|
|
21
24
|
}
|
|
22
25
|
catch (error) {
|
|
23
26
|
// silently fail verification
|
|
24
|
-
|
|
27
|
+
log.error(error);
|
|
25
28
|
verified = false;
|
|
26
29
|
}
|
|
27
30
|
return verified;
|
|
28
31
|
}
|
|
29
|
-
return proof.proof ===
|
|
32
|
+
return proof.proof === MOCK_PROOF;
|
|
30
33
|
};
|
|
31
34
|
}
|
|
32
|
-
export const
|
|
35
|
+
export const MOCK_VERIFICATION_KEY = dummyVerificationKey();
|
|
33
36
|
export function compileToMockable(compile, { areProofsEnabled }) {
|
|
34
|
-
return async () => {
|
|
37
|
+
return async (...args) => {
|
|
35
38
|
if (areProofsEnabled) {
|
|
36
|
-
return await compile();
|
|
39
|
+
return await compile(...args);
|
|
37
40
|
}
|
|
38
41
|
return {
|
|
39
|
-
verificationKey:
|
|
42
|
+
verificationKey: MOCK_VERIFICATION_KEY,
|
|
40
43
|
};
|
|
41
44
|
};
|
|
42
45
|
}
|
|
43
46
|
export class ZkProgrammable {
|
|
44
47
|
get zkProgram() {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
throw errors.appChainNotSet(this.constructor.name);
|
|
48
|
+
if (this.zkProgramSingleton === undefined) {
|
|
49
|
+
this.zkProgramSingleton = this.zkProgramFactory();
|
|
48
50
|
}
|
|
49
|
-
return {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
return this.zkProgramSingleton.map((bucket) => {
|
|
52
|
+
if (!this.areProofsEnabled) {
|
|
53
|
+
throw errors.areProofsEnabledNotSet(this.constructor.name);
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
...bucket,
|
|
57
|
+
verify: verifyToMockable(bucket.verify, this.areProofsEnabled),
|
|
58
|
+
compile: compileToMockable(bucket.compile, this.areProofsEnabled),
|
|
59
|
+
};
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
async compile(registry) {
|
|
63
|
+
return await reduceSequential(this.zkProgram, async (acc, program) => {
|
|
64
|
+
const result = await registry.compile(program);
|
|
65
|
+
return {
|
|
66
|
+
...acc,
|
|
67
|
+
[program.name]: result,
|
|
68
|
+
};
|
|
69
|
+
},
|
|
70
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
71
|
+
{});
|
|
54
72
|
}
|
|
55
73
|
}
|
|
56
74
|
__decorate([
|
|
57
75
|
Memoize(),
|
|
58
|
-
__metadata("design:type",
|
|
76
|
+
__metadata("design:type", Array),
|
|
59
77
|
__metadata("design:paramtypes", [])
|
|
60
78
|
], ZkProgrammable.prototype, "zkProgram", null);
|
|
79
|
+
//# sourceMappingURL=ZkProgrammable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ZkProgrammable.js","sourceRoot":"","sources":["../../src/zkProgrammable/ZkProgrammable.ts"],"names":[],"mappings":";;;;;;;;;AAQA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAG5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,MAAM,GAAG;IACb,sBAAsB,EAAE,CAAC,IAAY,EAAE,EAAE,CACvC,IAAI,KAAK,CAAC,0CAA0C,IAAI,EAAE,CAAC;CAC9D,CAAC;AA6DF,MAAM,UAAU,gBAAgB,CAC9B,MAAyC,EACzC,EAAE,gBAAgB,EAAoB;IAEtC,OAAO,KAAK,EAAE,KAAuC,EAAE,EAAE;QACvD,IAAI,gBAAgB,EAAE;YACpB,IAAI,QAAQ,GAAG,KAAK,CAAC;YAErB,IAAI;gBACF,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;aAChC;YAAC,OAAO,KAAc,EAAE;gBACvB,6BAA6B;gBAC7B,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACjB,QAAQ,GAAG,KAAK,CAAC;aAClB;YAED,OAAO,QAAQ,CAAC;SACjB;QAED,OAAO,KAAK,CAAC,KAAK,KAAK,UAAU,CAAC;IACpC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,oBAAoB,EAAE,CAAC;AAE5D,MAAM,UAAU,iBAAiB,CAC/B,OAAgB,EAChB,EAAE,gBAAgB,EAAoB;IAEtC,OAAO,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE;QACvB,IAAI,gBAAgB,EAAE;YACpB,OAAO,MAAM,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;SAC/B;QAED,OAAO;YACL,eAAe,EAAE,qBAAqB;SACvC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,OAAgB,cAAc;IAalC,IACW,SAAS;QAClB,IAAI,IAAI,CAAC,kBAAkB,KAAK,SAAS,EAAE;YACzC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACnD;QAED,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC5C,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBAC1B,MAAM,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aAC5D;YACD,OAAO;gBACL,GAAG,MAAM;gBACT,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC;gBAC9D,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC;aAClE,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAyB;QAC5C,OAAO,MAAM,gBAAgB,CAC3B,IAAI,CAAC,SAAS,EACd,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;YACrB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC/C,OAAO;gBACL,GAAG,GAAG;gBACN,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM;aACvB,CAAC;QACJ,CAAC;QACD,yEAAyE;QACzE,EAAqC,CACtC,CAAC;IACJ,CAAC;CACF;AAhCC;IAAC,OAAO,EAAE;;;+CAgBT"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
import { Proof, DynamicProof } from "o1js";
|
|
1
2
|
import { ProvableMethodExecutionContext } from "./ProvableMethodExecutionContext";
|
|
2
3
|
import type { WithZkProgrammable, ZkProgrammable } from "./ZkProgrammable";
|
|
3
|
-
export type
|
|
4
|
-
export
|
|
5
|
-
export
|
|
4
|
+
export type O1JSPrimitive = object | string | boolean | number;
|
|
5
|
+
export type ArgumentTypes = (O1JSPrimitive | Proof<unknown, unknown> | DynamicProof<unknown, unknown>)[];
|
|
6
|
+
export type DecoratedMethod = (...args: ArgumentTypes) => Promise<unknown>;
|
|
7
|
+
export declare const MOCK_PROOF = "mock-proof";
|
|
8
|
+
export declare function toProver(methodName: string, simulatedMethod: DecoratedMethod, isFirstParameterPublicInput: boolean, ...args: ArgumentTypes): (this: ZkProgrammable<any, any>) => Promise<Proof<any, any>>;
|
|
6
9
|
/**
|
|
7
10
|
* Decorates a provable method on a 'prover class', depending on
|
|
8
11
|
* if proofs are enabled or not, either runs the respective zkProgram prover,
|
|
@@ -12,5 +15,5 @@ export declare function toProver(methodName: string, simulatedMethod: DecoratedM
|
|
|
12
15
|
* @param executionContext
|
|
13
16
|
* @returns
|
|
14
17
|
*/
|
|
15
|
-
export declare function provableMethod(isFirstParameterPublicInput?: boolean, executionContext?: ProvableMethodExecutionContext): <Target extends ZkProgrammable<any, any> | WithZkProgrammable<any, any>>(target: Target, methodName: string, descriptor:
|
|
18
|
+
export declare function provableMethod(isFirstParameterPublicInput?: boolean, executionContext?: ProvableMethodExecutionContext): <Target extends ZkProgrammable<any, any> | WithZkProgrammable<any, any>>(target: Target, methodName: string, descriptor: TypedPropertyDescriptor<(...args: any[]) => Promise<any> | any>) => TypedPropertyDescriptor<(...args: any[]) => Promise<any> | any>;
|
|
16
19
|
//# sourceMappingURL=provableMethod.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provableMethod.d.ts","sourceRoot":"","sources":["../../src/zkProgrammable/provableMethod.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provableMethod.d.ts","sourceRoot":"","sources":["../../src/zkProgrammable/provableMethod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAG3C,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAG3E,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAC/D,MAAM,MAAM,aAAa,GAAG,CACxB,aAAa,GACb,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,GACvB,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CACjC,EAAE,CAAC;AAEJ,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAE3E,eAAO,MAAM,UAAU,eAAe,CAAC;AAGvC,wBAAgB,QAAQ,CACtB,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,eAAe,EAChC,2BAA2B,EAAE,OAAO,EACpC,GAAG,IAAI,EAAE,aAAa,UAEa,eAAe,GAAG,EAAE,GAAG,CAAC,8BA+C5D;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,2BAA2B,UAAO,EAClC,gBAAgB,GAAE,8BAEjB,wGAMa,MAAM,gDAC4B,GAAG,EAAE,KAAK,QAAQ,GAAG,CAAC,GAAG,GAAG,wCAA5B,GAAG,EAAE,KAAK,QAAQ,GAAG,CAAC,GAAG,GAAG,EA2C7E"}
|
|
@@ -1,22 +1,38 @@
|
|
|
1
1
|
import { container } from "tsyringe";
|
|
2
2
|
import { ProvableMethodExecutionContext } from "./ProvableMethodExecutionContext";
|
|
3
|
-
export const
|
|
3
|
+
export const MOCK_PROOF = "mock-proof";
|
|
4
|
+
// (await Proof.dummy(Field(0), Field(0), 2)).proof as string;
|
|
4
5
|
export function toProver(methodName, simulatedMethod, isFirstParameterPublicInput, ...args) {
|
|
5
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
6
6
|
return async function prover() {
|
|
7
|
-
const areProofsEnabled = this.
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
const { areProofsEnabled } = this.areProofsEnabled;
|
|
8
|
+
const zkProgram = this.zkProgram.find((prog) => Object.keys(prog.methods).includes(methodName));
|
|
9
|
+
if (zkProgram === undefined) {
|
|
10
|
+
throw new Error(`Correct ZkProgram not found (searching for method ${methodName})`);
|
|
11
11
|
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
if (areProofsEnabled) {
|
|
13
|
+
const programProvableMethod = zkProgram.methods[methodName];
|
|
14
|
+
const result = await Reflect.apply(programProvableMethod, this, args);
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
16
|
+
return result.proof;
|
|
17
|
+
}
|
|
18
|
+
// create a mock proof by simulating method> execution in JS
|
|
19
|
+
const publicOutput = await Reflect.apply(simulatedMethod, this, args);
|
|
20
|
+
return new zkProgram.Proof({
|
|
21
|
+
proof: MOCK_PROOF,
|
|
17
22
|
// TODO: provide undefined if public input is not used
|
|
18
23
|
publicInput: isFirstParameterPublicInput ? args[0] : undefined,
|
|
19
|
-
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
25
|
+
publicOutput: (() => {
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
|
|
27
|
+
if (!publicOutput || typeof publicOutput !== "object") {
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
if ("publicOutput" in publicOutput) {
|
|
31
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
32
|
+
return publicOutput.publicOutput;
|
|
33
|
+
}
|
|
34
|
+
return publicOutput;
|
|
35
|
+
})(),
|
|
20
36
|
/**
|
|
21
37
|
* We set this to the max possible number, to avoid having
|
|
22
38
|
* to manually count in-circuit proof verifications
|
|
@@ -38,7 +54,7 @@ export function provableMethod(isFirstParameterPublicInput = true, executionCont
|
|
|
38
54
|
return (target, methodName, descriptor) => {
|
|
39
55
|
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
40
56
|
const simulatedMethod = descriptor.value;
|
|
41
|
-
descriptor.value = function value(...args) {
|
|
57
|
+
descriptor.value = async function value(...args) {
|
|
42
58
|
const prover = toProver(methodName, simulatedMethod, isFirstParameterPublicInput, ...args);
|
|
43
59
|
executionContext.beforeMethod(this.constructor.name, methodName, args);
|
|
44
60
|
/**
|
|
@@ -53,7 +69,6 @@ export function provableMethod(isFirstParameterPublicInput = true, executionCont
|
|
|
53
69
|
* or not, execute its simulated (Javascript) version and
|
|
54
70
|
* return the result.
|
|
55
71
|
*/
|
|
56
|
-
// eslint-disable-next-line @typescript-eslint/init-declarations
|
|
57
72
|
let result;
|
|
58
73
|
try {
|
|
59
74
|
result = Reflect.apply(simulatedMethod, this, args);
|
|
@@ -66,3 +81,4 @@ export function provableMethod(isFirstParameterPublicInput = true, executionCont
|
|
|
66
81
|
return descriptor;
|
|
67
82
|
};
|
|
68
83
|
}
|
|
84
|
+
//# sourceMappingURL=provableMethod.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provableMethod.js","sourceRoot":"","sources":["../../src/zkProgrammable/provableMethod.ts"],"names":[],"mappings":"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"}
|
package/jest.config.cjs
CHANGED
|
@@ -1 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
// @ts-ignore
|
|
2
|
+
const config = require("../../jest.config.cjs");
|
|
3
|
+
|
|
4
|
+
module.exports = {
|
|
5
|
+
...config,
|
|
6
|
+
collectCoverageFrom: [
|
|
7
|
+
"packages/common/src/**",
|
|
8
|
+
"!**/node_modules/**",
|
|
9
|
+
"!**/dist/**",
|
|
10
|
+
],
|
|
11
|
+
coverageDirectory: "coverage/common",
|
|
12
|
+
};
|