libspiffy library

LibSpiffy - Actor-Based Bitcoin SPV Wallet Library

A comprehensive SPV wallet library built on the Dactor/Eventador stack with SpiffyNode integration for robust P2P functionality and chain tracking.

Classes

ActorResponse
Base class of actor replies.
AddressDiscoveryResult
Result of address discovery scan
AddressEntity
Address entity for efficient address lookup and metadata
AddressGeneratedResponse
Response from BitcoinWalletAggregate after processing GenerateAddressCommand
AddressMetadata
Domain model for address metadata
AddressScriptInfo
Information about a script associated with an address
AncestorTransactionEntity
A transaction a received BEEF carried as an ancestor of the paid transaction (bead libspiffy-zsh): SPV evidence needed to spend the received outputs before they are mined, not a wallet transaction. Keyed by txid only; rows are never deleted.
AnchorKeyResponse
Reply of the wallet aggregate to IssueAnchorKeyCommand and SignWithAnchorKeyCommand (beads libspiffy-zxkd, libspiffy-fdal): the anchor public key (compressed hex), and for a signing request the DER signature (hex) of SHA-256 of the message. Empty on failure.
ARCActor
Actor that handles ARC service integration for transaction broadcasting and monitoring
ArcHealthResponse
Health status response from ARC
ArcMerkleProofResponse
Merkle proof of a mined transaction, taken from GET /v1/tx/{txid}.
ArcPolicyResponse
Policy returned by GET /v1/policy.
ArcService
Service for interacting with the ARC API (Advanced Relayer Console)
ArcServiceConfig
Configuration for the ARC service
ArcSubmitResponse
Response from submitting a transaction to ARC
ArcTransactionResponse
Response from querying a transaction status from ARC
ArcWorkStoppedMessage
ARCActor has no work in flight and will start none (StopArcWorkMessage).
AwaitedAncestorProof
An ancestor transaction a spend is waiting on, and what its last stored proof said (bead libspiffy-0lx).
BEEF
Represents a Background Evaluation Extended Format transaction
BeefBumps
The BUMPs of a BEEF: one per block, not one per proven transaction.
BEEFPaymentResponse
Response with BEEF package ready to send to receiver
BEEFValidationResult
BEEF validation result
BenfordCoordinatorActor
Coordinator actor for Benford UTXO splitting operations
BenfordDistribution
Utility class for distributing amounts according to Benford's Law
BitcoinTransaction
Represents a Bitcoin transaction in the wallet.
BitcoinTransactionEntity
Bitcoin transaction storage entity
BitcoinUtxo
Represents a Bitcoin UTXO (Unspent Transaction Output) in the wallet.
BitcoinUtxoEntity
Bitcoin UTXO storage entity
BlockchainDataSource
Abstract interface for blockchain data providers
BlockchainReorganizationNotification
Notification about blockchain reorganization
BlockHeaderAnchor
The header a BlockHeaderChain is anchored to: normally the network genesis at height 0, optionally a hard-coded checkpoint further up.
BlockHeaderChain
Manages the block header chain for SPV validation.
BlockHeaderEntity
Block header storage entity for SPV validation
BlockHeaderUpdateMessage
Block header update from SpiffyNode
BroadcastBEEFMessage
Request to broadcast BEEF data
BroadcastDeferredPaymentMessage
Asks ARCActor to broadcast the deferred payment txid itself: the unproven transactions of beefHex (its unconfirmed ancestors) first, then rawTxHex. Idempotent. Replied with DeferredPaymentNetworkResult.
BroadcastFailedMessage
A submission that did not reach ARC, or that ARC refused.
BroadcastSuccessMessage
ARC accepted a submission: it holds the transaction.
BroadcastTransactionMessage
Request to broadcast a transaction
BUMP
A BSV Universal Merkle Path (BRC-74).
CallbackTransactionSigner
A TransactionSigner that delegates ECDSA signing to a callback.
CancelInvoiceMessage
Cancel an invoice
CdnChunkInfo
Describes a single chunk of binary block headers on the CDN.
CdnHeaderSyncConfig
Configuration for CDN-based fast initial block header sync.
CdnHeaderSyncService
Downloads and imports block headers from a CDN for fast initial sync.
CdnManifest
CDN manifest describing all available header chunks for a network.
CdnSyncResult
Result of a CDN header sync operation.
ChannelP2PAdapter
Transport-agnostic adapter that translates between P2P protocol messages (as raw maps) and LibSpiffy's PaymentChannelManagerActor messages.
ChannelProjection
Channel projection that builds read models from channel events
ChannelTiming
The timing a node holds its payment channels to.
ChannelTransactionResult
Result of a payment channel transaction build
CheckDeferredPaymentStatusMessage
Asks ARCActor to query the network status of the deferred payment txid now, instead of waiting for the periodic scan. The wallet is updated as for a scan result (spend applied on SEEN_ON_NETWORK / MINED, a MINED merkle proof checked against the local headers before confirming, the payment failed on REJECTED; DOUBLE_SPEND_ATTEMPTED keeps it outstanding), and the status is journaled. Replied with DeferredPaymentNetworkResult.
CheckInvoiceMessage
Request to check/lookup invoice details
CheckStoragePendingUTXOsMessage
Message to trigger checking all pending UTXOs from storage against Arc
CheckTransactionStatusMessage
Check transaction status
ClientChannelInfo
Tracks state for a channel we initiated (client role).
CreateInvoiceMessage
Request to create a new invoice/payment request
CreateWalletMessage
Messages for coordinating between actors in the LibSpiffy system Request to create a new wallet
CryptoService
Cryptographic service interface for Bitcoin operations Provides all cryptographic functionality needed by the wallet
DartSVCryptoService
CryptoService backed by dartsv.
DeferredNetworkStatus
Network status strings recorded for deferred payments.
DeferredPayment
Read model of a deferred payment. Never deleted (only a wallet deletion removes it): resolved payments stay listable with their state.
DeferredPaymentEntity
A deferred payment (bead libspiffy-7p2): an outgoing transaction recorded with a deferred spend, with the inputs it holds and its state. Rows are never deleted except with their wallet.
DeferredPaymentInput
One input a deferred payment holds.
DeferredPaymentNetworkResult
What ARCActor learned from a CheckDeferredPaymentStatusMessage or a BroadcastDeferredPaymentMessage.
DeferredPaymentPage
One page of deferred payments.
DeferredPaymentPurpose
The purpose a deferred payment carries, for the values the wallet itself sets and reads back.
DeferredPaymentQuery
Filter and page of ReadModelStorage.listDeferredPayments.
DeferredSpendCancelledResponse
Reply of the wallet aggregate to CancelDeferredSpendCommand.
DeferredSpendReclaimedResponse
Reply to a ReclaimDeferredSpendCommand (bead libspiffy-87a): the wallet journaled the self-spend, moved the hold on the reclaimed payment's inputs to it, and journaled the reclaim.
DelegatedAddressesRecordedResponse
Reply of the wallet aggregate to RecordDelegatedAddressesCommand (bead libspiffy-m8qu): the address of each requested index, in order, and those it journaled (the others it had recorded already).
DiscoveredAddress
Information about a discovered address
EncryptionResult
Result of an encryption operation.
EncryptionService
Service for encrypting and decrypting sensitive data.
EventStorage
Abstract interface for event storage operations.
FailureResponse
A reply that can only report failure (bead libspiffy-kl4i).
FeeRate
A fee rate: satoshis per bytes, as ARC publishes it in its policy (GET /v1/policy, miningFee, schema FeeAmount).
FeeRateQuote
Reply to GetFeeRateMessage.
FundingTransactionBuiltResponse
Response from building and signing a funding transaction
GetFeeRateMessage
Asks ARCActor for ARC's published policy rate (GET /v1/policy, its miningFee). Replied with FeeRateQuote.
HarvestedUTXO
HarvestResult
HdKeyPath
The key at m/{chain}/{derivationIndex} of the wallet's HD tree. Ignored by the aggregate for a single-key (WIF) wallet, whose one key signs.
HeaderAcceptResult
Result of BlockHeaderChain.acceptHeader.
HeaderChainReorganizedMessage
Sent by HeaderSyncActor to SPVActor when accepting a batch of headers moved the active chain to another branch.
ImportableTransaction
Raw transaction with merkle proof for import
ImportedTransaction
Represents a successfully imported transaction
InitiateHeaderSyncMessage
Message to initiate header sync after P2P setup is complete
InMemorySecureStorage
In-memory implementation of SecureStorage for development and testing.
InMemoryWalletStorage
In-memory implementation of WalletStorage for development and testing.
InputSignedResponse
Reply to SignInputCommand: the signature for one input and the public key of the wallet key that produced it.
Invoice
Invoice data class for storage
InvoiceCoordinatorActor
Coordinator actor for invoice management using CQRS pattern
InvoiceCreatedMessage
Response when an invoice is successfully created
InvoiceDetailsResponse
Response with invoice details
InvoiceEntity
Invoice entity for payment request management
InvoiceOutputSpec
Specification for a single invoice output (distinct UTXO) Supports both P2PKH (address-based) and P2MS (multisig) outputs
InvoiceProjection
Invoice projection that builds read models from invoice events
InvoiceReadModel
Read model for invoice queries - optimized for UI/query needs
InvoicesListMessage
Response with list of invoices
InvoiceState
Represents the current state of an invoice aggregate (write model)
InvoiceStatusMessage
Invoice status update notification
IsarWalletStorage
Isar-based implementation of ReadModelStorage.
IsolateConfig
Configuration for isolate-aware Isar storage operations.
IssuedAddress
An address the wallet issued, with where it sits in the HD tree.
KeyPath
Where the key of a wallet address comes from; the wallet aggregate derives the private key from it when it signs.
Leaf
Represents a leaf in the merkle tree
Level
Represents a level in the merkle tree
LibSpiffyActorSystem
Initialization and management utilities for the LibSpiffy actor system
LibSpiffySchemas
LibSpiffy's Isar schemas that developers can add to their Isar instance.
ListInvoicesMessage
List all invoices for a wallet
ListWalletsMessage
Request list of all wallets
MarkInvoicePaidMessage
Mark an invoice as paid
MerkleProof
Merkle proof data for SPV validation
MerkleProofData
Merkle proof data in a generic format
MerkleProofEntity
Merkle proof storage entity for SPV validation
MerkleProofMessage
Merkle proof retrieved from ARC (NEW)
Migration
Base class for database migrations.
MultisigSignatureResult
Result of signing a multisig input
MultisigTransactionSignedResponse
Response for multisig transaction signing
NetworkParams
Consensus constants for one Bitcoin SV network.
NodeRpcDataSource
BSV node JSON-RPC implementation of BlockchainDataSource.
OPReturnOutputSpec
OP_RETURN (data carrier) output specification OP_RETURN outputs are unspendable and carry arbitrary data on-chain
OutputAwaitingProof
One of a wallet's unspent outputs that cannot be proven to a counterparty right now (bead libspiffy-0lx): the walk back from its transaction to a merkle proof on the active header chain does not complete.
P2MSOutputSpec
P2MS (Pay-to-Multisig) output specification
P2PKHOutputSpec
P2PKH (Pay-to-Public-Key-Hash) output specification
PayInvoiceMessage
Request to pay an invoice with BEEF-formatted transaction
PaymentChannelBuilder
Payment Channel Builder Service
PaymentChannelEntity
PaymentCoordinatorActor
Coordinator actor for payment operations with SPV BEEF construction
PaymentWithBEEF
Result of building a payment transaction with BEEF ancestry
PeerInfo
Tracks which peers are involved in a channel.
PendingReceive
A receive parked until the block header(s) its merkle proof(s) need arrive.
PendingReceiveEntity
A receive parked until the block header(s) its merkle proof(s) need arrive (bead libspiffy-vfai): the BEEF exactly as a counterparty handed it to us, so the wallet is still credited when the header lands after a restart. Keyed by (walletId, txid); rows are never deleted except with their wallet.
PendingRequest
A pending incoming channel request awaiting accept/reject.
PluginFundingInput
One funding UTXO as a plugin spends it (bead libspiffy-0nfk): the output over its real locking script, and the unlocking script the wallet writes for it.
PluginOutputSpec
Plugin-delegated output specification.
PluginRegistry
Central registry for script plugins. Singleton.
PluginTransactionRequest
Request for a TransactionBuilderPlugin to build a complete transaction.
PluginUnlockSpec
Parameters for building an unlocking script to spend a plugin-managed UTXO.
PostgresConfig
Configuration for PostgreSQL database connections.
PostgresEventStore
PostgreSQL implementation of EventStore and EventStream.
PostgresMigrations
Manages database migrations for PostgreSQL.
PostgresSecureStorage
PostgreSQL-based secure storage that ONLY supports xpub storage.
PostgresWalletStorage
PostgreSQL implementation of ReadModelStorage.
ProvenTransaction
A transaction a received BEEF carried with a BUMP that verifies against our active header chain (bead libspiffy-fggl).
ProvisionFundingMessage
Internal message forwarded to PaymentCoordinatorActor for funding provisioning.
ProvisionFundingResponse
Response from PaymentCoordinatorActor after funding provisioning.
ReadModelStorage
Abstract interface for read-model storage operations.
ReceiveTransactionMessage
Receive transaction directly from counterparty with proofs (CORE SPV)
RetrieveMerkleProofMessage
Request merkle proof retrieval from ARC (NEW)
ScriptPlugin
Interface that external token/script libraries implement to teach libspiffy how to identify, parse, and build their script types.
ScriptTypeRegistry
A wrapper around DartSV's script template system focused on accounting
SecureStorage
Abstract interface for secure storage operations.
ServerChannelInfo
Tracks state for a channel we accepted (server role).
SetArcActorForSPVMessage
Message to set the ARC actor reference in SPVActor
SetArcActorMessage
Internal message to set ARC actor reference in WalletManager
SetBenfordCoordinatorMessage
Message to set the Benford coordinator reference in WalletManager
SetCoordinatorForSplitsMessage
Tells BenfordCoordinatorActor which actor announces a split's progress to the application (bead libspiffy-7ye4).
SetCoordinatorForSPVMessage
Tells SPVActor which actor speaks for the app (bead libspiffy-4gy8).
SetHeaderSyncActorMessage
Message to set HeaderSyncActor reference in SPVActor
SetInvoiceManagerMessage
Internal message to set InvoiceManager reference in WalletManager
SetPeerManagerMessage
Message to set the PeerManager reference after P2P initialization
SetSpiffyNodeBridgeMessage
Message to set the SpiffyNode bridge reference after P2P initialization
SplitTransactionOutcome
One Benford split transaction and how it ended (SplitTransactionStatus).
SplitUTXOsResponse
Response from BenfordCoordinatorActor or BitcoinWalletAggregate for SplitUTXOsToBenfordCommand
SplitUTXOsStartedMessage
The Benford coordinator has decided what a SplitUTXOsToBenfordCommand will split and is about to build the first transaction.
SPVActor
Actor that handles true SPV validation - receives transactions from counterparties and validates them using merkle proofs against the block header chain
SPVValidationResult
SPV validation result after processing received transaction
StopArcWorkMessage
Asks ARCActor to finish the work it has in flight and start no more, before the system shuts down (bead libspiffy-vr89). Answered with ArcWorkStoppedMessage once nothing of ARCActor's can still write the retry queue's Isar store, so the host may close it.
StorageFactory
Factory for creating storage instances based on the selected backend.
TransactionAddressEntity
Junction table for transaction-address many-to-many relationship Enables efficient queries like "all transactions involving address X"
TransactionAddresses
Contains all addresses involved in a transaction
Represents a link between a transaction and an address
TransactionAnalyzer
Analyzes transactions to identify wallet outputs and spending patterns
TransactionBuilderPlugin
Extended plugin interface for protocols that build complete multi-output transactions with protocol-specific structure.
TransactionBuilderResult
Result of a plugin's TransactionBuilderPlugin.buildTransaction call.
TransactionConfirmationsRevertedMessage
Sent by SPVActor to ARCActor after it reverted the confirmation of txids (a reorganization orphaned their block, or a proof imported before its header was known turned out not to match it).
TransactionImportResult
Result of transaction import operation
TransactionImportService
Service for importing transactions with SPV validation
TransactionInfo
Information about a single transaction
TransactionRecordedResponse
Response from BitcoinWalletAggregate after processing RecordImportedTransactionCommand or RecordOutgoingTransactionCommand.
TransactionSignedResponse
Response from BitcoinWalletAggregate after signing transaction
TransactionStatusMessage
Transaction status response (ENHANCED)
TxInput
Transaction input
TxOutput
Transaction output
Type42
BRC-42 (BSV "type-42") key derivation.
Type42AddressesRecordedResponse
Reply of the wallet aggregate to RecordType42AddressesCommand (bead libspiffy-zxkd): the address of each requested derivation, in order, and those it journaled (the others it had recorded already).
Type42AddressesResponse
Reply of the wallet aggregate to LookupType42AddressesCommand (bead libspiffy-zxkd): the type-42 derivation of each requested address the wallet knows one of.
Type42Derivation
The type-42 (BRC-42) derivation of a payment destination (beads libspiffy-zxkd, libspiffy-fdal): the payee's anchor key anchorPublicKey A, the anchorContext it was issued for, the payer's key senderPublicKey B, and the invoiceNumber the two agreed. This is the hand-off a payer gives with the payment.
Type42Destination
A type-42 destination the wallet derived as a payer (bead libspiffy-zxkd): address pays the holder of the anchor key Type42Derivation.anchorPublicKey, and derivation (with the wallet's payer key B at m/3'/1'/{payerKeyIndex}') is what the recipient derives it from, so it is the hand-off that goes with the payment.
Type42DestinationDerivedResponse
Reply of the wallet aggregate to DeriveType42DestinationCommand (bead libspiffy-zxkd), sent once the destination is journaled; destination is null on failure.
Type42KeyPath
The type-42 child of the wallet's anchor key for derivation.
UtxoInfo
Information about an unspent transaction output (UTXO)
UTXOReceivedResponse
UTXOReservedResponse
Response from BitcoinWalletAggregate after processing ReceiveUTXOCommand Reply to ReserveUTXOCommand. Sent on success as well as failure so callers no longer have to treat "no reply within 2 s" as success.
ValidateBEEFMessage
Request BEEF validation (enhanced transaction format)
ValidateCounterpartyTransactionMessage
Ask SPVActor to judge a transaction a counterparty handed us WITHOUT receiving it (bead libspiffy-6e5).
WalletCommandFailed
BitcoinWalletAggregate refused or failed a command it has no specific reply for (bead libspiffy-kl4i).
WalletCommandMessage
Route a command to a specific wallet
WalletCoordinatorActor
The canonical public interface for third-party apps using LibSpiffy.
WalletCreatedMessage
Response containing wallet creation result (from WalletManagerActor to external caller)
WalletCreatedResponse
Response from BitcoinWalletAggregate after processing CreateWalletCommand
WalletEvent
Base class for all wallet events that integrates with Eventador event sourcing
WalletListMessage
Response with list of wallet IDs
WalletManagerActor
Central coordinator that manages multiple wallet aggregates and routes commands
WalletManagerFailure
WalletManagerActor could not carry out a request (bead libspiffy-kl4i).
WalletMetadataEntity
Wallet metadata storage entity
WalletOwnershipQuery
Asks a wallet which of addresses and outpoints are its own (bead libspiffy-29t). Sent by SPVActor to WalletManagerActor, which hands it to the wallet aggregate; the aggregate answers from its event-sourced state with a WalletOwnershipResponse.
WalletOwnershipResponse
The answer to a WalletOwnershipQuery.
WalletPreloadedResponse
WalletManagerActor's reply to a PreloadWalletCommand that was sent with a sender (a plain tell without one gets no reply). success is true when the wallet's aggregate is loaded; otherwise error says why.
WalletProjection
Wallet projection that builds read models from wallet events
WalletReadModel
Read model for wallet queries - optimized for UI/query needs
WalletSpendableUtxosQuery
Asks a wallet for its type and the UTXOs it can spend now (bead libspiffy-ypp). Sent by BenfordCoordinatorActor to WalletManagerActor, which hands it to the wallet aggregate; the aggregate answers from its event-sourced state with a WalletSpendableUtxosResponse, after every command it has already acknowledged (the read model lags the journal, so a wallet created or funded moments earlier looked unknown or empty).
WalletSpendableUtxosResponse
The answer to a WalletSpendableUtxosQuery.
WalletState
Represents the current state of a wallet at a specific point in time.
WalletStorage
Combined storage interface for backward compatibility.
WatchAddressAddedResponse
Reply of the wallet aggregate to AddWatchAddressCommand (bead libspiffy-p4kv).
WhatsOnChainDataSource
WhatsOnChain implementation of BlockchainDataSource

Enums

AddressChain
Which chain of the wallet's HD tree an address is on.
ArcTransactionStatus
Status of a transaction in the ARC system, with the name ARC's API gives it (wireName). The one mapping between the two: both response parsers read it with fromWire, and what the wallet journals is wireName.
BitcoinScriptType
BitcoinTransactionDirection
Represents the direction of a Bitcoin transaction
CdnSyncPhase
Phase of CDN block header synchronization.
DeferredPaymentNetworkSource
Where a network check or a broadcast of a deferred payment goes.
DeferredPaymentState
Lifecycle of a deferred payment.
HeaderRejectReason
Why a header was not accepted.
InvoiceStatus
Messages for invoice/payment request management Status of an invoice
MerkleProofStatus
Where a stored MerkleProof stands against the local header chain (audit beads libspiffy-mny, libspiffy-azl).
SplitTransactionStatus
How one Benford split transaction ended (bead libspiffy-wdch). A split is recorded as a deferred payment before it is broadcast (bead libspiffy-ypp), so every status but notRecorded names a transaction the wallet lists (GetDeferredPaymentsQuery) until the network settles it.
StorageBackend
Available storage backend options for libspiffy.
TransactionStatus
Enumeration of transaction statuses
UTXOStatus
Enumeration of UTXO statuses
WalletType
Supported wallet types in LibSpiffy

Extensions

AddressEntityByIndex on IsarCollection<AddressEntity>
AddressEntityFormerWhereClauses on QueryBuilder<AddressEntity, AddressEntity, QWhereClause>
The where clauses of the single-property indexes that audit S-16 turned into composite indexes, kept for hosts that query these collections directly. They use the new indexes' prefixes and return the same rows.
AddressEntityQueryFilter on QueryBuilder<AddressEntity, AddressEntity, QFilterCondition>
AddressEntityQueryObject on QueryBuilder<AddressEntity, AddressEntity, QFilterCondition>
AddressEntityQueryProperty on QueryBuilder<AddressEntity, AddressEntity, QQueryProperty>
AddressEntityQuerySortBy on QueryBuilder<AddressEntity, AddressEntity, QSortBy>
AddressEntityQuerySortThenBy on QueryBuilder<AddressEntity, AddressEntity, QSortThenBy>
AddressEntityQueryWhere on QueryBuilder<AddressEntity, AddressEntity, QWhereClause>
AddressEntityQueryWhereDistinct on QueryBuilder<AddressEntity, AddressEntity, QDistinct>
AddressEntityQueryWhereSort on QueryBuilder<AddressEntity, AddressEntity, QWhere>
AncestorTransactionEntityByIndex on IsarCollection<AncestorTransactionEntity>
AncestorTransactionEntityQueryFilter on QueryBuilder<AncestorTransactionEntity, AncestorTransactionEntity, QFilterCondition>
AncestorTransactionEntityQueryObject on QueryBuilder<AncestorTransactionEntity, AncestorTransactionEntity, QFilterCondition>
AncestorTransactionEntityQueryProperty on QueryBuilder<AncestorTransactionEntity, AncestorTransactionEntity, QQueryProperty>
AncestorTransactionEntityQuerySortBy on QueryBuilder<AncestorTransactionEntity, AncestorTransactionEntity, QSortBy>
AncestorTransactionEntityQuerySortThenBy on QueryBuilder<AncestorTransactionEntity, AncestorTransactionEntity, QSortThenBy>
AncestorTransactionEntityQueryWhere on QueryBuilder<AncestorTransactionEntity, AncestorTransactionEntity, QWhereClause>
AncestorTransactionEntityQueryWhereDistinct on QueryBuilder<AncestorTransactionEntity, AncestorTransactionEntity, QDistinct>
AncestorTransactionEntityQueryWhereSort on QueryBuilder<AncestorTransactionEntity, AncestorTransactionEntity, QWhere>
BitcoinTransactionEntityByIndex on IsarCollection<BitcoinTransactionEntity>
BitcoinTransactionEntityFormerWhereClauses on QueryBuilder<BitcoinTransactionEntity, BitcoinTransactionEntity, QWhereClause>
See AddressEntityFormerWhereClauses.
BitcoinTransactionEntityQueryFilter on QueryBuilder<BitcoinTransactionEntity, BitcoinTransactionEntity, QFilterCondition>
BitcoinTransactionEntityQueryObject on QueryBuilder<BitcoinTransactionEntity, BitcoinTransactionEntity, QFilterCondition>
BitcoinTransactionEntityQueryProperty on QueryBuilder<BitcoinTransactionEntity, BitcoinTransactionEntity, QQueryProperty>
BitcoinTransactionEntityQuerySortBy on QueryBuilder<BitcoinTransactionEntity, BitcoinTransactionEntity, QSortBy>
BitcoinTransactionEntityQuerySortThenBy on QueryBuilder<BitcoinTransactionEntity, BitcoinTransactionEntity, QSortThenBy>
BitcoinTransactionEntityQueryWhere on QueryBuilder<BitcoinTransactionEntity, BitcoinTransactionEntity, QWhereClause>
BitcoinTransactionEntityQueryWhereDistinct on QueryBuilder<BitcoinTransactionEntity, BitcoinTransactionEntity, QDistinct>
BitcoinTransactionEntityQueryWhereSort on QueryBuilder<BitcoinTransactionEntity, BitcoinTransactionEntity, QWhere>
BitcoinUtxoEntityByIndex on IsarCollection<BitcoinUtxoEntity>
BitcoinUtxoEntityQueryFilter on QueryBuilder<BitcoinUtxoEntity, BitcoinUtxoEntity, QFilterCondition>
BitcoinUtxoEntityQueryObject on QueryBuilder<BitcoinUtxoEntity, BitcoinUtxoEntity, QFilterCondition>
BitcoinUtxoEntityQueryProperty on QueryBuilder<BitcoinUtxoEntity, BitcoinUtxoEntity, QQueryProperty>
BitcoinUtxoEntityQuerySortBy on QueryBuilder<BitcoinUtxoEntity, BitcoinUtxoEntity, QSortBy>
BitcoinUtxoEntityQuerySortThenBy on QueryBuilder<BitcoinUtxoEntity, BitcoinUtxoEntity, QSortThenBy>
BitcoinUtxoEntityQueryWhere on QueryBuilder<BitcoinUtxoEntity, BitcoinUtxoEntity, QWhereClause>
BitcoinUtxoEntityQueryWhereDistinct on QueryBuilder<BitcoinUtxoEntity, BitcoinUtxoEntity, QDistinct>
BitcoinUtxoEntityQueryWhereSort on QueryBuilder<BitcoinUtxoEntity, BitcoinUtxoEntity, QWhere>
BlockHeaderEntityByIndex on IsarCollection<BlockHeaderEntity>
BlockHeaderEntityQueryFilter on QueryBuilder<BlockHeaderEntity, BlockHeaderEntity, QFilterCondition>
BlockHeaderEntityQueryObject on QueryBuilder<BlockHeaderEntity, BlockHeaderEntity, QFilterCondition>
BlockHeaderEntityQueryProperty on QueryBuilder<BlockHeaderEntity, BlockHeaderEntity, QQueryProperty>
BlockHeaderEntityQuerySortBy on QueryBuilder<BlockHeaderEntity, BlockHeaderEntity, QSortBy>
BlockHeaderEntityQuerySortThenBy on QueryBuilder<BlockHeaderEntity, BlockHeaderEntity, QSortThenBy>
BlockHeaderEntityQueryWhere on QueryBuilder<BlockHeaderEntity, BlockHeaderEntity, QWhereClause>
BlockHeaderEntityQueryWhereDistinct on QueryBuilder<BlockHeaderEntity, BlockHeaderEntity, QDistinct>
BlockHeaderEntityQueryWhereSort on QueryBuilder<BlockHeaderEntity, BlockHeaderEntity, QWhere>
DeferredPaymentEntityByIndex on IsarCollection<DeferredPaymentEntity>
DeferredPaymentEntityQueryFilter on QueryBuilder<DeferredPaymentEntity, DeferredPaymentEntity, QFilterCondition>
DeferredPaymentEntityQueryObject on QueryBuilder<DeferredPaymentEntity, DeferredPaymentEntity, QFilterCondition>
DeferredPaymentEntityQueryProperty on QueryBuilder<DeferredPaymentEntity, DeferredPaymentEntity, QQueryProperty>
DeferredPaymentEntityQuerySortBy on QueryBuilder<DeferredPaymentEntity, DeferredPaymentEntity, QSortBy>
DeferredPaymentEntityQuerySortThenBy on QueryBuilder<DeferredPaymentEntity, DeferredPaymentEntity, QSortThenBy>
DeferredPaymentEntityQueryWhere on QueryBuilder<DeferredPaymentEntity, DeferredPaymentEntity, QWhereClause>
DeferredPaymentEntityQueryWhereDistinct on QueryBuilder<DeferredPaymentEntity, DeferredPaymentEntity, QDistinct>
DeferredPaymentEntityQueryWhereSort on QueryBuilder<DeferredPaymentEntity, DeferredPaymentEntity, QWhere>
GetAddressEntityCollection on Isar
GetAncestorTransactionEntityCollection on Isar
GetBitcoinTransactionEntityCollection on Isar
GetBitcoinUtxoEntityCollection on Isar
GetBlockHeaderEntityCollection on Isar
GetDeferredPaymentEntityCollection on Isar
GetInvoiceEntityCollection on Isar
GetMerkleProofEntityCollection on Isar
GetPaymentChannelEntityCollection on Isar
GetPendingReceiveEntityCollection on Isar
GetTransactionAddressEntityCollection on Isar
GetWalletMetadataEntityCollection on Isar
InvoiceEntityByIndex on IsarCollection<InvoiceEntity>
InvoiceEntityQueryFilter on QueryBuilder<InvoiceEntity, InvoiceEntity, QFilterCondition>
InvoiceEntityQueryObject on QueryBuilder<InvoiceEntity, InvoiceEntity, QFilterCondition>
InvoiceEntityQueryProperty on QueryBuilder<InvoiceEntity, InvoiceEntity, QQueryProperty>
InvoiceEntityQuerySortBy on QueryBuilder<InvoiceEntity, InvoiceEntity, QSortBy>
InvoiceEntityQuerySortThenBy on QueryBuilder<InvoiceEntity, InvoiceEntity, QSortThenBy>
InvoiceEntityQueryWhere on QueryBuilder<InvoiceEntity, InvoiceEntity, QWhereClause>
InvoiceEntityQueryWhereDistinct on QueryBuilder<InvoiceEntity, InvoiceEntity, QDistinct>
InvoiceEntityQueryWhereSort on QueryBuilder<InvoiceEntity, InvoiceEntity, QWhere>
MerkleProofEntityQueryFilter on QueryBuilder<MerkleProofEntity, MerkleProofEntity, QFilterCondition>
MerkleProofEntityQueryObject on QueryBuilder<MerkleProofEntity, MerkleProofEntity, QFilterCondition>
MerkleProofEntityQueryProperty on QueryBuilder<MerkleProofEntity, MerkleProofEntity, QQueryProperty>
MerkleProofEntityQuerySortBy on QueryBuilder<MerkleProofEntity, MerkleProofEntity, QSortBy>
MerkleProofEntityQuerySortThenBy on QueryBuilder<MerkleProofEntity, MerkleProofEntity, QSortThenBy>
MerkleProofEntityQueryWhere on QueryBuilder<MerkleProofEntity, MerkleProofEntity, QWhereClause>
MerkleProofEntityQueryWhereDistinct on QueryBuilder<MerkleProofEntity, MerkleProofEntity, QDistinct>
MerkleProofEntityQueryWhereSort on QueryBuilder<MerkleProofEntity, MerkleProofEntity, QWhere>
PaymentChannelEntityByIndex on IsarCollection<PaymentChannelEntity>
PaymentChannelEntityQueryFilter on QueryBuilder<PaymentChannelEntity, PaymentChannelEntity, QFilterCondition>
PaymentChannelEntityQueryObject on QueryBuilder<PaymentChannelEntity, PaymentChannelEntity, QFilterCondition>
PaymentChannelEntityQueryProperty on QueryBuilder<PaymentChannelEntity, PaymentChannelEntity, QQueryProperty>
PaymentChannelEntityQuerySortBy on QueryBuilder<PaymentChannelEntity, PaymentChannelEntity, QSortBy>
PaymentChannelEntityQuerySortThenBy on QueryBuilder<PaymentChannelEntity, PaymentChannelEntity, QSortThenBy>
PaymentChannelEntityQueryWhere on QueryBuilder<PaymentChannelEntity, PaymentChannelEntity, QWhereClause>
PaymentChannelEntityQueryWhereDistinct on QueryBuilder<PaymentChannelEntity, PaymentChannelEntity, QDistinct>
PaymentChannelEntityQueryWhereSort on QueryBuilder<PaymentChannelEntity, PaymentChannelEntity, QWhere>
PendingReceiveEntityByIndex on IsarCollection<PendingReceiveEntity>
PendingReceiveEntityQueryFilter on QueryBuilder<PendingReceiveEntity, PendingReceiveEntity, QFilterCondition>
PendingReceiveEntityQueryObject on QueryBuilder<PendingReceiveEntity, PendingReceiveEntity, QFilterCondition>
PendingReceiveEntityQueryProperty on QueryBuilder<PendingReceiveEntity, PendingReceiveEntity, QQueryProperty>
PendingReceiveEntityQuerySortBy on QueryBuilder<PendingReceiveEntity, PendingReceiveEntity, QSortBy>
PendingReceiveEntityQuerySortThenBy on QueryBuilder<PendingReceiveEntity, PendingReceiveEntity, QSortThenBy>
PendingReceiveEntityQueryWhere on QueryBuilder<PendingReceiveEntity, PendingReceiveEntity, QWhereClause>
PendingReceiveEntityQueryWhereDistinct on QueryBuilder<PendingReceiveEntity, PendingReceiveEntity, QDistinct>
PendingReceiveEntityQueryWhereSort on QueryBuilder<PendingReceiveEntity, PendingReceiveEntity, QWhere>
TransactionAddressEntityQueryFilter on QueryBuilder<TransactionAddressEntity, TransactionAddressEntity, QFilterCondition>
TransactionAddressEntityQueryObject on QueryBuilder<TransactionAddressEntity, TransactionAddressEntity, QFilterCondition>
TransactionAddressEntityQueryProperty on QueryBuilder<TransactionAddressEntity, TransactionAddressEntity, QQueryProperty>
TransactionAddressEntityQuerySortBy on QueryBuilder<TransactionAddressEntity, TransactionAddressEntity, QSortBy>
TransactionAddressEntityQuerySortThenBy on QueryBuilder<TransactionAddressEntity, TransactionAddressEntity, QSortThenBy>
TransactionAddressEntityQueryWhere on QueryBuilder<TransactionAddressEntity, TransactionAddressEntity, QWhereClause>
TransactionAddressEntityQueryWhereDistinct on QueryBuilder<TransactionAddressEntity, TransactionAddressEntity, QDistinct>
TransactionAddressEntityQueryWhereSort on QueryBuilder<TransactionAddressEntity, TransactionAddressEntity, QWhere>
WalletMetadataEntityByIndex on IsarCollection<WalletMetadataEntity>
WalletMetadataEntityQueryFilter on QueryBuilder<WalletMetadataEntity, WalletMetadataEntity, QFilterCondition>
WalletMetadataEntityQueryObject on QueryBuilder<WalletMetadataEntity, WalletMetadataEntity, QFilterCondition>
WalletMetadataEntityQueryProperty on QueryBuilder<WalletMetadataEntity, WalletMetadataEntity, QQueryProperty>
WalletMetadataEntityQuerySortBy on QueryBuilder<WalletMetadataEntity, WalletMetadataEntity, QSortBy>
WalletMetadataEntityQuerySortThenBy on QueryBuilder<WalletMetadataEntity, WalletMetadataEntity, QSortThenBy>
WalletMetadataEntityQueryWhere on QueryBuilder<WalletMetadataEntity, WalletMetadataEntity, QWhereClause>
WalletMetadataEntityQueryWhereDistinct on QueryBuilder<WalletMetadataEntity, WalletMetadataEntity, QDistinct>
WalletMetadataEntityQueryWhereSort on QueryBuilder<WalletMetadataEntity, WalletMetadataEntity, QWhere>
WalletTypeExtension on WalletType

Constants

AddressEntitySchema → const CollectionSchema<AddressEntity>
AncestorTransactionEntitySchema → const CollectionSchema<AncestorTransactionEntity>
beefMagicAndVersion → const int
BeefMagicAndVersion is the magic bytes and version for BEEF format (0100BEEF)
BitcoinTransactionEntitySchema → const CollectionSchema<BitcoinTransactionEntity>
BitcoinUtxoEntitySchema → const CollectionSchema<BitcoinUtxoEntity>
BlockHeaderEntitySchema → const CollectionSchema<BlockHeaderEntity>
DeferredPaymentEntitySchema → const CollectionSchema<DeferredPaymentEntity>
InvoiceEntitySchema → const CollectionSchema<InvoiceEntity>
MerkleProofEntitySchema → const CollectionSchema<MerkleProofEntity>
PaymentChannelEntitySchema → const CollectionSchema<PaymentChannelEntity>
PendingReceiveEntitySchema → const CollectionSchema<PendingReceiveEntity>
TransactionAddressEntitySchema → const CollectionSchema<TransactionAddressEntity>
WalletMetadataEntitySchema → const CollectionSchema<WalletMetadataEntity>

Functions

frozenOutputSpec(InvoiceOutputSpec output) → InvoiceOutputSpec
output with unmodifiable collections that no caller shares.
frozenOutputSpecs(Iterable<InvoiceOutputSpec> specs) → List<InvoiceOutputSpec>
specs copied into an unmodifiable list of frozenOutputSpecs.
frozenOutputSpecsOrNull(Iterable<InvoiceOutputSpec>? specs) → List<InvoiceOutputSpec>?
frozenOutputSpecs for a field that may be null.
getLibSpiffySystem() → LibSpiffyActorSystem
Get or create the global LibSpiffy actor system instance
initializeLibSpiffy({ActorSystem? actorSystem, String? dataDirectory, ActorSystemConfig? config, ReadModelStorage? readModelStorage, SecureStorage? secureStorage, CryptoService? cryptoService, ArcServiceConfig? arcConfig, Isar? isar, IsolateConfig? isolateConfig, String networkType = 'test', bool enableP2P = true, int? startHeight, List<String>? peerAddresses, String? userAgent, String channelPeerId = '', ChannelTiming? channelTiming}) → Future<void>
Initialize the global LibSpiffy actor system instance
outputsAwaitingAncestorProof(ReadModelStorage storage, String walletId, {int maxDepth = 20}) → Future<List<OutputAwaitingProof>>
The shared implementation of ReadModelStorage.getOutputsAwaitingAncestorProof, in terms of the interface's own reads, so every backend answers it the same way (bead libspiffy-0lx). Backends call it from their override.
shutdownLibSpiffy() → Future<void>
Shutdown the global LibSpiffy actor system instance

Typedefs

CdnSyncProgressCallback = void Function(int current, int total, CdnSyncPhase phase)
Callback type for CDN sync progress reporting.
SigningCallback = Uint8List Function(Uint8List sighash, int inputIndex)
A synchronous function that signs a sighash and returns a DER-encoded signature.
SigningCallbackWithScript = Uint8List Function(Uint8List sighash, int inputIndex, Uint8List scriptPubKey)
Extended signing callback that receives the locking script of the output being spent, enabling per-input key derivation.
TransactionLookup = Future<String?> Function(String txid)
Callback for resolving raw transaction hex by txid from the wallet's append-only transaction log.

Exceptions / Errors

ArcException
Exception thrown by ARC service operations
BEEFException
BUMPException
CryptoException
Exception thrown by cryptographic operations
DataSourceException
Exception thrown by blockchain data sources
EncryptionException
Exception thrown when encryption or decryption fails.
ScriptVerificationException
Exception thrown when script verification fails
SecureStorageException
Exception thrown when secure storage operations fail.
StorageException
Exception thrown when event storage operations fail.
TransactionBuildException
Thrown when a payment channel transaction cannot be built (insufficient funds, invalid parameters, missing keys).
TransactionImportException
Exception thrown during transaction import