@proto-kit/protocol 0.1.1-develop.1087 → 0.1.1-develop.1309
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Constants.js +1 -0
- package/dist/Constants.js.map +1 -0
- package/dist/hooks/AccountStateHook.js +1 -0
- package/dist/hooks/AccountStateHook.js.map +1 -0
- package/dist/hooks/BlockHeightHook.js +1 -0
- package/dist/hooks/BlockHeightHook.js.map +1 -0
- package/dist/hooks/LastStateRootBlockHook.js +1 -0
- package/dist/hooks/LastStateRootBlockHook.js.map +1 -0
- package/dist/hooks/NoopBlockHook.js +1 -0
- package/dist/hooks/NoopBlockHook.js.map +1 -0
- package/dist/hooks/NoopSettlementHook.d.ts +2 -2
- package/dist/hooks/NoopSettlementHook.d.ts.map +1 -1
- package/dist/hooks/NoopSettlementHook.js +1 -0
- package/dist/hooks/NoopSettlementHook.js.map +1 -0
- package/dist/hooks/NoopTransactionHook.js +1 -0
- package/dist/hooks/NoopTransactionHook.js.map +1 -0
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -2
- package/dist/index.js.map +1 -0
- package/dist/model/MethodPublicOutput.js +1 -0
- package/dist/model/MethodPublicOutput.js.map +1 -0
- package/dist/model/Option.js +1 -0
- package/dist/model/Option.js.map +1 -0
- package/dist/model/Path.js +1 -0
- package/dist/model/Path.js.map +1 -0
- package/dist/model/RuntimeLike.js +1 -0
- package/dist/model/RuntimeLike.js.map +1 -0
- package/dist/model/StateTransition.js +1 -0
- package/dist/model/StateTransition.js.map +1 -0
- package/dist/model/StateTransitionProvableBatch.d.ts +28 -2
- package/dist/model/StateTransitionProvableBatch.d.ts.map +1 -1
- package/dist/model/StateTransitionProvableBatch.js +9 -3
- package/dist/model/StateTransitionProvableBatch.js.map +1 -0
- package/dist/model/network/NetworkState.js +1 -0
- package/dist/model/network/NetworkState.js.map +1 -0
- package/dist/model/transaction/RuntimeTransaction.js +1 -0
- package/dist/model/transaction/RuntimeTransaction.js.map +1 -0
- package/dist/model/transaction/SignedTransaction.js +1 -0
- package/dist/model/transaction/SignedTransaction.js.map +1 -0
- package/dist/model/transaction/ValueOption.js +1 -0
- package/dist/model/transaction/ValueOption.js.map +1 -0
- package/dist/protocol/Protocol.d.ts.map +1 -1
- package/dist/protocol/Protocol.js +31 -6
- package/dist/protocol/Protocol.js.map +1 -0
- package/dist/protocol/ProtocolEnvironment.js +1 -0
- package/dist/protocol/ProtocolEnvironment.js.map +1 -0
- package/dist/protocol/ProtocolModule.d.ts +1 -1
- package/dist/protocol/ProtocolModule.d.ts.map +1 -1
- package/dist/protocol/ProtocolModule.js +2 -1
- package/dist/protocol/ProtocolModule.js.map +1 -0
- package/dist/protocol/ProvableBlockHook.js +1 -0
- package/dist/protocol/ProvableBlockHook.js.map +1 -0
- package/dist/protocol/ProvableTransactionHook.js +1 -0
- package/dist/protocol/ProvableTransactionHook.js.map +1 -0
- package/dist/protocol/TransitioningProtocolModule.js +1 -0
- package/dist/protocol/TransitioningProtocolModule.js.map +1 -0
- package/dist/prover/block/BlockProvable.d.ts +19 -5
- package/dist/prover/block/BlockProvable.d.ts.map +1 -1
- package/dist/prover/block/BlockProvable.js +5 -2
- package/dist/prover/block/BlockProvable.js.map +1 -0
- package/dist/prover/block/BlockProver.d.ts +11 -9
- package/dist/prover/block/BlockProver.d.ts.map +1 -1
- package/dist/prover/block/BlockProver.js +79 -41
- package/dist/prover/block/BlockProver.js.map +1 -0
- package/dist/prover/block/accummulators/BlockHashMerkleTree.js +1 -0
- package/dist/prover/block/accummulators/BlockHashMerkleTree.js.map +1 -0
- package/dist/prover/block/accummulators/RuntimeVerificationKeyTree.d.ts +2 -2
- package/dist/prover/block/accummulators/RuntimeVerificationKeyTree.js +1 -0
- package/dist/prover/block/accummulators/RuntimeVerificationKeyTree.js.map +1 -0
- package/dist/prover/block/services/RuntimeVerificationKeyRootService.js +1 -0
- package/dist/prover/block/services/RuntimeVerificationKeyRootService.js.map +1 -0
- package/dist/prover/statetransition/StateTransitionProvable.d.ts +2 -4
- package/dist/prover/statetransition/StateTransitionProvable.d.ts.map +1 -1
- package/dist/prover/statetransition/StateTransitionProvable.js +1 -0
- package/dist/prover/statetransition/StateTransitionProvable.js.map +1 -0
- package/dist/prover/statetransition/StateTransitionProver.d.ts +7 -10
- package/dist/prover/statetransition/StateTransitionProver.d.ts.map +1 -1
- package/dist/prover/statetransition/StateTransitionProver.js +27 -28
- package/dist/prover/statetransition/StateTransitionProver.js.map +1 -0
- package/dist/settlement/ContractModule.d.ts +4 -3
- package/dist/settlement/ContractModule.d.ts.map +1 -1
- package/dist/settlement/ContractModule.js +2 -1
- package/dist/settlement/ContractModule.js.map +1 -0
- package/dist/settlement/SettlementContractModule.d.ts +25 -12
- package/dist/settlement/SettlementContractModule.d.ts.map +1 -1
- package/dist/settlement/SettlementContractModule.js +29 -20
- package/dist/settlement/SettlementContractModule.js.map +1 -0
- package/dist/settlement/contracts/BridgeContract.d.ts +97 -0
- package/dist/settlement/contracts/BridgeContract.d.ts.map +1 -0
- package/dist/settlement/contracts/BridgeContract.js +164 -0
- package/dist/settlement/contracts/BridgeContract.js.map +1 -0
- package/dist/settlement/contracts/BridgeContractProtocolModule.d.ts +14 -0
- package/dist/settlement/contracts/BridgeContractProtocolModule.d.ts.map +1 -0
- package/dist/settlement/contracts/BridgeContractProtocolModule.js +30 -0
- package/dist/settlement/contracts/BridgeContractProtocolModule.js.map +1 -0
- package/dist/settlement/contracts/DispatchContractProtocolModule.d.ts +10 -1
- package/dist/settlement/contracts/DispatchContractProtocolModule.d.ts.map +1 -1
- package/dist/settlement/contracts/DispatchContractProtocolModule.js +24 -2
- package/dist/settlement/contracts/DispatchContractProtocolModule.js.map +1 -0
- package/dist/settlement/contracts/DispatchSmartContract.d.ts +26 -4
- package/dist/settlement/contracts/DispatchSmartContract.d.ts.map +1 -1
- package/dist/settlement/contracts/DispatchSmartContract.js +139 -19
- package/dist/settlement/contracts/DispatchSmartContract.js.map +1 -0
- package/dist/settlement/contracts/SettlementContractProtocolModule.d.ts +10 -8
- package/dist/settlement/contracts/SettlementContractProtocolModule.d.ts.map +1 -1
- package/dist/settlement/contracts/SettlementContractProtocolModule.js +47 -9
- package/dist/settlement/contracts/SettlementContractProtocolModule.js.map +1 -0
- package/dist/settlement/contracts/SettlementSmartContract.d.ts +98 -17
- package/dist/settlement/contracts/SettlementSmartContract.d.ts.map +1 -1
- package/dist/settlement/contracts/SettlementSmartContract.js +147 -79
- package/dist/settlement/contracts/SettlementSmartContract.js.map +1 -0
- package/dist/settlement/contracts/TokenBridgeTree.d.ts +228 -0
- package/dist/settlement/contracts/TokenBridgeTree.d.ts.map +1 -0
- package/dist/settlement/contracts/TokenBridgeTree.js +60 -0
- package/dist/settlement/contracts/TokenBridgeTree.js.map +1 -0
- package/dist/settlement/contracts/authorizations/ContractAuthorization.d.ts +10 -0
- package/dist/settlement/contracts/authorizations/ContractAuthorization.d.ts.map +1 -0
- package/dist/settlement/contracts/authorizations/ContractAuthorization.js +2 -0
- package/dist/settlement/contracts/authorizations/ContractAuthorization.js.map +1 -0
- package/dist/settlement/contracts/authorizations/TokenBridgeDeploymentAuth.d.ts +85 -0
- package/dist/settlement/contracts/authorizations/TokenBridgeDeploymentAuth.d.ts.map +1 -0
- package/dist/settlement/contracts/authorizations/TokenBridgeDeploymentAuth.js +11 -0
- package/dist/settlement/contracts/authorizations/TokenBridgeDeploymentAuth.js.map +1 -0
- package/dist/settlement/contracts/authorizations/UpdateMessagesHashAuth.d.ts +79 -0
- package/dist/settlement/contracts/authorizations/UpdateMessagesHashAuth.d.ts.map +1 -0
- package/dist/settlement/contracts/authorizations/UpdateMessagesHashAuth.js +11 -0
- package/dist/settlement/contracts/authorizations/UpdateMessagesHashAuth.js.map +1 -0
- package/dist/settlement/messages/Deposit.d.ts +13 -0
- package/dist/settlement/messages/Deposit.d.ts.map +1 -1
- package/dist/settlement/messages/Deposit.js +3 -1
- package/dist/settlement/messages/Deposit.js.map +1 -0
- package/dist/settlement/messages/OutgoingMessageArgument.d.ts +8 -0
- package/dist/settlement/messages/OutgoingMessageArgument.d.ts.map +1 -1
- package/dist/settlement/messages/OutgoingMessageArgument.js +1 -0
- package/dist/settlement/messages/OutgoingMessageArgument.js.map +1 -0
- package/dist/settlement/messages/Withdrawal.d.ts +13 -0
- package/dist/settlement/messages/Withdrawal.d.ts.map +1 -1
- package/dist/settlement/messages/Withdrawal.js +4 -1
- package/dist/settlement/messages/Withdrawal.js.map +1 -0
- package/dist/settlement/modularity/ProvableSettlementHook.d.ts +5 -3
- package/dist/settlement/modularity/ProvableSettlementHook.d.ts.map +1 -1
- package/dist/settlement/modularity/ProvableSettlementHook.js +1 -0
- package/dist/settlement/modularity/ProvableSettlementHook.js.map +1 -0
- package/dist/settlement/modularity/types.d.ts +8 -0
- package/dist/settlement/modularity/types.d.ts.map +1 -0
- package/dist/settlement/modularity/types.js +2 -0
- package/dist/settlement/modularity/types.js.map +1 -0
- package/dist/settlement/modules/NetworkStateSettlementModule.js +1 -0
- package/dist/settlement/modules/NetworkStateSettlementModule.js.map +1 -0
- package/dist/state/State.js +1 -0
- package/dist/state/State.js.map +1 -0
- package/dist/state/StateMap.js +1 -0
- package/dist/state/StateMap.js.map +1 -0
- package/dist/state/StateService.js +1 -0
- package/dist/state/StateService.js.map +1 -0
- package/dist/state/StateServiceProvider.js +1 -0
- package/dist/state/StateServiceProvider.js.map +1 -0
- package/dist/state/assert/assert.js +1 -0
- package/dist/state/assert/assert.js.map +1 -0
- package/dist/state/context/RuntimeMethodExecutionContext.js +1 -0
- package/dist/state/context/RuntimeMethodExecutionContext.js.map +1 -0
- package/dist/state/context/TransitionMethodExecutionContext.js +1 -0
- package/dist/state/context/TransitionMethodExecutionContext.js.map +1 -0
- package/dist/state/protocol/ProtocolState.js +1 -0
- package/dist/state/protocol/ProtocolState.js.map +1 -0
- package/dist/utils/MinaPrefixedProvableHashList.js +1 -0
- package/dist/utils/MinaPrefixedProvableHashList.js.map +1 -0
- package/dist/utils/PrefixedProvableHashList.js +1 -0
- package/dist/utils/PrefixedProvableHashList.js.map +1 -0
- package/dist/utils/ProvableHashList.js +1 -0
- package/dist/utils/ProvableHashList.js.map +1 -0
- package/dist/utils/ProvableReductionHashList.js +1 -0
- package/dist/utils/ProvableReductionHashList.js.map +1 -0
- package/dist/utils/StateTransitionReductionList.js +1 -0
- package/dist/utils/StateTransitionReductionList.js.map +1 -0
- package/dist/utils/utils.js +1 -0
- package/dist/utils/utils.js.map +1 -0
- package/jest.config.cjs +12 -1
- package/package.json +4 -4
- package/src/hooks/NoopSettlementHook.ts +2 -2
- package/src/index.ts +6 -2
- package/src/model/StateTransitionProvableBatch.ts +24 -4
- package/src/protocol/Protocol.ts +36 -7
- package/src/protocol/ProtocolModule.ts +1 -1
- package/src/prover/block/BlockProvable.ts +9 -9
- package/src/prover/block/BlockProver.ts +94 -58
- package/src/prover/statetransition/StateTransitionProvable.ts +5 -8
- package/src/prover/statetransition/StateTransitionProver.ts +46 -40
- package/src/settlement/ContractModule.ts +17 -10
- package/src/settlement/SettlementContractModule.ts +54 -41
- package/src/settlement/contracts/BridgeContract.ts +237 -0
- package/src/settlement/contracts/BridgeContractProtocolModule.ts +43 -0
- package/src/settlement/contracts/DispatchContractProtocolModule.ts +37 -3
- package/src/settlement/contracts/DispatchSmartContract.ts +213 -23
- package/src/settlement/contracts/SettlementContractProtocolModule.ts +61 -20
- package/src/settlement/contracts/SettlementSmartContract.ts +261 -107
- package/src/settlement/contracts/TokenBridgeTree.ts +73 -0
- package/src/settlement/contracts/authorizations/ContractAuthorization.ts +11 -0
- package/src/settlement/contracts/authorizations/TokenBridgeDeploymentAuth.ts +16 -0
- package/src/settlement/contracts/authorizations/UpdateMessagesHashAuth.ts +16 -0
- package/src/settlement/messages/Deposit.ts +2 -1
- package/src/settlement/messages/Withdrawal.ts +3 -1
- package/src/settlement/modularity/ProvableSettlementHook.ts +6 -3
- package/src/settlement/modularity/types.ts +22 -0
- package/test/BlockProver.test.ts +2 -1
- package/test/TestingProtocol.ts +17 -12
- package/test/compiling/types.ts +28 -0
- package/test/modularity/types.ts +35 -0
- package/src/prover/statetransition/StateTransitionWitnessProvider.ts +0 -23
- package/src/prover/statetransition/StateTransitionWitnessProviderReference.ts +0 -17
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransitioningProtocolModule.js","sourceRoot":"","sources":["../../src/protocol/TransitioningProtocolModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;;GAIG;AACH,MAAM,OAAgB,2BAEpB,SAAQ,cAAsB;CAE/B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Bool, DynamicProof,
|
|
2
|
-
import { WithZkProgrammable } from "@proto-kit/common";
|
|
1
|
+
import { Bool, DynamicProof, Proof, Signature, Void } from "o1js";
|
|
2
|
+
import { WithZkProgrammable, CompilableModule } from "@proto-kit/common";
|
|
3
3
|
import { StateTransitionProof } from "../statetransition/StateTransitionProvable";
|
|
4
4
|
import { MethodPublicOutput } from "../../model/MethodPublicOutput";
|
|
5
5
|
import { RuntimeTransaction } from "../../model/transaction/RuntimeTransaction";
|
|
@@ -13,6 +13,7 @@ declare const BlockProverPublicInput_base: (new (value: {
|
|
|
13
13
|
blockHashRoot: import("o1js/dist/node/lib/provable/field").Field;
|
|
14
14
|
eternalTransactionsHash: import("o1js/dist/node/lib/provable/field").Field;
|
|
15
15
|
incomingMessagesHash: import("o1js/dist/node/lib/provable/field").Field;
|
|
16
|
+
blockNumber: import("o1js/dist/node/lib/provable/field").Field;
|
|
16
17
|
}) => {
|
|
17
18
|
transactionsHash: import("o1js/dist/node/lib/provable/field").Field;
|
|
18
19
|
stateRoot: import("o1js/dist/node/lib/provable/field").Field;
|
|
@@ -20,6 +21,7 @@ declare const BlockProverPublicInput_base: (new (value: {
|
|
|
20
21
|
blockHashRoot: import("o1js/dist/node/lib/provable/field").Field;
|
|
21
22
|
eternalTransactionsHash: import("o1js/dist/node/lib/provable/field").Field;
|
|
22
23
|
incomingMessagesHash: import("o1js/dist/node/lib/provable/field").Field;
|
|
24
|
+
blockNumber: import("o1js/dist/node/lib/provable/field").Field;
|
|
23
25
|
}) & {
|
|
24
26
|
_isStruct: true;
|
|
25
27
|
} & Omit<import("o1js/dist/node/lib/provable/types/provable-intf").Provable<{
|
|
@@ -29,6 +31,7 @@ declare const BlockProverPublicInput_base: (new (value: {
|
|
|
29
31
|
blockHashRoot: import("o1js/dist/node/lib/provable/field").Field;
|
|
30
32
|
eternalTransactionsHash: import("o1js/dist/node/lib/provable/field").Field;
|
|
31
33
|
incomingMessagesHash: import("o1js/dist/node/lib/provable/field").Field;
|
|
34
|
+
blockNumber: import("o1js/dist/node/lib/provable/field").Field;
|
|
32
35
|
}, {
|
|
33
36
|
transactionsHash: bigint;
|
|
34
37
|
stateRoot: bigint;
|
|
@@ -36,6 +39,7 @@ declare const BlockProverPublicInput_base: (new (value: {
|
|
|
36
39
|
blockHashRoot: bigint;
|
|
37
40
|
eternalTransactionsHash: bigint;
|
|
38
41
|
incomingMessagesHash: bigint;
|
|
42
|
+
blockNumber: bigint;
|
|
39
43
|
}>, "fromFields"> & {
|
|
40
44
|
fromFields: (fields: import("o1js/dist/node/lib/provable/field").Field[]) => {
|
|
41
45
|
transactionsHash: import("o1js/dist/node/lib/provable/field").Field;
|
|
@@ -44,6 +48,7 @@ declare const BlockProverPublicInput_base: (new (value: {
|
|
|
44
48
|
blockHashRoot: import("o1js/dist/node/lib/provable/field").Field;
|
|
45
49
|
eternalTransactionsHash: import("o1js/dist/node/lib/provable/field").Field;
|
|
46
50
|
incomingMessagesHash: import("o1js/dist/node/lib/provable/field").Field;
|
|
51
|
+
blockNumber: import("o1js/dist/node/lib/provable/field").Field;
|
|
47
52
|
};
|
|
48
53
|
} & {
|
|
49
54
|
fromValue: (value: {
|
|
@@ -53,6 +58,7 @@ declare const BlockProverPublicInput_base: (new (value: {
|
|
|
53
58
|
blockHashRoot: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field;
|
|
54
59
|
eternalTransactionsHash: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field;
|
|
55
60
|
incomingMessagesHash: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field;
|
|
61
|
+
blockNumber: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field;
|
|
56
62
|
}) => {
|
|
57
63
|
transactionsHash: import("o1js/dist/node/lib/provable/field").Field;
|
|
58
64
|
stateRoot: import("o1js/dist/node/lib/provable/field").Field;
|
|
@@ -60,6 +66,7 @@ declare const BlockProverPublicInput_base: (new (value: {
|
|
|
60
66
|
blockHashRoot: import("o1js/dist/node/lib/provable/field").Field;
|
|
61
67
|
eternalTransactionsHash: import("o1js/dist/node/lib/provable/field").Field;
|
|
62
68
|
incomingMessagesHash: import("o1js/dist/node/lib/provable/field").Field;
|
|
69
|
+
blockNumber: import("o1js/dist/node/lib/provable/field").Field;
|
|
63
70
|
};
|
|
64
71
|
toInput: (x: {
|
|
65
72
|
transactionsHash: import("o1js/dist/node/lib/provable/field").Field;
|
|
@@ -68,6 +75,7 @@ declare const BlockProverPublicInput_base: (new (value: {
|
|
|
68
75
|
blockHashRoot: import("o1js/dist/node/lib/provable/field").Field;
|
|
69
76
|
eternalTransactionsHash: import("o1js/dist/node/lib/provable/field").Field;
|
|
70
77
|
incomingMessagesHash: import("o1js/dist/node/lib/provable/field").Field;
|
|
78
|
+
blockNumber: import("o1js/dist/node/lib/provable/field").Field;
|
|
71
79
|
}) => {
|
|
72
80
|
fields?: import("o1js/dist/node/lib/provable/field").Field[] | undefined;
|
|
73
81
|
packed?: [import("o1js/dist/node/lib/provable/field").Field, number][] | undefined;
|
|
@@ -79,6 +87,7 @@ declare const BlockProverPublicInput_base: (new (value: {
|
|
|
79
87
|
blockHashRoot: import("o1js/dist/node/lib/provable/field").Field;
|
|
80
88
|
eternalTransactionsHash: import("o1js/dist/node/lib/provable/field").Field;
|
|
81
89
|
incomingMessagesHash: import("o1js/dist/node/lib/provable/field").Field;
|
|
90
|
+
blockNumber: import("o1js/dist/node/lib/provable/field").Field;
|
|
82
91
|
}) => {
|
|
83
92
|
transactionsHash: string;
|
|
84
93
|
stateRoot: string;
|
|
@@ -86,6 +95,7 @@ declare const BlockProverPublicInput_base: (new (value: {
|
|
|
86
95
|
blockHashRoot: string;
|
|
87
96
|
eternalTransactionsHash: string;
|
|
88
97
|
incomingMessagesHash: string;
|
|
98
|
+
blockNumber: string;
|
|
89
99
|
};
|
|
90
100
|
fromJSON: (x: {
|
|
91
101
|
transactionsHash: string;
|
|
@@ -94,6 +104,7 @@ declare const BlockProverPublicInput_base: (new (value: {
|
|
|
94
104
|
blockHashRoot: string;
|
|
95
105
|
eternalTransactionsHash: string;
|
|
96
106
|
incomingMessagesHash: string;
|
|
107
|
+
blockNumber: string;
|
|
97
108
|
}) => {
|
|
98
109
|
transactionsHash: import("o1js/dist/node/lib/provable/field").Field;
|
|
99
110
|
stateRoot: import("o1js/dist/node/lib/provable/field").Field;
|
|
@@ -101,6 +112,7 @@ declare const BlockProverPublicInput_base: (new (value: {
|
|
|
101
112
|
blockHashRoot: import("o1js/dist/node/lib/provable/field").Field;
|
|
102
113
|
eternalTransactionsHash: import("o1js/dist/node/lib/provable/field").Field;
|
|
103
114
|
incomingMessagesHash: import("o1js/dist/node/lib/provable/field").Field;
|
|
115
|
+
blockNumber: import("o1js/dist/node/lib/provable/field").Field;
|
|
104
116
|
};
|
|
105
117
|
empty: () => {
|
|
106
118
|
transactionsHash: import("o1js/dist/node/lib/provable/field").Field;
|
|
@@ -109,6 +121,7 @@ declare const BlockProverPublicInput_base: (new (value: {
|
|
|
109
121
|
blockHashRoot: import("o1js/dist/node/lib/provable/field").Field;
|
|
110
122
|
eternalTransactionsHash: import("o1js/dist/node/lib/provable/field").Field;
|
|
111
123
|
incomingMessagesHash: import("o1js/dist/node/lib/provable/field").Field;
|
|
124
|
+
blockNumber: import("o1js/dist/node/lib/provable/field").Field;
|
|
112
125
|
};
|
|
113
126
|
};
|
|
114
127
|
export declare class BlockProverPublicInput extends BlockProverPublicInput_base {
|
|
@@ -245,7 +258,7 @@ declare const BlockProverPublicOutput_base: (new (value: {
|
|
|
245
258
|
};
|
|
246
259
|
};
|
|
247
260
|
export declare class BlockProverPublicOutput extends BlockProverPublicOutput_base {
|
|
248
|
-
equals(input: BlockProverPublicInput, closed: Bool
|
|
261
|
+
equals(input: BlockProverPublicInput, closed: Bool): Bool;
|
|
249
262
|
}
|
|
250
263
|
export type BlockProverProof = Proof<BlockProverPublicInput, BlockProverPublicOutput>;
|
|
251
264
|
declare const BlockProverExecutionData_base: (new (value: {
|
|
@@ -385,10 +398,11 @@ export declare class BlockProverExecutionData extends BlockProverExecutionData_b
|
|
|
385
398
|
export declare class DynamicRuntimeProof extends DynamicProof<Void, MethodPublicOutput> {
|
|
386
399
|
static publicInputType: import("o1js/dist/node/lib/provable/types/struct").ProvablePureExtended<void, void, null>;
|
|
387
400
|
static publicOutputType: typeof MethodPublicOutput;
|
|
401
|
+
static maxProofsVerified: 0;
|
|
388
402
|
}
|
|
389
|
-
export interface BlockProvable extends WithZkProgrammable<BlockProverPublicInput, BlockProverPublicOutput
|
|
403
|
+
export interface BlockProvable extends WithZkProgrammable<BlockProverPublicInput, BlockProverPublicOutput>, CompilableModule {
|
|
390
404
|
proveTransaction: (publicInput: BlockProverPublicInput, stateProof: StateTransitionProof, appProof: DynamicRuntimeProof, executionData: BlockProverExecutionData, verificationKeyAttestation: RuntimeVerificationKeyAttestation) => Promise<BlockProverPublicOutput>;
|
|
391
|
-
proveBlock: (publicInput: BlockProverPublicInput, networkState: NetworkState, blockWitness: BlockHashMerkleTreeWitness,
|
|
405
|
+
proveBlock: (publicInput: BlockProverPublicInput, networkState: NetworkState, blockWitness: BlockHashMerkleTreeWitness, transactionProof: BlockProverProof) => Promise<BlockProverPublicOutput>;
|
|
392
406
|
merge: (publicInput: BlockProverPublicInput, proof1: BlockProverProof, proof2: BlockProverProof) => Promise<BlockProverPublicOutput>;
|
|
393
407
|
}
|
|
394
408
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlockProvable.d.ts","sourceRoot":"","sources":["../../../src/prover/block/BlockProvable.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,YAAY,
|
|
1
|
+
{"version":3,"file":"BlockProvable.d.ts","sourceRoot":"","sources":["../../../src/prover/block/BlockProvable.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,YAAY,EAEZ,KAAK,EACL,SAAS,EAET,IAAI,EACL,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,iCAAiC,EAAE,MAAM,4CAA4C,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE/F,qBAAa,sBAAuB,SAAQ,2BAQ1C;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEL,qBAAa,uBAAwB,SAAQ,4BAS3C;IACO,MAAM,CAAC,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,IAAI,GAAG,IAAI;CAUjE;AAED,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAClC,sBAAsB,EACtB,uBAAuB,CACxB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEF,qBAAa,wBAAyB,SAAQ,6BAI5C;CAAG;AAEL,qBAAa,mBAAoB,SAAQ,YAAY,CACnD,IAAI,EACJ,kBAAkB,CACnB;IACC,MAAM,CAAC,eAAe,4FAAQ;IAE9B,MAAM,CAAC,gBAAgB,4BAAsB;IAG7C,MAAM,CAAC,iBAAiB,IAAc;CACvC;AAED,MAAM,WAAW,aACf,SAAQ,kBAAkB,CAAC,sBAAsB,EAAE,uBAAuB,CAAC,EACzE,gBAAgB;IAClB,gBAAgB,EAAE,CAChB,WAAW,EAAE,sBAAsB,EACnC,UAAU,EAAE,oBAAoB,EAChC,QAAQ,EAAE,mBAAmB,EAC7B,aAAa,EAAE,wBAAwB,EACvC,0BAA0B,EAAE,iCAAiC,KAC1D,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAEtC,UAAU,EAAE,CACV,WAAW,EAAE,sBAAsB,EACnC,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,0BAA0B,EAExC,gBAAgB,EAAE,gBAAgB,KAC/B,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAEtC,KAAK,EAAE,CACL,WAAW,EAAE,sBAAsB,EACnC,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,gBAAgB,KACrB,OAAO,CAAC,uBAAuB,CAAC,CAAC;CACvC"}
|
|
@@ -9,6 +9,7 @@ export class BlockProverPublicInput extends Struct({
|
|
|
9
9
|
blockHashRoot: Field,
|
|
10
10
|
eternalTransactionsHash: Field,
|
|
11
11
|
incomingMessagesHash: Field,
|
|
12
|
+
blockNumber: Field,
|
|
12
13
|
}) {
|
|
13
14
|
}
|
|
14
15
|
export class BlockProverPublicOutput extends Struct({
|
|
@@ -21,11 +22,10 @@ export class BlockProverPublicOutput extends Struct({
|
|
|
21
22
|
closed: Bool,
|
|
22
23
|
blockNumber: Field,
|
|
23
24
|
}) {
|
|
24
|
-
equals(input, closed
|
|
25
|
+
equals(input, closed) {
|
|
25
26
|
const output2 = BlockProverPublicOutput.toFields({
|
|
26
27
|
...input,
|
|
27
28
|
closed,
|
|
28
|
-
blockNumber,
|
|
29
29
|
});
|
|
30
30
|
const output1 = BlockProverPublicOutput.toFields(this);
|
|
31
31
|
return output1
|
|
@@ -43,3 +43,6 @@ export class DynamicRuntimeProof extends DynamicProof {
|
|
|
43
43
|
}
|
|
44
44
|
DynamicRuntimeProof.publicInputType = Void;
|
|
45
45
|
DynamicRuntimeProof.publicOutputType = MethodPublicOutput;
|
|
46
|
+
// TODO this won't be 0 for proofs-as-args
|
|
47
|
+
DynamicRuntimeProof.maxProofsVerified = 0;
|
|
48
|
+
//# sourceMappingURL=BlockProvable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockProvable.js","sourceRoot":"","sources":["../../../src/prover/block/BlockProvable.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,KAAK,EAEL,SAAS,EACT,MAAM,EACN,IAAI,GACL,MAAM,MAAM,CAAC;AAId,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAKhE,MAAM,OAAO,sBAAuB,SAAQ,MAAM,CAAC;IACjD,gBAAgB,EAAE,KAAK;IACvB,SAAS,EAAE,KAAK;IAChB,gBAAgB,EAAE,KAAK;IACvB,aAAa,EAAE,KAAK;IACpB,uBAAuB,EAAE,KAAK;IAC9B,oBAAoB,EAAE,KAAK;IAC3B,WAAW,EAAE,KAAK;CACnB,CAAC;CAAG;AAEL,MAAM,OAAO,uBAAwB,SAAQ,MAAM,CAAC;IAClD,gBAAgB,EAAE,KAAK;IACvB,SAAS,EAAE,KAAK;IAChB,gBAAgB,EAAE,KAAK;IACvB,aAAa,EAAE,KAAK;IACpB,uBAAuB,EAAE,KAAK;IAC9B,oBAAoB,EAAE,KAAK;IAC3B,MAAM,EAAE,IAAI;IACZ,WAAW,EAAE,KAAK;CACnB,CAAC;IACO,MAAM,CAAC,KAA6B,EAAE,MAAY;QACvD,MAAM,OAAO,GAAG,uBAAuB,CAAC,QAAQ,CAAC;YAC/C,GAAG,KAAK;YACR,MAAM;SACP,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvD,OAAO,OAAO;aACX,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;aACrD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;CACF;AAOD,MAAM,OAAO,wBAAyB,SAAQ,MAAM,CAAC;IACnD,WAAW,EAAE,kBAAkB;IAC/B,SAAS,EAAE,SAAS;IACpB,YAAY,EAAE,YAAY;CAC3B,CAAC;CAAG;AAEL,MAAM,OAAO,mBAAoB,SAAQ,YAGxC;;AACQ,mCAAe,GAAG,IAAI,CAAC;AAEvB,oCAAgB,GAAG,kBAAkB,CAAC;AAE7C,0CAA0C;AACnC,qCAAiB,GAAG,CAAU,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { DynamicProof, Field, Proof, VerificationKey } from "o1js";
|
|
2
|
-
import { AreProofsEnabled, PlainZkProgram, WithZkProgrammable, ZkProgrammable } from "@proto-kit/common";
|
|
2
|
+
import { AreProofsEnabled, CompilableModule, CompileArtifact, CompileRegistry, PlainZkProgram, WithZkProgrammable, ZkProgrammable } from "@proto-kit/common";
|
|
3
3
|
import { MethodPublicOutput } from "../../model/MethodPublicOutput";
|
|
4
4
|
import { ProtocolModule } from "../../protocol/ProtocolModule";
|
|
5
|
-
import { StateTransitionProof, StateTransitionProverPublicInput, StateTransitionProverPublicOutput } from "../statetransition/StateTransitionProvable";
|
|
5
|
+
import { StateTransitionProof, StateTransitionProvable, StateTransitionProverPublicInput, StateTransitionProverPublicOutput } from "../statetransition/StateTransitionProvable";
|
|
6
6
|
import { ProvableTransactionHook } from "../../protocol/ProvableTransactionHook";
|
|
7
7
|
import { ProvableBlockHook } from "../../protocol/ProvableBlockHook";
|
|
8
8
|
import { NetworkState } from "../../model/network/NetworkState";
|
|
@@ -48,7 +48,8 @@ export declare class BlockProverProgrammable extends ZkProgrammable<BlockProverP
|
|
|
48
48
|
private readonly blockHooks;
|
|
49
49
|
private readonly verificationKeyService;
|
|
50
50
|
constructor(prover: BlockProver, stateTransitionProver: ZkProgrammable<StateTransitionProverPublicInput, StateTransitionProverPublicOutput>, runtime: ZkProgrammable<undefined, MethodPublicOutput>, transactionHooks: ProvableTransactionHook<unknown>[], blockHooks: ProvableBlockHook<unknown>[], verificationKeyService: MinimalVKTreeService);
|
|
51
|
-
|
|
51
|
+
name: string;
|
|
52
|
+
get areProofsEnabled(): AreProofsEnabled | undefined;
|
|
52
53
|
/**
|
|
53
54
|
* Applies and checks the two proofs and applies the corresponding state
|
|
54
55
|
* changes to the given state
|
|
@@ -66,7 +67,7 @@ export declare class BlockProverProgrammable extends ZkProgrammable<BlockProverP
|
|
|
66
67
|
private addTransactionToBundle;
|
|
67
68
|
proveTransaction(publicInput: BlockProverPublicInput, stateProof: StateTransitionProof, runtimeProof: DynamicRuntimeProof, executionData: BlockProverExecutionData, verificationKeyWitness: RuntimeVerificationKeyAttestation): Promise<BlockProverPublicOutput>;
|
|
68
69
|
private assertSTProofInput;
|
|
69
|
-
proveBlock(publicInput: BlockProverPublicInput, networkState: NetworkState, blockWitness: BlockHashMerkleTreeWitness,
|
|
70
|
+
proveBlock(publicInput: BlockProverPublicInput, networkState: NetworkState, blockWitness: BlockHashMerkleTreeWitness, transactionProof: BlockProverProof): Promise<BlockProverPublicOutput>;
|
|
70
71
|
merge(publicInput: BlockProverPublicInput, proof1: BlockProverProof, proof2: BlockProverProof): Promise<BlockProverPublicOutput>;
|
|
71
72
|
/**
|
|
72
73
|
* Creates the BlockProver ZkProgram.
|
|
@@ -80,13 +81,14 @@ export declare class BlockProverProgrammable extends ZkProgrammable<BlockProverP
|
|
|
80
81
|
* a StateTransitionProof into a single BlockProof, that can
|
|
81
82
|
* then be merged to be committed to the base-layer contract
|
|
82
83
|
*/
|
|
83
|
-
export declare class BlockProver extends ProtocolModule implements BlockProvable {
|
|
84
|
-
readonly stateTransitionProver: WithZkProgrammable<StateTransitionProverPublicInput, StateTransitionProverPublicOutput
|
|
85
|
-
readonly runtime: WithZkProgrammable<undefined, MethodPublicOutput
|
|
84
|
+
export declare class BlockProver extends ProtocolModule implements BlockProvable, CompilableModule {
|
|
85
|
+
readonly stateTransitionProver: WithZkProgrammable<StateTransitionProverPublicInput, StateTransitionProverPublicOutput> & StateTransitionProvable;
|
|
86
|
+
readonly runtime: WithZkProgrammable<undefined, MethodPublicOutput> & CompilableModule;
|
|
86
87
|
zkProgrammable: BlockProverProgrammable;
|
|
87
|
-
constructor(stateTransitionProver: WithZkProgrammable<StateTransitionProverPublicInput, StateTransitionProverPublicOutput
|
|
88
|
+
constructor(stateTransitionProver: WithZkProgrammable<StateTransitionProverPublicInput, StateTransitionProverPublicOutput> & StateTransitionProvable, runtime: WithZkProgrammable<undefined, MethodPublicOutput> & CompilableModule, transactionHooks: ProvableTransactionHook<unknown>[], blockHooks: ProvableBlockHook<unknown>[], verificationKeyService: RuntimeVerificationKeyRootService);
|
|
89
|
+
compile(registry: CompileRegistry): Promise<Record<string, CompileArtifact> | undefined>;
|
|
88
90
|
proveTransaction(publicInput: BlockProverPublicInput, stateProof: StateTransitionProof, appProof: DynamicRuntimeProof, executionData: BlockProverExecutionData, verificationKeyAttestation: RuntimeVerificationKeyAttestation): Promise<BlockProverPublicOutput>;
|
|
89
|
-
proveBlock(publicInput: BlockProverPublicInput, networkState: NetworkState, blockWitness: BlockHashMerkleTreeWitness,
|
|
91
|
+
proveBlock(publicInput: BlockProverPublicInput, networkState: NetworkState, blockWitness: BlockHashMerkleTreeWitness, transactionProof: BlockProverProof): Promise<BlockProverPublicOutput>;
|
|
90
92
|
merge(publicInput: BlockProverPublicInput, proof1: BlockProverProof, proof2: BlockProverProof): Promise<BlockProverPublicOutput>;
|
|
91
93
|
}
|
|
92
94
|
//# sourceMappingURL=BlockProver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlockProver.d.ts","sourceRoot":"","sources":["../../../src/prover/block/BlockProver.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,YAAY,EACZ,KAAK,EAEL,KAAK,EAGL,eAAe,EAEhB,MAAM,MAAM,CAAC;AAEd,OAAO,EACL,gBAAgB,EAChB,cAAc,EAEd,kBAAkB,EAClB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EACL,oBAAoB,EACpB,gCAAgC,EAChC,iCAAiC,EAClC,MAAM,4CAA4C,CAAC;AAMpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AAEjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAQhE,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,0BAA0B,EAE3B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAEL,oBAAoB,EACpB,iCAAiC,EAClC,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,iCAAiC,EAAE,MAAM,8CAA8C,CAAC;AA+BjG,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,SAAS,EAAE,KAAK,CAAC;IAEjB;;;OAGG;IACH,gBAAgB,EAAE,KAAK,CAAC;IAExB;;;OAGG;IACH,gBAAgB,EAAE,KAAK,CAAC;IAExB;;;OAGG;IACH,aAAa,EAAE,KAAK,CAAC;IAErB;;;;OAIG;IACH,uBAAuB,EAAE,KAAK,CAAC;IAE/B,oBAAoB,EAAE,KAAK,CAAC;CAC7B;
|
|
1
|
+
{"version":3,"file":"BlockProver.d.ts","sourceRoot":"","sources":["../../../src/prover/block/BlockProver.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
12
12
|
};
|
|
13
13
|
import { Bool, Field, Poseidon, Provable, SelfProof, ZkProgram, } from "o1js";
|
|
14
14
|
import { container, inject, injectable, injectAll } from "tsyringe";
|
|
15
|
-
import { provableMethod, ZkProgrammable, } from "@proto-kit/common";
|
|
15
|
+
import { MAX_FIELD, provableMethod, ZkProgrammable, } from "@proto-kit/common";
|
|
16
16
|
import { DefaultProvableHashList } from "../../utils/ProvableHashList";
|
|
17
17
|
import { ProtocolModule } from "../../protocol/ProtocolModule";
|
|
18
18
|
import { RuntimeTransaction } from "../../model/transaction/RuntimeTransaction";
|
|
@@ -37,9 +37,6 @@ const errors = {
|
|
|
37
37
|
invalidZkProgramTreeRoot: () => "Root hash of the provided zkProgram config witness is invalid",
|
|
38
38
|
invalidZkProgramConfigMethodId: () => "Method id of the provided zkProgram config does not match the executed transaction method id",
|
|
39
39
|
};
|
|
40
|
-
function maxField() {
|
|
41
|
-
return Field(Field.ORDER - 1n);
|
|
42
|
-
}
|
|
43
40
|
export class BlockProverProgrammable extends ZkProgrammable {
|
|
44
41
|
constructor(prover, stateTransitionProver, runtime, transactionHooks, blockHooks, verificationKeyService) {
|
|
45
42
|
super();
|
|
@@ -49,9 +46,10 @@ export class BlockProverProgrammable extends ZkProgrammable {
|
|
|
49
46
|
this.transactionHooks = transactionHooks;
|
|
50
47
|
this.blockHooks = blockHooks;
|
|
51
48
|
this.verificationKeyService = verificationKeyService;
|
|
49
|
+
this.name = "BlockProver";
|
|
52
50
|
}
|
|
53
|
-
get
|
|
54
|
-
return this.prover.
|
|
51
|
+
get areProofsEnabled() {
|
|
52
|
+
return this.prover.areProofsEnabled;
|
|
55
53
|
}
|
|
56
54
|
/**
|
|
57
55
|
* Applies and checks the two proofs and applies the corresponding state
|
|
@@ -182,6 +180,7 @@ export class BlockProverProgrammable extends ZkProgrammable {
|
|
|
182
180
|
...publicInput,
|
|
183
181
|
};
|
|
184
182
|
state.networkStateHash.assertEquals(executionData.networkState.hash(), "ExecutionData Networkstate doesn't equal public input hash");
|
|
183
|
+
publicInput.blockNumber.assertEquals(MAX_FIELD, "blockNumber has to be MAX for transaction proofs");
|
|
185
184
|
// Verify the [methodId, vk] tuple against the baked-in vk tree root
|
|
186
185
|
const { verificationKey, witness: verificationKeyTreeWitness } = verificationKeyWitness;
|
|
187
186
|
const root = Field(this.verificationKeyService.getRoot());
|
|
@@ -194,7 +193,7 @@ export class BlockProverProgrammable extends ZkProgrammable {
|
|
|
194
193
|
const stateTo = await this.applyTransaction(bundleInclusionState, stateProof, runtimeProof, executionData, verificationKey);
|
|
195
194
|
return new BlockProverPublicOutput({
|
|
196
195
|
...stateTo,
|
|
197
|
-
blockNumber:
|
|
196
|
+
blockNumber: publicInput.blockNumber,
|
|
198
197
|
closed: Bool(false),
|
|
199
198
|
});
|
|
200
199
|
}
|
|
@@ -204,7 +203,9 @@ export class BlockProverProgrammable extends ZkProgrammable {
|
|
|
204
203
|
// Assert from state roots
|
|
205
204
|
stateRoot.assertEquals(stateTransitionProof.publicInput.stateRoot, errors.propertyNotMatching("from state root"));
|
|
206
205
|
}
|
|
207
|
-
async proveBlock(publicInput, networkState, blockWitness,
|
|
206
|
+
async proveBlock(publicInput, networkState, blockWitness,
|
|
207
|
+
// stateTransitionProof: StateTransitionProof,
|
|
208
|
+
transactionProof) {
|
|
208
209
|
const state = {
|
|
209
210
|
...publicInput,
|
|
210
211
|
};
|
|
@@ -217,25 +218,32 @@ export class BlockProverProgrammable extends ZkProgrammable {
|
|
|
217
218
|
transactionProof.publicInput.networkStateHash.assertEquals(transactionProof.publicOutput.networkStateHash, "TransactionProof cannot alter the network state");
|
|
218
219
|
transactionProof.publicInput.eternalTransactionsHash.assertEquals(state.eternalTransactionsHash, "TransactionProof starting eternalTransactionHash not matching");
|
|
219
220
|
transactionProof.publicInput.incomingMessagesHash.assertEquals(state.incomingMessagesHash, "TransactionProof starting incomingMessagesHash not matching");
|
|
221
|
+
// TODO Reintroduce ST Proofs
|
|
220
222
|
// Verify ST Proof only if STs have been emitted,
|
|
221
223
|
// otherwise we can input a dummy proof
|
|
222
|
-
const stsEmitted = stateTransitionProof.publicOutput.stateTransitionsHash
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
//
|
|
224
|
+
// const stsEmitted = stateTransitionProof.publicOutput.stateTransitionsHash
|
|
225
|
+
// .equals(0)
|
|
226
|
+
// .and(stateTransitionProof.publicOutput.protocolTransitionsHash.equals(0))
|
|
227
|
+
// .not();
|
|
228
|
+
// Provable.log("VerifyIf 1", stsEmitted);
|
|
229
|
+
// stateTransitionProof.verifyIf(Bool(false));
|
|
230
|
+
// stateTransitionProof.verifyIf(stsEmitted);
|
|
231
|
+
// Verify Transaction proof if it has at least 1 tx - i.e. the
|
|
232
|
+
// input and output doesn't match fully
|
|
228
233
|
// We have to compare the whole input and output because we can make no
|
|
229
234
|
// assumptions about the values, since it can be an arbitrary dummy-proof
|
|
230
235
|
const txProofOutput = transactionProof.publicOutput;
|
|
231
|
-
const
|
|
232
|
-
|
|
236
|
+
const isEmptyTransition = txProofOutput.equals(transactionProof.publicInput, txProofOutput.closed);
|
|
237
|
+
Provable.log("VerifyIf 2", isEmptyTransition.not());
|
|
238
|
+
transactionProof.verifyIf(isEmptyTransition.not());
|
|
233
239
|
// 2. Execute beforeBlock hooks
|
|
234
240
|
const beforeBlockResult = await this.executeBlockHooks(state, networkState, "beforeBlock");
|
|
235
|
-
const beforeBlockHashList = new StateTransitionReductionList(
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
241
|
+
// const beforeBlockHashList = new StateTransitionReductionList(
|
|
242
|
+
// ProvableStateTransition
|
|
243
|
+
// );
|
|
244
|
+
// beforeBlockResult.stateTransitions.forEach((st) => {
|
|
245
|
+
// beforeBlockHashList.push(st.toProvable());
|
|
246
|
+
// });
|
|
239
247
|
// We are reusing protocolSTs here as beforeBlock STs
|
|
240
248
|
// TODO Not possible atm bcs we can't have a seperation between protocol/runtime state roots,
|
|
241
249
|
// which we would for both before and after to be able to emit STs
|
|
@@ -244,7 +252,10 @@ export class BlockProverProgrammable extends ZkProgrammable {
|
|
|
244
252
|
// );
|
|
245
253
|
// state.stateRoot = stateTransitionProof.publicInput.protocolStateRoot;
|
|
246
254
|
// TODO Only for now
|
|
247
|
-
beforeBlockHashList.commitment.assertEquals(
|
|
255
|
+
// beforeBlockHashList.commitment.assertEquals(
|
|
256
|
+
// Field(0),
|
|
257
|
+
// "beforeBlock() cannot emit state transitions yet"
|
|
258
|
+
// );
|
|
248
259
|
// 4. Apply TX-type BlockProof
|
|
249
260
|
transactionProof.publicInput.networkStateHash.assertEquals(beforeBlockResult.networkState.hash(), "TransactionProof networkstate hash not matching beforeBlock hook result");
|
|
250
261
|
transactionProof.publicInput.stateRoot.assertEquals(state.stateRoot, "TransactionProof input state root not matching blockprover state root");
|
|
@@ -255,7 +266,7 @@ export class BlockProverProgrammable extends ZkProgrammable {
|
|
|
255
266
|
state.incomingMessagesHash =
|
|
256
267
|
transactionProof.publicOutput.incomingMessagesHash;
|
|
257
268
|
// 5. Execute afterBlock hooks
|
|
258
|
-
this.assertSTProofInput(stateTransitionProof, state.stateRoot);
|
|
269
|
+
// this.assertSTProofInput(stateTransitionProof, state.stateRoot);
|
|
259
270
|
const afterBlockResult = await this.executeBlockHooks(state, beforeBlockResult.networkState, "afterBlock");
|
|
260
271
|
const afterBlockHashList = new StateTransitionReductionList(ProvableStateTransition);
|
|
261
272
|
afterBlockResult.stateTransitions.forEach((st) => {
|
|
@@ -263,11 +274,19 @@ export class BlockProverProgrammable extends ZkProgrammable {
|
|
|
263
274
|
});
|
|
264
275
|
state.networkStateHash = afterBlockResult.networkState.hash();
|
|
265
276
|
// We are reusing runtime STs here as afterBlock STs
|
|
266
|
-
stateTransitionProof.publicInput.
|
|
267
|
-
|
|
277
|
+
// stateTransitionProof.publicInput.protocolTransitionsHash.assertEquals(
|
|
278
|
+
// afterBlockHashList.commitment,
|
|
279
|
+
// "STProof from-ST-hash not matching generated ST-hash from afterBlock hooks"
|
|
280
|
+
// );
|
|
281
|
+
// state.stateRoot = Provable.if(
|
|
282
|
+
// stsEmitted,
|
|
283
|
+
// stateTransitionProof.publicOutput.stateRoot,
|
|
284
|
+
// state.stateRoot
|
|
285
|
+
// );
|
|
268
286
|
// 6. Close block
|
|
269
287
|
// Calculate the new block index
|
|
270
288
|
const blockIndex = blockWitness.calculateIndex();
|
|
289
|
+
blockIndex.assertEquals(publicInput.blockNumber);
|
|
271
290
|
blockWitness
|
|
272
291
|
.calculateRoot(Field(0))
|
|
273
292
|
.assertEquals(publicInput.blockHashRoot, "Supplied block hash witness not matching state root");
|
|
@@ -278,7 +297,7 @@ export class BlockProverProgrammable extends ZkProgrammable {
|
|
|
278
297
|
}).hash());
|
|
279
298
|
return new BlockProverPublicOutput({
|
|
280
299
|
...state,
|
|
281
|
-
blockNumber: blockIndex,
|
|
300
|
+
blockNumber: blockIndex.add(1),
|
|
282
301
|
closed: Bool(true),
|
|
283
302
|
});
|
|
284
303
|
}
|
|
@@ -326,17 +345,20 @@ export class BlockProverProgrammable extends ZkProgrammable {
|
|
|
326
345
|
// }else if(proof1.closed || proof2.closed{
|
|
327
346
|
// assert proof1.height == proof2.height
|
|
328
347
|
// }
|
|
329
|
-
const proof1Height = proof1.publicOutput.blockNumber;
|
|
330
348
|
const proof1Closed = proof1.publicOutput.closed;
|
|
331
|
-
const proof2Height = proof2.publicOutput.blockNumber;
|
|
332
349
|
const proof2Closed = proof2.publicOutput.closed;
|
|
333
|
-
const
|
|
334
|
-
.equals(
|
|
335
|
-
.and(
|
|
350
|
+
const blockNumberProgressionValid = publicInput.blockNumber
|
|
351
|
+
.equals(proof1.publicInput.blockNumber)
|
|
352
|
+
.and(proof1.publicOutput.blockNumber.equals(proof2.publicInput.blockNumber));
|
|
353
|
+
// For tx proofs, we check that the progression starts and end with MAX
|
|
354
|
+
// in addition to that both proofs are non-closed
|
|
355
|
+
const isValidTransactionMerge = publicInput.blockNumber
|
|
356
|
+
.equals(MAX_FIELD)
|
|
357
|
+
.and(blockNumberProgressionValid)
|
|
336
358
|
.and(proof1Closed.or(proof2Closed).not());
|
|
337
359
|
const isValidClosedMerge = proof1Closed
|
|
338
360
|
.and(proof2Closed)
|
|
339
|
-
.and(
|
|
361
|
+
.and(blockNumberProgressionValid);
|
|
340
362
|
isValidTransactionMerge
|
|
341
363
|
.or(isValidClosedMerge)
|
|
342
364
|
.assertTrue("Invalid BlockProof merge");
|
|
@@ -347,9 +369,8 @@ export class BlockProverProgrammable extends ZkProgrammable {
|
|
|
347
369
|
blockHashRoot: proof2.publicOutput.blockHashRoot,
|
|
348
370
|
eternalTransactionsHash: proof2.publicOutput.eternalTransactionsHash,
|
|
349
371
|
incomingMessagesHash: proof2.publicOutput.incomingMessagesHash,
|
|
350
|
-
// Provable.if(isValidClosedMerge, Bool(true), Bool(false));
|
|
351
372
|
closed: isValidClosedMerge,
|
|
352
|
-
blockNumber:
|
|
373
|
+
blockNumber: proof2.publicOutput.blockNumber,
|
|
353
374
|
});
|
|
354
375
|
}
|
|
355
376
|
/**
|
|
@@ -360,7 +381,6 @@ export class BlockProverProgrammable extends ZkProgrammable {
|
|
|
360
381
|
zkProgramFactory() {
|
|
361
382
|
const { prover, stateTransitionProver } = this;
|
|
362
383
|
const StateTransitionProofClass = stateTransitionProver.zkProgram[0].Proof;
|
|
363
|
-
const RuntimeProofClass = DynamicRuntimeProof;
|
|
364
384
|
const proveTransaction = prover.proveTransaction.bind(prover);
|
|
365
385
|
const proveBlock = prover.proveBlock.bind(prover);
|
|
366
386
|
const merge = prover.merge.bind(prover);
|
|
@@ -372,7 +392,7 @@ export class BlockProverProgrammable extends ZkProgrammable {
|
|
|
372
392
|
proveTransaction: {
|
|
373
393
|
privateInputs: [
|
|
374
394
|
StateTransitionProofClass,
|
|
375
|
-
|
|
395
|
+
DynamicRuntimeProof,
|
|
376
396
|
BlockProverExecutionData,
|
|
377
397
|
RuntimeVerificationKeyAttestation,
|
|
378
398
|
],
|
|
@@ -384,11 +404,15 @@ export class BlockProverProgrammable extends ZkProgrammable {
|
|
|
384
404
|
privateInputs: [
|
|
385
405
|
NetworkState,
|
|
386
406
|
BlockHashMerkleTreeWitness,
|
|
387
|
-
StateTransitionProofClass,
|
|
407
|
+
// StateTransitionProofClass,
|
|
388
408
|
(SelfProof),
|
|
389
409
|
],
|
|
390
|
-
async method(publicInput, networkState, blockWitness,
|
|
391
|
-
|
|
410
|
+
async method(publicInput, networkState, blockWitness,
|
|
411
|
+
// stateTransitionProof: StateTransitionProof,
|
|
412
|
+
transactionProof) {
|
|
413
|
+
return await proveBlock(publicInput, networkState, blockWitness,
|
|
414
|
+
// stateTransitionProof,
|
|
415
|
+
transactionProof);
|
|
392
416
|
},
|
|
393
417
|
},
|
|
394
418
|
merge: {
|
|
@@ -404,11 +428,13 @@ export class BlockProverProgrammable extends ZkProgrammable {
|
|
|
404
428
|
});
|
|
405
429
|
const methods = {
|
|
406
430
|
proveTransaction: program.proveTransaction,
|
|
431
|
+
proveBlock: program.proveBlock,
|
|
407
432
|
merge: program.merge,
|
|
408
433
|
};
|
|
409
434
|
const SelfProofClass = ZkProgram.Proof(program);
|
|
410
435
|
return [
|
|
411
436
|
{
|
|
437
|
+
name: program.name,
|
|
412
438
|
compile: program.compile.bind(program),
|
|
413
439
|
verify: program.verify.bind(program),
|
|
414
440
|
analyzeMethods: program.analyzeMethods.bind(program),
|
|
@@ -431,7 +457,7 @@ __decorate([
|
|
|
431
457
|
__metadata("design:type", Function),
|
|
432
458
|
__metadata("design:paramtypes", [BlockProverPublicInput,
|
|
433
459
|
NetworkState,
|
|
434
|
-
BlockHashMerkleTreeWitness, Object
|
|
460
|
+
BlockHashMerkleTreeWitness, Object]),
|
|
435
461
|
__metadata("design:returntype", Promise)
|
|
436
462
|
], BlockProverProgrammable.prototype, "proveBlock", null);
|
|
437
463
|
__decorate([
|
|
@@ -452,11 +478,22 @@ export let BlockProver = class BlockProver extends ProtocolModule {
|
|
|
452
478
|
this.runtime = runtime;
|
|
453
479
|
this.zkProgrammable = new BlockProverProgrammable(this, stateTransitionProver.zkProgrammable, runtime.zkProgrammable, transactionHooks, blockHooks, verificationKeyService);
|
|
454
480
|
}
|
|
481
|
+
async compile(registry) {
|
|
482
|
+
await registry.forceProverExists(async () => {
|
|
483
|
+
await this.stateTransitionProver.compile(registry);
|
|
484
|
+
await this.runtime.compile(registry);
|
|
485
|
+
});
|
|
486
|
+
return await this.zkProgrammable.compile(registry);
|
|
487
|
+
}
|
|
455
488
|
proveTransaction(publicInput, stateProof, appProof, executionData, verificationKeyAttestation) {
|
|
456
489
|
return this.zkProgrammable.proveTransaction(publicInput, stateProof, appProof, executionData, verificationKeyAttestation);
|
|
457
490
|
}
|
|
458
|
-
proveBlock(publicInput, networkState, blockWitness,
|
|
459
|
-
|
|
491
|
+
proveBlock(publicInput, networkState, blockWitness,
|
|
492
|
+
// stateTransitionProof: StateTransitionProof,
|
|
493
|
+
transactionProof) {
|
|
494
|
+
return this.zkProgrammable.proveBlock(publicInput, networkState, blockWitness,
|
|
495
|
+
// stateTransitionProof,
|
|
496
|
+
transactionProof);
|
|
460
497
|
}
|
|
461
498
|
merge(publicInput, proof1, proof2) {
|
|
462
499
|
return this.zkProgrammable.merge(publicInput, proof1, proof2);
|
|
@@ -470,3 +507,4 @@ BlockProver = __decorate([
|
|
|
470
507
|
__param(3, injectAll("ProvableBlockHook")),
|
|
471
508
|
__metadata("design:paramtypes", [Object, Object, Array, Array, RuntimeVerificationKeyRootService])
|
|
472
509
|
], BlockProver);
|
|
510
|
+
//# sourceMappingURL=BlockProver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockProver.js","sourceRoot":"","sources":["../../../src/prover/block/BlockProver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockHashMerkleTree.js","sourceRoot":"","sources":["../../../../src/prover/block/accummulators/BlockHashMerkleTree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAErD,MAAM,OAAO,mBAAoB,SAAQ,gBAAgB,CAAC,EAAE,CAAC;CAAG;AAChE,MAAM,OAAO,0BAA2B,SAAQ,mBAAmB,CAAC,OAAO;CAAG;AAE9E,MAAM,OAAO,kBAAmB,SAAQ,MAAM,CAAC;IAC7C,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,IAAI;IACZ,kEAAkE;IAClE,kDAAkD;CACnD,CAAC;IACO,IAAI;QACT,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACpE,CAAC;CACF"}
|
|
@@ -34,10 +34,10 @@ declare const RuntimeVerificationKeyAttestation_base: (new (value: {
|
|
|
34
34
|
data: string;
|
|
35
35
|
hash: bigint;
|
|
36
36
|
};
|
|
37
|
-
witness:
|
|
37
|
+
witness: {
|
|
38
38
|
path: import("o1js/dist/node/lib/provable/field").Field[] | bigint[];
|
|
39
39
|
isLeft: import("o1js/dist/node/lib/provable/bool").Bool[] | boolean[];
|
|
40
|
-
};
|
|
40
|
+
} | VKTreeWitness;
|
|
41
41
|
}) => {
|
|
42
42
|
verificationKey: VerificationKey;
|
|
43
43
|
witness: VKTreeWitness;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuntimeVerificationKeyTree.js","sourceRoot":"","sources":["../../../../src/prover/block/accummulators/RuntimeVerificationKeyTree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAEhE,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAChC,MAAM,OAAO,MAAO,SAAQ,gBAAgB,CAAC,aAAa,CAAC;CAAG;AAC9D,MAAM,OAAO,aAAc,SAAQ,MAAM,CAAC,OAAO;CAAG;AAEpD,MAAM,OAAO,iCAAkC,SAAQ,MAAM,CAAC;IAC5D,eAAe,EAAE,eAAe;IAChC,OAAO,EAAE,aAAa;CACvB,CAAC;CAAG;AAEL,MAAM,OAAO,kBAAmB,SAAQ,MAAM,CAAC;IAC7C,QAAQ,EAAE,KAAK;IACf,MAAM,EAAE,KAAK;CACd,CAAC;IACO,IAAI;QACT,OAAO,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;CACF"}
|