@proto-kit/protocol 0.1.1-develop.191 → 0.1.1-develop.2024

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 (466) hide show
  1. package/dist/Constants.js +1 -0
  2. package/dist/Constants.js.map +1 -0
  3. package/dist/hashing/mina-prefixes.d.ts +10 -0
  4. package/dist/hashing/mina-prefixes.d.ts.map +1 -0
  5. package/dist/hashing/mina-prefixes.js +10 -0
  6. package/dist/hashing/mina-prefixes.js.map +1 -0
  7. package/dist/hashing/protokit-prefixes.d.ts +10 -0
  8. package/dist/hashing/protokit-prefixes.d.ts.map +1 -0
  9. package/dist/hashing/protokit-prefixes.js +24 -0
  10. package/dist/hashing/protokit-prefixes.js.map +1 -0
  11. package/dist/hooks/AccountStateHook.d.ts +56 -0
  12. package/dist/hooks/AccountStateHook.d.ts.map +1 -0
  13. package/dist/hooks/AccountStateHook.js +62 -0
  14. package/dist/hooks/AccountStateHook.js.map +1 -0
  15. package/dist/hooks/BlockHeightHook.d.ts +7 -0
  16. package/dist/hooks/BlockHeightHook.d.ts.map +1 -0
  17. package/dist/hooks/BlockHeightHook.js +16 -0
  18. package/dist/hooks/BlockHeightHook.js.map +1 -0
  19. package/dist/hooks/LastStateRootBlockHook.d.ts +7 -0
  20. package/dist/hooks/LastStateRootBlockHook.d.ts.map +1 -0
  21. package/dist/hooks/LastStateRootBlockHook.js +16 -0
  22. package/dist/hooks/LastStateRootBlockHook.js.map +1 -0
  23. package/dist/hooks/NoopBlockHook.d.ts +8 -0
  24. package/dist/hooks/NoopBlockHook.d.ts.map +1 -0
  25. package/dist/hooks/NoopBlockHook.js +10 -0
  26. package/dist/hooks/NoopBlockHook.js.map +1 -0
  27. package/dist/hooks/NoopSettlementHook.d.ts +6 -0
  28. package/dist/hooks/NoopSettlementHook.d.ts.map +1 -0
  29. package/dist/{prover/statetransition/StateTransitionWitnessProvider.js → hooks/NoopSettlementHook.js} +8 -7
  30. package/dist/hooks/NoopSettlementHook.js.map +1 -0
  31. package/dist/hooks/NoopTransactionHook.d.ts +6 -0
  32. package/dist/hooks/NoopTransactionHook.d.ts.map +1 -0
  33. package/dist/hooks/NoopTransactionHook.js +11 -0
  34. package/dist/hooks/NoopTransactionHook.js.map +1 -0
  35. package/dist/index.d.ts +59 -9
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +60 -9
  38. package/dist/index.js.map +1 -0
  39. package/dist/model/AppliedStateTransitionBatch.d.ts +114 -0
  40. package/dist/model/AppliedStateTransitionBatch.d.ts.map +1 -0
  41. package/dist/model/AppliedStateTransitionBatch.js +16 -0
  42. package/dist/model/AppliedStateTransitionBatch.js.map +1 -0
  43. package/dist/model/MethodPublicOutput.d.ts +83 -28
  44. package/dist/model/MethodPublicOutput.d.ts.map +1 -1
  45. package/dist/model/MethodPublicOutput.js +4 -1
  46. package/dist/model/MethodPublicOutput.js.map +1 -0
  47. package/dist/model/Option.d.ts +70 -46
  48. package/dist/model/Option.d.ts.map +1 -1
  49. package/dist/model/Option.js +62 -57
  50. package/dist/model/Option.js.map +1 -0
  51. package/dist/model/Path.d.ts +4 -3
  52. package/dist/model/Path.d.ts.map +1 -1
  53. package/dist/model/Path.js +6 -5
  54. package/dist/model/Path.js.map +1 -0
  55. package/dist/model/RuntimeLike.d.ts +11 -0
  56. package/dist/model/RuntimeLike.d.ts.map +1 -0
  57. package/dist/model/RuntimeLike.js +2 -0
  58. package/dist/model/RuntimeLike.js.map +1 -0
  59. package/dist/model/StateTransition.d.ts +58 -18
  60. package/dist/model/StateTransition.d.ts.map +1 -1
  61. package/dist/model/StateTransition.js +13 -4
  62. package/dist/model/StateTransition.js.map +1 -0
  63. package/dist/model/StateTransitionProvableBatch.d.ts +389 -16
  64. package/dist/model/StateTransitionProvableBatch.d.ts.map +1 -1
  65. package/dist/model/StateTransitionProvableBatch.js +87 -10
  66. package/dist/model/StateTransitionProvableBatch.js.map +1 -0
  67. package/dist/model/network/NetworkState.d.ts +105 -9
  68. package/dist/model/network/NetworkState.d.ts.map +1 -1
  69. package/dist/model/network/NetworkState.js +22 -2
  70. package/dist/model/network/NetworkState.js.map +1 -0
  71. package/dist/model/transaction/AuthorizedTransaction.d.ts +122 -0
  72. package/dist/model/transaction/AuthorizedTransaction.d.ts.map +1 -0
  73. package/dist/model/transaction/AuthorizedTransaction.js +39 -0
  74. package/dist/model/transaction/AuthorizedTransaction.js.map +1 -0
  75. package/dist/model/transaction/RuntimeTransaction.d.ts +94 -34
  76. package/dist/model/transaction/RuntimeTransaction.d.ts.map +1 -1
  77. package/dist/model/transaction/RuntimeTransaction.js +72 -11
  78. package/dist/model/transaction/RuntimeTransaction.js.map +1 -0
  79. package/dist/model/transaction/SignedTransaction.d.ts +110 -0
  80. package/dist/model/transaction/SignedTransaction.d.ts.map +1 -0
  81. package/dist/model/transaction/SignedTransaction.js +34 -0
  82. package/dist/model/transaction/SignedTransaction.js.map +1 -0
  83. package/dist/model/transaction/ValueOption.d.ts +187 -0
  84. package/dist/model/transaction/ValueOption.d.ts.map +1 -0
  85. package/dist/model/transaction/ValueOption.js +25 -0
  86. package/dist/model/transaction/ValueOption.js.map +1 -0
  87. package/dist/protocol/Protocol.d.ts +47 -21
  88. package/dist/protocol/Protocol.d.ts.map +1 -1
  89. package/dist/protocol/Protocol.js +127 -26
  90. package/dist/protocol/Protocol.js.map +1 -0
  91. package/dist/protocol/ProtocolEnvironment.d.ts +9 -0
  92. package/dist/protocol/ProtocolEnvironment.d.ts.map +1 -0
  93. package/dist/protocol/ProtocolEnvironment.js +2 -0
  94. package/dist/protocol/ProtocolEnvironment.js.map +1 -0
  95. package/dist/protocol/ProtocolModule.d.ts +7 -7
  96. package/dist/protocol/ProtocolModule.d.ts.map +1 -1
  97. package/dist/protocol/ProtocolModule.js +10 -7
  98. package/dist/protocol/ProtocolModule.js.map +1 -0
  99. package/dist/protocol/ProvableBlockHook.d.ts +29 -0
  100. package/dist/protocol/ProvableBlockHook.d.ts.map +1 -0
  101. package/dist/protocol/ProvableBlockHook.js +20 -0
  102. package/dist/protocol/ProvableBlockHook.js.map +1 -0
  103. package/dist/protocol/ProvableTransactionHook.d.ts +35 -0
  104. package/dist/protocol/ProvableTransactionHook.d.ts.map +1 -0
  105. package/dist/protocol/ProvableTransactionHook.js +28 -0
  106. package/dist/protocol/ProvableTransactionHook.js.map +1 -0
  107. package/dist/protocol/TransitioningProtocolModule.d.ts +10 -0
  108. package/dist/protocol/TransitioningProtocolModule.d.ts.map +1 -0
  109. package/dist/protocol/TransitioningProtocolModule.js +9 -0
  110. package/dist/protocol/TransitioningProtocolModule.js.map +1 -0
  111. package/dist/prover/accumulators/AppliedBatchHashList.d.ts +18 -0
  112. package/dist/prover/accumulators/AppliedBatchHashList.d.ts.map +1 -0
  113. package/dist/prover/accumulators/AppliedBatchHashList.js +25 -0
  114. package/dist/prover/accumulators/AppliedBatchHashList.js.map +1 -0
  115. package/dist/prover/accumulators/BlockHashList.d.ts +263 -0
  116. package/dist/prover/accumulators/BlockHashList.d.ts.map +1 -0
  117. package/dist/prover/accumulators/BlockHashList.js +97 -0
  118. package/dist/prover/accumulators/BlockHashList.js.map +1 -0
  119. package/dist/prover/accumulators/StateTransitionReductionList.d.ts +12 -0
  120. package/dist/prover/accumulators/StateTransitionReductionList.d.ts.map +1 -0
  121. package/dist/prover/accumulators/StateTransitionReductionList.js +64 -0
  122. package/dist/prover/accumulators/StateTransitionReductionList.js.map +1 -0
  123. package/dist/prover/accumulators/TransactionHashList.d.ts +6 -0
  124. package/dist/prover/accumulators/TransactionHashList.d.ts.map +1 -0
  125. package/dist/prover/accumulators/TransactionHashList.js +8 -0
  126. package/dist/prover/accumulators/TransactionHashList.js.map +1 -0
  127. package/dist/prover/accumulators/WitnessedRootHashList.d.ts +123 -0
  128. package/dist/prover/accumulators/WitnessedRootHashList.d.ts.map +1 -0
  129. package/dist/prover/accumulators/WitnessedRootHashList.js +51 -0
  130. package/dist/prover/accumulators/WitnessedRootHashList.js.map +1 -0
  131. package/dist/prover/block/BlockProvable.d.ts +565 -96
  132. package/dist/prover/block/BlockProvable.d.ts.map +1 -1
  133. package/dist/prover/block/BlockProvable.js +196 -12
  134. package/dist/prover/block/BlockProvable.js.map +1 -0
  135. package/dist/prover/block/BlockProver.d.ts +52 -37
  136. package/dist/prover/block/BlockProver.d.ts.map +1 -1
  137. package/dist/prover/block/BlockProver.js +327 -107
  138. package/dist/prover/block/BlockProver.js.map +1 -0
  139. package/dist/prover/block/accummulators/BlockHashMerkleTree.d.ts +106 -0
  140. package/dist/prover/block/accummulators/BlockHashMerkleTree.d.ts.map +1 -0
  141. package/dist/prover/block/accummulators/BlockHashMerkleTree.js +25 -0
  142. package/dist/prover/block/accummulators/BlockHashMerkleTree.js.map +1 -0
  143. package/dist/prover/block/accummulators/RuntimeVerificationKeyTree.d.ts +139 -0
  144. package/dist/prover/block/accummulators/RuntimeVerificationKeyTree.d.ts.map +1 -0
  145. package/dist/prover/block/accummulators/RuntimeVerificationKeyTree.js +21 -0
  146. package/dist/prover/block/accummulators/RuntimeVerificationKeyTree.js.map +1 -0
  147. package/dist/prover/block/services/RuntimeVerificationKeyRootService.d.ts +7 -0
  148. package/dist/prover/block/services/RuntimeVerificationKeyRootService.d.ts.map +1 -0
  149. package/dist/prover/{statetransition/StateTransitionWitnessProviderReference.js → block/services/RuntimeVerificationKeyRootService.js} +11 -8
  150. package/dist/prover/block/services/RuntimeVerificationKeyRootService.js.map +1 -0
  151. package/dist/prover/statetransition/StateTransitionProvable.d.ts +137 -48
  152. package/dist/prover/statetransition/StateTransitionProvable.d.ts.map +1 -1
  153. package/dist/prover/statetransition/StateTransitionProvable.js +10 -5
  154. package/dist/prover/statetransition/StateTransitionProvable.js.map +1 -0
  155. package/dist/prover/statetransition/StateTransitionProver.d.ts +29 -17
  156. package/dist/prover/statetransition/StateTransitionProver.d.ts.map +1 -1
  157. package/dist/prover/statetransition/StateTransitionProver.js +171 -73
  158. package/dist/prover/statetransition/StateTransitionProver.js.map +1 -0
  159. package/dist/prover/transaction/TransactionProvable.d.ts +626 -0
  160. package/dist/prover/transaction/TransactionProvable.d.ts.map +1 -0
  161. package/dist/prover/transaction/TransactionProvable.js +87 -0
  162. package/dist/prover/transaction/TransactionProvable.js.map +1 -0
  163. package/dist/prover/transaction/TransactionProver.d.ts +68 -0
  164. package/dist/prover/transaction/TransactionProver.d.ts.map +1 -0
  165. package/dist/prover/transaction/TransactionProver.js +301 -0
  166. package/dist/prover/transaction/TransactionProver.js.map +1 -0
  167. package/dist/prover/utils.d.ts +19 -0
  168. package/dist/prover/utils.d.ts.map +1 -0
  169. package/dist/prover/utils.js +67 -0
  170. package/dist/prover/utils.js.map +1 -0
  171. package/dist/settlement/ContractArgsRegistry.d.ts +13 -0
  172. package/dist/settlement/ContractArgsRegistry.d.ts.map +1 -0
  173. package/dist/settlement/ContractArgsRegistry.js +53 -0
  174. package/dist/settlement/ContractArgsRegistry.js.map +1 -0
  175. package/dist/settlement/ContractModule.d.ts +16 -0
  176. package/dist/settlement/ContractModule.d.ts.map +1 -0
  177. package/dist/settlement/ContractModule.js +12 -0
  178. package/dist/settlement/ContractModule.js.map +1 -0
  179. package/dist/settlement/SettlementContractModule.d.ts +47 -0
  180. package/dist/settlement/SettlementContractModule.d.ts.map +1 -0
  181. package/dist/settlement/SettlementContractModule.js +81 -0
  182. package/dist/settlement/SettlementContractModule.js.map +1 -0
  183. package/dist/settlement/contracts/BridgeContract.d.ts +119 -0
  184. package/dist/settlement/contracts/BridgeContract.d.ts.map +1 -0
  185. package/dist/settlement/contracts/BridgeContract.js +269 -0
  186. package/dist/settlement/contracts/BridgeContract.js.map +1 -0
  187. package/dist/settlement/contracts/BridgeContractProtocolModule.d.ts +18 -0
  188. package/dist/settlement/contracts/BridgeContractProtocolModule.d.ts.map +1 -0
  189. package/dist/settlement/contracts/BridgeContractProtocolModule.js +42 -0
  190. package/dist/settlement/contracts/BridgeContractProtocolModule.js.map +1 -0
  191. package/dist/settlement/contracts/BridgingSettlementContractModule.d.ts +21 -0
  192. package/dist/settlement/contracts/BridgingSettlementContractModule.d.ts.map +1 -0
  193. package/dist/settlement/contracts/BridgingSettlementContractModule.js +81 -0
  194. package/dist/settlement/contracts/BridgingSettlementContractModule.js.map +1 -0
  195. package/dist/settlement/contracts/DispatchContractProtocolModule.d.ts +23 -0
  196. package/dist/settlement/contracts/DispatchContractProtocolModule.d.ts.map +1 -0
  197. package/dist/settlement/contracts/DispatchContractProtocolModule.js +55 -0
  198. package/dist/settlement/contracts/DispatchContractProtocolModule.js.map +1 -0
  199. package/dist/settlement/contracts/DispatchSmartContract.d.ts +50 -0
  200. package/dist/settlement/contracts/DispatchSmartContract.d.ts.map +1 -0
  201. package/dist/settlement/contracts/DispatchSmartContract.js +234 -0
  202. package/dist/settlement/contracts/DispatchSmartContract.js.map +1 -0
  203. package/dist/settlement/contracts/SettlementContractProtocolModule.d.ts +21 -0
  204. package/dist/settlement/contracts/SettlementContractProtocolModule.d.ts.map +1 -0
  205. package/dist/settlement/contracts/SettlementContractProtocolModule.js +84 -0
  206. package/dist/settlement/contracts/SettlementContractProtocolModule.js.map +1 -0
  207. package/dist/settlement/contracts/SettlementSmartContract.d.ts +123 -0
  208. package/dist/settlement/contracts/SettlementSmartContract.d.ts.map +1 -0
  209. package/dist/settlement/contracts/SettlementSmartContract.js +310 -0
  210. package/dist/settlement/contracts/SettlementSmartContract.js.map +1 -0
  211. package/dist/settlement/contracts/SettlementSmartContractModule.d.ts +20 -0
  212. package/dist/settlement/contracts/SettlementSmartContractModule.d.ts.map +1 -0
  213. package/dist/settlement/contracts/SettlementSmartContractModule.js +56 -0
  214. package/dist/settlement/contracts/SettlementSmartContractModule.js.map +1 -0
  215. package/dist/settlement/contracts/TokenBridgeTree.d.ts +228 -0
  216. package/dist/settlement/contracts/TokenBridgeTree.d.ts.map +1 -0
  217. package/dist/settlement/contracts/TokenBridgeTree.js +60 -0
  218. package/dist/settlement/contracts/TokenBridgeTree.js.map +1 -0
  219. package/dist/settlement/contracts/authorizations/ContractAuthorization.d.ts +10 -0
  220. package/dist/settlement/contracts/authorizations/ContractAuthorization.d.ts.map +1 -0
  221. package/dist/settlement/contracts/authorizations/ContractAuthorization.js +2 -0
  222. package/dist/settlement/contracts/authorizations/ContractAuthorization.js.map +1 -0
  223. package/dist/settlement/contracts/authorizations/TokenBridgeDeploymentAuth.d.ts +85 -0
  224. package/dist/settlement/contracts/authorizations/TokenBridgeDeploymentAuth.d.ts.map +1 -0
  225. package/dist/settlement/contracts/authorizations/TokenBridgeDeploymentAuth.js +11 -0
  226. package/dist/settlement/contracts/authorizations/TokenBridgeDeploymentAuth.js.map +1 -0
  227. package/dist/settlement/contracts/authorizations/UpdateMessagesHashAuth.d.ts +79 -0
  228. package/dist/settlement/contracts/authorizations/UpdateMessagesHashAuth.d.ts.map +1 -0
  229. package/dist/settlement/contracts/authorizations/UpdateMessagesHashAuth.js +11 -0
  230. package/dist/settlement/contracts/authorizations/UpdateMessagesHashAuth.js.map +1 -0
  231. package/dist/settlement/contracts/settlement/BridgingSettlementContract.d.ts +107 -0
  232. package/dist/settlement/contracts/settlement/BridgingSettlementContract.d.ts.map +1 -0
  233. package/dist/settlement/contracts/settlement/BridgingSettlementContract.js +188 -0
  234. package/dist/settlement/contracts/settlement/BridgingSettlementContract.js.map +1 -0
  235. package/dist/settlement/contracts/settlement/SettlementBase.d.ts +41 -0
  236. package/dist/settlement/contracts/settlement/SettlementBase.d.ts.map +1 -0
  237. package/dist/settlement/contracts/settlement/SettlementBase.js +105 -0
  238. package/dist/settlement/contracts/settlement/SettlementBase.js.map +1 -0
  239. package/dist/settlement/contracts/settlement/SettlementContract.d.ts +15 -0
  240. package/dist/settlement/contracts/settlement/SettlementContract.d.ts.map +1 -0
  241. package/dist/settlement/contracts/settlement/SettlementContract.js +72 -0
  242. package/dist/settlement/contracts/settlement/SettlementContract.js.map +1 -0
  243. package/dist/settlement/messages/Deposit.d.ts +77 -0
  244. package/dist/settlement/messages/Deposit.d.ts.map +1 -0
  245. package/dist/settlement/messages/Deposit.js +8 -0
  246. package/dist/settlement/messages/Deposit.js.map +1 -0
  247. package/dist/settlement/messages/OutgoingMessage.d.ts +67 -0
  248. package/dist/settlement/messages/OutgoingMessage.d.ts.map +1 -0
  249. package/dist/settlement/messages/OutgoingMessage.js +7 -0
  250. package/dist/settlement/messages/OutgoingMessage.js.map +1 -0
  251. package/dist/settlement/messages/OutgoingMessageArgument.d.ts +494 -0
  252. package/dist/settlement/messages/OutgoingMessageArgument.d.ts.map +1 -0
  253. package/dist/settlement/messages/OutgoingMessageArgument.js +40 -0
  254. package/dist/settlement/messages/OutgoingMessageArgument.js.map +1 -0
  255. package/dist/settlement/messages/Withdrawal.d.ts +2 -0
  256. package/dist/settlement/messages/Withdrawal.d.ts.map +1 -0
  257. package/dist/settlement/messages/Withdrawal.js +3 -0
  258. package/dist/settlement/messages/Withdrawal.js.map +1 -0
  259. package/dist/settlement/modularity/OutgoingMessageProcessor.d.ts +25 -0
  260. package/dist/settlement/modularity/OutgoingMessageProcessor.d.ts.map +1 -0
  261. package/dist/settlement/modularity/OutgoingMessageProcessor.js +30 -0
  262. package/dist/settlement/modularity/OutgoingMessageProcessor.js.map +1 -0
  263. package/dist/settlement/modularity/ProvableSettlementHook.d.ts +26 -0
  264. package/dist/settlement/modularity/ProvableSettlementHook.d.ts.map +1 -0
  265. package/dist/settlement/modularity/ProvableSettlementHook.js +4 -0
  266. package/dist/settlement/modularity/ProvableSettlementHook.js.map +1 -0
  267. package/dist/settlement/modularity/types.d.ts +9 -0
  268. package/dist/settlement/modularity/types.d.ts.map +1 -0
  269. package/dist/settlement/modularity/types.js +2 -0
  270. package/dist/settlement/modularity/types.js.map +1 -0
  271. package/dist/settlement/modules/NetworkStateSettlementModule.d.ts +11 -0
  272. package/dist/settlement/modules/NetworkStateSettlementModule.d.ts.map +1 -0
  273. package/dist/settlement/modules/NetworkStateSettlementModule.js +15 -0
  274. package/dist/settlement/modules/NetworkStateSettlementModule.js.map +1 -0
  275. package/dist/state/SimpleAsyncStateService.d.ts +6 -0
  276. package/dist/state/SimpleAsyncStateService.d.ts.map +1 -0
  277. package/dist/state/SimpleAsyncStateService.js +2 -0
  278. package/dist/state/SimpleAsyncStateService.js.map +1 -0
  279. package/dist/state/State.d.ts +68 -0
  280. package/dist/state/State.d.ts.map +1 -0
  281. package/dist/state/State.js +141 -0
  282. package/dist/state/State.js.map +1 -0
  283. package/dist/state/StateMap.d.ts +37 -0
  284. package/dist/state/StateMap.d.ts.map +1 -0
  285. package/dist/state/StateMap.js +56 -0
  286. package/dist/state/StateMap.js.map +1 -0
  287. package/dist/state/StateService.d.ts +6 -0
  288. package/dist/state/StateService.d.ts.map +1 -0
  289. package/dist/state/StateService.js +2 -0
  290. package/dist/state/StateService.js.map +1 -0
  291. package/dist/state/StateServiceProvider.d.ts +8 -0
  292. package/dist/state/StateServiceProvider.d.ts.map +1 -0
  293. package/dist/state/StateServiceProvider.js +37 -0
  294. package/dist/state/StateServiceProvider.js.map +1 -0
  295. package/dist/state/WitnessBlockContext.d.ts +5 -0
  296. package/dist/state/WitnessBlockContext.d.ts.map +1 -0
  297. package/dist/state/WitnessBlockContext.js +42 -0
  298. package/dist/state/WitnessBlockContext.js.map +1 -0
  299. package/dist/state/assert/assert.d.ts +12 -0
  300. package/dist/state/assert/assert.d.ts.map +1 -0
  301. package/dist/state/assert/assert.js +33 -0
  302. package/dist/state/assert/assert.js.map +1 -0
  303. package/dist/state/context/RuntimeMethodExecutionContext.d.ts +193 -0
  304. package/dist/state/context/RuntimeMethodExecutionContext.d.ts.map +1 -0
  305. package/dist/state/context/RuntimeMethodExecutionContext.js +138 -0
  306. package/dist/state/context/RuntimeMethodExecutionContext.js.map +1 -0
  307. package/dist/state/context/TransitionMethodExecutionContext.d.ts +23 -0
  308. package/dist/state/context/TransitionMethodExecutionContext.d.ts.map +1 -0
  309. package/dist/state/context/TransitionMethodExecutionContext.js +6 -0
  310. package/dist/state/context/TransitionMethodExecutionContext.js.map +1 -0
  311. package/dist/state/protocol/ProtocolState.d.ts +13 -0
  312. package/dist/state/protocol/ProtocolState.d.ts.map +1 -0
  313. package/dist/state/protocol/ProtocolState.js +58 -0
  314. package/dist/state/protocol/ProtocolState.js.map +1 -0
  315. package/dist/utils/FieldOptions.d.ts +62 -0
  316. package/dist/utils/FieldOptions.d.ts.map +1 -0
  317. package/dist/utils/FieldOptions.js +13 -0
  318. package/dist/utils/FieldOptions.js.map +1 -0
  319. package/dist/utils/MinaPrefixedProvableHashList.d.ts +20 -0
  320. package/dist/utils/MinaPrefixedProvableHashList.d.ts.map +1 -0
  321. package/dist/utils/MinaPrefixedProvableHashList.js +49 -0
  322. package/dist/utils/MinaPrefixedProvableHashList.js.map +1 -0
  323. package/dist/utils/PrefixedProvableHashList.d.ts +3 -2
  324. package/dist/utils/PrefixedProvableHashList.d.ts.map +1 -1
  325. package/dist/utils/PrefixedProvableHashList.js +5 -1
  326. package/dist/utils/PrefixedProvableHashList.js.map +1 -0
  327. package/dist/utils/ProvableHashList.d.ts +27 -4
  328. package/dist/utils/ProvableHashList.d.ts.map +1 -1
  329. package/dist/utils/ProvableHashList.js +51 -3
  330. package/dist/utils/ProvableHashList.js.map +1 -0
  331. package/dist/utils/ProvableReductionHashList.d.ts +18 -0
  332. package/dist/utils/ProvableReductionHashList.d.ts.map +1 -0
  333. package/dist/utils/ProvableReductionHashList.js +54 -0
  334. package/dist/utils/ProvableReductionHashList.js.map +1 -0
  335. package/dist/utils/StateTransitionReductionList.d.ts +11 -0
  336. package/dist/utils/StateTransitionReductionList.d.ts.map +1 -0
  337. package/dist/utils/StateTransitionReductionList.js +61 -0
  338. package/dist/utils/StateTransitionReductionList.js.map +1 -0
  339. package/dist/utils/utils.d.ts +11 -5
  340. package/dist/utils/utils.d.ts.map +1 -1
  341. package/dist/utils/utils.js +13 -13
  342. package/dist/utils/utils.js.map +1 -0
  343. package/jest.config.cjs +12 -1
  344. package/package.json +11 -9
  345. package/src/hashing/mina-prefixes.ts +10 -0
  346. package/src/hashing/protokit-prefixes.ts +37 -0
  347. package/src/hooks/AccountStateHook.ts +80 -0
  348. package/src/hooks/BlockHeightHook.ts +17 -0
  349. package/src/hooks/LastStateRootBlockHook.ts +25 -0
  350. package/src/hooks/NoopBlockHook.ts +24 -0
  351. package/src/hooks/NoopSettlementHook.ts +20 -0
  352. package/src/hooks/NoopTransactionHook.ts +13 -0
  353. package/src/index.ts +59 -9
  354. package/src/model/AppliedStateTransitionBatch.ts +16 -0
  355. package/src/model/MethodPublicOutput.ts +3 -1
  356. package/src/model/Option.ts +99 -73
  357. package/src/model/Path.ts +9 -5
  358. package/src/model/RuntimeLike.ts +12 -0
  359. package/src/model/StateTransition.ts +19 -5
  360. package/src/model/StateTransitionProvableBatch.ts +114 -12
  361. package/src/model/Transaction.ts +3 -1
  362. package/src/model/network/NetworkState.ts +22 -2
  363. package/src/model/transaction/AuthorizedTransaction.ts +50 -0
  364. package/src/model/transaction/RuntimeTransaction.ts +86 -15
  365. package/src/model/transaction/ValueOption.ts +28 -0
  366. package/src/protocol/Protocol.ts +201 -69
  367. package/src/protocol/ProtocolEnvironment.ts +10 -0
  368. package/src/protocol/ProtocolModule.ts +16 -15
  369. package/src/protocol/ProvableBlockHook.ts +67 -0
  370. package/src/protocol/ProvableTransactionHook.ts +96 -0
  371. package/src/protocol/TransitioningProtocolModule.ts +12 -0
  372. package/src/prover/accumulators/AppliedBatchHashList.ts +32 -0
  373. package/src/prover/accumulators/BlockHashList.ts +117 -0
  374. package/src/prover/accumulators/StateTransitionReductionList.ts +92 -0
  375. package/src/prover/accumulators/TransactionHashList.ts +9 -0
  376. package/src/prover/accumulators/WitnessedRootHashList.ts +62 -0
  377. package/src/prover/block/BlockProvable.ts +360 -28
  378. package/src/prover/block/BlockProver.ts +721 -186
  379. package/src/prover/block/accummulators/BlockHashMerkleTree.ts +24 -0
  380. package/src/prover/block/accummulators/RuntimeVerificationKeyTree.ts +24 -0
  381. package/src/prover/block/services/RuntimeVerificationKeyRootService.ts +20 -0
  382. package/src/prover/statetransition/StateTransitionProvable.ts +26 -19
  383. package/src/prover/statetransition/StateTransitionProver.ts +337 -126
  384. package/src/prover/transaction/TransactionProvable.ts +183 -0
  385. package/src/prover/transaction/TransactionProver.ts +561 -0
  386. package/src/prover/utils.ts +108 -0
  387. package/src/settlement/ContractArgsRegistry.ts +60 -0
  388. package/src/settlement/ContractModule.ts +31 -0
  389. package/src/settlement/SettlementContractModule.ts +150 -0
  390. package/src/settlement/contracts/BridgeContract.ts +385 -0
  391. package/src/settlement/contracts/BridgeContractProtocolModule.ts +49 -0
  392. package/src/settlement/contracts/BridgingSettlementContractModule.ts +116 -0
  393. package/src/settlement/contracts/DispatchContractProtocolModule.ts +77 -0
  394. package/src/settlement/contracts/DispatchSmartContract.ts +359 -0
  395. package/src/settlement/contracts/SettlementSmartContractModule.ts +79 -0
  396. package/src/settlement/contracts/TokenBridgeTree.ts +73 -0
  397. package/src/settlement/contracts/authorizations/ContractAuthorization.ts +11 -0
  398. package/src/settlement/contracts/authorizations/TokenBridgeDeploymentAuth.ts +16 -0
  399. package/src/settlement/contracts/authorizations/UpdateMessagesHashAuth.ts +16 -0
  400. package/src/settlement/contracts/settlement/BridgingSettlementContract.ts +283 -0
  401. package/src/settlement/contracts/settlement/SettlementBase.ts +249 -0
  402. package/src/settlement/contracts/settlement/SettlementContract.ts +75 -0
  403. package/src/settlement/messages/Deposit.ts +7 -0
  404. package/src/settlement/messages/OutgoingMessage.ts +17 -0
  405. package/src/settlement/messages/OutgoingMessageArgument.ts +53 -0
  406. package/src/settlement/modularity/OutgoingMessageProcessor.ts +65 -0
  407. package/src/settlement/modularity/ProvableSettlementHook.ts +36 -0
  408. package/src/settlement/modularity/types.ts +23 -0
  409. package/src/settlement/modules/NetworkStateSettlementModule.ts +42 -0
  410. package/src/state/State.ts +190 -0
  411. package/src/state/StateMap.ts +73 -0
  412. package/src/state/StateService.ts +6 -0
  413. package/src/state/StateServiceProvider.ts +37 -0
  414. package/src/state/WitnessBlockContext.ts +50 -0
  415. package/src/state/assert/assert.ts +38 -0
  416. package/src/state/context/RuntimeMethodExecutionContext.ts +181 -0
  417. package/src/state/context/TransitionMethodExecutionContext.ts +26 -0
  418. package/src/state/protocol/ProtocolState.ts +98 -0
  419. package/src/utils/FieldOptions.ts +13 -0
  420. package/src/utils/MinaPrefixedProvableHashList.ts +70 -0
  421. package/src/utils/PrefixedProvableHashList.ts +6 -2
  422. package/src/utils/ProvableHashList.ts +109 -4
  423. package/src/utils/ProvableReductionHashList.ts +77 -0
  424. package/src/utils/utils.ts +21 -16
  425. package/test/BlockProver.test.ts +161 -74
  426. package/test/Protocol.test.ts +20 -10
  427. package/test/State.test.ts +45 -0
  428. package/test/StateTransition.test.ts +57 -65
  429. package/test/TestingProtocol.ts +36 -0
  430. package/test/compiling/types.ts +28 -0
  431. package/test/model/Option.test.ts +72 -0
  432. package/test/model/StateTransitionProvableBatch.test.ts +137 -0
  433. package/test/modularity/types.ts +35 -0
  434. package/test/prover/block/BlockProver.test.ts +18 -0
  435. package/test/prover/statetransition/StateTransitionProver.test.ts +261 -0
  436. package/test/state/assert/assert.test.ts +56 -0
  437. package/test/tsconfig.json +7 -0
  438. package/test/utils/ProvableHashList.test.ts +44 -0
  439. package/test/utils/ProvableReductionHashList.test.ts +117 -0
  440. package/test/utils.test.ts +0 -3
  441. package/LICENSE.md +0 -201
  442. package/dist/model/transaction/ProtocolTransaction.d.ts +0 -70
  443. package/dist/model/transaction/ProtocolTransaction.d.ts.map +0 -1
  444. package/dist/model/transaction/ProtocolTransaction.js +0 -18
  445. package/dist/prover/statetransition/StateTransitionWitnessProvider.d.ts +0 -16
  446. package/dist/prover/statetransition/StateTransitionWitnessProvider.d.ts.map +0 -1
  447. package/dist/prover/statetransition/StateTransitionWitnessProviderReference.d.ts +0 -7
  448. package/dist/prover/statetransition/StateTransitionWitnessProviderReference.d.ts.map +0 -1
  449. package/dist/utils/merkletree/InMemoryMerkleTreeStorage.d.ts +0 -25
  450. package/dist/utils/merkletree/InMemoryMerkleTreeStorage.d.ts.map +0 -1
  451. package/dist/utils/merkletree/InMemoryMerkleTreeStorage.js +0 -77
  452. package/dist/utils/merkletree/MerkleTreeStore.d.ts +0 -11
  453. package/dist/utils/merkletree/MerkleTreeStore.d.ts.map +0 -1
  454. package/dist/utils/merkletree/MerkleTreeStore.js +0 -1
  455. package/dist/utils/merkletree/RollupMerkleTree.d.ts +0 -130
  456. package/dist/utils/merkletree/RollupMerkleTree.d.ts.map +0 -1
  457. package/dist/utils/merkletree/RollupMerkleTree.js +0 -244
  458. package/src/model/Option.test.ts +0 -21
  459. package/src/model/transaction/ProtocolTransaction.ts +0 -25
  460. package/src/prover/statetransition/StateTransitionWitnessProvider.ts +0 -24
  461. package/src/prover/statetransition/StateTransitionWitnessProviderReference.ts +0 -17
  462. package/src/utils/merkletree/InMemoryMerkleTreeStorage.ts +0 -106
  463. package/src/utils/merkletree/MerkleTreeStore.ts +0 -15
  464. package/src/utils/merkletree/RollupMerkleTree.ts +0 -255
  465. package/src/utils/merkletree/VirtualMerkleTreeStore.ts +0 -21
  466. package/tsconfig.test.json +0 -9
@@ -7,48 +7,52 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- import { Experimental, Field, Provable, SelfProof } from "snarkyjs";
10
+ import { provableMethod, ZkProgrammable, LinkedMerkleTreeCircuitOps, } from "@proto-kit/common";
11
+ import { Field, Provable, SelfProof, ZkProgram } from "o1js";
11
12
  import { injectable } from "tsyringe";
12
- import { provableMethod } from "@proto-kit/common";
13
- import { MerkleTreeUtils, RollupMerkleWitness, } from "../../utils/merkletree/RollupMerkleTree.js";
14
- import { DefaultProvableHashList, } from "../../utils/ProvableHashList";
15
- import { ProvableStateTransition } from "../../model/StateTransition";
16
- import { StateTransitionProvableBatch } from "../../model/StateTransitionProvableBatch";
17
13
  import { constants } from "../../Constants";
14
+ import { ProvableStateTransition } from "../../model/StateTransition";
15
+ import { MerkleWitnessBatch, StateTransitionProvableBatch, StateTransitionType, } from "../../model/StateTransitionProvableBatch";
18
16
  import { ProtocolModule } from "../../protocol/ProtocolModule";
17
+ import { DefaultProvableHashList } from "../../utils/ProvableHashList";
18
+ import { WitnessedRootHashList } from "../accumulators/WitnessedRootHashList";
19
+ import { AppliedBatchHashList } from "../accumulators/AppliedBatchHashList";
20
+ import { AppliedStateTransitionBatchState } from "../../model/AppliedStateTransitionBatch";
19
21
  import { StateTransitionProverPublicInput, StateTransitionProverPublicOutput, } from "./StateTransitionProvable";
20
- import { StateTransitionWitnessProviderReference } from "./StateTransitionWitnessProviderReference";
21
22
  const errors = {
22
- stateRootNotMatching: (step) => `StateRoots not matching ${step}`,
23
- stateTransitionsHashNotMatching: (step) => `State transitions hash not matching ${step}`,
23
+ propertyNotMatching: (property, step) => `${property} not matching ${step}`,
24
24
  merkleWitnessNotCorrect: (index) => `MerkleWitness not valid for StateTransition (${index})`,
25
- noWitnessProviderSet: () => new Error("WitnessProvider not set, set it before you use StateTransitionProvider"),
26
- propertyNotMatching: (propertyName) => `${propertyName} not matching`,
27
25
  };
28
26
  const StateTransitionSelfProofClass = (SelfProof);
29
27
  /**
30
28
  * StateTransitionProver is the prover that proves the application of some state
31
29
  * transitions and checks and updates their merkle-tree entries
32
30
  */
33
- let StateTransitionProver = class StateTransitionProver extends ProtocolModule {
34
- constructor(
35
- // Injected
36
- witnessProviderReference) {
31
+ export class StateTransitionProverProgrammable extends ZkProgrammable {
32
+ constructor(stateTransitionProver) {
37
33
  super();
38
- this.witnessProviderReference = witnessProviderReference;
34
+ this.stateTransitionProver = stateTransitionProver;
35
+ }
36
+ get areProofsEnabled() {
37
+ return this.stateTransitionProver.areProofsEnabled;
39
38
  }
40
39
  zkProgramFactory() {
41
- // eslint-disable-next-line max-len
42
- // eslint-disable-next-line @typescript-eslint/no-this-alias,consistent-this,unicorn/no-this-assignment
43
40
  const instance = this;
44
- const program = Experimental.ZkProgram({
41
+ const program = ZkProgram({
42
+ name: "StateTransitionProver",
45
43
  publicInput: StateTransitionProverPublicInput,
46
44
  publicOutput: StateTransitionProverPublicOutput,
47
45
  methods: {
48
46
  proveBatch: {
49
- privateInputs: [StateTransitionProvableBatch],
50
- method(publicInput, batch) {
51
- return instance.runBatch(publicInput, batch);
47
+ privateInputs: [
48
+ StateTransitionProvableBatch,
49
+ MerkleWitnessBatch,
50
+ AppliedStateTransitionBatchState,
51
+ ],
52
+ async method(publicInput, batch, witnesses, currentAppliedBatch) {
53
+ return {
54
+ publicOutput: await instance.proveBatch(publicInput, batch, witnesses, currentAppliedBatch),
55
+ };
52
56
  },
53
57
  },
54
58
  merge: {
@@ -56,8 +60,10 @@ let StateTransitionProver = class StateTransitionProver extends ProtocolModule {
56
60
  StateTransitionSelfProofClass,
57
61
  StateTransitionSelfProofClass,
58
62
  ],
59
- method(publicInput, proof1, proof2) {
60
- return instance.merge(publicInput, proof1, proof2);
63
+ async method(publicInput, proof1, proof2) {
64
+ return {
65
+ publicOutput: await instance.merge(publicInput, proof1, proof2),
66
+ };
61
67
  },
62
68
  },
63
69
  },
@@ -66,33 +72,78 @@ let StateTransitionProver = class StateTransitionProver extends ProtocolModule {
66
72
  proveBatch: program.proveBatch.bind(program),
67
73
  merge: program.merge.bind(program),
68
74
  };
69
- const SelfProofClass = Experimental.ZkProgram.Proof(program);
75
+ const SelfProofClass = ZkProgram.Proof(program);
76
+ return [
77
+ {
78
+ name: program.name,
79
+ compile: program.compile.bind(program),
80
+ verify: program.verify.bind(program),
81
+ analyzeMethods: program.analyzeMethods.bind(program),
82
+ Proof: SelfProofClass,
83
+ methods,
84
+ },
85
+ ];
86
+ }
87
+ transitionToTreeWrite(st, witness) {
88
+ // If from isSome isn't set, the user "ignored the previous value", i.e. we
89
+ // can assume the value in the witness is correct
90
+ const from = Provable.if(st.from.isSome, st.from.value, witness.leafCurrent.leaf.value);
91
+ // If the user doesn't want to write, we just carry over the from-value
92
+ const to = Provable.if(st.to.isSome, st.to.value, from);
70
93
  return {
71
- compile: program.compile.bind(program),
72
- verify: program.verify.bind(program),
73
- Proof: SelfProofClass,
74
- methods,
94
+ path: st.path,
95
+ from,
96
+ to,
75
97
  };
76
98
  }
77
- get witnessProvider() {
78
- const provider = this.witnessProviderReference.getWitnessProvider();
79
- if (provider === undefined) {
80
- throw errors.noWitnessProviderSet();
81
- }
82
- return provider;
83
- }
84
99
  /**
85
100
  * Applies the state transitions to the current stateRoot
86
101
  * and returns the new prover state
87
102
  */
88
- applyTransitions(stateRoot, stateTransitionCommitmentFrom, transitionBatch) {
89
- const state = {
90
- stateRoot,
91
- stateTransitionList: new DefaultProvableHashList(ProvableStateTransition, stateTransitionCommitmentFrom),
92
- };
93
- const transitions = transitionBatch.batch;
103
+ applyTransitions(state, batch, witnesses) {
104
+ const transitions = batch.batch;
94
105
  for (let index = 0; index < constants.stateTransitionProverBatchSize; index++) {
95
- this.applyTransition(state, transitions[index], index);
106
+ const updatedBatchState = this.applyTransition(state.currentBatch, transitions[index].stateTransition, witnesses.witnesses[index], index);
107
+ // If the current batch is finished, we push it to the list
108
+ // and initialize the next
109
+ const { type, witnessRoot } = transitions[index];
110
+ const closing = type.isClosing();
111
+ const closingAndApply = type.type.equals(StateTransitionType.closeAndApply);
112
+ // Create the newBatch
113
+ // The root is based on if the previous batch will be applied or not
114
+ const base = Provable.if(closingAndApply, updatedBatchState.root, state.finalizedRoot);
115
+ const newBatchState = new AppliedStateTransitionBatchState({
116
+ batchHash: Field(0),
117
+ root: base,
118
+ });
119
+ const updatedBatch = {
120
+ applied: closingAndApply,
121
+ batchHash: updatedBatchState.batchHash,
122
+ };
123
+ state.batchList.pushIf(updatedBatch, closing);
124
+ state.finalizedRoot = Provable.if(closingAndApply, updatedBatchState.root, state.finalizedRoot);
125
+ // Add computed root to the witnessed root list if needed
126
+ witnessRoot
127
+ .implies(closing)
128
+ .assertTrue("Can only witness roots at closing batches");
129
+ state.witnessedRoots.pushIf({
130
+ root: state.finalizedRoot,
131
+ appliedBatchListState: state.batchList.commitment,
132
+ }, witnessRoot);
133
+ const isDummy = ProvableStateTransition.isDummy(transitions[index].stateTransition);
134
+ // Dummy STs cannot change any state, as to prevent any
135
+ // dummy-in-the-middle attacks. This is given if the type is nothing.
136
+ isDummy
137
+ .implies(type.isNothing())
138
+ .assertTrue("Dummies have to be of type 'nothing'");
139
+ isDummy
140
+ .implies(state.currentBatch.batchHash.equals(0))
141
+ .assertTrue("Dummies can only be placed on closed batchLists");
142
+ // Dummies don't close the batch, but we still want to ignore any
143
+ // updated batch, since we need to result to stay.
144
+ // This will break the pipeline if there is a dummy in the middle,
145
+ // but will only end up to invalid proofs (i.e. mismatched batches)
146
+ state.currentBatch = new AppliedStateTransitionBatchState(Provable.if(closing.or(isDummy), AppliedStateTransitionBatchState, newBatchState, updatedBatchState));
96
147
  }
97
148
  return state;
98
149
  }
@@ -100,56 +151,103 @@ let StateTransitionProver = class StateTransitionProver extends ProtocolModule {
100
151
  * Applies a single state transition to the given state
101
152
  * and mutates it in place
102
153
  */
103
- applyTransition(state, transition, index = 0) {
104
- const treeWitness = Provable.witness(RollupMerkleWitness, () => this.witnessProvider.getWitness(transition.path));
105
- const membershipValid = MerkleTreeUtils.checkMembership(treeWitness, state.stateRoot, transition.path, transition.from.value);
106
- membershipValid
107
- .or(transition.from.isSome.not())
108
- .assertTrue(errors.merkleWitnessNotCorrect(index));
109
- const newRoot = MerkleTreeUtils.computeRoot(treeWitness, transition.to.value);
110
- state.stateRoot = Provable.if(transition.to.isSome, newRoot, state.stateRoot);
111
- state.stateTransitionList.pushIf(transition, transition.path.equals(Field(0)).not());
154
+ applyTransition(currentBatch, transition, witness, index = 0) {
155
+ const impliedRoot = this.applyTransitionToRoot(transition, currentBatch.root, witness, index);
156
+ // Append ST to the current batch's ST-list
157
+ const stList = new DefaultProvableHashList(ProvableStateTransition, currentBatch.batchHash);
158
+ stList.push(transition);
159
+ // Update batch
160
+ return new AppliedStateTransitionBatchState({
161
+ batchHash: stList.commitment,
162
+ root: impliedRoot,
163
+ });
164
+ }
165
+ applyTransitionToRoot(transition, root, merkleWitness, index) {
166
+ const treeWrite = this.transitionToTreeWrite(transition, merkleWitness);
167
+ return LinkedMerkleTreeCircuitOps.applyTreeWrite(root, merkleWitness, treeWrite, index);
112
168
  }
113
169
  /**
114
170
  * Applies a whole batch of StateTransitions at once
115
171
  */
116
- runBatch(publicInput, batch) {
117
- const result = this.applyTransitions(publicInput.stateRoot, publicInput.stateTransitionsHash, batch);
172
+ async proveBatch(publicInput, batch, witnesses, currentAppliedBatch) {
173
+ currentAppliedBatch
174
+ .hashOrZero()
175
+ .assertEquals(publicInput.currentBatchStateHash, "Provided startingAppliedBatch not matching PI hash");
176
+ // Assert that either the currentAppliedBatch is somewhere intermediary
177
+ // or the root is the current "finalized" root
178
+ currentAppliedBatch.root
179
+ .equals(publicInput.root)
180
+ .or(publicInput.currentBatchStateHash.equals(0).not())
181
+ .assertTrue();
182
+ const state = {
183
+ batchList: new AppliedBatchHashList(publicInput.batchesHash),
184
+ currentBatch: currentAppliedBatch,
185
+ finalizedRoot: publicInput.root,
186
+ witnessedRoots: new WitnessedRootHashList(publicInput.witnessedRootsHash),
187
+ };
188
+ const result = this.applyTransitions(state, batch, witnesses);
118
189
  return new StateTransitionProverPublicOutput({
119
- stateRoot: result.stateRoot,
120
- stateTransitionsHash: result.stateTransitionList.commitment,
190
+ batchesHash: result.batchList.commitment,
191
+ currentBatchStateHash: result.currentBatch.hashOrZero(),
192
+ root: result.finalizedRoot,
193
+ witnessedRootsHash: result.witnessedRoots.commitment,
121
194
  });
122
195
  }
123
- merge(publicInput, proof1, proof2) {
196
+ async merge(publicInput, proof1, proof2) {
124
197
  proof1.verify();
125
198
  proof2.verify();
126
- // Check state
127
- publicInput.stateRoot.assertEquals(proof1.publicInput.stateRoot, errors.stateRootNotMatching("publicInput.from -> proof1.from"));
128
- proof1.publicOutput.stateRoot.assertEquals(proof2.publicInput.stateRoot, errors.stateRootNotMatching("proof1.to -> proof2.from"));
129
- // Check ST list
130
- publicInput.stateTransitionsHash.assertEquals(proof1.publicInput.stateTransitionsHash, errors.stateTransitionsHashNotMatching("publicInput.from -> proof1.from"));
131
- proof1.publicOutput.stateTransitionsHash.assertEquals(proof2.publicInput.stateTransitionsHash, errors.stateTransitionsHashNotMatching("proof1.to -> proof2.from"));
199
+ // Check current batch hash
200
+ publicInput.currentBatchStateHash.assertEquals(proof1.publicInput.currentBatchStateHash, errors.propertyNotMatching("currentBatchStateHash", "publicInput.from -> proof1.from"));
201
+ proof1.publicOutput.currentBatchStateHash.assertEquals(proof2.publicInput.currentBatchStateHash, errors.propertyNotMatching("currentBatchStateHash", "proof1.to -> proof2.from"));
202
+ // Check batches hash
203
+ publicInput.batchesHash.assertEquals(proof1.publicInput.batchesHash, errors.propertyNotMatching("batchesHash", "publicInput.from -> proof1.from"));
204
+ proof1.publicOutput.batchesHash.assertEquals(proof2.publicInput.batchesHash, errors.propertyNotMatching("batchesHash", "proof1.to -> proof2.from"));
205
+ // Check root
206
+ publicInput.root.assertEquals(proof1.publicInput.root, errors.propertyNotMatching("root", "publicInput.from -> proof1.from"));
207
+ proof1.publicOutput.root.assertEquals(proof2.publicInput.root, errors.propertyNotMatching("root", "proof1.to -> proof2.from"));
208
+ // Check root accumulator
209
+ publicInput.witnessedRootsHash.assertEquals(proof1.publicInput.witnessedRootsHash, errors.propertyNotMatching("witnessedRootsHash", "publicInput.from -> proof1.from"));
210
+ proof1.publicOutput.witnessedRootsHash.assertEquals(proof2.publicInput.witnessedRootsHash, errors.propertyNotMatching("witnessedRootsHash", "proof1.to -> proof2.from"));
132
211
  return new StateTransitionProverPublicInput({
133
- stateRoot: proof2.publicOutput.stateRoot,
134
- stateTransitionsHash: proof2.publicOutput.stateTransitionsHash,
212
+ currentBatchStateHash: proof2.publicOutput.currentBatchStateHash,
213
+ batchesHash: proof2.publicOutput.batchesHash,
214
+ root: proof2.publicOutput.root,
215
+ witnessedRootsHash: proof2.publicOutput.witnessedRootsHash,
135
216
  });
136
217
  }
137
- };
218
+ }
138
219
  __decorate([
139
220
  provableMethod(),
140
221
  __metadata("design:type", Function),
141
222
  __metadata("design:paramtypes", [StateTransitionProverPublicInput,
142
- StateTransitionProvableBatch]),
143
- __metadata("design:returntype", StateTransitionProverPublicOutput)
144
- ], StateTransitionProver.prototype, "runBatch", null);
223
+ StateTransitionProvableBatch,
224
+ MerkleWitnessBatch,
225
+ AppliedStateTransitionBatchState]),
226
+ __metadata("design:returntype", Promise)
227
+ ], StateTransitionProverProgrammable.prototype, "proveBatch", null);
145
228
  __decorate([
146
229
  provableMethod(),
147
230
  __metadata("design:type", Function),
148
231
  __metadata("design:paramtypes", [StateTransitionProverPublicInput, Object, Object]),
149
- __metadata("design:returntype", StateTransitionProverPublicOutput)
150
- ], StateTransitionProver.prototype, "merge", null);
232
+ __metadata("design:returntype", Promise)
233
+ ], StateTransitionProverProgrammable.prototype, "merge", null);
234
+ export let StateTransitionProver = class StateTransitionProver extends ProtocolModule {
235
+ constructor() {
236
+ super();
237
+ this.zkProgrammable = new StateTransitionProverProgrammable(this);
238
+ }
239
+ async compile(registry) {
240
+ return await this.zkProgrammable.compile(registry);
241
+ }
242
+ proveBatch(publicInput, batch, witnesses, startingAppliedBatch) {
243
+ return this.zkProgrammable.proveBatch(publicInput, batch, witnesses, startingAppliedBatch);
244
+ }
245
+ merge(publicInput, proof1, proof2) {
246
+ return this.zkProgrammable.merge(publicInput, proof1, proof2);
247
+ }
248
+ };
151
249
  StateTransitionProver = __decorate([
152
250
  injectable(),
153
- __metadata("design:paramtypes", [StateTransitionWitnessProviderReference])
251
+ __metadata("design:paramtypes", [])
154
252
  ], StateTransitionProver);
155
- export { StateTransitionProver };
253
+ //# sourceMappingURL=StateTransitionProver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateTransitionProver.js","sourceRoot":"","sources":["../../../src/prover/statetransition/StateTransitionProver.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAGL,cAAc,EACd,cAAc,EAKd,0BAA0B,GAE3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EACL,kBAAkB,EAClB,4BAA4B,EAC5B,mBAAmB,GACpB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,gCAAgC,EAAE,MAAM,yCAAyC,CAAC;AAE3F,OAAO,EAGL,gCAAgC,EAChC,iCAAiC,GAClC,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,GAAG;IACb,mBAAmB,EAAE,CAAC,QAAgB,EAAE,IAAY,EAAE,EAAE,CACtD,GAAG,QAAQ,iBAAiB,IAAI,EAAE;IAEpC,uBAAuB,EAAE,CAAC,KAAa,EAAE,EAAE,CACzC,gDAAgD,KAAK,GAAG;CAC3D,CAAC;AASF,MAAM,6BAA6B,GAAG,CAAA,SAGrC,CAAA,CAAC;AAEF;;;GAGG;AACH,MAAM,OAAO,iCAAkC,SAAQ,cAGtD;IACC,YACmB,qBAGhB;QAED,KAAK,EAAE,CAAC;QALS,0BAAqB,GAArB,qBAAqB,CAGrC;IAGH,CAAC;IAED,IAAW,gBAAgB;QACzB,OAAO,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC;IACrD,CAAC;IAEM,gBAAgB;QAIrB,MAAM,QAAQ,GAAG,IAAI,CAAC;QAEtB,MAAM,OAAO,GAAG,SAAS,CAAC;YACxB,IAAI,EAAE,uBAAuB;YAC7B,WAAW,EAAE,gCAAgC;YAC7C,YAAY,EAAE,iCAAiC;YAE/C,OAAO,EAAE;gBACP,UAAU,EAAE;oBACV,aAAa,EAAE;wBACb,4BAA4B;wBAC5B,kBAAkB;wBAClB,gCAAgC;qBACjC;oBAED,KAAK,CAAC,MAAM,CACV,WAA6C,EAC7C,KAAmC,EACnC,SAA6B,EAC7B,mBAAqD;wBAErD,OAAO;4BACL,YAAY,EAAE,MAAM,QAAQ,CAAC,UAAU,CACrC,WAAW,EACX,KAAK,EACL,SAAS,EACT,mBAAmB,CACpB;yBACF,CAAC;oBACJ,CAAC;iBACF;gBAED,KAAK,EAAE;oBACL,aAAa,EAAE;wBACb,6BAA6B;wBAC7B,6BAA6B;qBAC9B;oBAED,KAAK,CAAC,MAAM,CACV,WAA6C,EAC7C,MAA4B,EAC5B,MAA4B;wBAE5B,OAAO;4BACL,YAAY,EAAE,MAAM,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC;yBAChE,CAAC;oBACJ,CAAC;iBACF;aACF;SACF,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG;YACd,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;YAC5C,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;SACnC,CAAC;QAEF,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEhD,OAAO;YACL;gBACE,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;gBACtC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;gBACpC,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;gBACpD,KAAK,EAAE,cAAc;gBACrB,OAAO;aACR;SACF,CAAC;IACJ,CAAC;IAEO,qBAAqB,CAC3B,EAA2B,EAC3B,OAAgC;QAEhC,2EAA2E;QAC3E,iDAAiD;QACjD,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,CACtB,EAAE,CAAC,IAAI,CAAC,MAAM,EACd,EAAE,CAAC,IAAI,CAAC,KAAK,EACb,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAC/B,CAAC;QAEF,uEAAuE;QACvE,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACxD,OAAO;YACL,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,IAAI;YACJ,EAAE;SACH,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,gBAAgB,CACrB,KAA0C,EAC1C,KAAmC,EACnC,SAA6B;QAE7B,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;QAEhC,KACE,IAAI,KAAK,GAAG,CAAC,EACb,KAAK,GAAG,SAAS,CAAC,8BAA8B,EAChD,KAAK,EAAE,EACP;YACA,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAC5C,KAAK,CAAC,YAAY,EAClB,WAAW,CAAC,KAAK,CAAC,CAAC,eAAe,EAClC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,EAC1B,KAAK,CACN,CAAC;YAEF,2DAA2D;YAC3D,0BAA0B;YAC1B,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YACjC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CACtC,mBAAmB,CAAC,aAAa,CAClC,CAAC;YAEF,sBAAsB;YACtB,oEAAoE;YACpE,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,CACtB,eAAe,EACf,iBAAiB,CAAC,IAAI,EACtB,KAAK,CAAC,aAAa,CACpB,CAAC;YACF,MAAM,aAAa,GAAG,IAAI,gCAAgC,CAAC;gBACzD,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG;gBACnB,OAAO,EAAE,eAAe;gBACxB,SAAS,EAAE,iBAAiB,CAAC,SAAS;aACvC,CAAC;YACF,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAC9C,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC,EAAE,CAC/B,eAAe,EACf,iBAAiB,CAAC,IAAI,EACtB,KAAK,CAAC,aAAa,CACpB,CAAC;YAEF,yDAAyD;YACzD,WAAW;iBACR,OAAO,CAAC,OAAO,CAAC;iBAChB,UAAU,CAAC,2CAA2C,CAAC,CAAC;YAC3D,KAAK,CAAC,cAAc,CAAC,MAAM,CACzB;gBACE,IAAI,EAAE,KAAK,CAAC,aAAa;gBACzB,qBAAqB,EAAE,KAAK,CAAC,SAAS,CAAC,UAAU;aAClD,EACD,WAAW,CACZ,CAAC;YAEF,MAAM,OAAO,GAAG,uBAAuB,CAAC,OAAO,CAC7C,WAAW,CAAC,KAAK,CAAC,CAAC,eAAe,CACnC,CAAC;YAEF,uDAAuD;YACvD,qEAAqE;YACrE,OAAO;iBACJ,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;iBACzB,UAAU,CAAC,sCAAsC,CAAC,CAAC;YAEtD,OAAO;iBACJ,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;iBAC/C,UAAU,CAAC,iDAAiD,CAAC,CAAC;YAEjE,iEAAiE;YACjE,kDAAkD;YAClD,kEAAkE;YAClE,mEAAmE;YAEnE,KAAK,CAAC,YAAY,GAAG,IAAI,gCAAgC,CACvD,QAAQ,CAAC,EAAE,CACT,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EACnB,gCAAgC,EAChC,aAAa,EACb,iBAAiB,CAClB,CACF,CAAC;SACH;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACI,eAAe,CACpB,YAA8C,EAC9C,UAAmC,EACnC,OAAgC,EAChC,KAAK,GAAG,CAAC;QAET,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAC5C,UAAU,EACV,YAAY,CAAC,IAAI,EACjB,OAAO,EACP,KAAK,CACN,CAAC;QAEF,2CAA2C;QAC3C,MAAM,MAAM,GAAG,IAAI,uBAAuB,CACxC,uBAAuB,EACvB,YAAY,CAAC,SAAS,CACvB,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAExB,eAAe;QACf,OAAO,IAAI,gCAAgC,CAAC;YAC1C,SAAS,EAAE,MAAM,CAAC,UAAU;YAC5B,IAAI,EAAE,WAAW;SAClB,CAAC,CAAC;IACL,CAAC;IAEO,qBAAqB,CAC3B,UAAmC,EACnC,IAAW,EACX,aAAsC,EACtC,KAAa;QAEb,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAExE,OAAO,0BAA0B,CAAC,cAAc,CAC9C,IAAI,EACJ,aAAa,EACb,SAAS,EACT,KAAK,CACN,CAAC;IACJ,CAAC;IAED;;OAEG;IAEU,AAAN,KAAK,CAAC,UAAU,CACrB,WAA6C,EAC7C,KAAmC,EACnC,SAA6B,EAC7B,mBAAqD;QAErD,mBAAmB;aAChB,UAAU,EAAE;aACZ,YAAY,CACX,WAAW,CAAC,qBAAqB,EACjC,oDAAoD,CACrD,CAAC;QAEJ,uEAAuE;QACvE,8CAA8C;QAC9C,mBAAmB,CAAC,IAAI;aACrB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;aACxB,EAAE,CAAC,WAAW,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;aACrD,UAAU,EAAE,CAAC;QAEhB,MAAM,KAAK,GAAwC;YACjD,SAAS,EAAE,IAAI,oBAAoB,CAAC,WAAW,CAAC,WAAW,CAAC;YAC5D,YAAY,EAAE,mBAAmB;YACjC,aAAa,EAAE,WAAW,CAAC,IAAI;YAC/B,cAAc,EAAE,IAAI,qBAAqB,CAAC,WAAW,CAAC,kBAAkB,CAAC;SAC1E,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QAE9D,OAAO,IAAI,iCAAiC,CAAC;YAC3C,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU;YACxC,qBAAqB,EAAE,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE;YACvD,IAAI,EAAE,MAAM,CAAC,aAAa;YAC1B,kBAAkB,EAAE,MAAM,CAAC,cAAc,CAAC,UAAU;SACrD,CAAC,CAAC;IACL,CAAC;IAGY,AAAN,KAAK,CAAC,KAAK,CAChB,WAA6C,EAC7C,MAA4B,EAC5B,MAA4B;QAE5B,MAAM,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,CAAC,MAAM,EAAE,CAAC;QAEhB,2BAA2B;QAC3B,WAAW,CAAC,qBAAqB,CAAC,YAAY,CAC5C,MAAM,CAAC,WAAW,CAAC,qBAAqB,EACxC,MAAM,CAAC,mBAAmB,CACxB,uBAAuB,EACvB,iCAAiC,CAClC,CACF,CAAC;QACF,MAAM,CAAC,YAAY,CAAC,qBAAqB,CAAC,YAAY,CACpD,MAAM,CAAC,WAAW,CAAC,qBAAqB,EACxC,MAAM,CAAC,mBAAmB,CACxB,uBAAuB,EACvB,0BAA0B,CAC3B,CACF,CAAC;QAEF,qBAAqB;QACrB,WAAW,CAAC,WAAW,CAAC,YAAY,CAClC,MAAM,CAAC,WAAW,CAAC,WAAW,EAC9B,MAAM,CAAC,mBAAmB,CACxB,aAAa,EACb,iCAAiC,CAClC,CACF,CAAC;QACF,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,YAAY,CAC1C,MAAM,CAAC,WAAW,CAAC,WAAW,EAC9B,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,0BAA0B,CAAC,CACtE,CAAC;QAEF,aAAa;QACb,WAAW,CAAC,IAAI,CAAC,YAAY,CAC3B,MAAM,CAAC,WAAW,CAAC,IAAI,EACvB,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,iCAAiC,CAAC,CACtE,CAAC;QAEF,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CACnC,MAAM,CAAC,WAAW,CAAC,IAAI,EACvB,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAC/D,CAAC;QAEF,yBAAyB;QACzB,WAAW,CAAC,kBAAkB,CAAC,YAAY,CACzC,MAAM,CAAC,WAAW,CAAC,kBAAkB,EACrC,MAAM,CAAC,mBAAmB,CACxB,oBAAoB,EACpB,iCAAiC,CAClC,CACF,CAAC;QACF,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,YAAY,CACjD,MAAM,CAAC,WAAW,CAAC,kBAAkB,EACrC,MAAM,CAAC,mBAAmB,CACxB,oBAAoB,EACpB,0BAA0B,CAC3B,CACF,CAAC;QAEF,OAAO,IAAI,gCAAgC,CAAC;YAC1C,qBAAqB,EAAE,MAAM,CAAC,YAAY,CAAC,qBAAqB;YAChE,WAAW,EAAE,MAAM,CAAC,YAAY,CAAC,WAAW;YAC5C,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI;YAC9B,kBAAkB,EAAE,MAAM,CAAC,YAAY,CAAC,kBAAkB;SAC3D,CAAC,CAAC;IACL,CAAC;CACF;AA7Gc;IADZ,cAAc,EAAE;;qCAEF,gCAAgC;QACtC,4BAA4B;QACxB,kBAAkB;QACR,gCAAgC;;mEA+BtD;AAGY;IADZ,cAAc,EAAE;;qCAEF,gCAAgC;;8DAqE9C;AAII,WAAM,qBAAqB,GAA3B,MAAM,qBACX,SAAQ,cAAc;IAKtB;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,cAAc,GAAG,IAAI,iCAAiC,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC;IAEM,KAAK,CAAC,OAAO,CAClB,QAAyB;QAEzB,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC;IAEM,UAAU,CACf,WAA6C,EAC7C,KAAmC,EACnC,SAA6B,EAC7B,oBAAsD;QAEtD,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CACnC,WAAW,EACX,KAAK,EACL,SAAS,EACT,oBAAoB,CACrB,CAAC;IACJ,CAAC;IAEM,KAAK,CACV,WAA6C,EAC7C,MAA4B,EAC5B,MAA4B;QAE5B,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAChE,CAAC;CACF,CAAA;AAtCY,qBAAqB;IADjC,UAAU,EAAE;;GACA,qBAAqB,CAsCjC"}