@proto-kit/protocol 0.1.1-develop.651 → 0.1.1-develop.833

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (257) hide show
  1. package/LICENSE.md +201 -201
  2. package/dist/blockmodules/AccountStateModule.d.ts +37 -37
  3. package/dist/blockmodules/AccountStateModule.js +43 -43
  4. package/dist/blockmodules/BlockHeightHook.d.ts +6 -6
  5. package/dist/blockmodules/BlockHeightHook.js +15 -15
  6. package/dist/blockmodules/LastStateRootBlockHook.d.ts +7 -7
  7. package/dist/blockmodules/LastStateRootBlockHook.js +15 -15
  8. package/dist/blockmodules/NoopBlockHook.d.ts +8 -8
  9. package/dist/blockmodules/NoopBlockHook.js +9 -9
  10. package/dist/blockmodules/NoopSettlementHook.d.ts +5 -5
  11. package/dist/blockmodules/NoopSettlementHook.d.ts.map +1 -1
  12. package/dist/blockmodules/NoopSettlementHook.js +18 -18
  13. package/dist/blockmodules/NoopTransactionHook.d.ts +5 -5
  14. package/dist/blockmodules/NoopTransactionHook.js +4 -4
  15. package/dist/hooks/AccountStateHook.d.ts +19 -5
  16. package/dist/hooks/AccountStateHook.d.ts.map +1 -1
  17. package/dist/hooks/AccountStateHook.js +9 -10
  18. package/dist/hooks/BlockHeightHook.d.ts +2 -2
  19. package/dist/hooks/BlockHeightHook.d.ts.map +1 -1
  20. package/dist/hooks/BlockHeightHook.js +3 -3
  21. package/dist/hooks/LastStateRootBlockHook.d.ts +2 -2
  22. package/dist/hooks/LastStateRootBlockHook.d.ts.map +1 -1
  23. package/dist/hooks/LastStateRootBlockHook.js +2 -2
  24. package/dist/hooks/NoopBlockHook.d.ts +3 -3
  25. package/dist/hooks/NoopBlockHook.d.ts.map +1 -1
  26. package/dist/hooks/NoopBlockHook.js +2 -2
  27. package/dist/hooks/NoopSettlementHook.d.ts +1 -1
  28. package/dist/hooks/NoopSettlementHook.d.ts.map +1 -1
  29. package/dist/hooks/NoopSettlementHook.js +2 -3
  30. package/dist/hooks/NoopTransactionHook.d.ts +1 -1
  31. package/dist/hooks/NoopTransactionHook.d.ts.map +1 -1
  32. package/dist/hooks/NoopTransactionHook.js +4 -1
  33. package/dist/index.d.ts +0 -2
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +0 -2
  36. package/dist/model/MethodPublicOutput.d.ts +68 -34
  37. package/dist/model/MethodPublicOutput.d.ts.map +1 -1
  38. package/dist/model/Option.d.ts +39 -20
  39. package/dist/model/Option.d.ts.map +1 -1
  40. package/dist/model/Option.js +1 -0
  41. package/dist/model/Path.d.ts +1 -1
  42. package/dist/model/Path.d.ts.map +1 -1
  43. package/dist/model/Path.js +0 -2
  44. package/dist/model/StateTransition.d.ts +48 -12
  45. package/dist/model/StateTransition.d.ts.map +1 -1
  46. package/dist/model/StateTransitionProvableBatch.d.ts +71 -14
  47. package/dist/model/StateTransitionProvableBatch.d.ts.map +1 -1
  48. package/dist/model/StateTransitionReduction.d.ts +2 -2
  49. package/dist/model/StateTransitionReduction.js +26 -26
  50. package/dist/model/network/NetworkState.d.ts +73 -18
  51. package/dist/model/network/NetworkState.d.ts.map +1 -1
  52. package/dist/model/network/NetworkState.js +2 -2
  53. package/dist/model/transaction/ProtocolTransaction.d.ts +69 -69
  54. package/dist/model/transaction/ProtocolTransaction.js +18 -18
  55. package/dist/model/transaction/RuntimeTransaction.d.ts +50 -16
  56. package/dist/model/transaction/RuntimeTransaction.d.ts.map +1 -1
  57. package/dist/model/transaction/RuntimeTransaction.js +4 -4
  58. package/dist/model/transaction/SignedTransaction.d.ts +39 -3
  59. package/dist/model/transaction/SignedTransaction.d.ts.map +1 -1
  60. package/dist/model/transaction/SignedTransaction.js +1 -1
  61. package/dist/model/transaction/ValueOption.d.ts +86 -32
  62. package/dist/model/transaction/ValueOption.d.ts.map +1 -1
  63. package/dist/model/transaction/ValueOption.js +1 -1
  64. package/dist/protocol/Protocol.d.ts +6 -5
  65. package/dist/protocol/Protocol.d.ts.map +1 -1
  66. package/dist/protocol/Protocol.js +12 -3
  67. package/dist/protocol/ProtocolEnvironment.d.ts +3 -3
  68. package/dist/protocol/ProtocolEnvironment.d.ts.map +1 -1
  69. package/dist/protocol/ProtocolModule.d.ts +1 -0
  70. package/dist/protocol/ProtocolModule.d.ts.map +1 -1
  71. package/dist/protocol/ProtocolModule.js +3 -1
  72. package/dist/protocol/ProvableBlockHook.d.ts +2 -2
  73. package/dist/protocol/ProvableBlockHook.d.ts.map +1 -1
  74. package/dist/protocol/ProvableTransactionHook.d.ts +1 -1
  75. package/dist/protocol/ProvableTransactionHook.d.ts.map +1 -1
  76. package/dist/prover/block/BlockProvable.d.ts +240 -98
  77. package/dist/prover/block/BlockProvable.d.ts.map +1 -1
  78. package/dist/prover/block/BlockProver.d.ts +8 -8
  79. package/dist/prover/block/BlockProver.d.ts.map +1 -1
  80. package/dist/prover/block/BlockProver.js +48 -40
  81. package/dist/prover/block/BlockTransactionPosition.d.ts +35 -35
  82. package/dist/prover/block/BlockTransactionPosition.js +25 -25
  83. package/dist/prover/block/BundleTransactionPosition.d.ts +36 -0
  84. package/dist/prover/block/BundleTransactionPosition.d.ts.map +1 -0
  85. package/dist/prover/block/BundleTransactionPosition.js +25 -0
  86. package/dist/prover/block/SplitPrefilledStateService.d.ts +11 -0
  87. package/dist/prover/block/SplitPrefilledStateService.d.ts.map +1 -0
  88. package/dist/prover/block/SplitPrefilledStateService.js +1 -0
  89. package/dist/prover/block/SplitStateService.d.ts +11 -0
  90. package/dist/prover/block/SplitStateService.d.ts.map +1 -0
  91. package/dist/prover/block/SplitStateService.js +1 -0
  92. package/dist/prover/block/accummulators/BlockHashMerkleTree.d.ts +35 -16
  93. package/dist/prover/block/accummulators/BlockHashMerkleTree.d.ts.map +1 -1
  94. package/dist/prover/block/acummulators/BlockHashMerkleTree.d.ts +45 -0
  95. package/dist/prover/block/acummulators/BlockHashMerkleTree.d.ts.map +1 -0
  96. package/dist/prover/block/acummulators/BlockHashMerkleTree.js +16 -0
  97. package/dist/prover/statetransition/StateTransitionProvable.d.ts +116 -58
  98. package/dist/prover/statetransition/StateTransitionProvable.d.ts.map +1 -1
  99. package/dist/prover/statetransition/StateTransitionProver.d.ts +8 -8
  100. package/dist/prover/statetransition/StateTransitionProver.d.ts.map +1 -1
  101. package/dist/prover/statetransition/StateTransitionProver.js +17 -22
  102. package/dist/prover/statetransition/StateTransitionWitnessProvider.js +1 -2
  103. package/dist/prover/statetransition/StateTransitionWitnessProviderReference.js +1 -2
  104. package/dist/settlement/DispatchContract.d.ts +20 -0
  105. package/dist/settlement/DispatchContract.d.ts.map +1 -0
  106. package/dist/settlement/DispatchContract.js +112 -0
  107. package/dist/settlement/OutgoingMessageArgument.d.ts +109 -0
  108. package/dist/settlement/OutgoingMessageArgument.d.ts.map +1 -0
  109. package/dist/settlement/OutgoingMessageArgument.js +32 -0
  110. package/dist/settlement/ProvableSettlementHook.d.ts +25 -25
  111. package/dist/settlement/ProvableSettlementHook.js +3 -3
  112. package/dist/settlement/SettlementContract.d.ts +229 -229
  113. package/dist/settlement/SettlementContract.js +346 -346
  114. package/dist/settlement/SettlementContractModule.d.ts +1 -0
  115. package/dist/settlement/SettlementContractModule.d.ts.map +1 -1
  116. package/dist/settlement/SettlementContractModule.js +7 -4
  117. package/dist/settlement/contracts/DispatchContract.d.ts +21 -0
  118. package/dist/settlement/contracts/DispatchContract.d.ts.map +1 -0
  119. package/dist/settlement/contracts/DispatchContract.js +111 -0
  120. package/dist/settlement/contracts/DispatchContractProtocolModule.js +1 -2
  121. package/dist/settlement/contracts/DispatchSmartContract.d.ts +8 -8
  122. package/dist/settlement/contracts/DispatchSmartContract.d.ts.map +1 -1
  123. package/dist/settlement/contracts/DispatchSmartContract.js +14 -14
  124. package/dist/settlement/contracts/SettlementContract.d.ts +19 -0
  125. package/dist/settlement/contracts/SettlementContract.d.ts.map +1 -0
  126. package/dist/settlement/contracts/SettlementContract.js +43 -0
  127. package/dist/settlement/contracts/SettlementContractProtocolModule.d.ts.map +1 -1
  128. package/dist/settlement/contracts/SettlementContractProtocolModule.js +4 -4
  129. package/dist/settlement/contracts/SettlementSmartContract.d.ts +18 -17
  130. package/dist/settlement/contracts/SettlementSmartContract.d.ts.map +1 -1
  131. package/dist/settlement/contracts/SettlementSmartContract.js +46 -35
  132. package/dist/settlement/messages/Deposit.d.ts +29 -4
  133. package/dist/settlement/messages/Deposit.d.ts.map +1 -1
  134. package/dist/settlement/messages/OutgoingMessageArgument.d.ts +94 -14
  135. package/dist/settlement/messages/OutgoingMessageArgument.d.ts.map +1 -1
  136. package/dist/settlement/messages/Withdrawal.d.ts +29 -4
  137. package/dist/settlement/messages/Withdrawal.d.ts.map +1 -1
  138. package/dist/settlement/modularity/ProvableSettlementHook.d.ts +2 -2
  139. package/dist/settlement/modularity/ProvableSettlementHook.d.ts.map +1 -1
  140. package/dist/settlement/modules/NetworkStateSettlementModule.d.ts +1 -1
  141. package/dist/settlement/modules/NetworkStateSettlementModule.d.ts.map +1 -1
  142. package/dist/settlement/modules/NetworkStateSettlementModule.js +3 -1
  143. package/dist/state/State.d.ts +4 -3
  144. package/dist/state/State.d.ts.map +1 -1
  145. package/dist/state/State.js +16 -11
  146. package/dist/state/StateMap.d.ts +3 -3
  147. package/dist/state/StateMap.d.ts.map +1 -1
  148. package/dist/state/StateMap.js +4 -5
  149. package/dist/state/StateService.d.ts +3 -3
  150. package/dist/state/StateService.d.ts.map +1 -1
  151. package/dist/state/StateServiceProvider.d.ts +3 -3
  152. package/dist/state/StateServiceProvider.d.ts.map +1 -1
  153. package/dist/state/StateServiceProvider.js +1 -3
  154. package/dist/state/assert/assert.d.ts +1 -1
  155. package/dist/state/assert/assert.d.ts.map +1 -1
  156. package/dist/state/assert/assert.js +4 -1
  157. package/dist/state/context/ProtocolMethodExecutionContext.d.ts +1 -1
  158. package/dist/state/context/ProtocolMethodExecutionContext.d.ts.map +1 -1
  159. package/dist/state/context/ProtocolMethodExecutionContext.js +1 -1
  160. package/dist/state/context/RuntimeMethodExecutionContext.d.ts +54 -3
  161. package/dist/state/context/RuntimeMethodExecutionContext.d.ts.map +1 -1
  162. package/dist/state/context/RuntimeMethodExecutionContext.js +4 -5
  163. package/dist/state/context/TransitionMethodExecutionContext.d.ts.map +1 -1
  164. package/dist/state/context/TransitionMethodExecutionContext.js +0 -1
  165. package/dist/state/context/contextExecution.d.ts +14 -0
  166. package/dist/state/context/contextExecution.d.ts.map +1 -0
  167. package/dist/state/context/contextExecution.js +30 -0
  168. package/dist/state/protocol/ProtocolState.d.ts.map +1 -1
  169. package/dist/state/protocol/ProtocolState.js +0 -3
  170. package/dist/utils/AppliedBatchHashList.d.ts +17 -0
  171. package/dist/utils/AppliedBatchHashList.d.ts.map +1 -0
  172. package/dist/utils/AppliedBatchHashList.js +24 -0
  173. package/dist/utils/MinaPrefixedProvableHashList.d.ts.map +1 -1
  174. package/dist/utils/MinaPrefixedProvableHashList.js +1 -0
  175. package/dist/utils/ProvableHashList.d.ts +1 -1
  176. package/dist/utils/StateTransitionReductionList.d.ts +1 -1
  177. package/dist/utils/StateTransitionReductionList.d.ts.map +1 -1
  178. package/dist/utils/StateTransitionReductionList.js +3 -3
  179. package/dist/utils/merkletree/InMemoryMerkleTreeStorage.d.ts +11 -0
  180. package/dist/utils/merkletree/InMemoryMerkleTreeStorage.d.ts.map +1 -0
  181. package/dist/utils/merkletree/InMemoryMerkleTreeStorage.js +12 -0
  182. package/dist/utils/merkletree/MerkleTreeStore.d.ts +5 -0
  183. package/dist/utils/merkletree/MerkleTreeStore.d.ts.map +1 -0
  184. package/dist/utils/merkletree/MerkleTreeStore.js +1 -0
  185. package/dist/utils/merkletree/RollupMerkleTree.d.ts +133 -0
  186. package/dist/utils/merkletree/RollupMerkleTree.d.ts.map +1 -0
  187. package/dist/utils/merkletree/RollupMerkleTree.js +255 -0
  188. package/dist/utils/utils.d.ts +1 -1
  189. package/dist/utils/utils.d.ts.map +1 -1
  190. package/dist/utils/utils.js +5 -10
  191. package/package.json +5 -5
  192. package/src/hooks/AccountStateHook.ts +11 -9
  193. package/src/hooks/BlockHeightHook.ts +3 -4
  194. package/src/hooks/LastStateRootBlockHook.ts +4 -4
  195. package/src/hooks/NoopBlockHook.ts +6 -5
  196. package/src/hooks/NoopSettlementHook.ts +2 -2
  197. package/src/hooks/NoopTransactionHook.ts +5 -1
  198. package/src/index.ts +0 -2
  199. package/src/model/MethodPublicOutput.ts +2 -2
  200. package/src/model/Option.ts +5 -1
  201. package/src/model/Path.ts +1 -3
  202. package/src/model/StateTransition.ts +1 -1
  203. package/src/model/Transaction.ts +2 -0
  204. package/src/model/network/NetworkState.ts +2 -2
  205. package/src/model/transaction/RuntimeTransaction.ts +5 -12
  206. package/src/model/transaction/SignedTransaction.ts +1 -8
  207. package/src/model/transaction/ValueOption.ts +1 -1
  208. package/src/protocol/Protocol.ts +24 -13
  209. package/src/protocol/ProtocolEnvironment.ts +7 -6
  210. package/src/protocol/ProtocolModule.ts +5 -2
  211. package/src/protocol/ProvableBlockHook.ts +3 -3
  212. package/src/protocol/ProvableTransactionHook.ts +4 -2
  213. package/src/protocol/TransitioningProtocolModule.ts +1 -1
  214. package/src/prover/block/BlockProvable.ts +3 -3
  215. package/src/prover/block/BlockProver.ts +78 -55
  216. package/src/prover/block/accummulators/BlockHashMerkleTree.ts +1 -1
  217. package/src/prover/statetransition/StateTransitionProvable.ts +3 -3
  218. package/src/prover/statetransition/StateTransitionProver.ts +23 -27
  219. package/src/settlement/ContractModule.ts +1 -1
  220. package/src/settlement/SettlementContractModule.ts +14 -9
  221. package/src/settlement/contracts/DispatchSmartContract.ts +15 -14
  222. package/src/settlement/contracts/SettlementContractProtocolModule.ts +6 -4
  223. package/src/settlement/contracts/SettlementSmartContract.ts +55 -34
  224. package/src/settlement/messages/OutgoingMessageArgument.ts +1 -0
  225. package/src/settlement/modularity/ProvableSettlementHook.ts +3 -4
  226. package/src/settlement/modules/NetworkStateSettlementModule.ts +5 -2
  227. package/src/state/State.ts +19 -12
  228. package/src/state/StateMap.ts +4 -5
  229. package/src/state/StateService.ts +3 -3
  230. package/src/state/StateServiceProvider.ts +6 -7
  231. package/src/state/assert/assert.ts +6 -2
  232. package/src/state/context/RuntimeMethodExecutionContext.ts +5 -2
  233. package/src/state/context/TransitionMethodExecutionContext.ts +0 -1
  234. package/src/state/protocol/ProtocolState.ts +1 -4
  235. package/src/utils/MinaPrefixedProvableHashList.ts +2 -1
  236. package/src/utils/ProvableHashList.ts +1 -1
  237. package/src/utils/StateTransitionReductionList.ts +4 -3
  238. package/src/utils/utils.ts +4 -9
  239. package/test/BlockProver.test.ts +110 -128
  240. package/test/Protocol.test.ts +8 -20
  241. package/test/State.test.ts +8 -8
  242. package/test/StateTransition.test.ts +56 -66
  243. package/test/TestingProtocol.ts +48 -0
  244. package/test/model/Option.test.ts +72 -0
  245. package/{src → test}/state/assert/assert.test.ts +4 -4
  246. package/test/tsconfig.json +7 -0
  247. package/test/utils/ProvableReductionHashList.test.ts +5 -2
  248. package/test/utils.test.ts +0 -3
  249. package/dist/hooks/TransactionFeeHook.d.ts +0 -16
  250. package/dist/hooks/TransactionFeeHook.d.ts.map +0 -1
  251. package/dist/hooks/TransactionFeeHook.js +0 -39
  252. package/src/hooks/SequenceStateTransactionModule.ts +0 -25
  253. package/src/model/Option.test.ts +0 -21
  254. package/src/state/context/ProtocolMethodExecutionContext.ts +0 -36
  255. package/test/Option.test.ts +0 -64
  256. package/test/settlement/SettlementContract.test.ts +0 -45
  257. package/tsconfig.test.json +0 -9
@@ -0,0 +1,109 @@
1
+ import { RollupMerkleTreeWitness } from "@proto-kit/common";
2
+ import { Withdrawal } from "./messages/Withdrawal";
3
+ export declare const OUTGOING_MESSAGE_BATCH_SIZE = 1;
4
+ declare const OutgoingMessageArgument_base: (new (value: {
5
+ witness: RollupMerkleTreeWitness;
6
+ value: Withdrawal;
7
+ }) => {
8
+ witness: RollupMerkleTreeWitness;
9
+ value: Withdrawal;
10
+ }) & {
11
+ _isStruct: true;
12
+ } & import("o1js/dist/node/snarky").ProvablePure<{
13
+ witness: RollupMerkleTreeWitness;
14
+ value: Withdrawal;
15
+ }> & {
16
+ toInput: (x: {
17
+ witness: RollupMerkleTreeWitness;
18
+ value: Withdrawal;
19
+ }) => {
20
+ fields?: import("o1js/dist/node/lib/field").Field[] | undefined;
21
+ packed?: [import("o1js/dist/node/lib/field").Field, number][] | undefined;
22
+ };
23
+ toJSON: (x: {
24
+ witness: RollupMerkleTreeWitness;
25
+ value: Withdrawal;
26
+ }) => {
27
+ witness: {
28
+ path: string[];
29
+ isLeft: boolean[];
30
+ };
31
+ value: {
32
+ address: string;
33
+ amount: string;
34
+ };
35
+ };
36
+ fromJSON: (x: {
37
+ witness: {
38
+ path: string[];
39
+ isLeft: boolean[];
40
+ };
41
+ value: {
42
+ address: string;
43
+ amount: string;
44
+ };
45
+ }) => {
46
+ witness: RollupMerkleTreeWitness;
47
+ value: Withdrawal;
48
+ };
49
+ };
50
+ export declare class OutgoingMessageArgument extends OutgoingMessageArgument_base {
51
+ static dummy(): OutgoingMessageArgument;
52
+ }
53
+ declare const OutgoingMessageArgumentBatch_base: (new (value: {
54
+ arguments: OutgoingMessageArgument[];
55
+ isDummys: import("o1js/dist/node/lib/bool").Bool[];
56
+ }) => {
57
+ arguments: OutgoingMessageArgument[];
58
+ isDummys: import("o1js/dist/node/lib/bool").Bool[];
59
+ }) & {
60
+ _isStruct: true;
61
+ } & import("o1js/dist/node/snarky").ProvablePure<{
62
+ arguments: OutgoingMessageArgument[];
63
+ isDummys: import("o1js/dist/node/lib/bool").Bool[];
64
+ }> & {
65
+ toInput: (x: {
66
+ arguments: OutgoingMessageArgument[];
67
+ isDummys: import("o1js/dist/node/lib/bool").Bool[];
68
+ }) => {
69
+ fields?: import("o1js/dist/node/lib/field").Field[] | undefined;
70
+ packed?: [import("o1js/dist/node/lib/field").Field, number][] | undefined;
71
+ };
72
+ toJSON: (x: {
73
+ arguments: OutgoingMessageArgument[];
74
+ isDummys: import("o1js/dist/node/lib/bool").Bool[];
75
+ }) => {
76
+ arguments: {
77
+ witness: {
78
+ path: string[];
79
+ isLeft: boolean[];
80
+ };
81
+ value: {
82
+ address: string;
83
+ amount: string;
84
+ };
85
+ }[];
86
+ isDummys: boolean[];
87
+ };
88
+ fromJSON: (x: {
89
+ arguments: {
90
+ witness: {
91
+ path: string[];
92
+ isLeft: boolean[];
93
+ };
94
+ value: {
95
+ address: string;
96
+ amount: string;
97
+ };
98
+ }[];
99
+ isDummys: boolean[];
100
+ }) => {
101
+ arguments: OutgoingMessageArgument[];
102
+ isDummys: import("o1js/dist/node/lib/bool").Bool[];
103
+ };
104
+ };
105
+ export declare class OutgoingMessageArgumentBatch extends OutgoingMessageArgumentBatch_base {
106
+ static fromMessages(providedArguments: OutgoingMessageArgument[]): OutgoingMessageArgumentBatch;
107
+ }
108
+ export {};
109
+ //# sourceMappingURL=OutgoingMessageArgument.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OutgoingMessageArgument.d.ts","sourceRoot":"","sources":["../../src/settlement/OutgoingMessageArgument.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,eAAO,MAAM,2BAA2B,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE7C,qBAAa,uBAAwB,SAAQ,4BAG3C;WACc,KAAK,IAAI,uBAAuB;CAM/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,qBAAa,4BAA6B,SAAQ,iCAOhD;WACc,YAAY,CAAC,iBAAiB,EAAE,uBAAuB,EAAE;CAcxE"}
@@ -0,0 +1,32 @@
1
+ import { Bool, Provable, Struct } from "o1js";
2
+ import { RollupMerkleTreeWitness } from "@proto-kit/common";
3
+ import { Withdrawal } from "./messages/Withdrawal";
4
+ export const OUTGOING_MESSAGE_BATCH_SIZE = 1;
5
+ export class OutgoingMessageArgument extends Struct({
6
+ witness: RollupMerkleTreeWitness,
7
+ value: Withdrawal,
8
+ }) {
9
+ static dummy() {
10
+ return new OutgoingMessageArgument({
11
+ witness: RollupMerkleTreeWitness.dummy(),
12
+ value: Withdrawal.dummy(),
13
+ });
14
+ }
15
+ }
16
+ export class OutgoingMessageArgumentBatch extends Struct({
17
+ arguments: Provable.Array(OutgoingMessageArgument, OUTGOING_MESSAGE_BATCH_SIZE),
18
+ isDummys: Provable.Array(Bool, OUTGOING_MESSAGE_BATCH_SIZE),
19
+ }) {
20
+ static fromMessages(providedArguments) {
21
+ const batch = providedArguments.slice();
22
+ const isDummys = batch.map(() => Bool(false));
23
+ while (batch.length < OUTGOING_MESSAGE_BATCH_SIZE) {
24
+ batch.push(OutgoingMessageArgument.dummy());
25
+ isDummys.push(Bool(true));
26
+ }
27
+ return new OutgoingMessageArgumentBatch({
28
+ arguments: batch,
29
+ isDummys,
30
+ });
31
+ }
32
+ }
@@ -1,26 +1,26 @@
1
- import { Field, UInt32 } from "o1js";
2
- import type { BlockProof } from "../prover/block/BlockProver";
3
- import { ProtocolModule } from "../protocol/ProtocolModule";
4
- import { NetworkState } from "../model/network/NetworkState";
5
- import type { SettlementContract } from "./SettlementContract";
6
- export type SettlementStateRecord = {
7
- sequencerKey: Field;
8
- lastSettlementL1Block: UInt32;
9
- stateRoot: Field;
10
- networkStateHash: Field;
11
- blockHashRoot: Field;
12
- promisedMessagesHash: Field;
13
- honoredMessagesHash: Field;
14
- };
15
- export type SettlementHookInputs = {
16
- blockProof: BlockProof;
17
- fromNetworkState: NetworkState;
18
- toNetworkState: NetworkState;
19
- newPromisedMessagesHash: Field;
20
- contractState: SettlementStateRecord;
21
- currentL1Block: UInt32;
22
- };
23
- export declare abstract class ProvableSettlementHook<Config> extends ProtocolModule<Config> {
24
- abstract beforeSettlement(smartContract: SettlementContract, inputs: SettlementHookInputs): void;
25
- }
1
+ import { Field, UInt32 } from "o1js";
2
+ import type { BlockProof } from "../prover/block/BlockProver";
3
+ import { ProtocolModule } from "../protocol/ProtocolModule";
4
+ import { NetworkState } from "../model/network/NetworkState";
5
+ import type { SettlementContract } from "./SettlementContract";
6
+ export type SettlementStateRecord = {
7
+ sequencerKey: Field;
8
+ lastSettlementL1Block: UInt32;
9
+ stateRoot: Field;
10
+ networkStateHash: Field;
11
+ blockHashRoot: Field;
12
+ promisedMessagesHash: Field;
13
+ honoredMessagesHash: Field;
14
+ };
15
+ export type SettlementHookInputs = {
16
+ blockProof: BlockProof;
17
+ fromNetworkState: NetworkState;
18
+ toNetworkState: NetworkState;
19
+ newPromisedMessagesHash: Field;
20
+ contractState: SettlementStateRecord;
21
+ currentL1Block: UInt32;
22
+ };
23
+ export declare abstract class ProvableSettlementHook<Config> extends ProtocolModule<Config> {
24
+ abstract beforeSettlement(smartContract: SettlementContract, inputs: SettlementHookInputs): void;
25
+ }
26
26
  //# sourceMappingURL=ProvableSettlementHook.d.ts.map
@@ -1,3 +1,3 @@
1
- import { ProtocolModule } from "../protocol/ProtocolModule";
2
- export class ProvableSettlementHook extends ProtocolModule {
3
- }
1
+ import { ProtocolModule } from "../protocol/ProtocolModule";
2
+ export class ProvableSettlementHook extends ProtocolModule {
3
+ }
@@ -1,230 +1,230 @@
1
- import { AccountUpdate, Field, Proof, PublicKey, Signature, SmartContract, State, UInt32, UInt64 } from "o1js";
2
- import { RollupMerkleTreeWitness } from "@proto-kit/common";
3
- import { ProtocolModule } from "../protocol/ProtocolModule";
4
- import { BlockProvable, BlockProverPublicInput, BlockProverPublicOutput } from "../prover/block/BlockProvable";
5
- import { NetworkState } from "../model/network/NetworkState";
6
- import { ProvableSettlementHook } from "./ProvableSettlementHook";
7
- declare class LazyBlockProof extends Proof<BlockProverPublicInput, BlockProverPublicOutput> {
8
- static publicInputType: typeof BlockProverPublicInput;
9
- static publicOutputType: typeof BlockProverPublicOutput;
10
- static tag: () => {
11
- name: string;
12
- };
13
- }
14
- export type SettlementMethodIdMapping = Record<`${string}.${string}`, bigint>;
15
- declare const Deposit_base: (new (value: {
16
- address: PublicKey;
17
- amount: UInt64;
18
- }) => {
19
- address: PublicKey;
20
- amount: UInt64;
21
- }) & {
22
- _isStruct: true;
23
- } & import("o1js/dist/node/snarky").ProvablePure<{
24
- address: PublicKey;
25
- amount: UInt64;
26
- }> & {
27
- toInput: (x: {
28
- address: PublicKey;
29
- amount: UInt64;
30
- }) => {
31
- fields?: import("o1js/dist/node/lib/field").Field[] | undefined;
32
- packed?: [import("o1js/dist/node/lib/field").Field, number][] | undefined;
33
- };
34
- toJSON: (x: {
35
- address: PublicKey;
36
- amount: UInt64;
37
- }) => {
38
- address: string;
39
- amount: string;
40
- };
41
- fromJSON: (x: {
42
- address: string;
43
- amount: string;
44
- }) => {
45
- address: PublicKey;
46
- amount: UInt64;
47
- };
48
- };
49
- export declare class Deposit extends Deposit_base {
50
- }
51
- declare const Withdrawal_base: (new (value: {
52
- address: PublicKey;
53
- amount: UInt64;
54
- }) => {
55
- address: PublicKey;
56
- amount: UInt64;
57
- }) & {
58
- _isStruct: true;
59
- } & import("o1js/dist/node/snarky").ProvablePure<{
60
- address: PublicKey;
61
- amount: UInt64;
62
- }> & {
63
- toInput: (x: {
64
- address: PublicKey;
65
- amount: UInt64;
66
- }) => {
67
- fields?: import("o1js/dist/node/lib/field").Field[] | undefined;
68
- packed?: [import("o1js/dist/node/lib/field").Field, number][] | undefined;
69
- };
70
- toJSON: (x: {
71
- address: PublicKey;
72
- amount: UInt64;
73
- }) => {
74
- address: string;
75
- amount: string;
76
- };
77
- fromJSON: (x: {
78
- address: string;
79
- amount: string;
80
- }) => {
81
- address: PublicKey;
82
- amount: UInt64;
83
- };
84
- };
85
- export declare class Withdrawal extends Withdrawal_base {
86
- static dummy(): Withdrawal;
87
- }
88
- export declare const OUTGOING_MESSAGE_BATCH_SIZE = 1;
89
- declare const OutgoingMessageArgument_base: (new (value: {
90
- witness: RollupMerkleTreeWitness;
91
- value: Withdrawal;
92
- }) => {
93
- witness: RollupMerkleTreeWitness;
94
- value: Withdrawal;
95
- }) & {
96
- _isStruct: true;
97
- } & import("o1js/dist/node/snarky").ProvablePure<{
98
- witness: RollupMerkleTreeWitness;
99
- value: Withdrawal;
100
- }> & {
101
- toInput: (x: {
102
- witness: RollupMerkleTreeWitness;
103
- value: Withdrawal;
104
- }) => {
105
- fields?: import("o1js/dist/node/lib/field").Field[] | undefined;
106
- packed?: [import("o1js/dist/node/lib/field").Field, number][] | undefined;
107
- };
108
- toJSON: (x: {
109
- witness: RollupMerkleTreeWitness;
110
- value: Withdrawal;
111
- }) => {
112
- witness: {
113
- path: string[];
114
- isLeft: boolean[];
115
- };
116
- value: {
117
- address: string;
118
- amount: string;
119
- };
120
- };
121
- fromJSON: (x: {
122
- witness: {
123
- path: string[];
124
- isLeft: boolean[];
125
- };
126
- value: {
127
- address: string;
128
- amount: string;
129
- };
130
- }) => {
131
- witness: RollupMerkleTreeWitness;
132
- value: Withdrawal;
133
- };
134
- };
135
- export declare class OutgoingMessageArgument extends OutgoingMessageArgument_base {
136
- static dummy(): OutgoingMessageArgument;
137
- }
138
- declare const OutgoingMessageArgumentBatch_base: (new (value: {
139
- arguments: OutgoingMessageArgument[];
140
- isDummys: import("o1js/dist/node/lib/bool").Bool[];
141
- }) => {
142
- arguments: OutgoingMessageArgument[];
143
- isDummys: import("o1js/dist/node/lib/bool").Bool[];
144
- }) & {
145
- _isStruct: true;
146
- } & import("o1js/dist/node/snarky").ProvablePure<{
147
- arguments: OutgoingMessageArgument[];
148
- isDummys: import("o1js/dist/node/lib/bool").Bool[];
149
- }> & {
150
- toInput: (x: {
151
- arguments: OutgoingMessageArgument[];
152
- isDummys: import("o1js/dist/node/lib/bool").Bool[];
153
- }) => {
154
- fields?: import("o1js/dist/node/lib/field").Field[] | undefined;
155
- packed?: [import("o1js/dist/node/lib/field").Field, number][] | undefined;
156
- };
157
- toJSON: (x: {
158
- arguments: OutgoingMessageArgument[];
159
- isDummys: import("o1js/dist/node/lib/bool").Bool[];
160
- }) => {
161
- arguments: {
162
- witness: {
163
- path: string[];
164
- isLeft: boolean[];
165
- };
166
- value: {
167
- address: string;
168
- amount: string;
169
- };
170
- }[];
171
- isDummys: boolean[];
172
- };
173
- fromJSON: (x: {
174
- arguments: {
175
- witness: {
176
- path: string[];
177
- isLeft: boolean[];
178
- };
179
- value: {
180
- address: string;
181
- amount: string;
182
- };
183
- }[];
184
- isDummys: boolean[];
185
- }) => {
186
- arguments: OutgoingMessageArgument[];
187
- isDummys: import("o1js/dist/node/lib/bool").Bool[];
188
- };
189
- };
190
- export declare class OutgoingMessageArgumentBatch extends OutgoingMessageArgumentBatch_base {
191
- static fromMessages(providedArguments: OutgoingMessageArgument[]): OutgoingMessageArgumentBatch;
192
- }
193
- export declare const BATCH_SIGNATURE_PREFIX: import("o1js/dist/node/lib/field").Field;
194
- export declare const ACTIONS_EMPTY_HASH: import("o1js/dist/node/lib/field").Field;
195
- export declare class SettlementContract extends SmartContract {
196
- private readonly methodIdMappings;
197
- private readonly hooks;
198
- private readonly withdrawalStatePath;
199
- private readonly incomingMessagesPaths;
200
- private readonly escapeHatchSlotsInterval;
201
- sequencerKey: State<import("o1js/dist/node/lib/field").Field>;
202
- lastSettlementL1Block: State<UInt32>;
203
- stateRoot: State<import("o1js/dist/node/lib/field").Field>;
204
- networkStateHash: State<import("o1js/dist/node/lib/field").Field>;
205
- blockHashRoot: State<import("o1js/dist/node/lib/field").Field>;
206
- promisedMessagesHash: State<import("o1js/dist/node/lib/field").Field>;
207
- honoredMessagesHash: State<import("o1js/dist/node/lib/field").Field>;
208
- outgoingMessageCursor: State<import("o1js/dist/node/lib/field").Field>;
209
- constructor(address: PublicKey, methodIdMappings: Record<string, bigint>, hooks: ProvableSettlementHook<unknown>[], withdrawalStatePath: [string, string], incomingMessagesPaths: Record<string, `${string}.${string}`>, escapeHatchSlotsInterval?: number);
210
- initialize(sequencer: PublicKey): void;
211
- settle(blockProof: LazyBlockProof, signature: Signature, publicKey: PublicKey, inputNetworkState: NetworkState, outputNetworkState: NetworkState, newPromisedMessagesHash: Field): void;
212
- private dispatchMessage;
213
- deposit(amount: UInt64): void;
214
- rollupOutgoingMessages(batch: OutgoingMessageArgumentBatch): void;
215
- redeem(additionUpdate: AccountUpdate): void;
216
- }
217
- export interface SettlementContractModuleConfig {
218
- withdrawalStatePath: `${string}.${string}`;
219
- withdrawalMethodPath: `${string}.${string}`;
220
- incomingMessagesMethods: Record<string, `${string}.${string}`>;
221
- }
222
- export declare class SettlementContractModule extends ProtocolModule<SettlementContractModuleConfig> {
223
- private readonly hooks;
224
- private readonly blockProver;
225
- constructor(hooks: ProvableSettlementHook<unknown>[], blockProver: BlockProvable);
226
- getContractClass(): typeof SettlementContract;
227
- createContract(address: PublicKey, methodIdMappings: SettlementMethodIdMapping): SettlementContract;
228
- }
229
- export {};
1
+ import { AccountUpdate, Field, Proof, PublicKey, Signature, SmartContract, State, UInt32, UInt64 } from "o1js";
2
+ import { RollupMerkleTreeWitness } from "@proto-kit/common";
3
+ import { ProtocolModule } from "../protocol/ProtocolModule";
4
+ import { BlockProvable, BlockProverPublicInput, BlockProverPublicOutput } from "../prover/block/BlockProvable";
5
+ import { NetworkState } from "../model/network/NetworkState";
6
+ import { ProvableSettlementHook } from "./ProvableSettlementHook";
7
+ declare class LazyBlockProof extends Proof<BlockProverPublicInput, BlockProverPublicOutput> {
8
+ static publicInputType: typeof BlockProverPublicInput;
9
+ static publicOutputType: typeof BlockProverPublicOutput;
10
+ static tag: () => {
11
+ name: string;
12
+ };
13
+ }
14
+ export type SettlementMethodIdMapping = Record<`${string}.${string}`, bigint>;
15
+ declare const Deposit_base: (new (value: {
16
+ address: PublicKey;
17
+ amount: UInt64;
18
+ }) => {
19
+ address: PublicKey;
20
+ amount: UInt64;
21
+ }) & {
22
+ _isStruct: true;
23
+ } & import("o1js/dist/node/snarky").ProvablePure<{
24
+ address: PublicKey;
25
+ amount: UInt64;
26
+ }> & {
27
+ toInput: (x: {
28
+ address: PublicKey;
29
+ amount: UInt64;
30
+ }) => {
31
+ fields?: import("o1js/dist/node/lib/field").Field[] | undefined;
32
+ packed?: [import("o1js/dist/node/lib/field").Field, number][] | undefined;
33
+ };
34
+ toJSON: (x: {
35
+ address: PublicKey;
36
+ amount: UInt64;
37
+ }) => {
38
+ address: string;
39
+ amount: string;
40
+ };
41
+ fromJSON: (x: {
42
+ address: string;
43
+ amount: string;
44
+ }) => {
45
+ address: PublicKey;
46
+ amount: UInt64;
47
+ };
48
+ };
49
+ export declare class Deposit extends Deposit_base {
50
+ }
51
+ declare const Withdrawal_base: (new (value: {
52
+ address: PublicKey;
53
+ amount: UInt64;
54
+ }) => {
55
+ address: PublicKey;
56
+ amount: UInt64;
57
+ }) & {
58
+ _isStruct: true;
59
+ } & import("o1js/dist/node/snarky").ProvablePure<{
60
+ address: PublicKey;
61
+ amount: UInt64;
62
+ }> & {
63
+ toInput: (x: {
64
+ address: PublicKey;
65
+ amount: UInt64;
66
+ }) => {
67
+ fields?: import("o1js/dist/node/lib/field").Field[] | undefined;
68
+ packed?: [import("o1js/dist/node/lib/field").Field, number][] | undefined;
69
+ };
70
+ toJSON: (x: {
71
+ address: PublicKey;
72
+ amount: UInt64;
73
+ }) => {
74
+ address: string;
75
+ amount: string;
76
+ };
77
+ fromJSON: (x: {
78
+ address: string;
79
+ amount: string;
80
+ }) => {
81
+ address: PublicKey;
82
+ amount: UInt64;
83
+ };
84
+ };
85
+ export declare class Withdrawal extends Withdrawal_base {
86
+ static dummy(): Withdrawal;
87
+ }
88
+ export declare const OUTGOING_MESSAGE_BATCH_SIZE = 1;
89
+ declare const OutgoingMessageArgument_base: (new (value: {
90
+ witness: RollupMerkleTreeWitness;
91
+ value: Withdrawal;
92
+ }) => {
93
+ witness: RollupMerkleTreeWitness;
94
+ value: Withdrawal;
95
+ }) & {
96
+ _isStruct: true;
97
+ } & import("o1js/dist/node/snarky").ProvablePure<{
98
+ witness: RollupMerkleTreeWitness;
99
+ value: Withdrawal;
100
+ }> & {
101
+ toInput: (x: {
102
+ witness: RollupMerkleTreeWitness;
103
+ value: Withdrawal;
104
+ }) => {
105
+ fields?: import("o1js/dist/node/lib/field").Field[] | undefined;
106
+ packed?: [import("o1js/dist/node/lib/field").Field, number][] | undefined;
107
+ };
108
+ toJSON: (x: {
109
+ witness: RollupMerkleTreeWitness;
110
+ value: Withdrawal;
111
+ }) => {
112
+ witness: {
113
+ path: string[];
114
+ isLeft: boolean[];
115
+ };
116
+ value: {
117
+ address: string;
118
+ amount: string;
119
+ };
120
+ };
121
+ fromJSON: (x: {
122
+ witness: {
123
+ path: string[];
124
+ isLeft: boolean[];
125
+ };
126
+ value: {
127
+ address: string;
128
+ amount: string;
129
+ };
130
+ }) => {
131
+ witness: RollupMerkleTreeWitness;
132
+ value: Withdrawal;
133
+ };
134
+ };
135
+ export declare class OutgoingMessageArgument extends OutgoingMessageArgument_base {
136
+ static dummy(): OutgoingMessageArgument;
137
+ }
138
+ declare const OutgoingMessageArgumentBatch_base: (new (value: {
139
+ arguments: OutgoingMessageArgument[];
140
+ isDummys: import("o1js/dist/node/lib/bool").Bool[];
141
+ }) => {
142
+ arguments: OutgoingMessageArgument[];
143
+ isDummys: import("o1js/dist/node/lib/bool").Bool[];
144
+ }) & {
145
+ _isStruct: true;
146
+ } & import("o1js/dist/node/snarky").ProvablePure<{
147
+ arguments: OutgoingMessageArgument[];
148
+ isDummys: import("o1js/dist/node/lib/bool").Bool[];
149
+ }> & {
150
+ toInput: (x: {
151
+ arguments: OutgoingMessageArgument[];
152
+ isDummys: import("o1js/dist/node/lib/bool").Bool[];
153
+ }) => {
154
+ fields?: import("o1js/dist/node/lib/field").Field[] | undefined;
155
+ packed?: [import("o1js/dist/node/lib/field").Field, number][] | undefined;
156
+ };
157
+ toJSON: (x: {
158
+ arguments: OutgoingMessageArgument[];
159
+ isDummys: import("o1js/dist/node/lib/bool").Bool[];
160
+ }) => {
161
+ arguments: {
162
+ witness: {
163
+ path: string[];
164
+ isLeft: boolean[];
165
+ };
166
+ value: {
167
+ address: string;
168
+ amount: string;
169
+ };
170
+ }[];
171
+ isDummys: boolean[];
172
+ };
173
+ fromJSON: (x: {
174
+ arguments: {
175
+ witness: {
176
+ path: string[];
177
+ isLeft: boolean[];
178
+ };
179
+ value: {
180
+ address: string;
181
+ amount: string;
182
+ };
183
+ }[];
184
+ isDummys: boolean[];
185
+ }) => {
186
+ arguments: OutgoingMessageArgument[];
187
+ isDummys: import("o1js/dist/node/lib/bool").Bool[];
188
+ };
189
+ };
190
+ export declare class OutgoingMessageArgumentBatch extends OutgoingMessageArgumentBatch_base {
191
+ static fromMessages(providedArguments: OutgoingMessageArgument[]): OutgoingMessageArgumentBatch;
192
+ }
193
+ export declare const BATCH_SIGNATURE_PREFIX: import("o1js/dist/node/lib/field").Field;
194
+ export declare const ACTIONS_EMPTY_HASH: import("o1js/dist/node/lib/field").Field;
195
+ export declare class SettlementContract extends SmartContract {
196
+ private readonly methodIdMappings;
197
+ private readonly hooks;
198
+ private readonly withdrawalStatePath;
199
+ private readonly incomingMessagesPaths;
200
+ private readonly escapeHatchSlotsInterval;
201
+ sequencerKey: State<import("o1js/dist/node/lib/field").Field>;
202
+ lastSettlementL1Block: State<UInt32>;
203
+ stateRoot: State<import("o1js/dist/node/lib/field").Field>;
204
+ networkStateHash: State<import("o1js/dist/node/lib/field").Field>;
205
+ blockHashRoot: State<import("o1js/dist/node/lib/field").Field>;
206
+ promisedMessagesHash: State<import("o1js/dist/node/lib/field").Field>;
207
+ honoredMessagesHash: State<import("o1js/dist/node/lib/field").Field>;
208
+ outgoingMessageCursor: State<import("o1js/dist/node/lib/field").Field>;
209
+ constructor(address: PublicKey, methodIdMappings: Record<string, bigint>, hooks: ProvableSettlementHook<unknown>[], withdrawalStatePath: [string, string], incomingMessagesPaths: Record<string, `${string}.${string}`>, escapeHatchSlotsInterval?: number);
210
+ initialize(sequencer: PublicKey): void;
211
+ settle(blockProof: LazyBlockProof, signature: Signature, publicKey: PublicKey, inputNetworkState: NetworkState, outputNetworkState: NetworkState, newPromisedMessagesHash: Field): void;
212
+ private dispatchMessage;
213
+ deposit(amount: UInt64): void;
214
+ rollupOutgoingMessages(batch: OutgoingMessageArgumentBatch): void;
215
+ redeem(additionUpdate: AccountUpdate): void;
216
+ }
217
+ export interface SettlementContractModuleConfig {
218
+ withdrawalStatePath: `${string}.${string}`;
219
+ withdrawalMethodPath: `${string}.${string}`;
220
+ incomingMessagesMethods: Record<string, `${string}.${string}`>;
221
+ }
222
+ export declare class SettlementContractModule extends ProtocolModule<SettlementContractModuleConfig> {
223
+ private readonly hooks;
224
+ private readonly blockProver;
225
+ constructor(hooks: ProvableSettlementHook<unknown>[], blockProver: BlockProvable);
226
+ getContractClass(): typeof SettlementContract;
227
+ createContract(address: PublicKey, methodIdMappings: SettlementMethodIdMapping): SettlementContract;
228
+ }
229
+ export {};
230
230
  //# sourceMappingURL=SettlementContract.d.ts.map