DisputeState types (#3937)

This commit is contained in:
Jaco
2021-09-07 09:43:52 +02:00
committed by GitHub
parent d3b90c068f
commit 2cfd2f4d20
5 changed files with 75 additions and 31 deletions
+1
View File
@@ -4,6 +4,7 @@
Changes: Changes:
- Additional types for parachain Disputes
- Add Polkadot 9090 upgrade block - Add Polkadot 9090 upgrade block
+6
View File
@@ -48,6 +48,9 @@ const typesModules: Record<string, OverrideModuleType> = {
inclusion: { inclusion: {
ValidatorIndex: 'ParaValidatorIndex' ValidatorIndex: 'ParaValidatorIndex'
}, },
paraDisputes: {
ValidatorIndex: 'ParaValidatorIndex'
},
paraInclusion: { paraInclusion: {
ValidatorIndex: 'ParaValidatorIndex' ValidatorIndex: 'ParaValidatorIndex'
}, },
@@ -60,6 +63,9 @@ const typesModules: Record<string, OverrideModuleType> = {
parachains: { parachains: {
Id: 'ParaId' Id: 'ParaId'
}, },
parasDisputes: {
ValidatorIndex: 'ParaValidatorIndex'
},
parasInclusion: { parasInclusion: {
ValidatorIndex: 'ParaValidatorIndex' ValidatorIndex: 'ParaValidatorIndex'
}, },
+4 -1
View File
@@ -36,7 +36,7 @@ import type { ErrorMetadataLatest, ErrorMetadataV10, ErrorMetadataV11, ErrorMeta
import type { MmrLeafProof } from '@polkadot/types/interfaces/mmr'; import type { MmrLeafProof } from '@polkadot/types/interfaces/mmr';
import type { StorageKind } from '@polkadot/types/interfaces/offchain'; import type { StorageKind } from '@polkadot/types/interfaces/offchain';
import type { DeferredOffenceOf, Kind, OffenceDetails, Offender, OpaqueTimeSlot, ReportIdOf, Reporter } from '@polkadot/types/interfaces/offences'; import type { DeferredOffenceOf, Kind, OffenceDetails, Offender, OpaqueTimeSlot, ReportIdOf, Reporter } from '@polkadot/types/interfaces/offences';
import type { AbridgedCandidateReceipt, AbridgedHostConfiguration, AbridgedHrmpChannel, AssignmentId, AssignmentKind, AttestedCandidate, AuctionIndex, AuthorityDiscoveryId, AvailabilityBitfield, AvailabilityBitfieldRecord, BackedCandidate, Bidder, BufferedSessionChange, CandidateCommitments, CandidateDescriptor, CandidateHash, CandidateInfo, CandidatePendingAvailability, CandidateReceipt, CollatorId, CollatorSignature, CommittedCandidateReceipt, CoreAssignment, CoreIndex, CoreOccupied, DisputeStatement, DisputeStatementSet, DoubleVoteReport, DownwardMessage, ExplicitDisputeStatement, GlobalValidationData, GlobalValidationSchedule, GroupIndex, HeadData, HostConfiguration, HrmpChannel, HrmpChannelId, HrmpOpenChannelRequest, InboundDownwardMessage, InboundHrmpMessage, InboundHrmpMessages, IncomingParachain, IncomingParachainDeploy, IncomingParachainFixed, InvalidDisputeStatementKind, LeasePeriod, LeasePeriodOf, LocalValidationData, MessageIngestionType, MessageQueueChain, MessagingStateSnapshot, MessagingStateSnapshotEgressEntry, MultiDisputeStatementSet, NewBidder, OutboundHrmpMessage, ParaGenesisArgs, ParaId, ParaInfo, ParaLifecycle, ParaPastCodeMeta, ParaScheduling, ParaValidatorIndex, ParachainDispatchOrigin, ParachainInherentData, ParachainProposal, ParachainsInherentData, ParathreadClaim, ParathreadClaimQueue, ParathreadEntry, PersistedValidationData, QueuedParathread, RegisteredParachainInfo, RelayBlockNumber, RelayChainBlockNumber, RelayChainHash, RelayHash, Remark, ReplacementTimes, Retriable, Scheduling, ServiceQuality, SessionInfo, SessionInfoValidatorGroup, SignedAvailabilityBitfield, SignedAvailabilityBitfields, SigningContext, SlotRange, Statement, SubId, SystemInherentData, TransientValidationData, UpgradeGoAhead, UpgradeRestriction, UpwardMessage, ValidDisputeStatementKind, ValidationCode, ValidationCodeHash, ValidationData, ValidationDataType, ValidationFunctionParams, ValidatorSignature, ValidityAttestation, VecInboundHrmpMessage, WinnersData, WinnersDataTuple, WinningData, WinningDataEntry } from '@polkadot/types/interfaces/parachains'; import type { AbridgedCandidateReceipt, AbridgedHostConfiguration, AbridgedHrmpChannel, AssignmentId, AssignmentKind, AttestedCandidate, AuctionIndex, AuthorityDiscoveryId, AvailabilityBitfield, AvailabilityBitfieldRecord, BackedCandidate, Bidder, BufferedSessionChange, CandidateCommitments, CandidateDescriptor, CandidateHash, CandidateInfo, CandidatePendingAvailability, CandidateReceipt, CollatorId, CollatorSignature, CommittedCandidateReceipt, CoreAssignment, CoreIndex, CoreOccupied, DisputeLocation, DisputeResult, DisputeState, DisputeStatement, DisputeStatementSet, DoubleVoteReport, DownwardMessage, ExplicitDisputeStatement, GlobalValidationData, GlobalValidationSchedule, GroupIndex, HeadData, HostConfiguration, HrmpChannel, HrmpChannelId, HrmpOpenChannelRequest, InboundDownwardMessage, InboundHrmpMessage, InboundHrmpMessages, IncomingParachain, IncomingParachainDeploy, IncomingParachainFixed, InvalidDisputeStatementKind, LeasePeriod, LeasePeriodOf, LocalValidationData, MessageIngestionType, MessageQueueChain, MessagingStateSnapshot, MessagingStateSnapshotEgressEntry, MultiDisputeStatementSet, NewBidder, OutboundHrmpMessage, ParaGenesisArgs, ParaId, ParaInfo, ParaLifecycle, ParaPastCodeMeta, ParaScheduling, ParaValidatorIndex, ParachainDispatchOrigin, ParachainInherentData, ParachainProposal, ParachainsInherentData, ParathreadClaim, ParathreadClaimQueue, ParathreadEntry, PersistedValidationData, QueuedParathread, RegisteredParachainInfo, RelayBlockNumber, RelayChainBlockNumber, RelayChainHash, RelayHash, Remark, ReplacementTimes, Retriable, Scheduling, ServiceQuality, SessionInfo, SessionInfoValidatorGroup, SignedAvailabilityBitfield, SignedAvailabilityBitfields, SigningContext, SlotRange, Statement, SubId, SystemInherentData, TransientValidationData, UpgradeGoAhead, UpgradeRestriction, UpwardMessage, ValidDisputeStatementKind, ValidationCode, ValidationCodeHash, ValidationData, ValidationDataType, ValidationFunctionParams, ValidatorSignature, ValidityAttestation, VecInboundHrmpMessage, WinnersData, WinnersDataTuple, WinningData, WinningDataEntry } from '@polkadot/types/interfaces/parachains';
import type { FeeDetails, InclusionFee, RuntimeDispatchInfo } from '@polkadot/types/interfaces/payment'; import type { FeeDetails, InclusionFee, RuntimeDispatchInfo } from '@polkadot/types/interfaces/payment';
import type { Approvals } from '@polkadot/types/interfaces/poll'; import type { Approvals } from '@polkadot/types/interfaces/poll';
import type { ProxyAnnouncement, ProxyDefinition, ProxyType } from '@polkadot/types/interfaces/proxy'; import type { ProxyAnnouncement, ProxyDefinition, ProxyType } from '@polkadot/types/interfaces/proxy';
@@ -274,6 +274,9 @@ declare module '@polkadot/types/types/registry' {
DispatchResult: DispatchResult; DispatchResult: DispatchResult;
DispatchResultOf: DispatchResultOf; DispatchResultOf: DispatchResultOf;
DispatchResultTo198: DispatchResultTo198; DispatchResultTo198: DispatchResultTo198;
DisputeLocation: DisputeLocation;
DisputeResult: DisputeResult;
DisputeState: DisputeState;
DisputeStatement: DisputeStatement; DisputeStatement: DisputeStatement;
DisputeStatementSet: DisputeStatementSet; DisputeStatementSet: DisputeStatementSet;
DoubleEncodedCall: DoubleEncodedCall; DoubleEncodedCall: DoubleEncodedCall;
@@ -30,10 +30,54 @@ const cumulusTypes = {
} }
}; };
const disputeTypes = {
DisputeLocation: {
_enum: ['Local', 'Remote']
},
DisputeResult: {
_enum: ['Valid', 'Invalid']
},
DisputeState: {
validatorsFor: 'BitVec',
validatorsAgainst: 'BitVec',
start: 'BlockNumber',
concludedAt: 'Option<BlockNumber>'
},
DisputeStatement: {
_enum: {
Valid: 'ValidDisputeStatementKind',
Invalid: 'InvalidDisputeStatementKind'
}
},
DisputeStatementSet: {
candidateHash: 'CandidateHash',
session: 'SessionIndex',
statements: 'Vec<(DisputeStatement, ParaValidatorIndex, ValidatorSignature)>'
},
ExplicitDisputeStatement: {
valid: 'bool',
candidateHash: 'CandidateHash',
session: 'SessionIndex'
},
InvalidDisputeStatementKind: {
_enum: ['Explicit']
},
MultiDisputeStatementSet: 'Vec<DisputeStatementSet>',
ValidDisputeStatementKind: {
_enum: {
Explicit: 'Null',
BackingSeconded: 'Hash',
BackingValid: 'Hash',
ApprovalChecking: 'Null'
}
}
};
export default { export default {
rpc: {}, rpc: {},
types: { types: {
...cumulusTypes, ...cumulusTypes,
...disputeTypes,
...hrmpTypes, ...hrmpTypes,
...proposeTypes, ...proposeTypes,
...slotTypes, ...slotTypes,
@@ -156,36 +200,6 @@ export default {
Parachain: 'Null' Parachain: 'Null'
} }
}, },
DisputeStatementSet: {
candidateHash: 'CandidateHash',
session: 'SessionIndex',
statements: 'Vec<(DisputeStatement, ParaValidatorIndex, ValidatorSignature)>'
},
MultiDisputeStatementSet: 'Vec<DisputeStatementSet>',
DisputeStatement: {
_enum: {
Valid: 'ValidDisputeStatementKind',
Invalid: 'InvalidDisputeStatementKind'
}
},
ValidDisputeStatementKind: {
_enum: {
Explicit: 'Null',
BackingSeconded: 'Hash',
BackingValid: 'Hash',
ApprovalChecking: 'Null'
}
},
InvalidDisputeStatementKind: {
_enum: [
'Explicit'
]
},
ExplicitDisputeStatement: {
valid: 'bool',
candidateHash: 'CandidateHash',
session: 'SessionIndex'
},
DoubleVoteReport: { DoubleVoteReport: {
identity: 'ValidatorId', identity: 'ValidatorId',
first: '(Statement, ValidatorSignature)', first: '(Statement, ValidatorSignature)',
@@ -176,6 +176,26 @@ export interface CoreOccupied extends Enum {
readonly isParachain: boolean; readonly isParachain: boolean;
} }
/** @name DisputeLocation */
export interface DisputeLocation extends Enum {
readonly isLocal: boolean;
readonly isRemote: boolean;
}
/** @name DisputeResult */
export interface DisputeResult extends Enum {
readonly isValid: boolean;
readonly isInvalid: boolean;
}
/** @name DisputeState */
export interface DisputeState extends Struct {
readonly validatorsFor: BitVec;
readonly validatorsAgainst: BitVec;
readonly start: BlockNumber;
readonly concludedAt: Option<BlockNumber>;
}
/** @name DisputeStatement */ /** @name DisputeStatement */
export interface DisputeStatement extends Enum { export interface DisputeStatement extends Enum {
readonly isValid: boolean; readonly isValid: boolean;