From 8c6700dfdcacbc74449b1636273aed303d59d67e Mon Sep 17 00:00:00 2001 From: Matthew Wraith Date: Wed, 22 Feb 2023 10:26:23 -0800 Subject: [PATCH] Split test and bench out to separate packages (#43) --- .github/workflows/build.yaml | 9 +- .github/workflows/hlint.yaml | 17 +- {benchmark => bitcoin-bench}/Main.hs | 0 bitcoin-bench/bitcoin-bench.cabal | 47 ++++ {data => bitcoin-bench/data}/block-758000.dat | 0 {data => bitcoin-bench/data}/block-758100.dat | 0 {data => bitcoin-bench/data}/block-758200.dat | 0 {data => bitcoin-bench/data}/block-758300.dat | 0 {data => bitcoin-bench/data}/tx-A.dat | 0 {data => bitcoin-bench/data}/tx-B.dat | 0 {data => bitcoin-bench/data}/tx-C.dat | 0 bitcoin-bench/package.yaml | 28 +++ bitcoin-test/bitcoin-test.cabal | 118 ++++++++++ {data => bitcoin-test/data}/bip341.json | 0 {data => bitcoin-test/data}/complex_psbt.json | 0 .../data}/forkid_script_tests.json | 0 .../data}/forkid_sighash.json | 0 .../data}/key_io_invalid.json | 0 {data => bitcoin-test/data}/key_io_valid.json | 0 .../data}/rfc6979DERabc.json | 0 .../data}/rfc6979DERcore.json | 0 {data => bitcoin-test/data}/rfc6979abc.json | 0 {data => bitcoin-test/data}/rfc6979core.json | 0 {data => bitcoin-test/data}/script_tests.json | 0 .../data}/sig_nonstrict.json | 0 {data => bitcoin-test/data}/sig_strict.json | 0 {data => bitcoin-test/data}/sighash.json | 0 .../data}/test_vectors_asserti3-2d_run01.txt | 0 .../data}/test_vectors_asserti3-2d_run02.txt | 0 .../data}/test_vectors_asserti3-2d_run03.txt | 0 .../data}/test_vectors_asserti3-2d_run04.txt | 0 .../data}/test_vectors_asserti3-2d_run05.txt | 0 .../data}/test_vectors_asserti3-2d_run06.txt | 0 .../data}/test_vectors_asserti3-2d_run07.txt | 0 .../data}/test_vectors_asserti3-2d_run08.txt | 0 .../data}/test_vectors_asserti3-2d_run09.txt | 0 .../data}/test_vectors_asserti3-2d_run10.txt | 0 .../data}/test_vectors_asserti3-2d_run11.txt | 0 .../data}/test_vectors_asserti3-2d_run12.txt | 0 {test => bitcoin-test/exec}/Spec.hs | 0 .../lib}/Bitcoin/Address/Bech32Spec.hs | 0 .../lib}/Bitcoin/AddressSpec.hs | 0 .../lib}/Bitcoin/BlockSpec.hs | 0 .../lib}/Bitcoin/Crypto/HashSpec.hs | 0 .../lib}/Bitcoin/Crypto/SignatureSpec.hs | 0 .../lib}/Bitcoin/Keys/ExtendedSpec.hs | 0 .../lib}/Bitcoin/Keys/MnemonicSpec.hs | 0 .../lib}/Bitcoin/KeysSpec.hs | 0 .../lib}/Bitcoin/NetworkSpec.hs | 0 {test => bitcoin-test/lib}/Bitcoin/Orphans.hs | 0 .../lib}/Bitcoin/ScriptSpec.hs | 0 .../lib}/Bitcoin/Transaction/PartialSpec.hs | 0 .../lib}/Bitcoin/Transaction/TaprootSpec.hs | 0 .../lib}/Bitcoin/TransactionSpec.hs | 0 .../lib}/Bitcoin/Util/Arbitrary.hs | 0 .../lib}/Bitcoin/Util/Arbitrary/Address.hs | 0 .../lib}/Bitcoin/Util/Arbitrary/Block.hs | 0 .../lib}/Bitcoin/Util/Arbitrary/Crypto.hs | 0 .../lib}/Bitcoin/Util/Arbitrary/Keys.hs | 0 .../lib}/Bitcoin/Util/Arbitrary/Message.hs | 0 .../lib}/Bitcoin/Util/Arbitrary/Network.hs | 0 .../lib}/Bitcoin/Util/Arbitrary/Script.hs | 0 .../Bitcoin/Util/Arbitrary/Transaction.hs | 0 .../lib}/Bitcoin/Util/Arbitrary/Util.hs | 0 .../lib}/Bitcoin/UtilSpec.hs | 0 bitcoin-test/package.yaml | 47 ++++ bitcoin.cabal | 218 ------------------ LICENSE => bitcoin/LICENSE | 0 Setup.hs => bitcoin/Setup.hs | 0 bitcoin/bitcoin.cabal | 86 +++++++ package.yaml => bitcoin/package.yaml | 31 --- {src => bitcoin/src}/Bitcoin.hs | 0 {src => bitcoin/src}/Bitcoin/Address.hs | 0 .../src}/Bitcoin/Address/Base58.hs | 0 .../src}/Bitcoin/Address/Bech32.hs | 0 {src => bitcoin/src}/Bitcoin/Block.hs | 0 {src => bitcoin/src}/Bitcoin/Block/Common.hs | 0 {src => bitcoin/src}/Bitcoin/Block/Headers.hs | 0 {src => bitcoin/src}/Bitcoin/Block/Merkle.hs | 0 {src => bitcoin/src}/Bitcoin/Constants.hs | 0 {src => bitcoin/src}/Bitcoin/Crypto.hs | 0 {src => bitcoin/src}/Bitcoin/Crypto/Hash.hs | 0 .../src}/Bitcoin/Crypto/Signature.hs | 0 {src => bitcoin/src}/Bitcoin/Data.hs | 0 {src => bitcoin/src}/Bitcoin/Keys.hs | 0 {src => bitcoin/src}/Bitcoin/Keys/Common.hs | 0 {src => bitcoin/src}/Bitcoin/Keys/Extended.hs | 0 .../src}/Bitcoin/Keys/Extended/Internal.hs | 0 {src => bitcoin/src}/Bitcoin/Keys/Mnemonic.hs | 0 {src => bitcoin/src}/Bitcoin/Network.hs | 0 {src => bitcoin/src}/Bitcoin/Network/Bloom.hs | 0 .../src}/Bitcoin/Network/Common.hs | 0 .../src}/Bitcoin/Network/Message.hs | 0 {src => bitcoin/src}/Bitcoin/Script.hs | 0 {src => bitcoin/src}/Bitcoin/Script/Common.hs | 0 .../src}/Bitcoin/Script/SigHash.hs | 0 .../src}/Bitcoin/Script/Standard.hs | 0 {src => bitcoin/src}/Bitcoin/Transaction.hs | 0 .../src}/Bitcoin/Transaction/Builder.hs | 0 .../src}/Bitcoin/Transaction/Builder/Sign.hs | 0 .../src}/Bitcoin/Transaction/Common.hs | 0 .../src}/Bitcoin/Transaction/Genesis.hs | 0 .../src}/Bitcoin/Transaction/Partial.hs | 0 .../src}/Bitcoin/Transaction/Segwit.hs | 0 .../src}/Bitcoin/Transaction/Taproot.hs | 0 {src => bitcoin/src}/Bitcoin/Util.hs | 0 hie.yaml | 12 +- scripts/format | 5 +- stack.yaml | 4 + 109 files changed, 353 insertions(+), 269 deletions(-) rename {benchmark => bitcoin-bench}/Main.hs (100%) create mode 100644 bitcoin-bench/bitcoin-bench.cabal rename {data => bitcoin-bench/data}/block-758000.dat (100%) rename {data => bitcoin-bench/data}/block-758100.dat (100%) rename {data => bitcoin-bench/data}/block-758200.dat (100%) rename {data => bitcoin-bench/data}/block-758300.dat (100%) rename {data => bitcoin-bench/data}/tx-A.dat (100%) rename {data => bitcoin-bench/data}/tx-B.dat (100%) rename {data => bitcoin-bench/data}/tx-C.dat (100%) create mode 100644 bitcoin-bench/package.yaml create mode 100644 bitcoin-test/bitcoin-test.cabal rename {data => bitcoin-test/data}/bip341.json (100%) rename {data => bitcoin-test/data}/complex_psbt.json (100%) rename {data => bitcoin-test/data}/forkid_script_tests.json (100%) rename {data => bitcoin-test/data}/forkid_sighash.json (100%) rename {data => bitcoin-test/data}/key_io_invalid.json (100%) rename {data => bitcoin-test/data}/key_io_valid.json (100%) rename {data => bitcoin-test/data}/rfc6979DERabc.json (100%) rename {data => bitcoin-test/data}/rfc6979DERcore.json (100%) rename {data => bitcoin-test/data}/rfc6979abc.json (100%) rename {data => bitcoin-test/data}/rfc6979core.json (100%) rename {data => bitcoin-test/data}/script_tests.json (100%) rename {data => bitcoin-test/data}/sig_nonstrict.json (100%) rename {data => bitcoin-test/data}/sig_strict.json (100%) rename {data => bitcoin-test/data}/sighash.json (100%) rename {data => bitcoin-test/data}/test_vectors_asserti3-2d_run01.txt (100%) rename {data => bitcoin-test/data}/test_vectors_asserti3-2d_run02.txt (100%) rename {data => bitcoin-test/data}/test_vectors_asserti3-2d_run03.txt (100%) rename {data => bitcoin-test/data}/test_vectors_asserti3-2d_run04.txt (100%) rename {data => bitcoin-test/data}/test_vectors_asserti3-2d_run05.txt (100%) rename {data => bitcoin-test/data}/test_vectors_asserti3-2d_run06.txt (100%) rename {data => bitcoin-test/data}/test_vectors_asserti3-2d_run07.txt (100%) rename {data => bitcoin-test/data}/test_vectors_asserti3-2d_run08.txt (100%) rename {data => bitcoin-test/data}/test_vectors_asserti3-2d_run09.txt (100%) rename {data => bitcoin-test/data}/test_vectors_asserti3-2d_run10.txt (100%) rename {data => bitcoin-test/data}/test_vectors_asserti3-2d_run11.txt (100%) rename {data => bitcoin-test/data}/test_vectors_asserti3-2d_run12.txt (100%) rename {test => bitcoin-test/exec}/Spec.hs (100%) rename {test => bitcoin-test/lib}/Bitcoin/Address/Bech32Spec.hs (100%) rename {test => bitcoin-test/lib}/Bitcoin/AddressSpec.hs (100%) rename {test => bitcoin-test/lib}/Bitcoin/BlockSpec.hs (100%) rename {test => bitcoin-test/lib}/Bitcoin/Crypto/HashSpec.hs (100%) rename {test => bitcoin-test/lib}/Bitcoin/Crypto/SignatureSpec.hs (100%) rename {test => bitcoin-test/lib}/Bitcoin/Keys/ExtendedSpec.hs (100%) rename {test => bitcoin-test/lib}/Bitcoin/Keys/MnemonicSpec.hs (100%) rename {test => bitcoin-test/lib}/Bitcoin/KeysSpec.hs (100%) rename {test => bitcoin-test/lib}/Bitcoin/NetworkSpec.hs (100%) rename {test => bitcoin-test/lib}/Bitcoin/Orphans.hs (100%) rename {test => bitcoin-test/lib}/Bitcoin/ScriptSpec.hs (100%) rename {test => bitcoin-test/lib}/Bitcoin/Transaction/PartialSpec.hs (100%) rename {test => bitcoin-test/lib}/Bitcoin/Transaction/TaprootSpec.hs (100%) rename {test => bitcoin-test/lib}/Bitcoin/TransactionSpec.hs (100%) rename {src => bitcoin-test/lib}/Bitcoin/Util/Arbitrary.hs (100%) rename {src => bitcoin-test/lib}/Bitcoin/Util/Arbitrary/Address.hs (100%) rename {src => bitcoin-test/lib}/Bitcoin/Util/Arbitrary/Block.hs (100%) rename {src => bitcoin-test/lib}/Bitcoin/Util/Arbitrary/Crypto.hs (100%) rename {src => bitcoin-test/lib}/Bitcoin/Util/Arbitrary/Keys.hs (100%) rename {src => bitcoin-test/lib}/Bitcoin/Util/Arbitrary/Message.hs (100%) rename {src => bitcoin-test/lib}/Bitcoin/Util/Arbitrary/Network.hs (100%) rename {src => bitcoin-test/lib}/Bitcoin/Util/Arbitrary/Script.hs (100%) rename {src => bitcoin-test/lib}/Bitcoin/Util/Arbitrary/Transaction.hs (100%) rename {src => bitcoin-test/lib}/Bitcoin/Util/Arbitrary/Util.hs (100%) rename {test => bitcoin-test/lib}/Bitcoin/UtilSpec.hs (100%) create mode 100644 bitcoin-test/package.yaml delete mode 100644 bitcoin.cabal rename LICENSE => bitcoin/LICENSE (100%) rename Setup.hs => bitcoin/Setup.hs (100%) create mode 100644 bitcoin/bitcoin.cabal rename package.yaml => bitcoin/package.yaml (61%) rename {src => bitcoin/src}/Bitcoin.hs (100%) rename {src => bitcoin/src}/Bitcoin/Address.hs (100%) rename {src => bitcoin/src}/Bitcoin/Address/Base58.hs (100%) rename {src => bitcoin/src}/Bitcoin/Address/Bech32.hs (100%) rename {src => bitcoin/src}/Bitcoin/Block.hs (100%) rename {src => bitcoin/src}/Bitcoin/Block/Common.hs (100%) rename {src => bitcoin/src}/Bitcoin/Block/Headers.hs (100%) rename {src => bitcoin/src}/Bitcoin/Block/Merkle.hs (100%) rename {src => bitcoin/src}/Bitcoin/Constants.hs (100%) rename {src => bitcoin/src}/Bitcoin/Crypto.hs (100%) rename {src => bitcoin/src}/Bitcoin/Crypto/Hash.hs (100%) rename {src => bitcoin/src}/Bitcoin/Crypto/Signature.hs (100%) rename {src => bitcoin/src}/Bitcoin/Data.hs (100%) rename {src => bitcoin/src}/Bitcoin/Keys.hs (100%) rename {src => bitcoin/src}/Bitcoin/Keys/Common.hs (100%) rename {src => bitcoin/src}/Bitcoin/Keys/Extended.hs (100%) rename {src => bitcoin/src}/Bitcoin/Keys/Extended/Internal.hs (100%) rename {src => bitcoin/src}/Bitcoin/Keys/Mnemonic.hs (100%) rename {src => bitcoin/src}/Bitcoin/Network.hs (100%) rename {src => bitcoin/src}/Bitcoin/Network/Bloom.hs (100%) rename {src => bitcoin/src}/Bitcoin/Network/Common.hs (100%) rename {src => bitcoin/src}/Bitcoin/Network/Message.hs (100%) rename {src => bitcoin/src}/Bitcoin/Script.hs (100%) rename {src => bitcoin/src}/Bitcoin/Script/Common.hs (100%) rename {src => bitcoin/src}/Bitcoin/Script/SigHash.hs (100%) rename {src => bitcoin/src}/Bitcoin/Script/Standard.hs (100%) rename {src => bitcoin/src}/Bitcoin/Transaction.hs (100%) rename {src => bitcoin/src}/Bitcoin/Transaction/Builder.hs (100%) rename {src => bitcoin/src}/Bitcoin/Transaction/Builder/Sign.hs (100%) rename {src => bitcoin/src}/Bitcoin/Transaction/Common.hs (100%) rename {src => bitcoin/src}/Bitcoin/Transaction/Genesis.hs (100%) rename {src => bitcoin/src}/Bitcoin/Transaction/Partial.hs (100%) rename {src => bitcoin/src}/Bitcoin/Transaction/Segwit.hs (100%) rename {src => bitcoin/src}/Bitcoin/Transaction/Taproot.hs (100%) rename {src => bitcoin/src}/Bitcoin/Util.hs (100%) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index fe789956..c9744977 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -12,8 +12,8 @@ on: - package.yaml - stack.yaml - stack.yaml.lock - - "src/**/*.hs" - - "test/**/*.hs" + - "bitcoin/**/*.hs" + - "bitcoin-test/**/*.hs" - ".github/workflows/build.yaml" types: - synchronize @@ -27,14 +27,13 @@ on: - package.yaml - stack.yaml - stack.yaml.lock - - "src/**/*.hs" - - "test/**/*.hs" + - "bitcoin/**/*.hs" + - "bitcoin-test/**/*.hs" - ".github/workflows/build.yaml" workflow_dispatch: inputs: {} jobs: - build: strategy: fail-fast: false diff --git a/.github/workflows/hlint.yaml b/.github/workflows/hlint.yaml index 06c85465..c18490c4 100644 --- a/.github/workflows/hlint.yaml +++ b/.github/workflows/hlint.yaml @@ -12,8 +12,9 @@ on: paths: - stack.yaml - .hlint.yaml - - "src/**/*.hs" - - "test/**/*.hs" + - "bitcoin/**/*.hs" + - "bitcoin-test/**/*.hs" + - "bitcoin-bench/**/*.hs" - ".github/workflows/hlint.yaml" types: - synchronize @@ -26,8 +27,8 @@ on: paths: - stack.yaml - .hlint.yaml - - "src/**/*.hs" - - "test/**/*.hs" + - "bitcoin/**/*.hs" + - "bitcoin-test/**/*.hs" - ".github/workflows/hlint.yaml" workflow_dispatch: inputs: {} @@ -39,14 +40,14 @@ jobs: steps: - uses: actions/checkout@v3 - - name: 'Set up HLint' + - name: "Set up HLint" uses: haskell/actions/hlint-setup@v2 with: - version: '3.5' + version: "3.5" - - name: 'Run HLint' + - name: "Run HLint" uses: haskell/actions/hlint-run@v2 with: # For some reason this has to be a string containing JSON rather than a YAML sequence - path: '[ "src/", "test/"]' + path: '[ "bitcoin/", "bitcoin-test/", "bitcoin-bench/" ]' fail-on: warning diff --git a/benchmark/Main.hs b/bitcoin-bench/Main.hs similarity index 100% rename from benchmark/Main.hs rename to bitcoin-bench/Main.hs diff --git a/bitcoin-bench/bitcoin-bench.cabal b/bitcoin-bench/bitcoin-bench.cabal new file mode 100644 index 00000000..a346bb51 --- /dev/null +++ b/bitcoin-bench/bitcoin-bench.cabal @@ -0,0 +1,47 @@ +cabal-version: 1.12 + +-- This file has been generated from package.yaml by hpack version 0.35.0. +-- +-- see: https://github.com/sol/hpack + +name: bitcoin-bench +version: 0.1.0 +synopsis: Bitcoin benchmark library for Haskell +description: Please see the README on GitHub at +category: Bitcoin, Finance, Network +homepage: http://github.com/haskell-bitcoin/bitcoin#readme +bug-reports: http://github.com/haskell-bitcoin/bitcoin/issues +author: Philippe Laprade, + Jean-Pierre Rupp, + Matthew Wraith, + Keagan McClelland +maintainer: keagan.mcclelland@gmail.com +license: BSD3 +build-type: Simple +extra-source-files: + ./data/block-758000.dat + ./data/block-758100.dat + ./data/block-758200.dat + ./data/block-758300.dat + ./data/tx-A.dat + ./data/tx-B.dat + ./data/tx-C.dat + +source-repository head + type: git + location: git://github.com/haskell-bitcoin/bitcoin.git + +benchmark benchmark + type: exitcode-stdio-1.0 + main-is: Main.hs + other-modules: + Paths_bitcoin_bench + build-depends: + base >=4.9 && <5 + , binary >=0.8.8 + , bitcoin + , bytestring >=0.10.10.0 + , criterion >=1.5 && <1.7 + , deepseq >=1.4.4.0 + , text >=1.2.3.0 + default-language: Haskell2010 diff --git a/data/block-758000.dat b/bitcoin-bench/data/block-758000.dat similarity index 100% rename from data/block-758000.dat rename to bitcoin-bench/data/block-758000.dat diff --git a/data/block-758100.dat b/bitcoin-bench/data/block-758100.dat similarity index 100% rename from data/block-758100.dat rename to bitcoin-bench/data/block-758100.dat diff --git a/data/block-758200.dat b/bitcoin-bench/data/block-758200.dat similarity index 100% rename from data/block-758200.dat rename to bitcoin-bench/data/block-758200.dat diff --git a/data/block-758300.dat b/bitcoin-bench/data/block-758300.dat similarity index 100% rename from data/block-758300.dat rename to bitcoin-bench/data/block-758300.dat diff --git a/data/tx-A.dat b/bitcoin-bench/data/tx-A.dat similarity index 100% rename from data/tx-A.dat rename to bitcoin-bench/data/tx-A.dat diff --git a/data/tx-B.dat b/bitcoin-bench/data/tx-B.dat similarity index 100% rename from data/tx-B.dat rename to bitcoin-bench/data/tx-B.dat diff --git a/data/tx-C.dat b/bitcoin-bench/data/tx-C.dat similarity index 100% rename from data/tx-C.dat rename to bitcoin-bench/data/tx-C.dat diff --git a/bitcoin-bench/package.yaml b/bitcoin-bench/package.yaml new file mode 100644 index 00000000..dd23abb6 --- /dev/null +++ b/bitcoin-bench/package.yaml @@ -0,0 +1,28 @@ +name: bitcoin-bench +version: 0.1.0 +synopsis: Bitcoin benchmark library for Haskell +description: Please see the README on GitHub at +category: Bitcoin, Finance, Network +author: + - Philippe Laprade + - Jean-Pierre Rupp + - Matthew Wraith + - Keagan McClelland +maintainer: keagan.mcclelland@gmail.com +license: BSD3 +homepage: http://github.com/haskell-bitcoin/bitcoin#readme +git: git://github.com/haskell-bitcoin/bitcoin.git +bug-reports: http://github.com/haskell-bitcoin/bitcoin/issues +extra-source-files: + - ./data/*.dat # raw data for benchmarks +benchmarks: + benchmark: + main: Main.hs + dependencies: + - bitcoin + - criterion >=1.5 && <1.7 + - base >=4.9 && <5 + - binary >= 0.8.8 + - bytestring >= 0.10.10.0 + - deepseq >= 1.4.4.0 + - text >= 1.2.3.0 diff --git a/bitcoin-test/bitcoin-test.cabal b/bitcoin-test/bitcoin-test.cabal new file mode 100644 index 00000000..53c7de4f --- /dev/null +++ b/bitcoin-test/bitcoin-test.cabal @@ -0,0 +1,118 @@ +cabal-version: 1.12 + +-- This file has been generated from package.yaml by hpack version 0.35.0. +-- +-- see: https://github.com/sol/hpack + +name: bitcoin-test +version: 0.1.0 +synopsis: Bitcoin test library for Haskell +description: Please see the README on GitHub at +category: Bitcoin, Finance, Network +homepage: http://github.com/haskell-bitcoin/bitcoin#readme +bug-reports: http://github.com/haskell-bitcoin/bitcoin/issues +author: Philippe Laprade, + Jean-Pierre Rupp, + Matthew Wraith, + Keagan McClelland +maintainer: keagan.mcclelland@gmail.com +license: BSD3 +build-type: Simple +extra-source-files: + ./data/bip341.json + ./data/complex_psbt.json + ./data/forkid_script_tests.json + ./data/forkid_sighash.json + ./data/key_io_invalid.json + ./data/key_io_valid.json + ./data/rfc6979abc.json + ./data/rfc6979core.json + ./data/rfc6979DERabc.json + ./data/rfc6979DERcore.json + ./data/script_tests.json + ./data/sig_nonstrict.json + ./data/sig_strict.json + ./data/sighash.json + +source-repository head + type: git + location: git://github.com/haskell-bitcoin/bitcoin.git + +library + exposed-modules: + Bitcoin.Address.Bech32Spec + Bitcoin.AddressSpec + Bitcoin.BlockSpec + Bitcoin.Crypto.HashSpec + Bitcoin.Crypto.SignatureSpec + Bitcoin.Keys.ExtendedSpec + Bitcoin.Keys.MnemonicSpec + Bitcoin.KeysSpec + Bitcoin.NetworkSpec + Bitcoin.Orphans + Bitcoin.ScriptSpec + Bitcoin.Transaction.PartialSpec + Bitcoin.Transaction.TaprootSpec + Bitcoin.TransactionSpec + Bitcoin.Util.Arbitrary + Bitcoin.Util.Arbitrary.Address + Bitcoin.Util.Arbitrary.Block + Bitcoin.Util.Arbitrary.Crypto + Bitcoin.Util.Arbitrary.Keys + Bitcoin.Util.Arbitrary.Message + Bitcoin.Util.Arbitrary.Network + Bitcoin.Util.Arbitrary.Script + Bitcoin.Util.Arbitrary.Transaction + Bitcoin.Util.Arbitrary.Util + Bitcoin.UtilSpec + hs-source-dirs: + lib + build-depends: + HUnit >=1.6.0.0 + , QuickCheck >=2.13.2 + , aeson >=1.4.6.0 + , base >=4.9 && <5 + , base64 ==0.4.* + , binary >=0.8.8 + , bitcoin + , bytestring >=0.10.10.0 + , containers >=0.6.2.1 + , hspec >=2.7.1 + , memory >=0.15.0 + , scientific >=0.3.6.2 + , secp256k1-haskell >=0.4.0 + , string-conversions >=0.4.0.1 + , text >=1.2.3.0 + , time >=1.9.3 + , transformers >=0.5.6.2 + , unordered-containers >=0.2.10.0 + default-language: Haskell2010 + +test-suite spec + type: exitcode-stdio-1.0 + main-is: Spec.hs + other-modules: + Paths_bitcoin_test + hs-source-dirs: + exec + build-depends: + HUnit >=1.6.0.0 + , QuickCheck >=2.13.2 + , aeson >=1.4.6.0 + , base >=4.9 && <5 + , base64 ==0.4.* + , binary >=0.8.8 + , bitcoin + , bitcoin-test + , bytestring >=0.10.10.0 + , containers >=0.6.2.1 + , hspec >=2.7.1 + , memory >=0.15.0 + , scientific >=0.3.6.2 + , secp256k1-haskell >=0.4.0 + , string-conversions >=0.4.0.1 + , text >=1.2.3.0 + , time >=1.9.3 + , transformers >=0.5.6.2 + , unordered-containers >=0.2.10.0 + default-language: Haskell2010 diff --git a/data/bip341.json b/bitcoin-test/data/bip341.json similarity index 100% rename from data/bip341.json rename to bitcoin-test/data/bip341.json diff --git a/data/complex_psbt.json b/bitcoin-test/data/complex_psbt.json similarity index 100% rename from data/complex_psbt.json rename to bitcoin-test/data/complex_psbt.json diff --git a/data/forkid_script_tests.json b/bitcoin-test/data/forkid_script_tests.json similarity index 100% rename from data/forkid_script_tests.json rename to bitcoin-test/data/forkid_script_tests.json diff --git a/data/forkid_sighash.json b/bitcoin-test/data/forkid_sighash.json similarity index 100% rename from data/forkid_sighash.json rename to bitcoin-test/data/forkid_sighash.json diff --git a/data/key_io_invalid.json b/bitcoin-test/data/key_io_invalid.json similarity index 100% rename from data/key_io_invalid.json rename to bitcoin-test/data/key_io_invalid.json diff --git a/data/key_io_valid.json b/bitcoin-test/data/key_io_valid.json similarity index 100% rename from data/key_io_valid.json rename to bitcoin-test/data/key_io_valid.json diff --git a/data/rfc6979DERabc.json b/bitcoin-test/data/rfc6979DERabc.json similarity index 100% rename from data/rfc6979DERabc.json rename to bitcoin-test/data/rfc6979DERabc.json diff --git a/data/rfc6979DERcore.json b/bitcoin-test/data/rfc6979DERcore.json similarity index 100% rename from data/rfc6979DERcore.json rename to bitcoin-test/data/rfc6979DERcore.json diff --git a/data/rfc6979abc.json b/bitcoin-test/data/rfc6979abc.json similarity index 100% rename from data/rfc6979abc.json rename to bitcoin-test/data/rfc6979abc.json diff --git a/data/rfc6979core.json b/bitcoin-test/data/rfc6979core.json similarity index 100% rename from data/rfc6979core.json rename to bitcoin-test/data/rfc6979core.json diff --git a/data/script_tests.json b/bitcoin-test/data/script_tests.json similarity index 100% rename from data/script_tests.json rename to bitcoin-test/data/script_tests.json diff --git a/data/sig_nonstrict.json b/bitcoin-test/data/sig_nonstrict.json similarity index 100% rename from data/sig_nonstrict.json rename to bitcoin-test/data/sig_nonstrict.json diff --git a/data/sig_strict.json b/bitcoin-test/data/sig_strict.json similarity index 100% rename from data/sig_strict.json rename to bitcoin-test/data/sig_strict.json diff --git a/data/sighash.json b/bitcoin-test/data/sighash.json similarity index 100% rename from data/sighash.json rename to bitcoin-test/data/sighash.json diff --git a/data/test_vectors_asserti3-2d_run01.txt b/bitcoin-test/data/test_vectors_asserti3-2d_run01.txt similarity index 100% rename from data/test_vectors_asserti3-2d_run01.txt rename to bitcoin-test/data/test_vectors_asserti3-2d_run01.txt diff --git a/data/test_vectors_asserti3-2d_run02.txt b/bitcoin-test/data/test_vectors_asserti3-2d_run02.txt similarity index 100% rename from data/test_vectors_asserti3-2d_run02.txt rename to bitcoin-test/data/test_vectors_asserti3-2d_run02.txt diff --git a/data/test_vectors_asserti3-2d_run03.txt b/bitcoin-test/data/test_vectors_asserti3-2d_run03.txt similarity index 100% rename from data/test_vectors_asserti3-2d_run03.txt rename to bitcoin-test/data/test_vectors_asserti3-2d_run03.txt diff --git a/data/test_vectors_asserti3-2d_run04.txt b/bitcoin-test/data/test_vectors_asserti3-2d_run04.txt similarity index 100% rename from data/test_vectors_asserti3-2d_run04.txt rename to bitcoin-test/data/test_vectors_asserti3-2d_run04.txt diff --git a/data/test_vectors_asserti3-2d_run05.txt b/bitcoin-test/data/test_vectors_asserti3-2d_run05.txt similarity index 100% rename from data/test_vectors_asserti3-2d_run05.txt rename to bitcoin-test/data/test_vectors_asserti3-2d_run05.txt diff --git a/data/test_vectors_asserti3-2d_run06.txt b/bitcoin-test/data/test_vectors_asserti3-2d_run06.txt similarity index 100% rename from data/test_vectors_asserti3-2d_run06.txt rename to bitcoin-test/data/test_vectors_asserti3-2d_run06.txt diff --git a/data/test_vectors_asserti3-2d_run07.txt b/bitcoin-test/data/test_vectors_asserti3-2d_run07.txt similarity index 100% rename from data/test_vectors_asserti3-2d_run07.txt rename to bitcoin-test/data/test_vectors_asserti3-2d_run07.txt diff --git a/data/test_vectors_asserti3-2d_run08.txt b/bitcoin-test/data/test_vectors_asserti3-2d_run08.txt similarity index 100% rename from data/test_vectors_asserti3-2d_run08.txt rename to bitcoin-test/data/test_vectors_asserti3-2d_run08.txt diff --git a/data/test_vectors_asserti3-2d_run09.txt b/bitcoin-test/data/test_vectors_asserti3-2d_run09.txt similarity index 100% rename from data/test_vectors_asserti3-2d_run09.txt rename to bitcoin-test/data/test_vectors_asserti3-2d_run09.txt diff --git a/data/test_vectors_asserti3-2d_run10.txt b/bitcoin-test/data/test_vectors_asserti3-2d_run10.txt similarity index 100% rename from data/test_vectors_asserti3-2d_run10.txt rename to bitcoin-test/data/test_vectors_asserti3-2d_run10.txt diff --git a/data/test_vectors_asserti3-2d_run11.txt b/bitcoin-test/data/test_vectors_asserti3-2d_run11.txt similarity index 100% rename from data/test_vectors_asserti3-2d_run11.txt rename to bitcoin-test/data/test_vectors_asserti3-2d_run11.txt diff --git a/data/test_vectors_asserti3-2d_run12.txt b/bitcoin-test/data/test_vectors_asserti3-2d_run12.txt similarity index 100% rename from data/test_vectors_asserti3-2d_run12.txt rename to bitcoin-test/data/test_vectors_asserti3-2d_run12.txt diff --git a/test/Spec.hs b/bitcoin-test/exec/Spec.hs similarity index 100% rename from test/Spec.hs rename to bitcoin-test/exec/Spec.hs diff --git a/test/Bitcoin/Address/Bech32Spec.hs b/bitcoin-test/lib/Bitcoin/Address/Bech32Spec.hs similarity index 100% rename from test/Bitcoin/Address/Bech32Spec.hs rename to bitcoin-test/lib/Bitcoin/Address/Bech32Spec.hs diff --git a/test/Bitcoin/AddressSpec.hs b/bitcoin-test/lib/Bitcoin/AddressSpec.hs similarity index 100% rename from test/Bitcoin/AddressSpec.hs rename to bitcoin-test/lib/Bitcoin/AddressSpec.hs diff --git a/test/Bitcoin/BlockSpec.hs b/bitcoin-test/lib/Bitcoin/BlockSpec.hs similarity index 100% rename from test/Bitcoin/BlockSpec.hs rename to bitcoin-test/lib/Bitcoin/BlockSpec.hs diff --git a/test/Bitcoin/Crypto/HashSpec.hs b/bitcoin-test/lib/Bitcoin/Crypto/HashSpec.hs similarity index 100% rename from test/Bitcoin/Crypto/HashSpec.hs rename to bitcoin-test/lib/Bitcoin/Crypto/HashSpec.hs diff --git a/test/Bitcoin/Crypto/SignatureSpec.hs b/bitcoin-test/lib/Bitcoin/Crypto/SignatureSpec.hs similarity index 100% rename from test/Bitcoin/Crypto/SignatureSpec.hs rename to bitcoin-test/lib/Bitcoin/Crypto/SignatureSpec.hs diff --git a/test/Bitcoin/Keys/ExtendedSpec.hs b/bitcoin-test/lib/Bitcoin/Keys/ExtendedSpec.hs similarity index 100% rename from test/Bitcoin/Keys/ExtendedSpec.hs rename to bitcoin-test/lib/Bitcoin/Keys/ExtendedSpec.hs diff --git a/test/Bitcoin/Keys/MnemonicSpec.hs b/bitcoin-test/lib/Bitcoin/Keys/MnemonicSpec.hs similarity index 100% rename from test/Bitcoin/Keys/MnemonicSpec.hs rename to bitcoin-test/lib/Bitcoin/Keys/MnemonicSpec.hs diff --git a/test/Bitcoin/KeysSpec.hs b/bitcoin-test/lib/Bitcoin/KeysSpec.hs similarity index 100% rename from test/Bitcoin/KeysSpec.hs rename to bitcoin-test/lib/Bitcoin/KeysSpec.hs diff --git a/test/Bitcoin/NetworkSpec.hs b/bitcoin-test/lib/Bitcoin/NetworkSpec.hs similarity index 100% rename from test/Bitcoin/NetworkSpec.hs rename to bitcoin-test/lib/Bitcoin/NetworkSpec.hs diff --git a/test/Bitcoin/Orphans.hs b/bitcoin-test/lib/Bitcoin/Orphans.hs similarity index 100% rename from test/Bitcoin/Orphans.hs rename to bitcoin-test/lib/Bitcoin/Orphans.hs diff --git a/test/Bitcoin/ScriptSpec.hs b/bitcoin-test/lib/Bitcoin/ScriptSpec.hs similarity index 100% rename from test/Bitcoin/ScriptSpec.hs rename to bitcoin-test/lib/Bitcoin/ScriptSpec.hs diff --git a/test/Bitcoin/Transaction/PartialSpec.hs b/bitcoin-test/lib/Bitcoin/Transaction/PartialSpec.hs similarity index 100% rename from test/Bitcoin/Transaction/PartialSpec.hs rename to bitcoin-test/lib/Bitcoin/Transaction/PartialSpec.hs diff --git a/test/Bitcoin/Transaction/TaprootSpec.hs b/bitcoin-test/lib/Bitcoin/Transaction/TaprootSpec.hs similarity index 100% rename from test/Bitcoin/Transaction/TaprootSpec.hs rename to bitcoin-test/lib/Bitcoin/Transaction/TaprootSpec.hs diff --git a/test/Bitcoin/TransactionSpec.hs b/bitcoin-test/lib/Bitcoin/TransactionSpec.hs similarity index 100% rename from test/Bitcoin/TransactionSpec.hs rename to bitcoin-test/lib/Bitcoin/TransactionSpec.hs diff --git a/src/Bitcoin/Util/Arbitrary.hs b/bitcoin-test/lib/Bitcoin/Util/Arbitrary.hs similarity index 100% rename from src/Bitcoin/Util/Arbitrary.hs rename to bitcoin-test/lib/Bitcoin/Util/Arbitrary.hs diff --git a/src/Bitcoin/Util/Arbitrary/Address.hs b/bitcoin-test/lib/Bitcoin/Util/Arbitrary/Address.hs similarity index 100% rename from src/Bitcoin/Util/Arbitrary/Address.hs rename to bitcoin-test/lib/Bitcoin/Util/Arbitrary/Address.hs diff --git a/src/Bitcoin/Util/Arbitrary/Block.hs b/bitcoin-test/lib/Bitcoin/Util/Arbitrary/Block.hs similarity index 100% rename from src/Bitcoin/Util/Arbitrary/Block.hs rename to bitcoin-test/lib/Bitcoin/Util/Arbitrary/Block.hs diff --git a/src/Bitcoin/Util/Arbitrary/Crypto.hs b/bitcoin-test/lib/Bitcoin/Util/Arbitrary/Crypto.hs similarity index 100% rename from src/Bitcoin/Util/Arbitrary/Crypto.hs rename to bitcoin-test/lib/Bitcoin/Util/Arbitrary/Crypto.hs diff --git a/src/Bitcoin/Util/Arbitrary/Keys.hs b/bitcoin-test/lib/Bitcoin/Util/Arbitrary/Keys.hs similarity index 100% rename from src/Bitcoin/Util/Arbitrary/Keys.hs rename to bitcoin-test/lib/Bitcoin/Util/Arbitrary/Keys.hs diff --git a/src/Bitcoin/Util/Arbitrary/Message.hs b/bitcoin-test/lib/Bitcoin/Util/Arbitrary/Message.hs similarity index 100% rename from src/Bitcoin/Util/Arbitrary/Message.hs rename to bitcoin-test/lib/Bitcoin/Util/Arbitrary/Message.hs diff --git a/src/Bitcoin/Util/Arbitrary/Network.hs b/bitcoin-test/lib/Bitcoin/Util/Arbitrary/Network.hs similarity index 100% rename from src/Bitcoin/Util/Arbitrary/Network.hs rename to bitcoin-test/lib/Bitcoin/Util/Arbitrary/Network.hs diff --git a/src/Bitcoin/Util/Arbitrary/Script.hs b/bitcoin-test/lib/Bitcoin/Util/Arbitrary/Script.hs similarity index 100% rename from src/Bitcoin/Util/Arbitrary/Script.hs rename to bitcoin-test/lib/Bitcoin/Util/Arbitrary/Script.hs diff --git a/src/Bitcoin/Util/Arbitrary/Transaction.hs b/bitcoin-test/lib/Bitcoin/Util/Arbitrary/Transaction.hs similarity index 100% rename from src/Bitcoin/Util/Arbitrary/Transaction.hs rename to bitcoin-test/lib/Bitcoin/Util/Arbitrary/Transaction.hs diff --git a/src/Bitcoin/Util/Arbitrary/Util.hs b/bitcoin-test/lib/Bitcoin/Util/Arbitrary/Util.hs similarity index 100% rename from src/Bitcoin/Util/Arbitrary/Util.hs rename to bitcoin-test/lib/Bitcoin/Util/Arbitrary/Util.hs diff --git a/test/Bitcoin/UtilSpec.hs b/bitcoin-test/lib/Bitcoin/UtilSpec.hs similarity index 100% rename from test/Bitcoin/UtilSpec.hs rename to bitcoin-test/lib/Bitcoin/UtilSpec.hs diff --git a/bitcoin-test/package.yaml b/bitcoin-test/package.yaml new file mode 100644 index 00000000..e0ada015 --- /dev/null +++ b/bitcoin-test/package.yaml @@ -0,0 +1,47 @@ +name: bitcoin-test +version: 0.1.0 +synopsis: Bitcoin test library for Haskell +description: Please see the README on GitHub at +category: Bitcoin, Finance, Network +author: + - Philippe Laprade + - Jean-Pierre Rupp + - Matthew Wraith + - Keagan McClelland +maintainer: keagan.mcclelland@gmail.com +license: BSD3 +homepage: http://github.com/haskell-bitcoin/bitcoin#readme +git: git://github.com/haskell-bitcoin/bitcoin.git +bug-reports: http://github.com/haskell-bitcoin/bitcoin/issues +extra-source-files: + - ./data/*.json # raw data for tests +dependencies: + - bitcoin + - aeson >= 1.4.6.0 + - base >=4.9 && <5 + - base64 ^>= 0.4 + - binary >= 0.8.8 + - bytestring >= 0.10.10.0 + - containers >= 0.6.2.1 + - hspec >= 2.7.1 + - memory >= 0.15.0 + - scientific >= 0.3.6.2 + - secp256k1-haskell >= 0.4.0 + - string-conversions >= 0.4.0.1 + - text >= 1.2.3.0 + - time >= 1.9.3 + - transformers >= 0.5.6.2 + - unordered-containers >= 0.2.10.0 + - HUnit >= 1.6.0.0 + - QuickCheck >= 2.13.2 +library: + source-dirs: lib + when: + - condition: false + other-modules: Paths_bitcoin_test +tests: + spec: + source-dirs: exec + main: Spec.hs + dependencies: + - bitcoin-test diff --git a/bitcoin.cabal b/bitcoin.cabal deleted file mode 100644 index f8acc0f2..00000000 --- a/bitcoin.cabal +++ /dev/null @@ -1,218 +0,0 @@ -cabal-version: 1.12 - --- This file has been generated from package.yaml by hpack version 0.35.0. --- --- see: https://github.com/sol/hpack - -name: bitcoin -version: 0.1.0 -synopsis: Bitcoin library for Haskell -description: Please see the README on GitHub at -category: Bitcoin, Finance, Network -homepage: http://github.com/haskell-bitcoin/bitcoin#readme -bug-reports: http://github.com/haskell-bitcoin/bitcoin/issues -author: Philippe Laprade, - Jean-Pierre Rupp, - Matthew Wraith, - Keagan McClelland -maintainer: keagan.mcclelland@gmail.com -license: BSD3 -license-file: LICENSE -build-type: Simple -extra-source-files: - data/bip341.json - data/complex_psbt.json - data/forkid_script_tests.json - data/forkid_sighash.json - data/key_io_invalid.json - data/key_io_valid.json - data/rfc6979abc.json - data/rfc6979core.json - data/rfc6979DERabc.json - data/rfc6979DERcore.json - data/script_tests.json - data/sig_nonstrict.json - data/sig_strict.json - data/sighash.json - data/block-758000.dat - data/block-758100.dat - data/block-758200.dat - data/block-758300.dat - data/tx-A.dat - data/tx-B.dat - data/tx-C.dat - README.md - CHANGELOG.md - -source-repository head - type: git - location: git://github.com/haskell-bitcoin/bitcoin.git - -library - exposed-modules: - Bitcoin - Bitcoin.Address - Bitcoin.Address.Base58 - Bitcoin.Address.Bech32 - Bitcoin.Block - Bitcoin.Block.Common - Bitcoin.Block.Headers - Bitcoin.Block.Merkle - Bitcoin.Constants - Bitcoin.Crypto - Bitcoin.Crypto.Hash - Bitcoin.Crypto.Signature - Bitcoin.Data - Bitcoin.Keys - Bitcoin.Keys.Common - Bitcoin.Keys.Extended - Bitcoin.Keys.Mnemonic - Bitcoin.Network - Bitcoin.Network.Bloom - Bitcoin.Network.Common - Bitcoin.Network.Message - Bitcoin.Script - Bitcoin.Script.Common - Bitcoin.Script.SigHash - Bitcoin.Script.Standard - Bitcoin.Transaction - Bitcoin.Transaction.Builder - Bitcoin.Transaction.Builder.Sign - Bitcoin.Transaction.Common - Bitcoin.Transaction.Genesis - Bitcoin.Transaction.Partial - Bitcoin.Transaction.Segwit - Bitcoin.Transaction.Taproot - Bitcoin.Util - Bitcoin.Util.Arbitrary - Bitcoin.Util.Arbitrary.Address - Bitcoin.Util.Arbitrary.Block - Bitcoin.Util.Arbitrary.Crypto - Bitcoin.Util.Arbitrary.Keys - Bitcoin.Util.Arbitrary.Message - Bitcoin.Util.Arbitrary.Network - Bitcoin.Util.Arbitrary.Script - Bitcoin.Util.Arbitrary.Transaction - Bitcoin.Util.Arbitrary.Util - other-modules: - Bitcoin.Keys.Extended.Internal - hs-source-dirs: - src - build-depends: - QuickCheck >=2.13.2 - , array >=0.5.4.0 - , base >=4.9 && <5 - , base16 >=0.3.0.1 - , binary >=0.8.8 - , bytestring >=0.10.10.0 - , containers >=0.6.2.1 - , cryptonite >=0.30 - , deepseq >=1.4.4.0 - , entropy >=0.4.1.5 - , hashable >=1.3.0.0 - , hspec >=2.7.1 - , memory >=0.15.0 - , murmur3 >=1.0.3 - , network >=3.1.1.1 - , safe >=0.3.18 - , scientific >=0.3.6.2 - , secp256k1-haskell >=0.4.0 - , split >=0.2.3.3 - , string-conversions >=0.4.0.1 - , text >=1.2.3.0 - , time >=1.9.3 - , transformers >=0.5.6.2 - , unordered-containers >=0.2.10.0 - , vector >=0.12.1.2 - default-language: Haskell2010 - -test-suite spec - type: exitcode-stdio-1.0 - main-is: Spec.hs - other-modules: - Bitcoin.Address.Bech32Spec - Bitcoin.AddressSpec - Bitcoin.BlockSpec - Bitcoin.Crypto.HashSpec - Bitcoin.Crypto.SignatureSpec - Bitcoin.Keys.ExtendedSpec - Bitcoin.Keys.MnemonicSpec - Bitcoin.KeysSpec - Bitcoin.NetworkSpec - Bitcoin.Orphans - Bitcoin.ScriptSpec - Bitcoin.Transaction.PartialSpec - Bitcoin.Transaction.TaprootSpec - Bitcoin.TransactionSpec - Bitcoin.UtilSpec - Paths_bitcoin - hs-source-dirs: - test - build-depends: - HUnit >=1.6.0.0 - , QuickCheck >=2.13.2 - , aeson >=1.4.6.0 - , array >=0.5.4.0 - , base >=4.9 && <5 - , base16 >=0.3.0.1 - , base64 ==0.4.* - , binary >=0.8.8 - , bitcoin - , bytestring >=0.10.10.0 - , containers >=0.6.2.1 - , cryptonite >=0.30 - , deepseq >=1.4.4.0 - , entropy >=0.4.1.5 - , hashable >=1.3.0.0 - , hspec >=2.7.1 - , memory >=0.15.0 - , murmur3 >=1.0.3 - , network >=3.1.1.1 - , safe >=0.3.18 - , scientific >=0.3.6.2 - , secp256k1-haskell >=0.4.0 - , split >=0.2.3.3 - , string-conversions >=0.4.0.1 - , text >=1.2.3.0 - , time >=1.9.3 - , transformers >=0.5.6.2 - , unordered-containers >=0.2.10.0 - , vector >=0.12.1.2 - default-language: Haskell2010 - -benchmark benchmark - type: exitcode-stdio-1.0 - main-is: Main.hs - other-modules: - Paths_bitcoin - hs-source-dirs: - benchmark - build-depends: - QuickCheck >=2.13.2 - , array >=0.5.4.0 - , base >=4.9 && <5 - , base16 >=0.3.0.1 - , binary >=0.8.8 - , bitcoin - , bytestring >=0.10.10.0 - , containers >=0.6.2.1 - , criterion >=1.5 && <1.7 - , cryptonite >=0.30 - , deepseq >=1.4.4.0 - , entropy >=0.4.1.5 - , hashable >=1.3.0.0 - , hspec >=2.7.1 - , memory >=0.15.0 - , murmur3 >=1.0.3 - , network >=3.1.1.1 - , safe >=0.3.18 - , scientific >=0.3.6.2 - , secp256k1-haskell >=0.4.0 - , split >=0.2.3.3 - , string-conversions >=0.4.0.1 - , text >=1.2.3.0 - , time >=1.9.3 - , transformers >=0.5.6.2 - , unordered-containers >=0.2.10.0 - , vector >=0.12.1.2 - default-language: Haskell2010 diff --git a/LICENSE b/bitcoin/LICENSE similarity index 100% rename from LICENSE rename to bitcoin/LICENSE diff --git a/Setup.hs b/bitcoin/Setup.hs similarity index 100% rename from Setup.hs rename to bitcoin/Setup.hs diff --git a/bitcoin/bitcoin.cabal b/bitcoin/bitcoin.cabal new file mode 100644 index 00000000..0e03f4aa --- /dev/null +++ b/bitcoin/bitcoin.cabal @@ -0,0 +1,86 @@ +cabal-version: 1.12 + +-- This file has been generated from package.yaml by hpack version 0.35.0. +-- +-- see: https://github.com/sol/hpack + +name: bitcoin +version: 0.1.0 +synopsis: Bitcoin library for Haskell +description: Please see the README on GitHub at +category: Bitcoin, Finance, Network +homepage: http://github.com/haskell-bitcoin/bitcoin#readme +bug-reports: http://github.com/haskell-bitcoin/bitcoin/issues +author: Philippe Laprade, + Jean-Pierre Rupp, + Matthew Wraith, + Keagan McClelland +maintainer: keagan.mcclelland@gmail.com +license: BSD3 +license-file: LICENSE +build-type: Simple + +source-repository head + type: git + location: git://github.com/haskell-bitcoin/bitcoin.git + +library + exposed-modules: + Bitcoin + Bitcoin.Address + Bitcoin.Address.Base58 + Bitcoin.Address.Bech32 + Bitcoin.Block + Bitcoin.Block.Common + Bitcoin.Block.Headers + Bitcoin.Block.Merkle + Bitcoin.Constants + Bitcoin.Crypto + Bitcoin.Crypto.Hash + Bitcoin.Crypto.Signature + Bitcoin.Data + Bitcoin.Keys + Bitcoin.Keys.Common + Bitcoin.Keys.Extended + Bitcoin.Keys.Extended.Internal + Bitcoin.Keys.Mnemonic + Bitcoin.Network + Bitcoin.Network.Bloom + Bitcoin.Network.Common + Bitcoin.Network.Message + Bitcoin.Script + Bitcoin.Script.Common + Bitcoin.Script.SigHash + Bitcoin.Script.Standard + Bitcoin.Transaction + Bitcoin.Transaction.Builder + Bitcoin.Transaction.Builder.Sign + Bitcoin.Transaction.Common + Bitcoin.Transaction.Genesis + Bitcoin.Transaction.Partial + Bitcoin.Transaction.Segwit + Bitcoin.Transaction.Taproot + Bitcoin.Util + hs-source-dirs: + src + build-depends: + array >=0.5.4.0 + , base >=4.9 && <5 + , base16 >=0.3.0.1 + , binary >=0.8.8 + , bytestring >=0.10.10.0 + , containers >=0.6.2.1 + , cryptonite >=0.30 + , deepseq >=1.4.4.0 + , hashable >=1.3.0.0 + , memory >=0.15.0 + , murmur3 >=1.0.3 + , network >=3.1.1.1 + , secp256k1-haskell >=0.4.0 + , split >=0.2.3.3 + , string-conversions >=0.4.0.1 + , text >=1.2.3.0 + , transformers >=0.5.6.2 + , unordered-containers >=0.2.10.0 + , vector >=0.12.1.2 + default-language: Haskell2010 diff --git a/package.yaml b/bitcoin/package.yaml similarity index 61% rename from package.yaml rename to bitcoin/package.yaml index f69cd2dc..f7dc0992 100644 --- a/package.yaml +++ b/bitcoin/package.yaml @@ -14,11 +14,6 @@ license-file: LICENSE homepage: http://github.com/haskell-bitcoin/bitcoin#readme git: git://github.com/haskell-bitcoin/bitcoin.git bug-reports: http://github.com/haskell-bitcoin/bitcoin/issues -extra-source-files: - - data/*.json # raw data for tests - - data/*.dat # raw data for benchmarks - - README.md - - CHANGELOG.md dependencies: - array >= 0.5.4.0 - base >=4.9 && <5 @@ -28,45 +23,19 @@ dependencies: - containers >= 0.6.2.1 - cryptonite >= 0.30 - deepseq >= 1.4.4.0 - - entropy >= 0.4.1.5 - hashable >= 1.3.0.0 - - hspec >= 2.7.1 - memory >= 0.15.0 - murmur3 >= 1.0.3 - network >= 3.1.1.1 - - QuickCheck >= 2.13.2 - split >= 0.2.3.3 - - safe >= 0.3.18 - - scientific >= 0.3.6.2 - secp256k1-haskell >= 0.4.0 - string-conversions >= 0.4.0.1 - text >= 1.2.3.0 - - time >= 1.9.3 - transformers >= 0.5.6.2 - unordered-containers >= 0.2.10.0 - vector >= 0.12.1.2 library: source-dirs: src - other-modules: Bitcoin.Keys.Extended.Internal when: - condition: false other-modules: Paths_bitcoin -tests: - spec: - main: Spec.hs - source-dirs: test - dependencies: - - aeson >= 1.4.6.0 - - base64 ^>= 0.4 - - bitcoin - - hspec >= 2.7.1 - - HUnit >= 1.6.0.0 - - QuickCheck >= 2.13.2 -benchmarks: - benchmark: - main: Main.hs - source-dirs: benchmark - dependencies: - - bitcoin - - criterion >=1.5 && <1.7 - - QuickCheck >=2.13.2 diff --git a/src/Bitcoin.hs b/bitcoin/src/Bitcoin.hs similarity index 100% rename from src/Bitcoin.hs rename to bitcoin/src/Bitcoin.hs diff --git a/src/Bitcoin/Address.hs b/bitcoin/src/Bitcoin/Address.hs similarity index 100% rename from src/Bitcoin/Address.hs rename to bitcoin/src/Bitcoin/Address.hs diff --git a/src/Bitcoin/Address/Base58.hs b/bitcoin/src/Bitcoin/Address/Base58.hs similarity index 100% rename from src/Bitcoin/Address/Base58.hs rename to bitcoin/src/Bitcoin/Address/Base58.hs diff --git a/src/Bitcoin/Address/Bech32.hs b/bitcoin/src/Bitcoin/Address/Bech32.hs similarity index 100% rename from src/Bitcoin/Address/Bech32.hs rename to bitcoin/src/Bitcoin/Address/Bech32.hs diff --git a/src/Bitcoin/Block.hs b/bitcoin/src/Bitcoin/Block.hs similarity index 100% rename from src/Bitcoin/Block.hs rename to bitcoin/src/Bitcoin/Block.hs diff --git a/src/Bitcoin/Block/Common.hs b/bitcoin/src/Bitcoin/Block/Common.hs similarity index 100% rename from src/Bitcoin/Block/Common.hs rename to bitcoin/src/Bitcoin/Block/Common.hs diff --git a/src/Bitcoin/Block/Headers.hs b/bitcoin/src/Bitcoin/Block/Headers.hs similarity index 100% rename from src/Bitcoin/Block/Headers.hs rename to bitcoin/src/Bitcoin/Block/Headers.hs diff --git a/src/Bitcoin/Block/Merkle.hs b/bitcoin/src/Bitcoin/Block/Merkle.hs similarity index 100% rename from src/Bitcoin/Block/Merkle.hs rename to bitcoin/src/Bitcoin/Block/Merkle.hs diff --git a/src/Bitcoin/Constants.hs b/bitcoin/src/Bitcoin/Constants.hs similarity index 100% rename from src/Bitcoin/Constants.hs rename to bitcoin/src/Bitcoin/Constants.hs diff --git a/src/Bitcoin/Crypto.hs b/bitcoin/src/Bitcoin/Crypto.hs similarity index 100% rename from src/Bitcoin/Crypto.hs rename to bitcoin/src/Bitcoin/Crypto.hs diff --git a/src/Bitcoin/Crypto/Hash.hs b/bitcoin/src/Bitcoin/Crypto/Hash.hs similarity index 100% rename from src/Bitcoin/Crypto/Hash.hs rename to bitcoin/src/Bitcoin/Crypto/Hash.hs diff --git a/src/Bitcoin/Crypto/Signature.hs b/bitcoin/src/Bitcoin/Crypto/Signature.hs similarity index 100% rename from src/Bitcoin/Crypto/Signature.hs rename to bitcoin/src/Bitcoin/Crypto/Signature.hs diff --git a/src/Bitcoin/Data.hs b/bitcoin/src/Bitcoin/Data.hs similarity index 100% rename from src/Bitcoin/Data.hs rename to bitcoin/src/Bitcoin/Data.hs diff --git a/src/Bitcoin/Keys.hs b/bitcoin/src/Bitcoin/Keys.hs similarity index 100% rename from src/Bitcoin/Keys.hs rename to bitcoin/src/Bitcoin/Keys.hs diff --git a/src/Bitcoin/Keys/Common.hs b/bitcoin/src/Bitcoin/Keys/Common.hs similarity index 100% rename from src/Bitcoin/Keys/Common.hs rename to bitcoin/src/Bitcoin/Keys/Common.hs diff --git a/src/Bitcoin/Keys/Extended.hs b/bitcoin/src/Bitcoin/Keys/Extended.hs similarity index 100% rename from src/Bitcoin/Keys/Extended.hs rename to bitcoin/src/Bitcoin/Keys/Extended.hs diff --git a/src/Bitcoin/Keys/Extended/Internal.hs b/bitcoin/src/Bitcoin/Keys/Extended/Internal.hs similarity index 100% rename from src/Bitcoin/Keys/Extended/Internal.hs rename to bitcoin/src/Bitcoin/Keys/Extended/Internal.hs diff --git a/src/Bitcoin/Keys/Mnemonic.hs b/bitcoin/src/Bitcoin/Keys/Mnemonic.hs similarity index 100% rename from src/Bitcoin/Keys/Mnemonic.hs rename to bitcoin/src/Bitcoin/Keys/Mnemonic.hs diff --git a/src/Bitcoin/Network.hs b/bitcoin/src/Bitcoin/Network.hs similarity index 100% rename from src/Bitcoin/Network.hs rename to bitcoin/src/Bitcoin/Network.hs diff --git a/src/Bitcoin/Network/Bloom.hs b/bitcoin/src/Bitcoin/Network/Bloom.hs similarity index 100% rename from src/Bitcoin/Network/Bloom.hs rename to bitcoin/src/Bitcoin/Network/Bloom.hs diff --git a/src/Bitcoin/Network/Common.hs b/bitcoin/src/Bitcoin/Network/Common.hs similarity index 100% rename from src/Bitcoin/Network/Common.hs rename to bitcoin/src/Bitcoin/Network/Common.hs diff --git a/src/Bitcoin/Network/Message.hs b/bitcoin/src/Bitcoin/Network/Message.hs similarity index 100% rename from src/Bitcoin/Network/Message.hs rename to bitcoin/src/Bitcoin/Network/Message.hs diff --git a/src/Bitcoin/Script.hs b/bitcoin/src/Bitcoin/Script.hs similarity index 100% rename from src/Bitcoin/Script.hs rename to bitcoin/src/Bitcoin/Script.hs diff --git a/src/Bitcoin/Script/Common.hs b/bitcoin/src/Bitcoin/Script/Common.hs similarity index 100% rename from src/Bitcoin/Script/Common.hs rename to bitcoin/src/Bitcoin/Script/Common.hs diff --git a/src/Bitcoin/Script/SigHash.hs b/bitcoin/src/Bitcoin/Script/SigHash.hs similarity index 100% rename from src/Bitcoin/Script/SigHash.hs rename to bitcoin/src/Bitcoin/Script/SigHash.hs diff --git a/src/Bitcoin/Script/Standard.hs b/bitcoin/src/Bitcoin/Script/Standard.hs similarity index 100% rename from src/Bitcoin/Script/Standard.hs rename to bitcoin/src/Bitcoin/Script/Standard.hs diff --git a/src/Bitcoin/Transaction.hs b/bitcoin/src/Bitcoin/Transaction.hs similarity index 100% rename from src/Bitcoin/Transaction.hs rename to bitcoin/src/Bitcoin/Transaction.hs diff --git a/src/Bitcoin/Transaction/Builder.hs b/bitcoin/src/Bitcoin/Transaction/Builder.hs similarity index 100% rename from src/Bitcoin/Transaction/Builder.hs rename to bitcoin/src/Bitcoin/Transaction/Builder.hs diff --git a/src/Bitcoin/Transaction/Builder/Sign.hs b/bitcoin/src/Bitcoin/Transaction/Builder/Sign.hs similarity index 100% rename from src/Bitcoin/Transaction/Builder/Sign.hs rename to bitcoin/src/Bitcoin/Transaction/Builder/Sign.hs diff --git a/src/Bitcoin/Transaction/Common.hs b/bitcoin/src/Bitcoin/Transaction/Common.hs similarity index 100% rename from src/Bitcoin/Transaction/Common.hs rename to bitcoin/src/Bitcoin/Transaction/Common.hs diff --git a/src/Bitcoin/Transaction/Genesis.hs b/bitcoin/src/Bitcoin/Transaction/Genesis.hs similarity index 100% rename from src/Bitcoin/Transaction/Genesis.hs rename to bitcoin/src/Bitcoin/Transaction/Genesis.hs diff --git a/src/Bitcoin/Transaction/Partial.hs b/bitcoin/src/Bitcoin/Transaction/Partial.hs similarity index 100% rename from src/Bitcoin/Transaction/Partial.hs rename to bitcoin/src/Bitcoin/Transaction/Partial.hs diff --git a/src/Bitcoin/Transaction/Segwit.hs b/bitcoin/src/Bitcoin/Transaction/Segwit.hs similarity index 100% rename from src/Bitcoin/Transaction/Segwit.hs rename to bitcoin/src/Bitcoin/Transaction/Segwit.hs diff --git a/src/Bitcoin/Transaction/Taproot.hs b/bitcoin/src/Bitcoin/Transaction/Taproot.hs similarity index 100% rename from src/Bitcoin/Transaction/Taproot.hs rename to bitcoin/src/Bitcoin/Transaction/Taproot.hs diff --git a/src/Bitcoin/Util.hs b/bitcoin/src/Bitcoin/Util.hs similarity index 100% rename from src/Bitcoin/Util.hs rename to bitcoin/src/Bitcoin/Util.hs diff --git a/hie.yaml b/hie.yaml index 0d77d33b..b6156e6c 100644 --- a/hie.yaml +++ b/hie.yaml @@ -1,10 +1,12 @@ cradle: stack: - - path: "./src" + - path: "./bitcoin/src" component: "bitcoin:lib" - - path: "./test" - component: "bitcoin:test:spec" + - path: "./bitcoin-test/lib" + component: "bitcoin-test:lib" + - path: "./bitcoin-test/exec/Spec.hs" + component: "bitcoin-test:test:spec" - - path: "./benchmark" - component: "bitcoin:bench:benchmark" + - path: "./bitcoin-bench" + component: "bitcoin-bench:bench:benchmark" diff --git a/scripts/format b/scripts/format index 012974fb..765a9e9d 100755 --- a/scripts/format +++ b/scripts/format @@ -1,4 +1,5 @@ #!/usr/bin/env bash -find src -type f -name "*.hs" | xargs fourmolu -i -find test -type f -name "*.hs" | xargs fourmolu -i +find bitcoin -type f -name "*.hs" | xargs fourmolu -i +find bitcoin-test -type f -name "*.hs" | xargs fourmolu -i +find bitcoin-bench -type f -name "*.hs" | xargs fourmolu -i diff --git a/stack.yaml b/stack.yaml index 5a6a9190..a49747d4 100644 --- a/stack.yaml +++ b/stack.yaml @@ -7,3 +7,7 @@ nix: extra-deps: - fourmolu-0.8.2.0 - cryptonite-0.30 +packages: + - ./bitcoin + - ./bitcoin-test + - ./bitcoin-bench