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