-
public interface ElectrumClientInterfaceWrapper around an electrum_client::ElectrumApi which includes an internal in-memory transaction cache to avoid re-fetching already downloaded transactions.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public classElectrumClientInterface.Companion
-
Method Summary
Modifier and Type Method Description abstract HeaderblockHeader(ULong height)Gets the block header for height height.abstract HeaderNotificationblockHeadersPop()Tries to pop one queued notification for a new block header that we might have received. abstract HeaderNotificationblockHeadersSubscribe()Subscribes to notifications for new block headers, by sending a blockchain.headers.subscribe call. abstract DoubleestimateFee(ULong number)Estimates the fee required in bitcoin per kilobyte to confirm a transaction in numberblocks.abstract TransactionfetchTx(Txid txid)Fetch transaction of given Txid.abstract UpdatefullScan(FullScanRequest request, ULong stopGap, ULong batchSize, Boolean fetchPrevTxouts)Full scan the keychain scripts specified with the blockchain (via an Electrum client) and returns updates for bdk_chain data structures. abstract Unitping()Pings the server. abstract DoublerelayFee()Returns the minimum accepted fee by the server’s node in Bitcoin, not Satoshi. abstract ServerFeaturesResserverFeatures()Returns the capabilities of the server. abstract Updatesync(SyncRequest request, ULong batchSize, Boolean fetchPrevTxouts)Sync a set of scripts with the blockchain (via an Electrum client) for the data specified and returns updates for bdk_chain data structures. abstract TxidtransactionBroadcast(Transaction tx)Broadcasts a transaction to the network. abstract ByteArraytransactionGetRaw(Txid txid)Gets the raw bytes of a transaction with txid. -
-
Method Detail
-
blockHeader
abstract Header blockHeader(ULong height)
Gets the block header for height
height.
-
blockHeadersPop
abstract HeaderNotification blockHeadersPop()
Tries to pop one queued notification for a new block header that we might have received. Returns
Noneif there are no items in the queue.
-
blockHeadersSubscribe
abstract HeaderNotification blockHeadersSubscribe()
Subscribes to notifications for new block headers, by sending a blockchain.headers.subscribe call.
-
estimateFee
abstract Double estimateFee(ULong number)
Estimates the fee required in bitcoin per kilobyte to confirm a transaction in
numberblocks.
-
fetchTx
abstract Transaction fetchTx(Txid txid)
Fetch transaction of given
Txid.If it hits the cache it will return the cached version and avoid making the request.
-
fullScan
abstract Update fullScan(FullScanRequest request, ULong stopGap, ULong batchSize, Boolean fetchPrevTxouts)
Full scan the keychain scripts specified with the blockchain (via an Electrum client) and returns updates for bdk_chain data structures.
request: struct with data required to perform a spk-based blockchain client full scan, seeFullScanRequest.stop_gap: the full scan for each keychain stops after a gap of script pubkeys with no associated transactions.batch_size: specifies the max number of script pubkeys to request for in a single batch request.fetch_prev_txouts: specifies whether we want previousTxOutsfor fee calculation. Note that this requires additional calls to the Electrum server, but is necessary for calculating the fee on a transaction if your wallet does not own the inputs. Methods likeWallet.calculate_feeandWallet.calculate_fee_ratewill return aCalculateFeeError::MissingTxOuterror if those TxOuts are not present in the transaction graph.
-
relayFee
abstract Double relayFee()
Returns the minimum accepted fee by the server’s node in Bitcoin, not Satoshi.
-
serverFeatures
abstract ServerFeaturesRes serverFeatures()
Returns the capabilities of the server.
-
sync
abstract Update sync(SyncRequest request, ULong batchSize, Boolean fetchPrevTxouts)
Sync a set of scripts with the blockchain (via an Electrum client) for the data specified and returns updates for bdk_chain data structures.
request: struct with data required to perform a spk-based blockchain client sync, seeSyncRequest.batch_size: specifies the max number of script pubkeys to request for in a single batch request.fetch_prev_txouts: specifies whether we want previousTxOutsfor fee calculation. Note that this requires additional calls to the Electrum server, but is necessary for calculating the fee on a transaction if your wallet does not own the inputs. Methods likeWallet.calculate_feeandWallet.calculate_fee_ratewill return aCalculateFeeError::MissingTxOuterror if those TxOuts are not present in the transaction graph.
If the scripts to sync are unknown, such as when restoring or importing a keychain that may include scripts that have been used, use full_scan with the keychain.
-
transactionBroadcast
abstract Txid transactionBroadcast(Transaction tx)
Broadcasts a transaction to the network.
-
transactionGetRaw
abstract ByteArray transactionGetRaw(Txid txid)
Gets the raw bytes of a transaction with txid. Returns an error if not found.
-
-
-
-