UNPKG

@bsv/overlay

Version:
35 lines 1.68 kB
import { AdmittanceInstructions } from '@bsv/sdk'; /** * Defines a Topic Manager interface that can be implemented for specific use-cases */ export interface TopicManager { /** * Returns instructions that denote which outputs from the provided transaction to admit into the topic, and which previous coins should be retained. * Accepts the transaction in BEEF format and an array of those input indices which spend previously-admitted outputs from the same topic. * The transaction's BEEF structure will always contain the transactions associated with previous coins for reference (if any), regardless of whether the current transaction was directly proven. */ identifyAdmissibleOutputs: (beef: number[], previousCoins: number[], offChainValues?: number[]) => Promise<AdmittanceInstructions>; /** * Identifies and returns the inputs needed to anchor any topical outputs from this transaction to their associated previous history. * @throws - if there are no potentially valid topical outputs in this transaction */ identifyNeededInputs?: (beef: number[], offChainValues?: number[]) => Promise<Array<{ txid: string; outputIndex: number; }>>; /** * Returns a Markdown-formatted documentation string for the topic manager. */ getDocumentation: () => Promise<string>; /** * Returns a metadata object that can be used to identify the topic manager. */ getMetaData: () => Promise<{ name: string; shortDescription: string; iconURL?: string; version?: string; informationURL?: string; }>; } //# sourceMappingURL=TopicManager.d.ts.map