Class ElectrumClient

  • All Implemented Interfaces:
    java.lang.AutoCloseable , org.bitcoindevkit.Disposable , org.bitcoindevkit.ElectrumClientInterface

    public class ElectrumClient
     implements Disposable, AutoCloseable, ElectrumClientInterface
                        

    Wrapper 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
    • Field Summary

      Fields 
      Modifier and Type Field Description
    • Constructor Summary

      Constructors 
      Constructor Description
      ElectrumClient(Pointer pointer)
      ElectrumClient(NoPointer noPointer) This constructor can be used to instantiate a fake object.
      ElectrumClient(String url) Creates a new bdk client from a electrum_client::ElectrumApi
    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
    • Constructor Detail

      • ElectrumClient

        ElectrumClient(Pointer pointer)
      • ElectrumClient

        ElectrumClient(NoPointer noPointer)
        This constructor can be used to instantiate a fake object.
      • ElectrumClient

        ElectrumClient(String url)
        Creates a new bdk client from a electrum_client::ElectrumApi
    • Method Detail

      • estimateFee

         Double estimateFee(ULong number)

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

      • fullScan

         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.

      • sync

         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.