UNPKG

@dashevo/dashcore-lib

Version:

A pure and powerful JavaScript Dash library.

100 lines (93 loc) 3.3 kB
/** * @typedef {Object} CommitmentTxPayloadJSON * @property {number} version uint16_t 2 Commitment special transaction version number. Currently set to 1. Please note that this is not the same as the version field of qfcommit * @property {number} height uint16_t 2 The height of the block in which this commitment is included * @property {number} qfcVersion uint16_t 2 Version of the final commitment message * @property {number} llmqtype uint8_t 1 type of the long living masternode quorum * @property {string} quorumHash uint256 32 The quorum identifier * @property {number} signersSize compactSize uint 1-9 Bit size of the signers bitvector * @property {string} signers byte[] (bitSize + 7) / 8 Bitset representing the aggregated signers of this final commitment * @property {number} validMembersSize compactSize uint 1-9 Bit size of the validMembers bitvector * @property {string} validMembers byte[] (bitSize + 7) / 8 Bitset of valid members in this commitment * @property {string} quorumPublicKey BLSPubKey 48 The quorum public key * @property {string} quorumVvecHash uint256 32 The hash of the quorum verification vector * @property {string} quorumSig BLSSig 96 Recovered threshold signature * @property {string} sig BLSSig 96 Aggregated BLS signatures from all included commitments */ export type CommitmentTxPayloadJSON = { version: number; height: number; qfcVersion: number; llmqtype: number; quorumHash: string; signersSize: number; signers: string; validMembersSize: number; validMembers: string; quorumPublicKey: string; quorumVvecHash: string; quorumSig: string; sig: string; }; /** * @class CommitmentTxPayload * @property {number} version * @property {number} height * @property {number} qfcVersion * @property {number} llmqtype * @property {string} quorumHash * @property {number} signersSize * @property {string} signers * @property {number} validMembersSize * @property {string} validMembers * @property {string} quorumPublicKey * @property {string} quorumVvecHash * @property {string} quorumSig * @property {string} sig */ export class CommitmentTxPayload { /** * Parse raw payload * @param {Buffer} rawPayload * @return {CommitmentTxPayload} */ static fromBuffer(rawPayload: Buffer): CommitmentTxPayload; /** * Create new instance of payload from JSON * @param {string|CommitmentTxPayloadJSON} payloadJson * @return {CommitmentTxPayload} */ static fromJSON( payloadJson: string | CommitmentTxPayloadJSON ): CommitmentTxPayload; /** * Validate payload * @return {boolean} */ validate(): boolean; /** * Serializes payload to JSON * @param [options] * @return {CommitmentTxPayload} */ toJSON(options?: any): CommitmentTxPayload; /** * Serialize payload to buffer * @param [options] * @return {Buffer} */ toBuffer(options?: any): Buffer; version: number; height: number; qfcVersion: number; llmqtype: number; quorumHash: string; signersSize: number; signers: string; validMembersSize: number; validMembers: string; quorumPublicKey: string; quorumVvecHash: string; quorumSig: string; sig: string; }