Files
xo-stack/packages/stack/src/blockchain/traits.ts
T
2025-04-20 02:22:30 +00:00

25 lines
1.1 KiB
TypeScript

import { type BaseBlockchain } from './base-blockchain.js';
export type BlockchainLockscriptSubscribable<CallbackPayload = undefined> =
Pick<
BaseBlockchain<CallbackPayload>,
'subscribeLockscript' | 'unsubscribeLockscript'
>;
export type BlockchainAddressSubscribable<CallbackPayload = undefined> = Pick<
BaseBlockchain<CallbackPayload>,
'subscribeAddress' | 'unsubscribeAddress'
>;
export type BlockchainTransactionSubscribable<CallbackPayload = undefined> =
Pick<
BaseBlockchain<CallbackPayload>,
'subscribeTransaction' | 'unsubscribeTransaction'
>;
// TODO: We may have a fetchTokenHistory in future, but Fulcrum does not currently support indexing tokens.
// There are actually a few functional discrepancies with the adapters: different adapters grant different capabilities.
// For example, Chaingraph can fetch token and address history. But BCHN P2P network cannot even fetch address history.
// We might want to handle this by having multiple BlockchainInterfaces (e.g. IBlockchainAddressSubscriptions) that describe capabilities.
// But we should return to that later.