@proto-kit/protocol 0.1.1-develop.1087 → 0.1.1-develop.1309
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Constants.js +1 -0
- package/dist/Constants.js.map +1 -0
- package/dist/hooks/AccountStateHook.js +1 -0
- package/dist/hooks/AccountStateHook.js.map +1 -0
- package/dist/hooks/BlockHeightHook.js +1 -0
- package/dist/hooks/BlockHeightHook.js.map +1 -0
- package/dist/hooks/LastStateRootBlockHook.js +1 -0
- package/dist/hooks/LastStateRootBlockHook.js.map +1 -0
- package/dist/hooks/NoopBlockHook.js +1 -0
- package/dist/hooks/NoopBlockHook.js.map +1 -0
- package/dist/hooks/NoopSettlementHook.d.ts +2 -2
- package/dist/hooks/NoopSettlementHook.d.ts.map +1 -1
- package/dist/hooks/NoopSettlementHook.js +1 -0
- package/dist/hooks/NoopSettlementHook.js.map +1 -0
- package/dist/hooks/NoopTransactionHook.js +1 -0
- package/dist/hooks/NoopTransactionHook.js.map +1 -0
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -2
- package/dist/index.js.map +1 -0
- package/dist/model/MethodPublicOutput.js +1 -0
- package/dist/model/MethodPublicOutput.js.map +1 -0
- package/dist/model/Option.js +1 -0
- package/dist/model/Option.js.map +1 -0
- package/dist/model/Path.js +1 -0
- package/dist/model/Path.js.map +1 -0
- package/dist/model/RuntimeLike.js +1 -0
- package/dist/model/RuntimeLike.js.map +1 -0
- package/dist/model/StateTransition.js +1 -0
- package/dist/model/StateTransition.js.map +1 -0
- package/dist/model/StateTransitionProvableBatch.d.ts +28 -2
- package/dist/model/StateTransitionProvableBatch.d.ts.map +1 -1
- package/dist/model/StateTransitionProvableBatch.js +9 -3
- package/dist/model/StateTransitionProvableBatch.js.map +1 -0
- package/dist/model/network/NetworkState.js +1 -0
- package/dist/model/network/NetworkState.js.map +1 -0
- package/dist/model/transaction/RuntimeTransaction.js +1 -0
- package/dist/model/transaction/RuntimeTransaction.js.map +1 -0
- package/dist/model/transaction/SignedTransaction.js +1 -0
- package/dist/model/transaction/SignedTransaction.js.map +1 -0
- package/dist/model/transaction/ValueOption.js +1 -0
- package/dist/model/transaction/ValueOption.js.map +1 -0
- package/dist/protocol/Protocol.d.ts.map +1 -1
- package/dist/protocol/Protocol.js +31 -6
- package/dist/protocol/Protocol.js.map +1 -0
- package/dist/protocol/ProtocolEnvironment.js +1 -0
- package/dist/protocol/ProtocolEnvironment.js.map +1 -0
- package/dist/protocol/ProtocolModule.d.ts +1 -1
- package/dist/protocol/ProtocolModule.d.ts.map +1 -1
- package/dist/protocol/ProtocolModule.js +2 -1
- package/dist/protocol/ProtocolModule.js.map +1 -0
- package/dist/protocol/ProvableBlockHook.js +1 -0
- package/dist/protocol/ProvableBlockHook.js.map +1 -0
- package/dist/protocol/ProvableTransactionHook.js +1 -0
- package/dist/protocol/ProvableTransactionHook.js.map +1 -0
- package/dist/protocol/TransitioningProtocolModule.js +1 -0
- package/dist/protocol/TransitioningProtocolModule.js.map +1 -0
- package/dist/prover/block/BlockProvable.d.ts +19 -5
- package/dist/prover/block/BlockProvable.d.ts.map +1 -1
- package/dist/prover/block/BlockProvable.js +5 -2
- package/dist/prover/block/BlockProvable.js.map +1 -0
- package/dist/prover/block/BlockProver.d.ts +11 -9
- package/dist/prover/block/BlockProver.d.ts.map +1 -1
- package/dist/prover/block/BlockProver.js +79 -41
- package/dist/prover/block/BlockProver.js.map +1 -0
- package/dist/prover/block/accummulators/BlockHashMerkleTree.js +1 -0
- package/dist/prover/block/accummulators/BlockHashMerkleTree.js.map +1 -0
- package/dist/prover/block/accummulators/RuntimeVerificationKeyTree.d.ts +2 -2
- package/dist/prover/block/accummulators/RuntimeVerificationKeyTree.js +1 -0
- package/dist/prover/block/accummulators/RuntimeVerificationKeyTree.js.map +1 -0
- package/dist/prover/block/services/RuntimeVerificationKeyRootService.js +1 -0
- package/dist/prover/block/services/RuntimeVerificationKeyRootService.js.map +1 -0
- package/dist/prover/statetransition/StateTransitionProvable.d.ts +2 -4
- package/dist/prover/statetransition/StateTransitionProvable.d.ts.map +1 -1
- package/dist/prover/statetransition/StateTransitionProvable.js +1 -0
- package/dist/prover/statetransition/StateTransitionProvable.js.map +1 -0
- package/dist/prover/statetransition/StateTransitionProver.d.ts +7 -10
- package/dist/prover/statetransition/StateTransitionProver.d.ts.map +1 -1
- package/dist/prover/statetransition/StateTransitionProver.js +27 -28
- package/dist/prover/statetransition/StateTransitionProver.js.map +1 -0
- package/dist/settlement/ContractModule.d.ts +4 -3
- package/dist/settlement/ContractModule.d.ts.map +1 -1
- package/dist/settlement/ContractModule.js +2 -1
- package/dist/settlement/ContractModule.js.map +1 -0
- package/dist/settlement/SettlementContractModule.d.ts +25 -12
- package/dist/settlement/SettlementContractModule.d.ts.map +1 -1
- package/dist/settlement/SettlementContractModule.js +29 -20
- package/dist/settlement/SettlementContractModule.js.map +1 -0
- package/dist/settlement/contracts/BridgeContract.d.ts +97 -0
- package/dist/settlement/contracts/BridgeContract.d.ts.map +1 -0
- package/dist/settlement/contracts/BridgeContract.js +164 -0
- package/dist/settlement/contracts/BridgeContract.js.map +1 -0
- package/dist/settlement/contracts/BridgeContractProtocolModule.d.ts +14 -0
- package/dist/settlement/contracts/BridgeContractProtocolModule.d.ts.map +1 -0
- package/dist/settlement/contracts/BridgeContractProtocolModule.js +30 -0
- package/dist/settlement/contracts/BridgeContractProtocolModule.js.map +1 -0
- package/dist/settlement/contracts/DispatchContractProtocolModule.d.ts +10 -1
- package/dist/settlement/contracts/DispatchContractProtocolModule.d.ts.map +1 -1
- package/dist/settlement/contracts/DispatchContractProtocolModule.js +24 -2
- package/dist/settlement/contracts/DispatchContractProtocolModule.js.map +1 -0
- package/dist/settlement/contracts/DispatchSmartContract.d.ts +26 -4
- package/dist/settlement/contracts/DispatchSmartContract.d.ts.map +1 -1
- package/dist/settlement/contracts/DispatchSmartContract.js +139 -19
- package/dist/settlement/contracts/DispatchSmartContract.js.map +1 -0
- package/dist/settlement/contracts/SettlementContractProtocolModule.d.ts +10 -8
- package/dist/settlement/contracts/SettlementContractProtocolModule.d.ts.map +1 -1
- package/dist/settlement/contracts/SettlementContractProtocolModule.js +47 -9
- package/dist/settlement/contracts/SettlementContractProtocolModule.js.map +1 -0
- package/dist/settlement/contracts/SettlementSmartContract.d.ts +98 -17
- package/dist/settlement/contracts/SettlementSmartContract.d.ts.map +1 -1
- package/dist/settlement/contracts/SettlementSmartContract.js +147 -79
- package/dist/settlement/contracts/SettlementSmartContract.js.map +1 -0
- package/dist/settlement/contracts/TokenBridgeTree.d.ts +228 -0
- package/dist/settlement/contracts/TokenBridgeTree.d.ts.map +1 -0
- package/dist/settlement/contracts/TokenBridgeTree.js +60 -0
- package/dist/settlement/contracts/TokenBridgeTree.js.map +1 -0
- package/dist/settlement/contracts/authorizations/ContractAuthorization.d.ts +10 -0
- package/dist/settlement/contracts/authorizations/ContractAuthorization.d.ts.map +1 -0
- package/dist/settlement/contracts/authorizations/ContractAuthorization.js +2 -0
- package/dist/settlement/contracts/authorizations/ContractAuthorization.js.map +1 -0
- package/dist/settlement/contracts/authorizations/TokenBridgeDeploymentAuth.d.ts +85 -0
- package/dist/settlement/contracts/authorizations/TokenBridgeDeploymentAuth.d.ts.map +1 -0
- package/dist/settlement/contracts/authorizations/TokenBridgeDeploymentAuth.js +11 -0
- package/dist/settlement/contracts/authorizations/TokenBridgeDeploymentAuth.js.map +1 -0
- package/dist/settlement/contracts/authorizations/UpdateMessagesHashAuth.d.ts +79 -0
- package/dist/settlement/contracts/authorizations/UpdateMessagesHashAuth.d.ts.map +1 -0
- package/dist/settlement/contracts/authorizations/UpdateMessagesHashAuth.js +11 -0
- package/dist/settlement/contracts/authorizations/UpdateMessagesHashAuth.js.map +1 -0
- package/dist/settlement/messages/Deposit.d.ts +13 -0
- package/dist/settlement/messages/Deposit.d.ts.map +1 -1
- package/dist/settlement/messages/Deposit.js +3 -1
- package/dist/settlement/messages/Deposit.js.map +1 -0
- package/dist/settlement/messages/OutgoingMessageArgument.d.ts +8 -0
- package/dist/settlement/messages/OutgoingMessageArgument.d.ts.map +1 -1
- package/dist/settlement/messages/OutgoingMessageArgument.js +1 -0
- package/dist/settlement/messages/OutgoingMessageArgument.js.map +1 -0
- package/dist/settlement/messages/Withdrawal.d.ts +13 -0
- package/dist/settlement/messages/Withdrawal.d.ts.map +1 -1
- package/dist/settlement/messages/Withdrawal.js +4 -1
- package/dist/settlement/messages/Withdrawal.js.map +1 -0
- package/dist/settlement/modularity/ProvableSettlementHook.d.ts +5 -3
- package/dist/settlement/modularity/ProvableSettlementHook.d.ts.map +1 -1
- package/dist/settlement/modularity/ProvableSettlementHook.js +1 -0
- package/dist/settlement/modularity/ProvableSettlementHook.js.map +1 -0
- package/dist/settlement/modularity/types.d.ts +8 -0
- package/dist/settlement/modularity/types.d.ts.map +1 -0
- package/dist/settlement/modularity/types.js +2 -0
- package/dist/settlement/modularity/types.js.map +1 -0
- package/dist/settlement/modules/NetworkStateSettlementModule.js +1 -0
- package/dist/settlement/modules/NetworkStateSettlementModule.js.map +1 -0
- package/dist/state/State.js +1 -0
- package/dist/state/State.js.map +1 -0
- package/dist/state/StateMap.js +1 -0
- package/dist/state/StateMap.js.map +1 -0
- package/dist/state/StateService.js +1 -0
- package/dist/state/StateService.js.map +1 -0
- package/dist/state/StateServiceProvider.js +1 -0
- package/dist/state/StateServiceProvider.js.map +1 -0
- package/dist/state/assert/assert.js +1 -0
- package/dist/state/assert/assert.js.map +1 -0
- package/dist/state/context/RuntimeMethodExecutionContext.js +1 -0
- package/dist/state/context/RuntimeMethodExecutionContext.js.map +1 -0
- package/dist/state/context/TransitionMethodExecutionContext.js +1 -0
- package/dist/state/context/TransitionMethodExecutionContext.js.map +1 -0
- package/dist/state/protocol/ProtocolState.js +1 -0
- package/dist/state/protocol/ProtocolState.js.map +1 -0
- package/dist/utils/MinaPrefixedProvableHashList.js +1 -0
- package/dist/utils/MinaPrefixedProvableHashList.js.map +1 -0
- package/dist/utils/PrefixedProvableHashList.js +1 -0
- package/dist/utils/PrefixedProvableHashList.js.map +1 -0
- package/dist/utils/ProvableHashList.js +1 -0
- package/dist/utils/ProvableHashList.js.map +1 -0
- package/dist/utils/ProvableReductionHashList.js +1 -0
- package/dist/utils/ProvableReductionHashList.js.map +1 -0
- package/dist/utils/StateTransitionReductionList.js +1 -0
- package/dist/utils/StateTransitionReductionList.js.map +1 -0
- package/dist/utils/utils.js +1 -0
- package/dist/utils/utils.js.map +1 -0
- package/jest.config.cjs +12 -1
- package/package.json +4 -4
- package/src/hooks/NoopSettlementHook.ts +2 -2
- package/src/index.ts +6 -2
- package/src/model/StateTransitionProvableBatch.ts +24 -4
- package/src/protocol/Protocol.ts +36 -7
- package/src/protocol/ProtocolModule.ts +1 -1
- package/src/prover/block/BlockProvable.ts +9 -9
- package/src/prover/block/BlockProver.ts +94 -58
- package/src/prover/statetransition/StateTransitionProvable.ts +5 -8
- package/src/prover/statetransition/StateTransitionProver.ts +46 -40
- package/src/settlement/ContractModule.ts +17 -10
- package/src/settlement/SettlementContractModule.ts +54 -41
- package/src/settlement/contracts/BridgeContract.ts +237 -0
- package/src/settlement/contracts/BridgeContractProtocolModule.ts +43 -0
- package/src/settlement/contracts/DispatchContractProtocolModule.ts +37 -3
- package/src/settlement/contracts/DispatchSmartContract.ts +213 -23
- package/src/settlement/contracts/SettlementContractProtocolModule.ts +61 -20
- package/src/settlement/contracts/SettlementSmartContract.ts +261 -107
- package/src/settlement/contracts/TokenBridgeTree.ts +73 -0
- package/src/settlement/contracts/authorizations/ContractAuthorization.ts +11 -0
- package/src/settlement/contracts/authorizations/TokenBridgeDeploymentAuth.ts +16 -0
- package/src/settlement/contracts/authorizations/UpdateMessagesHashAuth.ts +16 -0
- package/src/settlement/messages/Deposit.ts +2 -1
- package/src/settlement/messages/Withdrawal.ts +3 -1
- package/src/settlement/modularity/ProvableSettlementHook.ts +6 -3
- package/src/settlement/modularity/types.ts +22 -0
- package/test/BlockProver.test.ts +2 -1
- package/test/TestingProtocol.ts +17 -12
- package/test/compiling/types.ts +28 -0
- package/test/modularity/types.ts +35 -0
- package/src/prover/statetransition/StateTransitionWitnessProvider.ts +0 -23
- package/src/prover/statetransition/StateTransitionWitnessProviderReference.ts +0 -17
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuntimeVerificationKeyRootService.js","sourceRoot":"","sources":["../../../../src/prover/block/services/RuntimeVerificationKeyRootService.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAMlD,WAAM,iCAAiC,GAAvC,MAAM,iCAAiC;IAGrC,OAAO,CAAC,IAAY;QACzB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAEM,OAAO;QACZ,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;YACnC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;SACxC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;CACF,CAAA;AAbY,iCAAiC;IAF7C,UAAU,EAAE;IACZ,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC;GACrB,iCAAiC,CAa7C"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Proof } from "o1js";
|
|
2
|
-
import { WithZkProgrammable } from "@proto-kit/common";
|
|
2
|
+
import { WithZkProgrammable, CompilableModule } from "@proto-kit/common";
|
|
3
3
|
import { StateTransitionProvableBatch } from "../../model/StateTransitionProvableBatch";
|
|
4
|
-
import { StateTransitionWitnessProviderReference } from "./StateTransitionWitnessProviderReference";
|
|
5
4
|
declare const StateTransitionProverPublicInput_base: (new (value: {
|
|
6
5
|
stateTransitionsHash: import("o1js/dist/node/lib/provable/field").Field;
|
|
7
6
|
protocolTransitionsHash: import("o1js/dist/node/lib/provable/field").Field;
|
|
@@ -165,8 +164,7 @@ declare const StateTransitionProverPublicOutput_base: (new (value: {
|
|
|
165
164
|
export declare class StateTransitionProverPublicOutput extends StateTransitionProverPublicOutput_base {
|
|
166
165
|
}
|
|
167
166
|
export type StateTransitionProof = Proof<StateTransitionProverPublicInput, StateTransitionProverPublicOutput>;
|
|
168
|
-
export interface StateTransitionProvable extends WithZkProgrammable<StateTransitionProverPublicInput, StateTransitionProverPublicOutput
|
|
169
|
-
witnessProviderReference: StateTransitionWitnessProviderReference;
|
|
167
|
+
export interface StateTransitionProvable extends WithZkProgrammable<StateTransitionProverPublicInput, StateTransitionProverPublicOutput>, CompilableModule {
|
|
170
168
|
runBatch: (publicInput: StateTransitionProverPublicInput, batch: StateTransitionProvableBatch) => Promise<StateTransitionProverPublicOutput>;
|
|
171
169
|
merge: (publicInput: StateTransitionProverPublicInput, proof1: StateTransitionProof, proof2: StateTransitionProof) => Promise<StateTransitionProverPublicOutput>;
|
|
172
170
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StateTransitionProvable.d.ts","sourceRoot":"","sources":["../../../src/prover/statetransition/StateTransitionProvable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,EAAU,MAAM,MAAM,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"StateTransitionProvable.d.ts","sourceRoot":"","sources":["../../../src/prover/statetransition/StateTransitionProvable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,EAAU,MAAM,MAAM,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEzE,OAAO,EAAE,4BAA4B,EAAE,MAAM,0CAA0C,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAExF,qBAAa,gCAAiC,SAAQ,qCAKpD;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEL,qBAAa,iCAAkC,SAAQ,sCAKrD;CAAG;AAEL,MAAM,MAAM,oBAAoB,GAAG,KAAK,CACtC,gCAAgC,EAChC,iCAAiC,CAClC,CAAC;AAEF,MAAM,WAAW,uBACf,SAAQ,kBAAkB,CACtB,gCAAgC,EAChC,iCAAiC,CAClC,EACD,gBAAgB;IAClB,QAAQ,EAAE,CACR,WAAW,EAAE,gCAAgC,EAC7C,KAAK,EAAE,4BAA4B,KAChC,OAAO,CAAC,iCAAiC,CAAC,CAAC;IAEhD,KAAK,EAAE,CACL,WAAW,EAAE,gCAAgC,EAC7C,MAAM,EAAE,oBAAoB,EAC5B,MAAM,EAAE,oBAAoB,KACzB,OAAO,CAAC,iCAAiC,CAAC,CAAC;CACjD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StateTransitionProvable.js","sourceRoot":"","sources":["../../../src/prover/statetransition/StateTransitionProvable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAS,MAAM,EAAE,MAAM,MAAM,CAAC;AAK5C,MAAM,OAAO,gCAAiC,SAAQ,MAAM,CAAC;IAC3D,oBAAoB,EAAE,KAAK;IAC3B,uBAAuB,EAAE,KAAK;IAC9B,SAAS,EAAE,KAAK;IAChB,iBAAiB,EAAE,KAAK;CACzB,CAAC;CAAG;AAEL,MAAM,OAAO,iCAAkC,SAAQ,MAAM,CAAC;IAC5D,oBAAoB,EAAE,KAAK;IAC3B,uBAAuB,EAAE,KAAK;IAC9B,SAAS,EAAE,KAAK;IAChB,iBAAiB,EAAE,KAAK;CACzB,CAAC;CAAG"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AreProofsEnabled, PlainZkProgram, ZkProgrammable } from "@proto-kit/common";
|
|
1
|
+
import { AreProofsEnabled, PlainZkProgram, RollupMerkleTreeWitness, ZkProgrammable, CompilableModule, type ArtifactRecord, type CompileRegistry } from "@proto-kit/common";
|
|
2
2
|
import { Field } from "o1js";
|
|
3
3
|
import { ProvableStateTransition } from "../../model/StateTransition";
|
|
4
4
|
import { ProvableStateTransitionType, StateTransitionProvableBatch } from "../../model/StateTransitionProvableBatch";
|
|
@@ -6,7 +6,6 @@ import { StateTransitionProverType } from "../../protocol/Protocol";
|
|
|
6
6
|
import { ProtocolModule } from "../../protocol/ProtocolModule";
|
|
7
7
|
import { ProvableHashList } from "../../utils/ProvableHashList";
|
|
8
8
|
import { StateTransitionProof, StateTransitionProvable, StateTransitionProverPublicInput, StateTransitionProverPublicOutput } from "./StateTransitionProvable";
|
|
9
|
-
import { StateTransitionWitnessProviderReference } from "./StateTransitionWitnessProviderReference";
|
|
10
9
|
interface StateTransitionProverExecutionState {
|
|
11
10
|
stateRoot: Field;
|
|
12
11
|
protocolStateRoot: Field;
|
|
@@ -19,11 +18,9 @@ interface StateTransitionProverExecutionState {
|
|
|
19
18
|
*/
|
|
20
19
|
export declare class StateTransitionProverProgrammable extends ZkProgrammable<StateTransitionProverPublicInput, StateTransitionProverPublicOutput> {
|
|
21
20
|
private readonly stateTransitionProver;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
get appChain(): AreProofsEnabled | undefined;
|
|
21
|
+
constructor(stateTransitionProver: StateTransitionProver);
|
|
22
|
+
get areProofsEnabled(): AreProofsEnabled | undefined;
|
|
25
23
|
zkProgramFactory(): PlainZkProgram<StateTransitionProverPublicInput, StateTransitionProverPublicOutput>[];
|
|
26
|
-
private get witnessProvider();
|
|
27
24
|
/**
|
|
28
25
|
* Applies the state transitions to the current stateRoot
|
|
29
26
|
* and returns the new prover state
|
|
@@ -33,17 +30,17 @@ export declare class StateTransitionProverProgrammable extends ZkProgrammable<St
|
|
|
33
30
|
* Applies a single state transition to the given state
|
|
34
31
|
* and mutates it in place
|
|
35
32
|
*/
|
|
36
|
-
applyTransition(state: StateTransitionProverExecutionState, transition: ProvableStateTransition, type: ProvableStateTransitionType, index?: number): void;
|
|
33
|
+
applyTransition(state: StateTransitionProverExecutionState, transition: ProvableStateTransition, type: ProvableStateTransitionType, merkleWitness: RollupMerkleTreeWitness, index?: number): void;
|
|
37
34
|
/**
|
|
38
35
|
* Applies a whole batch of StateTransitions at once
|
|
39
36
|
*/
|
|
40
37
|
runBatch(publicInput: StateTransitionProverPublicInput, batch: StateTransitionProvableBatch): Promise<StateTransitionProverPublicOutput>;
|
|
41
38
|
merge(publicInput: StateTransitionProverPublicInput, proof1: StateTransitionProof, proof2: StateTransitionProof): Promise<StateTransitionProverPublicOutput>;
|
|
42
39
|
}
|
|
43
|
-
export declare class StateTransitionProver extends ProtocolModule implements StateTransitionProvable, StateTransitionProverType {
|
|
44
|
-
readonly witnessProviderReference: StateTransitionWitnessProviderReference;
|
|
40
|
+
export declare class StateTransitionProver extends ProtocolModule implements StateTransitionProvable, StateTransitionProverType, CompilableModule {
|
|
45
41
|
zkProgrammable: StateTransitionProverProgrammable;
|
|
46
|
-
constructor(
|
|
42
|
+
constructor();
|
|
43
|
+
compile(registry: CompileRegistry): Promise<void | ArtifactRecord>;
|
|
47
44
|
runBatch(publicInput: StateTransitionProverPublicInput, batch: StateTransitionProvableBatch): Promise<StateTransitionProverPublicOutput>;
|
|
48
45
|
merge(publicInput: StateTransitionProverPublicInput, proof1: StateTransitionProof, proof2: StateTransitionProof): Promise<StateTransitionProverPublicOutput>;
|
|
49
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StateTransitionProver.d.ts","sourceRoot":"","sources":["../../../src/prover/statetransition/StateTransitionProver.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,cAAc,
|
|
1
|
+
{"version":3,"file":"StateTransitionProver.d.ts","sourceRoot":"","sources":["../../../src/prover/statetransition/StateTransitionProver.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,cAAc,EAEd,uBAAuB,EACvB,cAAc,EACd,gBAAgB,EAChB,KAAK,cAAc,EACnB,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAkC,MAAM,MAAM,CAAC;AAI7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC7B,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAEL,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,gCAAgC,EAChC,iCAAiC,EAClC,MAAM,2BAA2B,CAAC;AA0BnC,UAAU,mCAAmC;IAC3C,SAAS,EAAE,KAAK,CAAC;IACjB,iBAAiB,EAAE,KAAK,CAAC;IACzB,mBAAmB,EAAE,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;IAC/D,sBAAsB,EAAE,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;CACnE;AAOD;;;GAGG;AACH,qBAAa,iCAAkC,SAAQ,cAAc,CACnE,gCAAgC,EAChC,iCAAiC,CAClC;IAEG,OAAO,CAAC,QAAQ,CAAC,qBAAqB;gBAArB,qBAAqB,EAAE,qBAAqB;IAK/D,IAAW,gBAAgB,IAAI,gBAAgB,GAAG,SAAS,CAE1D;IAEM,gBAAgB,IAAI,cAAc,CACvC,gCAAgC,EAChC,iCAAiC,CAClC,EAAE;IAwDH;;;OAGG;IACI,gBAAgB,CACrB,SAAS,EAAE,KAAK,EAChB,iBAAiB,EAAE,KAAK,EACxB,6BAA6B,EAAE,KAAK,EACpC,gCAAgC,EAAE,KAAK,EACvC,eAAe,EAAE,4BAA4B,GAC5C,mCAAmC;IAoCtC;;;OAGG;IACI,eAAe,CACpB,KAAK,EAAE,mCAAmC,EAC1C,UAAU,EAAE,uBAAuB,EACnC,IAAI,EAAE,2BAA2B,EACjC,aAAa,EAAE,uBAAuB,EACtC,KAAK,SAAI;IAwCX;;OAEG;IAEU,QAAQ,CACnB,WAAW,EAAE,gCAAgC,EAC7C,KAAK,EAAE,4BAA4B,GAClC,OAAO,CAAC,iCAAiC,CAAC;IAkBhC,KAAK,CAChB,WAAW,EAAE,gCAAgC,EAC7C,MAAM,EAAE,oBAAoB,EAC5B,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,iCAAiC,CAAC;CAqE9C;AAED,qBACa,qBACX,SAAQ,cACR,YACE,uBAAuB,EACvB,yBAAyB,EACzB,gBAAgB;IAEX,cAAc,EAAE,iCAAiC,CAAC;;IAO5C,OAAO,CAClB,QAAQ,EAAE,eAAe,GACxB,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;IAI1B,QAAQ,CACb,WAAW,EAAE,gCAAgC,EAC7C,KAAK,EAAE,4BAA4B,GAClC,OAAO,CAAC,iCAAiC,CAAC;IAItC,KAAK,CACV,WAAW,EAAE,gCAAgC,EAC7C,MAAM,EAAE,oBAAoB,EAC5B,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,iCAAiC,CAAC;CAG9C"}
|
|
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
-
import { provableMethod,
|
|
10
|
+
import { provableMethod, ZkProgrammable, } from "@proto-kit/common";
|
|
11
11
|
import { Field, Provable, SelfProof, ZkProgram } from "o1js";
|
|
12
12
|
import { injectable } from "tsyringe";
|
|
13
13
|
import { constants } from "../../Constants";
|
|
@@ -16,10 +16,15 @@ import { StateTransitionProvableBatch, } from "../../model/StateTransitionProvab
|
|
|
16
16
|
import { ProtocolModule } from "../../protocol/ProtocolModule";
|
|
17
17
|
import { DefaultProvableHashList, } from "../../utils/ProvableHashList";
|
|
18
18
|
import { StateTransitionProverPublicInput, StateTransitionProverPublicOutput, } from "./StateTransitionProvable";
|
|
19
|
-
import { StateTransitionWitnessProviderReference } from "./StateTransitionWitnessProviderReference";
|
|
20
19
|
const errors = {
|
|
21
20
|
propertyNotMatching: (property, step) => `${property} not matching ${step}`,
|
|
22
|
-
merkleWitnessNotCorrect: (index, type) =>
|
|
21
|
+
merkleWitnessNotCorrect: (index, type) => {
|
|
22
|
+
let s = `MerkleWitness not valid for StateTransition (${index}, type unknown)`;
|
|
23
|
+
Provable.asProver(() => {
|
|
24
|
+
s = s.replace("unknown", type.isNormal().toBoolean() ? "normal" : "protocol");
|
|
25
|
+
});
|
|
26
|
+
return s;
|
|
27
|
+
},
|
|
23
28
|
noWitnessProviderSet: () => new Error("WitnessProvider not set, set it before you use StateTransitionProvider"),
|
|
24
29
|
};
|
|
25
30
|
const StateTransitionSelfProofClass = (SelfProof);
|
|
@@ -28,13 +33,12 @@ const StateTransitionSelfProofClass = (SelfProof);
|
|
|
28
33
|
* transitions and checks and updates their merkle-tree entries
|
|
29
34
|
*/
|
|
30
35
|
export class StateTransitionProverProgrammable extends ZkProgrammable {
|
|
31
|
-
constructor(stateTransitionProver
|
|
36
|
+
constructor(stateTransitionProver) {
|
|
32
37
|
super();
|
|
33
38
|
this.stateTransitionProver = stateTransitionProver;
|
|
34
|
-
this.witnessProviderReference = witnessProviderReference;
|
|
35
39
|
}
|
|
36
|
-
get
|
|
37
|
-
return this.stateTransitionProver.
|
|
40
|
+
get areProofsEnabled() {
|
|
41
|
+
return this.stateTransitionProver.areProofsEnabled;
|
|
38
42
|
}
|
|
39
43
|
zkProgramFactory() {
|
|
40
44
|
const instance = this;
|
|
@@ -43,7 +47,7 @@ export class StateTransitionProverProgrammable extends ZkProgrammable {
|
|
|
43
47
|
publicInput: StateTransitionProverPublicInput,
|
|
44
48
|
publicOutput: StateTransitionProverPublicOutput,
|
|
45
49
|
methods: {
|
|
46
|
-
|
|
50
|
+
runBatch: {
|
|
47
51
|
privateInputs: [StateTransitionProvableBatch],
|
|
48
52
|
async method(publicInput, batch) {
|
|
49
53
|
return await instance.runBatch(publicInput, batch);
|
|
@@ -61,12 +65,13 @@ export class StateTransitionProverProgrammable extends ZkProgrammable {
|
|
|
61
65
|
},
|
|
62
66
|
});
|
|
63
67
|
const methods = {
|
|
64
|
-
|
|
68
|
+
runBatch: program.runBatch.bind(program),
|
|
65
69
|
merge: program.merge.bind(program),
|
|
66
70
|
};
|
|
67
71
|
const SelfProofClass = ZkProgram.Proof(program);
|
|
68
72
|
return [
|
|
69
73
|
{
|
|
74
|
+
name: program.name,
|
|
70
75
|
compile: program.compile.bind(program),
|
|
71
76
|
verify: program.verify.bind(program),
|
|
72
77
|
analyzeMethods: program.analyzeMethods.bind(program),
|
|
@@ -75,13 +80,6 @@ export class StateTransitionProverProgrammable extends ZkProgrammable {
|
|
|
75
80
|
},
|
|
76
81
|
];
|
|
77
82
|
}
|
|
78
|
-
get witnessProvider() {
|
|
79
|
-
const provider = this.witnessProviderReference.getWitnessProvider();
|
|
80
|
-
if (provider === undefined) {
|
|
81
|
-
throw errors.noWitnessProviderSet();
|
|
82
|
-
}
|
|
83
|
-
return provider;
|
|
84
|
-
}
|
|
85
83
|
/**
|
|
86
84
|
* Applies the state transitions to the current stateRoot
|
|
87
85
|
* and returns the new prover state
|
|
@@ -95,8 +93,9 @@ export class StateTransitionProverProgrammable extends ZkProgrammable {
|
|
|
95
93
|
};
|
|
96
94
|
const transitions = transitionBatch.batch;
|
|
97
95
|
const types = transitionBatch.transitionTypes;
|
|
96
|
+
const merkleWitness = transitionBatch.merkleWitnesses;
|
|
98
97
|
for (let index = 0; index < constants.stateTransitionProverBatchSize; index++) {
|
|
99
|
-
this.applyTransition(state, transitions[index], types[index], index);
|
|
98
|
+
this.applyTransition(state, transitions[index], types[index], merkleWitness[index], index);
|
|
100
99
|
}
|
|
101
100
|
return state;
|
|
102
101
|
}
|
|
@@ -104,13 +103,12 @@ export class StateTransitionProverProgrammable extends ZkProgrammable {
|
|
|
104
103
|
* Applies a single state transition to the given state
|
|
105
104
|
* and mutates it in place
|
|
106
105
|
*/
|
|
107
|
-
applyTransition(state, transition, type, index = 0) {
|
|
108
|
-
const
|
|
109
|
-
const membershipValid = witness.checkMembership(state.stateRoot, transition.path, transition.from.value);
|
|
106
|
+
applyTransition(state, transition, type, merkleWitness, index = 0) {
|
|
107
|
+
const membershipValid = merkleWitness.checkMembership(state.stateRoot, transition.path, transition.from.value);
|
|
110
108
|
membershipValid
|
|
111
109
|
.or(transition.from.isSome.not())
|
|
112
|
-
.assertTrue(errors.merkleWitnessNotCorrect(index, type
|
|
113
|
-
const newRoot =
|
|
110
|
+
.assertTrue(errors.merkleWitnessNotCorrect(index, type));
|
|
111
|
+
const newRoot = merkleWitness.calculateRoot(transition.to.value);
|
|
114
112
|
state.stateRoot = Provable.if(transition.to.isSome, newRoot, state.stateRoot);
|
|
115
113
|
// Only update protocol state root if ST is also of type protocol
|
|
116
114
|
// Since protocol STs are all at the start of the batch, this works
|
|
@@ -168,12 +166,12 @@ __decorate([
|
|
|
168
166
|
__metadata("design:returntype", Promise)
|
|
169
167
|
], StateTransitionProverProgrammable.prototype, "merge", null);
|
|
170
168
|
export let StateTransitionProver = class StateTransitionProver extends ProtocolModule {
|
|
171
|
-
constructor(
|
|
172
|
-
// Injected
|
|
173
|
-
witnessProviderReference) {
|
|
169
|
+
constructor() {
|
|
174
170
|
super();
|
|
175
|
-
this.
|
|
176
|
-
|
|
171
|
+
this.zkProgrammable = new StateTransitionProverProgrammable(this);
|
|
172
|
+
}
|
|
173
|
+
async compile(registry) {
|
|
174
|
+
return await this.zkProgrammable.compile(registry);
|
|
177
175
|
}
|
|
178
176
|
runBatch(publicInput, batch) {
|
|
179
177
|
return this.zkProgrammable.runBatch(publicInput, batch);
|
|
@@ -184,5 +182,6 @@ export let StateTransitionProver = class StateTransitionProver extends ProtocolM
|
|
|
184
182
|
};
|
|
185
183
|
StateTransitionProver = __decorate([
|
|
186
184
|
injectable(),
|
|
187
|
-
__metadata("design:paramtypes", [
|
|
185
|
+
__metadata("design:paramtypes", [])
|
|
188
186
|
], StateTransitionProver);
|
|
187
|
+
//# sourceMappingURL=StateTransitionProver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StateTransitionProver.js","sourceRoot":"","sources":["../../../src/prover/statetransition/StateTransitionProver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ConfigurableModule, NoConfig, TypedClass } from "@proto-kit/common";
|
|
1
|
+
import { ArtifactRecord, type CompilableModule, CompileRegistry, ConfigurableModule, NoConfig, TypedClass } from "@proto-kit/common";
|
|
2
2
|
import { SmartContract } from "o1js";
|
|
3
3
|
export type SmartContractClassFromInterface<Type> = typeof SmartContract & TypedClass<Type>;
|
|
4
4
|
/**
|
|
@@ -9,7 +9,8 @@ export type SmartContractClassFromInterface<Type> = typeof SmartContract & Typed
|
|
|
9
9
|
* of SmartContract and implements a certain interface as specified by the
|
|
10
10
|
* ContractType generic.
|
|
11
11
|
*/
|
|
12
|
-
export declare abstract class ContractModule<ContractType,
|
|
13
|
-
abstract contractFactory(
|
|
12
|
+
export declare abstract class ContractModule<ContractType, Config = NoConfig> extends ConfigurableModule<Config> implements CompilableModule {
|
|
13
|
+
abstract contractFactory(): SmartContractClassFromInterface<ContractType>;
|
|
14
|
+
abstract compile(registry: CompileRegistry): Promise<ArtifactRecord | undefined>;
|
|
14
15
|
}
|
|
15
16
|
//# sourceMappingURL=ContractModule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContractModule.d.ts","sourceRoot":"","sources":["../../src/settlement/ContractModule.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ContractModule.d.ts","sourceRoot":"","sources":["../../src/settlement/ContractModule.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,KAAK,gBAAgB,EACrB,eAAe,EACf,kBAAkB,EAClB,QAAQ,EACR,UAAU,EACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAErC,MAAM,MAAM,+BAA+B,CAAC,IAAI,IAAI,OAAO,aAAa,GACtE,UAAU,CAAC,IAAI,CAAC,CAAC;AAEnB;;;;;;;GAOG;AACH,8BAAsB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,CAClE,SAAQ,kBAAkB,CAAC,MAAM,CACjC,YAAW,gBAAgB;aAEX,eAAe,IAAI,+BAA+B,CAAC,YAAY,CAAC;aAEhE,OAAO,CACrB,QAAQ,EAAE,eAAe,GACxB,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;CACvC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ConfigurableModule } from "@proto-kit/common";
|
|
1
|
+
import { ConfigurableModule, } from "@proto-kit/common";
|
|
2
2
|
/**
|
|
3
3
|
* This module type is used to define a contract module that can be used to
|
|
4
4
|
* construct and inject smart contract instances.
|
|
@@ -9,3 +9,4 @@ import { ConfigurableModule } from "@proto-kit/common";
|
|
|
9
9
|
*/
|
|
10
10
|
export class ContractModule extends ConfigurableModule {
|
|
11
11
|
}
|
|
12
|
+
//# sourceMappingURL=ContractModule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContractModule.js","sourceRoot":"","sources":["../../src/settlement/ContractModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,kBAAkB,GAGnB,MAAM,mBAAmB,CAAC;AAM3B;;;;;;;GAOG;AACH,MAAM,OAAgB,cACpB,SAAQ,kBAA0B;CAQnC"}
|
|
@@ -1,34 +1,46 @@
|
|
|
1
1
|
import { AreProofsEnabled, ChildContainerProvider, ModuleContainer, ModulesRecord, TypedClass } from "@proto-kit/common";
|
|
2
|
-
import { PublicKey, SmartContract } from "o1js";
|
|
2
|
+
import { Field, PublicKey, SmartContract } from "o1js";
|
|
3
3
|
import { ProtocolEnvironment } from "../protocol/ProtocolEnvironment";
|
|
4
4
|
import { ProtocolModule } from "../protocol/ProtocolModule";
|
|
5
|
-
import { ContractModule
|
|
5
|
+
import { ContractModule } from "./ContractModule";
|
|
6
6
|
import { DispatchContractProtocolModule } from "./contracts/DispatchContractProtocolModule";
|
|
7
7
|
import { DispatchContractType } from "./contracts/DispatchSmartContract";
|
|
8
8
|
import { SettlementContractConfig, SettlementContractProtocolModule } from "./contracts/SettlementContractProtocolModule";
|
|
9
9
|
import { SettlementContractType } from "./contracts/SettlementSmartContract";
|
|
10
|
-
|
|
10
|
+
import { BridgeContractType } from "./contracts/BridgeContract";
|
|
11
|
+
import { BridgeContractConfig, BridgeContractProtocolModule } from "./contracts/BridgeContractProtocolModule";
|
|
12
|
+
import { GetContracts } from "./modularity/types";
|
|
13
|
+
export type SettlementModulesRecord = ModulesRecord<TypedClass<ContractModule<unknown, unknown>>>;
|
|
11
14
|
export type MandatorySettlementModulesRecord = {
|
|
12
|
-
SettlementContract: TypedClass<ContractModule<SettlementContractType,
|
|
13
|
-
DispatchContract: TypedClass<ContractModule<DispatchContractType, unknown
|
|
15
|
+
SettlementContract: TypedClass<ContractModule<SettlementContractType, SettlementContractConfig>>;
|
|
16
|
+
DispatchContract: TypedClass<ContractModule<DispatchContractType, unknown>>;
|
|
17
|
+
BridgeContract: TypedClass<ContractModule<BridgeContractType, BridgeContractConfig>>;
|
|
14
18
|
};
|
|
15
19
|
export declare class SettlementContractModule<SettlementModules extends SettlementModulesRecord & MandatorySettlementModulesRecord> extends ModuleContainer<SettlementModules> implements ProtocolModule<unknown> {
|
|
16
20
|
constructor(definition: {
|
|
17
21
|
modules: SettlementModules;
|
|
18
22
|
});
|
|
19
23
|
static from<SettlementModules extends SettlementModulesRecord & MandatorySettlementModulesRecord>(modules: SettlementModules): TypedClass<SettlementContractModule<SettlementModules>>;
|
|
24
|
+
static mandatoryModules(): {
|
|
25
|
+
readonly SettlementContract: typeof SettlementContractProtocolModule;
|
|
26
|
+
readonly DispatchContract: typeof DispatchContractProtocolModule;
|
|
27
|
+
readonly BridgeContract: typeof BridgeContractProtocolModule;
|
|
28
|
+
};
|
|
20
29
|
static fromDefaults(): TypedClass<SettlementContractModule<{
|
|
21
|
-
SettlementContract: typeof SettlementContractProtocolModule;
|
|
22
|
-
DispatchContract: typeof DispatchContractProtocolModule;
|
|
30
|
+
readonly SettlementContract: typeof SettlementContractProtocolModule;
|
|
31
|
+
readonly DispatchContract: typeof DispatchContractProtocolModule;
|
|
32
|
+
readonly BridgeContract: typeof BridgeContractProtocolModule;
|
|
23
33
|
}>>;
|
|
34
|
+
static with<AdditionalModules extends SettlementModulesRecord>(additionalModules: AdditionalModules): TypedClass<SettlementContractModule<{
|
|
35
|
+
readonly SettlementContract: typeof SettlementContractProtocolModule;
|
|
36
|
+
readonly DispatchContract: typeof DispatchContractProtocolModule;
|
|
37
|
+
readonly BridgeContract: typeof BridgeContractProtocolModule;
|
|
38
|
+
} & AdditionalModules>>;
|
|
24
39
|
protocol?: ProtocolEnvironment;
|
|
25
|
-
get
|
|
40
|
+
get areProofsEnabled(): AreProofsEnabled | undefined;
|
|
26
41
|
create(childContainerProvider: ChildContainerProvider): void;
|
|
27
42
|
start(): Promise<void>;
|
|
28
|
-
getContractClasses():
|
|
29
|
-
settlement: SmartContractClassFromInterface<SettlementContractType>;
|
|
30
|
-
dispatch: SmartContractClassFromInterface<DispatchContractType>;
|
|
31
|
-
};
|
|
43
|
+
getContractClasses(): GetContracts<SettlementModules>;
|
|
32
44
|
createContracts(addresses: {
|
|
33
45
|
settlement: PublicKey;
|
|
34
46
|
dispatch: PublicKey;
|
|
@@ -36,5 +48,6 @@ export declare class SettlementContractModule<SettlementModules extends Settleme
|
|
|
36
48
|
settlement: SettlementContractType & SmartContract;
|
|
37
49
|
dispatch: DispatchContractType & SmartContract;
|
|
38
50
|
};
|
|
51
|
+
createBridgeContract(address: PublicKey, tokenId?: Field): BridgeContractType & SmartContract;
|
|
39
52
|
}
|
|
40
53
|
//# sourceMappingURL=SettlementContractModule.d.ts.map
|
|
@@ -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,
|
|
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,EAGX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAGvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,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;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC7B,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,MAAM,uBAAuB,GAAG,aAAa,CACjD,UAAU,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAC7C,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,kBAAkB,EAAE,UAAU,CAC5B,cAAc,CAAC,sBAAsB,EAAE,wBAAwB,CAAC,CACjE,CAAC;IACF,gBAAgB,EAAE,UAAU,CAAC,cAAc,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5E,cAAc,EAAE,UAAU,CACxB,cAAc,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CACzD,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,gBAAgB;;;;;WAQhB,YAAY;;;;;WAMZ,IAAI,CAAC,iBAAiB,SAAS,uBAAuB,EAClE,iBAAiB,EAAE,iBAAiB;;;;;IAS/B,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAEtC,IAAW,gBAAgB,IAAI,gBAAgB,GAAG,SAAS,CAE1D;IAGM,MAAM,CAAC,sBAAsB,EAAE,sBAAsB;IAI/C,KAAK;IAIX,kBAAkB,IAAI,YAAY,CAAC,iBAAiB,CAAC;IAUrD,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;IAYM,oBAAoB,CACzB,OAAO,EAAE,SAAS,EAClB,OAAO,CAAC,EAAE,KAAK,GACd,kBAAkB,GAAG,aAAa;CAKtC"}
|
|
@@ -12,6 +12,7 @@ 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
|
+
import { BridgeContractProtocolModule, } from "./contracts/BridgeContractProtocolModule";
|
|
15
16
|
export let SettlementContractModule = SettlementContractModule_1 = class SettlementContractModule extends ModuleContainer {
|
|
16
17
|
constructor(definition) {
|
|
17
18
|
super(definition);
|
|
@@ -23,13 +24,23 @@ export let SettlementContractModule = SettlementContractModule_1 = class Settlem
|
|
|
23
24
|
}
|
|
24
25
|
};
|
|
25
26
|
}
|
|
26
|
-
static
|
|
27
|
-
return
|
|
27
|
+
static mandatoryModules() {
|
|
28
|
+
return {
|
|
28
29
|
SettlementContract: SettlementContractProtocolModule,
|
|
29
30
|
DispatchContract: DispatchContractProtocolModule,
|
|
31
|
+
BridgeContract: BridgeContractProtocolModule,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
static fromDefaults() {
|
|
35
|
+
return SettlementContractModule_1.from(SettlementContractModule_1.mandatoryModules());
|
|
36
|
+
}
|
|
37
|
+
static with(additionalModules) {
|
|
38
|
+
return SettlementContractModule_1.from({
|
|
39
|
+
...SettlementContractModule_1.mandatoryModules(),
|
|
40
|
+
...additionalModules,
|
|
30
41
|
});
|
|
31
42
|
}
|
|
32
|
-
get
|
|
43
|
+
get areProofsEnabled() {
|
|
33
44
|
return this.protocol?.getAreProofsEnabled();
|
|
34
45
|
}
|
|
35
46
|
// **
|
|
@@ -40,32 +51,30 @@ export let SettlementContractModule = SettlementContractModule_1 = class Settlem
|
|
|
40
51
|
noop();
|
|
41
52
|
}
|
|
42
53
|
getContractClasses() {
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
this.
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
const settlement = settlementModule.contractFactory(dispatch);
|
|
51
|
-
return {
|
|
52
|
-
settlement,
|
|
53
|
-
dispatch,
|
|
54
|
-
};
|
|
54
|
+
const contracts =
|
|
55
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
56
|
+
this.moduleNames.map((name) => {
|
|
57
|
+
const module = this.resolve(name);
|
|
58
|
+
return [name, module.contractFactory()];
|
|
59
|
+
});
|
|
60
|
+
return Object.fromEntries(contracts);
|
|
55
61
|
}
|
|
56
62
|
createContracts(addresses) {
|
|
57
|
-
const {
|
|
58
|
-
|
|
59
|
-
const
|
|
60
|
-
// eslint-disable-next-line new-cap
|
|
61
|
-
const settlementInstance = new settlement(addresses.settlement);
|
|
63
|
+
const { DispatchContract, SettlementContract } = this.getContractClasses();
|
|
64
|
+
const dispatchInstance = new DispatchContract(addresses.dispatch);
|
|
65
|
+
const settlementInstance = new SettlementContract(addresses.settlement);
|
|
62
66
|
return {
|
|
63
67
|
dispatch: dispatchInstance,
|
|
64
68
|
settlement: settlementInstance,
|
|
65
69
|
};
|
|
66
70
|
}
|
|
71
|
+
createBridgeContract(address, tokenId) {
|
|
72
|
+
const { BridgeContract } = this.getContractClasses();
|
|
73
|
+
return new BridgeContract(address, tokenId);
|
|
74
|
+
}
|
|
67
75
|
};
|
|
68
76
|
SettlementContractModule = SettlementContractModule_1 = __decorate([
|
|
69
77
|
injectable(),
|
|
70
78
|
__metadata("design:paramtypes", [Object])
|
|
71
79
|
], SettlementContractModule);
|
|
80
|
+
//# sourceMappingURL=SettlementContractModule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettlementContractModule.js","sourceRoot":"","sources":["../../src/settlement/SettlementContractModule.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EAGL,eAAe,EAGf,IAAI,GAEL,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAMtC,OAAO,EAAE,8BAA8B,EAAE,MAAM,4CAA4C,CAAC;AAE5F,OAAO,EAEL,gCAAgC,GACjC,MAAM,8CAA8C,CAAC;AAGtD,OAAO,EAEL,4BAA4B,GAC7B,MAAM,0CAA0C,CAAC;AAkB3C,WAAM,wBAAwB,gCAA9B,MAAM,wBAIX,SAAQ,eAAkC;IAG1C,YAAmB,UAA0C;QAC3D,KAAK,CAAC,UAAU,CAAC,CAAC;IACpB,CAAC;IAEM,MAAM,CAAC,IAAI,CAIhB,OAA0B;QAE1B,OAAO,MAAM,8BAA+B,SAAQ,0BAA2C;YAC7F;gBACE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;YACrB,CAAC;SACF,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,gBAAgB;QAC5B,OAAO;YACL,kBAAkB,EAAE,gCAAgC;YACpD,gBAAgB,EAAE,8BAA8B;YAChD,cAAc,EAAE,4BAA4B;SACpC,CAAC;IACb,CAAC;IAEM,MAAM,CAAC,YAAY;QACxB,OAAO,0BAAwB,CAAC,IAAI,CAClC,0BAAwB,CAAC,gBAAgB,EAAE,CAC5C,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,IAAI,CAChB,iBAAoC;QAEpC,OAAO,0BAAwB,CAAC,IAAI,CAAC;YACnC,GAAG,0BAAwB,CAAC,gBAAgB,EAAE;YAC9C,GAAG,iBAAiB;SACZ,CAAC,CAAC;IACd,CAAC;IAKD,IAAW,gBAAgB;QACzB,OAAO,IAAI,CAAC,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAC9C,CAAC;IACD,KAAK;IAEE,MAAM,CAAC,sBAA8C;QAC1D,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;IACvC,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,IAAI,EAAE,CAAC;IACT,CAAC;IAEM,kBAAkB;QACvB,MAAM,SAAS;QACb,yEAAyE;QACxE,IAAI,CAAC,WAAgD,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAClE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QACL,OAAO,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAEM,eAAe,CAAC,SAGtB;QAIC,MAAM,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE3E,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAClE,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAExE,OAAO;YACL,QAAQ,EAAE,gBAAgB;YAC1B,UAAU,EAAE,kBAAkB;SAC/B,CAAC;IACJ,CAAC;IAEM,oBAAoB,CACzB,OAAkB,EAClB,OAAe;QAEf,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAErD,OAAO,IAAI,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;CACF,CAAA;AAnGY,wBAAwB;IADpC,UAAU,EAAE;;GACA,wBAAwB,CAmGpC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { AccountUpdate, Field, Permissions, PublicKey, SmartContract, State, TokenContractV2, VerificationKey } from "o1js";
|
|
2
|
+
import { TypedClass } from "@proto-kit/common";
|
|
3
|
+
import { OutgoingMessageArgumentBatch } from "../messages/OutgoingMessageArgument";
|
|
4
|
+
import type { SettlementContractType } from "./SettlementSmartContract";
|
|
5
|
+
export type BridgeContractType = {
|
|
6
|
+
stateRoot: State<Field>;
|
|
7
|
+
outgoingMessageCursor: State<Field>;
|
|
8
|
+
rollupOutgoingMessages: (batch: OutgoingMessageArgumentBatch) => Promise<Field>;
|
|
9
|
+
redeem: (additionUpdate: AccountUpdate) => Promise<void>;
|
|
10
|
+
deployProvable: (args: VerificationKey | undefined, signedSettlement: boolean, permissions: Permissions, settlementContractAddress: PublicKey) => Promise<AccountUpdate>;
|
|
11
|
+
updateStateRoot: (root: Field) => Promise<void>;
|
|
12
|
+
};
|
|
13
|
+
declare const OutgoingMessageKey_base: (new (value: {
|
|
14
|
+
index: import("o1js/dist/node/lib/provable/field").Field;
|
|
15
|
+
tokenId: import("o1js/dist/node/lib/provable/field").Field;
|
|
16
|
+
}) => {
|
|
17
|
+
index: import("o1js/dist/node/lib/provable/field").Field;
|
|
18
|
+
tokenId: import("o1js/dist/node/lib/provable/field").Field;
|
|
19
|
+
}) & {
|
|
20
|
+
_isStruct: true;
|
|
21
|
+
} & Omit<import("o1js/dist/node/lib/provable/types/provable-intf").Provable<{
|
|
22
|
+
index: import("o1js/dist/node/lib/provable/field").Field;
|
|
23
|
+
tokenId: import("o1js/dist/node/lib/provable/field").Field;
|
|
24
|
+
}, {
|
|
25
|
+
index: bigint;
|
|
26
|
+
tokenId: bigint;
|
|
27
|
+
}>, "fromFields"> & {
|
|
28
|
+
fromFields: (fields: import("o1js/dist/node/lib/provable/field").Field[]) => {
|
|
29
|
+
index: import("o1js/dist/node/lib/provable/field").Field;
|
|
30
|
+
tokenId: import("o1js/dist/node/lib/provable/field").Field;
|
|
31
|
+
};
|
|
32
|
+
} & {
|
|
33
|
+
fromValue: (value: {
|
|
34
|
+
index: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field;
|
|
35
|
+
tokenId: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field;
|
|
36
|
+
}) => {
|
|
37
|
+
index: import("o1js/dist/node/lib/provable/field").Field;
|
|
38
|
+
tokenId: import("o1js/dist/node/lib/provable/field").Field;
|
|
39
|
+
};
|
|
40
|
+
toInput: (x: {
|
|
41
|
+
index: import("o1js/dist/node/lib/provable/field").Field;
|
|
42
|
+
tokenId: import("o1js/dist/node/lib/provable/field").Field;
|
|
43
|
+
}) => {
|
|
44
|
+
fields?: import("o1js/dist/node/lib/provable/field").Field[] | undefined;
|
|
45
|
+
packed?: [import("o1js/dist/node/lib/provable/field").Field, number][] | undefined;
|
|
46
|
+
};
|
|
47
|
+
toJSON: (x: {
|
|
48
|
+
index: import("o1js/dist/node/lib/provable/field").Field;
|
|
49
|
+
tokenId: import("o1js/dist/node/lib/provable/field").Field;
|
|
50
|
+
}) => {
|
|
51
|
+
index: string;
|
|
52
|
+
tokenId: string;
|
|
53
|
+
};
|
|
54
|
+
fromJSON: (x: {
|
|
55
|
+
index: string;
|
|
56
|
+
tokenId: string;
|
|
57
|
+
}) => {
|
|
58
|
+
index: import("o1js/dist/node/lib/provable/field").Field;
|
|
59
|
+
tokenId: import("o1js/dist/node/lib/provable/field").Field;
|
|
60
|
+
};
|
|
61
|
+
empty: () => {
|
|
62
|
+
index: import("o1js/dist/node/lib/provable/field").Field;
|
|
63
|
+
tokenId: import("o1js/dist/node/lib/provable/field").Field;
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
export declare class OutgoingMessageKey extends OutgoingMessageKey_base {
|
|
67
|
+
}
|
|
68
|
+
export declare abstract class BridgeContractBase extends TokenContractV2 {
|
|
69
|
+
static args: {
|
|
70
|
+
SettlementContract: (TypedClass<SettlementContractType> & typeof SmartContract) | undefined;
|
|
71
|
+
withdrawalStatePath: [string, string];
|
|
72
|
+
};
|
|
73
|
+
abstract settlementContractAddress: State<PublicKey>;
|
|
74
|
+
abstract stateRoot: State<Field>;
|
|
75
|
+
abstract outgoingMessageCursor: State<Field>;
|
|
76
|
+
/**
|
|
77
|
+
* Function to deploy the bridging contract in a provable way, so that it can be
|
|
78
|
+
* a provable process initiated by the settlement contract with a baked-in vk
|
|
79
|
+
*
|
|
80
|
+
* @returns Creates and returns an account update deploying the bridge contract
|
|
81
|
+
*/
|
|
82
|
+
deployProvable(verificationKey: VerificationKey | undefined, signedSettlement: boolean, permissions: Permissions, settlementContractAddress: PublicKey): Promise<AccountUpdate>;
|
|
83
|
+
approveBase(): Promise<void>;
|
|
84
|
+
updateStateRootBase(root: Field): Promise<void>;
|
|
85
|
+
rollupOutgoingMessagesBase(batch: OutgoingMessageArgumentBatch): Promise<Field>;
|
|
86
|
+
protected redeemBase(additionUpdate: AccountUpdate): Promise<void>;
|
|
87
|
+
}
|
|
88
|
+
export declare class BridgeContract extends BridgeContractBase implements BridgeContractType {
|
|
89
|
+
settlementContractAddress: State<PublicKey>;
|
|
90
|
+
stateRoot: State<import("o1js/dist/node/lib/provable/field").Field>;
|
|
91
|
+
outgoingMessageCursor: State<import("o1js/dist/node/lib/provable/field").Field>;
|
|
92
|
+
updateStateRoot(root: Field): Promise<void>;
|
|
93
|
+
rollupOutgoingMessages(batch: OutgoingMessageArgumentBatch): Promise<Field>;
|
|
94
|
+
redeem(additionUpdate: AccountUpdate): Promise<void>;
|
|
95
|
+
}
|
|
96
|
+
export {};
|
|
97
|
+
//# sourceMappingURL=BridgeContract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BridgeContract.d.ts","sourceRoot":"","sources":["../../../src/settlement/contracts/BridgeContract.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAEb,KAAK,EAEL,WAAW,EAGX,SAAS,EACT,aAAa,EACb,KAAK,EAGL,eAAe,EAEf,eAAe,EAChB,MAAM,MAAM,CAAC;AACd,OAAO,EAAe,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAEL,4BAA4B,EAC7B,MAAM,qCAAqC,CAAC;AAI7C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAExE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACxB,qBAAqB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAEpC,sBAAsB,EAAE,CACtB,KAAK,EAAE,4BAA4B,KAChC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,MAAM,EAAE,CAAC,cAAc,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzD,cAAc,EAAE,CACd,IAAI,EAAE,eAAe,GAAG,SAAS,EACjC,gBAAgB,EAAE,OAAO,EACzB,WAAW,EAAE,WAAW,EACxB,yBAAyB,EAAE,SAAS,KACjC,OAAO,CAAC,aAAa,CAAC,CAAC;IAE5B,eAAe,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGF,qBAAa,kBAAmB,SAAQ,uBAGtC;CAAG;AAEL,8BAAsB,kBAAmB,SAAQ,eAAe;IAC9D,OAAc,IAAI,EAAE;QAClB,kBAAkB,EACd,CAAC,UAAU,CAAC,sBAAsB,CAAC,GAAG,OAAO,aAAa,CAAC,GAC3D,SAAS,CAAC;QACd,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACvC,CAAC;IAEF,QAAQ,CAAC,yBAAyB,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAErD,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAEjC,QAAQ,CAAC,qBAAqB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAE7C;;;;;OAKG;IACU,cAAc,CACzB,eAAe,EAAE,eAAe,GAAG,SAAS,EAC5C,gBAAgB,EAAE,OAAO,EACzB,WAAW,EAAE,WAAW,EACxB,yBAAyB,EAAE,SAAS;IAgCzB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,mBAAmB,CAAC,IAAI,EAAE,KAAK;IAkB/B,0BAA0B,CACrC,KAAK,EAAE,4BAA4B,GAClC,OAAO,CAAC,KAAK,CAAC;cAiDD,UAAU,CAAC,cAAc,EAAE,aAAa;CA0BzD;AAED,qBAAa,cACX,SAAQ,kBACR,YAAW,kBAAkB;IAEJ,yBAAyB,mBAAsB;IAEnD,SAAS,2DAAkB;IAE3B,qBAAqB,2DAAkB;IAG/C,eAAe,CAAC,IAAI,EAAE,KAAK;IAK3B,sBAAsB,CACjC,KAAK,EAAE,4BAA4B,GAClC,OAAO,CAAC,KAAK,CAAC;IAKJ,MAAM,CAAC,cAAc,EAAE,aAAa;CAGlD"}
|