Package foundation.omni.tx
Class OmniTxBuilder
java.lang.Object
foundation.omni.tx.OmniTxBuilder
Builds Omni transactions in bitcoinj Transaction objects
-
Constructor Summary
ConstructorDescriptionOmniTxBuilder
(OmniNetwork omniNetwork) OmniTxBuilder
(OmniNetwork omniNetwork, FeeCalculator feeCalculator) OmniTxBuilder
(org.bitcoinj.base.BitcoinNetwork bitcoinNetwork) OmniTxBuilder
(org.bitcoinj.base.BitcoinNetwork bitcoinNetwork, FeeCalculator feeCalculator) -
Method Summary
Modifier and TypeMethodDescriptionorg.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 objectorg.bitcoinj.core.Transaction
createClassCTransaction
(org.bitcoinj.base.Address refAddress, byte[] payload) Create unsigned Class C Omni transaction in a bitcoinj Transaction objectorg.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 objectorg.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 objectorg.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 objectorg.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 Transactionorg.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 objectorg.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
-
Constructor Details
-
OmniTxBuilder
public OmniTxBuilder(org.bitcoinj.base.BitcoinNetwork bitcoinNetwork) -
OmniTxBuilder
-
OmniTxBuilder
-
OmniTxBuilder
- Parameters:
omniNetwork
- The network to construct transactions forfeeCalculator
- 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 nullpayload
- 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 nullpayload
- 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 outputsscriptType
- script type for redeemingKey address - P2PKH or other single-key script typerefAddress
- (optional) Omni reference address (for the reference output) or nullpayload
- 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 tounspentOutputs
- A collection of unspent outputs for funding the transactionrefAddress
- 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 toscriptType
- Script Type to use (alternatively we could take an address??)unspentOutputs
- A collection of unspent outputs for funding the transactionrefAddress
- 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 feesorg.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 toinputs
- - a collection of inputs to add to the transactionrefAddress
- 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 fromunspentOutputs
- A collection of unspent outputs for funding the transactiontoAddress
- The Omni reference address (for the reference output, destination address in this case)currencyID
- The Omni currency IDamount
- 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 frominputs
- unsigned inputs to use for the transactiontoAddress
- The Omni reference address (for the reference output, destination address in this case)currencyID
- The Omni currency IDamount
- The currency amount in willetts- Returns:
- unsigned transaction
- Throws:
org.bitcoinj.core.InsufficientMoneyException
- Not enough bitcoin for fees
-