@proto-kit/module 0.1.1-develop.211 → 0.1.1-develop.2137
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/factories/MethodIdFactory.d.ts +6 -6
- package/dist/factories/MethodIdFactory.d.ts.map +1 -1
- package/dist/factories/MethodIdFactory.js +10 -34
- package/dist/factories/MethodIdFactory.js.map +1 -0
- package/dist/index.d.ts +4 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -7
- package/dist/index.js.map +1 -0
- package/dist/messages/OutgoingMessage.d.ts +96 -0
- package/dist/messages/OutgoingMessage.d.ts.map +1 -0
- package/dist/messages/OutgoingMessage.js +68 -0
- package/dist/messages/OutgoingMessage.js.map +1 -0
- package/dist/messages/OutgoingMessages.d.ts +231 -0
- package/dist/messages/OutgoingMessages.d.ts.map +1 -0
- package/dist/messages/OutgoingMessages.js +67 -0
- package/dist/messages/OutgoingMessages.js.map +1 -0
- package/dist/method/MethodParameterEncoder.d.ts +26 -0
- package/dist/method/MethodParameterEncoder.d.ts.map +1 -0
- package/dist/method/MethodParameterEncoder.js +169 -0
- package/dist/method/MethodParameterEncoder.js.map +1 -0
- package/dist/method/runtimeMethod.d.ts +21 -5
- package/dist/method/runtimeMethod.d.ts.map +1 -1
- package/dist/method/runtimeMethod.js +69 -25
- 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.d.ts +10 -8
- package/dist/runtime/MethodIdResolver.d.ts.map +1 -1
- package/dist/runtime/MethodIdResolver.js +75 -33
- package/dist/runtime/MethodIdResolver.js.map +1 -0
- package/dist/runtime/Runtime.d.ts +20 -26
- package/dist/runtime/Runtime.d.ts.map +1 -1
- package/dist/runtime/Runtime.js +117 -62
- package/dist/runtime/Runtime.js.map +1 -0
- package/dist/runtime/RuntimeEnvironment.d.ts +10 -0
- package/dist/runtime/RuntimeEnvironment.d.ts.map +1 -0
- package/dist/runtime/RuntimeEnvironment.js +2 -0
- package/dist/runtime/RuntimeEnvironment.js.map +1 -0
- package/dist/runtime/RuntimeModule.d.ts +18 -15
- package/dist/runtime/RuntimeModule.d.ts.map +1 -1
- package/dist/runtime/RuntimeModule.js +33 -8
- package/dist/runtime/RuntimeModule.js.map +1 -0
- package/dist/state/InMemoryStateService.d.ts +11 -10
- package/dist/state/InMemoryStateService.d.ts.map +1 -1
- package/dist/state/InMemoryStateService.js +11 -8
- package/dist/state/InMemoryStateService.js.map +1 -0
- package/dist/state/decorator.d.ts.map +1 -1
- package/dist/state/decorator.js +2 -4
- package/dist/state/decorator.js.map +1 -0
- package/dist/testing/TestingRuntime.d.ts +8 -0
- package/dist/testing/TestingRuntime.d.ts.map +1 -0
- package/dist/testing/TestingRuntime.js +31 -0
- package/dist/testing/TestingRuntime.js.map +1 -0
- package/jest.config.cjs +12 -1
- package/package.json +9 -9
- package/src/factories/MethodIdFactory.ts +10 -17
- package/src/index.ts +4 -4
- package/src/messages/OutgoingMessages.ts +124 -0
- package/src/method/MethodParameterEncoder.ts +262 -0
- package/src/method/runtimeMethod.ts +131 -33
- package/src/runtime/MethodIdResolver.ts +85 -46
- package/src/runtime/Runtime.ts +187 -96
- package/src/runtime/RuntimeEnvironment.ts +16 -0
- package/src/runtime/RuntimeModule.ts +58 -27
- package/src/state/InMemoryStateService.ts +14 -14
- package/test/Runtime.test.ts +68 -42
- package/test/TestingRuntime.ts +43 -0
- package/test/messages/message.test.ts +42 -0
- package/test/method/MethodParameterEncoder.test.ts +124 -0
- package/test/method/runtimeMethod-fail.test.ts +53 -0
- package/{src/method/decorator.test.ts → test/method/runtimeMethod.test.ts} +3 -3
- package/test/modules/Admin.ts +4 -4
- package/test/modules/Balances.test.ts +88 -79
- package/test/modules/Balances.ts +15 -21
- package/test/modules/{methodId.test.ts → MethodIdResolver.test.ts} +24 -35
- package/test/modules/State.test.ts +46 -53
- package/test/runtimeMethod.test.ts +192 -20
- package/test/tsconfig.json +7 -0
- package/tsconfig.json +2 -2
- package/LICENSE.md +0 -201
- package/dist/method/MethodParameterDecoder.d.ts +0 -22
- package/dist/method/MethodParameterDecoder.d.ts.map +0 -1
- package/dist/method/MethodParameterDecoder.js +0 -33
- package/dist/method/RuntimeMethodExecutionContext.d.ts +0 -57
- package/dist/method/RuntimeMethodExecutionContext.d.ts.map +0 -1
- package/dist/method/RuntimeMethodExecutionContext.js +0 -92
- package/dist/method/assert.d.ts +0 -12
- package/dist/method/assert.d.ts.map +0 -1
- package/dist/method/assert.js +0 -23
- package/dist/module/src/factories/MethodIdFactory.d.ts +0 -9
- package/dist/module/src/factories/MethodIdFactory.d.ts.map +0 -1
- package/dist/module/src/factories/MethodIdFactory.js +0 -36
- package/dist/module/src/index.d.ts +0 -11
- package/dist/module/src/index.d.ts.map +0 -1
- package/dist/module/src/index.js +0 -10
- package/dist/module/src/method/MethodParameterDecoder.d.ts +0 -22
- package/dist/module/src/method/MethodParameterDecoder.d.ts.map +0 -1
- package/dist/module/src/method/MethodParameterDecoder.js +0 -33
- package/dist/module/src/method/runtimeMethod.d.ts +0 -19
- package/dist/module/src/method/runtimeMethod.d.ts.map +0 -1
- package/dist/module/src/method/runtimeMethod.js +0 -123
- package/dist/module/src/module/decorator.d.ts +0 -8
- package/dist/module/src/module/decorator.d.ts.map +0 -1
- package/dist/module/src/module/decorator.js +0 -15
- package/dist/module/src/runtime/MethodIdResolver.d.ts +0 -18
- package/dist/module/src/runtime/MethodIdResolver.d.ts.map +0 -1
- package/dist/module/src/runtime/MethodIdResolver.js +0 -50
- package/dist/module/src/runtime/Runtime.d.ts +0 -72
- package/dist/module/src/runtime/Runtime.d.ts.map +0 -1
- package/dist/module/src/runtime/Runtime.js +0 -184
- package/dist/module/src/runtime/RuntimeModule.d.ts +0 -35
- package/dist/module/src/runtime/RuntimeModule.d.ts.map +0 -1
- package/dist/module/src/runtime/RuntimeModule.js +0 -56
- package/dist/module/src/state/InMemoryStateService.d.ts +0 -11
- package/dist/module/src/state/InMemoryStateService.d.ts.map +0 -1
- package/dist/module/src/state/InMemoryStateService.js +0 -21
- package/dist/module/src/state/decorator.d.ts +0 -7
- package/dist/module/src/state/decorator.d.ts.map +0 -1
- package/dist/module/src/state/decorator.js +0 -42
- package/dist/protocol/src/model/Option.d.ts +0 -98
- package/dist/protocol/src/model/Option.d.ts.map +0 -1
- package/dist/protocol/src/model/Option.js +0 -98
- package/dist/protocol/src/model/StateTransition.d.ts +0 -96
- package/dist/protocol/src/model/StateTransition.d.ts.map +0 -1
- package/dist/protocol/src/model/StateTransition.js +0 -65
- package/dist/protocol/src/model/network/NetworkState.d.ts +0 -64
- package/dist/protocol/src/model/network/NetworkState.d.ts.map +0 -1
- package/dist/protocol/src/model/network/NetworkState.js +0 -12
- package/dist/protocol/src/model/transaction/ProtocolTransaction.d.ts +0 -70
- package/dist/protocol/src/model/transaction/ProtocolTransaction.d.ts.map +0 -1
- package/dist/protocol/src/model/transaction/ProtocolTransaction.js +0 -18
- package/dist/protocol/src/model/transaction/RuntimeTransaction.d.ts +0 -63
- package/dist/protocol/src/model/transaction/RuntimeTransaction.d.ts.map +0 -1
- package/dist/protocol/src/model/transaction/RuntimeTransaction.js +0 -29
- package/dist/protocol/src/state/assert/assert.d.ts +0 -12
- package/dist/protocol/src/state/assert/assert.d.ts.map +0 -1
- package/dist/protocol/src/state/assert/assert.js +0 -23
- package/dist/protocol/src/state/context/RuntimeMethodExecutionContext.d.ts +0 -60
- package/dist/protocol/src/state/context/RuntimeMethodExecutionContext.d.ts.map +0 -1
- package/dist/protocol/src/state/context/RuntimeMethodExecutionContext.js +0 -105
- package/dist/state/State.d.ts +0 -65
- package/dist/state/State.d.ts.map +0 -1
- package/dist/state/State.js +0 -114
- package/dist/state/StateMap.d.ts +0 -37
- package/dist/state/StateMap.d.ts.map +0 -1
- package/dist/state/StateMap.js +0 -56
- package/dist/state/StateServiceProvider.d.ts +0 -10
- package/dist/state/StateServiceProvider.d.ts.map +0 -1
- package/dist/state/StateServiceProvider.js +0 -34
- package/src/method/MethodParameterDecoder.ts +0 -70
- package/src/state/decorator.ts +0 -63
- package/test/state/MerkleTree.test.ts +0 -95
- package/test/state/MockAsyncMerkleStore.ts +0 -28
- package/test/transaction.test.ts +0 -82
- package/tsconfig.test.json +0 -9
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ZkProgram } from "o1js";
|
|
2
2
|
import { DependencyContainer } from "tsyringe";
|
|
3
|
-
import { StringKeyOf, ModuleContainer,
|
|
4
|
-
import { MethodPublicOutput } from "@proto-kit/protocol";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
3
|
+
import { StringKeyOf, ModuleContainer, ModulesRecord, TypedClass, ZkProgrammable, PlainZkProgram, AreProofsEnabled, ChildContainerProvider, CompilableModule, CompileRegistry } from "@proto-kit/common";
|
|
4
|
+
import { MethodPublicOutput, StateServiceProvider, SimpleAsyncStateService } from "@proto-kit/protocol";
|
|
5
|
+
import { RuntimeModule } from "./RuntimeModule";
|
|
6
|
+
import { MethodIdResolver } from "./MethodIdResolver";
|
|
7
|
+
import { RuntimeEnvironment } from "./RuntimeEnvironment";
|
|
8
|
+
export declare function getAllPropertyNames(obj: any): (string | symbol)[];
|
|
8
9
|
/**
|
|
9
10
|
* Record of modules accepted by the Runtime module container.
|
|
10
11
|
*
|
|
@@ -12,40 +13,32 @@ import { RuntimeModule } from "./RuntimeModule.js";
|
|
|
12
13
|
* is an abstract class
|
|
13
14
|
*/
|
|
14
15
|
export type RuntimeModulesRecord = ModulesRecord<TypedClass<RuntimeModule<unknown>>>;
|
|
15
|
-
/**
|
|
16
|
-
* Definition / required arguments for the Runtime class
|
|
17
|
-
*/
|
|
18
|
-
export interface RuntimeDefinition<Modules extends RuntimeModulesRecord> {
|
|
19
|
-
state: StateService;
|
|
20
|
-
modules: Modules;
|
|
21
|
-
config?: ModulesConfig<Modules>;
|
|
22
|
-
}
|
|
23
16
|
export declare class RuntimeZkProgrammable<Modules extends RuntimeModulesRecord> extends ZkProgrammable<undefined, MethodPublicOutput> {
|
|
24
17
|
runtime: Runtime<Modules>;
|
|
25
18
|
constructor(runtime: Runtime<Modules>);
|
|
26
|
-
get
|
|
27
|
-
zkProgramFactory(): PlainZkProgram<undefined, MethodPublicOutput
|
|
19
|
+
get areProofsEnabled(): AreProofsEnabled | undefined;
|
|
20
|
+
zkProgramFactory(): PlainZkProgram<undefined, MethodPublicOutput>[];
|
|
28
21
|
}
|
|
29
22
|
/**
|
|
30
23
|
* Wrapper for an application specific runtime, which helps orchestrate
|
|
31
24
|
* runtime modules into an interoperable runtime.
|
|
32
25
|
*/
|
|
33
|
-
export declare class Runtime<Modules extends RuntimeModulesRecord> extends ModuleContainer<Modules> implements
|
|
34
|
-
static from<Modules extends RuntimeModulesRecord>(definition:
|
|
35
|
-
program?: ReturnType<typeof
|
|
36
|
-
definition:
|
|
26
|
+
export declare class Runtime<Modules extends RuntimeModulesRecord> extends ModuleContainer<Modules> implements RuntimeEnvironment, CompilableModule {
|
|
27
|
+
static from<Modules extends RuntimeModulesRecord>(definition: Modules): TypedClass<Runtime<Modules>>;
|
|
28
|
+
program?: ReturnType<typeof ZkProgram>;
|
|
29
|
+
definition: Modules;
|
|
37
30
|
zkProgrammable: ZkProgrammable<undefined, MethodPublicOutput>;
|
|
38
|
-
private readonly stateServiceProviderInstance;
|
|
39
31
|
/**
|
|
40
32
|
* Creates a new Runtime from the provided config
|
|
41
33
|
*
|
|
42
34
|
* @param modules - Configuration object for the constructed Runtime
|
|
43
35
|
*/
|
|
44
|
-
constructor(definition:
|
|
45
|
-
|
|
46
|
-
get
|
|
47
|
-
get stateService(): StateService;
|
|
36
|
+
constructor(definition: Modules);
|
|
37
|
+
create(childContainerProvider: ChildContainerProvider): void;
|
|
38
|
+
get areProofsEnabled(): AreProofsEnabled | undefined;
|
|
48
39
|
get stateServiceProvider(): StateServiceProvider;
|
|
40
|
+
get stateService(): SimpleAsyncStateService;
|
|
41
|
+
get methodIdResolver(): MethodIdResolver;
|
|
49
42
|
/**
|
|
50
43
|
* @returns The dependency injection container of this runtime
|
|
51
44
|
*/
|
|
@@ -54,7 +47,7 @@ export declare class Runtime<Modules extends RuntimeModulesRecord> extends Modul
|
|
|
54
47
|
* @param methodId The encoded name of the method to call.
|
|
55
48
|
* Encoding: "stringToField(module.name) << 128 + stringToField(method-name)"
|
|
56
49
|
*/
|
|
57
|
-
getMethodById(methodId: bigint): ((...args: unknown[]) => unknown) | undefined;
|
|
50
|
+
getMethodById(methodId: bigint): ((...args: unknown[]) => Promise<unknown>) | undefined;
|
|
58
51
|
/**
|
|
59
52
|
* Add a name and other respective properties required by RuntimeModules,
|
|
60
53
|
* that come from the current Runtime
|
|
@@ -67,5 +60,6 @@ export declare class Runtime<Modules extends RuntimeModulesRecord> extends Modul
|
|
|
67
60
|
* @returns A list of names of all the registered module names
|
|
68
61
|
*/
|
|
69
62
|
get runtimeModuleNames(): string[];
|
|
63
|
+
compile(registry: CompileRegistry): Promise<Record<string, import("@proto-kit/common").CompileArtifact>>;
|
|
70
64
|
}
|
|
71
65
|
//# sourceMappingURL=Runtime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/Runtime.ts"],"names":[],"mappings":"
|
|
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,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,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;CAyL3E;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,OAAO,GAClB,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IASxB,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;IAIvC,UAAU,EAAE,OAAO,CAAC;IAEpB,cAAc,EAAE,cAAc,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;IAErE;;;;OAIG;gBACgB,UAAU,EAAE,OAAO;IAO/B,MAAM,CAAC,sBAAsB,EAAE,sBAAsB;IAM5D,IAAW,gBAAgB,IAAI,gBAAgB,GAAG,SAAS,CAE1D;IAED,IAAW,oBAAoB,IAAI,oBAAoB,CAEtD;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
|
@@ -8,54 +8,62 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
10
|
var Runtime_1;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
import {
|
|
14
|
-
import { injectable } from "tsyringe";
|
|
11
|
+
/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-argument */
|
|
12
|
+
import { ZkProgram } from "o1js";
|
|
13
|
+
import { container, injectable } from "tsyringe";
|
|
15
14
|
import { ModuleContainer, ZkProgrammable, } from "@proto-kit/common";
|
|
16
|
-
import { MethodPublicOutput } from "@proto-kit/protocol";
|
|
17
|
-
import { combineMethodName, isRuntimeMethod, toWrappedMethod, } from "../method/runtimeMethod
|
|
18
|
-
import { StateServiceProvider } from "../state/StateServiceProvider";
|
|
15
|
+
import { MethodPublicOutput, RuntimeMethodExecutionContext, RuntimeTransaction, NetworkState, } from "@proto-kit/protocol";
|
|
16
|
+
import { combineMethodName, isRuntimeMethod, runtimeMethodTypeMetadataKey, toWrappedMethod, } from "../method/runtimeMethod";
|
|
19
17
|
import { MethodIdFactory } from "../factories/MethodIdFactory";
|
|
18
|
+
export function getAllPropertyNames(obj) {
|
|
19
|
+
let currentPrototype = obj;
|
|
20
|
+
let keys = [];
|
|
21
|
+
// if primitive (primitives still have keys) skip the first iteration
|
|
22
|
+
if (!(obj instanceof Object)) {
|
|
23
|
+
currentPrototype = Object.getPrototypeOf(obj);
|
|
24
|
+
}
|
|
25
|
+
// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
|
|
26
|
+
while (currentPrototype) {
|
|
27
|
+
keys = keys.concat(Reflect.ownKeys(currentPrototype));
|
|
28
|
+
currentPrototype = Object.getPrototypeOf(currentPrototype);
|
|
29
|
+
}
|
|
30
|
+
return keys;
|
|
31
|
+
}
|
|
20
32
|
const errors = {
|
|
21
33
|
methodNotFound: (methodKey) => new Error(`Unable to find method with id ${methodKey}`),
|
|
22
34
|
};
|
|
23
35
|
export class RuntimeZkProgrammable extends ZkProgrammable {
|
|
24
|
-
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
25
36
|
constructor(runtime) {
|
|
26
37
|
super();
|
|
27
38
|
this.runtime = runtime;
|
|
28
39
|
}
|
|
29
|
-
get
|
|
30
|
-
return this.runtime.
|
|
40
|
+
get areProofsEnabled() {
|
|
41
|
+
return this.runtime.areProofsEnabled;
|
|
31
42
|
}
|
|
32
43
|
zkProgramFactory() {
|
|
33
44
|
// We need to use explicit type annotations here,
|
|
34
45
|
// therefore we can't use destructuring
|
|
35
|
-
// eslint-disable-next-line
|
|
36
|
-
// eslint-disable-next-line @typescript-eslint/no-use-before-define,prefer-destructuring,putout/putout
|
|
46
|
+
// eslint-disable-next-line prefer-destructuring
|
|
37
47
|
const runtime = this.runtime;
|
|
48
|
+
const MAXIMUM_METHODS_PER_ZK_PROGRAM = 8;
|
|
38
49
|
const runtimeMethods = runtime.runtimeModuleNames.reduce((allMethods, runtimeModuleName) => {
|
|
39
|
-
runtime.isValidModuleName(runtime.definition
|
|
50
|
+
runtime.isValidModuleName(runtime.definition, runtimeModuleName);
|
|
40
51
|
/**
|
|
41
52
|
* Couldnt find a better way to circumvent the type assertion
|
|
42
53
|
* regarding resolving only known modules. We assert in the line above
|
|
43
54
|
* but we cast it to any anyways to satisfy the proof system.
|
|
44
55
|
*/
|
|
45
|
-
// eslint-disable-next-line max-len
|
|
46
56
|
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
47
57
|
const runtimeModule = runtime.resolve(runtimeModuleName);
|
|
48
|
-
// eslint-disable-next-line max-len
|
|
49
58
|
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
50
59
|
const modulePrototype = Object.getPrototypeOf(runtimeModule);
|
|
51
|
-
const modulePrototypeMethods =
|
|
60
|
+
const modulePrototypeMethods = getAllPropertyNames(runtimeModule).map((method) => method.toString());
|
|
52
61
|
const moduleMethods = modulePrototypeMethods.reduce((allModuleMethods, methodName) => {
|
|
53
62
|
if (isRuntimeMethod(runtimeModule, methodName)) {
|
|
54
63
|
const combinedMethodName = combineMethodName(runtimeModuleName, methodName);
|
|
55
64
|
const method = modulePrototype[methodName];
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
// TODO: find out how to import the Tuple type
|
|
65
|
+
const invocationType = Reflect.getMetadata(runtimeMethodTypeMetadataKey, runtimeModule, methodName);
|
|
66
|
+
const wrappedMethod = Reflect.apply(toWrappedMethod, runtimeModule, [methodName, method, { invocationType }]);
|
|
59
67
|
const privateInputs = Reflect.getMetadata("design:paramtypes", runtimeModule, methodName);
|
|
60
68
|
return {
|
|
61
69
|
...allModuleMethods,
|
|
@@ -72,33 +80,78 @@ export class RuntimeZkProgrammable extends ZkProgrammable {
|
|
|
72
80
|
...moduleMethods,
|
|
73
81
|
};
|
|
74
82
|
}, {});
|
|
75
|
-
const sortedRuntimeMethods = Object.fromEntries(
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
83
|
+
const sortedRuntimeMethods = Object.fromEntries(Object.entries(runtimeMethods).sort());
|
|
84
|
+
const splitRuntimeMethods = () => {
|
|
85
|
+
const buckets = [];
|
|
86
|
+
Object.entries(sortedRuntimeMethods).forEach(async ([methodName, method]) => {
|
|
87
|
+
let methodAdded = false;
|
|
88
|
+
for (const bucket of buckets) {
|
|
89
|
+
if (buckets.length === 0) {
|
|
90
|
+
const record = {};
|
|
91
|
+
record[methodName] = method;
|
|
92
|
+
buckets.push(record);
|
|
93
|
+
methodAdded = true;
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
else if (Object.keys(bucket).length <=
|
|
97
|
+
MAXIMUM_METHODS_PER_ZK_PROGRAM - 1) {
|
|
98
|
+
bucket[methodName] = method;
|
|
99
|
+
methodAdded = true;
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
if (!methodAdded) {
|
|
104
|
+
const record = {};
|
|
105
|
+
record[methodName] = method;
|
|
106
|
+
buckets.push(record);
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
return buckets;
|
|
92
110
|
};
|
|
111
|
+
return splitRuntimeMethods().map((bucket, index) => {
|
|
112
|
+
const name = `RuntimeProgram-${index}`;
|
|
113
|
+
const wrappedBucket = Object.fromEntries(Object.entries(bucket).map(([methodName, methodDef]) => [
|
|
114
|
+
methodName,
|
|
115
|
+
{
|
|
116
|
+
privateInputs: methodDef.privateInputs,
|
|
117
|
+
method: async (...args) => {
|
|
118
|
+
const publicOutput = await methodDef.method(...args);
|
|
119
|
+
return { publicOutput };
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
]));
|
|
123
|
+
const program = ZkProgram({
|
|
124
|
+
name,
|
|
125
|
+
publicOutput: MethodPublicOutput,
|
|
126
|
+
methods: wrappedBucket,
|
|
127
|
+
});
|
|
128
|
+
const SelfProof = ZkProgram.Proof(program);
|
|
129
|
+
const methods = Object.keys(bucket).reduce((boundMethods, methodName) => {
|
|
130
|
+
boundMethods[methodName] = program[methodName].bind(program);
|
|
131
|
+
return boundMethods;
|
|
132
|
+
}, {});
|
|
133
|
+
return {
|
|
134
|
+
name,
|
|
135
|
+
compile: program.compile.bind(program),
|
|
136
|
+
verify: program.verify.bind(program),
|
|
137
|
+
analyzeMethods: program.analyzeMethods.bind(program),
|
|
138
|
+
Proof: SelfProof,
|
|
139
|
+
methods,
|
|
140
|
+
};
|
|
141
|
+
});
|
|
93
142
|
}
|
|
94
143
|
}
|
|
95
144
|
/**
|
|
96
145
|
* Wrapper for an application specific runtime, which helps orchestrate
|
|
97
146
|
* runtime modules into an interoperable runtime.
|
|
98
147
|
*/
|
|
99
|
-
let Runtime = Runtime_1 = class Runtime extends ModuleContainer {
|
|
148
|
+
export let Runtime = Runtime_1 = class Runtime extends ModuleContainer {
|
|
100
149
|
static from(definition) {
|
|
101
|
-
return
|
|
150
|
+
return class RuntimeScoped extends Runtime_1 {
|
|
151
|
+
constructor() {
|
|
152
|
+
super(definition);
|
|
153
|
+
}
|
|
154
|
+
};
|
|
102
155
|
}
|
|
103
156
|
/**
|
|
104
157
|
* Creates a new Runtime from the provided config
|
|
@@ -107,29 +160,25 @@ let Runtime = Runtime_1 = class Runtime extends ModuleContainer {
|
|
|
107
160
|
*/
|
|
108
161
|
constructor(definition) {
|
|
109
162
|
super(definition);
|
|
110
|
-
// eslint-disable-next-line no-warning-comments
|
|
111
|
-
// TODO DI
|
|
112
|
-
this.stateServiceProviderInstance = new StateServiceProvider(this.definition.state);
|
|
113
163
|
this.definition = definition;
|
|
114
164
|
this.zkProgrammable = new RuntimeZkProgrammable(this);
|
|
115
|
-
// this.registerDependencyFactories([MethodIdFactory]);
|
|
116
165
|
}
|
|
117
|
-
// eslint-disable-next-line no-warning-comments
|
|
118
166
|
// TODO Remove after changing DFs to type-based approach
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
});
|
|
123
|
-
this.registerDependencyFactories([MethodIdFactory]);
|
|
167
|
+
create(childContainerProvider) {
|
|
168
|
+
super.create(childContainerProvider);
|
|
169
|
+
this.useDependencyFactory(MethodIdFactory);
|
|
124
170
|
}
|
|
125
|
-
get
|
|
126
|
-
return this.container.resolve("
|
|
171
|
+
get areProofsEnabled() {
|
|
172
|
+
return this.container.resolve("AreProofsEnabled");
|
|
173
|
+
}
|
|
174
|
+
get stateServiceProvider() {
|
|
175
|
+
return this.container.resolve("StateServiceProvider");
|
|
127
176
|
}
|
|
128
177
|
get stateService() {
|
|
129
|
-
return this.
|
|
178
|
+
return this.stateServiceProvider.stateService;
|
|
130
179
|
}
|
|
131
|
-
get
|
|
132
|
-
return this.
|
|
180
|
+
get methodIdResolver() {
|
|
181
|
+
return this.container.resolve("MethodIdResolver");
|
|
133
182
|
}
|
|
134
183
|
/**
|
|
135
184
|
* @returns The dependency injection container of this runtime
|
|
@@ -142,17 +191,14 @@ let Runtime = Runtime_1 = class Runtime extends ModuleContainer {
|
|
|
142
191
|
* Encoding: "stringToField(module.name) << 128 + stringToField(method-name)"
|
|
143
192
|
*/
|
|
144
193
|
getMethodById(methodId) {
|
|
145
|
-
const methodDescriptor = this.
|
|
146
|
-
.resolve("MethodIdResolver")
|
|
147
|
-
.getMethodNameFromId(methodId);
|
|
194
|
+
const methodDescriptor = this.methodIdResolver.getMethodNameFromId(methodId);
|
|
148
195
|
if (methodDescriptor === undefined) {
|
|
149
196
|
return undefined;
|
|
150
197
|
}
|
|
151
198
|
const [moduleName, methodName] = methodDescriptor;
|
|
152
|
-
this.
|
|
199
|
+
this.assertIsValidModuleName(moduleName);
|
|
153
200
|
const module = this.resolve(moduleName);
|
|
154
|
-
// eslint-disable-next-line
|
|
155
|
-
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions,@typescript-eslint/no-unsafe-member-access
|
|
201
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
156
202
|
const method = module[methodName];
|
|
157
203
|
if (method === undefined) {
|
|
158
204
|
throw errors.methodNotFound(`${moduleName}.${methodName}`);
|
|
@@ -169,18 +215,27 @@ let Runtime = Runtime_1 = class Runtime extends ModuleContainer {
|
|
|
169
215
|
*/
|
|
170
216
|
decorateModule(moduleName, containedModule) {
|
|
171
217
|
containedModule.name = moduleName;
|
|
172
|
-
containedModule.
|
|
218
|
+
containedModule.parent = this;
|
|
173
219
|
super.decorateModule(moduleName, containedModule);
|
|
174
220
|
}
|
|
175
221
|
/**
|
|
176
222
|
* @returns A list of names of all the registered module names
|
|
177
223
|
*/
|
|
178
224
|
get runtimeModuleNames() {
|
|
179
|
-
return
|
|
225
|
+
return this.moduleNames;
|
|
226
|
+
}
|
|
227
|
+
async compile(registry) {
|
|
228
|
+
const context = container.resolve(RuntimeMethodExecutionContext);
|
|
229
|
+
context.setup({
|
|
230
|
+
transaction: RuntimeTransaction.dummyTransaction(),
|
|
231
|
+
networkState: NetworkState.empty(),
|
|
232
|
+
});
|
|
233
|
+
return await this.zkProgrammable.compile(registry);
|
|
180
234
|
}
|
|
181
235
|
};
|
|
182
236
|
Runtime = Runtime_1 = __decorate([
|
|
183
237
|
injectable(),
|
|
184
238
|
__metadata("design:paramtypes", [Object])
|
|
185
239
|
], Runtime);
|
|
186
|
-
|
|
240
|
+
/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-argument */
|
|
241
|
+
//# 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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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AreProofsEnabled, WithZkProgrammable } from "@proto-kit/common";
|
|
2
|
+
import { MethodPublicOutput, SimpleAsyncStateService, StateServiceProvider } from "@proto-kit/protocol";
|
|
3
|
+
import { MethodIdResolver } from "./MethodIdResolver";
|
|
4
|
+
export interface RuntimeEnvironment extends WithZkProgrammable<undefined, MethodPublicOutput> {
|
|
5
|
+
get areProofsEnabled(): AreProofsEnabled | undefined;
|
|
6
|
+
get stateService(): SimpleAsyncStateService;
|
|
7
|
+
get stateServiceProvider(): StateServiceProvider;
|
|
8
|
+
get methodIdResolver(): MethodIdResolver;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=RuntimeEnvironment.d.ts.map
|
|
@@ -0,0 +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,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":""}
|
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
import { ConfigurableModule, Presets } from "@proto-kit/common";
|
|
2
|
-
import { NetworkState, RuntimeTransaction } from "@proto-kit/protocol";
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
import { ConfigurableModule, NoConfig, Presets } from "@proto-kit/common";
|
|
2
|
+
import { NetworkState, RuntimeTransaction, RuntimeMethodExecutionData } from "@proto-kit/protocol";
|
|
3
|
+
import { FlexibleProvablePure, Provable, Bool } from "o1js";
|
|
4
|
+
import { OutgoingMessages, OutgoingMessagesRecord } from "../messages/OutgoingMessages";
|
|
5
|
+
import { RuntimeEnvironment } from "./RuntimeEnvironment";
|
|
6
|
+
type EventRecord = Record<string, FlexibleProvablePure<any>>;
|
|
7
|
+
type InferProvable<T extends FlexibleProvablePure<any>> = T extends Provable<infer U> ? U : never;
|
|
8
|
+
export declare class RuntimeEvents<Events extends EventRecord> {
|
|
9
|
+
private readonly events;
|
|
10
|
+
constructor(events: Events);
|
|
11
|
+
emitIf<Key extends keyof Events>(condition: Bool, eventName: Key, event: InferProvable<Events[Key]>): void;
|
|
12
|
+
emit<Key extends keyof Events>(eventName: Key, event: InferProvable<Events[Key]>): void;
|
|
12
13
|
}
|
|
13
14
|
/**
|
|
14
15
|
* Base class for runtime modules providing the necessary utilities.
|
|
15
16
|
*/
|
|
16
|
-
export declare class RuntimeModule<Config> extends ConfigurableModule<Config> {
|
|
17
|
+
export declare class RuntimeModule<Config = NoConfig> extends ConfigurableModule<Config> {
|
|
17
18
|
static presets: Presets<unknown>;
|
|
18
19
|
/**
|
|
19
20
|
* Holds all method names that are callable throw transactions
|
|
@@ -26,11 +27,13 @@ export declare class RuntimeModule<Config> extends ConfigurableModule<Config> {
|
|
|
26
27
|
*/
|
|
27
28
|
isRuntimeModule: boolean;
|
|
28
29
|
name?: string;
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
parent?: RuntimeEnvironment;
|
|
31
|
+
events?: RuntimeEvents<any>;
|
|
32
|
+
messages?: OutgoingMessages<OutgoingMessagesRecord>;
|
|
31
33
|
constructor();
|
|
32
|
-
|
|
34
|
+
getInputs(): RuntimeMethodExecutionData;
|
|
33
35
|
get transaction(): RuntimeTransaction;
|
|
34
36
|
get network(): NetworkState;
|
|
35
37
|
}
|
|
38
|
+
export {};
|
|
36
39
|
//# sourceMappingURL=RuntimeModule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuntimeModule.d.ts","sourceRoot":"","sources":["../../src/runtime/RuntimeModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"RuntimeModule.d.ts","sourceRoot":"","sources":["../../src/runtime/RuntimeModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE1E,OAAO,EACL,YAAY,EACZ,kBAAkB,EAElB,0BAA0B,EAE3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5D,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAM1D,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC;AAE7D,KAAK,aAAa,CAAC,CAAC,SAAS,oBAAoB,CAAC,GAAG,CAAC,IACpD,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAE1C,qBAAa,aAAa,CAAC,MAAM,SAAS,WAAW;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAE3C,MAAM,CAAC,GAAG,SAAS,MAAM,MAAM,EACpC,SAAS,EAAE,IAAI,EACf,SAAS,EAAE,GAAG,EACd,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAgB5B,IAAI,CAAC,GAAG,SAAS,MAAM,MAAM,EAClC,SAAS,EAAE,GAAG,EACd,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;CAIpC;AAED;;GAEG;AACH,qBACa,aAAa,CACxB,MAAM,GAAG,QAAQ,CACjB,SAAQ,kBAAkB,CAAC,MAAM,CAAC;IAClC,OAAc,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAM;IAE7C;;OAEG;IACH,SAAgB,kBAAkB,EAAE,MAAM,EAAE,CAAM;IAElD;;;;OAIG;IACI,eAAe,UAAQ;IAEvB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAE5B,MAAM,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,CAAa;IAExC,QAAQ,CAAC,EAAE,gBAAgB,CAAC,sBAAsB,CAAC,CAAa;;IAYhE,SAAS,IAAI,0BAA0B;IAa9C,IAAW,WAAW,IAAI,kBAAkB,CAE3C;IAED,IAAW,OAAO,IAAI,YAAY,CAEjC;CACF"}
|
|
@@ -9,15 +9,36 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
};
|
|
10
10
|
import { ConfigurableModule } from "@proto-kit/common";
|
|
11
11
|
import { container, injectable } from "tsyringe";
|
|
12
|
-
import { RuntimeMethodExecutionContext, } from "
|
|
12
|
+
import { RuntimeMethodExecutionContext, RuntimeMethodExecutionDataStruct, } from "@proto-kit/protocol";
|
|
13
|
+
import { Provable, Bool } from "o1js";
|
|
13
14
|
import { runtimeMethodNamesMetadataKey } from "../method/runtimeMethod";
|
|
14
15
|
const errors = {
|
|
15
16
|
inputDataNotSet: () => new Error("Input data for runtime execution not set"),
|
|
16
17
|
};
|
|
18
|
+
export class RuntimeEvents {
|
|
19
|
+
constructor(events) {
|
|
20
|
+
this.events = events;
|
|
21
|
+
}
|
|
22
|
+
emitIf(condition, eventName, event) {
|
|
23
|
+
if (this.events === undefined) {
|
|
24
|
+
throw new Error("'events' property not defined, make sure to define the event types on your runtimemodule");
|
|
25
|
+
}
|
|
26
|
+
const eventType = this.events[eventName];
|
|
27
|
+
if (typeof eventName !== "string") {
|
|
28
|
+
throw new Error("Only string");
|
|
29
|
+
}
|
|
30
|
+
return container
|
|
31
|
+
.resolve(RuntimeMethodExecutionContext)
|
|
32
|
+
.addEvent(eventType, event, eventName, condition);
|
|
33
|
+
}
|
|
34
|
+
emit(eventName, event) {
|
|
35
|
+
this.emitIf(Bool(true), eventName, event);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
17
38
|
/**
|
|
18
39
|
* Base class for runtime modules providing the necessary utilities.
|
|
19
40
|
*/
|
|
20
|
-
let RuntimeModule = class RuntimeModule extends ConfigurableModule {
|
|
41
|
+
export let RuntimeModule = class RuntimeModule extends ConfigurableModule {
|
|
21
42
|
constructor() {
|
|
22
43
|
super();
|
|
23
44
|
/**
|
|
@@ -30,16 +51,20 @@ let RuntimeModule = class RuntimeModule extends ConfigurableModule {
|
|
|
30
51
|
* one non-optional property in this class to make the typechecking work.
|
|
31
52
|
*/
|
|
32
53
|
this.isRuntimeModule = true;
|
|
54
|
+
this.events = undefined;
|
|
55
|
+
this.messages = undefined;
|
|
33
56
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
34
57
|
const methodNames = Reflect.getMetadata(runtimeMethodNamesMetadataKey, this);
|
|
35
58
|
this.runtimeMethodNames = methodNames ?? [];
|
|
36
59
|
}
|
|
37
60
|
getInputs() {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
61
|
+
return Provable.witness(RuntimeMethodExecutionDataStruct, () => {
|
|
62
|
+
const { input } = container.resolve(RuntimeMethodExecutionContext);
|
|
63
|
+
if (input === undefined) {
|
|
64
|
+
throw errors.inputDataNotSet();
|
|
65
|
+
}
|
|
66
|
+
return input;
|
|
67
|
+
});
|
|
43
68
|
}
|
|
44
69
|
get transaction() {
|
|
45
70
|
return this.getInputs().transaction;
|
|
@@ -53,4 +78,4 @@ RuntimeModule = __decorate([
|
|
|
53
78
|
injectable(),
|
|
54
79
|
__metadata("design:paramtypes", [])
|
|
55
80
|
], RuntimeModule);
|
|
56
|
-
|
|
81
|
+
//# 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;AAQxE,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;IAuBlC;QACE,KAAK,EAAE,CAAC;QArBV;;WAEG;QACa,uBAAkB,GAAa,EAAE,CAAC;QAElD;;;;WAIG;QACI,oBAAe,GAAG,IAAI,CAAC;QAMvB,WAAM,GAAwB,SAAS,CAAC;QAExC,aAAQ,GAA8C,SAAS,CAAC;QAIrE,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;;AAnDa,qBAAO,GAAqB,EAAE,AAAvB,CAAwB;AAHlC,aAAa;IADzB,UAAU,EAAE;;GACA,aAAa,CAuDzB"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { Field } from "
|
|
2
|
-
|
|
3
|
-
get: (key: Field) => Field[] | undefined;
|
|
4
|
-
set: (key: Field, value: Field[] | undefined) => void;
|
|
5
|
-
}
|
|
1
|
+
import { Field } from "o1js";
|
|
2
|
+
import { SimpleAsyncStateService } from "@proto-kit/protocol";
|
|
6
3
|
/**
|
|
7
|
-
* Naive implementation of
|
|
4
|
+
* Naive implementation of an in-memory variant of the StateService interface
|
|
8
5
|
*/
|
|
9
|
-
export declare class InMemoryStateService implements
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
export declare class InMemoryStateService implements SimpleAsyncStateService {
|
|
7
|
+
/**
|
|
8
|
+
* This mapping container null values if the specific entry has been deleted.
|
|
9
|
+
* This is used by the CachedState service to keep track of deletions
|
|
10
|
+
*/
|
|
11
|
+
values: Record<string, Field[] | null>;
|
|
12
|
+
get(key: Field): Promise<Field[] | undefined>;
|
|
13
|
+
set(key: Field, value: Field[] | undefined): Promise<void>;
|
|
13
14
|
}
|
|
14
15
|
//# sourceMappingURL=InMemoryStateService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InMemoryStateService.d.ts","sourceRoot":"","sources":["../../src/state/InMemoryStateService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"InMemoryStateService.d.ts","sourceRoot":"","sources":["../../src/state/InMemoryStateService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D;;GAEG;AACH,qBAAa,oBAAqB,YAAW,uBAAuB;IAClE;;;OAGG;IACI,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,CAAM;IAEtC,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,SAAS,CAAC;IAI7C,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,SAAS;CAOxD"}
|
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Naive implementation of
|
|
2
|
+
* Naive implementation of an in-memory variant of the StateService interface
|
|
3
3
|
*/
|
|
4
4
|
export class InMemoryStateService {
|
|
5
5
|
constructor() {
|
|
6
|
+
/**
|
|
7
|
+
* This mapping container null values if the specific entry has been deleted.
|
|
8
|
+
* This is used by the CachedState service to keep track of deletions
|
|
9
|
+
*/
|
|
6
10
|
this.values = {};
|
|
7
11
|
}
|
|
8
|
-
get(key) {
|
|
9
|
-
return this.values[key.toString()];
|
|
12
|
+
async get(key) {
|
|
13
|
+
return this.values[key.toString()] ?? undefined;
|
|
10
14
|
}
|
|
11
|
-
set(key, value) {
|
|
12
|
-
if (value === undefined
|
|
13
|
-
|
|
14
|
-
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
|
|
15
|
-
delete this.values[key.toString()];
|
|
15
|
+
async set(key, value) {
|
|
16
|
+
if (value === undefined) {
|
|
17
|
+
this.values[key.toString()] = null;
|
|
16
18
|
}
|
|
17
19
|
else {
|
|
18
20
|
this.values[key.toString()] = value;
|
|
19
21
|
}
|
|
20
22
|
}
|
|
21
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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorator.d.ts","sourceRoot":"","sources":["../../src/state/decorator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"decorator.d.ts","sourceRoot":"","sources":["../../src/state/decorator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAgBjE;;;GAGG;AACH,wBAAgB,KAAK,mGAGJ,MAAM,UAmCtB"}
|