UNPKG

@dashevo/dashcore-lib

Version:

A pure and powerful JavaScript Dash library.

156 lines (149 loc) 5.43 kB
/** * @typedef {Object} ProRegTxPayloadJSON * @property {number} version uint_16 2 Provider transaction version number. Currently set to 1. * @property {string} collateralHash * @property {number} collateralIndex uint_32 4 The collateral index. * @property {string} service - service address, ip and port * @property {string} keyIDOwner CKeyID 20 The public key hash used for owner related signing (ProTx updates, governance voting) * @property {string} pubKeyOperator BLSPubKey 48 The public key used for operational related signing (network messages, ProTx updates) * @property {string} keyIDVoting CKeyID 20 The public key hash used for voting. * @property {number} operatorReward uint_16 2 A value from 0 to 10000. * @property {string} payoutAddress * @property {string} inputsHash uint256 32 Hash of all the outpoints of the transaction inputs * @property {string} [platformNodeID] Platform Node ID * @property {number} [payloadSigSize] Size of the Signature * @property {number} [platformP2PPort] Platform P2P port * @property {number} [platformHTTPPort] Platform HTTP port * @property {number} [payloadSigSize] Size of the Signature * @property {string} [payloadSig] Signature of the hash of the ProTx fields. Signed with keyIDOwner */ export type ProRegTxPayloadJSON = { version: number; collateralHash: string; collateralIndex: number; service: string; keyIDOwner: string; pubKeyOperator: string; keyIDVoting: string; operatorReward: number; payoutAddress: string; inputsHash: string; payloadSigSize?: number; payloadSig?: string; platformNodeID?: string; platformP2PPort?: number; platformHTTPPort?: number; }; /** * @class ProRegTxPayload * @property {number} version uint_16 2 Provider transaction version number. Currently set to 1. * @property {number} type * @property {number} mode * @property {string} collateralHash * @property {number} collateralIndex uint_32 4 The collateral index. * @property {string} service - service address, ip and port * @property {string} keyIDOwner CKeyID 20 The public key hash used for owner related signing (ProTx updates, governance voting) * @property {string} pubKeyOperator BLSPubKey 48 The public key used for operational related signing (network messages, ProTx updates) * @property {string} keyIDVoting CKeyID 20 The public key hash used for voting. * @property {number} operatorReward uint_16 2 A value from 0 to 10000. * @property {string} scriptPayout Script Variable Payee script (p2pkh/p2sh) * @property {string} inputsHash uint256 32 Hash of all the outpoints of the transaction inputs * @property {string} [platformNodeID] Platform Node ID * @property {number} [payloadSigSize] Size of the Signature * @property {number} [platformP2PPort] Platform P2P port * @property {number} [platformHTTPPort] Platform HTTP port * @property {string} [payloadSig] Signature of the hash of the ProTx fields. Signed with keyIDOwner */ export class ProRegTxPayload { /** * Parse raw payload * @param {Buffer} rawPayload * @return {ProRegTxPayload} */ static fromBuffer(rawPayload: Buffer): ProRegTxPayload; /** * Create new instance of payload from JSON * @param {string|ProRegTxPayloadJSON} payloadJson * @return {ProRegTxPayload} */ static fromJSON(payloadJson: string | ProRegTxPayloadJSON): ProRegTxPayload; /** * Validate payload * @return {boolean} */ validate(): boolean; /** * Serializes payload to JSON * @param [options] * @param [options.skipSignature] * @param [options.network] - network for address serialization * @return {ProRegTxPayloadJSON} */ toJSON(options?: { skipSignature?: any; network?: any }): ProRegTxPayloadJSON; /** * Serialize payload to buffer * @param [options] * @param {Boolean} [options.skipSignature] - skip signature. Needed for signing * @return {Buffer} */ toBuffer(options?: { skipSignature?: boolean }): Buffer; /** * uint_16 2 Provider transaction version number. Currently set to 1. */ version: number; type: number; mode: number; collateralHash: string; /** * uint_32 4 The collateral index. */ collateralIndex: number; /** * service address, ip and port */ service: string; /** * CKeyID 20 The public key hash used for owner related signing (ProTx updates, governance voting) */ keyIDOwner: string; /** * BLSPubKey 48 The public key used for operational related signing (network messages, ProTx updates) */ pubKeyOperator: string; /** * CKeyID 20 The public key hash used for voting. */ keyIDVoting: string; /** * uint_16 2 A value from 0 to 10000. */ operatorReward: number; /** * Script Variable Payee script (p2pkh/p2sh) */ scriptPayout: string; /** * uint256 32 Hash of all the outpoints of the transaction inputs */ inputsHash: string; /** * Size of the Signature */ payloadSigSize?: number; /** * Signature of the hash of the ProTx fields. Signed with keyIDOwner */ payloadSig?: string; /* * Platform Node ID */ platformNodeID?: string; /* * Platform P2P port */ platformP2PPort?: number; /* * Platform HTTP port */ platformHTTPPort?: number; }