@proto-kit/common 0.1.1-develop.299 → 0.1.1-develop.334
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/config/ModuleContainer.d.ts +2 -1
- package/dist/config/ModuleContainer.d.ts.map +1 -1
- package/dist/config/ModuleContainer.js +7 -2
- package/dist/dependencyFactory/DependencyFactory.d.ts.map +1 -1
- package/dist/dependencyFactory/DependencyFactory.js +0 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts +11 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +4 -0
- package/dist/zkProgrammable/ProvableMethodExecutionContext.d.ts +3 -3
- package/dist/zkProgrammable/ProvableMethodExecutionContext.d.ts.map +1 -1
- package/dist/zkProgrammable/provableMethod.d.ts +6 -2
- package/dist/zkProgrammable/provableMethod.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/config/ModuleContainer.ts +9 -3
- package/src/dependencyFactory/DependencyFactory.ts +0 -1
- package/src/types.ts +2 -0
- package/src/utils.ts +18 -0
- package/src/zkProgrammable/ProvableMethodExecutionContext.ts +3 -2
- package/src/zkProgrammable/provableMethod.ts +7 -4
|
@@ -34,7 +34,7 @@ export interface ModuleContainerDefinition<Modules extends ModulesRecord> {
|
|
|
34
34
|
* Reusable module container facilitating registration, resolution
|
|
35
35
|
* configuration, decoration and validation of modules
|
|
36
36
|
*/
|
|
37
|
-
export declare class ModuleContainer<Modules extends ModulesRecord> extends ConfigurableModule<
|
|
37
|
+
export declare class ModuleContainer<Modules extends ModulesRecord> extends ConfigurableModule<ModulesConfig<Modules>> {
|
|
38
38
|
definition: ModuleContainerDefinition<Modules>;
|
|
39
39
|
/**
|
|
40
40
|
* Determines how often are modules decorated upon resolution
|
|
@@ -92,6 +92,7 @@ export declare class ModuleContainer<Modules extends ModulesRecord> extends Conf
|
|
|
92
92
|
* @param config
|
|
93
93
|
*/
|
|
94
94
|
configure(config: ModulesConfig<Modules>): void;
|
|
95
|
+
set config(config: ModulesConfig<Modules>);
|
|
95
96
|
/**
|
|
96
97
|
* Resolves a module from the current module container
|
|
97
98
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleContainer.d.ts","sourceRoot":"","sources":["../../src/config/ModuleContainer.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EACL,mBAAmB,EAEnB,cAAc,EAEf,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAE3E,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAyCpE,eAAO,MAAM,qBAAqB;0CAtCM,MAAM;uCAKT,YAAY,OAAO,CAAC;yCAOlB,eAAe,OAAO,CAAC;6CAInB,MAAM;2CAIR,MAAM,QAAQ,MAAM;2CAOpB,MAAM;sCAKX,MAAM,kBAAkB,MAAM;CAMvB,CAAC;AAE5C,MAAM,WAAW,sBACf,SAAQ,uBAAuB,EAC7B,YAAY,CAAC,OAAO,CAAC;CAAG;AAG5B,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,sBAAsB,CAAC,CAAC;AAGhE,MAAM,WAAW,aAAa,CAE5B,UAAU,SAAS,cAAc,GAAG,cAAc;IAElD,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC;CAC5B;AAGD,MAAM,MAAM,aAAa,CAAC,OAAO,SAAS,aAAa,IAAI;KAExD,SAAS,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,YAAY,CAC/C,OAAO,CAAC,SAAS,CAAC,CACnB,SAAS,YAAY,CAAC,MAAM,MAAM,CAAC,GAChC,MAAM,GACN,KAAK;CACV,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,yBAAyB,CAAC,OAAO,SAAS,aAAa;IACtE,OAAO,EAAE,OAAO,CAAC;IAEjB,MAAM,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;CACjC;AAED;;;GAGG;AACH,qBAAa,eAAe,CAC1B,OAAO,SAAS,aAAa,CAC7B,SAAQ,kBAAkB,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ModuleContainer.d.ts","sourceRoot":"","sources":["../../src/config/ModuleContainer.ts"],"names":[],"mappings":"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"}
|
|
@@ -92,8 +92,8 @@ export class ModuleContainer extends ConfigurableModule {
|
|
|
92
92
|
if (Object.prototype.hasOwnProperty.call(modules, moduleName)) {
|
|
93
93
|
this.assertIsValidModuleName(modules, moduleName);
|
|
94
94
|
log.debug(`Registering module: ${moduleName}`);
|
|
95
|
-
const
|
|
96
|
-
this.container.register(moduleName, { useClass
|
|
95
|
+
const useClass = modules[moduleName];
|
|
96
|
+
this.container.register(moduleName, { useClass }, { lifecycle: Lifecycle.ContainerScoped });
|
|
97
97
|
this.onAfterModuleResolution(moduleName);
|
|
98
98
|
}
|
|
99
99
|
}
|
|
@@ -134,6 +134,11 @@ export class ModuleContainer extends ConfigurableModule {
|
|
|
134
134
|
configure(config) {
|
|
135
135
|
this.definition.config = config;
|
|
136
136
|
}
|
|
137
|
+
// eslint-disable-next-line accessor-pairs
|
|
138
|
+
set config(config) {
|
|
139
|
+
super.config = config;
|
|
140
|
+
this.definition.config = config;
|
|
141
|
+
}
|
|
137
142
|
/**
|
|
138
143
|
* Resolves a module from the current module container
|
|
139
144
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DependencyFactory.d.ts","sourceRoot":"","sources":["../../src/dependencyFactory/DependencyFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAyB,MAAM,UAAU,CAAC;AAEtE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAqBtC;;;;;;;;;;;;;;;GAeG;AACH,8BAAsB,iBAAiB;IAC9B,gBAAgB,CAAC,SAAS,EAAE,mBAAmB;
|
|
1
|
+
{"version":3,"file":"DependencyFactory.d.ts","sourceRoot":"","sources":["../../src/dependencyFactory/DependencyFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAyB,MAAM,UAAU,CAAC;AAEtE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAqBtC;;;;;;;;;;;;;;;GAeG;AACH,8BAAsB,iBAAiB;IAC9B,gBAAgB,CAAC,SAAS,EAAE,mBAAmB;CAwBvD;AAuCD,wBAAgB,UAAU,wEAGjB,MAAM,sGAqBd;AAED,wBAAgB,iBAAiB,2EAMhC"}
|
|
@@ -24,7 +24,6 @@ const globalFactoryDependencies = new Map();
|
|
|
24
24
|
export class DependencyFactory {
|
|
25
25
|
initDependencies(container) {
|
|
26
26
|
const dependencies = globalFactoryDependencies.get(this.constructor.name) ?? {};
|
|
27
|
-
globalFactoryDependencies.delete(this.constructor.name);
|
|
28
27
|
for (const [key, useFactory] of Object.entries(dependencies)) {
|
|
29
28
|
container.register(`${key}_singleton-prototype`, {
|
|
30
29
|
useFactory: useFactory.bind(this),
|
package/dist/types.d.ts
CHANGED
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,UAAU,CAAC,KAAK,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,KAAK,CAAC;AAE9D;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,MAAM,SAAS,MAAM,IAAI,OAAO,CAAC,MAAM,MAAM,EAAE,MAAM,CAAC,GAC5E,MAAM,CAAC;AAGT;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,SAAS,SAAS,SAAS,OAAO,EAAE,IAE3D,SAAS,SAAS,SAAS,CAAC,MAAM,WAAW,CAAC,EAAE,GAAG,WAAW,GAAG,KAAK,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,UAAU,CAAC,KAAK,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,KAAK,CAAC;AAE9D,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AAEvD;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,MAAM,SAAS,MAAM,IAAI,OAAO,CAAC,MAAM,MAAM,EAAE,MAAM,CAAC,GAC5E,MAAM,CAAC;AAGT;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,SAAS,SAAS,SAAS,OAAO,EAAE,IAE3D,SAAS,SAAS,SAAS,CAAC,MAAM,WAAW,CAAC,EAAE,GAAG,WAAW,GAAG,KAAK,CAAC"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -12,4 +12,15 @@ export declare function noop(): void;
|
|
|
12
12
|
export interface ToFieldable {
|
|
13
13
|
toFields: () => Field[];
|
|
14
14
|
}
|
|
15
|
+
export interface ToFieldableStatic {
|
|
16
|
+
toFields: (value: unknown) => Field[];
|
|
17
|
+
}
|
|
18
|
+
export interface ToJSONableStatic {
|
|
19
|
+
toJSON: (value: unknown) => any;
|
|
20
|
+
}
|
|
21
|
+
export interface ProofTypes {
|
|
22
|
+
publicOutputType?: ToFieldableStatic;
|
|
23
|
+
publicInputType?: ToFieldableStatic;
|
|
24
|
+
}
|
|
25
|
+
export declare function sleep(ms: number): Promise<void>;
|
|
15
26
|
//# 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,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,MAAM,CAAC;AAEnD,wBAAgB,WAAW,CACzB,SAAS,EAAE,OAAO,EAClB,eAAe,EAAE,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC,GACrC,IAAI,CAMN;AAED,wBAAgB,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAS3E;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAC9B,SAAS,EAAE,oBAAoB,CAAC,KAAK,CAAC,GACrC,KAAK,CAMP;AAGD,wBAAgB,IAAI,IAAI,IAAI,CAAG;AAE/B,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,KAAK,EAAE,CAAC;CACzB"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,MAAM,CAAC;AAEnD,wBAAgB,WAAW,CACzB,SAAS,EAAE,OAAO,EAClB,eAAe,EAAE,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC,GACrC,IAAI,CAMN;AAED,wBAAgB,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAS3E;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAC9B,SAAS,EAAE,oBAAoB,CAAC,KAAK,CAAC,GACrC,KAAK,CAMP;AAGD,wBAAgB,IAAI,IAAI,IAAI,CAAG;AAE/B,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,KAAK,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,GAAG,CAAC;CACjC;AAED,MAAM,WAAW,UAAU;IACzB,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IACrC,eAAe,CAAC,EAAE,iBAAiB,CAAC;CACrC;AAED,wBAAsB,KAAK,CAAC,EAAE,EAAE,MAAM,iBAGrC"}
|
package/dist/utils.js
CHANGED
|
@@ -27,3 +27,7 @@ export function dummyValue(valueType) {
|
|
|
27
27
|
}
|
|
28
28
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
29
29
|
export function noop() { }
|
|
30
|
+
export async function sleep(ms) {
|
|
31
|
+
// eslint-disable-next-line promise/avoid-new,no-promise-executor-return
|
|
32
|
+
await new Promise((resolve) => setTimeout(resolve, ms));
|
|
33
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { Proof } from "o1js";
|
|
2
|
-
import {
|
|
2
|
+
import { ArgumentTypes } from "./provableMethod";
|
|
3
3
|
export declare class ProvableMethodExecutionResult {
|
|
4
4
|
moduleName?: string;
|
|
5
5
|
methodName?: string;
|
|
6
|
-
args?:
|
|
6
|
+
args?: ArgumentTypes;
|
|
7
7
|
prover?: () => Promise<Proof<unknown, unknown>>;
|
|
8
8
|
prove<ProofType extends Proof<unknown, unknown>>(): Promise<ProofType>;
|
|
9
9
|
}
|
|
@@ -30,7 +30,7 @@ export declare class ProvableMethodExecutionContext {
|
|
|
30
30
|
*
|
|
31
31
|
* @param methodName - Name of the method being captured in the context
|
|
32
32
|
*/
|
|
33
|
-
beforeMethod(moduleName: string, methodName: string, args:
|
|
33
|
+
beforeMethod(moduleName: string, methodName: string, args: ArgumentTypes): void;
|
|
34
34
|
/**
|
|
35
35
|
* Removes the latest method from the execution context stack,
|
|
36
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,EAAoB,KAAK,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"ProvableMethodExecutionContext.d.ts","sourceRoot":"","sources":["../../src/zkProgrammable/ProvableMethodExecutionContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,KAAK,EAAE,MAAM,MAAM,CAAC;AAKpD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAWjD,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,CAEhB,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;IAItC;;;;;;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"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
import { Proof, ProvableExtended } from "o1js";
|
|
1
2
|
import { ProvableMethodExecutionContext } from "./ProvableMethodExecutionContext";
|
|
2
3
|
import type { WithZkProgrammable, ZkProgrammable } from "./ZkProgrammable";
|
|
3
|
-
|
|
4
|
+
import { ToFieldable } from "../utils";
|
|
5
|
+
export type O1JSPrimitive = ProvableExtended<unknown> & ToFieldable;
|
|
6
|
+
export type ArgumentTypes = O1JSPrimitive[] | Proof<unknown, unknown>[];
|
|
7
|
+
export type DecoratedMethod = (...args: ArgumentTypes) => unknown;
|
|
4
8
|
export declare const mockProof = "mock-proof";
|
|
5
|
-
export declare function toProver(methodName: string, simulatedMethod: DecoratedMethod, isFirstParameterPublicInput: boolean, ...args:
|
|
9
|
+
export declare function toProver(methodName: string, simulatedMethod: DecoratedMethod, isFirstParameterPublicInput: boolean, ...args: ArgumentTypes): (this: ZkProgrammable<any, any>) => Promise<Proof<any, any>>;
|
|
6
10
|
/**
|
|
7
11
|
* Decorates a provable method on a 'prover class', depending on
|
|
8
12
|
* if proofs are enabled or not, either runs the respective zkProgram prover,
|
|
@@ -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,EAAoB,KAAK,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAC;AAGjE,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC;AACpE,MAAM,MAAM,aAAa,GAAG,aAAa,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;AAGxE,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC;AAElE,eAAO,MAAM,SAAS,eAAe,CAAC;AAEtC,wBAAgB,QAAQ,CACtB,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,eAAe,EAChC,2BAA2B,EAAE,OAAO,EACpC,GAAG,IAAI,EAAE,aAAa,UAGa,eAAe,GAAG,EAAE,GAAG,CAAC,8BAyB5D;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,2BAA2B,UAAO,EAClC,gBAAgB,GAAE,8BAEjB,wGAOa,MAAM,cACN,kBAAkB,wBA4CjC"}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
|
-
"version": "0.1.1-develop.
|
|
6
|
+
"version": "0.1.1-develop.334+dbab046",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"build": "tsc -p tsconfig.json",
|
|
9
9
|
"dev": "tsc -p tsconfig.json --watch",
|
|
@@ -30,5 +30,5 @@
|
|
|
30
30
|
"@jest/globals": "^29.5.0",
|
|
31
31
|
"@types/lodash": "^4.14.194"
|
|
32
32
|
},
|
|
33
|
-
"gitHead": "
|
|
33
|
+
"gitHead": "dbab046225087a3fa87542300460bd47e9432dbc"
|
|
34
34
|
}
|
|
@@ -97,7 +97,7 @@ export interface ModuleContainerDefinition<Modules extends ModulesRecord> {
|
|
|
97
97
|
*/
|
|
98
98
|
export class ModuleContainer<
|
|
99
99
|
Modules extends ModulesRecord
|
|
100
|
-
> extends ConfigurableModule<
|
|
100
|
+
> extends ConfigurableModule<ModulesConfig<Modules>> {
|
|
101
101
|
/**
|
|
102
102
|
* Determines how often are modules decorated upon resolution
|
|
103
103
|
* from the tsyringe DI container
|
|
@@ -195,11 +195,11 @@ export class ModuleContainer<
|
|
|
195
195
|
|
|
196
196
|
log.debug(`Registering module: ${moduleName}`);
|
|
197
197
|
|
|
198
|
-
const
|
|
198
|
+
const useClass = modules[moduleName];
|
|
199
199
|
|
|
200
200
|
this.container.register(
|
|
201
201
|
moduleName,
|
|
202
|
-
{ useClass
|
|
202
|
+
{ useClass },
|
|
203
203
|
{ lifecycle: Lifecycle.ContainerScoped }
|
|
204
204
|
);
|
|
205
205
|
this.onAfterModuleResolution(moduleName);
|
|
@@ -253,6 +253,12 @@ export class ModuleContainer<
|
|
|
253
253
|
this.definition.config = config;
|
|
254
254
|
}
|
|
255
255
|
|
|
256
|
+
// eslint-disable-next-line accessor-pairs
|
|
257
|
+
public set config(config: ModulesConfig<Modules>) {
|
|
258
|
+
super.config = config;
|
|
259
|
+
this.definition.config = config;
|
|
260
|
+
}
|
|
261
|
+
|
|
256
262
|
/**
|
|
257
263
|
* Resolves a module from the current module container
|
|
258
264
|
*
|
|
@@ -41,7 +41,6 @@ export abstract class DependencyFactory {
|
|
|
41
41
|
public initDependencies(container: DependencyContainer) {
|
|
42
42
|
const dependencies =
|
|
43
43
|
globalFactoryDependencies.get(this.constructor.name) ?? {};
|
|
44
|
-
globalFactoryDependencies.delete(this.constructor.name);
|
|
45
44
|
|
|
46
45
|
for (const [key, useFactory] of Object.entries(dependencies)) {
|
|
47
46
|
container.register(`${key}_singleton-prototype`, {
|
package/src/types.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
// allows to reference interfaces as 'classes' rather than instances
|
|
2
2
|
export type TypedClass<Class> = new (...args: any[]) => Class;
|
|
3
3
|
|
|
4
|
+
export type UnTypedClass = new (...args: any[]) => any;
|
|
5
|
+
|
|
4
6
|
/**
|
|
5
7
|
* Using simple `keyof Target` would result into the key
|
|
6
8
|
* being `string | number | symbol`, but we want just a `string`
|
package/src/utils.ts
CHANGED
|
@@ -44,3 +44,21 @@ export function noop(): void {}
|
|
|
44
44
|
export interface ToFieldable {
|
|
45
45
|
toFields: () => Field[];
|
|
46
46
|
}
|
|
47
|
+
|
|
48
|
+
export interface ToFieldableStatic {
|
|
49
|
+
toFields: (value: unknown) => Field[];
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export interface ToJSONableStatic {
|
|
53
|
+
toJSON: (value: unknown) => any;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export interface ProofTypes {
|
|
57
|
+
publicOutputType?: ToFieldableStatic;
|
|
58
|
+
publicInputType?: ToFieldableStatic;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export async function sleep(ms: number) {
|
|
62
|
+
// eslint-disable-next-line promise/avoid-new,no-promise-executor-return
|
|
63
|
+
await new Promise((resolve) => setTimeout(resolve, ms));
|
|
64
|
+
}
|
|
@@ -3,6 +3,7 @@ import { singleton } from "tsyringe";
|
|
|
3
3
|
import uniqueId from "lodash/uniqueId";
|
|
4
4
|
|
|
5
5
|
import { ToFieldable } from "../utils";
|
|
6
|
+
import { ArgumentTypes } from "./provableMethod";
|
|
6
7
|
|
|
7
8
|
const errors = {
|
|
8
9
|
moduleOrMethodNameNotSet: () => new Error("Module or method name not set"),
|
|
@@ -18,7 +19,7 @@ export class ProvableMethodExecutionResult {
|
|
|
18
19
|
|
|
19
20
|
public methodName?: string;
|
|
20
21
|
|
|
21
|
-
public args?:
|
|
22
|
+
public args?: ArgumentTypes;
|
|
22
23
|
|
|
23
24
|
public prover?: () => Promise<Proof<unknown, unknown>>;
|
|
24
25
|
|
|
@@ -76,7 +77,7 @@ export class ProvableMethodExecutionContext {
|
|
|
76
77
|
public beforeMethod(
|
|
77
78
|
moduleName: string,
|
|
78
79
|
methodName: string,
|
|
79
|
-
args:
|
|
80
|
+
args: ArgumentTypes
|
|
80
81
|
) {
|
|
81
82
|
if (this.isFinished) {
|
|
82
83
|
this.clear();
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
import { FlexibleProvable } from "o1js";
|
|
1
|
+
import { FlexibleProvable, Proof, ProvableExtended } from "o1js";
|
|
2
2
|
import { container } from "tsyringe";
|
|
3
3
|
|
|
4
4
|
import { ProvableMethodExecutionContext } from "./ProvableMethodExecutionContext";
|
|
5
5
|
import type { WithZkProgrammable, ZkProgrammable } from "./ZkProgrammable";
|
|
6
6
|
import { ToFieldable } from "../utils";
|
|
7
7
|
|
|
8
|
+
export type O1JSPrimitive = ProvableExtended<unknown> & ToFieldable;
|
|
9
|
+
export type ArgumentTypes = O1JSPrimitive[] | Proof<unknown, unknown>[];
|
|
10
|
+
|
|
8
11
|
// eslint-disable-next-line etc/prefer-interface
|
|
9
|
-
export type DecoratedMethod = (...args:
|
|
12
|
+
export type DecoratedMethod = (...args: ArgumentTypes) => unknown;
|
|
10
13
|
|
|
11
14
|
export const mockProof = "mock-proof";
|
|
12
15
|
|
|
@@ -14,7 +17,7 @@ export function toProver(
|
|
|
14
17
|
methodName: string,
|
|
15
18
|
simulatedMethod: DecoratedMethod,
|
|
16
19
|
isFirstParameterPublicInput: boolean,
|
|
17
|
-
...args:
|
|
20
|
+
...args: ArgumentTypes
|
|
18
21
|
) {
|
|
19
22
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
20
23
|
return async function prover(this: ZkProgrammable<any, any>) {
|
|
@@ -72,7 +75,7 @@ export function provableMethod(
|
|
|
72
75
|
|
|
73
76
|
descriptor.value = function value(
|
|
74
77
|
this: ZkProgrammable<unknown, unknown>,
|
|
75
|
-
...args:
|
|
78
|
+
...args: ArgumentTypes
|
|
76
79
|
) {
|
|
77
80
|
const prover = toProver(
|
|
78
81
|
methodName,
|