@zlattice/lattice-js
Version:
Lattice blockchain TypeScript SDK with dual module support (CJS + ESM)
52 lines • 1.6 kB
TypeScript
import { ContractLifecyclePeriod, ProposalState, ProposalType, VotingRule } from "../constants.js";
interface Proposal<T = ContractLifecycleProposal | ModifyChainConfigurationProposal | SubchainProposal> {
proposalType: ProposalType;
proposalContent: T;
}
interface ContractLifecycleProposal {
proposalId: string;
proposalState: ProposalState;
nonce: number;
contractAddress: string;
isRevole: number;
period: ContractLifecyclePeriod;
createAt: number;
modifiedAt: number;
dbNumber: number;
}
interface ModifyChainConfigurationProposal {
proposalId: string;
proposalState: ProposalState;
nonce: number;
modifyType: number;
period: number;
isDictatorship: boolean;
noEmptyAnchor: boolean;
deployRule: VotingRule;
latcSaint: string[];
consensus: string;
}
interface SubchainProposal {
proposalId?: string;
proposalState?: ProposalState;
chainConfig?: {
newChain?: {
chainId?: number;
name?: string;
period?: number;
tokenless?: boolean;
noEmptyAnchor?: boolean;
emptyAnchorPeriodMul?: number;
isContractVote?: boolean;
isDictatorship?: boolean;
deployRule?: VotingRule;
contractPermission?: boolean;
};
consensus?: string;
timestamp?: number;
parentHash?: string;
joinProposalId?: string;
};
}
export type { Proposal, ContractLifecycleProposal, ModifyChainConfigurationProposal, SubchainProposal };
//# sourceMappingURL=proposal.d.ts.map