@node-dlc/messaging
Version:
DLC Messaging Protocol
49 lines (48 loc) • 1.62 kB
TypeScript
/// <reference types="node" />
import { MessageType } from '../MessageType';
import { IDlcMessage } from './DlcMessage';
/**
* 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 OracleAttestationV0 implements IDlcMessage {
static type: MessageType;
/**
* Deserializes an oracle_announcement_v0 message
* @param buf
*/
static deserialize(buf: Buffer): OracleAttestationV0;
/**
* The type for oracle_announcement_v0 message. oracle_announcement_v0 = 55332
*/
type: MessageType;
length: bigint;
eventId: string;
oraclePubkey: Buffer;
signatures: Buffer[];
outcomes: string[];
validate(): void;
/**
* Converts oracle_attestation_v0 to JSON
*/
toJSON(): OracleAttestationV0JSON;
/**
* Serializes the oracle_announcement_v0 message into a Buffer
*/
serialize(): Buffer;
}
export interface OracleAttestationV0JSON {
type: number;
eventId: string;
oraclePubkey: string;
signatures: string[];
outcomes: string[];
}