@node-dlc/messaging
Version:
DLC Messaging Protocol
60 lines (59 loc) • 1.75 kB
TypeScript
/// <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 {};