@proto-kit/module 0.1.1-develop.1088 → 0.1.1-develop.1309
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/factories/MethodIdFactory.js +1 -0
- package/dist/factories/MethodIdFactory.js.map +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -0
- package/dist/method/MethodParameterEncoder.d.ts +2 -0
- package/dist/method/MethodParameterEncoder.d.ts.map +1 -1
- package/dist/method/MethodParameterEncoder.js +23 -18
- package/dist/method/MethodParameterEncoder.js.map +1 -0
- package/dist/method/runtimeMethod.d.ts.map +1 -1
- package/dist/method/runtimeMethod.js +3 -1
- package/dist/method/runtimeMethod.js.map +1 -0
- package/dist/module/decorator.js +1 -0
- package/dist/module/decorator.js.map +1 -0
- package/dist/runtime/MethodIdResolver.js +1 -0
- package/dist/runtime/MethodIdResolver.js.map +1 -0
- package/dist/runtime/Runtime.d.ts +5 -4
- package/dist/runtime/Runtime.d.ts.map +1 -1
- package/dist/runtime/Runtime.js +18 -7
- package/dist/runtime/Runtime.js.map +1 -0
- package/dist/runtime/RuntimeEnvironment.d.ts +1 -1
- package/dist/runtime/RuntimeEnvironment.d.ts.map +1 -1
- package/dist/runtime/RuntimeEnvironment.js +1 -0
- package/dist/runtime/RuntimeEnvironment.js.map +1 -0
- package/dist/runtime/RuntimeModule.js +1 -0
- package/dist/runtime/RuntimeModule.js.map +1 -0
- package/dist/state/InMemoryStateService.js +1 -0
- package/dist/state/InMemoryStateService.js.map +1 -0
- package/dist/state/decorator.js +1 -0
- package/dist/state/decorator.js.map +1 -0
- package/jest.config.cjs +12 -1
- package/package.json +4 -4
- package/src/method/MethodParameterEncoder.ts +35 -27
- package/src/method/runtimeMethod.ts +6 -5
- package/src/runtime/Runtime.ts +23 -7
- package/src/runtime/RuntimeEnvironment.ts +1 -1
- package/test/method/MethodParameterEncoder.test.ts +2 -33
- package/test/method/runtimeMethod-fail.test.ts +50 -0
- package/test/modules/Balances.test.ts +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MethodIdFactory.js","sourceRoot":"","sources":["../../src/factories/MethodIdFactory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,MAAM,OAAO,eAAe;IACnB,YAAY;QACjB,OAAO;YACL,gBAAgB,EAAE;gBAChB,QAAQ,EAAE,gBAAgB;aAC3B;SACyB,CAAC;IAC/B,CAAC;CACF"}
|
package/dist/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC"}
|
|
@@ -4,6 +4,8 @@ import type { RuntimeModule } from "../runtime/RuntimeModule";
|
|
|
4
4
|
type ArgumentType = FlexibleProvablePure<any> | typeof Proof<unknown, unknown> | typeof DynamicProof<unknown, unknown>;
|
|
5
5
|
type ArgTypeArray = ArgumentType[];
|
|
6
6
|
type ArgArray = ArgumentTypes[];
|
|
7
|
+
export declare function isFlexibleProvablePure(type: unknown): type is FlexibleProvablePure<unknown>;
|
|
8
|
+
export declare function checkArgsProvable(target: RuntimeModule<unknown>, methodName: string): ArgTypeArray;
|
|
7
9
|
export declare class MethodParameterEncoder {
|
|
8
10
|
private readonly types;
|
|
9
11
|
static fromMethod(target: RuntimeModule<unknown>, methodName: string): MethodParameterEncoder;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MethodParameterEncoder.d.ts","sourceRoot":"","sources":["../../src/method/MethodParameterEncoder.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,EACL,KAAK,EAEL,YAAY,EACZ,oBAAoB,EACrB,MAAM,MAAM,CAAC;AACd,OAAO,EACL,aAAa,EAKd,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAc9D,KAAK,YAAY,GACb,oBAAoB,CAAC,GAAG,CAAC,GACzB,OAAO,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,GAC9B,OAAO,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAE1C,KAAK,YAAY,GAAG,YAAY,EAAE,CAAC;AAEnC,KAAK,QAAQ,GAAG,aAAa,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"MethodParameterEncoder.d.ts","sourceRoot":"","sources":["../../src/method/MethodParameterEncoder.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,EACL,KAAK,EAEL,YAAY,EACZ,oBAAoB,EACrB,MAAM,MAAM,CAAC;AACd,OAAO,EACL,aAAa,EAKd,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAc9D,KAAK,YAAY,GACb,oBAAoB,CAAC,GAAG,CAAC,GACzB,OAAO,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,GAC9B,OAAO,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAE1C,KAAK,YAAY,GAAG,YAAY,EAAE,CAAC;AAEnC,KAAK,QAAQ,GAAG,aAAa,EAAE,CAAC;AA2BhC,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,OAAO,GACZ,IAAI,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAOvC;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,EAC9B,UAAU,EAAE,MAAM,gBA8BnB;AAED,qBAAa,sBAAsB;IAkBd,OAAO,CAAC,QAAQ,CAAC,KAAK;WAjB3B,UAAU,CAAC,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,MAAM;WAM7D,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,GAAG,SAAS;gBAW3B,KAAK,EAAE,YAAY;IAEhD,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC;IA0DtE;;;OAGG;IACI,MAAM,CAAC,IAAI,EAAE,aAAa;gBA8CnB,KAAK,EAAE;mBACJ,MAAM,EAAE;;IAelB,SAAS,IAAI,MAAM;CAK3B"}
|
|
@@ -20,7 +20,7 @@ function getAllPropertyNamesOfPrototypeChain(type) {
|
|
|
20
20
|
}
|
|
21
21
|
return Object.getOwnPropertyNames(type).concat(...getAllPropertyNamesOfPrototypeChain(Object.getPrototypeOf(type)));
|
|
22
22
|
}
|
|
23
|
-
function isFlexibleProvablePure(type) {
|
|
23
|
+
export function isFlexibleProvablePure(type) {
|
|
24
24
|
// The required properties are defined on the prototype for Structs and CircuitValues
|
|
25
25
|
// but on the constructor function itself for Field and Bool
|
|
26
26
|
// For aliases like Balance in library, it can even be 2 steps upwards the prototype chain
|
|
@@ -28,25 +28,29 @@ function isFlexibleProvablePure(type) {
|
|
|
28
28
|
const mandatory = ["toFields", "fromFields", "sizeInFields"];
|
|
29
29
|
return mandatory.every((prop) => props.includes(prop));
|
|
30
30
|
}
|
|
31
|
+
export function checkArgsProvable(target, methodName) {
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
33
|
+
const paramtypes = Reflect.getMetadata("design:paramtypes", target, methodName);
|
|
34
|
+
if (paramtypes === undefined) {
|
|
35
|
+
throw new Error(`Method with name ${methodName} doesn't exist on this module`);
|
|
36
|
+
}
|
|
37
|
+
const indizes = paramtypes
|
|
38
|
+
.map((type, index) => {
|
|
39
|
+
if (isProofBaseType(type) || isFlexibleProvablePure(type)) {
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
return `${index}`;
|
|
43
|
+
})
|
|
44
|
+
.filter(filterNonUndefined);
|
|
45
|
+
if (indizes.length > 0) {
|
|
46
|
+
const indexString = indizes.reduce((a, b) => `${a}, ${b}`);
|
|
47
|
+
throw new Error(`Not all arguments of method '${target.name}.${methodName}' are provable types or proofs (indizes: [${indexString}])`);
|
|
48
|
+
}
|
|
49
|
+
return paramtypes;
|
|
50
|
+
}
|
|
31
51
|
export class MethodParameterEncoder {
|
|
32
52
|
static fromMethod(target, methodName) {
|
|
33
|
-
|
|
34
|
-
const paramtypes = Reflect.getMetadata("design:paramtypes", target, methodName);
|
|
35
|
-
if (paramtypes === undefined) {
|
|
36
|
-
throw new Error(`Method with name ${methodName} doesn't exist on this module`);
|
|
37
|
-
}
|
|
38
|
-
const indizes = paramtypes
|
|
39
|
-
.map((type, index) => {
|
|
40
|
-
if (isProofBaseType(type) || isFlexibleProvablePure(type)) {
|
|
41
|
-
return undefined;
|
|
42
|
-
}
|
|
43
|
-
return `${index}`;
|
|
44
|
-
})
|
|
45
|
-
.filter(filterNonUndefined);
|
|
46
|
-
if (indizes.length > 0) {
|
|
47
|
-
const indexString = indizes.reduce((a, b) => `${a}, ${b}`);
|
|
48
|
-
throw new Error(`Not all arguments of method '${target.name}.${methodName}' are provable types or proofs (indizes: [${indexString}])`);
|
|
49
|
-
}
|
|
53
|
+
const paramtypes = checkArgsProvable(target, methodName);
|
|
50
54
|
return new MethodParameterEncoder(paramtypes);
|
|
51
55
|
}
|
|
52
56
|
static fieldSize(type) {
|
|
@@ -162,3 +166,4 @@ export class MethodParameterEncoder {
|
|
|
162
166
|
}
|
|
163
167
|
}
|
|
164
168
|
/* eslint-enable @typescript-eslint/consistent-type-assertions */
|
|
169
|
+
//# sourceMappingURL=MethodParameterEncoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MethodParameterEncoder.js","sourceRoot":"","sources":["../../src/method/MethodParameterEncoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimeMethod.d.ts","sourceRoot":"","sources":["../../src/method/runtimeMethod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAS,oBAAoB,EAAY,MAAM,MAAM,CAAC;AAEnE,OAAO,EACL,eAAe,EAEf,kBAAkB,EAInB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAIL,aAAa,EACd,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"runtimeMethod.d.ts","sourceRoot":"","sources":["../../src/method/runtimeMethod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAS,oBAAoB,EAAY,MAAM,MAAM,CAAC;AAEnE,OAAO,EACL,eAAe,EAEf,kBAAkB,EAInB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAIL,aAAa,EACd,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAwBjE,wBAAgB,sBAAsB,CACpC,gBAAgB,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE,wDAczC;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE;IACN,SAAS,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACrC,KAAK,EAAE,GAAG,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;CACjB,EAAE,wDAOJ;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,EAAE,aAAa,KAAK,kBAAkB,CAAC;AAC3E,MAAM,MAAM,kBAAkB,GAAG,CAC/B,GAAG,IAAI,EAAE,aAAa,KACnB,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEjC,wBAAgB,eAAe,CAC7B,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,EAC5B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,CAAC,GAAG,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC,GAAG,CAAC,EACtD,OAAO,EAAE;IACP,cAAc,EAAE,2BAA2B,CAAC;CAC7C,GACA,kBAAkB,CA8EpB;AAED,wBAAgB,iBAAiB,CAC/B,iBAAiB,EAAE,MAAM,EACzB,UAAU,EAAE,MAAM,UAGnB;AAED,eAAO,MAAM,wBAAwB,eAAe,CAAC;AACrD,eAAO,MAAM,6BAA6B,8BAA8B,CAAC;AACzE,eAAO,MAAM,4BAA4B,kCAAkC,CAAC;AAE5E;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,EAC9B,WAAW,EAAE,MAAM,WAKpB;AAED,MAAM,MAAM,2BAA2B,GAAG,WAAW,GAAG,kBAAkB,CAAC;AAwG3E,wBAAgB,cAAc,wIAI7B;AAED,wBAAgB,aAAa,wIAI5B"}
|
|
@@ -2,7 +2,7 @@ import { Bool, Field, Poseidon } from "o1js";
|
|
|
2
2
|
import { container } from "tsyringe";
|
|
3
3
|
import { ProvableStateTransition, MethodPublicOutput, RuntimeMethodExecutionContext, StateTransitionReductionList, DefaultProvableHashList, } from "@proto-kit/protocol";
|
|
4
4
|
import { toProver, } from "@proto-kit/common";
|
|
5
|
-
import { MethodParameterEncoder } from "./MethodParameterEncoder";
|
|
5
|
+
import { MethodParameterEncoder, checkArgsProvable, } from "./MethodParameterEncoder";
|
|
6
6
|
const errors = {
|
|
7
7
|
runtimeNotProvided: (name) => new Error(`Runtime was not provided for module: ${name}`),
|
|
8
8
|
methodInputsNotProvided: () => new Error("Method execution inputs not provided, provide them via context.inputs"),
|
|
@@ -91,6 +91,7 @@ export function isRuntimeMethod(target, propertyKey) {
|
|
|
91
91
|
}
|
|
92
92
|
function runtimeMethodInternal(options) {
|
|
93
93
|
return (target, methodName, descriptor) => {
|
|
94
|
+
checkArgsProvable(target, methodName);
|
|
94
95
|
const executionContext = container.resolve(RuntimeMethodExecutionContext);
|
|
95
96
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
96
97
|
let data = Reflect.getMetadata(runtimeMethodNamesMetadataKey, target);
|
|
@@ -165,3 +166,4 @@ export function runtimeMethod() {
|
|
|
165
166
|
invocationType: "SIGNATURE",
|
|
166
167
|
});
|
|
167
168
|
}
|
|
169
|
+
//# sourceMappingURL=runtimeMethod.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtimeMethod.js","sourceRoot":"","sources":["../../src/method/runtimeMethod.ts"],"names":[],"mappings":"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"}
|
package/dist/module/decorator.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorator.js","sourceRoot":"","sources":["../../src/module/decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAKtC;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO;IACL;;;OAGG;IACH,MACoC,EACpC,EAAE;QACF,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MethodIdResolver.js","sourceRoot":"","sources":["../../src/runtime/MethodIdResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ZkProgram } from "o1js";
|
|
2
2
|
import { DependencyContainer } from "tsyringe";
|
|
3
|
-
import { StringKeyOf, ModuleContainer, ModulesConfig, ModulesRecord, TypedClass, ZkProgrammable, PlainZkProgram, AreProofsEnabled, ChildContainerProvider } from "@proto-kit/common";
|
|
3
|
+
import { StringKeyOf, ModuleContainer, ModulesConfig, ModulesRecord, TypedClass, ZkProgrammable, PlainZkProgram, AreProofsEnabled, ChildContainerProvider, CompilableModule, CompileRegistry } from "@proto-kit/common";
|
|
4
4
|
import { MethodPublicOutput, StateServiceProvider, SimpleAsyncStateService } from "@proto-kit/protocol";
|
|
5
5
|
import { RuntimeModule } from "./RuntimeModule";
|
|
6
6
|
import { MethodIdResolver } from "./MethodIdResolver";
|
|
@@ -23,14 +23,14 @@ export interface RuntimeDefinition<Modules extends RuntimeModulesRecord> {
|
|
|
23
23
|
export declare class RuntimeZkProgrammable<Modules extends RuntimeModulesRecord> extends ZkProgrammable<undefined, MethodPublicOutput> {
|
|
24
24
|
runtime: Runtime<Modules>;
|
|
25
25
|
constructor(runtime: Runtime<Modules>);
|
|
26
|
-
get
|
|
26
|
+
get areProofsEnabled(): AreProofsEnabled | undefined;
|
|
27
27
|
zkProgramFactory(): PlainZkProgram<undefined, MethodPublicOutput>[];
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
30
|
* Wrapper for an application specific runtime, which helps orchestrate
|
|
31
31
|
* runtime modules into an interoperable runtime.
|
|
32
32
|
*/
|
|
33
|
-
export declare class Runtime<Modules extends RuntimeModulesRecord> extends ModuleContainer<Modules> implements RuntimeEnvironment {
|
|
33
|
+
export declare class Runtime<Modules extends RuntimeModulesRecord> extends ModuleContainer<Modules> implements RuntimeEnvironment, CompilableModule {
|
|
34
34
|
static from<Modules extends RuntimeModulesRecord>(definition: RuntimeDefinition<Modules>): TypedClass<Runtime<Modules>>;
|
|
35
35
|
program?: ReturnType<typeof ZkProgram>;
|
|
36
36
|
definition: RuntimeDefinition<Modules>;
|
|
@@ -42,7 +42,7 @@ export declare class Runtime<Modules extends RuntimeModulesRecord> extends Modul
|
|
|
42
42
|
*/
|
|
43
43
|
constructor(definition: RuntimeDefinition<Modules>);
|
|
44
44
|
create(childContainerProvider: ChildContainerProvider): void;
|
|
45
|
-
get
|
|
45
|
+
get areProofsEnabled(): AreProofsEnabled | undefined;
|
|
46
46
|
get stateServiceProvider(): StateServiceProvider;
|
|
47
47
|
get stateService(): SimpleAsyncStateService;
|
|
48
48
|
get methodIdResolver(): MethodIdResolver;
|
|
@@ -67,5 +67,6 @@ export declare class Runtime<Modules extends RuntimeModulesRecord> extends Modul
|
|
|
67
67
|
* @returns A list of names of all the registered module names
|
|
68
68
|
*/
|
|
69
69
|
get runtimeModuleNames(): string[];
|
|
70
|
+
compile(registry: CompileRegistry): Promise<Record<string, import("@proto-kit/common").CompileArtifact>>;
|
|
70
71
|
}
|
|
71
72
|
//# sourceMappingURL=Runtime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/Runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,
|
|
1
|
+
{"version":3,"file":"Runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/Runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAa,mBAAmB,EAAc,MAAM,UAAU,CAAC;AACtE,OAAO,EACL,WAAW,EACX,eAAe,EACf,aAAa,EACb,aAAa,EACb,UAAU,EACV,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EAIxB,MAAM,qBAAqB,CAAC;AAW7B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,uBAa3C;AAED;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,aAAa,CAC9C,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CACnC,CAAC;AAOF;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,OAAO,SAAS,oBAAoB;IACrE,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;CACjC;AAED,qBAAa,qBAAqB,CAChC,OAAO,SAAS,oBAAoB,CACpC,SAAQ,cAAc,CAAC,SAAS,EAAE,kBAAkB,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;gBAAzB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;IAInD,IAAW,gBAAgB,iCAE1B;IAEM,gBAAgB,IAAI,cAAc,CAAC,SAAS,EAAE,kBAAkB,CAAC,EAAE;CA+K3E;AAED;;;GAGG;AACH,qBACa,OAAO,CAAC,OAAO,SAAS,oBAAoB,CACvD,SAAQ,eAAe,CAAC,OAAO,CAC/B,YAAW,kBAAkB,EAAE,gBAAgB;WAEjC,IAAI,CAAC,OAAO,SAAS,oBAAoB,EACrD,UAAU,EAAE,iBAAiB,CAAC,OAAO,CAAC,GACrC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IASxB,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;IAEvC,UAAU,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAEvC,cAAc,EAAE,cAAc,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;IAErE;;;;OAIG;gBACgB,UAAU,EAAE,iBAAiB,CAAC,OAAO,CAAC;IAOlD,MAAM,CAAC,sBAAsB,EAAE,sBAAsB;IAM5D,IAAW,gBAAgB,IAAI,gBAAgB,GAAG,SAAS,CAE1D;IAED,IAAW,oBAAoB,IAAI,oBAAoB,CAItD;IAED,IAAW,YAAY,IAAI,uBAAuB,CAEjD;IAED,IAAW,gBAAgB,IAAI,gBAAgB,CAE9C;IAED;;OAEG;IACH,IAAW,mBAAmB,IAAI,mBAAmB,CAEpD;IAED;;;OAGG;IACI,aAAa,CAClB,QAAQ,EAAE,MAAM,GACf,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS;IAsBzD;;;;;;OAMG;IACI,cAAc,CACnB,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,EAChC,eAAe,EAAE,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IAQ9D;;OAEG;IACH,IAAW,kBAAkB,aAE5B;IAEY,OAAO,CAAC,QAAQ,EAAE,eAAe;CAQ/C"}
|
package/dist/runtime/Runtime.js
CHANGED
|
@@ -10,9 +10,9 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
var Runtime_1;
|
|
11
11
|
/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-argument */
|
|
12
12
|
import { ZkProgram } from "o1js";
|
|
13
|
-
import { injectable } from "tsyringe";
|
|
13
|
+
import { container, injectable } from "tsyringe";
|
|
14
14
|
import { ModuleContainer, ZkProgrammable, } from "@proto-kit/common";
|
|
15
|
-
import { MethodPublicOutput, } from "@proto-kit/protocol";
|
|
15
|
+
import { MethodPublicOutput, RuntimeMethodExecutionContext, RuntimeTransaction, NetworkState, } from "@proto-kit/protocol";
|
|
16
16
|
import { combineMethodName, isRuntimeMethod, runtimeMethodTypeMetadataKey, toWrappedMethod, } from "../method/runtimeMethod";
|
|
17
17
|
import { MethodIdFactory } from "../factories/MethodIdFactory";
|
|
18
18
|
export function getAllPropertyNames(obj) {
|
|
@@ -37,8 +37,8 @@ export class RuntimeZkProgrammable extends ZkProgrammable {
|
|
|
37
37
|
super();
|
|
38
38
|
this.runtime = runtime;
|
|
39
39
|
}
|
|
40
|
-
get
|
|
41
|
-
return this.runtime.
|
|
40
|
+
get areProofsEnabled() {
|
|
41
|
+
return this.runtime.areProofsEnabled;
|
|
42
42
|
}
|
|
43
43
|
zkProgramFactory() {
|
|
44
44
|
// We need to use explicit type annotations here,
|
|
@@ -108,9 +108,10 @@ export class RuntimeZkProgrammable extends ZkProgrammable {
|
|
|
108
108
|
});
|
|
109
109
|
return buckets;
|
|
110
110
|
};
|
|
111
|
-
return splitRuntimeMethods().map((bucket) => {
|
|
111
|
+
return splitRuntimeMethods().map((bucket, index) => {
|
|
112
|
+
const name = `RuntimeProgram-${index}`;
|
|
112
113
|
const program = ZkProgram({
|
|
113
|
-
name
|
|
114
|
+
name,
|
|
114
115
|
publicOutput: MethodPublicOutput,
|
|
115
116
|
methods: bucket,
|
|
116
117
|
});
|
|
@@ -120,6 +121,7 @@ export class RuntimeZkProgrammable extends ZkProgrammable {
|
|
|
120
121
|
return boundMethods;
|
|
121
122
|
}, {});
|
|
122
123
|
return {
|
|
124
|
+
name,
|
|
123
125
|
compile: program.compile.bind(program),
|
|
124
126
|
verify: program.verify.bind(program),
|
|
125
127
|
analyzeMethods: program.analyzeMethods.bind(program),
|
|
@@ -156,7 +158,7 @@ export let Runtime = Runtime_1 = class Runtime extends ModuleContainer {
|
|
|
156
158
|
super.create(childContainerProvider);
|
|
157
159
|
this.useDependencyFactory(this.container.resolve(MethodIdFactory));
|
|
158
160
|
}
|
|
159
|
-
get
|
|
161
|
+
get areProofsEnabled() {
|
|
160
162
|
return this.container.resolve("AreProofsEnabled");
|
|
161
163
|
}
|
|
162
164
|
get stateServiceProvider() {
|
|
@@ -212,9 +214,18 @@ export let Runtime = Runtime_1 = class Runtime extends ModuleContainer {
|
|
|
212
214
|
get runtimeModuleNames() {
|
|
213
215
|
return Object.keys(this.definition.modules);
|
|
214
216
|
}
|
|
217
|
+
async compile(registry) {
|
|
218
|
+
const context = container.resolve(RuntimeMethodExecutionContext);
|
|
219
|
+
context.setup({
|
|
220
|
+
transaction: RuntimeTransaction.dummyTransaction(),
|
|
221
|
+
networkState: NetworkState.empty(),
|
|
222
|
+
});
|
|
223
|
+
return await this.zkProgrammable.compile(registry);
|
|
224
|
+
}
|
|
215
225
|
};
|
|
216
226
|
Runtime = Runtime_1 = __decorate([
|
|
217
227
|
injectable(),
|
|
218
228
|
__metadata("design:paramtypes", [Object])
|
|
219
229
|
], Runtime);
|
|
220
230
|
/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-argument */
|
|
231
|
+
//# sourceMappingURL=Runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Runtime.js","sourceRoot":"","sources":["../../src/runtime/Runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { AreProofsEnabled, WithZkProgrammable } from "@proto-kit/common";
|
|
|
2
2
|
import { MethodPublicOutput, SimpleAsyncStateService, StateServiceProvider } from "@proto-kit/protocol";
|
|
3
3
|
import { MethodIdResolver } from "./MethodIdResolver";
|
|
4
4
|
export interface RuntimeEnvironment extends WithZkProgrammable<undefined, MethodPublicOutput> {
|
|
5
|
-
get
|
|
5
|
+
get areProofsEnabled(): AreProofsEnabled | undefined;
|
|
6
6
|
get stateService(): SimpleAsyncStateService;
|
|
7
7
|
get stateServiceProvider(): StateServiceProvider;
|
|
8
8
|
get methodIdResolver(): MethodIdResolver;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuntimeEnvironment.d.ts","sourceRoot":"","sources":["../../src/runtime/RuntimeEnvironment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,WAAW,kBACf,SAAQ,kBAAkB,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACzD,IAAI,
|
|
1
|
+
{"version":3,"file":"RuntimeEnvironment.d.ts","sourceRoot":"","sources":["../../src/runtime/RuntimeEnvironment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,WAAW,kBACf,SAAQ,kBAAkB,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACzD,IAAI,gBAAgB,IAAI,gBAAgB,GAAG,SAAS,CAAC;IACrD,IAAI,YAAY,IAAI,uBAAuB,CAAC;IAC5C,IAAI,oBAAoB,IAAI,oBAAoB,CAAC;IACjD,IAAI,gBAAgB,IAAI,gBAAgB,CAAC;CAC1C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuntimeEnvironment.js","sourceRoot":"","sources":["../../src/runtime/RuntimeEnvironment.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuntimeModule.js","sourceRoot":"","sources":["../../src/runtime/RuntimeModule.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,kBAAkB,EAAqB,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAGL,6BAA6B,EAE7B,gCAAgC,GACjC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAwB,QAAQ,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5D,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAIxE,MAAM,MAAM,GAAG;IACb,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,KAAK,CAAC,0CAA0C,CAAC;CAC7E,CAAC;AAOF,MAAM,OAAO,aAAa;IACxB,YAAoC,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAE/C,MAAM,CACX,SAAe,EACf,SAAc,EACd,KAAiC;QAEjC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YAC7B,MAAM,IAAI,KAAK,CACb,0FAA0F,CAC3F,CAAC;SACH;QACD,MAAM,SAAS,GAA8B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACpE,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;YACjC,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;SAChC;QACD,OAAO,SAAS;aACb,OAAO,CAAC,6BAA6B,CAAC;aACtC,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACtD,CAAC;IAEM,IAAI,CACT,SAAc,EACd,KAAiC;QAEjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;CACF;AAED;;GAEG;AAEI,WAAM,aAAa,GAAnB,MAAM,aAEX,SAAQ,kBAA0B;IAqBlC;QACE,KAAK,EAAE,CAAC;QAnBV;;WAEG;QACa,uBAAkB,GAAa,EAAE,CAAC;QAElD;;;;WAIG;QACI,oBAAe,GAAG,IAAI,CAAC;QAMvB,WAAM,GAAwB,SAAS,CAAC;QAI7C,mEAAmE;QACnE,MAAM,WAAW,GAAyB,OAAO,CAAC,WAAW,CAC3D,6BAA6B,EAC7B,IAAI,CACL,CAAC;QACF,IAAI,CAAC,kBAAkB,GAAG,WAAW,IAAI,EAAE,CAAC;IAC9C,CAAC;IAEM,SAAS;QACd,OAAO,QAAQ,CAAC,OAAO,CAAC,gCAAgC,EAAE,GAAG,EAAE;YAC7D,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,OAAO,CACjC,6BAA6B,CAC9B,CAAC;YACF,IAAI,KAAK,KAAK,SAAS,EAAE;gBACvB,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC;aAChC;YAED,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC;IACtC,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,YAAY,CAAC;IACvC,CAAC;;AAjDa,qBAAO,GAAqB,EAAE,AAAvB,CAAwB;AAHlC,aAAa;IADzB,UAAU,EAAE;;GACA,aAAa,CAqDzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InMemoryStateService.js","sourceRoot":"","sources":["../../src/state/InMemoryStateService.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,OAAO,oBAAoB;IAAjC;QACE;;;WAGG;QACI,WAAM,GAAmC,EAAE,CAAC;IAarD,CAAC;IAXQ,KAAK,CAAC,GAAG,CAAC,GAAU;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,SAAS,CAAC;IAClD,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,GAAU,EAAE,KAA0B;QACrD,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC;SACpC;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,KAAK,CAAC;SACrC;IACH,CAAC;CACF"}
|
package/dist/state/decorator.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorator.js","sourceRoot":"","sources":["../../src/state/decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAS,MAAM,qBAAqB,CAAC;AAIlD,MAAM,MAAM,GAAG;IACb,WAAW,EAAE,CAAC,SAAiB,EAAE,EAAE,CACjC,IAAI,KAAK,CACP,oDAAoD,SAAS;iFACc,CAC5E;IAEH,cAAc,EAAE,CAAC,SAAiB,EAAE,EAAE,CACpC,IAAI,KAAK,CACP,0CAA0C,SAAS;iFACwB,CAC5E;CACJ,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,KAAK;IACnB,OAAO,CACL,MAA2B,EAC3B,WAAmB,EACnB,EAAE;QACF,IAAI,KAAiC,CAAC;QAEtC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE;YACzC,UAAU,EAAE,IAAI;YAEhB,GAAG,EAAE,SAAS,GAAG;gBACf,yEAAyE;gBACzE,MAAM,IAAI,GAAG,IAA2B,CAAC;gBAEzC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;oBAC3B,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;iBACjD;gBAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;oBACjB,MAAM,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;iBACpD;gBAED,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;gBACvD,IAAI,KAAK,EAAE;oBACT,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;oBAElB,6CAA6C;oBAE7C,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;iBAChE;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YAED,GAAG,EAAE,CAAC,QAAwB,EAAE,EAAE;gBAChC,KAAK,GAAG,QAAQ,CAAC;YACnB,CAAC;SACF,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
|
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/module/src/**",
|
|
8
|
+
"!**/node_modules/**",
|
|
9
|
+
"!**/dist/**",
|
|
10
|
+
],
|
|
11
|
+
coverageDirectory: "coverage/module",
|
|
12
|
+
};
|
package/package.json
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
"name": "@proto-kit/module",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"private": false,
|
|
5
|
-
"version": "0.1.1-develop.
|
|
5
|
+
"version": "0.1.1-develop.1309+d440dd29",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"build": "tsc -p tsconfig.json",
|
|
9
9
|
"dev": "tsc -p tsconfig.json --watch",
|
|
10
10
|
"lint": "eslint ./src ./test",
|
|
11
|
-
"test:file": "node --experimental-vm-modules --experimental-wasm-modules
|
|
11
|
+
"test:file": "node --experimental-vm-modules --experimental-wasm-modules ../../node_modules/jest/bin/jest.js",
|
|
12
12
|
"test": "npm run test:file -- ./test/**",
|
|
13
13
|
"test:watch": "npm run test:file -- ./test/** --watch"
|
|
14
14
|
},
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"peerDependencies": {
|
|
29
29
|
"@proto-kit/common": "*",
|
|
30
30
|
"@proto-kit/protocol": "*",
|
|
31
|
-
"o1js": "^1.
|
|
31
|
+
"o1js": "^1.6.0",
|
|
32
32
|
"tsyringe": "^4.7.0"
|
|
33
33
|
},
|
|
34
|
-
"gitHead": "
|
|
34
|
+
"gitHead": "d440dd29e8de488bdfa498112a710551e4f8e975"
|
|
35
35
|
}
|
|
@@ -62,7 +62,7 @@ function getAllPropertyNamesOfPrototypeChain(type: unknown): string[] {
|
|
|
62
62
|
);
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
function isFlexibleProvablePure(
|
|
65
|
+
export function isFlexibleProvablePure(
|
|
66
66
|
type: unknown
|
|
67
67
|
): type is FlexibleProvablePure<unknown> {
|
|
68
68
|
// The required properties are defined on the prototype for Structs and CircuitValues
|
|
@@ -73,35 +73,43 @@ function isFlexibleProvablePure(
|
|
|
73
73
|
return mandatory.every((prop) => props.includes(prop));
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
-
export
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
76
|
+
export function checkArgsProvable(
|
|
77
|
+
target: RuntimeModule<unknown>,
|
|
78
|
+
methodName: string
|
|
79
|
+
) {
|
|
80
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
81
|
+
const paramtypes: ArgTypeArray = Reflect.getMetadata(
|
|
82
|
+
"design:paramtypes",
|
|
83
|
+
target,
|
|
84
|
+
methodName
|
|
85
|
+
);
|
|
86
|
+
|
|
87
|
+
if (paramtypes === undefined) {
|
|
88
|
+
throw new Error(
|
|
89
|
+
`Method with name ${methodName} doesn't exist on this module`
|
|
83
90
|
);
|
|
91
|
+
}
|
|
84
92
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
93
|
+
const indizes = paramtypes
|
|
94
|
+
.map((type, index) => {
|
|
95
|
+
if (isProofBaseType(type) || isFlexibleProvablePure(type)) {
|
|
96
|
+
return undefined;
|
|
97
|
+
}
|
|
98
|
+
return `${index}`;
|
|
99
|
+
})
|
|
100
|
+
.filter(filterNonUndefined);
|
|
101
|
+
if (indizes.length > 0) {
|
|
102
|
+
const indexString = indizes.reduce((a, b) => `${a}, ${b}`);
|
|
103
|
+
throw new Error(
|
|
104
|
+
`Not all arguments of method '${target.name}.${methodName}' are provable types or proofs (indizes: [${indexString}])`
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
return paramtypes;
|
|
108
|
+
}
|
|
90
109
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
return undefined;
|
|
95
|
-
}
|
|
96
|
-
return `${index}`;
|
|
97
|
-
})
|
|
98
|
-
.filter(filterNonUndefined);
|
|
99
|
-
if (indizes.length > 0) {
|
|
100
|
-
const indexString = indizes.reduce((a, b) => `${a}, ${b}`);
|
|
101
|
-
throw new Error(
|
|
102
|
-
`Not all arguments of method '${target.name}.${methodName}' are provable types or proofs (indizes: [${indexString}])`
|
|
103
|
-
);
|
|
104
|
-
}
|
|
110
|
+
export class MethodParameterEncoder {
|
|
111
|
+
public static fromMethod(target: RuntimeModule<unknown>, methodName: string) {
|
|
112
|
+
const paramtypes = checkArgsProvable(target, methodName);
|
|
105
113
|
|
|
106
114
|
return new MethodParameterEncoder(paramtypes);
|
|
107
115
|
}
|
|
@@ -17,7 +17,10 @@ import {
|
|
|
17
17
|
|
|
18
18
|
import type { RuntimeModule } from "../runtime/RuntimeModule.js";
|
|
19
19
|
|
|
20
|
-
import {
|
|
20
|
+
import {
|
|
21
|
+
MethodParameterEncoder,
|
|
22
|
+
checkArgsProvable,
|
|
23
|
+
} from "./MethodParameterEncoder";
|
|
21
24
|
|
|
22
25
|
const errors = {
|
|
23
26
|
runtimeNotProvided: (name: string) =>
|
|
@@ -196,11 +199,9 @@ function runtimeMethodInternal(options: {
|
|
|
196
199
|
return (
|
|
197
200
|
target: RuntimeModule<unknown>,
|
|
198
201
|
methodName: string,
|
|
199
|
-
descriptor: TypedPropertyDescriptor<
|
|
200
|
-
// TODO Limit possible parameter types
|
|
201
|
-
(...args: any[]) => Promise<any>
|
|
202
|
-
>
|
|
202
|
+
descriptor: TypedPropertyDescriptor<(...args: any[]) => Promise<any>>
|
|
203
203
|
) => {
|
|
204
|
+
checkArgsProvable(target, methodName);
|
|
204
205
|
const executionContext = container.resolve<RuntimeMethodExecutionContext>(
|
|
205
206
|
RuntimeMethodExecutionContext
|
|
206
207
|
);
|
package/src/runtime/Runtime.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-argument */
|
|
2
2
|
import { ZkProgram } from "o1js";
|
|
3
|
-
import { DependencyContainer, injectable } from "tsyringe";
|
|
3
|
+
import { container, DependencyContainer, injectable } from "tsyringe";
|
|
4
4
|
import {
|
|
5
5
|
StringKeyOf,
|
|
6
6
|
ModuleContainer,
|
|
@@ -11,11 +11,16 @@ import {
|
|
|
11
11
|
PlainZkProgram,
|
|
12
12
|
AreProofsEnabled,
|
|
13
13
|
ChildContainerProvider,
|
|
14
|
+
CompilableModule,
|
|
15
|
+
CompileRegistry,
|
|
14
16
|
} from "@proto-kit/common";
|
|
15
17
|
import {
|
|
16
18
|
MethodPublicOutput,
|
|
17
19
|
StateServiceProvider,
|
|
18
20
|
SimpleAsyncStateService,
|
|
21
|
+
RuntimeMethodExecutionContext,
|
|
22
|
+
RuntimeTransaction,
|
|
23
|
+
NetworkState,
|
|
19
24
|
} from "@proto-kit/protocol";
|
|
20
25
|
|
|
21
26
|
import {
|
|
@@ -76,8 +81,8 @@ export class RuntimeZkProgrammable<
|
|
|
76
81
|
super();
|
|
77
82
|
}
|
|
78
83
|
|
|
79
|
-
public get
|
|
80
|
-
return this.runtime.
|
|
84
|
+
public get areProofsEnabled() {
|
|
85
|
+
return this.runtime.areProofsEnabled;
|
|
81
86
|
}
|
|
82
87
|
|
|
83
88
|
public zkProgramFactory(): PlainZkProgram<undefined, MethodPublicOutput>[] {
|
|
@@ -227,9 +232,10 @@ export class RuntimeZkProgrammable<
|
|
|
227
232
|
return buckets;
|
|
228
233
|
};
|
|
229
234
|
|
|
230
|
-
return splitRuntimeMethods().map((bucket) => {
|
|
235
|
+
return splitRuntimeMethods().map((bucket, index) => {
|
|
236
|
+
const name = `RuntimeProgram-${index}`;
|
|
231
237
|
const program = ZkProgram({
|
|
232
|
-
name
|
|
238
|
+
name,
|
|
233
239
|
publicOutput: MethodPublicOutput,
|
|
234
240
|
methods: bucket,
|
|
235
241
|
});
|
|
@@ -245,6 +251,7 @@ export class RuntimeZkProgrammable<
|
|
|
245
251
|
);
|
|
246
252
|
|
|
247
253
|
return {
|
|
254
|
+
name,
|
|
248
255
|
compile: program.compile.bind(program),
|
|
249
256
|
verify: program.verify.bind(program),
|
|
250
257
|
analyzeMethods: program.analyzeMethods.bind(program),
|
|
@@ -262,7 +269,7 @@ export class RuntimeZkProgrammable<
|
|
|
262
269
|
@injectable()
|
|
263
270
|
export class Runtime<Modules extends RuntimeModulesRecord>
|
|
264
271
|
extends ModuleContainer<Modules>
|
|
265
|
-
implements RuntimeEnvironment
|
|
272
|
+
implements RuntimeEnvironment, CompilableModule
|
|
266
273
|
{
|
|
267
274
|
public static from<Modules extends RuntimeModulesRecord>(
|
|
268
275
|
definition: RuntimeDefinition<Modules>
|
|
@@ -299,7 +306,7 @@ export class Runtime<Modules extends RuntimeModulesRecord>
|
|
|
299
306
|
this.useDependencyFactory(this.container.resolve(MethodIdFactory));
|
|
300
307
|
}
|
|
301
308
|
|
|
302
|
-
public get
|
|
309
|
+
public get areProofsEnabled(): AreProofsEnabled | undefined {
|
|
303
310
|
return this.container.resolve<AreProofsEnabled>("AreProofsEnabled");
|
|
304
311
|
}
|
|
305
312
|
|
|
@@ -375,5 +382,14 @@ export class Runtime<Modules extends RuntimeModulesRecord>
|
|
|
375
382
|
public get runtimeModuleNames() {
|
|
376
383
|
return Object.keys(this.definition.modules);
|
|
377
384
|
}
|
|
385
|
+
|
|
386
|
+
public async compile(registry: CompileRegistry) {
|
|
387
|
+
const context = container.resolve(RuntimeMethodExecutionContext);
|
|
388
|
+
context.setup({
|
|
389
|
+
transaction: RuntimeTransaction.dummyTransaction(),
|
|
390
|
+
networkState: NetworkState.empty(),
|
|
391
|
+
});
|
|
392
|
+
return await this.zkProgrammable.compile(registry);
|
|
393
|
+
}
|
|
378
394
|
}
|
|
379
395
|
/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-argument */
|
|
@@ -9,7 +9,7 @@ import { MethodIdResolver } from "./MethodIdResolver";
|
|
|
9
9
|
|
|
10
10
|
export interface RuntimeEnvironment
|
|
11
11
|
extends WithZkProgrammable<undefined, MethodPublicOutput> {
|
|
12
|
-
get
|
|
12
|
+
get areProofsEnabled(): AreProofsEnabled | undefined;
|
|
13
13
|
get stateService(): SimpleAsyncStateService;
|
|
14
14
|
get stateServiceProvider(): StateServiceProvider;
|
|
15
15
|
get methodIdResolver(): MethodIdResolver;
|
|
@@ -7,14 +7,9 @@ import {
|
|
|
7
7
|
ZkProgram,
|
|
8
8
|
Proof,
|
|
9
9
|
} from "o1js";
|
|
10
|
-
import { NonMethods
|
|
10
|
+
import { NonMethods } from "@proto-kit/common";
|
|
11
11
|
|
|
12
|
-
import {
|
|
13
|
-
MethodParameterEncoder,
|
|
14
|
-
RuntimeModule,
|
|
15
|
-
runtimeModule,
|
|
16
|
-
runtimeMethod,
|
|
17
|
-
} from "../../src";
|
|
12
|
+
import { MethodParameterEncoder } from "../../src";
|
|
18
13
|
|
|
19
14
|
class TestStruct extends Struct({
|
|
20
15
|
a: Field,
|
|
@@ -124,29 +119,3 @@ describe("MethodParameterEncoder", () => {
|
|
|
124
119
|
);
|
|
125
120
|
}, 30000);
|
|
126
121
|
});
|
|
127
|
-
|
|
128
|
-
class TieredStruct extends TestStruct {}
|
|
129
|
-
|
|
130
|
-
@runtimeModule()
|
|
131
|
-
class TestModule extends RuntimeModule {
|
|
132
|
-
@runtimeMethod()
|
|
133
|
-
public async foo(
|
|
134
|
-
a: TieredStruct,
|
|
135
|
-
b: PublicKey,
|
|
136
|
-
c: Field,
|
|
137
|
-
d: TestProof,
|
|
138
|
-
e: string
|
|
139
|
-
) {
|
|
140
|
-
noop();
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
describe("MethodParameterEncoder construction", () => {
|
|
145
|
-
it("should throw on non-provable method signature", () => {
|
|
146
|
-
const module = new TestModule();
|
|
147
|
-
module.name = "testModule";
|
|
148
|
-
expect(() => MethodParameterEncoder.fromMethod(module, "foo")).toThrowError(
|
|
149
|
-
"'testModule.foo' are provable types or proofs (indizes: [4])"
|
|
150
|
-
);
|
|
151
|
-
});
|
|
152
|
-
});
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Bool, Field, PublicKey, Struct, ZkProgram } from "o1js";
|
|
2
|
+
import { noop } from "@proto-kit/common";
|
|
3
|
+
|
|
4
|
+
import { runtimeMethod, RuntimeModule, runtimeModule } from "../../src";
|
|
5
|
+
|
|
6
|
+
class TestStruct extends Struct({
|
|
7
|
+
a: Field,
|
|
8
|
+
b: Bool,
|
|
9
|
+
}) {}
|
|
10
|
+
class TieredStruct extends TestStruct {}
|
|
11
|
+
const TestProgram = ZkProgram({
|
|
12
|
+
name: "TestProgram",
|
|
13
|
+
publicInput: PublicKey,
|
|
14
|
+
publicOutput: TestStruct,
|
|
15
|
+
methods: {
|
|
16
|
+
foo: {
|
|
17
|
+
privateInputs: [],
|
|
18
|
+
method: async (input: PublicKey) => {
|
|
19
|
+
return {
|
|
20
|
+
a: Field(input.x),
|
|
21
|
+
b: Bool(input.isOdd),
|
|
22
|
+
};
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
class TestProof extends ZkProgram.Proof(TestProgram) {}
|
|
28
|
+
|
|
29
|
+
describe("Creating module with non-provable method argument", () => {
|
|
30
|
+
it("should throw on non-provable method signature", () => {
|
|
31
|
+
expect(() => {
|
|
32
|
+
@runtimeModule()
|
|
33
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
34
|
+
class TestModule extends RuntimeModule {
|
|
35
|
+
@runtimeMethod()
|
|
36
|
+
public async foo(
|
|
37
|
+
a: TieredStruct,
|
|
38
|
+
b: PublicKey,
|
|
39
|
+
c: Field,
|
|
40
|
+
d: TestProof,
|
|
41
|
+
e: string
|
|
42
|
+
) {
|
|
43
|
+
noop();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}).toThrow(
|
|
47
|
+
"Not all arguments of method 'undefined.foo' are provable types or proofs (indizes: [4])"
|
|
48
|
+
);
|
|
49
|
+
});
|
|
50
|
+
});
|
|
@@ -68,7 +68,7 @@ describe("balances", () => {
|
|
|
68
68
|
it("should compile and prove a method execution", async () => {
|
|
69
69
|
expect.assertions(3);
|
|
70
70
|
|
|
71
|
-
runtime.zkProgrammable.
|
|
71
|
+
runtime.zkProgrammable.areProofsEnabled?.setProofsEnabled(true);
|
|
72
72
|
|
|
73
73
|
const executionContext = container.resolve(RuntimeMethodExecutionContext);
|
|
74
74
|
executionContext.setup({
|
|
@@ -90,7 +90,7 @@ describe("balances", () => {
|
|
|
90
90
|
|
|
91
91
|
const verified = await runtime.zkProgrammable.zkProgram[0].verify(proof);
|
|
92
92
|
|
|
93
|
-
runtime.zkProgrammable.
|
|
93
|
+
runtime.zkProgrammable.areProofsEnabled?.setProofsEnabled(false);
|
|
94
94
|
|
|
95
95
|
expect(verified).toBe(true);
|
|
96
96
|
|