Class OmniTxBuilder

java.lang.Object
foundation.omni.tx.OmniTxBuilder

public class OmniTxBuilder extends Object
Builds Omni transactions in bitcoinj Transaction objects
  • Constructor Summary

    Constructors
    Constructor
    Description
     
    OmniTxBuilder(OmniNetwork omniNetwork, FeeCalculator feeCalculator)
     
    OmniTxBuilder(org.bitcoinj.base.BitcoinNetwork bitcoinNetwork)
     
    OmniTxBuilder(org.bitcoinj.base.BitcoinNetwork bitcoinNetwork, FeeCalculator feeCalculator)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    org.bitcoinj.core.Transaction
    createClassBTransaction(org.bitcoinj.crypto.ECKey redeemingKey, org.bitcoinj.base.ScriptType scriptType, org.bitcoinj.base.Address refAddress, byte[] payload)
    Create unsigned Class B Omni transaction in a bitcoinj Transaction object
    org.bitcoinj.core.Transaction
    createClassCTransaction(org.bitcoinj.base.Address refAddress, byte[] payload)
    Create unsigned Class C Omni transaction in a bitcoinj Transaction object
    org.bitcoinj.core.Transaction
    createOmniTransaction(org.bitcoinj.crypto.ECKey redeemingKey, org.bitcoinj.base.Address refAddress, byte[] payload)
    Create unsigned Omni transaction (P2PKH) in a bitcoinj Transaction object
    org.bitcoinj.core.Transaction
    createSignedClassBTransaction(org.bitcoinj.crypto.ECKey fromKey, org.bitcoinj.base.ScriptType scriptType, Collection<org.bitcoinj.core.TransactionOutput> unspentOutputs, org.bitcoinj.base.Address refAddress, byte[] payload)
    Create a signed Omni Class B (from a single address) transaction in a bitcoinj Transaction object
    org.bitcoinj.core.Transaction
    createSignedOmniTransaction(org.bitcoinj.crypto.ECKey fromKey, List<org.bitcoinj.core.TransactionOutput> unspentOutputs, org.bitcoinj.base.Address refAddress, byte[] payload)
    Create a signed Omni Class B (from a single P2PKH address) transaction in a bitcoinj Transaction object
    org.bitcoinj.core.Transaction
    createSignedSimpleSend(org.bitcoinj.crypto.ECKey fromKey, List<org.bitcoinj.core.TransactionOutput> unspentOutputs, org.bitcoinj.base.Address toAddress, CurrencyID currencyID, OmniValue amount)
    Create a signed Class B (from a single P2PKH address) simple send Transaction
    org.bitcoinj.core.Transaction
    createUnsignedOmniTransaction(org.bitcoinj.crypto.ECKey fromKey, List<org.bitcoinj.core.TransactionInput> inputs, org.bitcoinj.base.Address refAddress, byte[] payload)
    Create an unsigned Omni transaction, with unsigned inputs in a bitcoinj Transaction object
    org.bitcoinj.core.Transaction
    createUnsignedSimpleSend(org.bitcoinj.crypto.ECKey fromKey, List<org.bitcoinj.core.TransactionInput> inputs, org.bitcoinj.base.Address toAddress, CurrencyID currencyID, OmniValue amount)
    Create a signed simple send Transaction

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • OmniTxBuilder

      public OmniTxBuilder(org.bitcoinj.base.BitcoinNetwork bitcoinNetwork)
    • OmniTxBuilder

      public OmniTxBuilder(OmniNetwork omniNetwork)
    • OmniTxBuilder

      public OmniTxBuilder(org.bitcoinj.base.BitcoinNetwork bitcoinNetwork, FeeCalculator feeCalculator)
    • OmniTxBuilder

      public OmniTxBuilder(OmniNetwork omniNetwork, FeeCalculator feeCalculator)
      Parameters:
      omniNetwork - The network to construct transactions for
      feeCalculator - transaction fee calculator
  • Method Details

    • createOmniTransaction

      public org.bitcoinj.core.Transaction createOmniTransaction(org.bitcoinj.crypto.ECKey redeemingKey, org.bitcoinj.base.Address refAddress, byte[] payload)

      Create unsigned Omni transaction (P2PKH) in a bitcoinj Transaction object

      TODO: Exact output amounts.

      Parameters:
      redeemingKey - Public key used for creating redeemable multisig data outputs (for Class B)
      refAddress - (optional) Omni reference address (for the reference output) or null
      payload - Omni transaction payload as a raw byte array
      Returns:
      Incomplete Transaction, no inputs or change output
    • createClassCTransaction

      public org.bitcoinj.core.Transaction createClassCTransaction(org.bitcoinj.base.Address refAddress, byte[] payload)
      Create unsigned Class C Omni transaction in a bitcoinj Transaction object
      Parameters:
      refAddress - (optional) Omni reference address (for the reference output) or null
      payload - Omni transaction payload as a raw byte array
      Returns:
      Incomplete Transaction, no inputs or change output
    • createClassBTransaction

      public org.bitcoinj.core.Transaction createClassBTransaction(org.bitcoinj.crypto.ECKey redeemingKey, org.bitcoinj.base.ScriptType scriptType, org.bitcoinj.base.Address refAddress, byte[] payload)
      Create unsigned Class B Omni transaction in a bitcoinj Transaction object
      Parameters:
      redeemingKey - Public key used for creating redeemable multisig data outputs
      scriptType - script type for redeemingKey address - P2PKH or other single-key script type
      refAddress - (optional) Omni reference address (for the reference output) or null
      payload - Omni transaction payload as a raw byte array
      Returns:
      Incomplete Transaction, no inputs or change output
    • createSignedOmniTransaction

      public org.bitcoinj.core.Transaction createSignedOmniTransaction(org.bitcoinj.crypto.ECKey fromKey, List<org.bitcoinj.core.TransactionOutput> unspentOutputs, org.bitcoinj.base.Address refAddress, byte[] payload) throws org.bitcoinj.core.InsufficientMoneyException
      Create a signed Omni Class B (from a single P2PKH address) transaction in a bitcoinj Transaction object
      Parameters:
      fromKey - Private key/address to send from and receive change to
      unspentOutputs - A collection of unspent outputs for funding the transaction
      refAddress - The Omni reference address (for the reference output)
      payload - Omni transaction payload as a raw byte array
      Returns:
      Signed and ready-to-send Transaction
      Throws:
      org.bitcoinj.core.InsufficientMoneyException - Not enough bitcoin for fees
    • createSignedClassBTransaction

      public org.bitcoinj.core.Transaction createSignedClassBTransaction(org.bitcoinj.crypto.ECKey fromKey, org.bitcoinj.base.ScriptType scriptType, Collection<org.bitcoinj.core.TransactionOutput> unspentOutputs, org.bitcoinj.base.Address refAddress, byte[] payload) throws org.bitcoinj.core.InsufficientMoneyException
      Create a signed Omni Class B (from a single address) transaction in a bitcoinj Transaction object
      Parameters:
      fromKey - Private key/address to send from and receive change to
      scriptType - Script Type to use (alternatively we could take an address??)
      unspentOutputs - A collection of unspent outputs for funding the transaction
      refAddress - The Omni reference address (for the reference output)
      payload - Omni transaction payload as a raw byte array
      Returns:
      Signed and ready-to-send Transaction
      Throws:
      org.bitcoinj.core.InsufficientMoneyException - Not enough bitcoin for fees
      org.bitcoinj.core.InsufficientMoneyException - if unspentOutputs contain insufficient funds for the transaction
    • createUnsignedOmniTransaction

      public org.bitcoinj.core.Transaction createUnsignedOmniTransaction(org.bitcoinj.crypto.ECKey fromKey, List<org.bitcoinj.core.TransactionInput> inputs, org.bitcoinj.base.Address refAddress, byte[] payload) throws org.bitcoinj.core.InsufficientMoneyException
      Create an unsigned Omni transaction, with unsigned inputs in a bitcoinj Transaction object
      Parameters:
      fromKey - Private key/address to send from and receive change to
      inputs - - a collection of inputs to add to the transaction
      refAddress - The Omni reference address (for the reference output)
      payload - Omni transaction payload as a raw byte array
      Returns:
      Unsigned OmniTransaction Transaction
      Throws:
      org.bitcoinj.core.InsufficientMoneyException - Not enough bitcoin for fees
    • createSignedSimpleSend

      public org.bitcoinj.core.Transaction createSignedSimpleSend(org.bitcoinj.crypto.ECKey fromKey, List<org.bitcoinj.core.TransactionOutput> unspentOutputs, org.bitcoinj.base.Address toAddress, CurrencyID currencyID, OmniValue amount) throws org.bitcoinj.core.InsufficientMoneyException
      Create a signed Class B (from a single P2PKH address) simple send Transaction
      Parameters:
      fromKey - Private key (P2PKH address) to send from
      unspentOutputs - A collection of unspent outputs for funding the transaction
      toAddress - The Omni reference address (for the reference output, destination address in this case)
      currencyID - The Omni currency ID
      amount - The currency amount in willetts
      Returns:
      Signed and ready-to-send Transaction
      Throws:
      org.bitcoinj.core.InsufficientMoneyException - Not enough bitcoin for fees
    • createUnsignedSimpleSend

      public org.bitcoinj.core.Transaction createUnsignedSimpleSend(org.bitcoinj.crypto.ECKey fromKey, List<org.bitcoinj.core.TransactionInput> inputs, org.bitcoinj.base.Address toAddress, CurrencyID currencyID, OmniValue amount) throws org.bitcoinj.core.InsufficientMoneyException
      Create a signed simple send Transaction
      Parameters:
      fromKey - Private key/address to send from
      inputs - unsigned inputs to use for the transaction
      toAddress - The Omni reference address (for the reference output, destination address in this case)
      currencyID - The Omni currency ID
      amount - The currency amount in willetts
      Returns:
      unsigned transaction
      Throws:
      org.bitcoinj.core.InsufficientMoneyException - Not enough bitcoin for fees