Package 

Interface ElectrumClientInterface


  • 
    public interface ElectrumClientInterface
    
                        

    Wrapper around an electrum_client::ElectrumApi which includes an internal in-memory transaction cache to avoid re-fetching already downloaded transactions.

    • Method Detail

      • blockHeadersPop

         abstract HeaderNotification blockHeadersPop()

        Tries to pop one queued notification for a new block header that we might have received. Returns None if there are no items in the queue.

      • estimateFee

         abstract Double estimateFee(ULong number)

        Estimates the fee required in bitcoin per kilobyte to confirm a transaction in number blocks.

      • 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, see FullScanRequest.

        • 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 previous TxOuts for 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 like Wallet.calculate_fee and Wallet.calculate_fee_rate will return a CalculateFeeError::MissingTxOut error if those TxOuts are not present in the transaction graph.

      • ping

         abstract Unit ping()

        Pings the server.

      • relayFee

         abstract Double relayFee()

        Returns the minimum accepted fee by the server’s node in Bitcoin, not Satoshi.

      • 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, see SyncRequest.

        • batch_size: specifies the max number of script pubkeys to request for in a single batch request.

        • fetch_prev_txouts: specifies whether we want previous TxOuts for 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 like Wallet.calculate_fee and Wallet.calculate_fee_rate will return a CalculateFeeError::MissingTxOut error 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.