@proto-kit/common 0.1.1-develop.1088 → 0.1.1-develop.1313
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/compiling/AtomicCompileHelper.d.ts +13 -0
- package/dist/compiling/AtomicCompileHelper.d.ts.map +1 -0
- package/dist/compiling/AtomicCompileHelper.js +40 -0
- package/dist/compiling/AtomicCompileHelper.js.map +1 -0
- package/dist/compiling/CompilableModule.d.ts +6 -0
- package/dist/compiling/CompilableModule.d.ts.map +1 -0
- package/dist/compiling/CompilableModule.js +2 -0
- package/dist/compiling/CompilableModule.js.map +1 -0
- package/dist/compiling/CompileRegistry.d.ts +26 -0
- package/dist/compiling/CompileRegistry.d.ts.map +1 -0
- package/dist/compiling/CompileRegistry.js +68 -0
- package/dist/compiling/CompileRegistry.js.map +1 -0
- package/dist/compiling/services/ChildVerificationKeyService.d.ts +10 -0
- package/dist/compiling/services/ChildVerificationKeyService.d.ts.map +1 -0
- package/dist/compiling/services/ChildVerificationKeyService.js +27 -0
- package/dist/compiling/services/ChildVerificationKeyService.js.map +1 -0
- package/dist/config/ChildContainerCreatable.js +1 -0
- package/dist/config/ChildContainerCreatable.js.map +1 -0
- package/dist/config/ChildContainerProvider.js +1 -0
- package/dist/config/ChildContainerProvider.js.map +1 -0
- package/dist/config/ConfigurableModule.js +1 -0
- package/dist/config/ConfigurableModule.js.map +1 -0
- package/dist/config/ModuleContainer.d.ts +1 -0
- package/dist/config/ModuleContainer.d.ts.map +1 -1
- package/dist/config/ModuleContainer.js +14 -3
- package/dist/config/ModuleContainer.js.map +1 -0
- package/dist/config/injectAlias.d.ts +18 -0
- package/dist/config/injectAlias.d.ts.map +1 -0
- package/dist/config/injectAlias.js +47 -0
- package/dist/config/injectAlias.js.map +1 -0
- package/dist/dependencyFactory/DependencyFactory.js +1 -0
- package/dist/dependencyFactory/DependencyFactory.js.map +1 -0
- package/dist/dependencyFactory/injectOptional.js +1 -0
- package/dist/dependencyFactory/injectOptional.js.map +1 -0
- package/dist/dummyVerificationKey.d.ts +3 -0
- package/dist/dummyVerificationKey.d.ts.map +1 -0
- package/dist/dummyVerificationKey.js +8 -0
- package/dist/dummyVerificationKey.js.map +1 -0
- package/dist/events/EventEmitter.js +1 -0
- package/dist/events/EventEmitter.js.map +1 -0
- package/dist/events/EventEmitterProxy.d.ts +1 -0
- package/dist/events/EventEmitterProxy.d.ts.map +1 -1
- package/dist/events/EventEmitterProxy.js +12 -0
- package/dist/events/EventEmitterProxy.js.map +1 -0
- package/dist/events/EventEmittingComponent.d.ts +3 -0
- package/dist/events/EventEmittingComponent.d.ts.map +1 -1
- package/dist/events/EventEmittingComponent.js +1 -0
- package/dist/events/EventEmittingComponent.js.map +1 -0
- package/dist/events/ReplayingSingleUseEventEmitter.d.ts +17 -0
- package/dist/events/ReplayingSingleUseEventEmitter.d.ts.map +1 -0
- package/dist/events/ReplayingSingleUseEventEmitter.js +34 -0
- package/dist/events/ReplayingSingleUseEventEmitter.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/log.d.ts +17 -0
- package/dist/log.d.ts.map +1 -1
- package/dist/log.js +40 -1
- package/dist/log.js.map +1 -0
- package/dist/trees/InMemoryMerkleTreeStorage.js +1 -0
- package/dist/trees/InMemoryMerkleTreeStorage.js.map +1 -0
- package/dist/trees/MerkleTreeStore.js +1 -0
- package/dist/trees/MerkleTreeStore.js.map +1 -0
- package/dist/trees/MockAsyncMerkleStore.js +1 -0
- package/dist/trees/MockAsyncMerkleStore.js.map +1 -0
- package/dist/trees/RollupMerkleTree.js +1 -0
- package/dist/trees/RollupMerkleTree.js.map +1 -0
- package/dist/trees/VirtualMerkleTreeStore.js +1 -0
- package/dist/trees/VirtualMerkleTreeStore.js.map +1 -0
- package/dist/types.d.ts +2 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +13 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +40 -0
- package/dist/utils.js.map +1 -0
- package/dist/zkProgrammable/ProvableMethodExecutionContext.js +1 -0
- package/dist/zkProgrammable/ProvableMethodExecutionContext.js.map +1 -0
- package/dist/zkProgrammable/ZkProgrammable.d.ts +6 -5
- package/dist/zkProgrammable/ZkProgrammable.d.ts.map +1 -1
- package/dist/zkProgrammable/ZkProgrammable.js +24 -12
- package/dist/zkProgrammable/ZkProgrammable.js.map +1 -0
- package/dist/zkProgrammable/provableMethod.d.ts.map +1 -1
- package/dist/zkProgrammable/provableMethod.js +11 -13
- package/dist/zkProgrammable/provableMethod.js.map +1 -0
- package/jest.config.cjs +12 -1
- package/package.json +4 -4
- package/src/compiling/AtomicCompileHelper.ts +62 -0
- package/src/compiling/CompilableModule.ts +6 -0
- package/src/compiling/CompileRegistry.ts +78 -0
- package/src/compiling/services/ChildVerificationKeyService.ts +26 -0
- package/src/config/ModuleContainer.ts +20 -5
- package/src/config/injectAlias.ts +70 -0
- package/src/dummyVerificationKey.ts +10 -0
- package/src/events/EventEmitterProxy.ts +27 -3
- package/src/events/EventEmittingComponent.ts +4 -0
- package/src/events/ReplayingSingleUseEventEmitter.ts +42 -0
- package/src/index.ts +6 -0
- package/src/log.ts +47 -1
- package/src/types.ts +10 -1
- package/src/utils.ts +53 -2
- package/src/zkProgrammable/ZkProgrammable.ts +33 -13
- package/src/zkProgrammable/provableMethod.ts +15 -14
- package/test/config/ModuleContainer.test.ts +45 -2
- package/test/config/injectAlias.test.ts +28 -0
- package/test/zkProgrammable/ZkProgrammable.test.ts +7 -7
- package/dist/test/equalProvable.d.ts +0 -20
- package/dist/test/equalProvable.d.ts.map +0 -1
- package/dist/test/equalProvable.js +0 -13
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AreProofsEnabled, CompileArtifact } from "../zkProgrammable/ZkProgrammable";
|
|
2
|
+
export type ArtifactRecord = Record<string, CompileArtifact>;
|
|
3
|
+
export type CompileTarget = {
|
|
4
|
+
name: string;
|
|
5
|
+
compile: () => Promise<CompileArtifact>;
|
|
6
|
+
};
|
|
7
|
+
export declare class AtomicCompileHelper {
|
|
8
|
+
private readonly areProofsEnabled;
|
|
9
|
+
constructor(areProofsEnabled: AreProofsEnabled);
|
|
10
|
+
private compilationPromises;
|
|
11
|
+
compileContract(contract: CompileTarget, overrideProofsEnabled?: boolean): Promise<CompileArtifact>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=AtomicCompileHelper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AtomicCompileHelper.d.ts","sourceRoot":"","sources":["../../src/compiling/AtomicCompileHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,eAAe,EAEhB,MAAM,kCAAkC,CAAC;AAK1C,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAE7D,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,CAAC;CACzC,CAAC;AAEF,qBAAa,mBAAmB;IACX,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAAhB,gBAAgB,EAAE,gBAAgB;IAEtE,OAAO,CAAC,mBAAmB,CAEpB;IAEM,eAAe,CAC1B,QAAQ,EAAE,aAAa,EACvB,qBAAqB,CAAC,EAAE,OAAO,GAC9B,OAAO,CAAC,eAAe,CAAC;CAmC5B"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { MOCK_VERIFICATION_KEY, } from "../zkProgrammable/ZkProgrammable";
|
|
2
|
+
import { isSubtypeOfName } from "../utils";
|
|
3
|
+
import { log } from "../log";
|
|
4
|
+
export class AtomicCompileHelper {
|
|
5
|
+
constructor(areProofsEnabled) {
|
|
6
|
+
this.areProofsEnabled = areProofsEnabled;
|
|
7
|
+
this.compilationPromises = {};
|
|
8
|
+
}
|
|
9
|
+
async compileContract(contract, overrideProofsEnabled) {
|
|
10
|
+
let newPromise = false;
|
|
11
|
+
const { name } = contract;
|
|
12
|
+
if (this.compilationPromises[name] === undefined) {
|
|
13
|
+
const proofsEnabled = overrideProofsEnabled ?? this.areProofsEnabled.areProofsEnabled;
|
|
14
|
+
// We only care about proofs enabled here if it's a contract, because
|
|
15
|
+
// in all other cases, ZkProgrammable already handles this switch, and we
|
|
16
|
+
// want to preserve the artifact layout (which might be more than one
|
|
17
|
+
// entry for ZkProgrammables)
|
|
18
|
+
if (proofsEnabled ||
|
|
19
|
+
!isSubtypeOfName(
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
21
|
+
contract, "SmartContract")) {
|
|
22
|
+
log.time(`Compiling ${name}`);
|
|
23
|
+
this.compilationPromises[name] = contract.compile();
|
|
24
|
+
newPromise = true;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
log.trace(`Compiling ${name} - mock`);
|
|
28
|
+
this.compilationPromises[name] = Promise.resolve({
|
|
29
|
+
verificationKey: MOCK_VERIFICATION_KEY,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
const result = await this.compilationPromises[name];
|
|
34
|
+
if (newPromise) {
|
|
35
|
+
log.timeEnd.info(`Compiling ${name}`);
|
|
36
|
+
}
|
|
37
|
+
return result;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=AtomicCompileHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AtomicCompileHelper.js","sourceRoot":"","sources":["../../src/compiling/AtomicCompileHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,qBAAqB,GACtB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAS7B,MAAM,OAAO,mBAAmB;IAC9B,YAAoC,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAE9D,wBAAmB,GAEvB,EAAE,CAAC;IAJkE,CAAC;IAMnE,KAAK,CAAC,eAAe,CAC1B,QAAuB,EACvB,qBAA+B;QAE/B,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;QAC1B,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;YAChD,MAAM,aAAa,GACjB,qBAAqB,IAAI,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC;YAElE,qEAAqE;YACrE,yEAAyE;YACzE,qEAAqE;YACrE,6BAA6B;YAC7B,IACE,aAAa;gBACb,CAAC,eAAe;gBACd,yEAAyE;gBACzE,QAAsC,EACtC,eAAe,CAChB,EACD;gBACA,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;gBAC9B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACpD,UAAU,GAAG,IAAI,CAAC;aACnB;iBAAM;gBACL,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,SAAS,CAAC,CAAC;gBACtC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;oBAC/C,eAAe,EAAE,qBAAqB;iBACvC,CAAC,CAAC;aACJ;SACF;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,UAAU,EAAE;YACd,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;SACvC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CompileRegistry } from "./CompileRegistry";
|
|
2
|
+
import type { ArtifactRecord } from "./AtomicCompileHelper";
|
|
3
|
+
export interface CompilableModule {
|
|
4
|
+
compile(registry: CompileRegistry): Promise<ArtifactRecord | void>;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=CompilableModule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CompilableModule.d.ts","sourceRoot":"","sources":["../../src/compiling/CompilableModule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;CACpE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CompilableModule.js","sourceRoot":"","sources":["../../src/compiling/CompilableModule.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { AreProofsEnabled, CompileArtifact } from "../zkProgrammable/ZkProgrammable";
|
|
2
|
+
import { ArtifactRecord, CompileTarget } from "./AtomicCompileHelper";
|
|
3
|
+
/**
|
|
4
|
+
* The CompileRegistry compiles "compilable modules"
|
|
5
|
+
* (i.e. zkprograms, contracts or contractmodules)
|
|
6
|
+
* while making sure they don't get compiled twice in the same process in parallel.
|
|
7
|
+
*/
|
|
8
|
+
export declare class CompileRegistry {
|
|
9
|
+
private readonly areProofsEnabled;
|
|
10
|
+
constructor(areProofsEnabled: AreProofsEnabled);
|
|
11
|
+
private compiler;
|
|
12
|
+
private artifacts;
|
|
13
|
+
private inForceProverBlock;
|
|
14
|
+
/**
|
|
15
|
+
* This function forces compilation even if the artifact itself is in the registry.
|
|
16
|
+
* Basically the statement is: The artifact along is not enough, we need to
|
|
17
|
+
* actually have the prover compiled.
|
|
18
|
+
* This is true for non-sideloaded circuit dependencies.
|
|
19
|
+
*/
|
|
20
|
+
forceProverExists(f: (registry: CompileRegistry) => Promise<void>): Promise<void>;
|
|
21
|
+
compile(target: CompileTarget): Promise<CompileArtifact>;
|
|
22
|
+
getArtifact(name: string): CompileArtifact | undefined;
|
|
23
|
+
addArtifactsRaw(artifacts: ArtifactRecord): void;
|
|
24
|
+
getAllArtifacts(): ArtifactRecord;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=CompileRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CompileRegistry.d.ts","sourceRoot":"","sources":["../../src/compiling/CompileRegistry.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gBAAgB,EAChB,eAAe,EAChB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,cAAc,EAEd,aAAa,EACd,MAAM,uBAAuB,CAAC;AAE/B;;;;GAIG;AACH,qBAEa,eAAe;IAGxB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAAhB,gBAAgB,EAAE,gBAAgB;IAKrD,OAAO,CAAC,QAAQ,CAAsB;IAEtC,OAAO,CAAC,SAAS,CAAsB;IAEvC,OAAO,CAAC,kBAAkB,CAAS;IAEnC;;;;;OAKG;IACU,iBAAiB,CAC5B,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC;IAOpC,OAAO,CAAC,MAAM,EAAE,aAAa;IASnC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAUtD,eAAe,CAAC,SAAS,EAAE,cAAc;IAOzC,eAAe;CAGvB"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
+
};
|
|
13
|
+
import { inject, injectable, singleton } from "tsyringe";
|
|
14
|
+
import { AtomicCompileHelper, } from "./AtomicCompileHelper";
|
|
15
|
+
/**
|
|
16
|
+
* The CompileRegistry compiles "compilable modules"
|
|
17
|
+
* (i.e. zkprograms, contracts or contractmodules)
|
|
18
|
+
* while making sure they don't get compiled twice in the same process in parallel.
|
|
19
|
+
*/
|
|
20
|
+
export let CompileRegistry = class CompileRegistry {
|
|
21
|
+
constructor(areProofsEnabled) {
|
|
22
|
+
this.areProofsEnabled = areProofsEnabled;
|
|
23
|
+
this.artifacts = {};
|
|
24
|
+
this.inForceProverBlock = false;
|
|
25
|
+
this.compiler = new AtomicCompileHelper(this.areProofsEnabled);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* This function forces compilation even if the artifact itself is in the registry.
|
|
29
|
+
* Basically the statement is: The artifact along is not enough, we need to
|
|
30
|
+
* actually have the prover compiled.
|
|
31
|
+
* This is true for non-sideloaded circuit dependencies.
|
|
32
|
+
*/
|
|
33
|
+
async forceProverExists(f) {
|
|
34
|
+
this.inForceProverBlock = true;
|
|
35
|
+
await f(this);
|
|
36
|
+
this.inForceProverBlock = false;
|
|
37
|
+
}
|
|
38
|
+
async compile(target) {
|
|
39
|
+
if (this.artifacts[target.name] === undefined || this.inForceProverBlock) {
|
|
40
|
+
const artifact = await this.compiler.compileContract(target);
|
|
41
|
+
this.artifacts[target.name] = artifact;
|
|
42
|
+
return artifact;
|
|
43
|
+
}
|
|
44
|
+
return this.artifacts[target.name];
|
|
45
|
+
}
|
|
46
|
+
getArtifact(name) {
|
|
47
|
+
if (this.artifacts[name] === undefined) {
|
|
48
|
+
throw new Error(`Artifact for ${name} not available, did you compile it via the CompileRegistry?`);
|
|
49
|
+
}
|
|
50
|
+
return this.artifacts[name];
|
|
51
|
+
}
|
|
52
|
+
addArtifactsRaw(artifacts) {
|
|
53
|
+
this.artifacts = {
|
|
54
|
+
...this.artifacts,
|
|
55
|
+
...artifacts,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
getAllArtifacts() {
|
|
59
|
+
return this.artifacts;
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
CompileRegistry = __decorate([
|
|
63
|
+
injectable(),
|
|
64
|
+
singleton(),
|
|
65
|
+
__param(0, inject("AreProofsEnabled")),
|
|
66
|
+
__metadata("design:paramtypes", [Object])
|
|
67
|
+
], CompileRegistry);
|
|
68
|
+
//# sourceMappingURL=CompileRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CompileRegistry.js","sourceRoot":"","sources":["../../src/compiling/CompileRegistry.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAOzD,OAAO,EAEL,mBAAmB,GAEpB,MAAM,uBAAuB,CAAC;AAE/B;;;;GAIG;AAGI,WAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,YAEE,gBAAmD;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAO7C,cAAS,GAAmB,EAAE,CAAC;QAE/B,uBAAkB,GAAG,KAAK,CAAC;QAPjC,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACjE,CAAC;IAQD;;;;;OAKG;IACI,KAAK,CAAC,iBAAiB,CAC5B,CAA+C;QAE/C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;QACd,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IAClC,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,MAAqB;QACxC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACxE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAC7D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;YACvC,OAAO,QAAQ,CAAC;SACjB;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAEM,WAAW,CAAC,IAAY;QAC7B,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;YACtC,MAAM,IAAI,KAAK,CACb,gBAAgB,IAAI,6DAA6D,CAClF,CAAC;SACH;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAEM,eAAe,CAAC,SAAyB;QAC9C,IAAI,CAAC,SAAS,GAAG;YACf,GAAG,IAAI,CAAC,SAAS;YACjB,GAAG,SAAS;SACb,CAAC;IACJ,CAAC;IAEM,eAAe;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CACF,CAAA;AAzDY,eAAe;IAF3B,UAAU,EAAE;IACZ,SAAS,EAAE;IAGP,WAAA,MAAM,CAAC,kBAAkB,CAAC,CAAA;;GAFlB,eAAe,CAyD3B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CompileRegistry } from "../CompileRegistry";
|
|
2
|
+
export declare class ChildVerificationKeyService {
|
|
3
|
+
private compileRegistry?;
|
|
4
|
+
setCompileRegistry(registry: CompileRegistry): void;
|
|
5
|
+
getVerificationKey(name: string): {
|
|
6
|
+
data: string;
|
|
7
|
+
hash: import("o1js/dist/node/lib/provable/field").Field;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=ChildVerificationKeyService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChildVerificationKeyService.d.ts","sourceRoot":"","sources":["../../../src/compiling/services/ChildVerificationKeyService.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,qBAEa,2BAA2B;IACtC,OAAO,CAAC,eAAe,CAAC,CAAkB;IAEnC,kBAAkB,CAAC,QAAQ,EAAE,eAAe;IAI5C,kBAAkB,CAAC,IAAI,EAAE,MAAM;;;;CAYvC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { injectable, Lifecycle, scoped } from "tsyringe";
|
|
8
|
+
export let ChildVerificationKeyService = class ChildVerificationKeyService {
|
|
9
|
+
setCompileRegistry(registry) {
|
|
10
|
+
this.compileRegistry = registry;
|
|
11
|
+
}
|
|
12
|
+
getVerificationKey(name) {
|
|
13
|
+
if (this.compileRegistry === undefined) {
|
|
14
|
+
throw new Error("CompileRegistry hasn't been set yet");
|
|
15
|
+
}
|
|
16
|
+
const artifact = this.compileRegistry.getArtifact(name);
|
|
17
|
+
if (artifact === undefined) {
|
|
18
|
+
throw new Error(`Verification Key for child program ${name} not found in registry`);
|
|
19
|
+
}
|
|
20
|
+
return artifact.verificationKey;
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
ChildVerificationKeyService = __decorate([
|
|
24
|
+
injectable(),
|
|
25
|
+
scoped(Lifecycle.ContainerScoped)
|
|
26
|
+
], ChildVerificationKeyService);
|
|
27
|
+
//# sourceMappingURL=ChildVerificationKeyService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChildVerificationKeyService.js","sourceRoot":"","sources":["../../../src/compiling/services/ChildVerificationKeyService.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAMlD,WAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IAG/B,kBAAkB,CAAC,QAAyB;QACjD,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;IAClC,CAAC;IAEM,kBAAkB,CAAC,IAAY;QACpC,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE;YACtC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;SACxD;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,MAAM,IAAI,KAAK,CACb,sCAAsC,IAAI,wBAAwB,CACnE,CAAC;SACH;QACD,OAAO,QAAQ,CAAC,eAAe,CAAC;IAClC,CAAC;CACF,CAAA;AAnBY,2BAA2B;IAFvC,UAAU,EAAE;IACZ,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC;GACrB,2BAA2B,CAmBvC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChildContainerCreatable.js","sourceRoot":"","sources":["../../src/config/ChildContainerCreatable.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChildContainerProvider.js","sourceRoot":"","sources":["../../src/config/ChildContainerProvider.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigurableModule.js","sourceRoot":"","sources":["../../src/config/ConfigurableModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAKhC,MAAM,MAAM,GAAG;IACb,YAAY,EAAE,CAAC,UAAkB,EAAE,EAAE,CACnC,IAAI,KAAK,CACP,gCAAgC,UAAU,yBAAyB,CACpE;CACJ,CAAC;AAaF;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAS7B,+BAA+B;IAC/B,IAAW,MAAM;QACf,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;YACpC,MAAM,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAClD;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,iBAAiB;IACjB,IAAW,MAAM,CAAC,MAAc;QAC9B,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;IAC9B,CAAC;IAEM,MAAM,CAAC,sBAA8C;QAC1D,IAAI,EAAE,CAAC;IACT,CAAC;CACF"}
|
|
@@ -87,6 +87,7 @@ export declare class ModuleContainer<Modules extends ModulesRecord> extends Conf
|
|
|
87
87
|
assertIsValidModuleName(moduleName: string): asserts moduleName is StringKeyOf<Modules>;
|
|
88
88
|
isValidModuleName(modules: Modules, moduleName: number | string | symbol): moduleName is StringKeyOf<Modules>;
|
|
89
89
|
assertContainerInitialized(container: DependencyContainer | undefined): asserts container is DependencyContainer;
|
|
90
|
+
protected registerAliases(originalToken: string, clas: TypedClass<any>): void;
|
|
90
91
|
/**
|
|
91
92
|
* Register modules into the current container, and registers
|
|
92
93
|
* a respective resolution hook in order to decorate the module
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleContainer.d.ts","sourceRoot":"","sources":["../../src/config/ModuleContainer.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EACL,mBAAmB,EAEnB,cAAc,EAOf,MAAM,UAAU,CAAC;AAIlB,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EACT,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"ModuleContainer.d.ts","sourceRoot":"","sources":["../../src/config/ModuleContainer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import "reflect-metadata";
|
|
2
|
-
import {
|
|
2
|
+
import { instanceCachingFactory, isClassProvider, isFactoryProvider, isTokenProvider, isValueProvider, Lifecycle, } from "tsyringe";
|
|
3
3
|
import log from "loglevel";
|
|
4
4
|
import merge from "lodash/merge";
|
|
5
5
|
import { EventEmitterProxy } from "../events/EventEmitterProxy";
|
|
6
6
|
import { ConfigurableModule, } from "./ConfigurableModule";
|
|
7
|
+
import { getInjectAliases } from "./injectAlias";
|
|
7
8
|
const errors = {
|
|
8
9
|
configNotSetInContainer: (moduleName) => new Error(`Trying to get config of ${moduleName}, but it was not yet set in the module container`),
|
|
9
10
|
onlyValidModuleNames: (moduleName) => new Error(
|
|
@@ -81,6 +82,12 @@ export class ModuleContainer extends ConfigurableModule {
|
|
|
81
82
|
throw errors.dependencyContainerNotSet(this.constructor.name);
|
|
82
83
|
}
|
|
83
84
|
}
|
|
85
|
+
registerAliases(originalToken, clas) {
|
|
86
|
+
const aliases = getInjectAliases(clas);
|
|
87
|
+
aliases.forEach((alias) => this.container.register(alias, {
|
|
88
|
+
useToken: originalToken,
|
|
89
|
+
}));
|
|
90
|
+
}
|
|
84
91
|
/**
|
|
85
92
|
* Register modules into the current container, and registers
|
|
86
93
|
* a respective resolution hook in order to decorate the module
|
|
@@ -96,6 +103,7 @@ export class ModuleContainer extends ConfigurableModule {
|
|
|
96
103
|
const useClass = modules[moduleName];
|
|
97
104
|
this.container.register(moduleName, { useClass }, { lifecycle: Lifecycle.ContainerScoped });
|
|
98
105
|
this.onAfterModuleResolution(moduleName);
|
|
106
|
+
this.registerAliases(moduleName, useClass);
|
|
99
107
|
}
|
|
100
108
|
});
|
|
101
109
|
}
|
|
@@ -212,14 +220,16 @@ export class ModuleContainer extends ConfigurableModule {
|
|
|
212
220
|
// this enables us to have a singletoned factory
|
|
213
221
|
// that returns the same instance for each resolve
|
|
214
222
|
this.container.register(key, {
|
|
215
|
-
useFactory:
|
|
223
|
+
useFactory: instanceCachingFactory(declaration.useFactory),
|
|
216
224
|
});
|
|
217
225
|
}
|
|
218
226
|
else if (isClassProvider(declaration)) {
|
|
219
227
|
this.container.register(key, declaration, {
|
|
220
228
|
lifecycle: Lifecycle.Singleton,
|
|
221
229
|
});
|
|
222
|
-
|
|
230
|
+
this.registerAliases(key,
|
|
231
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
232
|
+
declaration.useClass);
|
|
223
233
|
}
|
|
224
234
|
else if (isTokenProvider(declaration)) {
|
|
225
235
|
this.container.register(key, declaration, {
|
|
@@ -276,3 +286,4 @@ export class ModuleContainer extends ConfigurableModule {
|
|
|
276
286
|
* from the tsyringe DI container
|
|
277
287
|
*/
|
|
278
288
|
ModuleContainer.moduleDecorationFrequency = "Once";
|
|
289
|
+
//# sourceMappingURL=ModuleContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModuleContainer.js","sourceRoot":"","sources":["../../src/config/ModuleContainer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { TypedClass } from "../types";
|
|
2
|
+
export declare const injectAliasMetadataKey = "protokit-inject-alias";
|
|
3
|
+
/**
|
|
4
|
+
* Attaches metadata to the class that the ModuleContainer can pick up
|
|
5
|
+
* and inject this class in the DI container under the specified aliases.
|
|
6
|
+
* This method supports inheritance, therefore also gets aliases defined
|
|
7
|
+
* on superclasses
|
|
8
|
+
*/
|
|
9
|
+
export declare function injectAlias(aliases: string[]): (target: TypedClass<unknown>) => void;
|
|
10
|
+
/**
|
|
11
|
+
* Marks the class to implement a certain interface T, while also attaching
|
|
12
|
+
* a DI-injection alias as metadata, that will be picked up by the ModuleContainer
|
|
13
|
+
* to allow resolving by that interface name
|
|
14
|
+
* @param name The name of the injection alias, convention is to use the same as the name of T
|
|
15
|
+
*/
|
|
16
|
+
export declare function implement<T>(name: string): (target: TypedClass<T>) => void;
|
|
17
|
+
export declare function getInjectAliases(target: TypedClass<unknown>): string[];
|
|
18
|
+
//# sourceMappingURL=injectAlias.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"injectAlias.d.ts","sourceRoot":"","sources":["../../src/config/injectAlias.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,eAAO,MAAM,sBAAsB,0BAA0B,CAAC;AAE9D;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,YAC3B,WAAW,OAAO,CAAC,UA+BpC;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,YAM7B,WAAW,CAAC,CAAC,UAIxB;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE,CAOtE"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export const injectAliasMetadataKey = "protokit-inject-alias";
|
|
2
|
+
/**
|
|
3
|
+
* Attaches metadata to the class that the ModuleContainer can pick up
|
|
4
|
+
* and inject this class in the DI container under the specified aliases.
|
|
5
|
+
* This method supports inheritance, therefore also gets aliases defined
|
|
6
|
+
* on superclasses
|
|
7
|
+
*/
|
|
8
|
+
export function injectAlias(aliases) {
|
|
9
|
+
return (target) => {
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
11
|
+
const superAliases = Reflect.getMetadata(injectAliasMetadataKey,
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
13
|
+
Object.getPrototypeOf(target));
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
15
|
+
const existingAliases = Reflect.getMetadata(injectAliasMetadataKey, target);
|
|
16
|
+
let allAliases = aliases;
|
|
17
|
+
if (superAliases !== undefined) {
|
|
18
|
+
allAliases = allAliases.concat(superAliases);
|
|
19
|
+
}
|
|
20
|
+
if (existingAliases !== undefined) {
|
|
21
|
+
allAliases = allAliases.concat(existingAliases);
|
|
22
|
+
}
|
|
23
|
+
Reflect.defineMetadata(injectAliasMetadataKey, allAliases.filter((value, index, array) => array.indexOf(value) === index), target);
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Marks the class to implement a certain interface T, while also attaching
|
|
28
|
+
* a DI-injection alias as metadata, that will be picked up by the ModuleContainer
|
|
29
|
+
* to allow resolving by that interface name
|
|
30
|
+
* @param name The name of the injection alias, convention is to use the same as the name of T
|
|
31
|
+
*/
|
|
32
|
+
export function implement(name) {
|
|
33
|
+
return (
|
|
34
|
+
/**
|
|
35
|
+
* Check if the target class extends RuntimeModule, while
|
|
36
|
+
* also providing static config presets
|
|
37
|
+
*/
|
|
38
|
+
target) => {
|
|
39
|
+
injectAlias([name])(target);
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export function getInjectAliases(target) {
|
|
43
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
44
|
+
const aliases = Reflect.getMetadata(injectAliasMetadataKey, target);
|
|
45
|
+
return aliases ?? [];
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=injectAlias.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"injectAlias.js","sourceRoot":"","sources":["../../src/config/injectAlias.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,sBAAsB,GAAG,uBAAuB,CAAC;AAE9D;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,OAAiB;IAC3C,OAAO,CAAC,MAA2B,EAAE,EAAE;QACrC,yEAAyE;QACzE,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,CACtC,sBAAsB;QACtB,iEAAiE;QACjE,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CACN,CAAC;QAE1B,yEAAyE;QACzE,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,CACzC,sBAAsB,EACtB,MAAM,CACiB,CAAC;QAE1B,IAAI,UAAU,GAAG,OAAO,CAAC;QAEzB,IAAI,YAAY,KAAK,SAAS,EAAE;YAC9B,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SAC9C;QACD,IAAI,eAAe,KAAK,SAAS,EAAE;YACjC,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;SACjD;QAED,OAAO,CAAC,cAAc,CACpB,sBAAsB,EACtB,UAAU,CAAC,MAAM,CACf,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CACxD,EACD,MAAM,CACP,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAI,IAAY;IACvC,OAAO;IACL;;;OAGG;IACH,MAAqB,EACrB,EAAE;QACF,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAA2B;IAC1D,yEAAyE;IACzE,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CACjC,sBAAsB,EACtB,MAAM,CACK,CAAC;IACd,OAAO,OAAO,IAAI,EAAE,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DependencyFactory.js","sourceRoot":"","sources":["../../src/dependencyFactory/DependencyFactory.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"injectOptional.js","sourceRoot":"","sources":["../../src/dependencyFactory/injectOptional.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EACL,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,SAAS,EACT,MAAM,GACP,MAAM,UAAU,CAAC;AAIlB,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;CAAG,CAAA;AAApB,iBAAiB;IAFtB,UAAU,EAAE;IACZ,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;GAC7B,iBAAiB,CAAG;AAE1B,MAAM,kBAAkB;IACf,SAAS,CACd,QAAwC;QAExC,IAAI,QAAQ,YAAY,iBAAiB,EAAE;YACzC,OAAO,SAAS,CAAC;SAClB;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,cAAc,CAAI,KAAa;IAC7C,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAC3D,OAAO,mBAAmB,CAAC,KAAK,EAAE,CAAA,kBAAqB,CAAA,CAAC,CAAC;AAC3D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dummyVerificationKey.d.ts","sourceRoot":"","sources":["../src/dummyVerificationKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,eAAe,EAAE,MAAM,MAAM,CAAC;AAE9C,wBAAgB,oBAAoB,oBAOnC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Field, VerificationKey } from "o1js";
|
|
2
|
+
export function dummyVerificationKey() {
|
|
3
|
+
return new VerificationKey({
|
|
4
|
+
hash: Field("3392518251768960475377392625298437850623664973002200885669375116181514017494"),
|
|
5
|
+
data: "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",
|
|
6
|
+
});
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=dummyVerificationKey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dummyVerificationKey.js","sourceRoot":"","sources":["../src/dummyVerificationKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAE9C,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,eAAe,CAAC;QACzB,IAAI,EAAE,KAAK,CACT,8EAA8E,CAC/E;QACD,IAAI,EAAE,81EAA81E;KACr2E,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventEmitter.js","sourceRoot":"","sources":["../../src/events/EventEmitter.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,YAAY;IAAzB;QACqB,cAAS,GAA4B,EAAE,CAAC;QAExC,sBAAiB,GAGrB,EAAE,CAAC;IA2CpB,CAAC;IAzCQ,IAAI,CACT,KAAU,EACV,GAAG,UAAuB;QAE1B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,SAAS,KAAK,SAAS,EAAE;YAC3B,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAC7B,QAAQ,CAAC,GAAG,UAAU,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,gBAAgB,EAAE,EAAE;YAClD,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,QAAwD;QACnE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAEM,EAAE,CACP,KAAU,EACV,QAAwC;;QAExC,OAAC,IAAI,CAAC,SAAS,EAAC,KAAK,SAAL,KAAK,IAAM,EAAE,EAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED;;;OAGG;IACI,GAAG,CACR,KAAU,EACV,QAAwC;QAExC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CACnC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,QAAQ,CACtC,CAAC;SACH;IACH,CAAC;CACF"}
|
|
@@ -12,6 +12,7 @@ export type FlattenedContainerEvents<Modules extends ModulesRecord> = FlattenObj
|
|
|
12
12
|
export declare class EventEmitterProxy<Modules extends ModulesRecord> extends EventEmitter<CastToEventsRecord<FlattenedContainerEvents<Modules>>> {
|
|
13
13
|
private readonly container;
|
|
14
14
|
constructor(container: ModuleContainer<Modules>);
|
|
15
|
+
private isEventEmittingContainer;
|
|
15
16
|
private isEventEmitter;
|
|
16
17
|
}
|
|
17
18
|
//# sourceMappingURL=EventEmitterProxy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventEmitterProxy.d.ts","sourceRoot":"","sources":["../../src/events/EventEmitterProxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,aAAa,EACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"EventEmitterProxy.d.ts","sourceRoot":"","sources":["../../src/events/EventEmitterProxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,aAAa,EACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACL,sBAAsB,EAEtB,YAAY,EACb,MAAM,0BAA0B,CAAC;AAElC,MAAM,MAAM,kBAAkB,CAAC,MAAM,IAAI,MAAM,SAAS,YAAY,GAChE,MAAM,GACN,EAAE,CAAC;AAEP,MAAM,MAAM,YAAY,CAAC,UAAU,SAAS,cAAc,IACxD,YAAY,CAAC,UAAU,CAAC,SAAS,sBAAsB,CAAC,MAAM,MAAM,CAAC,GACjE,MAAM,GACN,YAAY,CAAC,UAAU,CAAC,SAAS,eAAe,CAAC,MAAM,aAAa,CAAC,GACnE,kBAAkB,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,GAOlD,YAAY,CAAC;AAErB,MAAM,MAAM,eAAe,CAAC,OAAO,SAAS,aAAa,IAAI;KAC1D,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;CAC1D,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,IACnE,mBAAmB,CAAC,MAAM,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC;AAE5C,MAAM,MAAM,wBAAwB,CAAC,OAAO,SAAS,aAAa,IAChE,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;AAE1C,qBAAa,iBAAiB,CAC5B,OAAO,SAAS,aAAa,CAC7B,SAAQ,YAAY,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC;IAuBvE,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,cAAc;CAOvB"}
|
|
@@ -12,12 +12,24 @@ export class EventEmitterProxy extends EventEmitter {
|
|
|
12
12
|
this.emit(events, ...args);
|
|
13
13
|
});
|
|
14
14
|
}
|
|
15
|
+
if (this.isEventEmittingContainer(module)) {
|
|
16
|
+
module.containerEvents.onAll((events, args) => {
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
18
|
+
this.emit(events, ...args);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
15
21
|
}
|
|
16
22
|
});
|
|
17
23
|
}
|
|
24
|
+
isEventEmittingContainer(module) {
|
|
25
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
26
|
+
const emitter = module.containerEvents;
|
|
27
|
+
return emitter !== undefined && emitter instanceof EventEmitter;
|
|
28
|
+
}
|
|
18
29
|
isEventEmitter(module) {
|
|
19
30
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
20
31
|
const emitter = module.events;
|
|
21
32
|
return emitter !== undefined && emitter instanceof EventEmitter;
|
|
22
33
|
}
|
|
23
34
|
}
|
|
35
|
+
//# sourceMappingURL=EventEmitterProxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventEmitterProxy.js","sourceRoot":"","sources":["../../src/events/EventEmitterProxy.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAkC9C,MAAM,OAAO,iBAEX,SAAQ,YAAmE;IAC3E,YAAoC,SAAmC;QACrE,KAAK,EAAE,CAAC;QAD0B,cAAS,GAAT,SAAS,CAA0B;QAErE,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YAC3C,IACE,SAAS,CAAC,iBAAiB,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,EACrE;gBACA,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC7C,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;oBAC/B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAW,EAAE,IAAW,EAAE,EAAE;wBAC/C,iEAAiE;wBACjE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;oBAC7B,CAAC,CAAC,CAAC;iBACJ;gBACD,IAAI,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE;oBACzC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,MAAW,EAAE,IAAW,EAAE,EAAE;wBACxD,iEAAiE;wBACjE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;oBAC7B,CAAC,CAAC,CAAC;iBACJ;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,wBAAwB,CAC9B,MAAW;QAEX,mEAAmE;QACnE,MAAM,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC;QACvC,OAAO,OAAO,KAAK,SAAS,IAAI,OAAO,YAAY,YAAY,CAAC;IAClE,CAAC;IAEO,cAAc,CACpB,MAAW;QAEX,mEAAmE;QACnE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;QAC9B,OAAO,OAAO,KAAK,SAAS,IAAI,OAAO,YAAY,YAAY,CAAC;IAClE,CAAC;CACF"}
|
|
@@ -3,4 +3,7 @@ export type EventsRecord = Record<string, unknown[]>;
|
|
|
3
3
|
export interface EventEmittingComponent<Events extends EventsRecord> {
|
|
4
4
|
events: EventEmitter<Events>;
|
|
5
5
|
}
|
|
6
|
+
export interface EventEmittingContainer<Events extends EventsRecord> {
|
|
7
|
+
containerEvents: EventEmitter<Events>;
|
|
8
|
+
}
|
|
6
9
|
//# sourceMappingURL=EventEmittingComponent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventEmittingComponent.d.ts","sourceRoot":"","sources":["../../src/events/EventEmittingComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;AAErD,MAAM,WAAW,sBAAsB,CAAC,MAAM,SAAS,YAAY;IACjE,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;CAC9B"}
|
|
1
|
+
{"version":3,"file":"EventEmittingComponent.d.ts","sourceRoot":"","sources":["../../src/events/EventEmittingComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;AAErD,MAAM,WAAW,sBAAsB,CAAC,MAAM,SAAS,YAAY;IACjE,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAsB,CAAC,MAAM,SAAS,YAAY;IACjE,eAAe,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;CACvC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventEmittingComponent.js","sourceRoot":"","sources":["../../src/events/EventEmittingComponent.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { EventsRecord } from "./EventEmittingComponent";
|
|
2
|
+
import { EventEmitter } from "./EventEmitter";
|
|
3
|
+
/**
|
|
4
|
+
* Event Emitter variant that emits a certain event only once to a registered listener.
|
|
5
|
+
* Additionally, if a listener registers to a event that has already been emitted, it
|
|
6
|
+
* re-emits it to said listener.
|
|
7
|
+
* This pattern is especially useful for listening for inclusions of transactions.
|
|
8
|
+
* Those events will only occur once, and listeners could come too late to the party,
|
|
9
|
+
* so we need to make sure they get notified as well in those cases.
|
|
10
|
+
*/
|
|
11
|
+
export declare class ReplayingSingleUseEventEmitter<Events extends EventsRecord> extends EventEmitter<Events> {
|
|
12
|
+
emitted: Partial<Events>;
|
|
13
|
+
emit<Key extends keyof Events>(event: Key, ...parameters: Events[Key]): void;
|
|
14
|
+
onAll(listener: (event: keyof Events, args: unknown[]) => void): void;
|
|
15
|
+
on<Key extends keyof Events>(event: Key, listener: (...args: Events[Key]) => void): void;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=ReplayingSingleUseEventEmitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReplayingSingleUseEventEmitter.d.ts","sourceRoot":"","sources":["../../src/events/ReplayingSingleUseEventEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;;;;;GAOG;AACH,qBAAa,8BAA8B,CACzC,MAAM,SAAS,YAAY,CAC3B,SAAQ,YAAY,CAAC,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAM;IAE9B,IAAI,CAAC,GAAG,SAAS,MAAM,MAAM,EAClC,KAAK,EAAE,GAAG,EACV,GAAG,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC;IAOrB,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI;IAO9D,EAAE,CAAC,GAAG,SAAS,MAAM,MAAM,EAChC,KAAK,EAAE,GAAG,EACV,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI;CAO3C"}
|