@proto-kit/protocol 0.1.1-develop.1316 → 0.1.1-develop.1347

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 (145) hide show
  1. package/dist/hooks/AccountStateHook.d.ts +3 -3
  2. package/dist/hooks/AccountStateHook.d.ts.map +1 -1
  3. package/dist/hooks/AccountStateHook.js +6 -2
  4. package/dist/hooks/AccountStateHook.js.map +1 -1
  5. package/dist/hooks/LastStateRootBlockHook.d.ts +3 -4
  6. package/dist/hooks/LastStateRootBlockHook.d.ts.map +1 -1
  7. package/dist/hooks/LastStateRootBlockHook.js +4 -4
  8. package/dist/hooks/LastStateRootBlockHook.js.map +1 -1
  9. package/dist/hooks/NoopBlockHook.d.ts +3 -4
  10. package/dist/hooks/NoopBlockHook.d.ts.map +1 -1
  11. package/dist/hooks/NoopBlockHook.js +1 -1
  12. package/dist/hooks/NoopBlockHook.js.map +1 -1
  13. package/dist/hooks/NoopTransactionHook.d.ts +2 -2
  14. package/dist/hooks/NoopTransactionHook.d.ts.map +1 -1
  15. package/dist/hooks/NoopTransactionHook.js +4 -1
  16. package/dist/hooks/NoopTransactionHook.js.map +1 -1
  17. package/dist/index.d.ts +6 -1
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +6 -1
  20. package/dist/index.js.map +1 -1
  21. package/dist/model/AppliedStateTransitionBatch.d.ts +114 -0
  22. package/dist/model/AppliedStateTransitionBatch.d.ts.map +1 -0
  23. package/dist/model/AppliedStateTransitionBatch.js +16 -0
  24. package/dist/model/AppliedStateTransitionBatch.js.map +1 -0
  25. package/dist/model/StateTransition.d.ts +1 -0
  26. package/dist/model/StateTransition.d.ts.map +1 -1
  27. package/dist/model/StateTransition.js +5 -0
  28. package/dist/model/StateTransition.js.map +1 -1
  29. package/dist/model/StateTransitionProvableBatch.d.ts +249 -97
  30. package/dist/model/StateTransitionProvableBatch.d.ts.map +1 -1
  31. package/dist/model/StateTransitionProvableBatch.js +72 -65
  32. package/dist/model/StateTransitionProvableBatch.js.map +1 -1
  33. package/dist/model/transaction/RuntimeTransaction.d.ts +1 -0
  34. package/dist/model/transaction/RuntimeTransaction.d.ts.map +1 -1
  35. package/dist/model/transaction/RuntimeTransaction.js +3 -0
  36. package/dist/model/transaction/RuntimeTransaction.js.map +1 -1
  37. package/dist/protocol/ProvableBlockHook.d.ts +13 -3
  38. package/dist/protocol/ProvableBlockHook.d.ts.map +1 -1
  39. package/dist/protocol/ProvableBlockHook.js +16 -0
  40. package/dist/protocol/ProvableBlockHook.js.map +1 -1
  41. package/dist/protocol/ProvableTransactionHook.d.ts +29 -2
  42. package/dist/protocol/ProvableTransactionHook.d.ts.map +1 -1
  43. package/dist/protocol/ProvableTransactionHook.js +9 -0
  44. package/dist/protocol/ProvableTransactionHook.js.map +1 -1
  45. package/dist/prover/accumulators/AppliedBatchHashList.d.ts +18 -0
  46. package/dist/prover/accumulators/AppliedBatchHashList.d.ts.map +1 -0
  47. package/dist/prover/accumulators/AppliedBatchHashList.js +25 -0
  48. package/dist/prover/accumulators/AppliedBatchHashList.js.map +1 -0
  49. package/dist/{utils → prover/accumulators}/StateTransitionReductionList.d.ts +3 -2
  50. package/dist/prover/accumulators/StateTransitionReductionList.d.ts.map +1 -0
  51. package/dist/{utils → prover/accumulators}/StateTransitionReductionList.js +6 -3
  52. package/dist/prover/accumulators/StateTransitionReductionList.js.map +1 -0
  53. package/dist/prover/accumulators/TransactionHashList.d.ts +6 -0
  54. package/dist/prover/accumulators/TransactionHashList.d.ts.map +1 -0
  55. package/dist/prover/accumulators/TransactionHashList.js +8 -0
  56. package/dist/prover/accumulators/TransactionHashList.js.map +1 -0
  57. package/dist/prover/accumulators/WitnessedRootHashList.d.ts +137 -0
  58. package/dist/prover/accumulators/WitnessedRootHashList.d.ts.map +1 -0
  59. package/dist/prover/accumulators/WitnessedRootHashList.js +50 -0
  60. package/dist/prover/accumulators/WitnessedRootHashList.js.map +1 -0
  61. package/dist/prover/block/BlockProvable.d.ts +579 -35
  62. package/dist/prover/block/BlockProvable.d.ts.map +1 -1
  63. package/dist/prover/block/BlockProvable.js +55 -3
  64. package/dist/prover/block/BlockProvable.js.map +1 -1
  65. package/dist/prover/block/BlockProver.d.ts +52 -50
  66. package/dist/prover/block/BlockProver.d.ts.map +1 -1
  67. package/dist/prover/block/BlockProver.js +289 -209
  68. package/dist/prover/block/BlockProver.js.map +1 -1
  69. package/dist/prover/block/accummulators/BlockHashMerkleTree.d.ts +55 -13
  70. package/dist/prover/block/accummulators/BlockHashMerkleTree.d.ts.map +1 -1
  71. package/dist/prover/block/accummulators/BlockHashMerkleTree.js +11 -3
  72. package/dist/prover/block/accummulators/BlockHashMerkleTree.js.map +1 -1
  73. package/dist/prover/statetransition/StateTransitionProvable.d.ts +107 -106
  74. package/dist/prover/statetransition/StateTransitionProvable.d.ts.map +1 -1
  75. package/dist/prover/statetransition/StateTransitionProvable.js +8 -8
  76. package/dist/prover/statetransition/StateTransitionProvable.js.map +1 -1
  77. package/dist/prover/statetransition/StateTransitionProver.d.ts +14 -11
  78. package/dist/prover/statetransition/StateTransitionProver.d.ts.map +1 -1
  79. package/dist/prover/statetransition/StateTransitionProver.js +116 -62
  80. package/dist/prover/statetransition/StateTransitionProver.js.map +1 -1
  81. package/dist/settlement/contracts/DispatchContractProtocolModule.d.ts +1 -1
  82. package/dist/settlement/contracts/DispatchSmartContract.d.ts +1 -1
  83. package/dist/settlement/contracts/SettlementSmartContract.d.ts.map +1 -1
  84. package/dist/settlement/contracts/SettlementSmartContract.js +1 -0
  85. package/dist/settlement/contracts/SettlementSmartContract.js.map +1 -1
  86. package/dist/state/assert/assert.d.ts.map +1 -1
  87. package/dist/state/assert/assert.js +5 -3
  88. package/dist/state/assert/assert.js.map +1 -1
  89. package/dist/state/context/RuntimeMethodExecutionContext.d.ts +3 -3
  90. package/dist/state/context/RuntimeMethodExecutionContext.d.ts.map +1 -1
  91. package/dist/state/context/RuntimeMethodExecutionContext.js +7 -4
  92. package/dist/state/context/RuntimeMethodExecutionContext.js.map +1 -1
  93. package/dist/utils/FieldOptions.d.ts +62 -0
  94. package/dist/utils/FieldOptions.d.ts.map +1 -0
  95. package/dist/utils/FieldOptions.js +13 -0
  96. package/dist/utils/FieldOptions.js.map +1 -0
  97. package/dist/utils/ProvableHashList.d.ts +21 -2
  98. package/dist/utils/ProvableHashList.d.ts.map +1 -1
  99. package/dist/utils/ProvableHashList.js +37 -2
  100. package/dist/utils/ProvableHashList.js.map +1 -1
  101. package/dist/utils/ProvableReductionHashList.d.ts +7 -3
  102. package/dist/utils/ProvableReductionHashList.d.ts.map +1 -1
  103. package/dist/utils/ProvableReductionHashList.js +8 -5
  104. package/dist/utils/ProvableReductionHashList.js.map +1 -1
  105. package/dist/utils/utils.d.ts +10 -1
  106. package/dist/utils/utils.d.ts.map +1 -1
  107. package/dist/utils/utils.js +6 -0
  108. package/dist/utils/utils.js.map +1 -1
  109. package/package.json +2 -2
  110. package/src/hooks/AccountStateHook.ts +12 -3
  111. package/src/hooks/LastStateRootBlockHook.ts +7 -8
  112. package/src/hooks/NoopBlockHook.ts +7 -4
  113. package/src/hooks/NoopTransactionHook.ts +5 -2
  114. package/src/index.ts +6 -1
  115. package/src/model/AppliedStateTransitionBatch.ts +16 -0
  116. package/src/model/StateTransition.ts +6 -0
  117. package/src/model/StateTransitionProvableBatch.ts +94 -105
  118. package/src/model/transaction/RuntimeTransaction.ts +4 -0
  119. package/src/protocol/ProvableBlockHook.ts +51 -3
  120. package/src/protocol/ProvableTransactionHook.ts +67 -3
  121. package/src/prover/accumulators/AppliedBatchHashList.ts +32 -0
  122. package/src/{utils → prover/accumulators}/StateTransitionReductionList.ts +7 -4
  123. package/src/prover/accumulators/TransactionHashList.ts +9 -0
  124. package/src/prover/accumulators/WitnessedRootHashList.ts +61 -0
  125. package/src/prover/block/BlockProvable.ts +128 -9
  126. package/src/prover/block/BlockProver.ts +531 -383
  127. package/src/prover/block/accummulators/BlockHashMerkleTree.ts +11 -3
  128. package/src/prover/statetransition/StateTransitionProvable.ts +17 -11
  129. package/src/prover/statetransition/StateTransitionProver.ts +219 -144
  130. package/src/settlement/contracts/SettlementSmartContract.ts +4 -0
  131. package/src/state/assert/assert.ts +6 -3
  132. package/src/state/context/RuntimeMethodExecutionContext.ts +15 -7
  133. package/src/utils/FieldOptions.ts +13 -0
  134. package/src/utils/ProvableHashList.ts +77 -2
  135. package/src/utils/ProvableReductionHashList.ts +12 -3
  136. package/src/utils/utils.ts +18 -1
  137. package/test/BlockProver.test.ts +2 -0
  138. package/test/TestingProtocol.ts +5 -0
  139. package/test/model/StateTransitionProvableBatch.test.ts +137 -0
  140. package/test/prover/block/BlockProver.test.ts +18 -0
  141. package/test/prover/statetransition/StateTransitionProver.test.ts +240 -0
  142. package/test/utils/ProvableHashList.test.ts +44 -0
  143. package/test/utils/ProvableReductionHashList.test.ts +1 -1
  144. package/dist/utils/StateTransitionReductionList.d.ts.map +0 -1
  145. package/dist/utils/StateTransitionReductionList.js.map +0 -1
@@ -1,7 +1,6 @@
1
1
  import { PublicKey, UInt64 } from "o1js";
2
- import { BlockProverExecutionData } from "../prover/block/BlockProvable";
3
2
  import { StateMap } from "../state/StateMap";
4
- import { ProvableTransactionHook } from "../protocol/ProvableTransactionHook";
3
+ import { ProvableTransactionHook, BeforeTransactionHookArguments } from "../protocol/ProvableTransactionHook";
5
4
  declare const AccountState_base: (new (value: {
6
5
  nonce: UInt64;
7
6
  }) => {
@@ -46,7 +45,8 @@ export declare class AccountState extends AccountState_base {
46
45
  }
47
46
  export declare class AccountStateHook extends ProvableTransactionHook {
48
47
  accountState: StateMap<PublicKey, AccountState>;
49
- onTransaction({ transaction }: BlockProverExecutionData): Promise<void>;
48
+ beforeTransaction({ transaction, }: BeforeTransactionHookArguments): Promise<void>;
49
+ afterTransaction(): Promise<void>;
50
50
  }
51
51
  export {};
52
52
  //# sourceMappingURL=AccountStateHook.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AccountStateHook.d.ts","sourceRoot":"","sources":["../../src/hooks/AccountStateHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAU,MAAM,EAAE,MAAM,MAAM,CAAC;AAGjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAG9E,qBAAa,YAAa,SAAQ,iBAEhC;CAAG;AAEL,qBACa,gBAAiB,SAAQ,uBAAuB;IACnC,YAAY,oCAGlC;IAEW,aAAa,CAAC,EAAE,WAAW,EAAE,EAAE,wBAAwB;CA2BrE"}
1
+ {"version":3,"file":"AccountStateHook.d.ts","sourceRoot":"","sources":["../../src/hooks/AccountStateHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAU,MAAM,EAAE,MAAM,MAAM,CAAC;AAIjD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EACL,uBAAuB,EACvB,8BAA8B,EAC/B,MAAM,qCAAqC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAG7C,qBAAa,YAAa,SAAQ,iBAEhC;CAAG;AAEL,qBACa,gBAAiB,SAAQ,uBAAuB;IACnC,YAAY,oCAGlC;IAEW,iBAAiB,CAAC,EAC7B,WAAW,GACZ,EAAE,8BAA8B;IA4BpB,gBAAgB;CAG9B"}
@@ -9,9 +9,10 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  };
10
10
  import { PublicKey, Struct, UInt64 } from "o1js";
11
11
  import { injectable } from "tsyringe";
12
+ import { noop } from "@proto-kit/common";
12
13
  import { StateMap } from "../state/StateMap";
13
14
  import { protocolState } from "../state/protocol/ProtocolState";
14
- import { ProvableTransactionHook } from "../protocol/ProvableTransactionHook";
15
+ import { ProvableTransactionHook, } from "../protocol/ProvableTransactionHook";
15
16
  import { assert } from "../state/assert/assert";
16
17
  export class AccountState extends Struct({
17
18
  nonce: UInt64,
@@ -22,7 +23,7 @@ export let AccountStateHook = class AccountStateHook extends ProvableTransaction
22
23
  super(...arguments);
23
24
  this.accountState = StateMap.from(PublicKey, AccountState);
24
25
  }
25
- async onTransaction({ transaction }) {
26
+ async beforeTransaction({ transaction, }) {
26
27
  const sender = transaction.sender.value;
27
28
  const aso = await this.accountState.get(sender);
28
29
  const accountState = aso.orElse(new AccountState({ nonce: UInt64.zero }));
@@ -37,6 +38,9 @@ export let AccountStateHook = class AccountStateHook extends ProvableTransaction
37
38
  const newNonce = UInt64.Unsafe.fromField(currentNonce.value.add(1).mul(transaction.sender.isSome.toField()));
38
39
  await this.accountState.set(sender, new AccountState({ nonce: newNonce }));
39
40
  }
41
+ async afterTransaction() {
42
+ noop();
43
+ }
40
44
  };
41
45
  __decorate([
42
46
  protocolState(),
@@ -1 +1 @@
1
- {"version":3,"file":"AccountStateHook.js","sourceRoot":"","sources":["../../src/hooks/AccountStateHook.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGtC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,MAAM,OAAO,YAAa,SAAQ,MAAM,CAAC;IACvC,KAAK,EAAE,MAAM;CACd,CAAC;CAAG;AAGE,WAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,uBAAuB;IAAtD;;QACmB,iBAAY,GAAG,QAAQ,CAAC,IAAI,CAClD,SAAS,EACT,YAAY,CACb,CAAC;IA6BJ,CAAC;IA3BQ,KAAK,CAAC,aAAa,CAAC,EAAE,WAAW,EAA4B;QAClE,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;QAExC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEhD,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAE1E,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC;QAExC,+EAA+E;QAC/E,MAAM,CACJ,YAAY;aACT,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;aAC/B,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EACtC,GAAG,EAAE,CACH,+BAA+B,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,sBAAsB,YAAY,CAAC,QAAQ,EAAE,EAAE,CACnH,CAAC;QAEF,kFAAkF;QAClF,gCAAgC;QAChC,sFAAsF;QACtF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CACtC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CACnE,CAAC;QAEF,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,YAAY,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC;CACF,CAAA;AAhCyB;IAAvB,aAAa,EAAE;;sDAGd;AAJS,gBAAgB;IAD5B,UAAU,EAAE;GACA,gBAAgB,CAiC5B"}
1
+ {"version":3,"file":"AccountStateHook.js","sourceRoot":"","sources":["../../src/hooks/AccountStateHook.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EACL,uBAAuB,GAExB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,MAAM,OAAO,YAAa,SAAQ,MAAM,CAAC;IACvC,KAAK,EAAE,MAAM;CACd,CAAC;CAAG;AAGE,WAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,uBAAuB;IAAtD;;QACmB,iBAAY,GAAG,QAAQ,CAAC,IAAI,CAClD,SAAS,EACT,YAAY,CACb,CAAC;IAmCJ,CAAC;IAjCQ,KAAK,CAAC,iBAAiB,CAAC,EAC7B,WAAW,GACoB;QAC/B,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;QAExC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEhD,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAE1E,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC;QAExC,+EAA+E;QAC/E,MAAM,CACJ,YAAY;aACT,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;aAC/B,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EACtC,GAAG,EAAE,CACH,+BAA+B,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,sBAAsB,YAAY,CAAC,QAAQ,EAAE,EAAE,CACnH,CAAC;QAEF,kFAAkF;QAClF,gCAAgC;QAChC,sFAAsF;QACtF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CACtC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CACnE,CAAC;QAEF,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,YAAY,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC;IAEM,KAAK,CAAC,gBAAgB;QAC3B,IAAI,EAAE,CAAC;IACT,CAAC;CACF,CAAA;AAtCyB;IAAvB,aAAa,EAAE;;sDAGd;AAJS,gBAAgB;IAD5B,UAAU,EAAE;GACA,gBAAgB,CAuC5B"}
@@ -1,8 +1,7 @@
1
- import { ProvableBlockHook } from "../protocol/ProvableBlockHook";
1
+ import { AfterBlockHookArguments, ProvableBlockHook } from "../protocol/ProvableBlockHook";
2
2
  import { NetworkState } from "../model/network/NetworkState";
3
- import { BlockProverState } from "../prover/block/BlockProver";
4
3
  export declare class LastStateRootBlockHook extends ProvableBlockHook<Record<string, never>> {
5
- afterBlock(networkState: NetworkState, state: BlockProverState): Promise<NetworkState>;
6
- beforeBlock(networkState: NetworkState, state: BlockProverState): Promise<NetworkState>;
4
+ afterBlock(networkState: NetworkState, { stateRoot }: AfterBlockHookArguments): Promise<NetworkState>;
5
+ beforeBlock(networkState: NetworkState): Promise<NetworkState>;
7
6
  }
8
7
  //# sourceMappingURL=LastStateRootBlockHook.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LastStateRootBlockHook.d.ts","sourceRoot":"","sources":["../../src/hooks/LastStateRootBlockHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,qBAAa,sBAAuB,SAAQ,iBAAiB,CAC3D,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CACtB;IACc,UAAU,CACrB,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,YAAY,CAAC;IASX,WAAW,CACtB,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,YAAY,CAAC;CAGzB"}
1
+ {"version":3,"file":"LastStateRootBlockHook.d.ts","sourceRoot":"","sources":["../../src/hooks/LastStateRootBlockHook.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,qBAAa,sBAAuB,SAAQ,iBAAiB,CAC3D,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CACtB;IACc,UAAU,CACrB,YAAY,EAAE,YAAY,EAC1B,EAAE,SAAS,EAAE,EAAE,uBAAuB,GACrC,OAAO,CAAC,YAAY,CAAC;IASX,WAAW,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;CAG5E"}
@@ -1,15 +1,15 @@
1
- import { ProvableBlockHook } from "../protocol/ProvableBlockHook";
1
+ import { ProvableBlockHook, } from "../protocol/ProvableBlockHook";
2
2
  import { NetworkState } from "../model/network/NetworkState";
3
3
  export class LastStateRootBlockHook extends ProvableBlockHook {
4
- async afterBlock(networkState, state) {
4
+ async afterBlock(networkState, { stateRoot }) {
5
5
  return new NetworkState({
6
6
  block: networkState.block,
7
7
  previous: {
8
- rootHash: state.stateRoot,
8
+ rootHash: stateRoot,
9
9
  },
10
10
  });
11
11
  }
12
- async beforeBlock(networkState, state) {
12
+ async beforeBlock(networkState) {
13
13
  return networkState;
14
14
  }
15
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LastStateRootBlockHook.js","sourceRoot":"","sources":["../../src/hooks/LastStateRootBlockHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D,MAAM,OAAO,sBAAuB,SAAQ,iBAE3C;IACQ,KAAK,CAAC,UAAU,CACrB,YAA0B,EAC1B,KAAuB;QAEvB,OAAO,IAAI,YAAY,CAAC;YACtB,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,QAAQ,EAAE;gBACR,QAAQ,EAAE,KAAK,CAAC,SAAS;aAC1B;SACF,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,WAAW,CACtB,YAA0B,EAC1B,KAAuB;QAEvB,OAAO,YAAY,CAAC;IACtB,CAAC;CACF"}
1
+ {"version":3,"file":"LastStateRootBlockHook.js","sourceRoot":"","sources":["../../src/hooks/LastStateRootBlockHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,GAClB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,MAAM,OAAO,sBAAuB,SAAQ,iBAE3C;IACQ,KAAK,CAAC,UAAU,CACrB,YAA0B,EAC1B,EAAE,SAAS,EAA2B;QAEtC,OAAO,IAAI,YAAY,CAAC;YACtB,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,QAAQ,EAAE;gBACR,QAAQ,EAAE,SAAS;aACpB;SACF,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,YAA0B;QACjD,OAAO,YAAY,CAAC;IACtB,CAAC;CACF"}
@@ -1,9 +1,8 @@
1
1
  import { NoConfig } from "@proto-kit/common";
2
- import { ProvableBlockHook } from "../protocol/ProvableBlockHook";
2
+ import { AfterBlockHookArguments, BeforeBlockHookArguments, ProvableBlockHook } from "../protocol/ProvableBlockHook";
3
3
  import { NetworkState } from "../model/network/NetworkState";
4
- import { BlockProverState } from "../prover/block/BlockProver";
5
4
  export declare class NoopBlockHook extends ProvableBlockHook<NoConfig> {
6
- afterBlock(networkState: NetworkState, state: BlockProverState): Promise<NetworkState>;
7
- beforeBlock(networkState: NetworkState, state: BlockProverState): Promise<NetworkState>;
5
+ afterBlock(networkState: NetworkState, state: AfterBlockHookArguments): Promise<NetworkState>;
6
+ beforeBlock(networkState: NetworkState, state: BeforeBlockHookArguments): Promise<NetworkState>;
8
7
  }
9
8
  //# sourceMappingURL=NoopBlockHook.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NoopBlockHook.d.ts","sourceRoot":"","sources":["../../src/hooks/NoopBlockHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,qBAAa,aAAc,SAAQ,iBAAiB,CAAC,QAAQ,CAAC;IAC/C,UAAU,CACrB,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,YAAY,CAAC;IAIX,WAAW,CACtB,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,YAAY,CAAC;CAGzB"}
1
+ {"version":3,"file":"NoopBlockHook.d.ts","sourceRoot":"","sources":["../../src/hooks/NoopBlockHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,iBAAiB,EAClB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,qBAAa,aAAc,SAAQ,iBAAiB,CAAC,QAAQ,CAAC;IAC/C,UAAU,CACrB,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,YAAY,CAAC;IAIX,WAAW,CACtB,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,YAAY,CAAC;CAGzB"}
@@ -1,4 +1,4 @@
1
- import { ProvableBlockHook } from "../protocol/ProvableBlockHook";
1
+ import { ProvableBlockHook, } from "../protocol/ProvableBlockHook";
2
2
  export class NoopBlockHook extends ProvableBlockHook {
3
3
  async afterBlock(networkState, state) {
4
4
  return networkState;
@@ -1 +1 @@
1
- {"version":3,"file":"NoopBlockHook.js","sourceRoot":"","sources":["../../src/hooks/NoopBlockHook.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAIlE,MAAM,OAAO,aAAc,SAAQ,iBAA2B;IACrD,KAAK,CAAC,UAAU,CACrB,YAA0B,EAC1B,KAAuB;QAEvB,OAAO,YAAY,CAAC;IACtB,CAAC;IAEM,KAAK,CAAC,WAAW,CACtB,YAA0B,EAC1B,KAAuB;QAEvB,OAAO,YAAY,CAAC;IACtB,CAAC;CACF"}
1
+ {"version":3,"file":"NoopBlockHook.js","sourceRoot":"","sources":["../../src/hooks/NoopBlockHook.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,iBAAiB,GAClB,MAAM,+BAA+B,CAAC;AAGvC,MAAM,OAAO,aAAc,SAAQ,iBAA2B;IACrD,KAAK,CAAC,UAAU,CACrB,YAA0B,EAC1B,KAA8B;QAE9B,OAAO,YAAY,CAAC;IACtB,CAAC;IAEM,KAAK,CAAC,WAAW,CACtB,YAA0B,EAC1B,KAA+B;QAE/B,OAAO,YAAY,CAAC;IACtB,CAAC;CACF"}
@@ -1,6 +1,6 @@
1
1
  import { ProvableTransactionHook } from "../protocol/ProvableTransactionHook";
2
- import { BlockProverExecutionData } from "../prover/block/BlockProvable";
3
2
  export declare class NoopTransactionHook extends ProvableTransactionHook {
4
- onTransaction(executionData: BlockProverExecutionData): Promise<void>;
3
+ beforeTransaction(): Promise<void>;
4
+ afterTransaction(): Promise<void>;
5
5
  }
6
6
  //# sourceMappingURL=NoopTransactionHook.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NoopTransactionHook.d.ts","sourceRoot":"","sources":["../../src/hooks/NoopTransactionHook.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,qBAAa,mBAAoB,SAAQ,uBAAuB;IACjD,aAAa,CAAC,aAAa,EAAE,wBAAwB;CAGnE"}
1
+ {"version":3,"file":"NoopTransactionHook.d.ts","sourceRoot":"","sources":["../../src/hooks/NoopTransactionHook.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,qBAAa,mBAAoB,SAAQ,uBAAuB;IACjD,iBAAiB;IAIjB,gBAAgB;CAG9B"}
@@ -1,7 +1,10 @@
1
1
  import { noop } from "@proto-kit/common";
2
2
  import { ProvableTransactionHook } from "../protocol/ProvableTransactionHook";
3
3
  export class NoopTransactionHook extends ProvableTransactionHook {
4
- async onTransaction(executionData) {
4
+ async beforeTransaction() {
5
+ noop();
6
+ }
7
+ async afterTransaction() {
5
8
  noop();
6
9
  }
7
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NoopTransactionHook.js","sourceRoot":"","sources":["../../src/hooks/NoopTransactionHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAG9E,MAAM,OAAO,mBAAoB,SAAQ,uBAAuB;IACvD,KAAK,CAAC,aAAa,CAAC,aAAuC;QAChE,IAAI,EAAE,CAAC;IACT,CAAC;CACF"}
1
+ {"version":3,"file":"NoopTransactionHook.js","sourceRoot":"","sources":["../../src/hooks/NoopTransactionHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,MAAM,OAAO,mBAAoB,SAAQ,uBAAuB;IACvD,KAAK,CAAC,iBAAiB;QAC5B,IAAI,EAAE,CAAC;IACT,CAAC;IAEM,KAAK,CAAC,gBAAgB;QAC3B,IAAI,EAAE,CAAC;IACT,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -11,12 +11,17 @@ export * from "./model/transaction/RuntimeTransaction";
11
11
  export * from "./model/transaction/ValueOption";
12
12
  export * from "./model/MethodPublicOutput";
13
13
  export * from "./model/RuntimeLike";
14
+ export * from "./model/AppliedStateTransitionBatch";
14
15
  export * from "./utils/ProvableHashList";
15
16
  export * from "./utils/PrefixedProvableHashList";
16
17
  export * from "./utils/MinaPrefixedProvableHashList";
17
18
  export * from "./utils/ProvableReductionHashList";
18
- export * from "./utils/StateTransitionReductionList";
19
19
  export * from "./utils/utils";
20
+ export * from "./utils/FieldOptions";
21
+ export * from "./prover/accumulators/StateTransitionReductionList";
22
+ export * from "./prover/accumulators/AppliedBatchHashList";
23
+ export * from "./prover/accumulators/WitnessedRootHashList";
24
+ export * from "./prover/accumulators/TransactionHashList";
20
25
  export * from "./prover/block/BlockProver";
21
26
  export * from "./prover/block/BlockProvable";
22
27
  export * from "./prover/block/accummulators/RuntimeVerificationKeyTree";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sCAAsC,CAAC;AACrD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yDAAyD,CAAC;AACxE,cAAc,kDAAkD,CAAC;AACjE,cAAc,2DAA2D,CAAC;AAC1E,cAAc,gDAAgD,CAAC;AAC/D,cAAc,kDAAkD,CAAC;AACjE,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kDAAkD,CAAC;AACjE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,6DAA6D,CAAC;AAC5E,cAAc,8DAA8D,CAAC;AAC7E,cAAc,iEAAiE,CAAC;AAChF,cAAc,gDAAgD,CAAC;AAC/D,cAAc,yDAAyD,CAAC;AACxE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,uDAAuD,CAAC;AACtE,cAAc,uCAAuC,CAAC;AACtD,cAAc,qDAAqD,CAAC;AACpE,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC;AACtD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gDAAgD,CAAC;AAC/D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,mDAAmD,CAAC;AAClE,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,OAAO,EAAE,SAAS,IAAI,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sCAAsC,CAAC;AACrD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,qCAAqC,CAAC;AACpD,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oDAAoD,CAAC;AACnE,cAAc,4CAA4C,CAAC;AAC3D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yDAAyD,CAAC;AACxE,cAAc,kDAAkD,CAAC;AACjE,cAAc,2DAA2D,CAAC;AAC1E,cAAc,gDAAgD,CAAC;AAC/D,cAAc,kDAAkD,CAAC;AACjE,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kDAAkD,CAAC;AACjE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,6DAA6D,CAAC;AAC5E,cAAc,8DAA8D,CAAC;AAC7E,cAAc,iEAAiE,CAAC;AAChF,cAAc,gDAAgD,CAAC;AAC/D,cAAc,yDAAyD,CAAC;AACxE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,uDAAuD,CAAC;AACtE,cAAc,uCAAuC,CAAC;AACtD,cAAc,qDAAqD,CAAC;AACpE,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC;AACtD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gDAAgD,CAAC;AAC/D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,mDAAmD,CAAC;AAClE,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,OAAO,EAAE,SAAS,IAAI,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -11,12 +11,17 @@ export * from "./model/transaction/RuntimeTransaction";
11
11
  export * from "./model/transaction/ValueOption";
12
12
  export * from "./model/MethodPublicOutput";
13
13
  export * from "./model/RuntimeLike";
14
+ export * from "./model/AppliedStateTransitionBatch";
14
15
  export * from "./utils/ProvableHashList";
15
16
  export * from "./utils/PrefixedProvableHashList";
16
17
  export * from "./utils/MinaPrefixedProvableHashList";
17
18
  export * from "./utils/ProvableReductionHashList";
18
- export * from "./utils/StateTransitionReductionList";
19
19
  export * from "./utils/utils";
20
+ export * from "./utils/FieldOptions";
21
+ export * from "./prover/accumulators/StateTransitionReductionList";
22
+ export * from "./prover/accumulators/AppliedBatchHashList";
23
+ export * from "./prover/accumulators/WitnessedRootHashList";
24
+ export * from "./prover/accumulators/TransactionHashList";
20
25
  export * from "./prover/block/BlockProver";
21
26
  export * from "./prover/block/BlockProvable";
22
27
  export * from "./prover/block/accummulators/RuntimeVerificationKeyTree";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sCAAsC,CAAC;AACrD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yDAAyD,CAAC;AACxE,cAAc,kDAAkD,CAAC;AACjE,cAAc,2DAA2D,CAAC;AAC1E,cAAc,gDAAgD,CAAC;AAC/D,cAAc,kDAAkD,CAAC;AACjE,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kDAAkD,CAAC;AACjE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,6DAA6D,CAAC;AAC5E,cAAc,8DAA8D,CAAC;AAC7E,cAAc,iEAAiE,CAAC;AAChF,cAAc,gDAAgD,CAAC;AAC/D,cAAc,yDAAyD,CAAC;AACxE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,uDAAuD,CAAC;AACtE,cAAc,uCAAuC,CAAC;AACtD,cAAc,qDAAqD,CAAC;AACpE,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC;AACtD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gDAAgD,CAAC;AAC/D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,mDAAmD,CAAC;AAClE,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,OAAO,EAAE,SAAS,IAAI,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sCAAsC,CAAC;AACrD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,qCAAqC,CAAC;AACpD,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oDAAoD,CAAC;AACnE,cAAc,4CAA4C,CAAC;AAC3D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yDAAyD,CAAC;AACxE,cAAc,kDAAkD,CAAC;AACjE,cAAc,2DAA2D,CAAC;AAC1E,cAAc,gDAAgD,CAAC;AAC/D,cAAc,kDAAkD,CAAC;AACjE,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kDAAkD,CAAC;AACjE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,6DAA6D,CAAC;AAC5E,cAAc,8DAA8D,CAAC;AAC7E,cAAc,iEAAiE,CAAC;AAChF,cAAc,gDAAgD,CAAC;AAC/D,cAAc,yDAAyD,CAAC;AACxE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,uDAAuD,CAAC;AACtE,cAAc,uCAAuC,CAAC;AACtD,cAAc,qDAAqD,CAAC;AACpE,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC;AACtD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gDAAgD,CAAC;AAC/D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,mDAAmD,CAAC;AAClE,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,OAAO,EAAE,SAAS,IAAI,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,114 @@
1
+ import { Field } from "o1js";
2
+ declare const AppliedStateTransitionBatch_base: (new (value: {
3
+ batchHash: import("o1js/dist/node/lib/provable/field").Field;
4
+ applied: import("o1js/dist/node/lib/provable/bool").Bool;
5
+ }) => {
6
+ batchHash: import("o1js/dist/node/lib/provable/field").Field;
7
+ applied: import("o1js/dist/node/lib/provable/bool").Bool;
8
+ }) & {
9
+ _isStruct: true;
10
+ } & Omit<import("o1js/dist/node/lib/provable/types/provable-intf").Provable<{
11
+ batchHash: import("o1js/dist/node/lib/provable/field").Field;
12
+ applied: import("o1js/dist/node/lib/provable/bool").Bool;
13
+ }, {
14
+ batchHash: bigint;
15
+ applied: boolean;
16
+ }>, "fromFields"> & {
17
+ fromFields: (fields: import("o1js/dist/node/lib/provable/field").Field[]) => {
18
+ batchHash: import("o1js/dist/node/lib/provable/field").Field;
19
+ applied: import("o1js/dist/node/lib/provable/bool").Bool;
20
+ };
21
+ } & {
22
+ fromValue: (value: {
23
+ batchHash: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field;
24
+ applied: boolean | import("o1js/dist/node/lib/provable/bool").Bool;
25
+ }) => {
26
+ batchHash: import("o1js/dist/node/lib/provable/field").Field;
27
+ applied: import("o1js/dist/node/lib/provable/bool").Bool;
28
+ };
29
+ toInput: (x: {
30
+ batchHash: import("o1js/dist/node/lib/provable/field").Field;
31
+ applied: import("o1js/dist/node/lib/provable/bool").Bool;
32
+ }) => {
33
+ fields?: import("o1js/dist/node/lib/provable/field").Field[] | undefined;
34
+ packed?: [import("o1js/dist/node/lib/provable/field").Field, number][] | undefined;
35
+ };
36
+ toJSON: (x: {
37
+ batchHash: import("o1js/dist/node/lib/provable/field").Field;
38
+ applied: import("o1js/dist/node/lib/provable/bool").Bool;
39
+ }) => {
40
+ batchHash: string;
41
+ applied: boolean;
42
+ };
43
+ fromJSON: (x: {
44
+ batchHash: string;
45
+ applied: boolean;
46
+ }) => {
47
+ batchHash: import("o1js/dist/node/lib/provable/field").Field;
48
+ applied: import("o1js/dist/node/lib/provable/bool").Bool;
49
+ };
50
+ empty: () => {
51
+ batchHash: import("o1js/dist/node/lib/provable/field").Field;
52
+ applied: import("o1js/dist/node/lib/provable/bool").Bool;
53
+ };
54
+ };
55
+ export declare class AppliedStateTransitionBatch extends AppliedStateTransitionBatch_base {
56
+ }
57
+ declare const AppliedStateTransitionBatchState_base: (new (value: {
58
+ batchHash: import("o1js/dist/node/lib/provable/field").Field;
59
+ root: import("o1js/dist/node/lib/provable/field").Field;
60
+ }) => {
61
+ batchHash: import("o1js/dist/node/lib/provable/field").Field;
62
+ root: import("o1js/dist/node/lib/provable/field").Field;
63
+ }) & {
64
+ _isStruct: true;
65
+ } & Omit<import("o1js/dist/node/lib/provable/types/provable-intf").Provable<{
66
+ batchHash: import("o1js/dist/node/lib/provable/field").Field;
67
+ root: import("o1js/dist/node/lib/provable/field").Field;
68
+ }, {
69
+ batchHash: bigint;
70
+ root: bigint;
71
+ }>, "fromFields"> & {
72
+ fromFields: (fields: import("o1js/dist/node/lib/provable/field").Field[]) => {
73
+ batchHash: import("o1js/dist/node/lib/provable/field").Field;
74
+ root: import("o1js/dist/node/lib/provable/field").Field;
75
+ };
76
+ } & {
77
+ fromValue: (value: {
78
+ batchHash: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field;
79
+ root: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field;
80
+ }) => {
81
+ batchHash: import("o1js/dist/node/lib/provable/field").Field;
82
+ root: import("o1js/dist/node/lib/provable/field").Field;
83
+ };
84
+ toInput: (x: {
85
+ batchHash: import("o1js/dist/node/lib/provable/field").Field;
86
+ root: import("o1js/dist/node/lib/provable/field").Field;
87
+ }) => {
88
+ fields?: import("o1js/dist/node/lib/provable/field").Field[] | undefined;
89
+ packed?: [import("o1js/dist/node/lib/provable/field").Field, number][] | undefined;
90
+ };
91
+ toJSON: (x: {
92
+ batchHash: import("o1js/dist/node/lib/provable/field").Field;
93
+ root: import("o1js/dist/node/lib/provable/field").Field;
94
+ }) => {
95
+ batchHash: string;
96
+ root: string;
97
+ };
98
+ fromJSON: (x: {
99
+ batchHash: string;
100
+ root: string;
101
+ }) => {
102
+ batchHash: import("o1js/dist/node/lib/provable/field").Field;
103
+ root: import("o1js/dist/node/lib/provable/field").Field;
104
+ };
105
+ empty: () => {
106
+ batchHash: import("o1js/dist/node/lib/provable/field").Field;
107
+ root: import("o1js/dist/node/lib/provable/field").Field;
108
+ };
109
+ };
110
+ export declare class AppliedStateTransitionBatchState extends AppliedStateTransitionBatchState_base {
111
+ hashOrZero(): Field;
112
+ }
113
+ export {};
114
+ //# sourceMappingURL=AppliedStateTransitionBatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppliedStateTransitionBatch.d.ts","sourceRoot":"","sources":["../../src/model/AppliedStateTransitionBatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,EAA8B,MAAM,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE/D,qBAAa,2BAA4B,SAAQ,gCAG/C;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEL,qBAAa,gCAAiC,SAAQ,qCAGpD;IACO,UAAU,IAAI,KAAK;CAI3B"}
@@ -0,0 +1,16 @@
1
+ import { Bool, Field, Poseidon, Provable, Struct } from "o1js";
2
+ export class AppliedStateTransitionBatch extends Struct({
3
+ batchHash: Field,
4
+ applied: Bool,
5
+ }) {
6
+ }
7
+ export class AppliedStateTransitionBatchState extends Struct({
8
+ batchHash: Field,
9
+ root: Field,
10
+ }) {
11
+ hashOrZero() {
12
+ const hash = Poseidon.hash(AppliedStateTransitionBatchState.toFields(this));
13
+ return Provable.if(this.batchHash.equals(0), Field(0), hash);
14
+ }
15
+ }
16
+ //# sourceMappingURL=AppliedStateTransitionBatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppliedStateTransitionBatch.js","sourceRoot":"","sources":["../../src/model/AppliedStateTransitionBatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE/D,MAAM,OAAO,2BAA4B,SAAQ,MAAM,CAAC;IACtD,SAAS,EAAE,KAAK;IAChB,OAAO,EAAE,IAAI;CACd,CAAC;CAAG;AAEL,MAAM,OAAO,gCAAiC,SAAQ,MAAM,CAAC;IAC3D,SAAS,EAAE,KAAK;IAChB,IAAI,EAAE,KAAK;CACZ,CAAC;IACO,UAAU;QACf,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,gCAAgC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5E,OAAO,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC/D,CAAC;CACF"}
@@ -97,6 +97,7 @@ declare const ProvableStateTransition_base: (new (value: {
97
97
  */
98
98
  export declare class ProvableStateTransition extends ProvableStateTransition_base {
99
99
  static dummy(): ProvableStateTransition;
100
+ static isDummy(stateTransition: ProvableStateTransition): import("o1js/dist/node/lib/provable/bool").Bool;
100
101
  }
101
102
  /**
102
103
  * Generic state transition that constraints the current method circuit
@@ -1 +1 @@
1
- {"version":3,"file":"StateTransition.d.ts","sourceRoot":"","sources":["../../src/model/StateTransition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAU,MAAM,MAAM,CAAC;AAErC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAElD;;;;GAIG;AACH,qBAAa,uBAAwB,SAAQ,4BAQ3C;WACc,KAAK,IAAI,uBAAuB;CAO/C;AAED;;;GAGG;AACH,qBAAa,eAAe,CAAC,KAAK;IAcvB,IAAI,EAAE,KAAK;IACX,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;WAfjC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC;WAIjD,MAAM,CAAC,KAAK,EACxB,IAAI,EAAE,KAAK,EACX,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,EACxB,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;gBAMf,IAAI,EAAE,KAAK,EACX,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,EACxB,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;IAG/C,IAAW,IAAI,kBAId;IAED,IAAW,EAAE,8EAEZ;IAED;;;OAGG;IACI,UAAU,IAAI,uBAAuB;IAQrC,MAAM;;;;;;;;;;;;;IAQN,UAAU,IAAI,eAAe,CAAC,KAAK,CAAC;CAO5C"}
1
+ {"version":3,"file":"StateTransition.d.ts","sourceRoot":"","sources":["../../src/model/StateTransition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAU,MAAM,MAAM,CAAC;AAErC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAElD;;;;GAIG;AACH,qBAAa,uBAAwB,SAAQ,4BAQ3C;WACc,KAAK,IAAI,uBAAuB;WAQhC,OAAO,CAAC,eAAe,EAAE,uBAAuB;CAK/D;AAED;;;GAGG;AACH,qBAAa,eAAe,CAAC,KAAK;IAcvB,IAAI,EAAE,KAAK;IACX,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;WAfjC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC;WAIjD,MAAM,CAAC,KAAK,EACxB,IAAI,EAAE,KAAK,EACX,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,EACxB,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;gBAMf,IAAI,EAAE,KAAK,EACX,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,EACxB,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;IAG/C,IAAW,IAAI,kBAId;IAED,IAAW,EAAE,8EAEZ;IAED;;;OAGG;IACI,UAAU,IAAI,uBAAuB;IAQrC,MAAM;;;;;;;;;;;;;IAQN,UAAU,IAAI,eAAe,CAAC,KAAK,CAAC;CAO5C"}
@@ -19,6 +19,11 @@ export class ProvableStateTransition extends Struct({
19
19
  to: Option.none().toProvable(),
20
20
  });
21
21
  }
22
+ static isDummy(stateTransition) {
23
+ return stateTransition.path
24
+ .equals(0)
25
+ .and(stateTransition.from.isSome.not());
26
+ }
22
27
  }
23
28
  /**
24
29
  * Generic state transition that constraints the current method circuit
@@ -1 +1 @@
1
- {"version":3,"file":"StateTransition.js","sourceRoot":"","sources":["../../src/model/StateTransition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAErC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAElD;;;;GAIG;AACH,MAAM,OAAO,uBAAwB,SAAQ,MAAM,CAAC;IAClD,IAAI,EAAE,KAAK;IAEX,iCAAiC;IACjC,IAAI,EAAE,cAAc;IAEpB,4BAA4B;IAC5B,EAAE,EAAE,cAAc;CACnB,CAAC;IACO,MAAM,CAAC,KAAK;QACjB,OAAO,IAAI,uBAAuB,CAAC;YACjC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACd,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE;YAChC,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE;SAC/B,CAAC,CAAC;IACL,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,eAAe;IACnB,MAAM,CAAC,IAAI,CAAQ,IAAW,EAAE,SAAwB;QAC7D,OAAO,IAAI,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC;IAEM,MAAM,CAAC,MAAM,CAClB,IAAW,EACX,SAAwB,EACxB,OAAsB;QAEtB,OAAO,IAAI,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,YACS,IAAW,EACX,SAAwB,EACxB,OAAsC;QAFtC,SAAI,GAAJ,IAAI,CAAO;QACX,cAAS,GAAT,SAAS,CAAe;QACxB,YAAO,GAAP,OAAO,CAA+B;IAC5C,CAAC;IAEJ,IAAW,IAAI;QACb,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACpC,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAW,EAAE;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACI,UAAU;QACf,OAAO,IAAI,uBAAuB,CAAC;YACjC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAC5B,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE;SACzB,CAAC,CAAC;IACL,CAAC;IAEM,MAAM;QACX,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC1B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YAC7B,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;SAC1B,CAAC;IACJ,CAAC;IAEM,UAAU;QACf,OAAO,IAAI,eAAe,CACxB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EACtB,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAC3B,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAC1B,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"StateTransition.js","sourceRoot":"","sources":["../../src/model/StateTransition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAErC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAElD;;;;GAIG;AACH,MAAM,OAAO,uBAAwB,SAAQ,MAAM,CAAC;IAClD,IAAI,EAAE,KAAK;IAEX,iCAAiC;IACjC,IAAI,EAAE,cAAc;IAEpB,4BAA4B;IAC5B,EAAE,EAAE,cAAc;CACnB,CAAC;IACO,MAAM,CAAC,KAAK;QACjB,OAAO,IAAI,uBAAuB,CAAC;YACjC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACd,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE;YAChC,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE;SAC/B,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,eAAwC;QAC5D,OAAO,eAAe,CAAC,IAAI;aACxB,MAAM,CAAC,CAAC,CAAC;aACT,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5C,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,eAAe;IACnB,MAAM,CAAC,IAAI,CAAQ,IAAW,EAAE,SAAwB;QAC7D,OAAO,IAAI,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC;IAEM,MAAM,CAAC,MAAM,CAClB,IAAW,EACX,SAAwB,EACxB,OAAsB;QAEtB,OAAO,IAAI,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,YACS,IAAW,EACX,SAAwB,EACxB,OAAsC;QAFtC,SAAI,GAAJ,IAAI,CAAO;QACX,cAAS,GAAT,SAAS,CAAe;QACxB,YAAO,GAAP,OAAO,CAA+B;IAC5C,CAAC;IAEJ,IAAW,IAAI;QACb,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACpC,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAW,EAAE;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACI,UAAU;QACf,OAAO,IAAI,uBAAuB,CAAC;YACjC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAC5B,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE;SACzB,CAAC,CAAC;IACL,CAAC;IAEM,MAAM;QACX,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC1B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YAC7B,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;SAC1B,CAAC;IACJ,CAAC;IAEM,UAAU;QACf,OAAO,IAAI,eAAe,CACxB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EACtB,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAC3B,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAC1B,CAAC;IACJ,CAAC;CACF"}