UNPKG

@node-dlc/messaging

Version:
48 lines (47 loc) 1.68 kB
/// <reference types="node" /> import { MessageType } from '../MessageType'; import { IDlcMessage } from './DlcMessage'; import { IOracleEventV0JSON, OracleEventV0 } from './OracleEventV0'; /** * In order to make it possible to hold oracles accountable in cases where * they do not release a signature for an event outcome, there needs to be * a proof that an oracle has committed to a given outcome. This proof is * given in a so-called oracle announcement, which contains an oracle event * together with the oracle public key and a signature over its serialization, * which must be valid with respect to the specified public key. * * This also makes it possible for users to obtain oracle event information * from an un-trusted peer while being guaranteed that it originates from a * given oracle. */ export declare class OracleAnnouncementV0 implements IDlcMessage { static type: MessageType; /** * Deserializes an oracle_announcement_v0 message * @param buf */ static deserialize(buf: Buffer): OracleAnnouncementV0; /** * The type for oracle_announcement_v0 message. oracle_announcement_v0 = 55332 */ type: MessageType; length: bigint; announcementSig: Buffer; oraclePubkey: Buffer; oracleEvent: OracleEventV0; validate(): void; /** * Converts oracle_announcement_v0 to JSON */ toJSON(): OracleAnnouncementV0JSON; /** * Serializes the oracle_announcement_v0 message into a Buffer */ serialize(): Buffer; } export interface OracleAnnouncementV0JSON { type: number; announcementSig: string; oraclePubkey: string; oracleEvent: IOracleEventV0JSON; }