@dashevo/dashcore-lib
Version:
A pure and powerful JavaScript Dash library.
100 lines (93 loc) • 3.3 kB
TypeScript
/**
* @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;
}