@proto-kit/protocol 0.1.1-develop.340 → 0.1.1-develop.456
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/blockmodules/AccountStateModule.d.ts +1 -1
- package/dist/blockmodules/AccountStateModule.d.ts.map +1 -1
- package/dist/blockmodules/BlockHeightHook.d.ts +7 -0
- package/dist/blockmodules/BlockHeightHook.d.ts.map +1 -0
- package/dist/blockmodules/BlockHeightHook.js +16 -0
- package/dist/blockmodules/NoopBlockHook.d.ts +7 -0
- package/dist/blockmodules/NoopBlockHook.d.ts.map +1 -0
- package/dist/blockmodules/NoopBlockHook.js +9 -0
- package/dist/blockmodules/NoopTransactionHook.d.ts +1 -1
- package/dist/blockmodules/NoopTransactionHook.d.ts.map +1 -1
- package/dist/blockmodules/NoopTransactionHook.js +1 -2
- package/dist/hooks/AccountStateHook.d.ts +38 -0
- package/dist/hooks/AccountStateHook.d.ts.map +1 -0
- package/dist/hooks/AccountStateHook.js +36 -0
- package/dist/hooks/BlockHeightHook.d.ts +7 -0
- package/dist/hooks/BlockHeightHook.d.ts.map +1 -0
- package/dist/hooks/BlockHeightHook.js +14 -0
- package/dist/hooks/NoopBlockHook.d.ts +7 -0
- package/dist/hooks/NoopBlockHook.d.ts.map +1 -0
- package/dist/hooks/NoopBlockHook.js +9 -0
- package/dist/hooks/NoopTransactionHook.d.ts +6 -0
- package/dist/hooks/NoopTransactionHook.d.ts.map +1 -0
- package/dist/hooks/NoopTransactionHook.js +4 -0
- package/dist/hooks/TransactionFeeHook.d.ts +16 -0
- package/dist/hooks/TransactionFeeHook.d.ts.map +1 -0
- package/dist/hooks/TransactionFeeHook.js +39 -0
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/model/Option.d.ts +29 -22
- package/dist/model/Option.d.ts.map +1 -1
- package/dist/model/Option.js +51 -45
- package/dist/model/StateTransition.d.ts +4 -2
- package/dist/model/StateTransition.d.ts.map +1 -1
- package/dist/model/StateTransition.js +2 -2
- package/dist/model/network/NetworkState.d.ts +1 -40
- package/dist/model/network/NetworkState.d.ts.map +1 -1
- package/dist/model/network/NetworkState.js +9 -10
- package/dist/protocol/Protocol.d.ts +4 -18
- package/dist/protocol/Protocol.d.ts.map +1 -1
- package/dist/protocol/Protocol.js +20 -9
- package/dist/protocol/ProtocolModule.d.ts +2 -2
- package/dist/protocol/ProtocolModule.d.ts.map +1 -1
- package/dist/protocol/ProtocolModule.js +1 -1
- package/dist/protocol/ProvableBlockHook.d.ts +16 -0
- package/dist/protocol/ProvableBlockHook.d.ts.map +1 -0
- package/dist/protocol/ProvableBlockHook.js +4 -0
- package/dist/protocol/ProvableTransactionHook.d.ts +2 -1
- package/dist/protocol/ProvableTransactionHook.d.ts.map +1 -1
- package/dist/protocol/TransitioningProtocolModule.d.ts +4 -0
- package/dist/protocol/TransitioningProtocolModule.d.ts.map +1 -1
- package/dist/protocol/TransitioningProtocolModule.js +4 -0
- package/dist/prover/block/BlockProvable.d.ts +21 -6
- package/dist/prover/block/BlockProvable.d.ts.map +1 -1
- package/dist/prover/block/BlockProvable.js +3 -1
- package/dist/prover/block/BlockProver.d.ts +9 -4
- package/dist/prover/block/BlockProver.d.ts.map +1 -1
- package/dist/prover/block/BlockProver.js +66 -16
- package/dist/prover/block/BlockTransactionPosition.d.ts +36 -0
- package/dist/prover/block/BlockTransactionPosition.d.ts.map +1 -0
- package/dist/prover/block/BlockTransactionPosition.js +25 -0
- package/dist/prover/statetransition/StateTransitionProver.d.ts +1 -1
- package/dist/prover/statetransition/StateTransitionProver.d.ts.map +1 -1
- package/dist/prover/statetransition/StateTransitionProver.js +4 -5
- package/dist/prover/statetransition/StateTransitionWitnessProvider.d.ts +3 -3
- package/dist/prover/statetransition/StateTransitionWitnessProvider.d.ts.map +1 -1
- package/dist/prover/statetransition/StateTransitionWitnessProvider.js +2 -2
- package/dist/state/State.d.ts +8 -1
- package/dist/state/State.d.ts.map +1 -1
- package/dist/state/State.js +11 -4
- package/dist/state/StateServiceProvider.d.ts +0 -2
- package/dist/state/StateServiceProvider.d.ts.map +1 -1
- package/dist/state/StateServiceProvider.js +5 -17
- package/package.json +3 -2
- package/src/blockmodules/AccountStateModule.ts +2 -2
- package/src/blockmodules/BlockHeightHook.ts +21 -0
- package/src/blockmodules/NoopBlockHook.ts +16 -0
- package/src/blockmodules/NoopTransactionHook.ts +3 -4
- package/src/index.ts +4 -4
- package/src/model/Option.ts +71 -56
- package/src/model/StateTransition.ts +2 -2
- package/src/model/network/NetworkState.ts +9 -9
- package/src/protocol/Protocol.ts +33 -32
- package/src/protocol/ProtocolModule.ts +3 -3
- package/src/protocol/ProvableBlockHook.ts +22 -0
- package/src/protocol/ProvableTransactionHook.ts +4 -1
- package/src/protocol/TransitioningProtocolModule.ts +4 -0
- package/src/prover/block/BlockProvable.ts +4 -2
- package/src/prover/block/BlockProver.ts +134 -21
- package/src/prover/block/BlockTransactionPosition.ts +34 -0
- package/src/prover/statetransition/StateTransitionProver.ts +6 -13
- package/src/prover/statetransition/StateTransitionWitnessProvider.ts +4 -5
- package/src/state/State.ts +11 -4
- package/src/state/StateServiceProvider.ts +2 -10
- package/test/Option.test.ts +64 -0
- package/test/StateTransition.test.ts +1 -1
- package/dist/utils/merkletree/InMemoryMerkleTreeStorage.d.ts +0 -11
- package/dist/utils/merkletree/InMemoryMerkleTreeStorage.d.ts.map +0 -1
- package/dist/utils/merkletree/InMemoryMerkleTreeStorage.js +0 -12
- package/dist/utils/merkletree/MerkleTreeStore.d.ts +0 -11
- package/dist/utils/merkletree/MerkleTreeStore.d.ts.map +0 -1
- package/dist/utils/merkletree/MerkleTreeStore.js +0 -1
- package/dist/utils/merkletree/RollupMerkleTree.d.ts +0 -132
- package/dist/utils/merkletree/RollupMerkleTree.d.ts.map +0 -1
- package/dist/utils/merkletree/RollupMerkleTree.js +0 -251
- package/src/utils/merkletree/InMemoryMerkleTreeStorage.ts +0 -17
- package/src/utils/merkletree/MerkleTreeStore.ts +0 -15
- package/src/utils/merkletree/RollupMerkleTree.ts +0 -275
- package/src/utils/merkletree/VirtualMerkleTreeStore.ts +0 -21
- package/test/utils/MerkleTree.test.ts +0 -82
|
@@ -27,78 +27,39 @@ declare const CurrentBlock_base: (new (value: {
|
|
|
27
27
|
};
|
|
28
28
|
export declare class CurrentBlock extends CurrentBlock_base {
|
|
29
29
|
}
|
|
30
|
-
declare const PreviousBlock_base: (new (value: {
|
|
31
|
-
rootHash: import("o1js/dist/node/lib/field").Field;
|
|
32
|
-
}) => {
|
|
33
|
-
rootHash: import("o1js/dist/node/lib/field").Field;
|
|
34
|
-
}) & {
|
|
35
|
-
_isStruct: true;
|
|
36
|
-
} & import("o1js/dist/node/snarky").ProvablePure<{
|
|
37
|
-
rootHash: import("o1js/dist/node/lib/field").Field;
|
|
38
|
-
}> & {
|
|
39
|
-
toInput: (x: {
|
|
40
|
-
rootHash: import("o1js/dist/node/lib/field").Field;
|
|
41
|
-
}) => {
|
|
42
|
-
fields?: import("o1js/dist/node/lib/field").Field[] | undefined;
|
|
43
|
-
packed?: [import("o1js/dist/node/lib/field").Field, number][] | undefined;
|
|
44
|
-
};
|
|
45
|
-
toJSON: (x: {
|
|
46
|
-
rootHash: import("o1js/dist/node/lib/field").Field;
|
|
47
|
-
}) => {
|
|
48
|
-
rootHash: string;
|
|
49
|
-
};
|
|
50
|
-
fromJSON: (x: {
|
|
51
|
-
rootHash: string;
|
|
52
|
-
}) => {
|
|
53
|
-
rootHash: import("o1js/dist/node/lib/field").Field;
|
|
54
|
-
};
|
|
55
|
-
};
|
|
56
|
-
export declare class PreviousBlock extends PreviousBlock_base {
|
|
57
|
-
}
|
|
58
30
|
declare const NetworkState_base: (new (value: {
|
|
59
31
|
block: CurrentBlock;
|
|
60
|
-
previous: PreviousBlock;
|
|
61
32
|
}) => {
|
|
62
33
|
block: CurrentBlock;
|
|
63
|
-
previous: PreviousBlock;
|
|
64
34
|
}) & {
|
|
65
35
|
_isStruct: true;
|
|
66
36
|
} & import("o1js/dist/node/snarky").ProvablePure<{
|
|
67
37
|
block: CurrentBlock;
|
|
68
|
-
previous: PreviousBlock;
|
|
69
38
|
}> & {
|
|
70
39
|
toInput: (x: {
|
|
71
40
|
block: CurrentBlock;
|
|
72
|
-
previous: PreviousBlock;
|
|
73
41
|
}) => {
|
|
74
42
|
fields?: import("o1js/dist/node/lib/field").Field[] | undefined;
|
|
75
43
|
packed?: [import("o1js/dist/node/lib/field").Field, number][] | undefined;
|
|
76
44
|
};
|
|
77
45
|
toJSON: (x: {
|
|
78
46
|
block: CurrentBlock;
|
|
79
|
-
previous: PreviousBlock;
|
|
80
47
|
}) => {
|
|
81
48
|
block: {
|
|
82
49
|
height: string;
|
|
83
50
|
};
|
|
84
|
-
previous: {
|
|
85
|
-
rootHash: string;
|
|
86
|
-
};
|
|
87
51
|
};
|
|
88
52
|
fromJSON: (x: {
|
|
89
53
|
block: {
|
|
90
54
|
height: string;
|
|
91
55
|
};
|
|
92
|
-
previous: {
|
|
93
|
-
rootHash: string;
|
|
94
|
-
};
|
|
95
56
|
}) => {
|
|
96
57
|
block: CurrentBlock;
|
|
97
|
-
previous: PreviousBlock;
|
|
98
58
|
};
|
|
99
59
|
};
|
|
100
60
|
export declare class NetworkState extends NetworkState_base {
|
|
101
61
|
hash(): Field;
|
|
62
|
+
static empty(): NetworkState;
|
|
102
63
|
}
|
|
103
64
|
export {};
|
|
104
65
|
//# sourceMappingURL=NetworkState.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkState.d.ts","sourceRoot":"","sources":["../../../src/model/network/NetworkState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAoB,MAAM,EAAE,MAAM,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEvD,qBAAa,YAAa,SAAQ,iBAEhC;CAAG
|
|
1
|
+
{"version":3,"file":"NetworkState.d.ts","sourceRoot":"","sources":["../../../src/model/network/NetworkState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAoB,MAAM,EAAE,MAAM,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEvD,qBAAa,YAAa,SAAQ,iBAEhC;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEL,qBAAa,YAAa,SAAQ,iBAEhC;IACO,IAAI,IAAI,KAAK;WAIN,KAAK;CAOpB"}
|
|
@@ -1,20 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Poseidon, Struct, UInt64 } from "o1js";
|
|
2
2
|
export class CurrentBlock extends Struct({
|
|
3
3
|
height: UInt64,
|
|
4
4
|
}) {
|
|
5
5
|
}
|
|
6
|
-
export class PreviousBlock extends Struct({
|
|
7
|
-
rootHash: Field,
|
|
8
|
-
}) {
|
|
9
|
-
}
|
|
10
6
|
export class NetworkState extends Struct({
|
|
11
7
|
block: CurrentBlock,
|
|
12
|
-
previous: PreviousBlock,
|
|
13
8
|
}) {
|
|
14
9
|
hash() {
|
|
15
|
-
return Poseidon.hash(
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
10
|
+
return Poseidon.hash(CurrentBlock.toFields(this.block));
|
|
11
|
+
}
|
|
12
|
+
static empty() {
|
|
13
|
+
return new NetworkState({
|
|
14
|
+
block: {
|
|
15
|
+
height: UInt64.zero,
|
|
16
|
+
},
|
|
17
|
+
});
|
|
19
18
|
}
|
|
20
19
|
}
|
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
import { AreProofsEnabled, ChildContainerProvider, ModuleContainer, ModulesConfig, ModulesRecord, StringKeyOf, TypedClass } from "@proto-kit/common";
|
|
2
2
|
import { DependencyContainer } from "tsyringe";
|
|
3
3
|
import { BlockProvable } from "../prover/block/BlockProvable";
|
|
4
|
-
import { StateTransitionProver } from "../prover/statetransition/StateTransitionProver";
|
|
5
4
|
import { StateTransitionProvable } from "../prover/statetransition/StateTransitionProvable";
|
|
6
|
-
import { BlockProver } from "../prover/block/BlockProver";
|
|
7
5
|
import { StateServiceProvider } from "../state/StateServiceProvider";
|
|
8
6
|
import { StateService } from "../state/StateService";
|
|
9
7
|
import { ProtocolModule } from "./ProtocolModule";
|
|
10
8
|
import { ProtocolEnvironment } from "./ProtocolEnvironment";
|
|
11
9
|
import { AccountStateModule } from "../blockmodules/AccountStateModule";
|
|
12
10
|
export type GenericProtocolModuleRecord = ModulesRecord<TypedClass<ProtocolModule<unknown>>>;
|
|
13
|
-
interface BlockProverType extends ProtocolModule
|
|
11
|
+
interface BlockProverType extends ProtocolModule, BlockProvable {
|
|
14
12
|
}
|
|
15
|
-
interface StateTransitionProverType extends ProtocolModule
|
|
13
|
+
interface StateTransitionProverType extends ProtocolModule, StateTransitionProvable {
|
|
16
14
|
}
|
|
17
15
|
export interface ProtocolCustomModulesRecord {
|
|
18
16
|
BlockProver: TypedClass<BlockProverType>;
|
|
@@ -40,20 +38,8 @@ export declare class Protocol<Modules extends ProtocolModulesRecord> extends Mod
|
|
|
40
38
|
create(childContainerProvider: ChildContainerProvider): void;
|
|
41
39
|
}
|
|
42
40
|
export declare const VanillaProtocol: {
|
|
43
|
-
create(): TypedClass<Protocol<
|
|
44
|
-
|
|
45
|
-
BlockProver: typeof BlockProver;
|
|
46
|
-
AccountState: typeof AccountStateModule;
|
|
47
|
-
}>>;
|
|
48
|
-
from<AdditonalModules extends GenericProtocolModuleRecord>(additionalModules: AdditonalModules, config: ModulesConfig<AdditonalModules & {
|
|
49
|
-
StateTransitionProver: typeof StateTransitionProver;
|
|
50
|
-
BlockProver: typeof BlockProver;
|
|
51
|
-
AccountState: typeof AccountStateModule;
|
|
52
|
-
}>): TypedClass<Protocol<AdditonalModules & {
|
|
53
|
-
StateTransitionProver: typeof StateTransitionProver;
|
|
54
|
-
BlockProver: typeof BlockProver;
|
|
55
|
-
AccountState: typeof AccountStateModule;
|
|
56
|
-
}>>;
|
|
41
|
+
create(): TypedClass<Protocol<ProtocolModulesRecord>>;
|
|
42
|
+
from<AdditonalModules extends GenericProtocolModuleRecord>(additionalModules: AdditonalModules): TypedClass<Protocol<ProtocolModulesRecord>>;
|
|
57
43
|
};
|
|
58
44
|
export {};
|
|
59
45
|
//# sourceMappingURL=Protocol.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Protocol.d.ts","sourceRoot":"","sources":["../../src/protocol/Protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EAEtB,eAAe,EACf,aAAa,EACb,aAAa,EACb,WAAW,EACX,UAAU,EACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAa,MAAM,UAAU,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"Protocol.d.ts","sourceRoot":"","sources":["../../src/protocol/Protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EAEtB,eAAe,EACf,aAAa,EACb,aAAa,EACb,WAAW,EACX,UAAU,EACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAa,MAAM,UAAU,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAC;AAE5F,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAUxE,MAAM,MAAM,2BAA2B,GAAG,aAAa,CACrD,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CACpC,CAAC;AAEF,UAAU,eAAgB,SAAQ,cAAc,EAAE,aAAa;CAAG;AAElE,UAAU,yBACR,SAAQ,cAAc,EACpB,uBAAuB;CAAG;AAE9B,MAAM,WAAW,2BAA2B;IAC1C,WAAW,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;IACzC,qBAAqB,EAAE,UAAU,CAAC,yBAAyB,CAAC,CAAC;IAC7D,YAAY,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,qBACf,SAAQ,2BAA2B,EACjC,2BAA2B;CAAG;AAElC,MAAM,WAAW,kBAAkB,CAAC,OAAO,SAAS,qBAAqB;IACvE,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;CACjC;AAED,qBAAa,QAAQ,CAAC,OAAO,SAAS,qBAAqB,CACzD,SAAQ,eAAe,CAAC,OAAO,CAC/B,YAAW,mBAAmB;WAGhB,IAAI,CAAC,OAAO,SAAS,qBAAqB,EACtD,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC,GACnC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAQzB,UAAU,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;gBAE5B,UAAU,EAAE,kBAAkB,CAAC,OAAO,CAAC;IAK1D,IAAW,YAAY,IAAI,YAAY,CAEtC;IAED,IAAW,oBAAoB,IAAI,oBAAoB,CAEtD;IAEM,cAAc,CACnB,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,EAChC,eAAe,EAAE,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IAY9D,IAAW,mBAAmB,IAAI,mBAAmB,CAEpD;IAED,OAAO,CAAC,QAAQ;IAMhB,IAAW,WAAW,IAAI,aAAa,CAMtC;IAED,IAAW,qBAAqB,IAAI,uBAAuB,CAI1D;IAEM,mBAAmB,IAAI,gBAAgB;IAIvC,MAAM,CAAC,sBAAsB,EAAE,sBAAsB;CA0C7D;AAED,eAAO,MAAM,eAAe;;qGAOvB,WAAW,SAAS,qBAAqB,CAAC,CAAC;CAW/C,CAAC"}
|
|
@@ -5,6 +5,13 @@ import { BlockProver } from "../prover/block/BlockProver";
|
|
|
5
5
|
import { ProvableTransactionHook } from "./ProvableTransactionHook";
|
|
6
6
|
import { NoopTransactionHook } from "../blockmodules/NoopTransactionHook";
|
|
7
7
|
import { AccountStateModule } from "../blockmodules/AccountStateModule";
|
|
8
|
+
import { ProvableBlockHook } from "./ProvableBlockHook";
|
|
9
|
+
import { NoopBlockHook } from "../blockmodules/NoopBlockHook";
|
|
10
|
+
import { BlockHeightHook } from "../blockmodules/BlockHeightHook";
|
|
11
|
+
const PROTOCOL_INJECTION_TOKENS = {
|
|
12
|
+
ProvableTransactionHook: "ProvableTransactionHook",
|
|
13
|
+
ProvableBlockHook: "ProvableBlockHook",
|
|
14
|
+
};
|
|
8
15
|
export class Protocol extends ModuleContainer {
|
|
9
16
|
// .from() to create Protocol
|
|
10
17
|
static from(modules) {
|
|
@@ -54,35 +61,39 @@ export class Protocol extends ModuleContainer {
|
|
|
54
61
|
// Register the BlockModules seperately since we need to
|
|
55
62
|
// inject them differently later
|
|
56
63
|
let atLeastOneTransactionHookRegistered = false;
|
|
64
|
+
let atLeastOneBlockHookRegistered = false;
|
|
57
65
|
Object.entries(this.definition.modules).forEach(([key, value]) => {
|
|
58
66
|
if (Object.prototype.isPrototypeOf.call(ProvableTransactionHook, value)) {
|
|
59
|
-
this.container.register(
|
|
67
|
+
this.container.register(PROTOCOL_INJECTION_TOKENS.ProvableTransactionHook, { useToken: key }, { lifecycle: Lifecycle.ContainerScoped });
|
|
60
68
|
atLeastOneTransactionHookRegistered = true;
|
|
61
69
|
}
|
|
70
|
+
if (Object.prototype.isPrototypeOf.call(ProvableBlockHook, value)) {
|
|
71
|
+
this.container.register(PROTOCOL_INJECTION_TOKENS.ProvableBlockHook, { useToken: key }, { lifecycle: Lifecycle.ContainerScoped });
|
|
72
|
+
atLeastOneBlockHookRegistered = true;
|
|
73
|
+
}
|
|
62
74
|
});
|
|
63
75
|
// We need this so that tsyringe doesn't throw when no hooks are registered
|
|
64
76
|
if (!atLeastOneTransactionHookRegistered) {
|
|
65
|
-
this.container.register(
|
|
77
|
+
this.container.register(PROTOCOL_INJECTION_TOKENS.ProvableTransactionHook, { useClass: NoopTransactionHook }, { lifecycle: Lifecycle.ContainerScoped });
|
|
78
|
+
}
|
|
79
|
+
if (!atLeastOneBlockHookRegistered) {
|
|
80
|
+
this.container.register(PROTOCOL_INJECTION_TOKENS.ProvableBlockHook, { useClass: NoopBlockHook }, { lifecycle: Lifecycle.ContainerScoped });
|
|
66
81
|
}
|
|
67
82
|
}
|
|
68
83
|
}
|
|
69
84
|
export const VanillaProtocol = {
|
|
70
85
|
create() {
|
|
71
|
-
return VanillaProtocol.from({}
|
|
72
|
-
BlockProver: {},
|
|
73
|
-
StateTransitionProver: {},
|
|
74
|
-
AccountState: {},
|
|
75
|
-
});
|
|
86
|
+
return VanillaProtocol.from({});
|
|
76
87
|
},
|
|
77
|
-
from(additionalModules
|
|
88
|
+
from(additionalModules) {
|
|
78
89
|
return Protocol.from({
|
|
79
90
|
modules: {
|
|
80
91
|
StateTransitionProver,
|
|
81
92
|
BlockProver,
|
|
82
93
|
AccountState: AccountStateModule,
|
|
94
|
+
BlockHeight: BlockHeightHook,
|
|
83
95
|
...additionalModules,
|
|
84
96
|
},
|
|
85
|
-
config,
|
|
86
97
|
});
|
|
87
98
|
},
|
|
88
99
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { AreProofsEnabled, ChildContainerProvider, ConfigurableModule } from "@proto-kit/common";
|
|
1
|
+
import { AreProofsEnabled, ChildContainerProvider, ConfigurableModule, NoConfig } from "@proto-kit/common";
|
|
2
2
|
import { ProtocolEnvironment } from "./ProtocolEnvironment";
|
|
3
|
-
export declare abstract class ProtocolModule<Config> extends ConfigurableModule<Config> {
|
|
3
|
+
export declare abstract class ProtocolModule<Config = NoConfig> extends ConfigurableModule<Config> {
|
|
4
4
|
protocol?: ProtocolEnvironment;
|
|
5
5
|
get appChain(): AreProofsEnabled | undefined;
|
|
6
6
|
create(childContainerProvider: ChildContainerProvider): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProtocolModule.d.ts","sourceRoot":"","sources":["../../src/protocol/ProtocolModule.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"ProtocolModule.d.ts","sourceRoot":"","sources":["../../src/protocol/ProtocolModule.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAAE,QAAQ,EAE7B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,8BAAsB,cAAc,CAClC,MAAM,GAAG,QAAQ,CACjB,SAAQ,kBAAkB,CAAC,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAEtC,IAAW,QAAQ,IAAI,gBAAgB,GAAG,SAAS,CAElD;IAGM,MAAM,CAAC,sBAAsB,EAAE,sBAAsB,GAAG,IAAI;CAGpE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { BlockProverState } from "../prover/block/BlockProver";
|
|
2
|
+
import { NetworkState } from "../model/network/NetworkState";
|
|
3
|
+
import { TransitioningProtocolModule } from "./TransitioningProtocolModule";
|
|
4
|
+
export interface BeforeBlockParameters {
|
|
5
|
+
state: BlockProverState;
|
|
6
|
+
networkState: NetworkState;
|
|
7
|
+
}
|
|
8
|
+
export interface AfterBlockParameters {
|
|
9
|
+
state: BlockProverState;
|
|
10
|
+
networkState: NetworkState;
|
|
11
|
+
}
|
|
12
|
+
export declare abstract class ProvableBlockHook<Config> extends TransitioningProtocolModule<Config> {
|
|
13
|
+
abstract beforeBlock(blockData: BeforeBlockParameters): NetworkState;
|
|
14
|
+
abstract afterBlock(blockData: AfterBlockParameters): NetworkState;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=ProvableBlockHook.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProvableBlockHook.d.ts","sourceRoot":"","sources":["../../src/protocol/ProvableBlockHook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,gBAAgB,CAAC;IACxB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,gBAAgB,CAAC;IACxB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAGD,8BAAsB,iBAAiB,CACrC,MAAM,CACN,SAAQ,2BAA2B,CAAC,MAAM,CAAC;aAC3B,WAAW,CAAC,SAAS,EAAE,qBAAqB,GAAG,YAAY;aAC3D,UAAU,CAAC,SAAS,EAAE,oBAAoB,GAAG,YAAY;CAC1E"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { BlockProverExecutionData } from "../prover/block/BlockProvable";
|
|
2
2
|
import { TransitioningProtocolModule } from "./TransitioningProtocolModule";
|
|
3
|
-
|
|
3
|
+
import { NoConfig } from "@proto-kit/common";
|
|
4
|
+
export declare abstract class ProvableTransactionHook<Config = NoConfig> extends TransitioningProtocolModule<Config> {
|
|
4
5
|
abstract onTransaction(executionData: BlockProverExecutionData): void;
|
|
5
6
|
}
|
|
6
7
|
//# sourceMappingURL=ProvableTransactionHook.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProvableTransactionHook.d.ts","sourceRoot":"","sources":["../../src/protocol/ProvableTransactionHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"ProvableTransactionHook.d.ts","sourceRoot":"","sources":["../../src/protocol/ProvableTransactionHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,8BAAsB,uBAAuB,CAC3C,MAAM,GAAG,QAAQ,CACjB,SAAQ,2BAA2B,CAAC,MAAM,CAAC;aAC3B,aAAa,CAAC,aAAa,EAAE,wBAAwB,GAAG,IAAI;CAC7E"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { ProtocolModule } from "./ProtocolModule";
|
|
2
|
+
/**
|
|
3
|
+
* A Protocolmodule that enables it's implementing module to access to
|
|
4
|
+
* StateTransitions and state
|
|
5
|
+
*/
|
|
2
6
|
export declare abstract class TransitioningProtocolModule<Config> extends ProtocolModule<Config> {
|
|
3
7
|
name?: string;
|
|
4
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransitioningProtocolModule.d.ts","sourceRoot":"","sources":["../../src/protocol/TransitioningProtocolModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,8BAAsB,2BAA2B,CAC/C,MAAM,CACN,SAAQ,cAAc,CAAC,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;CACtB"}
|
|
1
|
+
{"version":3,"file":"TransitioningProtocolModule.d.ts","sourceRoot":"","sources":["../../src/protocol/TransitioningProtocolModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;GAGG;AACH,8BAAsB,2BAA2B,CAC/C,MAAM,CACN,SAAQ,cAAc,CAAC,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;CACtB"}
|
|
@@ -4,6 +4,7 @@ import { StateTransitionProof } from "../statetransition/StateTransitionProvable
|
|
|
4
4
|
import { MethodPublicOutput } from "../../model/MethodPublicOutput";
|
|
5
5
|
import { ProtocolTransaction } from "../../model/transaction/ProtocolTransaction";
|
|
6
6
|
import { NetworkState } from "../../model/network/NetworkState";
|
|
7
|
+
import { BlockTransactionPosition } from "./BlockTransactionPosition";
|
|
7
8
|
declare const BlockProverPublicInput_base: (new (value: {
|
|
8
9
|
transactionsHash: import("o1js/dist/node/lib/field").Field;
|
|
9
10
|
stateRoot: import("o1js/dist/node/lib/field").Field;
|
|
@@ -51,18 +52,22 @@ export declare class BlockProverPublicInput extends BlockProverPublicInput_base
|
|
|
51
52
|
declare const BlockProverPublicOutput_base: (new (value: {
|
|
52
53
|
transactionsHash: import("o1js/dist/node/lib/field").Field;
|
|
53
54
|
stateRoot: import("o1js/dist/node/lib/field").Field;
|
|
55
|
+
networkStateHash: import("o1js/dist/node/lib/field").Field;
|
|
54
56
|
}) => {
|
|
55
57
|
transactionsHash: import("o1js/dist/node/lib/field").Field;
|
|
56
58
|
stateRoot: import("o1js/dist/node/lib/field").Field;
|
|
59
|
+
networkStateHash: import("o1js/dist/node/lib/field").Field;
|
|
57
60
|
}) & {
|
|
58
61
|
_isStruct: true;
|
|
59
62
|
} & import("o1js/dist/node/snarky").ProvablePure<{
|
|
60
63
|
transactionsHash: import("o1js/dist/node/lib/field").Field;
|
|
61
64
|
stateRoot: import("o1js/dist/node/lib/field").Field;
|
|
65
|
+
networkStateHash: import("o1js/dist/node/lib/field").Field;
|
|
62
66
|
}> & {
|
|
63
67
|
toInput: (x: {
|
|
64
68
|
transactionsHash: import("o1js/dist/node/lib/field").Field;
|
|
65
69
|
stateRoot: import("o1js/dist/node/lib/field").Field;
|
|
70
|
+
networkStateHash: import("o1js/dist/node/lib/field").Field;
|
|
66
71
|
}) => {
|
|
67
72
|
fields?: import("o1js/dist/node/lib/field").Field[] | undefined;
|
|
68
73
|
packed?: [import("o1js/dist/node/lib/field").Field, number][] | undefined;
|
|
@@ -70,16 +75,20 @@ declare const BlockProverPublicOutput_base: (new (value: {
|
|
|
70
75
|
toJSON: (x: {
|
|
71
76
|
transactionsHash: import("o1js/dist/node/lib/field").Field;
|
|
72
77
|
stateRoot: import("o1js/dist/node/lib/field").Field;
|
|
78
|
+
networkStateHash: import("o1js/dist/node/lib/field").Field;
|
|
73
79
|
}) => {
|
|
74
80
|
transactionsHash: string;
|
|
75
81
|
stateRoot: string;
|
|
82
|
+
networkStateHash: string;
|
|
76
83
|
};
|
|
77
84
|
fromJSON: (x: {
|
|
78
85
|
transactionsHash: string;
|
|
79
86
|
stateRoot: string;
|
|
87
|
+
networkStateHash: string;
|
|
80
88
|
}) => {
|
|
81
89
|
transactionsHash: import("o1js/dist/node/lib/field").Field;
|
|
82
90
|
stateRoot: import("o1js/dist/node/lib/field").Field;
|
|
91
|
+
networkStateHash: import("o1js/dist/node/lib/field").Field;
|
|
83
92
|
};
|
|
84
93
|
};
|
|
85
94
|
export declare class BlockProverPublicOutput extends BlockProverPublicOutput_base {
|
|
@@ -88,18 +97,22 @@ export type BlockProverProof = Proof<BlockProverPublicInput, BlockProverPublicOu
|
|
|
88
97
|
declare const BlockProverExecutionData_base: (new (value: {
|
|
89
98
|
transaction: ProtocolTransaction;
|
|
90
99
|
networkState: NetworkState;
|
|
100
|
+
transactionPosition: BlockTransactionPosition;
|
|
91
101
|
}) => {
|
|
92
102
|
transaction: ProtocolTransaction;
|
|
93
103
|
networkState: NetworkState;
|
|
104
|
+
transactionPosition: BlockTransactionPosition;
|
|
94
105
|
}) & {
|
|
95
106
|
_isStruct: true;
|
|
96
107
|
} & import("o1js/dist/node/snarky").ProvablePure<{
|
|
97
108
|
transaction: ProtocolTransaction;
|
|
98
109
|
networkState: NetworkState;
|
|
110
|
+
transactionPosition: BlockTransactionPosition;
|
|
99
111
|
}> & {
|
|
100
112
|
toInput: (x: {
|
|
101
113
|
transaction: ProtocolTransaction;
|
|
102
114
|
networkState: NetworkState;
|
|
115
|
+
transactionPosition: BlockTransactionPosition;
|
|
103
116
|
}) => {
|
|
104
117
|
fields?: import("o1js/dist/node/lib/field").Field[] | undefined;
|
|
105
118
|
packed?: [import("o1js/dist/node/lib/field").Field, number][] | undefined;
|
|
@@ -107,6 +120,7 @@ declare const BlockProverExecutionData_base: (new (value: {
|
|
|
107
120
|
toJSON: (x: {
|
|
108
121
|
transaction: ProtocolTransaction;
|
|
109
122
|
networkState: NetworkState;
|
|
123
|
+
transactionPosition: BlockTransactionPosition;
|
|
110
124
|
}) => {
|
|
111
125
|
transaction: {
|
|
112
126
|
methodId: string;
|
|
@@ -119,9 +133,9 @@ declare const BlockProverExecutionData_base: (new (value: {
|
|
|
119
133
|
block: {
|
|
120
134
|
height: string;
|
|
121
135
|
};
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
136
|
+
};
|
|
137
|
+
transactionPosition: {
|
|
138
|
+
type: string;
|
|
125
139
|
};
|
|
126
140
|
};
|
|
127
141
|
fromJSON: (x: {
|
|
@@ -136,13 +150,14 @@ declare const BlockProverExecutionData_base: (new (value: {
|
|
|
136
150
|
block: {
|
|
137
151
|
height: string;
|
|
138
152
|
};
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
153
|
+
};
|
|
154
|
+
transactionPosition: {
|
|
155
|
+
type: string;
|
|
142
156
|
};
|
|
143
157
|
}) => {
|
|
144
158
|
transaction: ProtocolTransaction;
|
|
145
159
|
networkState: NetworkState;
|
|
160
|
+
transactionPosition: BlockTransactionPosition;
|
|
146
161
|
};
|
|
147
162
|
};
|
|
148
163
|
export declare class BlockProverExecutionData extends BlockProverExecutionData_base {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlockProvable.d.ts","sourceRoot":"","sources":["../../../src/prover/block/BlockProvable.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"BlockProvable.d.ts","sourceRoot":"","sources":["../../../src/prover/block/BlockProvable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,EAAU,MAAM,MAAM,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEtE,qBAAa,sBAAuB,SAAQ,2BAI1C;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEL,qBAAa,uBAAwB,SAAQ,4BAI3C;CAAG;AAEL,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAClC,sBAAsB,EACtB,uBAAuB,CACxB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEF,qBAAa,wBAAyB,SAAQ,6BAI5C;CAAG;AAEL,MAAM,WAAW,aACf,SAAQ,kBAAkB,CAAC,sBAAsB,EAAE,uBAAuB,CAAC;IAC3E,gBAAgB,EAAE,CAChB,WAAW,EAAE,sBAAsB,EACnC,UAAU,EAAE,oBAAoB,EAChC,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,kBAAkB,CAAC,EACzC,aAAa,EAAE,wBAAwB,KACpC,uBAAuB,CAAC;IAE7B,KAAK,EAAE,CACL,WAAW,EAAE,sBAAsB,EACnC,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,gBAAgB,KACrB,uBAAuB,CAAC;CAC9B"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Field, Struct } from "o1js";
|
|
2
2
|
import { ProtocolTransaction } from "../../model/transaction/ProtocolTransaction";
|
|
3
3
|
import { NetworkState } from "../../model/network/NetworkState";
|
|
4
|
+
import { BlockTransactionPosition } from "./BlockTransactionPosition";
|
|
4
5
|
export class BlockProverPublicInput extends Struct({
|
|
5
6
|
transactionsHash: Field,
|
|
6
7
|
stateRoot: Field,
|
|
@@ -10,11 +11,12 @@ export class BlockProverPublicInput extends Struct({
|
|
|
10
11
|
export class BlockProverPublicOutput extends Struct({
|
|
11
12
|
transactionsHash: Field,
|
|
12
13
|
stateRoot: Field,
|
|
14
|
+
networkStateHash: Field,
|
|
13
15
|
}) {
|
|
14
16
|
}
|
|
15
17
|
export class BlockProverExecutionData extends Struct({
|
|
16
18
|
transaction: ProtocolTransaction,
|
|
17
19
|
networkState: NetworkState,
|
|
18
|
-
|
|
20
|
+
transactionPosition: BlockTransactionPosition,
|
|
19
21
|
}) {
|
|
20
22
|
}
|
|
@@ -5,6 +5,7 @@ import { ProtocolModule } from "../../protocol/ProtocolModule";
|
|
|
5
5
|
import { StateTransitionProof, StateTransitionProverPublicInput, StateTransitionProverPublicOutput } from "../statetransition/StateTransitionProvable";
|
|
6
6
|
import { BlockProvable, BlockProverExecutionData, BlockProverProof, BlockProverPublicInput, BlockProverPublicOutput } from "./BlockProvable";
|
|
7
7
|
import { ProvableTransactionHook } from "../../protocol/ProvableTransactionHook";
|
|
8
|
+
import { ProvableBlockHook } from "../../protocol/ProvableBlockHook";
|
|
8
9
|
export interface BlockProverState {
|
|
9
10
|
stateRoot: Field;
|
|
10
11
|
/**
|
|
@@ -22,8 +23,9 @@ export declare class BlockProverProgrammable extends ZkProgrammable<BlockProverP
|
|
|
22
23
|
private readonly prover;
|
|
23
24
|
readonly stateTransitionProver: ZkProgrammable<StateTransitionProverPublicInput, StateTransitionProverPublicOutput>;
|
|
24
25
|
readonly runtime: ZkProgrammable<undefined, MethodPublicOutput>;
|
|
25
|
-
private readonly
|
|
26
|
-
|
|
26
|
+
private readonly transactionHooks;
|
|
27
|
+
private readonly blockHooks;
|
|
28
|
+
constructor(prover: BlockProver, stateTransitionProver: ZkProgrammable<StateTransitionProverPublicInput, StateTransitionProverPublicOutput>, runtime: ZkProgrammable<undefined, MethodPublicOutput>, transactionHooks: ProvableTransactionHook<unknown>[], blockHooks: ProvableBlockHook<unknown>[]);
|
|
27
29
|
get appChain(): AreProofsEnabled | undefined;
|
|
28
30
|
/**
|
|
29
31
|
* Applies and checks the two proofs and applies the corresponding state
|
|
@@ -37,6 +39,9 @@ export declare class BlockProverProgrammable extends ZkProgrammable<BlockProverP
|
|
|
37
39
|
*/
|
|
38
40
|
applyTransaction(state: BlockProverState, stateTransitionProof: Proof<StateTransitionProverPublicInput, StateTransitionProverPublicOutput>, appProof: Proof<void, MethodPublicOutput>, executionData: BlockProverExecutionData): BlockProverState;
|
|
39
41
|
assertProtocolTransitions(stateTransitionProof: Proof<StateTransitionProverPublicInput, StateTransitionProverPublicOutput>, executionData: BlockProverExecutionData): void;
|
|
42
|
+
private getBeforeBlockNetworkState;
|
|
43
|
+
private getAfterBlockNetworkState;
|
|
44
|
+
private addTransactionToBundle;
|
|
40
45
|
proveTransaction(publicInput: BlockProverPublicInput, stateProof: StateTransitionProof, appProof: Proof<void, MethodPublicOutput>, executionData: BlockProverExecutionData): BlockProverPublicOutput;
|
|
41
46
|
merge(publicInput: BlockProverPublicInput, proof1: BlockProverProof, proof2: BlockProverProof): BlockProverPublicOutput;
|
|
42
47
|
/**
|
|
@@ -51,11 +56,11 @@ export declare class BlockProverProgrammable extends ZkProgrammable<BlockProverP
|
|
|
51
56
|
* a StateTransitionProof into a single BlockProof, that can
|
|
52
57
|
* then be merged to be committed to the base-layer contract
|
|
53
58
|
*/
|
|
54
|
-
export declare class BlockProver extends ProtocolModule
|
|
59
|
+
export declare class BlockProver extends ProtocolModule implements BlockProvable {
|
|
55
60
|
readonly stateTransitionProver: WithZkProgrammable<StateTransitionProverPublicInput, StateTransitionProverPublicOutput>;
|
|
56
61
|
readonly runtime: WithZkProgrammable<undefined, MethodPublicOutput>;
|
|
57
62
|
zkProgrammable: BlockProverProgrammable;
|
|
58
|
-
constructor(stateTransitionProver: WithZkProgrammable<StateTransitionProverPublicInput, StateTransitionProverPublicOutput>, runtime: WithZkProgrammable<undefined, MethodPublicOutput>, transactionHooks: ProvableTransactionHook<unknown>[]);
|
|
63
|
+
constructor(stateTransitionProver: WithZkProgrammable<StateTransitionProverPublicInput, StateTransitionProverPublicOutput>, runtime: WithZkProgrammable<undefined, MethodPublicOutput>, transactionHooks: ProvableTransactionHook<unknown>[], blockHooks: ProvableBlockHook<unknown>[]);
|
|
59
64
|
merge(publicInput: BlockProverPublicInput, proof1: BlockProverProof, proof2: BlockProverProof): BlockProverPublicOutput;
|
|
60
65
|
proveTransaction(publicInput: BlockProverPublicInput, stateProof: StateTransitionProof, appProof: Proof<void, MethodPublicOutput>, executionData: BlockProverExecutionData): BlockProverPublicOutput;
|
|
61
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlockProver.d.ts","sourceRoot":"","sources":["../../../src/prover/block/BlockProver.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"BlockProver.d.ts","sourceRoot":"","sources":["../../../src/prover/block/BlockProver.ts"],"names":[],"mappings":"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"}
|