@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.
Files changed (38) hide show
  1. package/dist/factories/MethodIdFactory.js +1 -0
  2. package/dist/factories/MethodIdFactory.js.map +1 -0
  3. package/dist/index.js +1 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/method/MethodParameterEncoder.d.ts +2 -0
  6. package/dist/method/MethodParameterEncoder.d.ts.map +1 -1
  7. package/dist/method/MethodParameterEncoder.js +23 -18
  8. package/dist/method/MethodParameterEncoder.js.map +1 -0
  9. package/dist/method/runtimeMethod.d.ts.map +1 -1
  10. package/dist/method/runtimeMethod.js +3 -1
  11. package/dist/method/runtimeMethod.js.map +1 -0
  12. package/dist/module/decorator.js +1 -0
  13. package/dist/module/decorator.js.map +1 -0
  14. package/dist/runtime/MethodIdResolver.js +1 -0
  15. package/dist/runtime/MethodIdResolver.js.map +1 -0
  16. package/dist/runtime/Runtime.d.ts +5 -4
  17. package/dist/runtime/Runtime.d.ts.map +1 -1
  18. package/dist/runtime/Runtime.js +18 -7
  19. package/dist/runtime/Runtime.js.map +1 -0
  20. package/dist/runtime/RuntimeEnvironment.d.ts +1 -1
  21. package/dist/runtime/RuntimeEnvironment.d.ts.map +1 -1
  22. package/dist/runtime/RuntimeEnvironment.js +1 -0
  23. package/dist/runtime/RuntimeEnvironment.js.map +1 -0
  24. package/dist/runtime/RuntimeModule.js +1 -0
  25. package/dist/runtime/RuntimeModule.js.map +1 -0
  26. package/dist/state/InMemoryStateService.js +1 -0
  27. package/dist/state/InMemoryStateService.js.map +1 -0
  28. package/dist/state/decorator.js +1 -0
  29. package/dist/state/decorator.js.map +1 -0
  30. package/jest.config.cjs +12 -1
  31. package/package.json +4 -4
  32. package/src/method/MethodParameterEncoder.ts +35 -27
  33. package/src/method/runtimeMethod.ts +6 -5
  34. package/src/runtime/Runtime.ts +23 -7
  35. package/src/runtime/RuntimeEnvironment.ts +1 -1
  36. package/test/method/MethodParameterEncoder.test.ts +2 -33
  37. package/test/method/runtimeMethod-fail.test.ts +50 -0
  38. package/test/modules/Balances.test.ts +2 -2
@@ -8,3 +8,4 @@ export class MethodIdFactory {
8
8
  };
9
9
  }
10
10
  }
11
+ //# sourceMappingURL=MethodIdFactory.js.map
@@ -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
@@ -8,3 +8,4 @@ export * from "./state/decorator";
8
8
  export * from "./method/MethodParameterEncoder";
9
9
  export * from "./runtime/MethodIdResolver";
10
10
  export * from "./factories/MethodIdFactory";
11
+ //# sourceMappingURL=index.js.map
@@ -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;AAsChC,qBAAa,sBAAsB;IA4Cd,OAAO,CAAC,QAAQ,CAAC,KAAK;WA3C3B,UAAU,CAAC,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,MAAM;WAgC7D,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"}
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
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
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;AAqBjE,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;AA0G3E,wBAAgB,cAAc,wIAI7B;AAED,wBAAgB,aAAa,wIAI5B"}
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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"}
@@ -13,3 +13,4 @@ export function runtimeModule() {
13
13
  injectable()(target);
14
14
  };
15
15
  }
16
+ //# sourceMappingURL=decorator.js.map
@@ -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"}
@@ -88,3 +88,4 @@ MethodIdResolver = __decorate([
88
88
  __param(0, inject("Runtime")),
89
89
  __metadata("design:paramtypes", [Function])
90
90
  ], MethodIdResolver);
91
+ //# sourceMappingURL=MethodIdResolver.js.map
@@ -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 appChain(): AreProofsEnabled | undefined;
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 appChain(): AreProofsEnabled | undefined;
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,EAAE,mBAAmB,EAAc,MAAM,UAAU,CAAC;AAC3D,OAAO,EACL,WAAW,EACX,eAAe,EACf,aAAa,EACb,aAAa,EACb,UAAU,EACV,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACxB,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,QAAQ,iCAElB;IAEM,gBAAgB,IAAI,cAAc,CAAC,SAAS,EAAE,kBAAkB,CAAC,EAAE;CA6K3E;AAED;;;GAGG;AACH,qBACa,OAAO,CAAC,OAAO,SAAS,oBAAoB,CACvD,SAAQ,eAAe,CAAC,OAAO,CAC/B,YAAW,kBAAkB;WAEf,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,QAAQ,IAAI,gBAAgB,GAAG,SAAS,CAElD;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;CACF"}
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"}
@@ -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 appChain() {
41
- return this.runtime.appChain;
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: "RuntimeProgram",
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 appChain() {
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 appChain(): AreProofsEnabled | undefined;
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,QAAQ,IAAI,gBAAgB,GAAG,SAAS,CAAC;IAC7C,IAAI,YAAY,IAAI,uBAAuB,CAAC;IAC5C,IAAI,oBAAoB,IAAI,oBAAoB,CAAC;IACjD,IAAI,gBAAgB,IAAI,gBAAgB,CAAC;CAC1C"}
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"}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=RuntimeEnvironment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuntimeEnvironment.js","sourceRoot":"","sources":["../../src/runtime/RuntimeEnvironment.ts"],"names":[],"mappings":""}
@@ -77,3 +77,4 @@ RuntimeModule = __decorate([
77
77
  injectable(),
78
78
  __metadata("design:paramtypes", [])
79
79
  ], RuntimeModule);
80
+ //# sourceMappingURL=RuntimeModule.js.map
@@ -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"}
@@ -21,3 +21,4 @@ export class InMemoryStateService {
21
21
  }
22
22
  }
23
23
  }
24
+ //# sourceMappingURL=InMemoryStateService.js.map
@@ -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"}
@@ -37,3 +37,4 @@ export function state() {
37
37
  });
38
38
  };
39
39
  }
40
+ //# sourceMappingURL=decorator.js.map
@@ -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
- module.exports = require("../../jest.config.cjs");
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.1088+750b65f1",
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 --experimental-wasm-threads ../../node_modules/jest/bin/jest.js",
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.1.0",
31
+ "o1js": "^1.6.0",
32
32
  "tsyringe": "^4.7.0"
33
33
  },
34
- "gitHead": "750b65f187535ed8753a6045f9f36165b0a35d9c"
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 class MethodParameterEncoder {
77
- public static fromMethod(target: RuntimeModule<unknown>, methodName: string) {
78
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
79
- const paramtypes: ArgTypeArray = Reflect.getMetadata(
80
- "design:paramtypes",
81
- target,
82
- methodName
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
- if (paramtypes === undefined) {
86
- throw new Error(
87
- `Method with name ${methodName} doesn't exist on this module`
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
- const indizes = paramtypes
92
- .map((type, index) => {
93
- if (isProofBaseType(type) || isFlexibleProvablePure(type)) {
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 { MethodParameterEncoder } from "./MethodParameterEncoder";
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
  );
@@ -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 appChain() {
80
- return this.runtime.appChain;
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: "RuntimeProgram",
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 appChain(): AreProofsEnabled | undefined {
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 appChain(): AreProofsEnabled | undefined;
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, noop } from "@proto-kit/common";
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.appChain?.setProofsEnabled(true);
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.appChain?.setProofsEnabled(false);
93
+ runtime.zkProgrammable.areProofsEnabled?.setProofsEnabled(false);
94
94
 
95
95
  expect(verified).toBe(true);
96
96