@node-dlc/messaging
Version:
DLC Messaging Protocol
98 lines (97 loc) • 3.24 kB
TypeScript
/// <reference types="node" />
import { IOrderMetadataJSON } from '..';
import { MessageType } from '../MessageType';
import { BatchFundingGroup, IBatchFundingGroupJSON } from './BatchFundingGroup';
import { ContractInfo, IContractInfoV0JSON, IContractInfoV1JSON } from './ContractInfo';
import { IDlcMessage } from './DlcMessage';
import { IOrderIrcInfoJSON, OrderIrcInfo } from './OrderIrcInfo';
import { OrderMetadata } from './OrderMetadata';
import { IOrderPositionInfoJSON, OrderPositionInfo } from './OrderPositionInfo';
/**
* OrderOffer message contains information about a node and indicates its
* desire to enter into a new contract. This is the first step toward
* order negotiation. This is a simpler message than DlcOffer.
*/
export declare class OrderOffer implements IDlcMessage {
static type: MessageType;
/**
* Creates an OrderOffer from JSON data
* @param json JSON object representing an order offer
*/
static fromJSON(json: any): OrderOffer;
/**
* Deserializes an order_offer message
* @param buf
*/
static deserialize(buf: Buffer): OrderOffer;
/**
* The type for order_offer message. order_offer = 62770
*/
type: MessageType;
protocolVersion: number;
temporaryContractId: Buffer;
contractFlags: Buffer;
chainHash: Buffer;
contractInfo: ContractInfo;
offerCollateral: bigint;
feeRatePerVb: bigint;
cetLocktime: number;
refundLocktime: number;
metadata?: OrderMetadata;
ircInfo?: OrderIrcInfo;
positionInfo?: OrderPositionInfo;
batchFundingGroups?: BatchFundingGroup[];
unknownTlvs?: Array<{
type: number;
data: Buffer;
}>;
get offerCollateralSatoshis(): bigint;
set offerCollateralSatoshis(value: bigint);
validate(): void;
/**
* Converts order_offer to JSON
*/
toJSON(): IOrderOfferJSON;
/**
* Serializes the order_offer message into a Buffer
*/
serialize(): Buffer;
}
export interface IOrderOfferJSON {
type: number;
protocolVersion: number;
temporaryContractId: string;
contractFlags: number;
chainHash: string;
contractInfo: IContractInfoV0JSON | IContractInfoV1JSON;
offerCollateral: number;
offerCollateralSatoshis: number;
feeRatePerVb: number;
cetLocktime: number;
refundLocktime: number;
tlvs: (IOrderMetadataJSON | IOrderIrcInfoJSON | IOrderPositionInfoJSON | IBatchFundingGroupJSON | unknown)[];
}
export declare class OrderOfferContainer {
private offers;
/**
* Adds an OrderOffer to the container.
* @param offer The OrderOffer to add.
*/
addOffer(offer: OrderOffer): void;
/**
* Returns all OrderOffers in the container.
* @returns An array of OrderOffer instances.
*/
getOffers(): OrderOffer[];
/**
* Serializes all OrderOffers in the container to a Buffer.
* @returns A Buffer containing the serialized OrderOffers.
*/
serialize(): Buffer;
/**
* Deserializes a Buffer into an OrderOfferContainer with OrderOffers.
* @param buf The Buffer to deserialize.
* @returns An OrderOfferContainer instance.
*/
static deserialize(buf: Buffer): OrderOfferContainer;
}