Safe Haskell | None |
---|---|
Language | Haskell2010 |
This module provides functionality to manipulate raw transaction. It
automatically interprets transactions using the `bitcoin-tx` package, so
you can work with actual Transaction
objects rather than their
serialized format.
- create :: Client -> [UnspentTransaction] -> [(Address, Btc)] -> IO Transaction
- sign :: Client -> Transaction -> Maybe [UnspentTransaction] -> Maybe [PrivateKey] -> IO (Transaction, Bool)
- send :: Client -> Transaction -> IO TransactionId
- list :: Client -> Maybe Integer -> Maybe Integer -> IO [Transaction]
Documentation
:: Client | The client session we are using |
-> [UnspentTransaction] | The inputs we are using for this transaction |
-> [(Address, Btc)] | A key/value pair which associates a destination address with a specific amount of bitcoins to send. |
-> IO Transaction |
Creates a new transaction, but does not sign or submit it yet. You provide a set of unspent transactions that you have the authority to spend, and you provide a destination for all your bitcoins.
WARNING: Check your math! If the sum of the Btc in unspent transactions of your request is more than the sum of the Btc in the destinations, this will be the miner's fee. It is reasonable to leave a small amount for the miners, but if there is a large discrepancy between input and output, there are no guarantees you will be warned.
All this function does is create a default script on how to spend coins from one or more inputs to one or more outputs. Checking and verifying the transaction will only happen when you actually submit the transaction to the network.
:: Client | Our client context |
-> Transaction | The transaction to sign |
-> Maybe [UnspentTransaction] | Previous outputs being spent by this transaction |
-> Maybe [PrivateKey] | Private keys to use for signing. |
-> IO (Transaction, Bool) | The signed transaction, and a boolean that is true when the signing is complete or and is false when more signatures are required. |
Signs a raw transaction with configurable parameters.
send :: Client -> Transaction -> IO TransactionId Source
Sends a transaction through the Bitcoin network
:: Client | Our client session context |
-> Maybe Integer | The offset / height we should start listing transactions |
-> Maybe Integer | Minimum amount of confirmations for a transaction to have. Should be 1 or higher. A default value of 6 is used. |
-> IO [Transaction] |
Returns a list of transactions that occured since a certain block height. If no block height was provided, the genisis block with height 0 is assumed. The transactions returned are listed chronologically.