UNPKG

@node-dlc/messaging

Version:
60 lines (59 loc) 1.75 kB
/// <reference types="node" /> import { MessageType } from '../MessageType'; import { IDlcMessage } from './DlcMessage'; import { HyperbolaPayoutCurvePieceJSON, PayoutCurvePiece, PolynomialPayoutCurvePieceJSON } from './PayoutCurvePiece'; export declare abstract class PayoutFunction { static deserialize(buf: Buffer): PayoutFunctionV0; abstract type: number; abstract length: bigint; abstract toJSON(): PayoutFunctionV0JSON; abstract serialize(): Buffer; } /** * PayoutFunction V0 */ export declare class PayoutFunctionV0 extends PayoutFunction implements IDlcMessage { static type: MessageType; /** * Deserializes an payout_function_v0 message * @param buf */ static deserialize(buf: Buffer): PayoutFunctionV0; /** * The type for payout_function_v0 message. payout_function_v0 = 42790 */ type: MessageType; length: bigint; endpoint0: bigint; endpointPayout0: bigint; extraPrecision0: number; pieces: IPayoutCurvePieces[]; /** * Converts payout_function_v0 to JSON */ toJSON(): PayoutFunctionV0JSON; /** * Serializes the payout_function_v0 message into a Buffer */ serialize(): Buffer; } interface IPayoutCurvePieces { payoutCurvePiece: PayoutCurvePiece; endpoint: bigint; endpointPayout: bigint; extraPrecision: number; } interface IPayoutCurvePiecesJSON { payoutCurvePiece: PolynomialPayoutCurvePieceJSON | HyperbolaPayoutCurvePieceJSON; endpoint: number; endpointPayout: number; extraPrecision: number; } export interface PayoutFunctionV0JSON { type: number; endpoint0: number; endpointPayout0: number; extraPrecision0: number; pieces: IPayoutCurvePiecesJSON[]; } export {};