@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
@@ -24,6 +24,7 @@ export declare class SettlementContractModule<SettlementModules extends Settleme
24
24
  protocol?: ProtocolEnvironment;
25
25
  get appChain(): AreProofsEnabled | undefined;
26
26
  create(childContainerProvider: ChildContainerProvider): void;
27
+ start(): Promise<void>;
27
28
  getContractClasses(): {
28
29
  settlement: SmartContractClassFromInterface<SettlementContractType>;
29
30
  dispatch: SmartContractClassFromInterface<DispatchContractType>;
@@ -1 +1 @@
1
- {"version":3,"file":"SettlementContractModule.d.ts","sourceRoot":"","sources":["../../src/settlement/SettlementContractModule.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,UAAU,EACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAGhD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EACL,cAAc,EACd,+BAA+B,EAChC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,8BAA8B,EAAE,MAAM,4CAA4C,CAAC;AAC5F,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EACL,wBAAwB,EACxB,gCAAgC,EACjC,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAE7E,MAAM,MAAM,uBAAuB,GAAG,aAAa,CACjD,UAAU,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CACtD,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,kBAAkB,EAAE,UAAU,CAC5B,cAAc,CACZ,sBAAsB,EACtB,+BAA+B,CAAC,oBAAoB,CAAC,EACrD,wBAAwB,CACzB,CACF,CAAC;IACF,gBAAgB,EAAE,UAAU,CAC1B,cAAc,CAAC,oBAAoB,EAAE,OAAO,EAAE,OAAO,CAAC,CACvD,CAAC;CACH,CAAC;AAEF,qBACa,wBAAwB,CACjC,iBAAiB,SAAS,uBAAuB,GAC/C,gCAAgC,CAEpC,SAAQ,eAAe,CAAC,iBAAiB,CACzC,YAAW,cAAc,CAAC,OAAO,CAAC;gBAEf,UAAU,EAAE;QAAE,OAAO,EAAE,iBAAiB,CAAA;KAAE;WAI/C,IAAI,CAChB,iBAAiB,SAAS,uBAAuB,GAC/C,gCAAgC,EAElC,OAAO,EAAE,iBAAiB,GACzB,UAAU,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;WAQ5C,YAAY;;;;IAQnB,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAEtC,IAAW,QAAQ,IAAI,gBAAgB,GAAG,SAAS,CAElD;IAGM,MAAM,CAAC,sBAAsB,EAAE,sBAAsB;IAMrD,kBAAkB,IAAI;QAC3B,UAAU,EAAE,+BAA+B,CAAC,sBAAsB,CAAC,CAAC;QACpE,QAAQ,EAAE,+BAA+B,CAAC,oBAAoB,CAAC,CAAC;KACjE;IAkBM,eAAe,CAAC,SAAS,EAAE;QAChC,UAAU,EAAE,SAAS,CAAC;QACtB,QAAQ,EAAE,SAAS,CAAC;KACrB,GAAG;QACF,UAAU,EAAE,sBAAsB,GAAG,aAAa,CAAC;QACnD,QAAQ,EAAE,oBAAoB,GAAG,aAAa,CAAC;KAChD;CAWF"}
1
+ {"version":3,"file":"SettlementContractModule.d.ts","sourceRoot":"","sources":["../../src/settlement/SettlementContractModule.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,UAAU,EAEX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAGhD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EACL,cAAc,EACd,+BAA+B,EAChC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,8BAA8B,EAAE,MAAM,4CAA4C,CAAC;AAC5F,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EACL,wBAAwB,EACxB,gCAAgC,EACjC,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAE7E,MAAM,MAAM,uBAAuB,GAAG,aAAa,CACjD,UAAU,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CACtD,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,kBAAkB,EAAE,UAAU,CAC5B,cAAc,CACZ,sBAAsB,EACtB,+BAA+B,CAAC,oBAAoB,CAAC,EACrD,wBAAwB,CACzB,CACF,CAAC;IACF,gBAAgB,EAAE,UAAU,CAC1B,cAAc,CAAC,oBAAoB,EAAE,OAAO,EAAE,OAAO,CAAC,CACvD,CAAC;CACH,CAAC;AAEF,qBACa,wBAAwB,CACjC,iBAAiB,SAAS,uBAAuB,GAC/C,gCAAgC,CAEpC,SAAQ,eAAe,CAAC,iBAAiB,CACzC,YAAW,cAAc,CAAC,OAAO,CAAC;gBAEf,UAAU,EAAE;QAAE,OAAO,EAAE,iBAAiB,CAAA;KAAE;WAI/C,IAAI,CAChB,iBAAiB,SAAS,uBAAuB,GAC/C,gCAAgC,EAElC,OAAO,EAAE,iBAAiB,GACzB,UAAU,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;WAQ5C,YAAY;;;;IAQnB,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAEtC,IAAW,QAAQ,IAAI,gBAAgB,GAAG,SAAS,CAElD;IAGM,MAAM,CAAC,sBAAsB,EAAE,sBAAsB;IAI/C,KAAK;IAIX,kBAAkB,IAAI;QAC3B,UAAU,EAAE,+BAA+B,CAAC,sBAAsB,CAAC,CAAC;QACpE,QAAQ,EAAE,+BAA+B,CAAC,oBAAoB,CAAC,CAAC;KACjE;IAkBM,eAAe,CAAC,SAAS,EAAE;QAChC,UAAU,EAAE,SAAS,CAAC;QACtB,QAAQ,EAAE,SAAS,CAAC;KACrB,GAAG;QACF,UAAU,EAAE,sBAAsB,GAAG,aAAa,CAAC;QACnD,QAAQ,EAAE,oBAAoB,GAAG,aAAa,CAAC;KAChD;CAaF"}
@@ -8,11 +8,11 @@ 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
10
  var SettlementContractModule_1;
11
- import { ModuleContainer } from "@proto-kit/common";
11
+ import { ModuleContainer, noop, } from "@proto-kit/common";
12
12
  import { injectable } from "tsyringe";
13
13
  import { DispatchContractProtocolModule } from "./contracts/DispatchContractProtocolModule";
14
14
  import { SettlementContractProtocolModule, } from "./contracts/SettlementContractProtocolModule";
15
- let SettlementContractModule = SettlementContractModule_1 = class SettlementContractModule extends ModuleContainer {
15
+ export let SettlementContractModule = SettlementContractModule_1 = class SettlementContractModule extends ModuleContainer {
16
16
  constructor(definition) {
17
17
  super(definition);
18
18
  }
@@ -36,7 +36,9 @@ let SettlementContractModule = SettlementContractModule_1 = class SettlementCont
36
36
  create(childContainerProvider) {
37
37
  super.create(childContainerProvider);
38
38
  }
39
- // private assertIsKeyofModules
39
+ async start() {
40
+ noop();
41
+ }
40
42
  getContractClasses() {
41
43
  const settlementContractKey = "SettlementContract";
42
44
  const dispatchContractKey = "DispatchContract";
@@ -53,7 +55,9 @@ let SettlementContractModule = SettlementContractModule_1 = class SettlementCont
53
55
  }
54
56
  createContracts(addresses) {
55
57
  const { dispatch, settlement } = this.getContractClasses();
58
+ // eslint-disable-next-line new-cap
56
59
  const dispatchInstance = new dispatch(addresses.dispatch);
60
+ // eslint-disable-next-line new-cap
57
61
  const settlementInstance = new settlement(addresses.settlement);
58
62
  return {
59
63
  dispatch: dispatchInstance,
@@ -65,4 +69,3 @@ SettlementContractModule = SettlementContractModule_1 = __decorate([
65
69
  injectable(),
66
70
  __metadata("design:paramtypes", [Object])
67
71
  ], SettlementContractModule);
68
- export { SettlementContractModule };
@@ -0,0 +1,21 @@
1
+ import { Field, PublicKey, SmartContract, State, UInt64 } from "o1js";
2
+ import { RuntimeMethodIdMapping } from "../../model/RuntimeLike";
3
+ export declare const ACTIONS_EMPTY_HASH: import("o1js/dist/node/lib/field").Field;
4
+ export interface DispatchContractType {
5
+ updateMessagesHash: (executedMessagesHash: Field, newPromisedMessagesHash: Field) => void;
6
+ initialize: (settlementContract: PublicKey) => void;
7
+ promisedMessagesHash: State<Field>;
8
+ }
9
+ export declare class DispatchContract extends SmartContract implements DispatchContractType {
10
+ private readonly methodIdMappings;
11
+ private readonly incomingMessagesPaths;
12
+ promisedMessagesHash: State<import("o1js/dist/node/lib/field").Field>;
13
+ honoredMessagesHash: State<import("o1js/dist/node/lib/field").Field>;
14
+ settlementContract: State<PublicKey>;
15
+ constructor(address: PublicKey, methodIdMappings: RuntimeMethodIdMapping, incomingMessagesPaths: Record<string, `${string}.${string}`>);
16
+ updateMessagesHash(executedMessagesHash: Field, newPromisedMessagesHash: Field): void;
17
+ initialize(settlementContract: PublicKey): void;
18
+ private dispatchMessage;
19
+ deposit(amount: UInt64): void;
20
+ }
21
+ //# sourceMappingURL=DispatchContract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DispatchContract.d.ts","sourceRoot":"","sources":["../../../src/settlement/contracts/DispatchContract.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,EAIL,SAAS,EAET,aAAa,EACb,KAAK,EAEL,MAAM,EACP,MAAM,MAAM,CAAC;AAEd,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAQjE,eAAO,MAAM,kBAAkB,0CAA6B,CAAC;AAE7D,MAAM,WAAW,oBAAoB;IACnC,kBAAkB,EAAE,CAClB,oBAAoB,EAAE,KAAK,EAC3B,uBAAuB,EAAE,KAAK,KAC3B,IAAI,CAAC;IACV,UAAU,EAAE,CAAC,kBAAkB,EAAE,SAAS,KAAK,IAAI,CAAC;IAEpD,oBAAoB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;CACpC;AAED,qBAAa,gBACX,SAAQ,aACR,YAAW,oBAAoB;IAU7B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IATnB,oBAAoB,kDAAkB;IAEtC,mBAAmB,kDAAkB;IAEjC,kBAAkB,mBAAsB;gBAG/D,OAAO,EAAE,SAAS,EACD,gBAAgB,EAAE,sBAAsB,EACxC,qBAAqB,EAAE,MAAM,CAC5C,MAAM,EACN,GAAG,MAAM,IAAI,MAAM,EAAE,CACtB;IAMI,kBAAkB,CACvB,oBAAoB,EAAE,KAAK,EAC3B,uBAAuB,EAAE,KAAK;IAezB,UAAU,CAAC,kBAAkB,EAAE,SAAS;IAY/C,OAAO,CAAC,eAAe;IA8BhB,OAAO,CAAC,MAAM,EAAE,MAAM;CAqB9B"}
@@ -0,0 +1,111 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { AccountUpdate, Field, method, Poseidon, PublicKey, Reducer, SmartContract, State, state, UInt64, } from "o1js";
11
+ import { RuntimeTransaction } from "../../model/transaction/RuntimeTransaction";
12
+ import { MinaActions, MinaEvents, } from "../../utils/MinaPrefixedProvableHashList";
13
+ import { Deposit } from "../messages/Deposit";
14
+ export const ACTIONS_EMPTY_HASH = Reducer.initialActionState;
15
+ export class DispatchContract extends SmartContract {
16
+ constructor(address, methodIdMappings, incomingMessagesPaths) {
17
+ super(address);
18
+ this.methodIdMappings = methodIdMappings;
19
+ this.incomingMessagesPaths = incomingMessagesPaths;
20
+ this.promisedMessagesHash = State();
21
+ this.honoredMessagesHash = State();
22
+ this.settlementContract = State();
23
+ }
24
+ updateMessagesHash(executedMessagesHash, newPromisedMessagesHash) {
25
+ const promisedMessagesHash = this.promisedMessagesHash.getAndAssertEquals();
26
+ this.honoredMessagesHash.getAndAssertEquals();
27
+ executedMessagesHash.assertEquals(promisedMessagesHash);
28
+ this.honoredMessagesHash.set(executedMessagesHash);
29
+ // Assert and apply new promisedMessagesHash
30
+ this.self.account.actionState.assertEquals(newPromisedMessagesHash);
31
+ this.promisedMessagesHash.set(newPromisedMessagesHash);
32
+ }
33
+ initialize(settlementContract) {
34
+ this.promisedMessagesHash.getAndAssertEquals().assertEquals(Field(0));
35
+ this.honoredMessagesHash.getAndAssertEquals().assertEquals(Field(0));
36
+ this.settlementContract
37
+ .getAndAssertEquals()
38
+ .assertEquals(PublicKey.empty());
39
+ this.promisedMessagesHash.set(ACTIONS_EMPTY_HASH);
40
+ this.honoredMessagesHash.set(ACTIONS_EMPTY_HASH);
41
+ this.settlementContract.set(settlementContract);
42
+ }
43
+ dispatchMessage(methodId, value, valueType) {
44
+ const args = valueType.toFields(value);
45
+ // Should be the same as RuntimeTransaction.hash
46
+ const argsHash = Poseidon.hash(args);
47
+ const runtimeTransaction = RuntimeTransaction.fromMessage({
48
+ methodId,
49
+ argsHash,
50
+ });
51
+ // Append tx to incomingMessagesHash
52
+ const actionData = runtimeTransaction.hashData();
53
+ const actionHash = MinaActions.actionHash(actionData);
54
+ this.self.body.actions = {
55
+ hash: actionHash,
56
+ data: [actionData],
57
+ };
58
+ const eventHash = MinaEvents.eventHash(args);
59
+ this.self.body.events = {
60
+ hash: eventHash,
61
+ data: [args],
62
+ };
63
+ }
64
+ deposit(amount) {
65
+ // Save this, since otherwise it would be a second witness later,
66
+ // which could be a different values than the first
67
+ const { sender } = this;
68
+ const settlementContract = this.settlementContract.getAndAssertEquals();
69
+ // Credit the amount to the settlement contract
70
+ const balanceAU = AccountUpdate.create(settlementContract);
71
+ balanceAU.balance.addInPlace(amount);
72
+ this.self.approve(balanceAU);
73
+ const action = new Deposit({
74
+ address: sender,
75
+ amount,
76
+ });
77
+ const methodId = Field(this.methodIdMappings[this.incomingMessagesPaths.deposit].methodId).toConstant();
78
+ this.dispatchMessage(methodId.toConstant(), action, Deposit);
79
+ }
80
+ }
81
+ __decorate([
82
+ state(Field),
83
+ __metadata("design:type", Object)
84
+ ], DispatchContract.prototype, "promisedMessagesHash", void 0);
85
+ __decorate([
86
+ state(Field),
87
+ __metadata("design:type", Object)
88
+ ], DispatchContract.prototype, "honoredMessagesHash", void 0);
89
+ __decorate([
90
+ state(PublicKey),
91
+ __metadata("design:type", Object)
92
+ ], DispatchContract.prototype, "settlementContract", void 0);
93
+ __decorate([
94
+ method,
95
+ __metadata("design:type", Function),
96
+ __metadata("design:paramtypes", [Field,
97
+ Field]),
98
+ __metadata("design:returntype", void 0)
99
+ ], DispatchContract.prototype, "updateMessagesHash", null);
100
+ __decorate([
101
+ method,
102
+ __metadata("design:type", Function),
103
+ __metadata("design:paramtypes", [PublicKey]),
104
+ __metadata("design:returntype", void 0)
105
+ ], DispatchContract.prototype, "initialize", null);
106
+ __decorate([
107
+ method,
108
+ __metadata("design:type", Function),
109
+ __metadata("design:paramtypes", [UInt64]),
110
+ __metadata("design:returntype", void 0)
111
+ ], DispatchContract.prototype, "deposit", null);
@@ -13,7 +13,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
13
13
  import { inject, injectable } from "tsyringe";
14
14
  import { ContractModule, } from "../ContractModule";
15
15
  import { DispatchSmartContract, } from "./DispatchSmartContract";
16
- let DispatchContractProtocolModule = class DispatchContractProtocolModule extends ContractModule {
16
+ export let DispatchContractProtocolModule = class DispatchContractProtocolModule extends ContractModule {
17
17
  constructor(runtime) {
18
18
  super();
19
19
  this.runtime = runtime;
@@ -33,4 +33,3 @@ DispatchContractProtocolModule = __decorate([
33
33
  __param(0, inject("Runtime")),
34
34
  __metadata("design:paramtypes", [Object])
35
35
  ], DispatchContractProtocolModule);
36
- export { DispatchContractProtocolModule };
@@ -1,9 +1,9 @@
1
1
  import { Field, PublicKey, SmartContract, State, UInt64 } from "o1js";
2
2
  import { RuntimeMethodIdMapping } from "../../model/RuntimeLike";
3
- export declare const ACTIONS_EMPTY_HASH: import("o1js/dist/node/lib/field").Field;
3
+ export declare const ACTIONS_EMPTY_HASH: import("o1js/dist/node/lib/provable/field").Field;
4
4
  export interface DispatchContractType {
5
- updateMessagesHash: (executedMessagesHash: Field, newPromisedMessagesHash: Field) => void;
6
- initialize: (settlementContract: PublicKey) => void;
5
+ updateMessagesHash: (executedMessagesHash: Field, newPromisedMessagesHash: Field) => Promise<void>;
6
+ initialize: (settlementContract: PublicKey) => Promise<void>;
7
7
  promisedMessagesHash: State<Field>;
8
8
  }
9
9
  export declare class DispatchSmartContract extends SmartContract implements DispatchContractType {
@@ -11,12 +11,12 @@ export declare class DispatchSmartContract extends SmartContract implements Disp
11
11
  methodIdMappings: RuntimeMethodIdMapping;
12
12
  incomingMessagesPaths: Record<string, `${string}.${string}`>;
13
13
  };
14
- promisedMessagesHash: State<import("o1js/dist/node/lib/field").Field>;
15
- honoredMessagesHash: State<import("o1js/dist/node/lib/field").Field>;
14
+ promisedMessagesHash: State<import("o1js/dist/node/lib/provable/field").Field>;
15
+ honoredMessagesHash: State<import("o1js/dist/node/lib/provable/field").Field>;
16
16
  settlementContract: State<PublicKey>;
17
- updateMessagesHash(executedMessagesHash: Field, newPromisedMessagesHash: Field): void;
18
- initialize(settlementContract: PublicKey): void;
17
+ updateMessagesHash(executedMessagesHash: Field, newPromisedMessagesHash: Field): Promise<void>;
18
+ initialize(settlementContract: PublicKey): Promise<void>;
19
19
  private dispatchMessage;
20
- deposit(amount: UInt64): void;
20
+ deposit(amount: UInt64): Promise<void>;
21
21
  }
22
22
  //# sourceMappingURL=DispatchSmartContract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DispatchSmartContract.d.ts","sourceRoot":"","sources":["../../../src/settlement/contracts/DispatchSmartContract.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,EAIL,SAAS,EAET,aAAa,EACb,KAAK,EAEL,MAAM,EACP,MAAM,MAAM,CAAC;AAEd,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAQjE,eAAO,MAAM,kBAAkB,0CAA6B,CAAC;AAE7D,MAAM,WAAW,oBAAoB;IACnC,kBAAkB,EAAE,CAClB,oBAAoB,EAAE,KAAK,EAC3B,uBAAuB,EAAE,KAAK,KAC3B,IAAI,CAAC;IACV,UAAU,EAAE,CAAC,kBAAkB,EAAE,SAAS,KAAK,IAAI,CAAC;IAEpD,oBAAoB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;CACpC;AAED,qBAAa,qBACX,SAAQ,aACR,YAAW,oBAAoB;IAE/B,OAAc,IAAI,EAAE;QAClB,gBAAgB,EAAE,sBAAsB,CAAC;QACzC,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC,CAAC;KAC9D,CAAC;IAEmB,oBAAoB,kDAAkB;IAEtC,mBAAmB,kDAAkB;IAEjC,kBAAkB,mBAAsB;IAG1D,kBAAkB,CACvB,oBAAoB,EAAE,KAAK,EAC3B,uBAAuB,EAAE,KAAK;IAezB,UAAU,CAAC,kBAAkB,EAAE,SAAS;IAY/C,OAAO,CAAC,eAAe;IA8BhB,OAAO,CAAC,MAAM,EAAE,MAAM;CAyB9B"}
1
+ {"version":3,"file":"DispatchSmartContract.d.ts","sourceRoot":"","sources":["../../../src/settlement/contracts/DispatchSmartContract.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,EAIL,SAAS,EAET,aAAa,EACb,KAAK,EAEL,MAAM,EACP,MAAM,MAAM,CAAC;AAEd,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAQjE,eAAO,MAAM,kBAAkB,mDAA6B,CAAC;AAE7D,MAAM,WAAW,oBAAoB;IACnC,kBAAkB,EAAE,CAClB,oBAAoB,EAAE,KAAK,EAC3B,uBAAuB,EAAE,KAAK,KAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,UAAU,EAAE,CAAC,kBAAkB,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7D,oBAAoB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;CACpC;AAED,qBAAa,qBACX,SAAQ,aACR,YAAW,oBAAoB;IAE/B,OAAc,IAAI,EAAE;QAClB,gBAAgB,EAAE,sBAAsB,CAAC;QACzC,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC,CAAC;KAC9D,CAAC;IAEmB,oBAAoB,2DAAkB;IAEtC,mBAAmB,2DAAkB;IAEjC,kBAAkB,mBAAsB;IAGpD,kBAAkB,CAC7B,oBAAoB,EAAE,KAAK,EAC3B,uBAAuB,EAAE,KAAK;IAgBnB,UAAU,CAAC,kBAAkB,EAAE,SAAS;IAYrD,OAAO,CAAC,eAAe;IA8BV,OAAO,CAAC,MAAM,EAAE,MAAM;CAyBpC"}
@@ -19,20 +19,20 @@ export class DispatchSmartContract extends SmartContract {
19
19
  this.honoredMessagesHash = State();
20
20
  this.settlementContract = State();
21
21
  }
22
- updateMessagesHash(executedMessagesHash, newPromisedMessagesHash) {
23
- const promisedMessagesHash = this.promisedMessagesHash.getAndAssertEquals();
24
- this.honoredMessagesHash.getAndAssertEquals();
22
+ async updateMessagesHash(executedMessagesHash, newPromisedMessagesHash) {
23
+ const promisedMessagesHash = this.promisedMessagesHash.getAndRequireEquals();
24
+ this.honoredMessagesHash.getAndRequireEquals();
25
25
  executedMessagesHash.assertEquals(promisedMessagesHash);
26
26
  this.honoredMessagesHash.set(executedMessagesHash);
27
27
  // Assert and apply new promisedMessagesHash
28
- this.self.account.actionState.assertEquals(newPromisedMessagesHash);
28
+ this.self.account.actionState.requireEquals(newPromisedMessagesHash);
29
29
  this.promisedMessagesHash.set(newPromisedMessagesHash);
30
30
  }
31
- initialize(settlementContract) {
32
- this.promisedMessagesHash.getAndAssertEquals().assertEquals(Field(0));
33
- this.honoredMessagesHash.getAndAssertEquals().assertEquals(Field(0));
31
+ async initialize(settlementContract) {
32
+ this.promisedMessagesHash.getAndRequireEquals().assertEquals(Field(0));
33
+ this.honoredMessagesHash.getAndRequireEquals().assertEquals(Field(0));
34
34
  this.settlementContract
35
- .getAndAssertEquals()
35
+ .getAndRequireEquals()
36
36
  .assertEquals(PublicKey.empty());
37
37
  this.promisedMessagesHash.set(ACTIONS_EMPTY_HASH);
38
38
  this.honoredMessagesHash.set(ACTIONS_EMPTY_HASH);
@@ -59,11 +59,11 @@ export class DispatchSmartContract extends SmartContract {
59
59
  data: [args],
60
60
  };
61
61
  }
62
- deposit(amount) {
62
+ async deposit(amount) {
63
63
  // Save this, since otherwise it would be a second witness later,
64
64
  // which could be a different values than the first
65
- const { sender } = this;
66
- const settlementContract = this.settlementContract.getAndAssertEquals();
65
+ const sender = this.sender.getUnconstrained();
66
+ const settlementContract = this.settlementContract.getAndRequireEquals();
67
67
  // Credit the amount to the settlement contract
68
68
  const balanceAU = AccountUpdate.create(settlementContract);
69
69
  balanceAU.balance.addInPlace(amount);
@@ -94,17 +94,17 @@ __decorate([
94
94
  __metadata("design:type", Function),
95
95
  __metadata("design:paramtypes", [Field,
96
96
  Field]),
97
- __metadata("design:returntype", void 0)
97
+ __metadata("design:returntype", Promise)
98
98
  ], DispatchSmartContract.prototype, "updateMessagesHash", null);
99
99
  __decorate([
100
100
  method,
101
101
  __metadata("design:type", Function),
102
102
  __metadata("design:paramtypes", [PublicKey]),
103
- __metadata("design:returntype", void 0)
103
+ __metadata("design:returntype", Promise)
104
104
  ], DispatchSmartContract.prototype, "initialize", null);
105
105
  __decorate([
106
106
  method,
107
107
  __metadata("design:type", Function),
108
108
  __metadata("design:paramtypes", [UInt64]),
109
- __metadata("design:returntype", void 0)
109
+ __metadata("design:returntype", Promise)
110
110
  ], DispatchSmartContract.prototype, "deposit", null);
@@ -0,0 +1,19 @@
1
+ import { TypedClass } from "@proto-kit/common";
2
+ import { SmartContract } from "o1js";
3
+ import { BlockProvable } from "../../prover/block/BlockProvable";
4
+ import { ContractModule } from "../ContractModule";
5
+ import { ProvableSettlementHook } from "../modularity/ProvableSettlementHook";
6
+ import { DispatchContractType } from "./DispatchContract";
7
+ import { SettlementContractType } from "./SettlementSmartContract";
8
+ export type SettlementContractConfig = {
9
+ escapeHatchSlotsInterval?: number;
10
+ withdrawalStatePath: `${string}.${string}`;
11
+ withdrawalMethodPath: `${string}.${string}`;
12
+ };
13
+ export declare class SettlementContractProtocolModule extends ContractModule<SettlementContractType, TypedClass<DispatchContractType & SmartContract>, SettlementContractConfig> {
14
+ private readonly hooks;
15
+ private readonly blockProver;
16
+ constructor(hooks: ProvableSettlementHook<unknown>[], blockProver: BlockProvable);
17
+ contractFactory(dispatchContract: TypedClass<DispatchContractType & SmartContract>): TypedClass<SettlementContractType & SmartContract>;
18
+ }
19
+ //# sourceMappingURL=SettlementContract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SettlementContract.d.ts","sourceRoot":"","sources":["../../../src/settlement/contracts/SettlementContract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAa,aAAa,EAAE,MAAM,MAAM,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAEL,sBAAsB,EAEvB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,wBAAwB,GAAG;IACrC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,mBAAmB,EAAE,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;IAC3C,oBAAoB,EAAE,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;CAC7C,CAAA;AAED,qBACa,gCAAiC,SAAQ,cAAc,CAAC,sBAAsB,EAAE,UAAU,CAAC,oBAAoB,GAAG,aAAa,CAAC,EAAE,wBAAwB,CAAC;IAIpK,OAAO,CAAC,QAAQ,CAAC,KAAK;IAEtB,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAFX,KAAK,EAAE,sBAAsB,CAAC,OAAO,CAAC,EAAE,EAExC,WAAW,EAAE,aAAa;IAOtC,eAAe,CAAC,gBAAgB,EAAE,UAAU,CAAC,oBAAoB,GAAG,aAAa,CAAC,GAAG,UAAU,CAAC,sBAAsB,GAAG,aAAa,CAAC;CAc/I"}
@@ -0,0 +1,43 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ import { inject, injectable, injectAll } from "tsyringe";
14
+ import { ContractModule } from "../ContractModule";
15
+ import { LazyBlockProof, SettlementSmartContract } from "./SettlementSmartContract";
16
+ let SettlementContractProtocolModule = class SettlementContractProtocolModule extends ContractModule {
17
+ constructor(
18
+ // @inject("DispatchContract") private readonly dispatchContract: ContractModule & { contractFactory(methodIdMapping: SettlementMethodIdMapping): TypedClass<DispatchContractType & SmartContract> },
19
+ hooks, blockProver) {
20
+ LazyBlockProof.tag = blockProver.zkProgrammable.zkProgram.Proof.tag;
21
+ super();
22
+ this.hooks = hooks;
23
+ this.blockProver = blockProver;
24
+ }
25
+ contractFactory(dispatchContract) {
26
+ const { hooks, config } = this;
27
+ const withdrawalStatePathSplit = this.config.withdrawalStatePath.split(".");
28
+ // Default: 24 hours
29
+ const escapeHatchSlotsInterval = this.config.escapeHatchSlotsInterval ?? (60 / 3) * 24;
30
+ return class ScopedSettlementSmartContract extends SettlementSmartContract {
31
+ constructor(address) {
32
+ super(address, dispatchContract, hooks, withdrawalStatePathSplit, escapeHatchSlotsInterval);
33
+ }
34
+ };
35
+ }
36
+ };
37
+ SettlementContractProtocolModule = __decorate([
38
+ injectable(),
39
+ __param(0, injectAll("ProvableSettlementHook")),
40
+ __param(1, inject("BlockProver")),
41
+ __metadata("design:paramtypes", [Array, Object])
42
+ ], SettlementContractProtocolModule);
43
+ export { SettlementContractProtocolModule };
@@ -1 +1 @@
1
- {"version":3,"file":"SettlementContractProtocolModule.d.ts","sourceRoot":"","sources":["../../../src/settlement/contracts/SettlementContractProtocolModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAGrC,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EACL,cAAc,EACd,+BAA+B,EAChC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAEL,sBAAsB,EAEvB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,wBAAwB,GAAG;IACrC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,mBAAmB,EAAE,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;IAC3C,oBAAoB,EAAE,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;CAC7C,CAAC;AAKF,qBACa,gCAAiC,SAAQ,cAAc,CAClE,sBAAsB,EACtB,UAAU,CAAC,oBAAoB,GAAG,aAAa,CAAC,EAChD,wBAAwB,CACzB;IAGG,OAAO,CAAC,QAAQ,CAAC,KAAK;IAEtB,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAFX,KAAK,EAAE,sBAAsB,CAAC,OAAO,CAAC,EAAE,EAExC,WAAW,EAAE,aAAa;IAMtC,eAAe,CACpB,gBAAgB,EAAE,UAAU,CAAC,oBAAoB,GAAG,aAAa,CAAC,GACjE,+BAA+B,CAAC,sBAAsB,CAAC;CAmB3D"}
1
+ {"version":3,"file":"SettlementContractProtocolModule.d.ts","sourceRoot":"","sources":["../../../src/settlement/contracts/SettlementContractProtocolModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAGrC,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EACL,cAAc,EACd,+BAA+B,EAChC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAEL,sBAAsB,EAEvB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,wBAAwB,GAAG;IACrC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,mBAAmB,EAAE,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;IAC3C,oBAAoB,EAAE,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;CAC7C,CAAC;AAKF,qBACa,gCAAiC,SAAQ,cAAc,CAClE,sBAAsB,EACtB,UAAU,CAAC,oBAAoB,GAAG,aAAa,CAAC,EAChD,wBAAwB,CACzB;IAGG,OAAO,CAAC,QAAQ,CAAC,KAAK;IAEtB,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAFX,KAAK,EAAE,sBAAsB,CAAC,OAAO,CAAC,EAAE,EAExC,WAAW,EAAE,aAAa;IAMtC,eAAe,CACpB,gBAAgB,EAAE,UAAU,CAAC,oBAAoB,GAAG,aAAa,CAAC,GACjE,+BAA+B,CAAC,sBAAsB,CAAC;CAqB3D"}
@@ -15,7 +15,7 @@ import { ContractModule, } from "../ContractModule";
15
15
  import { LazyBlockProof, SettlementSmartContract, } from "./SettlementSmartContract";
16
16
  // 24 hours
17
17
  const DEFAULT_ESCAPE_HATCH = (60 / 3) * 24;
18
- let SettlementContractProtocolModule = class SettlementContractProtocolModule extends ContractModule {
18
+ export let SettlementContractProtocolModule = class SettlementContractProtocolModule extends ContractModule {
19
19
  constructor(hooks, blockProver) {
20
20
  LazyBlockProof.tag = blockProver.zkProgrammable.zkProgram.Proof.tag;
21
21
  super();
@@ -24,8 +24,9 @@ let SettlementContractProtocolModule = class SettlementContractProtocolModule ex
24
24
  }
25
25
  contractFactory(dispatchContract) {
26
26
  const { hooks, config } = this;
27
- const withdrawalStatePathSplit = this.config.withdrawalStatePath.split(".");
28
- const escapeHatchSlotsInterval = this.config.escapeHatchSlotsInterval ?? DEFAULT_ESCAPE_HATCH;
27
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
28
+ const withdrawalStatePathSplit = config.withdrawalStatePath.split(".");
29
+ const escapeHatchSlotsInterval = config.escapeHatchSlotsInterval ?? DEFAULT_ESCAPE_HATCH;
29
30
  SettlementSmartContract.args = {
30
31
  DispatchContract: dispatchContract,
31
32
  hooks,
@@ -41,4 +42,3 @@ SettlementContractProtocolModule = __decorate([
41
42
  __param(1, inject("BlockProver")),
42
43
  __metadata("design:paramtypes", [Array, Object])
43
44
  ], SettlementContractProtocolModule);
44
- export { SettlementContractProtocolModule };
@@ -1,5 +1,5 @@
1
1
  import { TypedClass } from "@proto-kit/common";
2
- import { AccountUpdate, Field, Proof, PublicKey, Signature, SmartContract, State, UInt32 } from "o1js";
2
+ import { AccountUpdate, Field, Proof, PublicKey, Signature, SmartContract, State, UInt32, TokenContract, AccountUpdateForest } from "o1js";
3
3
  import { NetworkState } from "../../model/network/NetworkState";
4
4
  import { BlockProverPublicInput, BlockProverPublicOutput } from "../../prover/block/BlockProvable";
5
5
  import { OutgoingMessageArgumentBatch } from "../messages/OutgoingMessageArgument";
@@ -13,29 +13,30 @@ export declare class LazyBlockProof extends Proof<BlockProverPublicInput, BlockP
13
13
  };
14
14
  }
15
15
  export interface SettlementContractType {
16
- initialize: (sequencer: PublicKey, dispatchContract: PublicKey) => void;
17
- settle: (blockProof: LazyBlockProof, signature: Signature, dispatchContractAddress: PublicKey, publicKey: PublicKey, inputNetworkState: NetworkState, outputNetworkState: NetworkState, newPromisedMessagesHash: Field) => void;
18
- rollupOutgoingMessages: (batch: OutgoingMessageArgumentBatch) => void;
19
- redeem: (additionUpdate: AccountUpdate) => void;
16
+ initialize: (sequencer: PublicKey, dispatchContract: PublicKey) => Promise<void>;
17
+ settle: (blockProof: LazyBlockProof, signature: Signature, dispatchContractAddress: PublicKey, publicKey: PublicKey, inputNetworkState: NetworkState, outputNetworkState: NetworkState, newPromisedMessagesHash: Field) => Promise<void>;
18
+ rollupOutgoingMessages: (batch: OutgoingMessageArgumentBatch) => Promise<void>;
19
+ redeem: (additionUpdate: AccountUpdate) => Promise<void>;
20
20
  }
21
- export declare const BATCH_SIGNATURE_PREFIX: import("o1js/dist/node/lib/field").Field;
22
- export declare class SettlementSmartContract extends SmartContract implements SettlementContractType {
21
+ export declare const BATCH_SIGNATURE_PREFIX: import("o1js/dist/node/lib/provable/field").Field;
22
+ export declare class SettlementSmartContract extends TokenContract implements SettlementContractType {
23
23
  static args: {
24
24
  DispatchContract: TypedClass<DispatchContractType & SmartContract>;
25
25
  hooks: ProvableSettlementHook<unknown>[];
26
26
  withdrawalStatePath: [string, string];
27
27
  escapeHatchSlotsInterval: number;
28
28
  };
29
- sequencerKey: State<import("o1js/dist/node/lib/field").Field>;
29
+ sequencerKey: State<import("o1js/dist/node/lib/provable/field").Field>;
30
30
  lastSettlementL1Block: State<UInt32>;
31
- stateRoot: State<import("o1js/dist/node/lib/field").Field>;
32
- networkStateHash: State<import("o1js/dist/node/lib/field").Field>;
33
- blockHashRoot: State<import("o1js/dist/node/lib/field").Field>;
34
- dispatchContractAddressX: State<import("o1js/dist/node/lib/field").Field>;
35
- outgoingMessageCursor: State<import("o1js/dist/node/lib/field").Field>;
36
- initialize(sequencer: PublicKey, dispatchContract: PublicKey): void;
37
- settle(blockProof: LazyBlockProof, signature: Signature, dispatchContractAddress: PublicKey, publicKey: PublicKey, inputNetworkState: NetworkState, outputNetworkState: NetworkState, newPromisedMessagesHash: Field): void;
38
- rollupOutgoingMessages(batch: OutgoingMessageArgumentBatch): void;
39
- redeem(additionUpdate: AccountUpdate): void;
31
+ stateRoot: State<import("o1js/dist/node/lib/provable/field").Field>;
32
+ networkStateHash: State<import("o1js/dist/node/lib/provable/field").Field>;
33
+ blockHashRoot: State<import("o1js/dist/node/lib/provable/field").Field>;
34
+ dispatchContractAddressX: State<import("o1js/dist/node/lib/provable/field").Field>;
35
+ outgoingMessageCursor: State<import("o1js/dist/node/lib/provable/field").Field>;
36
+ approveBase(forest: AccountUpdateForest): Promise<void>;
37
+ initialize(sequencer: PublicKey, dispatchContract: PublicKey): Promise<void>;
38
+ settle(blockProof: LazyBlockProof, signature: Signature, dispatchContractAddress: PublicKey, publicKey: PublicKey, inputNetworkState: NetworkState, outputNetworkState: NetworkState, newPromisedMessagesHash: Field): Promise<void>;
39
+ rollupOutgoingMessages(batch: OutgoingMessageArgumentBatch): Promise<void>;
40
+ redeem(additionUpdate: AccountUpdate): Promise<void>;
40
41
  }
41
42
  //# sourceMappingURL=SettlementSmartContract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SettlementSmartContract.d.ts","sourceRoot":"","sources":["../../../src/settlement/contracts/SettlementSmartContract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EACL,aAAa,EAEb,KAAK,EAIL,KAAK,EAEL,SAAS,EACT,SAAS,EACT,aAAa,EACb,KAAK,EAGL,MAAM,EAEP,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAGhE,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAEL,4BAA4B,EAC7B,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EACL,sBAAsB,EAGvB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,qBAAa,cAAe,SAAQ,KAAK,CACvC,sBAAsB,EACtB,uBAAuB,CACxB;IACC,OAAc,eAAe,gCAA0B;IAEvD,OAAc,gBAAgB,iCAA2B;IAEzD,OAAc,GAAG,EAAE,MAAM;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAEvC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,KAAK,IAAI,CAAC;IACxE,MAAM,EAAE,CACN,UAAU,EAAE,cAAc,EAC1B,SAAS,EAAE,SAAS,EACpB,uBAAuB,EAAE,SAAS,EAClC,SAAS,EAAE,SAAS,EACpB,iBAAiB,EAAE,YAAY,EAC/B,kBAAkB,EAAE,YAAY,EAChC,uBAAuB,EAAE,KAAK,KAC3B,IAAI,CAAC;IACV,sBAAsB,EAAE,CAAC,KAAK,EAAE,4BAA4B,KAAK,IAAI,CAAC;IACtE,MAAM,EAAE,CAAC,cAAc,EAAE,aAAa,KAAK,IAAI,CAAC;CACjD;AAGD,eAAO,MAAM,sBAAsB,0CAAqC,CAAC;AAEzE,qBAAa,uBACX,SAAQ,aACR,YAAW,sBAAsB;IAIjC,OAAc,IAAI,EAAE;QAClB,gBAAgB,EAAE,UAAU,CAAC,oBAAoB,GAAG,aAAa,CAAC,CAAC;QACnE,KAAK,EAAE,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC;QACzC,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtC,wBAAwB,EAAE,MAAM,CAAC;KAClC,CAAC;IAEmB,YAAY,kDAAkB;IAC7B,qBAAqB,gBAAmB;IAEzC,SAAS,kDAAkB;IAC3B,gBAAgB,kDAAkB;IAClC,aAAa,kDAAkB;IAE/B,wBAAwB,kDAAkB;IAE1C,qBAAqB,kDAAkB;IAGrD,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS;IAkB5D,MAAM,CACX,UAAU,EAAE,cAAc,EAC1B,SAAS,EAAE,SAAS,EACpB,uBAAuB,EAAE,SAAS,EAClC,SAAS,EAAE,SAAS,EACpB,iBAAiB,EAAE,YAAY,EAC/B,kBAAkB,EAAE,YAAY,EAChC,uBAAuB,EAAE,KAAK;IAwIzB,sBAAsB,CAAC,KAAK,EAAE,4BAA4B;IAoD1D,MAAM,CAAC,cAAc,EAAE,aAAa;CAoB5C"}
1
+ {"version":3,"file":"SettlementSmartContract.d.ts","sourceRoot":"","sources":["../../../src/settlement/contracts/SettlementSmartContract.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,UAAU,EAEX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,aAAa,EAEb,KAAK,EAIL,KAAK,EAEL,SAAS,EACT,SAAS,EACT,aAAa,EACb,KAAK,EAGL,MAAM,EAEN,aAAa,EACb,mBAAmB,EACpB,MAAM,MAAM,CAAC;AAEd,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAGhE,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAEL,4BAA4B,EAC7B,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EACL,sBAAsB,EAGvB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAI/D,qBAAa,cAAe,SAAQ,KAAK,CACvC,sBAAsB,EACtB,uBAAuB,CACxB;IACC,OAAc,eAAe,gCAA0B;IAEvD,OAAc,gBAAgB,iCAA2B;IAEzD,OAAc,GAAG,EAAE,MAAM;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAEvC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,CACV,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,SAAS,KACxB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,MAAM,EAAE,CACN,UAAU,EAAE,cAAc,EAC1B,SAAS,EAAE,SAAS,EACpB,uBAAuB,EAAE,SAAS,EAClC,SAAS,EAAE,SAAS,EACpB,iBAAiB,EAAE,YAAY,EAC/B,kBAAkB,EAAE,YAAY,EAChC,uBAAuB,EAAE,KAAK,KAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,sBAAsB,EAAE,CACtB,KAAK,EAAE,4BAA4B,KAChC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,MAAM,EAAE,CAAC,cAAc,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D;AAGD,eAAO,MAAM,sBAAsB,mDAAqC,CAAC;AAEzE,qBAAa,uBACX,SAAQ,aACR,YAAW,sBAAsB;IAIjC,OAAc,IAAI,EAAE;QAClB,gBAAgB,EAAE,UAAU,CAAC,oBAAoB,GAAG,aAAa,CAAC,CAAC;QACnE,KAAK,EAAE,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC;QACzC,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtC,wBAAwB,EAAE,MAAM,CAAC;KAClC,CAAC;IAEmB,YAAY,2DAAkB;IAC7B,qBAAqB,gBAAmB;IAEzC,SAAS,2DAAkB;IAC3B,gBAAgB,2DAAkB;IAClC,aAAa,2DAAkB;IAE/B,wBAAwB,2DAAkB;IAE1C,qBAAqB,2DAAkB;IAE9C,WAAW,CAAC,MAAM,EAAE,mBAAmB;IAKxC,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS;IAkB5D,MAAM,CACjB,UAAU,EAAE,cAAc,EAC1B,SAAS,EAAE,SAAS,EACpB,uBAAuB,EAAE,SAAS,EAClC,SAAS,EAAE,SAAS,EACpB,iBAAiB,EAAE,YAAY,EAC/B,kBAAkB,EAAE,YAAY,EAChC,uBAAuB,EAAE,KAAK;IAwInB,sBAAsB,CAAC,KAAK,EAAE,4BAA4B;IAoD1D,MAAM,CAAC,cAAc,EAAE,aAAa;CAoBlD"}