@bsv/overlay
Version:
BSV Blockchain Overlay Services Engine
69 lines • 3.77 kB
TypeScript
import { Storage, type AppliedTransaction, type AppliedTransactionProofUpdate, type StoredTransactionRecord, type UnprovenAppliedTransactionCandidate } from '../Storage.js';
import { Knex } from 'knex';
import type { Output } from '../../Output.js';
import { type AdmittedTxRef, type RawTransactionRecord, type TopicAnchorTip, type TopicBlockAnchor } from '../../BASM.js';
export declare class KnexStorage implements Storage {
knex: Knex;
constructor(knex: Knex);
private parseOutputRelations;
private parseOutputRecord;
private binaryToNumberArray;
private binaryToHex;
private transactionRecordFromBEEF;
private fetchTransactionBeefMap;
findOutput(txid: string, outputIndex: number, topic?: string, spent?: boolean, includeBEEF?: boolean): Promise<Output | null>;
findOutputsByOutpoints(outpoints: Array<{
txid: string;
outputIndex: number;
}>, includeBEEF?: boolean): Promise<Output[]>;
findOutputsForTransaction(txid: string, includeBEEF?: boolean): Promise<Output[]>;
findUTXOsForTopic(topic: string, since?: number, limit?: number, includeBEEF?: boolean): Promise<Output[]>;
deleteOutput(txid: string, outputIndex: number, topic: string): Promise<void>;
insertOutput(output: Output): Promise<void>;
markUTXOAsSpent(txid: string, outputIndex: number, topic?: string): Promise<void>;
updateConsumedBy(txid: string, outputIndex: number, topic: string, consumedBy: Array<{
txid: string;
outputIndex: number;
}>): Promise<void>;
updateTransactionBEEF(txid: string, beef: number[]): Promise<void>;
updateOutputBlockHeight(txid: string, outputIndex: number, topic: string, blockHeight: number): Promise<void>;
upsertTransactionRecord(record: StoredTransactionRecord): Promise<void>;
updateAppliedTransactionProof(record: AppliedTransactionProofUpdate): Promise<void>;
insertAppliedTransaction(tx: AppliedTransaction): Promise<void>;
doesAppliedTransactionExist(tx: {
txid: string;
topic: string;
}): Promise<boolean>;
updateLastInteraction(host: string, topic: string, since: number): Promise<void>;
getLastInteraction(host: string, topic: string): Promise<number>;
findAdmittedTransactionsForBlock(topic: string, blockHeight: number, blockHash?: string): Promise<AdmittedTxRef[]>;
upsertTopicBlockAnchor(anchor: TopicBlockAnchor): Promise<void>;
findTopicBlockAnchor(topic: string, blockHeight: number, blockHash?: string): Promise<TopicBlockAnchor | undefined>;
findTopicBlockAnchors(topic: string, fromHeight: number, toHeight: number): Promise<TopicBlockAnchor[]>;
findTopicAnchorTip(topic: string): Promise<TopicAnchorTip | undefined>;
findRawTransactions(txids: string[]): Promise<RawTransactionRecord[]>;
findTransactionMerklePaths(txids: string[]): Promise<Array<{
txid: string;
merklePath: string;
blockHeight?: number;
blockHash?: string;
blockIndex?: number;
merkleRoot?: string;
}>>;
findUnprovenAppliedTransactions(cutoffHeight: number, topic?: string): Promise<UnprovenAppliedTransactionCandidate[]>;
deleteAppliedTransaction(txid: string, topic: string): Promise<void>;
findProvenAppliedTransactionsByBlockHash(blockHash: string): Promise<Array<{
txid: string;
topic: string;
blockHeight: number;
}>>;
findProvenAppliedTransactionsInRange(fromHeight: number, toHeight: number, topic?: string): Promise<Array<{
txid: string;
topic: string;
blockHeight: number;
blockHash?: string;
merkleRoot?: string;
}>>;
demoteAppliedTransactionToUnproven(txid: string, topic: string): Promise<void>;
}
//# sourceMappingURL=KnexStorage.d.ts.map