# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
## 0.9.2
### Added
- HTTP JSON API switch to turn off transaction list when retrieving blocks.
## 0.9.1
### Added
- Total block fees.
- Total block outputs.
- Block subsidy.
### Changed
- Do not consider the blocks less one block away from headers as out of sync in health check.
- Health check now returns HTTP 503 when not OK or out of sync.
## 0.9.0
### Added
- Version to health check output.
- Block weight for segwit.
- Transaction weight for segwit.
## 0.8.1
### Added
- Health check endpoint.
## 0.8.0
### Added
- Limits and skips.
- Add timestamps to transactions.
- Add transaction count to address balance object.
- Add Merkle root to block data.
- Total funds received by an address now shows up in balance.
- Balances for any address that ever had funds show up in xpub endpoints.
### Changed
- Data model update.
- Performance improvement for xpub calls.
- Transactions are returned in reverse mempool/block order (highest or most recent first).
- Balance objects do not get deleted from database ever.
## 0.6.9
### Changed
- Reduce number of coinbase checks to 10,000 ancestors.
## 0.6.8
### Changed
- Further optimize coinbase after height checks.
## 0.6.7
### Changed
- Impose restrictions on recursion for coinbase after height checks.
## 0.6.6
### Added
- Check whether a transaction can be traced back to a coinbase after certain height.
## 0.6.5
### Changed
- Delete transactions in reverse topological order when reverting a block.
## 0.6.4
### Changed
- Do not fail silently when importing orphan transactions into the mempool.
## 0.6.3
### Changed
- Dummy release to bump haskoin-node in stack.yaml.
## 0.6.2
### Changed
- Correct bug where coinbase transactions weren't properly flagged.
## 0.6.1
### Changed
- Compatibility with Bitcoin Cash hard fork.
- Various bug fixes.
## 0.6.0
### Added
- Address balance cache in memory.
### Changed
- Simplify data model further.
- Fix bug importing outputs with UTXO cache.
- Unspent balances cannot be negative.
## 0.5.0
### Added
- Add UTXO cache in memory.
- Get transactions with witness data in segwit networks.
### Changed
- Paths for derivations in xpubs is a list and no longer a string.
- Various bug fixes.
## 0.4.2
### Removed
- Remove extended public key itself from output of relevant endpoints to save bandwidth.
## 0.4.1
### Changed
- Fix bug when deleting coinbase transactions.
- Extended public key API support.
## 0.4.0
### Changed
- Generate events for mempool transactions.
- Respond with entire block data when querying blocks by height.
## 0.3.1
### Changed
- Do not import transactions to mempool while not synced.
- Only sync mempool against a single peer.
- Allow duplicate transactions to fix re-introduced sync bug.
## 0.3.0
### Added
- Update dependencies.
- Keep orphan blocks and deleted transactions in database.
- Add a `mainchain` field for block data and a `deleted` field for transactions.
- Stream records for performance.
- Show witness data for transaction inputs in SegWit network.
- Support RBF in SegWit network.
### Changed
- Refactor all data access code away from actor.
- Refactor import logic away from actor.
- Abstract data access using typeclasses.
- Implement data access using clean layered architecture.
- Make most of import logic code pure.
- Database now in `db` as opposed to `blocks` directory.
- Use latest `haskoin-node`.
### Removed
- Remove some data from peer information output.
- Remove full transaction from address transaction data.
- Remove limits from address transaction data.
- Remove block data from previous output.
- Remove spender from JSON response when output not spent.
- Remove block hash from block reference.
## 0.2.3
### Removed
- Do not send transaction notifications if a block is being imported.
## 0.2.2
### Added
- Peer information endpoint.
### Changed
- Update `haskoin-node`.
## 0.2.1
### Changed
- Fix tests
## 0.2.0
### Added
- Documentation everywhere.
- Ability to retrieve address transactions.
### Changed
- New versions of NQE and Haskoin Node upstream.
- Improve and simplify API.
- Multi-element endpoints return arrays of arrays.
- Database snapshots for all queries are now mandatory.
### Removed
- Retrieving unspent and spent outputs for an address.
- Redundant API endpoints for multiple elements.
## 0.1.3
### Changed
- Fix a bug with transaction notifications.
- Improve handling orphan transactions.
## 0.1.2
### Changed
- Specify dependencies better.
## 0.1.1
### Changed
- Dependency `secp256k1` is now `secp256k1-haskell`.
## 0.1.0
### Added
- New `CHANGELOG.md` file.
- Bitcoin (BTC) and Bitcoin Cash (BCH) compatibility.
- RocksDB database.
- Mempool support.
- HTTP streaming for events.
- CashAddr support.
- Bech32 support.
- Rate limits.
### Changed
- Split out of former `haskoin` repository.
- Use hpack and `package.yaml`.
### Removed
- Removed Stylish Haskell configuration file.
- Remvoed `haskoin-core` and `haskoin-wallet` packages from this repository.