@proto-kit/protocol 0.1.1-develop.336 → 0.1.1-develop.455
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/blockmodules/AccountStateModule.d.ts +1 -1
- package/dist/blockmodules/AccountStateModule.d.ts.map +1 -1
- package/dist/blockmodules/BlockHeightHook.d.ts +7 -0
- package/dist/blockmodules/BlockHeightHook.d.ts.map +1 -0
- package/dist/blockmodules/BlockHeightHook.js +16 -0
- package/dist/blockmodules/NoopBlockHook.d.ts +7 -0
- package/dist/blockmodules/NoopBlockHook.d.ts.map +1 -0
- package/dist/blockmodules/NoopBlockHook.js +9 -0
- package/dist/blockmodules/NoopTransactionHook.d.ts +1 -1
- package/dist/blockmodules/NoopTransactionHook.d.ts.map +1 -1
- package/dist/blockmodules/NoopTransactionHook.js +1 -2
- package/dist/hooks/AccountStateHook.d.ts +38 -0
- package/dist/hooks/AccountStateHook.d.ts.map +1 -0
- package/dist/hooks/AccountStateHook.js +36 -0
- package/dist/hooks/BlockHeightHook.d.ts +7 -0
- package/dist/hooks/BlockHeightHook.d.ts.map +1 -0
- package/dist/hooks/BlockHeightHook.js +14 -0
- package/dist/hooks/NoopBlockHook.d.ts +7 -0
- package/dist/hooks/NoopBlockHook.d.ts.map +1 -0
- package/dist/hooks/NoopBlockHook.js +9 -0
- package/dist/hooks/NoopTransactionHook.d.ts +6 -0
- package/dist/hooks/NoopTransactionHook.d.ts.map +1 -0
- package/dist/hooks/NoopTransactionHook.js +4 -0
- package/dist/hooks/TransactionFeeHook.d.ts +16 -0
- package/dist/hooks/TransactionFeeHook.d.ts.map +1 -0
- package/dist/hooks/TransactionFeeHook.js +39 -0
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/model/Option.d.ts +29 -22
- package/dist/model/Option.d.ts.map +1 -1
- package/dist/model/Option.js +51 -45
- package/dist/model/StateTransition.d.ts +4 -2
- package/dist/model/StateTransition.d.ts.map +1 -1
- package/dist/model/StateTransition.js +2 -2
- package/dist/model/network/NetworkState.d.ts +1 -0
- package/dist/model/network/NetworkState.d.ts.map +1 -1
- package/dist/model/network/NetworkState.js +7 -0
- package/dist/protocol/Protocol.d.ts +4 -18
- package/dist/protocol/Protocol.d.ts.map +1 -1
- package/dist/protocol/Protocol.js +20 -9
- package/dist/protocol/ProtocolModule.d.ts +2 -2
- package/dist/protocol/ProtocolModule.d.ts.map +1 -1
- package/dist/protocol/ProtocolModule.js +1 -1
- package/dist/protocol/ProvableBlockHook.d.ts +16 -0
- package/dist/protocol/ProvableBlockHook.d.ts.map +1 -0
- package/dist/protocol/ProvableBlockHook.js +4 -0
- package/dist/protocol/ProvableTransactionHook.d.ts +2 -1
- package/dist/protocol/ProvableTransactionHook.d.ts.map +1 -1
- package/dist/protocol/TransitioningProtocolModule.d.ts +4 -0
- package/dist/protocol/TransitioningProtocolModule.d.ts.map +1 -1
- package/dist/protocol/TransitioningProtocolModule.js +4 -0
- package/dist/prover/block/BlockProvable.d.ts +21 -0
- package/dist/prover/block/BlockProvable.d.ts.map +1 -1
- package/dist/prover/block/BlockProvable.js +3 -1
- package/dist/prover/block/BlockProver.d.ts +9 -4
- package/dist/prover/block/BlockProver.d.ts.map +1 -1
- package/dist/prover/block/BlockProver.js +66 -16
- package/dist/prover/block/BlockTransactionPosition.d.ts +36 -0
- package/dist/prover/block/BlockTransactionPosition.d.ts.map +1 -0
- package/dist/prover/block/BlockTransactionPosition.js +25 -0
- package/dist/prover/statetransition/StateTransitionProver.d.ts +1 -1
- package/dist/prover/statetransition/StateTransitionProver.d.ts.map +1 -1
- package/dist/prover/statetransition/StateTransitionProver.js +4 -5
- package/dist/prover/statetransition/StateTransitionWitnessProvider.d.ts +3 -3
- package/dist/prover/statetransition/StateTransitionWitnessProvider.d.ts.map +1 -1
- package/dist/prover/statetransition/StateTransitionWitnessProvider.js +2 -2
- package/dist/state/State.d.ts +8 -1
- package/dist/state/State.d.ts.map +1 -1
- package/dist/state/State.js +11 -4
- package/dist/state/StateServiceProvider.d.ts +0 -2
- package/dist/state/StateServiceProvider.d.ts.map +1 -1
- package/dist/state/StateServiceProvider.js +5 -17
- package/package.json +3 -2
- package/src/blockmodules/AccountStateModule.ts +2 -2
- package/src/blockmodules/BlockHeightHook.ts +22 -0
- package/src/blockmodules/NoopBlockHook.ts +16 -0
- package/src/blockmodules/NoopTransactionHook.ts +3 -4
- package/src/index.ts +4 -4
- package/src/model/Option.ts +71 -56
- package/src/model/StateTransition.ts +2 -2
- package/src/model/network/NetworkState.ts +8 -0
- package/src/protocol/Protocol.ts +33 -32
- package/src/protocol/ProtocolModule.ts +3 -3
- package/src/protocol/ProvableBlockHook.ts +22 -0
- package/src/protocol/ProvableTransactionHook.ts +4 -1
- package/src/protocol/TransitioningProtocolModule.ts +4 -0
- package/src/prover/block/BlockProvable.ts +4 -2
- package/src/prover/block/BlockProver.ts +134 -21
- package/src/prover/block/BlockTransactionPosition.ts +34 -0
- package/src/prover/statetransition/StateTransitionProver.ts +6 -13
- package/src/prover/statetransition/StateTransitionWitnessProvider.ts +4 -5
- package/src/state/State.ts +11 -4
- package/src/state/StateServiceProvider.ts +2 -10
- package/test/Option.test.ts +64 -0
- package/test/StateTransition.test.ts +1 -1
- package/dist/utils/merkletree/InMemoryMerkleTreeStorage.d.ts +0 -11
- package/dist/utils/merkletree/InMemoryMerkleTreeStorage.d.ts.map +0 -1
- package/dist/utils/merkletree/InMemoryMerkleTreeStorage.js +0 -12
- package/dist/utils/merkletree/MerkleTreeStore.d.ts +0 -11
- package/dist/utils/merkletree/MerkleTreeStore.d.ts.map +0 -1
- package/dist/utils/merkletree/MerkleTreeStore.js +0 -1
- package/dist/utils/merkletree/RollupMerkleTree.d.ts +0 -132
- package/dist/utils/merkletree/RollupMerkleTree.d.ts.map +0 -1
- package/dist/utils/merkletree/RollupMerkleTree.js +0 -251
- package/src/utils/merkletree/InMemoryMerkleTreeStorage.ts +0 -17
- package/src/utils/merkletree/MerkleTreeStore.ts +0 -15
- package/src/utils/merkletree/RollupMerkleTree.ts +0 -275
- package/src/utils/merkletree/VirtualMerkleTreeStore.ts +0 -21
- package/test/utils/MerkleTree.test.ts +0 -82
|
@@ -30,7 +30,7 @@ declare const AccountState_base: (new (value: {
|
|
|
30
30
|
};
|
|
31
31
|
export declare class AccountState extends AccountState_base {
|
|
32
32
|
}
|
|
33
|
-
export declare class AccountStateModule extends ProvableTransactionHook
|
|
33
|
+
export declare class AccountStateModule extends ProvableTransactionHook {
|
|
34
34
|
accountState: StateMap<PublicKey, AccountState>;
|
|
35
35
|
onTransaction({ transaction }: BlockProverExecutionData): void;
|
|
36
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountStateModule.d.ts","sourceRoot":"","sources":["../../src/blockmodules/AccountStateModule.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"AccountStateModule.d.ts","sourceRoot":"","sources":["../../src/blockmodules/AccountStateModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAU,MAAM,EAAE,MAAM,MAAM,CAAC;AAEjD,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,qBAAa,kBAAmB,SAAQ,uBAAuB;IACrC,YAAY,oCAGlC;IAEK,aAAa,CAAC,EAAE,WAAW,EAAE,EAAE,wBAAwB,GAAG,IAAI;CActE"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { NetworkState } from "../model/network/NetworkState";
|
|
2
|
+
import { AfterBlockParameters, BeforeBlockParameters, ProvableBlockHook } from "../protocol/ProvableBlockHook";
|
|
3
|
+
export declare class BlockHeightHook extends ProvableBlockHook<Record<string, never>> {
|
|
4
|
+
afterBlock({ networkState }: AfterBlockParameters): NetworkState;
|
|
5
|
+
beforeBlock(blockData: BeforeBlockParameters): NetworkState;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=BlockHeightHook.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockHeightHook.d.ts","sourceRoot":"","sources":["../../src/blockmodules/BlockHeightHook.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,+BAA+B,CAAC;AAEvC,qBAAa,eAAgB,SAAQ,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpE,UAAU,CAAC,EAAE,YAAY,EAAE,EAAE,oBAAoB,GAAG,YAAY;IAShE,WAAW,CAAC,SAAS,EAAE,qBAAqB,GAAG,YAAY;CAGnE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Provable } from "o1js";
|
|
2
|
+
import { NetworkState } from "../model/network/NetworkState";
|
|
3
|
+
import { ProvableBlockHook, } from "../protocol/ProvableBlockHook";
|
|
4
|
+
export class BlockHeightHook extends ProvableBlockHook {
|
|
5
|
+
afterBlock({ networkState }) {
|
|
6
|
+
Provable.log("afterBlock", networkState);
|
|
7
|
+
return new NetworkState({
|
|
8
|
+
block: {
|
|
9
|
+
height: networkState.block.height.add(1),
|
|
10
|
+
},
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
beforeBlock(blockData) {
|
|
14
|
+
return blockData.networkState;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AfterBlockParameters, BeforeBlockParameters, ProvableBlockHook } from "../protocol/ProvableBlockHook";
|
|
2
|
+
import { NetworkState } from "../model/network/NetworkState";
|
|
3
|
+
export declare class NoopBlockHook extends ProvableBlockHook<Record<string, never>> {
|
|
4
|
+
afterBlock(blockData: AfterBlockParameters): NetworkState;
|
|
5
|
+
beforeBlock(blockData: BeforeBlockParameters): NetworkState;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=NoopBlockHook.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NoopBlockHook.d.ts","sourceRoot":"","sources":["../../src/blockmodules/NoopBlockHook.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,qBAAa,aAAc,SAAQ,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAClE,UAAU,CAAC,SAAS,EAAE,oBAAoB,GAAG,YAAY;IAIzD,WAAW,CAAC,SAAS,EAAE,qBAAqB,GAAG,YAAY;CAGnE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ProvableTransactionHook } from "../protocol/ProvableTransactionHook";
|
|
2
2
|
import { BlockProverExecutionData } from "../prover/block/BlockProvable";
|
|
3
|
-
export declare class NoopTransactionHook extends ProvableTransactionHook
|
|
3
|
+
export declare class NoopTransactionHook extends ProvableTransactionHook {
|
|
4
4
|
onTransaction(executionData: BlockProverExecutionData): void;
|
|
5
5
|
}
|
|
6
6
|
//# sourceMappingURL=NoopTransactionHook.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NoopTransactionHook.d.ts","sourceRoot":"","sources":["../../src/blockmodules/NoopTransactionHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,qBAAa,mBAAoB,SAAQ,uBAAuB
|
|
1
|
+
{"version":3,"file":"NoopTransactionHook.d.ts","sourceRoot":"","sources":["../../src/blockmodules/NoopTransactionHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,qBAAa,mBAAoB,SAAQ,uBAAuB;IACvD,aAAa,CAAC,aAAa,EAAE,wBAAwB,GAAG,IAAI;CACpE"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { PublicKey, UInt64 } from "o1js";
|
|
2
|
+
import { BlockProverExecutionData } from "../prover/block/BlockProvable";
|
|
3
|
+
import { StateMap } from "../state/StateMap";
|
|
4
|
+
import { ProvableTransactionHook } from "../protocol/ProvableTransactionHook";
|
|
5
|
+
declare const AccountState_base: (new (value: {
|
|
6
|
+
nonce: UInt64;
|
|
7
|
+
}) => {
|
|
8
|
+
nonce: UInt64;
|
|
9
|
+
}) & {
|
|
10
|
+
_isStruct: true;
|
|
11
|
+
} & import("o1js/dist/node/snarky").ProvablePure<{
|
|
12
|
+
nonce: UInt64;
|
|
13
|
+
}> & {
|
|
14
|
+
toInput: (x: {
|
|
15
|
+
nonce: UInt64;
|
|
16
|
+
}) => {
|
|
17
|
+
fields?: import("o1js/dist/node/lib/field").Field[] | undefined;
|
|
18
|
+
packed?: [import("o1js/dist/node/lib/field").Field, number][] | undefined;
|
|
19
|
+
};
|
|
20
|
+
toJSON: (x: {
|
|
21
|
+
nonce: UInt64;
|
|
22
|
+
}) => {
|
|
23
|
+
nonce: string;
|
|
24
|
+
};
|
|
25
|
+
fromJSON: (x: {
|
|
26
|
+
nonce: string;
|
|
27
|
+
}) => {
|
|
28
|
+
nonce: UInt64;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
export declare class AccountState extends AccountState_base {
|
|
32
|
+
}
|
|
33
|
+
export declare class AccountStateHook extends ProvableTransactionHook {
|
|
34
|
+
accountState: StateMap<PublicKey, AccountState>;
|
|
35
|
+
onTransaction({ transaction }: BlockProverExecutionData): void;
|
|
36
|
+
}
|
|
37
|
+
export {};
|
|
38
|
+
//# sourceMappingURL=AccountStateHook.d.ts.map
|
|
@@ -0,0 +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;AAEjD,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,qBAAa,gBAAiB,SAAQ,uBAAuB;IACnC,YAAY,oCAGlC;IAEK,aAAa,CAAC,EAAE,WAAW,EAAE,EAAE,wBAAwB,GAAG,IAAI;CActE"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { PublicKey, Struct, UInt64 } from "o1js";
|
|
11
|
+
import { StateMap } from "../state/StateMap";
|
|
12
|
+
import { protocolState } from "../state/protocol/ProtocolState";
|
|
13
|
+
import { ProvableTransactionHook } from "../protocol/ProvableTransactionHook";
|
|
14
|
+
import { assert } from "../state/assert/assert";
|
|
15
|
+
export class AccountState extends Struct({
|
|
16
|
+
nonce: UInt64,
|
|
17
|
+
}) {
|
|
18
|
+
}
|
|
19
|
+
export class AccountStateHook extends ProvableTransactionHook {
|
|
20
|
+
constructor() {
|
|
21
|
+
super(...arguments);
|
|
22
|
+
this.accountState = StateMap.from(PublicKey, AccountState);
|
|
23
|
+
}
|
|
24
|
+
onTransaction({ transaction }) {
|
|
25
|
+
const accountState = this.accountState
|
|
26
|
+
.get(transaction.sender)
|
|
27
|
+
.orElse(new AccountState({ nonce: UInt64.zero }));
|
|
28
|
+
const currentNonce = accountState.nonce;
|
|
29
|
+
assert(currentNonce.equals(transaction.nonce), "Nonce not matching");
|
|
30
|
+
this.accountState.set(transaction.sender, new AccountState({ nonce: currentNonce.add(1) }));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
__decorate([
|
|
34
|
+
protocolState(),
|
|
35
|
+
__metadata("design:type", Object)
|
|
36
|
+
], AccountStateHook.prototype, "accountState", void 0);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { NetworkState } from "../model/network/NetworkState";
|
|
2
|
+
import { AfterBlockParameters, BeforeBlockParameters, ProvableBlockHook } from "../protocol/ProvableBlockHook";
|
|
3
|
+
export declare class BlockHeightHook extends ProvableBlockHook<Record<string, never>> {
|
|
4
|
+
afterBlock({ networkState }: AfterBlockParameters): NetworkState;
|
|
5
|
+
beforeBlock(blockData: BeforeBlockParameters): NetworkState;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=BlockHeightHook.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockHeightHook.d.ts","sourceRoot":"","sources":["../../src/hooks/BlockHeightHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,+BAA+B,CAAC;AAEvC,qBAAa,eAAgB,SAAQ,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpE,UAAU,CAAC,EAAE,YAAY,EAAE,EAAE,oBAAoB,GAAG,YAAY;IAQhE,WAAW,CAAC,SAAS,EAAE,qBAAqB,GAAG,YAAY;CAGnE"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { NetworkState } from "../model/network/NetworkState";
|
|
2
|
+
import { ProvableBlockHook, } from "../protocol/ProvableBlockHook";
|
|
3
|
+
export class BlockHeightHook extends ProvableBlockHook {
|
|
4
|
+
afterBlock({ networkState }) {
|
|
5
|
+
return new NetworkState({
|
|
6
|
+
block: {
|
|
7
|
+
height: networkState.block.height.add(1),
|
|
8
|
+
},
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
beforeBlock(blockData) {
|
|
12
|
+
return blockData.networkState;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AfterBlockParameters, BeforeBlockParameters, ProvableBlockHook } from "../protocol/ProvableBlockHook";
|
|
2
|
+
import { NetworkState } from "../model/network/NetworkState";
|
|
3
|
+
export declare class NoopBlockHook extends ProvableBlockHook<Record<string, never>> {
|
|
4
|
+
afterBlock(blockData: AfterBlockParameters): NetworkState;
|
|
5
|
+
beforeBlock(blockData: BeforeBlockParameters): NetworkState;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=NoopBlockHook.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NoopBlockHook.d.ts","sourceRoot":"","sources":["../../src/hooks/NoopBlockHook.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,qBAAa,aAAc,SAAQ,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAClE,UAAU,CAAC,SAAS,EAAE,oBAAoB,GAAG,YAAY;IAIzD,WAAW,CAAC,SAAS,EAAE,qBAAqB,GAAG,YAAY;CAGnE"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ProvableTransactionHook } from "../protocol/ProvableTransactionHook";
|
|
2
|
+
import { BlockProverExecutionData } from "../prover/block/BlockProvable";
|
|
3
|
+
export declare class NoopTransactionHook extends ProvableTransactionHook {
|
|
4
|
+
onTransaction(executionData: BlockProverExecutionData): void;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=NoopTransactionHook.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NoopTransactionHook.d.ts","sourceRoot":"","sources":["../../src/hooks/NoopTransactionHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,qBAAa,mBAAoB,SAAQ,uBAAuB;IACvD,aAAa,CAAC,aAAa,EAAE,wBAAwB,GAAG,IAAI;CACpE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Runtime, RuntimeModulesRecord } from "@proto-kit/module";
|
|
2
|
+
import { ProvableTransactionHook } from "../protocol/ProvableTransactionHook";
|
|
3
|
+
import { BlockProverExecutionData } from "../prover/block/BlockProvable";
|
|
4
|
+
export declare const treeFeeHeight = 10;
|
|
5
|
+
declare const FeeTree_base: import("@proto-kit/common").AbstractMerkleTreeClass;
|
|
6
|
+
export declare class FeeTree extends FeeTree_base {
|
|
7
|
+
}
|
|
8
|
+
export declare class TransactionFeeHook extends ProvableTransactionHook {
|
|
9
|
+
runtime: Runtime<RuntimeModulesRecord>;
|
|
10
|
+
constructor(runtime: Runtime<RuntimeModulesRecord>);
|
|
11
|
+
feeTree: FeeTree;
|
|
12
|
+
createFeeTree(): FeeTree;
|
|
13
|
+
onTransaction(executionData: BlockProverExecutionData): void;
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=TransactionFeeHook.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransactionFeeHook.d.ts","sourceRoot":"","sources":["../../src/hooks/TransactionFeeHook.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,OAAO,EACP,oBAAoB,EACrB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,eAAO,MAAM,aAAa,KAAK,CAAC;;AAChC,qBAAa,OAAQ,SAAQ,YAA+B;CAAG;AAE/D,qBAAa,kBAAmB,SAAQ,uBAAuB;IAEjC,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC;gBAAtC,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC;IAK3D,OAAO,EAAE,OAAO,CAAwB;IAExC,aAAa;IASb,aAAa,CAAC,aAAa,EAAE,wBAAwB,GAAG,IAAI;CACpE"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
+
};
|
|
13
|
+
var _a;
|
|
14
|
+
/* eslint-disable import/no-unused-modules */
|
|
15
|
+
import { createMerkleTree } from "@proto-kit/common";
|
|
16
|
+
import { Runtime, } from "@proto-kit/module";
|
|
17
|
+
import { inject } from "tsyringe";
|
|
18
|
+
import { ProvableTransactionHook } from "../protocol/ProvableTransactionHook";
|
|
19
|
+
export const treeFeeHeight = 10;
|
|
20
|
+
export class FeeTree extends createMerkleTree(treeFeeHeight) {
|
|
21
|
+
}
|
|
22
|
+
let TransactionFeeHook = class TransactionFeeHook extends ProvableTransactionHook {
|
|
23
|
+
constructor(runtime) {
|
|
24
|
+
this.runtime = runtime;
|
|
25
|
+
this.feeTree = this.createFeeTree();
|
|
26
|
+
;
|
|
27
|
+
}
|
|
28
|
+
createFeeTree() {
|
|
29
|
+
const analyzedMethods = this.runtime.zkProgrammable.zkProgram.analyzeMethods();
|
|
30
|
+
console.log("analyzedMethods", analyzedMethods);
|
|
31
|
+
return new FeeTree();
|
|
32
|
+
}
|
|
33
|
+
onTransaction(executionData) { }
|
|
34
|
+
};
|
|
35
|
+
TransactionFeeHook = __decorate([
|
|
36
|
+
__param(0, inject("Runtime")),
|
|
37
|
+
__metadata("design:paramtypes", [typeof (_a = typeof Runtime !== "undefined" && Runtime) === "function" ? _a : Object])
|
|
38
|
+
], TransactionFeeHook);
|
|
39
|
+
export { TransactionFeeHook };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from "./blockmodules/AccountStateModule";
|
|
2
|
+
export * from "./blockmodules/BlockHeightHook";
|
|
2
3
|
export * from "./utils/ProvableHashList";
|
|
3
4
|
export * from "./model/StateTransition";
|
|
4
5
|
export * from "./model/StateTransitionProvableBatch";
|
|
@@ -11,18 +12,17 @@ export * from "./utils/PrefixedProvableHashList.js";
|
|
|
11
12
|
export * from "./utils/utils";
|
|
12
13
|
export * from "./prover/block/BlockProver";
|
|
13
14
|
export * from "./prover/block/BlockProvable";
|
|
15
|
+
export * from "./prover/block/BlockTransactionPosition";
|
|
14
16
|
export * from "./prover/statetransition/StateTransitionProver";
|
|
15
17
|
export * from "./prover/statetransition/StateTransitionProvable";
|
|
16
18
|
export * from "./prover/statetransition/StateTransitionWitnessProvider";
|
|
17
|
-
export * from "./utils/merkletree/MerkleTreeStore";
|
|
18
|
-
export * from "./utils/merkletree/InMemoryMerkleTreeStorage";
|
|
19
|
-
export * from "./utils/merkletree/RollupMerkleTree";
|
|
20
19
|
export * from "./model/MethodPublicOutput";
|
|
21
20
|
export * from "./prover/statetransition/StateTransitionWitnessProviderReference";
|
|
22
21
|
export * from "./protocol/Protocol";
|
|
23
22
|
export * from "./protocol/ProtocolModule";
|
|
24
|
-
export * from "./protocol/
|
|
23
|
+
export * from "./protocol/ProtocolEnvironment";
|
|
25
24
|
export * from "./protocol/ProvableTransactionHook";
|
|
25
|
+
export * from "./protocol/ProvableBlockHook";
|
|
26
26
|
export * from "./state/context/ProtocolMethodExecutionContext";
|
|
27
27
|
export * from "./state/context/TransitionMethodExecutionContext";
|
|
28
28
|
export * from "./state/context/RuntimeMethodExecutionContext";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sCAAsC,CAAC;AACrD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,qCAAqC,CAAC;AACpD,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gDAAgD,CAAC;AAC/D,cAAc,kDAAkD,CAAC;AACjE,cAAc,yDAAyD,CAAC;AACxE,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sCAAsC,CAAC;AACrD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,qCAAqC,CAAC;AACpD,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yCAAyC,CAAC;AACxD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,kDAAkD,CAAC;AACjE,cAAc,yDAAyD,CAAC;AACxE,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kEAAkE,CAAC;AACjF,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gDAAgD,CAAC;AAC/D,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,OAAO,EAAE,SAAS,IAAI,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from "./blockmodules/AccountStateModule";
|
|
2
|
+
export * from "./blockmodules/BlockHeightHook";
|
|
2
3
|
export * from "./utils/ProvableHashList";
|
|
3
4
|
export * from "./model/StateTransition";
|
|
4
5
|
export * from "./model/StateTransitionProvableBatch";
|
|
@@ -11,18 +12,17 @@ export * from "./utils/PrefixedProvableHashList.js";
|
|
|
11
12
|
export * from "./utils/utils";
|
|
12
13
|
export * from "./prover/block/BlockProver";
|
|
13
14
|
export * from "./prover/block/BlockProvable";
|
|
15
|
+
export * from "./prover/block/BlockTransactionPosition";
|
|
14
16
|
export * from "./prover/statetransition/StateTransitionProver";
|
|
15
17
|
export * from "./prover/statetransition/StateTransitionProvable";
|
|
16
18
|
export * from "./prover/statetransition/StateTransitionWitnessProvider";
|
|
17
|
-
export * from "./utils/merkletree/MerkleTreeStore";
|
|
18
|
-
export * from "./utils/merkletree/InMemoryMerkleTreeStorage";
|
|
19
|
-
export * from "./utils/merkletree/RollupMerkleTree";
|
|
20
19
|
export * from "./model/MethodPublicOutput";
|
|
21
20
|
export * from "./prover/statetransition/StateTransitionWitnessProviderReference";
|
|
22
21
|
export * from "./protocol/Protocol";
|
|
23
22
|
export * from "./protocol/ProtocolModule";
|
|
24
|
-
export * from "./protocol/
|
|
23
|
+
export * from "./protocol/ProtocolEnvironment";
|
|
25
24
|
export * from "./protocol/ProvableTransactionHook";
|
|
25
|
+
export * from "./protocol/ProvableBlockHook";
|
|
26
26
|
export * from "./state/context/ProtocolMethodExecutionContext";
|
|
27
27
|
export * from "./state/context/TransitionMethodExecutionContext";
|
|
28
28
|
export * from "./state/context/RuntimeMethodExecutionContext";
|
package/dist/model/Option.d.ts
CHANGED
|
@@ -36,11 +36,36 @@ declare const ProvableOption_base: (new (value: {
|
|
|
36
36
|
export declare class ProvableOption extends ProvableOption_base {
|
|
37
37
|
toSome(): this;
|
|
38
38
|
}
|
|
39
|
+
export declare abstract class OptionBase {
|
|
40
|
+
isSome: Bool;
|
|
41
|
+
isForcedSome: Bool;
|
|
42
|
+
protected constructor(isSome: Bool, isForcedSome: Bool);
|
|
43
|
+
protected abstract encodeValueToFields(): Field[];
|
|
44
|
+
protected abstract clone(): OptionBase;
|
|
45
|
+
/**
|
|
46
|
+
* @returns Tree representation of the current value
|
|
47
|
+
*/
|
|
48
|
+
get treeValue(): import("o1js/dist/node/lib/field").Field;
|
|
49
|
+
forceSome(): void;
|
|
50
|
+
/**
|
|
51
|
+
* Returns the `to`-value as decoded as a list of fields
|
|
52
|
+
* Not in circuit
|
|
53
|
+
*/
|
|
54
|
+
toFields(): Field[];
|
|
55
|
+
/**
|
|
56
|
+
* @returns Provable representation of the current option.
|
|
57
|
+
*/
|
|
58
|
+
toProvable(): ProvableOption;
|
|
59
|
+
toJSON(): {
|
|
60
|
+
isSome: boolean;
|
|
61
|
+
isForcedSome: boolean;
|
|
62
|
+
value: string[];
|
|
63
|
+
};
|
|
64
|
+
}
|
|
39
65
|
/**
|
|
40
66
|
* Option facilitating in-circuit values that may or may not exist.
|
|
41
67
|
*/
|
|
42
|
-
export declare class Option<Value> {
|
|
43
|
-
isSome: Bool;
|
|
68
|
+
export declare class Option<Value> extends OptionBase {
|
|
44
69
|
value: Value;
|
|
45
70
|
valueType: FlexibleProvablePure<Value>;
|
|
46
71
|
/**
|
|
@@ -64,32 +89,14 @@ export declare class Option<Value> {
|
|
|
64
89
|
* @returns Empty / none option
|
|
65
90
|
*/
|
|
66
91
|
static none(): Option<import("o1js/dist/node/lib/field").Field>;
|
|
67
|
-
|
|
68
|
-
|
|
92
|
+
constructor(isSome: Bool, value: Value, valueType: FlexibleProvablePure<Value>, isForcedSome?: import("o1js/dist/node/lib/bool").Bool);
|
|
93
|
+
encodeValueToFields(): Field[];
|
|
69
94
|
clone(): Option<Value>;
|
|
70
|
-
forceSome(): void;
|
|
71
|
-
/**
|
|
72
|
-
* @returns Tree representation of the current value
|
|
73
|
-
*/
|
|
74
|
-
get treeValue(): import("o1js/dist/node/lib/field").Field;
|
|
75
|
-
/**
|
|
76
|
-
* Returns the `to`-value as decoded as a list of fields
|
|
77
|
-
* Not in circuit
|
|
78
|
-
*/
|
|
79
|
-
toFields(): Field[];
|
|
80
|
-
/**
|
|
81
|
-
* @returns Provable representation of the current option.
|
|
82
|
-
*/
|
|
83
|
-
toProvable(): ProvableOption;
|
|
84
95
|
/**
|
|
85
96
|
* @returns Returns the value of this option if it isSome,
|
|
86
97
|
* otherwise returns the given defaultValue
|
|
87
98
|
*/
|
|
88
99
|
orElse(defaultValue: Value): Value;
|
|
89
|
-
toJSON(): {
|
|
90
|
-
isSome: boolean;
|
|
91
|
-
value: string;
|
|
92
|
-
};
|
|
93
100
|
}
|
|
94
101
|
export {};
|
|
95
102
|
//# sourceMappingURL=Option.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Option.d.ts","sourceRoot":"","sources":["../../src/model/Option.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,KAAK,EACL,KAAK,oBAAoB,EAI1B,MAAM,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEd,qBAAa,cAAe,SAAQ,mBAGlC;IACO,MAAM;CAId;AAED;;GAEG;AACH,qBAAa,MAAM,CAAC,KAAK
|
|
1
|
+
{"version":3,"file":"Option.d.ts","sourceRoot":"","sources":["../../src/model/Option.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,KAAK,EACL,KAAK,oBAAoB,EAI1B,MAAM,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEd,qBAAa,cAAe,SAAQ,mBAGlC;IACO,MAAM;CAId;AAED,8BAAsB,UAAU;IACD,MAAM,EAAE,IAAI;IAAS,YAAY,EAAE,IAAI;IAApE,SAAS,aAAoB,MAAM,EAAE,IAAI,EAAS,YAAY,EAAE,IAAI;IAEpE,SAAS,CAAC,QAAQ,CAAC,mBAAmB,IAAI,KAAK,EAAE;IAEjD,SAAS,CAAC,QAAQ,CAAC,KAAK,IAAI,UAAU;IAEtC;;OAEG;IACH,IAAW,SAAS,6CAQnB;IAEM,SAAS;IAKhB;;;OAGG;IACI,QAAQ,IAAI,KAAK,EAAE;IAO1B;;OAEG;IACI,UAAU;IAOV,MAAM;;;;;CASd;AAED;;GAEG;AACH,qBAAa,MAAM,CAAC,KAAK,CAAE,SAAQ,UAAU;IAwClC,KAAK,EAAE,KAAK;IACZ,SAAS,EAAE,oBAAoB,CAAC,KAAK,CAAC;IAxC/C;;;;;;;OAOG;WACW,IAAI,CAAC,KAAK,EACtB,MAAM,EAAE,IAAI,EACZ,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,oBAAoB,CAAC,KAAK,CAAC;IAKxC;;;;;;OAMG;WACW,SAAS,CAAC,KAAK,EAC3B,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,oBAAoB,CAAC,KAAK,CAAC;IAKxC;;OAEG;WACW,IAAI;gBAKhB,MAAM,EAAE,IAAI,EACL,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,oBAAoB,CAAC,KAAK,CAAC,EAC7C,YAAY,yCAAc;IAKrB,mBAAmB,IAAI,KAAK,EAAE;IAI9B,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC;IAS7B;;;OAGG;IACI,MAAM,CAAC,YAAY,EAAE,KAAK,GAAG,KAAK;CAQ1C"}
|
package/dist/model/Option.js
CHANGED
|
@@ -8,10 +8,54 @@ export class ProvableOption extends Struct({
|
|
|
8
8
|
return this;
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
|
+
export class OptionBase {
|
|
12
|
+
constructor(isSome, isForcedSome) {
|
|
13
|
+
this.isSome = isSome;
|
|
14
|
+
this.isForcedSome = isForcedSome;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* @returns Tree representation of the current value
|
|
18
|
+
*/
|
|
19
|
+
get treeValue() {
|
|
20
|
+
const treeValue = Poseidon.hash(this.encodeValueToFields());
|
|
21
|
+
return Provable.if(this.isSome.and(this.isForcedSome.not()), treeValue, Field(0));
|
|
22
|
+
}
|
|
23
|
+
forceSome() {
|
|
24
|
+
this.isForcedSome = Provable.if(this.isSome, Bool(false), Bool(true));
|
|
25
|
+
this.isSome = Bool(true);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Returns the `to`-value as decoded as a list of fields
|
|
29
|
+
* Not in circuit
|
|
30
|
+
*/
|
|
31
|
+
toFields() {
|
|
32
|
+
if (this.isSome.toBoolean()) {
|
|
33
|
+
return this.encodeValueToFields();
|
|
34
|
+
}
|
|
35
|
+
return [Field(0)];
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* @returns Provable representation of the current option.
|
|
39
|
+
*/
|
|
40
|
+
toProvable() {
|
|
41
|
+
return new ProvableOption({
|
|
42
|
+
isSome: this.isSome,
|
|
43
|
+
value: this.treeValue,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
toJSON() {
|
|
47
|
+
const value = this.encodeValueToFields().map((field) => field.toString());
|
|
48
|
+
return {
|
|
49
|
+
isSome: this.isSome.toBoolean(),
|
|
50
|
+
isForcedSome: this.isForcedSome.toBoolean(),
|
|
51
|
+
value,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
}
|
|
11
55
|
/**
|
|
12
56
|
* Option facilitating in-circuit values that may or may not exist.
|
|
13
57
|
*/
|
|
14
|
-
export class Option {
|
|
58
|
+
export class Option extends OptionBase {
|
|
15
59
|
/**
|
|
16
60
|
* Creates a new Option from the provided parameters
|
|
17
61
|
*
|
|
@@ -39,44 +83,16 @@ export class Option {
|
|
|
39
83
|
static none() {
|
|
40
84
|
return new Option(Bool(false), Field(0), Field);
|
|
41
85
|
}
|
|
42
|
-
constructor(isSome, value, valueType) {
|
|
43
|
-
|
|
86
|
+
constructor(isSome, value, valueType, isForcedSome = Bool(false)) {
|
|
87
|
+
super(isSome, isForcedSome);
|
|
44
88
|
this.value = value;
|
|
45
89
|
this.valueType = valueType;
|
|
46
|
-
this.isForcedSome = Bool(false);
|
|
47
|
-
}
|
|
48
|
-
clone() {
|
|
49
|
-
return new Option(this.isSome, this.value, this.valueType);
|
|
50
90
|
}
|
|
51
|
-
|
|
52
|
-
this.
|
|
53
|
-
this.isSome = Bool(true);
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* @returns Tree representation of the current value
|
|
57
|
-
*/
|
|
58
|
-
get treeValue() {
|
|
59
|
-
const treeValue = Poseidon.hash(this.valueType.toFields(this.value));
|
|
60
|
-
return Provable.if(this.isSome.and(this.isForcedSome.not()), treeValue, Field(0));
|
|
91
|
+
encodeValueToFields() {
|
|
92
|
+
return this.valueType.toFields(this.value);
|
|
61
93
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
* Not in circuit
|
|
65
|
-
*/
|
|
66
|
-
toFields() {
|
|
67
|
-
if (this.isSome.toBoolean()) {
|
|
68
|
-
return this.valueType.toFields(this.value);
|
|
69
|
-
}
|
|
70
|
-
return [Field(0)];
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* @returns Provable representation of the current option.
|
|
74
|
-
*/
|
|
75
|
-
toProvable() {
|
|
76
|
-
return new ProvableOption({
|
|
77
|
-
isSome: this.isSome,
|
|
78
|
-
value: this.treeValue,
|
|
79
|
-
});
|
|
94
|
+
clone() {
|
|
95
|
+
return new Option(this.isSome, this.value, this.valueType, this.isForcedSome);
|
|
80
96
|
}
|
|
81
97
|
/**
|
|
82
98
|
* @returns Returns the value of this option if it isSome,
|
|
@@ -85,14 +101,4 @@ export class Option {
|
|
|
85
101
|
orElse(defaultValue) {
|
|
86
102
|
return Provable.if(this.isSome, this.valueType, this.value, defaultValue);
|
|
87
103
|
}
|
|
88
|
-
toJSON() {
|
|
89
|
-
const valueContent = this.valueType
|
|
90
|
-
.toFields(this.value)
|
|
91
|
-
.map((field) => field.toString())
|
|
92
|
-
.reduce((a, b) => `${a}, ${b}`);
|
|
93
|
-
return {
|
|
94
|
-
isSome: this.isSome.toBoolean(),
|
|
95
|
-
value: `[${valueContent}]`,
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
104
|
}
|
|
@@ -84,11 +84,13 @@ export declare class StateTransition<Value> {
|
|
|
84
84
|
path: string;
|
|
85
85
|
from: {
|
|
86
86
|
isSome: boolean;
|
|
87
|
-
|
|
87
|
+
isForcedSome: boolean;
|
|
88
|
+
value: string[];
|
|
88
89
|
};
|
|
89
90
|
to: {
|
|
90
91
|
isSome: boolean;
|
|
91
|
-
|
|
92
|
+
isForcedSome: boolean;
|
|
93
|
+
value: string[];
|
|
92
94
|
};
|
|
93
95
|
};
|
|
94
96
|
}
|
|
@@ -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,GAAG,MAAM,CAAC,KAAK,CAAC;IACxC,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,GAAG,MAAM,CAAC,KAAK,CAAC,EACxC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;IAG/C,IAAW,IAAI,qEAId;IAED,IAAW,EAAE,qEAEZ;IAED;;;OAGG;IACI,UAAU,IAAI,uBAAuB;IAQrC,MAAM
|
|
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,GAAG,MAAM,CAAC,KAAK,CAAC;IACxC,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,GAAG,MAAM,CAAC,KAAK,CAAC,EACxC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;IAG/C,IAAW,IAAI,qEAId;IAED,IAAW,EAAE,qEAEZ;IAED;;;OAGG;IACI,UAAU,IAAI,uBAAuB;IAQrC,MAAM;;;;;;;;;;;;;CAOd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkState.d.ts","sourceRoot":"","sources":["../../../src/model/network/NetworkState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAoB,MAAM,EAAE,MAAM,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEvD,qBAAa,YAAa,SAAQ,iBAEhC;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEL,qBAAa,YAAa,SAAQ,iBAEhC;IACO,IAAI,IAAI,KAAK;
|
|
1
|
+
{"version":3,"file":"NetworkState.d.ts","sourceRoot":"","sources":["../../../src/model/network/NetworkState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAoB,MAAM,EAAE,MAAM,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEvD,qBAAa,YAAa,SAAQ,iBAEhC;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEL,qBAAa,YAAa,SAAQ,iBAEhC;IACO,IAAI,IAAI,KAAK;WAIN,KAAK;CAOpB"}
|