@mainsail/contracts 0.0.1-evm.41 → 0.0.1-evm.43
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/distribution/contracts/api-sync.d.ts +5 -0
- package/distribution/contracts/api-sync.d.ts.map +1 -1
- package/distribution/contracts/consensus/consensus.d.ts +11 -7
- package/distribution/contracts/consensus/consensus.d.ts.map +1 -1
- package/distribution/contracts/consensus/processor.d.ts +3 -6
- package/distribution/contracts/consensus/processor.d.ts.map +1 -1
- package/distribution/contracts/consensus-storage.d.ts +4 -6
- package/distribution/contracts/consensus-storage.d.ts.map +1 -1
- package/distribution/contracts/crypto/index.d.ts +1 -0
- package/distribution/contracts/crypto/index.d.ts.map +1 -1
- package/distribution/contracts/crypto/messages.d.ts +11 -84
- package/distribution/contracts/crypto/messages.d.ts.map +1 -1
- package/distribution/contracts/crypto/proposal.d.ts +60 -0
- package/distribution/contracts/crypto/proposal.d.ts.map +1 -0
- package/distribution/contracts/p2p/broadcaster.d.ts +2 -3
- package/distribution/contracts/p2p/broadcaster.d.ts.map +1 -1
- package/distribution/contracts/p2p/endpoints.d.ts +3 -10
- package/distribution/contracts/p2p/endpoints.d.ts.map +1 -1
- package/distribution/contracts/p2p/header.d.ts +1 -1
- package/distribution/contracts/p2p/peer-communicator.d.ts +1 -2
- package/distribution/contracts/p2p/peer-communicator.d.ts.map +1 -1
- package/distribution/contracts/validator.d.ts +3 -3
- package/distribution/contracts/validator.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import type { CommitHandler } from "./crypto/commit-handler.js";
|
|
2
|
+
import type { Logger as MainLogger, LoggerContext } from "./kernel/index.js";
|
|
2
3
|
export interface Service extends CommitHandler {
|
|
3
4
|
bootstrap(): Promise<void>;
|
|
4
5
|
beforeCommit(): Promise<void>;
|
|
5
6
|
getLastSyncedBlockHeight(): Promise<number>;
|
|
6
7
|
}
|
|
8
|
+
export interface Logger extends Omit<MainLogger, "dispose" | "suppressConsoleOutput"> {
|
|
9
|
+
warnExtra(message: string, context?: LoggerContext): void;
|
|
10
|
+
debugExtra(message: string, context?: LoggerContext): void;
|
|
11
|
+
}
|
|
7
12
|
//# sourceMappingURL=api-sync.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-sync.d.ts","sourceRoot":"","sources":["../../source/contracts/api-sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"api-sync.d.ts","sourceRoot":"","sources":["../../source/contracts/api-sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE7E,MAAM,WAAW,OAAQ,SAAQ,aAAa;IAC7C,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,wBAAwB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,MAAO,SAAQ,IAAI,CAAC,UAAU,EAAE,SAAS,GAAG,uBAAuB,CAAC;IACpF,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAC1D,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;CAC3D"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AggregatedSignature, Commit,
|
|
1
|
+
import type { AggregatedSignature, Commit, Message, MessageType, Proposal } from "../crypto/index.js";
|
|
2
2
|
import type { ProcessableUnit } from "../processor/index.js";
|
|
3
3
|
import type { ValidatorWallet } from "../state/index.js";
|
|
4
4
|
import type { Step } from "./enums.js";
|
|
@@ -10,18 +10,22 @@ export interface RoundState extends ProcessableUnit {
|
|
|
10
10
|
hasPrevote(validatorIndex: number): boolean;
|
|
11
11
|
hasPrecommit(validatorIndex: number): boolean;
|
|
12
12
|
addProposal(proposal: Proposal): void;
|
|
13
|
-
addPrevote(prevote:
|
|
14
|
-
addPrecommit(precommit:
|
|
13
|
+
addPrevote(prevote: Message): void;
|
|
14
|
+
addPrecommit(precommit: Message): void;
|
|
15
|
+
hasMessage(message: Message): boolean;
|
|
16
|
+
getMessage(validatorIndex: number, type: MessageType): Message | undefined;
|
|
17
|
+
addMessage(message: Message): void;
|
|
15
18
|
hasMajorityPrevotes(): boolean;
|
|
16
19
|
hasMajorityPrevotesAny(): boolean;
|
|
17
20
|
hasMajorityPrevotesNull(): boolean;
|
|
18
21
|
hasMajorityPrecommits(): boolean;
|
|
19
22
|
hasMajorityPrecommitsAny(): boolean;
|
|
20
23
|
hasMinorityPrevotesOrPrecommits(): boolean;
|
|
21
|
-
getPrevote(validatorIndex: number):
|
|
22
|
-
getPrecommit(validatorIndex: number):
|
|
23
|
-
getPrevotes():
|
|
24
|
-
getPrecommits():
|
|
24
|
+
getPrevote(validatorIndex: number): Message | undefined;
|
|
25
|
+
getPrecommit(validatorIndex: number): Message | undefined;
|
|
26
|
+
getPrevotes(): Message[];
|
|
27
|
+
getPrecommits(): Message[];
|
|
28
|
+
getMessages(): Message[];
|
|
25
29
|
getValidator(consensusPublicKey: string): ValidatorWallet;
|
|
26
30
|
getValidatorsSignedPrevote(): readonly boolean[];
|
|
27
31
|
getValidatorsSignedPrecommit(): readonly boolean[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consensus.d.ts","sourceRoot":"","sources":["../../../source/contracts/consensus/consensus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"consensus.d.ts","sourceRoot":"","sources":["../../../source/contracts/consensus/consensus.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
import type { Commit,
|
|
1
|
+
import type { Commit, Message, Proposal } from "../crypto/index.js";
|
|
2
2
|
import type { ProcessorResult } from "./enums.js";
|
|
3
3
|
export interface ProposalProcessor {
|
|
4
4
|
process(proposal: Proposal, broadcast?: boolean): Promise<ProcessorResult>;
|
|
5
5
|
hasValidLockProof(proposal: Proposal): Promise<boolean>;
|
|
6
6
|
}
|
|
7
|
-
export interface
|
|
8
|
-
process(
|
|
9
|
-
}
|
|
10
|
-
export interface PrecommitProcessor {
|
|
11
|
-
process(prevote: Precommit, broadcast?: boolean): Promise<ProcessorResult>;
|
|
7
|
+
export interface MessageProcessor {
|
|
8
|
+
process(message: Message, broadcast?: boolean): Promise<ProcessorResult>;
|
|
12
9
|
}
|
|
13
10
|
export interface CommitProcessor {
|
|
14
11
|
process(commit: Commit, broadcast?: boolean): Promise<ProcessorResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../../../source/contracts/consensus/processor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../../../source/contracts/consensus/processor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,WAAW,iBAAiB;IACjC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC3E,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACxD;AAED,MAAM,WAAW,gBAAgB;IAChC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CACzE;AAED,MAAM,WAAW,eAAe;IAC/B,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACvE,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACpD"}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import type { State, StateData } from "./consensus/index.js";
|
|
2
|
-
import type {
|
|
2
|
+
import type { Message, Proposal } from "./crypto/index.js";
|
|
3
3
|
export interface Service {
|
|
4
|
-
persist({ state, proposals,
|
|
4
|
+
persist({ state, proposals, messages, }: {
|
|
5
5
|
state: State;
|
|
6
6
|
proposals: Proposal[];
|
|
7
|
-
|
|
8
|
-
precommits: Precommit[];
|
|
7
|
+
messages: Message[];
|
|
9
8
|
}): Promise<void>;
|
|
10
9
|
getState(): Promise<StateData | undefined>;
|
|
11
10
|
getProposals(): Promise<Proposal[]>;
|
|
12
|
-
|
|
13
|
-
getPrecommits(): Promise<Precommit[]>;
|
|
11
|
+
getMessages(): Promise<Message[]>;
|
|
14
12
|
}
|
|
15
13
|
//# sourceMappingURL=consensus-storage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consensus-storage.d.ts","sourceRoot":"","sources":["../../source/contracts/consensus-storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"consensus-storage.d.ts","sourceRoot":"","sources":["../../source/contracts/consensus-storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,WAAW,OAAO;IACvB,OAAO,CAAC,EACP,KAAK,EACL,SAAS,EACT,QAAQ,GACR,EAAE;QACF,KAAK,EAAE,KAAK,CAAC;QACb,SAAS,EAAE,QAAQ,EAAE,CAAC;QACtB,QAAQ,EAAE,OAAO,EAAE,CAAC;KACpB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClB,QAAQ,IAAI,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IAC3C,YAAY,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACpC,WAAW,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;CAClC"}
|
|
@@ -8,6 +8,7 @@ export * from "./identities.js";
|
|
|
8
8
|
export * from "./legacy.js";
|
|
9
9
|
export * from "./messages.js";
|
|
10
10
|
export * from "./networks.js";
|
|
11
|
+
export * from "./proposal.js";
|
|
11
12
|
export * from "./signatures.js";
|
|
12
13
|
export * from "./transactions.js";
|
|
13
14
|
export * from "./validator.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../source/contracts/crypto/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../source/contracts/crypto/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC"}
|
|
@@ -1,51 +1,18 @@
|
|
|
1
1
|
import type { Enums } from "@mainsail/constants";
|
|
2
|
-
import type { Block, BlockHeader } from "./block.js";
|
|
3
2
|
import type { KeyPair } from "./identities.js";
|
|
4
|
-
import type { AggregatedSignature } from "./signatures.js";
|
|
5
3
|
export type MessageType = Enums.Crypto.MessageType;
|
|
6
4
|
export interface SignatureMessageData {
|
|
7
5
|
readonly type: MessageType;
|
|
8
6
|
readonly blockNumber: number;
|
|
9
7
|
readonly round: number;
|
|
10
|
-
readonly blockHash
|
|
8
|
+
readonly blockHash?: string;
|
|
11
9
|
}
|
|
12
10
|
export type HasBlockHash = {
|
|
13
11
|
blockHash: string;
|
|
14
12
|
};
|
|
15
13
|
export type WithoutBlockHash<T> = Omit<T, "blockHash">;
|
|
16
14
|
export type WithOptionalBlockHash<T extends HasBlockHash> = WithoutBlockHash<T> & Partial<Pick<T, "blockHash">>;
|
|
17
|
-
export
|
|
18
|
-
export type SignaturePrecommitData = WithOptionalBlockHash<SignatureMessageData>;
|
|
19
|
-
export interface ProposalData {
|
|
20
|
-
readonly blockHeader: BlockHeader;
|
|
21
|
-
readonly lockProof?: AggregatedSignature;
|
|
22
|
-
readonly round: number;
|
|
23
|
-
readonly data: {
|
|
24
|
-
serialized: string;
|
|
25
|
-
};
|
|
26
|
-
readonly validatorIndex: number;
|
|
27
|
-
readonly validRound?: number;
|
|
28
|
-
readonly signature: string;
|
|
29
|
-
}
|
|
30
|
-
export interface SerializableProposalData {
|
|
31
|
-
readonly round: number;
|
|
32
|
-
readonly validRound?: number;
|
|
33
|
-
readonly data: {
|
|
34
|
-
serialized: string;
|
|
35
|
-
};
|
|
36
|
-
readonly validatorIndex: number;
|
|
37
|
-
readonly signature?: string;
|
|
38
|
-
}
|
|
39
|
-
export interface Proposal extends Omit<ProposalData, "data"> {
|
|
40
|
-
isDataDeserialized: boolean;
|
|
41
|
-
readonly serialized: Buffer;
|
|
42
|
-
deserializeData(): Promise<void>;
|
|
43
|
-
getData(): ProposedData;
|
|
44
|
-
toSerializableData(): SerializableProposalData;
|
|
45
|
-
toData(): ProposalData;
|
|
46
|
-
toString(): string;
|
|
47
|
-
}
|
|
48
|
-
export interface PrevoteData {
|
|
15
|
+
export interface MessageData {
|
|
49
16
|
readonly type: MessageType;
|
|
50
17
|
readonly blockNumber: number;
|
|
51
18
|
readonly round: number;
|
|
@@ -53,68 +20,28 @@ export interface PrevoteData {
|
|
|
53
20
|
readonly validatorIndex: number;
|
|
54
21
|
readonly signature: string;
|
|
55
22
|
}
|
|
56
|
-
export interface
|
|
23
|
+
export interface Message extends MessageData {
|
|
57
24
|
readonly serialized: Buffer;
|
|
58
|
-
toSignatureData():
|
|
25
|
+
toSignatureData(): SignatureMessageData;
|
|
59
26
|
toString(): string;
|
|
60
27
|
}
|
|
61
|
-
export interface PrecommitData {
|
|
62
|
-
readonly type: MessageType;
|
|
63
|
-
readonly blockNumber: number;
|
|
64
|
-
readonly round: number;
|
|
65
|
-
readonly blockHash?: string;
|
|
66
|
-
readonly validatorIndex: number;
|
|
67
|
-
readonly signature: string;
|
|
68
|
-
}
|
|
69
|
-
export interface Precommit extends PrecommitData {
|
|
70
|
-
readonly serialized: Buffer;
|
|
71
|
-
toSignatureData(): SignaturePrecommitData;
|
|
72
|
-
toString(): string;
|
|
73
|
-
}
|
|
74
|
-
export interface ProposedData {
|
|
75
|
-
readonly block: Block;
|
|
76
|
-
readonly lockProof?: AggregatedSignature;
|
|
77
|
-
readonly serialized: string;
|
|
78
|
-
}
|
|
79
|
-
export type ProposedBlockSerializable = Omit<ProposedData, "serialized">;
|
|
80
|
-
export interface SerializeProposalOptions {
|
|
81
|
-
includeSignature?: boolean;
|
|
82
|
-
}
|
|
83
28
|
export type HasSignature = {
|
|
84
29
|
signature: string;
|
|
85
30
|
};
|
|
86
31
|
export type WithoutSignature<T> = Omit<T, "signature">;
|
|
87
32
|
export type OptionalSignature<T extends HasSignature> = WithoutSignature<T> & Partial<Pick<T, "signature">>;
|
|
88
|
-
export type
|
|
89
|
-
export type MakePrevoteData = WithoutSignature<PrevoteData>;
|
|
90
|
-
export type MakePrecommitData = WithoutSignature<PrecommitData>;
|
|
33
|
+
export type MakeMessageData = WithoutSignature<MessageData>;
|
|
91
34
|
export interface MessageFactory {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
makeProposedDataFromBytes(data: Buffer): Promise<ProposedData>;
|
|
96
|
-
makePrevote(data: MakePrevoteData, keyPair: KeyPair): Promise<Prevote>;
|
|
97
|
-
makePrevoteFromBytes(data: Buffer): Promise<Prevote>;
|
|
98
|
-
makePrevoteFromData(data: PrevoteData): Promise<Prevote>;
|
|
99
|
-
makePrecommit(data: MakePrecommitData, keyPair: KeyPair): Promise<Precommit>;
|
|
100
|
-
makePrecommitFromBytes(data: Buffer): Promise<Precommit>;
|
|
101
|
-
makePrecommitFromData(data: PrecommitData): Promise<Precommit>;
|
|
35
|
+
makeMessage(data: MakeMessageData, keyPair: KeyPair): Promise<Message>;
|
|
36
|
+
makeMessageFromBytes(data: Buffer): Promise<Message>;
|
|
37
|
+
makeMessageFromData(data: MessageData): Promise<Message>;
|
|
102
38
|
}
|
|
103
39
|
export interface MessageSerializer {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
serializePrevoteForSignature(prevote: SignaturePrevoteData): Promise<Buffer>;
|
|
107
|
-
serializePrecommit(precommit: PrecommitData): Promise<Buffer>;
|
|
108
|
-
serializePrecommitForSignature(precommit: SignaturePrecommitData): Promise<Buffer>;
|
|
109
|
-
serializeProposed(proposedBlock: ProposedBlockSerializable): Promise<Buffer>;
|
|
110
|
-
serializeLockProof(proof: AggregatedSignature): Promise<Buffer>;
|
|
111
|
-
lockProofSize(): number;
|
|
40
|
+
serializeMessage(message: MessageData): Promise<Buffer>;
|
|
41
|
+
serializeMessageForSignature(message: SignatureMessageData): Promise<Buffer>;
|
|
112
42
|
}
|
|
113
43
|
export interface MessageDeserializer {
|
|
114
|
-
|
|
115
|
-
deserializePrevote(serialized: Buffer): Promise<PrevoteData>;
|
|
116
|
-
deserializePrecommit(serialized: Buffer): Promise<PrecommitData>;
|
|
117
|
-
deserializeLockProof(serialized: Buffer): Promise<AggregatedSignature>;
|
|
44
|
+
deserializeMessage(serialized: Buffer): Promise<MessageData>;
|
|
118
45
|
}
|
|
119
46
|
export interface MessageVerificationResult {
|
|
120
47
|
readonly verified: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../source/contracts/crypto/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../source/contracts/crypto/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC;AAEnD,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,MAAM,YAAY,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AACjD,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;AACvD,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,YAAY,IAAI,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;AAEhH,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,OAAQ,SAAQ,WAAW;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,eAAe,IAAI,oBAAoB,CAAC;IACxC,QAAQ,IAAI,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,YAAY,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AACjD,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;AACvD,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,YAAY,IAAI,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;AAC5G,MAAM,MAAM,eAAe,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;AAE5D,MAAM,WAAW,cAAc;IAC9B,WAAW,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvE,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,mBAAmB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,iBAAiB;IACjC,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACxD,4BAA4B,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7E;AAED,MAAM,WAAW,mBAAmB;IACnC,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,yBAAyB;IACzC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;CAC1B"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { Block, BlockHeader } from "./block.js";
|
|
2
|
+
import type { KeyPair } from "./identities.js";
|
|
3
|
+
import type { AggregatedSignature } from "./signatures.js";
|
|
4
|
+
type WithoutSignature<T> = Omit<T, "signature">;
|
|
5
|
+
export type MakeProposalData = WithoutSignature<SerializableProposalData>;
|
|
6
|
+
export interface ProposalData {
|
|
7
|
+
readonly blockHeader: BlockHeader;
|
|
8
|
+
readonly lockProof?: AggregatedSignature;
|
|
9
|
+
readonly round: number;
|
|
10
|
+
readonly data: {
|
|
11
|
+
serialized: string;
|
|
12
|
+
};
|
|
13
|
+
readonly validatorIndex: number;
|
|
14
|
+
readonly validRound?: number;
|
|
15
|
+
readonly signature: string;
|
|
16
|
+
}
|
|
17
|
+
export interface SerializableProposalData {
|
|
18
|
+
readonly round: number;
|
|
19
|
+
readonly validRound?: number;
|
|
20
|
+
readonly data: {
|
|
21
|
+
serialized: string;
|
|
22
|
+
};
|
|
23
|
+
readonly validatorIndex: number;
|
|
24
|
+
readonly signature?: string;
|
|
25
|
+
}
|
|
26
|
+
export interface ProposedData {
|
|
27
|
+
readonly block: Block;
|
|
28
|
+
readonly lockProof?: AggregatedSignature;
|
|
29
|
+
readonly serialized: string;
|
|
30
|
+
}
|
|
31
|
+
export type ProposedBlockSerializable = Omit<ProposedData, "serialized">;
|
|
32
|
+
export interface Proposal extends Omit<ProposalData, "data"> {
|
|
33
|
+
isDataDeserialized: boolean;
|
|
34
|
+
readonly serialized: Buffer;
|
|
35
|
+
deserializeData(): Promise<void>;
|
|
36
|
+
getData(): ProposedData;
|
|
37
|
+
toSerializableData(): SerializableProposalData;
|
|
38
|
+
toData(): ProposalData;
|
|
39
|
+
toString(): string;
|
|
40
|
+
}
|
|
41
|
+
export interface ProposalFactory {
|
|
42
|
+
makeProposal(data: MakeProposalData, keyPair: KeyPair): Promise<Proposal>;
|
|
43
|
+
makeProposalFromBytes(data: Buffer): Promise<Proposal>;
|
|
44
|
+
makeProposalFromData(data: ProposalData): Promise<Proposal>;
|
|
45
|
+
makeProposedDataFromBytes(data: Buffer): Promise<ProposedData>;
|
|
46
|
+
}
|
|
47
|
+
export interface SerializeProposalOptions {
|
|
48
|
+
includeSignature?: boolean;
|
|
49
|
+
}
|
|
50
|
+
export interface ProposalSerializer {
|
|
51
|
+
serializeProposal(proposal: SerializableProposalData, options: SerializeProposalOptions): Promise<Buffer>;
|
|
52
|
+
serializeProposed(proposedBlock: ProposedBlockSerializable): Promise<Buffer>;
|
|
53
|
+
serializeLockProof(proof: AggregatedSignature): Promise<Buffer>;
|
|
54
|
+
}
|
|
55
|
+
export interface ProposalDeserializer {
|
|
56
|
+
deserializeProposal(serialized: Buffer): Promise<ProposalData>;
|
|
57
|
+
deserializeLockProof(serialized: Buffer): Promise<AggregatedSignature>;
|
|
58
|
+
}
|
|
59
|
+
export {};
|
|
60
|
+
//# sourceMappingURL=proposal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proposal.d.ts","sourceRoot":"","sources":["../../../source/contracts/crypto/proposal.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Message, Proposal } from "../crypto/index.js";
|
|
2
2
|
export interface Broadcaster {
|
|
3
3
|
broadcastProposal(proposal: Proposal): Promise<void>;
|
|
4
|
-
|
|
5
|
-
broadcastPrecommit(precommit: Precommit): Promise<void>;
|
|
4
|
+
broadcastMessage(message: Message): Promise<void>;
|
|
6
5
|
}
|
|
7
6
|
//# sourceMappingURL=broadcaster.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broadcaster.d.ts","sourceRoot":"","sources":["../../../source/contracts/p2p/broadcaster.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"broadcaster.d.ts","sourceRoot":"","sources":["../../../source/contracts/p2p/broadcaster.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE5D,MAAM,WAAW,WAAW;IAC3B,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD"}
|
|
@@ -60,20 +60,13 @@ export interface GetApiNodesResponse extends Response {
|
|
|
60
60
|
export interface GetProposalResponse extends Response {
|
|
61
61
|
proposal: Buffer;
|
|
62
62
|
}
|
|
63
|
-
export interface
|
|
63
|
+
export interface PostMessageRequest extends Request {
|
|
64
64
|
payload: {
|
|
65
65
|
headers: HeaderData;
|
|
66
|
-
|
|
66
|
+
message: Buffer;
|
|
67
67
|
};
|
|
68
68
|
}
|
|
69
|
-
export type
|
|
70
|
-
export interface PostPrevoteRequest extends Request {
|
|
71
|
-
payload: {
|
|
72
|
-
headers: HeaderData;
|
|
73
|
-
prevote: Buffer;
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
export type PostPrevoteResponse = Response;
|
|
69
|
+
export type PostMessageResponse = Response;
|
|
77
70
|
export interface PostProposalRequest extends Request {
|
|
78
71
|
payload: {
|
|
79
72
|
headers: HeaderData;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../../../source/contracts/p2p/endpoints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AAEnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,MAAM,WAAW,OAAQ,SAAQ,IAAI,CAAC,OAAO;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE;QACR,OAAO,EAAE,UAAU,CAAC;KACpB,CAAC;CACF;AAED,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,QAAQ,CAAE,SAAQ,aAAa;IACpE,IAAI,EAAE,CAAC,CAAC;CACR;AAED,MAAM,WAAW,QAAQ;IACxB,OAAO,CAAC,EAAE,UAAU,CAAC;CACrB;AAED,MAAM,WAAW,gBAAiB,SAAQ,OAAO;IAChD,OAAO,EAAE;QACR,OAAO,EAAE,UAAU,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;KACd,CAAC;CACF;AAED,MAAM,WAAW,iBAAkB,SAAQ,QAAQ;IAClD,MAAM,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,kBAAmB,SAAQ,OAAO;IAClD,OAAO,EAAE;QACR,OAAO,EAAE,UAAU,CAAC;KACpB,CAAC;CACF;AAED,MAAM,WAAW,mBAAoB,SAAQ,QAAQ;IACpD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,gBAAiB,SAAQ,QAAQ;IACjD,KAAK,EAAE,aAAa,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,iBAAkB,SAAQ,QAAQ;IAClD,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC;CACnB;AAED,MAAM,WAAW,kBAAmB,SAAQ,OAAO;IAClD,OAAO,EAAE;QACR,OAAO,EAAE,UAAU,CAAC;KACpB,CAAC;CACF;AAED,MAAM,WAAW,kBAAmB,SAAQ,OAAO;IAClD,OAAO,EAAE;QACR,OAAO,EAAE,UAAU,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;KACd,CAAC;CACF;AAED,MAAM,WAAW,mBAAoB,SAAQ,QAAQ;IACpD,QAAQ,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAoB,SAAQ,QAAQ;IACpD,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../../../source/contracts/p2p/endpoints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AAEnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,MAAM,WAAW,OAAQ,SAAQ,IAAI,CAAC,OAAO;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE;QACR,OAAO,EAAE,UAAU,CAAC;KACpB,CAAC;CACF;AAED,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,QAAQ,CAAE,SAAQ,aAAa;IACpE,IAAI,EAAE,CAAC,CAAC;CACR;AAED,MAAM,WAAW,QAAQ;IACxB,OAAO,CAAC,EAAE,UAAU,CAAC;CACrB;AAED,MAAM,WAAW,gBAAiB,SAAQ,OAAO;IAChD,OAAO,EAAE;QACR,OAAO,EAAE,UAAU,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;KACd,CAAC;CACF;AAED,MAAM,WAAW,iBAAkB,SAAQ,QAAQ;IAClD,MAAM,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,kBAAmB,SAAQ,OAAO;IAClD,OAAO,EAAE;QACR,OAAO,EAAE,UAAU,CAAC;KACpB,CAAC;CACF;AAED,MAAM,WAAW,mBAAoB,SAAQ,QAAQ;IACpD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,gBAAiB,SAAQ,QAAQ;IACjD,KAAK,EAAE,aAAa,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,iBAAkB,SAAQ,QAAQ;IAClD,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC;CACnB;AAED,MAAM,WAAW,kBAAmB,SAAQ,OAAO;IAClD,OAAO,EAAE;QACR,OAAO,EAAE,UAAU,CAAC;KACpB,CAAC;CACF;AAED,MAAM,WAAW,kBAAmB,SAAQ,OAAO;IAClD,OAAO,EAAE;QACR,OAAO,EAAE,UAAU,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;KACd,CAAC;CACF;AAED,MAAM,WAAW,mBAAoB,SAAQ,QAAQ;IACpD,QAAQ,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAoB,SAAQ,QAAQ;IACpD,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAmB,SAAQ,OAAO;IAClD,OAAO,EAAE;QACR,OAAO,EAAE,UAAU,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;KAChB,CAAC;CACF;AAED,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;AAE3C,MAAM,WAAW,mBAAoB,SAAQ,OAAO;IACnD,OAAO,EAAE;QACR,OAAO,EAAE,UAAU,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KACjB,CAAC;CACF;AAED,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC"}
|
|
@@ -5,8 +5,7 @@ export type EmitOptions = {
|
|
|
5
5
|
};
|
|
6
6
|
export interface PeerCommunicator {
|
|
7
7
|
postProposal(peer: Peer, proposal: Buffer): Promise<void>;
|
|
8
|
-
|
|
9
|
-
postPrecommit(peer: Peer, prevote: Buffer): Promise<void>;
|
|
8
|
+
postMessage(peer: Peer, message: Buffer): Promise<void>;
|
|
10
9
|
pingPorts(peer: Peer): Promise<void>;
|
|
11
10
|
getPeers(peer: Peer): Promise<GetPeersResponse>;
|
|
12
11
|
getApiNodes(peer: Peer): Promise<GetApiNodesResponse>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peer-communicator.d.ts","sourceRoot":"","sources":["../../../source/contracts/p2p/peer-communicator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,MAAM,WAAW,GAAG;IACzB,OAAO,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAChC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"peer-communicator.d.ts","sourceRoot":"","sources":["../../../source/contracts/p2p/peer-communicator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,MAAM,WAAW,GAAG;IACzB,OAAO,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAChC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAChD,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACtD,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACtD,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACtD,SAAS,CACR,IAAI,EAAE,IAAI,EACV,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EACvE,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAC5B,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9B,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAClF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AggregatedSignature, Block, KeyPair,
|
|
1
|
+
import type { AggregatedSignature, Block, KeyPair, Message, Proposal } from "./crypto/index.js";
|
|
2
2
|
export interface ValidatorKeyPair {
|
|
3
3
|
readonly publicKey: string;
|
|
4
4
|
getKeyPair(): Promise<KeyPair>;
|
|
@@ -8,8 +8,8 @@ export interface Validator {
|
|
|
8
8
|
getConsensusPublicKey(): string;
|
|
9
9
|
prepareBlock(generatorAddress: string, round: number, timestamp: number): Promise<Block>;
|
|
10
10
|
propose(validatorIndex: number, round: number, validRound: number | undefined, block: Block, lockProof?: AggregatedSignature): Promise<Proposal>;
|
|
11
|
-
prevote(validatorIndex: number, blockHeight: number, round: number, blockHash: string | undefined): Promise<
|
|
12
|
-
precommit(validatorIndex: number, blockHeight: number, round: number, blockHash: string | undefined): Promise<
|
|
11
|
+
prevote(validatorIndex: number, blockHeight: number, round: number, blockHash: string | undefined): Promise<Message>;
|
|
12
|
+
precommit(validatorIndex: number, blockHeight: number, round: number, blockHash: string | undefined): Promise<Message>;
|
|
13
13
|
}
|
|
14
14
|
export interface ValidatorRepository {
|
|
15
15
|
getValidator(publicKey: string): Validator | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../source/contracts/validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../source/contracts/validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEhG,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,SAAS;IACzB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAChD,qBAAqB,IAAI,MAAM,CAAC;IAChC,YAAY,CAAC,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACzF,OAAO,CACN,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,KAAK,EAAE,KAAK,EACZ,SAAS,CAAC,EAAE,mBAAmB,GAC7B,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrB,OAAO,CACN,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAAG,SAAS,GAC3B,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,SAAS,CACR,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAAG,SAAS,GAC3B,OAAO,CAAC,OAAO,CAAC,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IACnC,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IACvD,qBAAqB,IAAI,IAAI,CAAC;CAC9B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mainsail/contracts",
|
|
3
|
-
"version": "0.0.1-evm.
|
|
3
|
+
"version": "0.0.1-evm.43",
|
|
4
4
|
"description": "Contracts for the Mainsail blockchain",
|
|
5
5
|
"license": "GPL-3.0-only",
|
|
6
6
|
"contributors": [],
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
"joi": "18.0.0",
|
|
19
19
|
"type-fest": "4.41.0",
|
|
20
20
|
"viem": "2.33.1",
|
|
21
|
-
"@mainsail/constants": "0.0.1-evm.
|
|
22
|
-
"@mainsail/utils": "0.0.1-evm.
|
|
21
|
+
"@mainsail/constants": "0.0.1-evm.43",
|
|
22
|
+
"@mainsail/utils": "0.0.1-evm.43"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"uvu": "0.5.6"
|