Skip to content

Commit efd19c2

Browse files
Merge pull request #11 from haskell-bitcoin/feature/bch-purge
first pass at cleaning out bch related code
2 parents 41a92ea + 543ee7c commit efd19c2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+2527
-3123
lines changed

CHANGELOG.md

Lines changed: 4 additions & 306 deletions
Original file line numberDiff line numberDiff line change
@@ -1,315 +1,13 @@
11
# Changelog
2+
23
All notable changes to this project will be documented in this file.
34

45
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
56
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
67

7-
## 0.21.2
8-
### Changed
9-
- Serialisation test now works for both strict and lazy bytestrings.
10-
11-
## 0.21.1
12-
### Changed
13-
- Make Base58 faster.
14-
15-
## 0.21.0
16-
### Added
17-
- BCH Testnet4 support.
18-
19-
### Changed
20-
- Use a newtype for Fingerprint, which uses an 8 digit hex string for various
21-
instances. This fixes inconsistent (de)serialization across the package.
22-
23-
### Fixed
24-
- Makes `finalScriptWitness` field encoding conform to bitcoin core.
25-
- Fixes bug in `finalizeTransaction`
26-
27-
### Added
28-
- Signing support for PSBTs
29-
- Helper function for merging PSBTs
30-
- More PSBT tests
31-
- Partial support for taproot
32-
33-
## 0.20.5
34-
### Added
35-
- Support Bech32m address format for Taproot.
36-
37-
## 0.20.4
38-
### Fixed
39-
- Add missing case for witness version.
40-
41-
## 0.20.3
42-
### Fixed
43-
- Allow unknown inv types.
44-
45-
## 0.20.2
46-
### Fixed
47-
- Allow unknown messages of zero length.
48-
49-
## 0.20.1
50-
### Fixed
51-
- Correct case where binary search returned the wrong element.
52-
53-
## 0.20.0
54-
### Chaged
55-
- Use bytes instead of binary or cereal.
56-
57-
## 0.19.0
58-
### Added
59-
- Hashable instances for extended keys.
60-
61-
### Changed
62-
- Mnemonic passphrases now `Text` instead of `ByteString`.
63-
64-
### Fixed
65-
- Tests now pass for witness addresses.
66-
67-
## 0.18.0
68-
### Added
69-
- Support SegWit addresses with version other than 0.
70-
71-
## 0.17.6
72-
### Added
73-
- Serialize instances for `XPubKey` and `XPrvKey`.
74-
75-
## 0.17.5
76-
### Fixed
77-
- Handle special case in block header binary search function.
78-
79-
## 0.17.4
80-
### Fixed
81-
- Bounds check too restrictive in block header binary search function.
82-
83-
## 0.17.3
84-
### Changed
85-
- Reduce minimum version of text package dependency.
86-
87-
## 0.17.2
88-
### Changed
89-
- Update lists of seeds for all networks.
90-
91-
## 0.17.1
92-
### Changed
93-
- Use the C-preprocessor to handle versions of `base16-bytestring` including 1.0
94-
(with a breaking API change)
95-
96-
## 0.17.0
97-
### Added
98-
- Support for Bitcoin Cash November 2020 hard fork.
99-
- Functions to find block headers matching arbitrary sorted attributes.
100-
101-
### Removed
102-
- GenesisNode constructor for BlockNode type.
103-
104-
## 0.15.0
105-
### Added
106-
- Add more test vectors
107-
108-
### Changed
109-
- stringToAddr renamed to textToAddr
110-
- Move ScriptOutput to Standard.hs
111-
- Move WIF encoding/decoding to Keys.hs
112-
- (breaking) rename `OP_NOP2` and `OP_NOP3` to `OP_CHECKLOCKTIMEVERIFY` and
113-
`OP_CHECKSEQUENCEVERIFY` resp.
114-
- Update to latest secp256k1 bindings.
115-
116-
## 0.14.1
117-
### Fixed
118-
- Correct some Bitcoin Cash Testnet3 seeds.
119-
- Add helpers for writing Data.Serialize and Data.Aeson identity tests
120-
121-
## 0.14.0
122-
### Changed
123-
- Expose all modules for tests.
124-
- Tests depend on library instead of having access to its source code.
125-
- Use MIT license.
126-
- Update seeds.
127-
- Bump secp256k1-haskell dependency.
128-
129-
## 0.13.6
130-
### Changed
131-
- Expose the Arbitrary test instances under Haskoin.Util.Arbitrary
132-
133-
## 0.13.5
134-
### Changed
135-
- Provide meaningful JSON instances for most types.
136-
137-
## 0.13.4
138-
### Added
139-
- Support for Bitcoin Cash May 2020 hard fork.
140-
141-
## 0.13.3
142-
### Changed
143-
- Improve code and documentation organisation.
144-
145-
## 0.13.2
146-
### Changed
147-
- Move all packages from Network.Haskoin namespace to Haskoin namespace.
148-
- Expose all top-level modules directly.
149-
150-
## 0.13.1
151-
### Changed
152-
- Faster JSON serialization.
153-
154-
## 0.13.0
155-
### Changed
156-
- Consolidate all modules in Haskoin module.
157-
158-
### Removed
159-
- Deprecate Network.Haskoin namespace.
160-
- Hide QuickCheck generators in test suite.
161-
162-
## 0.12.0
163-
### Added
164-
- Support for signing segwit transactions.
165-
166-
## 0.11.0
167-
### Added
168-
- High-level representation of segwit v0 data and auxilliary functions.
169-
170-
### Changed
171-
- Adds handling of segwit signing parameters to transaction signing code.
172-
173-
## 0.10.1
174-
### Added
175-
- Lower bound versions for some dependencies.
176-
177-
## 0.10.0
178-
### Added
179-
- DeepSeq instances for all data types.
180-
181-
### Changed
182-
- There is no `SockAddr` inside `NetworkAddress` anymore.
183-
184-
## 0.9.8
185-
### Added
186-
- Ord instance for `DerivPathI`
187-
188-
## 0.9.7
189-
### Added
190-
- JSON encoding/decoding for blocks.
191-
192-
### Fixed
193-
- Fix lowercase HRP test for Bech32.
194-
195-
## 0.9.6
196-
### Added
197-
- `bloomRelevantUpdate` implementation for Bloom filters (thanks to @IlyasRidhuan).
198-
199-
### Fixed
200-
- Fix for Bech32 encoding (thanks to @pavel-main).
201-
202-
## 0.9.5
203-
### Added
204-
- Expose functions added in 0.9.4.
205-
206-
## 0.9.4
207-
### Added
208-
- Support for (P2SH-)P2WPKH addresses derived from extended keys.
209-
210-
### Changed
211-
- Change names of backwards-compatible P2SH-P2WPKH functions from 0.9.3.
212-
213-
## 0.9.3
214-
### Added
215-
- Some support for P2WPKH-over-P2SH addresses.
216-
217-
## 0.9.2
218-
### Removed
219-
- Disable unnecessary `-O2` optimisation added in previous version.
220-
221-
### Added
222-
- Allow decoding unknown P2P messages.
223-
224-
## 0.9.1
225-
### Added
226-
- Add a function to produce a structured signature over a transaction.
227-
- Enable `-O2` optimisations.
228-
229-
## 0.9.0
230-
### Changed
231-
- Address conversion to string now defined for all inputs.
232-
233-
## 0.8.4
234-
### Added
235-
- Add reward computation to block functions.
236-
- Add PSBT [BIP-174](https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki) types and functions
237-
238-
## 0.8.3
239-
### Added
240-
- Add reward halving interval parameter to network constants.
241-
242-
## 0.8.2
243-
### Added
244-
- Recognize `OP_CHECKDATASIG` and `OP_CHECKDATASIGVERIFY` opcodes.
245-
246-
## 0.8.1
247-
### Added
248-
- Add instances of `Hashable` and `Generic` where possible.
249-
250-
## 0.8.0
251-
### Removed
252-
- Remove `deepseq` dependency.
253-
- Remove network constant reference from address and extended keys.
254-
255-
## 0.7.0
256-
### Added
257-
- Add `Serialize` instance for network constants.
258-
- Add `Serialize` instance for addresses that includes network constants.
259-
260-
### Changed
261-
- Move functions related to addresses from `Script` to `Address` module.
262-
263-
## 0.6.1
264-
### Added
265-
- Compatibility with latest GHC and base.
266-
267-
### Changed
268-
- Update minimum base to 4.9.
269-
270-
## 0.6.0
271-
### Changed
272-
- Force initialization of addresses through smart constructor.
273-
- Assume addresses are always valid when instantiated in code.
274-
- Allow to provide unwrapped private keys to transaction signing functions.
275-
276-
## 0.5.2
277-
### Changed
278-
- Make dependencies more specific.
279-
280-
## 0.5.1
281-
### Changed
282-
- Remove some unneeded dependencies from `stack.yaml`.
283-
- Change `secp256k1` dependency to `secp256k1-haskell`.
284-
285-
## 0.5.0
286-
### Added
287-
- Support for Bitcoin Cash network block sychronization.
288-
- Support for Bitcoin Cash signatures.
289-
- Initial work on SegWit support.
290-
- New version of `secp256k1` bindings.
291-
- Block header validation.
292-
- Support for RegTest networks on Bitcoin and Bitcoin Cash.
293-
- Support for Bitcoin Cash Testnet3 Network.
294-
- Support for new Haskoin Wallet.
295-
- Minikey decoding for Casascius coins.
296-
- New tests for various networks and new features.
297-
- Added `CHANGELOG.md` file.
298-
- Support for SegWit addresses.
299-
- Support for CashAddr addresses.
8+
## 0.1.0
3009

30110
### Changed
302-
- Use of hpack `package.yaml` file to auto-generate Cabal file.
303-
- Removal of dependency version limits, relying on `stack.yaml` instead.
304-
- Tests moved to `hspec`.
305-
- New documentation.
306-
- Updated `.gitignore`.
307-
- Renamed network constants to use same style for BTC and BCH.
308-
- Network constants must be passed explicitly.
309-
- Target LTS Haskell 12.9.
31011

311-
### Removed
312-
- Removed `.stylish-haskell.yaml` files.
313-
- Removed old `haskoin-node` and `haskoin-wallet` packages from main repository.
314-
- Removed support for non-strict signatures and related tests.
315-
- Removed script evaluator and related tests.
12+
- Forked from `haskoin-core` 0.21.1
13+
- Removed Bitcoin Cash support

LICENSE

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,12 @@
11
Copyright 2020 Haskoin Developers
2+
Copyright 2022 Haskell-Bitcoin Developers
23

3-
Permission is hereby granted, free of charge, to any person obtaining a copy of
4-
this software and associated documentation files (the "Software"), to deal in
5-
the Software without restriction, including without limitation the rights to
6-
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
7-
the Software, and to permit persons to whom the Software is furnished to do so,
8-
subject to the following conditions:
4+
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
95

10-
The above copyright notice and this permission notice shall be included in all
11-
copies or substantial portions of the Software.
6+
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
127

13-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
15-
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
16-
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
17-
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
18-
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
8+
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
199

10+
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
11+
12+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

README.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
11
# Haskoin Core
22

3-
Haskoin Core is a library of Bitcoin and Bitcoin Cash functions written in Haskell featuring:
3+
Haskoin Core is a library of Bitcoin functions written in Haskell featuring:
44

55
- Hashing functions (SHA-256, RIPEMD-160)
66
- Base58 support
7-
- CashAddr support
87
- Bech32 suport
98
- BIP32 extended key derivation and parsing (m/1'/2/3)
109
- BIP39 mnemonic keys
1110
- ECDSA secp256k1 cryptographic primitives
1211
- Script parsing
1312
- Building and signing of standard transactions (regular, multisig, p2sh, segwit)
14-
- Parsing and manipulation of all Bitcoin and Bitcoin Cash protocol messages
13+
- Parsing and manipulation of all Bitcoin protocol messages
1514
- Bloom filters and partial merkle trees (used in SPV wallets)
1615
- Comprehensive test suite
1716

1817
## Contributing
1918

20-
Please use `ormolu` (or `fourmolu`) to format code prior to submission. See `scripts/pre-commit.sh` for an example pre-commit hook.
19+
Please use `fourmolu` to format code prior to submission.

Setup.hs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
import Distribution.Simple
2+
3+
24
main = defaultMain

0 commit comments

Comments
 (0)