Class OmniRpcClientSendingService

java.lang.Object
foundation.omni.txsigner.OmniRpcClientSendingService
All Implemented Interfaces:
OmniSendingService

public class OmniRpcClientSendingService extends Object implements OmniSendingService
A service to sign and send Omni Transactions (similar to functionality in Omni Core). Uses a JSON-RPC client to connect to a ConsensusJ SPV-wallet-daemon. (In the future we may support Bitcoin Core and Omni Core nodes as well.)
  • Constructor Details

    • OmniRpcClientSendingService

      public OmniRpcClientSendingService(BitcoinClient bitcoinClient)
  • Method Details

    • omniSend

      public CompletableFuture<org.bitcoinj.base.Sha256Hash> omniSend(org.bitcoinj.base.Address fromAddress, org.bitcoinj.base.Address toAddress, CurrencyID currency, OmniValue amount) throws IOException
      Description copied from interface: OmniSendingService
      Find inputs, Sign and Send an Omni Simple Send transaction

      This method is compatible with the Omni Core omni_send JSON-RPC method and if made available from a JSON-RPC server should work equivalently. (The last two, optional arguments are not currently implemented.)

      Specified by:
      omniSend in interface OmniSendingService
      Parameters:
      fromAddress - Omni address sending funds
      toAddress - Omni address receiving funds
      currency - Currency type
      amount - amount
      Returns:
      A future for the transaction hash
      Throws:
      IOException - A failure occurred fetching inputs or broadcasting the transaction
    • omniSend

      public CompletableFuture<org.bitcoinj.base.Sha256Hash> omniSend(UnsignedTxSimpleSend simpleSend) throws IOException
      Description copied from interface: OmniSendingService
      Sign and Send an Omni Simple Send transaction. Incubating.
      Specified by:
      omniSend in interface OmniSendingService
      Parameters:
      simpleSend - An object holding all the parameters (including UTXO inputs) for a simple send transaction
      Returns:
      A future for the transaction hash
      Throws:
      IOException - A failure occurred fetching broadcasting the transaction
    • assembleSimpleSend

      public UnsignedTxSimpleSend assembleSimpleSend(org.bitcoinj.base.Address fromAddress, org.bitcoinj.base.Address toAddress, CurrencyID currency, OmniValue amount) throws IOException
      Build a complete, unsigned SimpleSend ("signing request") transaction. Fetches the transaction inputs, assembles the payload, etc.
      Specified by:
      assembleSimpleSend in interface OmniSendingService
      Parameters:
      fromAddress - Omni address sending funds
      toAddress - Omni address receiving funds
      currency - Currency type
      amount - amount
      Returns:
      A record containing all necessary data for signing
      Throws:
      IOException - if an error occurred fetching inputs
    • getInputsFor

      public List<TransactionInputData> getInputsFor(org.bitcoinj.base.Address fromAddress) throws IOException
      Fetch inputs for an address
      Specified by:
      getInputsFor in interface OmniSendingService
      Parameters:
      fromAddress - Address with zero or more UTXOs
      Returns:
      a list of all UTXOs for this address
      Throws:
      IOException - if an error occurred fetching inputs
    • sendRawTransactionAsync

      public CompletableFuture<org.bitcoinj.base.Sha256Hash> sendRawTransactionAsync(org.bitcoinj.core.Transaction tx)
      Specified by:
      sendRawTransactionAsync in interface OmniSendingService