{-# LANGUAGE CPP #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE OverloadedRecordDot #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE NoFieldSelectors #-}
module Haskoin.Network.Constants
(
btc,
btcTest,
btcRegTest,
bch,
bchTest,
bchTest4,
bchRegTest,
allNets,
netByName,
)
where
import Control.DeepSeq
import Data.Binary (Binary (..))
import Data.ByteString (ByteString)
import Data.Bytes.Get
import Data.Bytes.Put
import Data.Bytes.Serial
import Data.List
import Data.Maybe
import Data.Serialize (Serialize (..))
import Data.String
import Data.Text (Text)
import Data.Word (Word32, Word64, Word8)
import GHC.Generics (Generic)
import Haskoin.Block
import Haskoin.Network.Common
import Haskoin.Network.Data
import Haskoin.Transaction
import Text.Read
versionString :: (IsString a) => a
#ifdef CURRENT_PACKAGE_VERSION
versionString :: forall a. IsString a => a
versionString = CURRENT_PACKAGE_VERSION
#else
versionString = "Unavailable"
#endif
netByName :: String -> Maybe Network
netByName :: String -> Maybe Network
netByName String
str = (Network -> Bool) -> [Network] -> Maybe Network
forall (t :: * -> *) a. Foldable t => (a -> Bool) -> t a -> Maybe a
find ((String -> String -> Bool
forall a. Eq a => a -> a -> Bool
== String
str) (String -> Bool) -> (Network -> String) -> Network -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (.name)) [Network]
allNets
btc :: Network
btc :: Network
btc =
Network
{ $sel:name:Network :: String
name = String
"btc",
$sel:addrPrefix:Network :: Word8
addrPrefix = Word8
0,
$sel:scriptPrefix:Network :: Word8
scriptPrefix = Word8
5,
$sel:secretPrefix:Network :: Word8
secretPrefix = Word8
128,
$sel:xPubPrefix:Network :: Word32
xPubPrefix = Word32
0x0488b21e,
$sel:xPrvPrefix:Network :: Word32
xPrvPrefix = Word32
0x0488ade4,
$sel:magic:Network :: Word32
magic = Word32
0xf9beb4d9,
$sel:genesisHeader:Network :: BlockHeader
genesisHeader =
Word32
-> BlockHash
-> Hash256
-> Word32
-> Word32
-> Word32
-> BlockHeader
BlockHeader
Word32
0x01
BlockHash
"0000000000000000000000000000000000000000000000000000000000000000"
Hash256
"3ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a"
Word32
1231006505
Word32
0x1d00ffff
Word32
2083236893,
$sel:maxBlockSize:Network :: Int
maxBlockSize = Int
1000000,
$sel:maxSatoshi:Network :: Word64
maxSatoshi = Word64
2100000000000000,
$sel:userAgent:Network :: ByteString
userAgent =
ByteString
"/haskoin-btc:" ByteString -> ByteString -> ByteString
forall a. Semigroup a => a -> a -> a
<> ByteString
forall a. IsString a => a
versionString ByteString -> ByteString -> ByteString
forall a. Semigroup a => a -> a -> a
<> ByteString
"/",
$sel:defaultPort:Network :: Int
defaultPort = Int
8333,
$sel:minDiffBlocks:Network :: Bool
minDiffBlocks = Bool
False,
$sel:powNoRetarget:Network :: Bool
powNoRetarget = Bool
False,
$sel:powLimit:Network :: Integer
powLimit =
Integer
0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff,
$sel:bip34Block:Network :: (Word32, BlockHash)
bip34Block =
( Word32
227931,
BlockHash
"000000000000024b89b42a942fe0d9fea3bb44ab7bd1b19115dd6a759c0808b8"
),
$sel:bip65Height:Network :: Word32
bip65Height = Word32
388381,
$sel:bip66Height:Network :: Word32
bip66Height = Word32
363725,
$sel:targetTimespan:Network :: Word32
targetTimespan = Word32
14 Word32 -> Word32 -> Word32
forall a. Num a => a -> a -> a
* Word32
24 Word32 -> Word32 -> Word32
forall a. Num a => a -> a -> a
* Word32
60 Word32 -> Word32 -> Word32
forall a. Num a => a -> a -> a
* Word32
60,
$sel:targetSpacing:Network :: Word32
targetSpacing = Word32
10 Word32 -> Word32 -> Word32
forall a. Num a => a -> a -> a
* Word32
60,
$sel:checkpoints:Network :: [(Word32, BlockHash)]
checkpoints =
[ ( Word32
11111,
BlockHash
"0000000069e244f73d78e8fd29ba2fd2ed618bd6fa2ee92559f542fdb26e7c1d"
),
( Word32
33333,
BlockHash
"000000002dd5588a74784eaa7ab0507a18ad16a236e7b1ce69f00d7ddfb5d0a6"
),
( Word32
74000,
BlockHash
"0000000000573993a3c9e41ce34471c079dcf5f52a0e824a81e7f953b8661a20"
),
( Word32
105000,
BlockHash
"00000000000291ce28027faea320c8d2b054b2e0fe44a773f3eefb151d6bdc97"
),
( Word32
134444,
BlockHash
"00000000000005b12ffd4cd315cd34ffd4a594f430ac814c91184a0d42d2b0fe"
),
( Word32
168000,
BlockHash
"000000000000099e61ea72015e79632f216fe6cb33d7899acb35b75c8303b763"
),
( Word32
193000,
BlockHash
"000000000000059f452a5f7340de6682a977387c17010ff6e6c3bd83ca8b1317"
),
( Word32
210000,
BlockHash
"000000000000048b95347e83192f69cf0366076336c639f9b7228e9ba171342e"
),
( Word32
216116,
BlockHash
"00000000000001b4f4b433e81ee46494af945cf96014816a4e2370f11b23df4e"
),
( Word32
225430,
BlockHash
"00000000000001c108384350f74090433e7fcf79a606b8e797f065b130575932"
),
( Word32
250000,
BlockHash
"000000000000003887df1f29024b06fc2200b55f8af8f35453d7be294df2d214"
),
( Word32
279000,
BlockHash
"0000000000000001ae8c72a0b0c301f67e3afca10e819efa9041e458e9bd7e40"
),
( Word32
295000,
BlockHash
"00000000000000004d9b4ef50f0f9d686fd69db2e03af35a100370c64632a983"
)
],
$sel:seeds:Network :: [String]
seeds =
[ String
"seed.bitcoin.sipa.be",
String
"dnsseed.bluematt.me",
String
"dnsseed.bitcoin.dashjr.org",
String
"seed.bitcoinstats.com",
String
"seed.bitcoin.jonasschnelli.ch",
String
"seed.btc.petertodd.org",
String
"seed.bitcoin.sprovoost.nl",
String
"dnsseed.emzy.de",
String
"seed.bitcoin.wiz.biz"
],
$sel:bip44Coin:Network :: Word32
bip44Coin = Word32
0,
$sel:sigHashForkId:Network :: Maybe Word32
sigHashForkId = Maybe Word32
forall a. Maybe a
Nothing,
$sel:edaHeight:Network :: Maybe Word32
edaHeight = Maybe Word32
forall a. Maybe a
Nothing,
$sel:daaHeight:Network :: Maybe Word32
daaHeight = Maybe Word32
forall a. Maybe a
Nothing,
$sel:asertActivationTime:Network :: Maybe Word32
asertActivationTime = Maybe Word32
forall a. Maybe a
Nothing,
$sel:asertHalfLife:Network :: Integer
asertHalfLife = Integer
0,
$sel:segWit:Network :: Bool
segWit = Bool
True,
$sel:cashAddrPrefix:Network :: Maybe Text
cashAddrPrefix = Maybe Text
forall a. Maybe a
Nothing,
$sel:bech32Prefix:Network :: Maybe Text
bech32Prefix = Text -> Maybe Text
forall a. a -> Maybe a
Just Text
"bc",
$sel:replaceByFee:Network :: Bool
replaceByFee = Bool
True,
$sel:halvingInterval:Network :: Word32
halvingInterval = Word32
210000
}
btcTest :: Network
btcTest :: Network
btcTest =
Network
{ $sel:name:Network :: String
name = String
"btctest",
$sel:addrPrefix:Network :: Word8
addrPrefix = Word8
111,
$sel:scriptPrefix:Network :: Word8
scriptPrefix = Word8
196,
$sel:secretPrefix:Network :: Word8
secretPrefix = Word8
239,
$sel:xPubPrefix:Network :: Word32
xPubPrefix = Word32
0x043587cf,
$sel:xPrvPrefix:Network :: Word32
xPrvPrefix = Word32
0x04358394,
$sel:magic:Network :: Word32
magic = Word32
0x0b110907,
$sel:genesisHeader:Network :: BlockHeader
genesisHeader =
Word32
-> BlockHash
-> Hash256
-> Word32
-> Word32
-> Word32
-> BlockHeader
BlockHeader
Word32
0x01
BlockHash
"0000000000000000000000000000000000000000000000000000000000000000"
Hash256
"3ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a"
Word32
1296688602
Word32
486604799
Word32
414098458,
$sel:maxBlockSize:Network :: Int
maxBlockSize = Int
1000000,
$sel:maxSatoshi:Network :: Word64
maxSatoshi = Word64
2100000000000000,
$sel:userAgent:Network :: ByteString
userAgent = ByteString
"/haskoin-btc-test:" ByteString -> ByteString -> ByteString
forall a. Semigroup a => a -> a -> a
<> ByteString
forall a. IsString a => a
versionString ByteString -> ByteString -> ByteString
forall a. Semigroup a => a -> a -> a
<> ByteString
"/",
$sel:defaultPort:Network :: Int
defaultPort = Int
18333,
$sel:minDiffBlocks:Network :: Bool
minDiffBlocks = Bool
True,
$sel:powNoRetarget:Network :: Bool
powNoRetarget = Bool
False,
$sel:powLimit:Network :: Integer
powLimit =
Integer
0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff,
$sel:bip34Block:Network :: (Word32, BlockHash)
bip34Block =
( Word32
21111,
BlockHash
"0000000023b3a96d3484e5abb3755c413e7d41500f8e2a5c3f0dd01299cd8ef8"
),
$sel:bip65Height:Network :: Word32
bip65Height = Word32
581885,
$sel:bip66Height:Network :: Word32
bip66Height = Word32
330776,
$sel:targetTimespan:Network :: Word32
targetTimespan = Word32
14 Word32 -> Word32 -> Word32
forall a. Num a => a -> a -> a
* Word32
24 Word32 -> Word32 -> Word32
forall a. Num a => a -> a -> a
* Word32
60 Word32 -> Word32 -> Word32
forall a. Num a => a -> a -> a
* Word32
60,
$sel:targetSpacing:Network :: Word32
targetSpacing = Word32
10 Word32 -> Word32 -> Word32
forall a. Num a => a -> a -> a
* Word32
60,
$sel:checkpoints:Network :: [(Word32, BlockHash)]
checkpoints =
[ ( Word32
546,
BlockHash
"000000002a936ca763904c3c35fce2f3556c559c0214345d31b1bcebf76acb70"
)
],
$sel:seeds:Network :: [String]
seeds =
[ String
"testnet-seed.bitcoin.jonasschnelli.ch",
String
"seed.tbtc.petertodd.org",
String
"seed.testnet.bitcoin.sprovoost.nl",
String
"testnet-seed.bluematt.me"
],
$sel:bip44Coin:Network :: Word32
bip44Coin = Word32
1,
$sel:sigHashForkId:Network :: Maybe Word32
sigHashForkId = Maybe Word32
forall a. Maybe a
Nothing,
$sel:edaHeight:Network :: Maybe Word32
edaHeight = Maybe Word32
forall a. Maybe a
Nothing,
$sel:daaHeight:Network :: Maybe Word32
daaHeight = Maybe Word32
forall a. Maybe a
Nothing,
$sel:asertActivationTime:Network :: Maybe Word32
asertActivationTime = Maybe Word32
forall a. Maybe a
Nothing,
$sel:asertHalfLife:Network :: Integer
asertHalfLife = Integer
0,
$sel:segWit:Network :: Bool
segWit = Bool
True,
$sel:cashAddrPrefix:Network :: Maybe Text
cashAddrPrefix = Maybe Text
forall a. Maybe a
Nothing,
$sel:bech32Prefix:Network :: Maybe Text
bech32Prefix = Text -> Maybe Text
forall a. a -> Maybe a
Just Text
"tb",
$sel:replaceByFee:Network :: Bool
replaceByFee = Bool
True,
$sel:halvingInterval:Network :: Word32
halvingInterval = Word32
210000
}
btcRegTest :: Network
btcRegTest :: Network
btcRegTest =
Network
{ $sel:name:Network :: String
name = String
"btcreg",
$sel:addrPrefix:Network :: Word8
addrPrefix = Word8
111,
$sel:scriptPrefix:Network :: Word8
scriptPrefix = Word8
196,
$sel:secretPrefix:Network :: Word8
secretPrefix = Word8
239,
$sel:xPubPrefix:Network :: Word32
xPubPrefix = Word32
0x043587cf,
$sel:xPrvPrefix:Network :: Word32
xPrvPrefix = Word32
0x04358394,
$sel:magic:Network :: Word32
magic = Word32
0xfabfb5da,
$sel:genesisHeader:Network :: BlockHeader
genesisHeader =
Word32
-> BlockHash
-> Hash256
-> Word32
-> Word32
-> Word32
-> BlockHeader
BlockHeader
Word32
0x01
BlockHash
"0000000000000000000000000000000000000000000000000000000000000000"
Hash256
"3ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a"
Word32
1296688602
Word32
0x207fffff
Word32
2,
$sel:maxBlockSize:Network :: Int
maxBlockSize = Int
1000000,
$sel:maxSatoshi:Network :: Word64
maxSatoshi = Word64
2100000000000000,
$sel:userAgent:Network :: ByteString
userAgent = ByteString
"/haskoin-btc-regtest:" ByteString -> ByteString -> ByteString
forall a. Semigroup a => a -> a -> a
<> ByteString
forall a. IsString a => a
versionString ByteString -> ByteString -> ByteString
forall a. Semigroup a => a -> a -> a
<> ByteString
"/",
$sel:defaultPort:Network :: Int
defaultPort = Int
18444,
$sel:minDiffBlocks:Network :: Bool
minDiffBlocks = Bool
True,
$sel:powNoRetarget:Network :: Bool
powNoRetarget = Bool
True,
$sel:powLimit:Network :: Integer
powLimit =
Integer
0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff,
$sel:bip34Block:Network :: (Word32, BlockHash)
bip34Block =
( Word32
100000000,
BlockHash
"0000000000000000000000000000000000000000000000000000000000000000"
),
$sel:bip65Height:Network :: Word32
bip65Height = Word32
1351,
$sel:bip66Height:Network :: Word32
bip66Height = Word32
1251,
$sel:targetTimespan:Network :: Word32
targetTimespan = Word32
14 Word32 -> Word32 -> Word32
forall a. Num a => a -> a -> a
* Word32
24 Word32 -> Word32 -> Word32
forall a. Num a => a -> a -> a
* Word32
60 Word32 -> Word32 -> Word32
forall a. Num a => a -> a -> a
* Word32
60,
$sel:targetSpacing:Network :: Word32
targetSpacing = Word32
10 Word32 -> Word32 -> Word32
forall a. Num a => a -> a -> a
* Word32
60,
$sel:checkpoints:Network :: [(Word32, BlockHash)]
checkpoints = [],
$sel:seeds:Network :: [String]
seeds = [String
"localhost"],
$sel:bip44Coin:Network :: Word32
bip44Coin = Word32
1,
$sel:sigHashForkId:Network :: Maybe Word32
sigHashForkId = Maybe Word32
forall a. Maybe a
Nothing,
$sel:edaHeight:Network :: Maybe Word32
edaHeight = Maybe Word32
forall a. Maybe a
Nothing,
$sel:daaHeight:Network :: Maybe Word32
daaHeight = Maybe Word32
forall a. Maybe a
Nothing,
$sel:asertActivationTime:Network :: Maybe Word32
asertActivationTime = Maybe Word32
forall a. Maybe a
Nothing,
$sel:asertHalfLife:Network :: Integer
asertHalfLife = Integer
0,
$sel:segWit:Network :: Bool
segWit = Bool
True,
$sel:cashAddrPrefix:Network :: Maybe Text
cashAddrPrefix = Maybe Text
forall a. Maybe a
Nothing,
$sel:bech32Prefix:Network :: Maybe Text
bech32Prefix = Text -> Maybe Text
forall a. a -> Maybe a
Just Text
"bcrt",
$sel:replaceByFee:Network :: Bool
replaceByFee = Bool
True,
$sel:halvingInterval:Network :: Word32
halvingInterval = Word32
150
}
bch :: Network
bch :: Network
bch =
Network
{ $sel:name:Network :: String
name = String
"bch",
$sel:addrPrefix:Network :: Word8
addrPrefix = Word8
0,
$sel:scriptPrefix:Network :: Word8
scriptPrefix = Word8
5,
$sel:secretPrefix:Network :: Word8
secretPrefix = Word8
128,
$sel:xPubPrefix:Network :: Word32
xPubPrefix = Word32
0x0488b21e,
$sel:xPrvPrefix:Network :: Word32
xPrvPrefix = Word32
0x0488ade4,
$sel:magic:Network :: Word32
magic = Word32
0xe3e1f3e8,
$sel:genesisHeader:Network :: BlockHeader
genesisHeader =
Word32
-> BlockHash
-> Hash256
-> Word32
-> Word32
-> Word32
-> BlockHeader
BlockHeader
Word32
0x01
BlockHash
"0000000000000000000000000000000000000000000000000000000000000000"
Hash256
"3ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a"
Word32
1231006505
Word32
0x1d00ffff
Word32
2083236893,
$sel:maxBlockSize:Network :: Int
maxBlockSize = Int
32000000,
$sel:maxSatoshi:Network :: Word64
maxSatoshi = Word64
2100000000000000,
$sel:userAgent:Network :: ByteString
userAgent = ByteString
"/haskoin-bch:" ByteString -> ByteString -> ByteString
forall a. Semigroup a => a -> a -> a
<> ByteString
forall a. IsString a => a
versionString ByteString -> ByteString -> ByteString
forall a. Semigroup a => a -> a -> a
<> ByteString
"/",
$sel:defaultPort:Network :: Int
defaultPort = Int
8333,
$sel:minDiffBlocks:Network :: Bool
minDiffBlocks = Bool
False,
$sel:powNoRetarget:Network :: Bool
powNoRetarget = Bool
False,
$sel:powLimit:Network :: Integer
powLimit =
Integer
0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff,
$sel:bip34Block:Network :: (Word32, BlockHash)
bip34Block =
( Word32
227931,
BlockHash
"000000000000024b89b42a942fe0d9fea3bb44ab7bd1b19115dd6a759c0808b8"
),
$sel:bip65Height:Network :: Word32
bip65Height = Word32
388381,
$sel:bip66Height:Network :: Word32
bip66Height = Word32
363725,
$sel:targetTimespan:Network :: Word32
targetTimespan = Word32
14 Word32 -> Word32 -> Word32
forall a. Num a => a -> a -> a
* Word32
24 Word32 -> Word32 -> Word32
forall a. Num a => a -> a -> a
* Word32
60 Word32 -> Word32 -> Word32
forall a. Num a => a -> a -> a
* Word32
60,
$sel:targetSpacing:Network :: Word32
targetSpacing = Word32
10 Word32 -> Word32 -> Word32
forall a. Num a => a -> a -> a
* Word32
60,
$sel:checkpoints:Network :: [(Word32, BlockHash)]
checkpoints =
[ ( Word32
11111,
BlockHash
"0000000069e244f73d78e8fd29ba2fd2ed618bd6fa2ee92559f542fdb26e7c1d"
),
( Word32
33333,
BlockHash
"000000002dd5588a74784eaa7ab0507a18ad16a236e7b1ce69f00d7ddfb5d0a6"
),
( Word32
74000,
BlockHash
"0000000000573993a3c9e41ce34471c079dcf5f52a0e824a81e7f953b8661a20"
),
( Word32
105000,
BlockHash
"00000000000291ce28027faea320c8d2b054b2e0fe44a773f3eefb151d6bdc97"
),
( Word32
134444,
BlockHash
"00000000000005b12ffd4cd315cd34ffd4a594f430ac814c91184a0d42d2b0fe"
),
( Word32
168000,
BlockHash
"000000000000099e61ea72015e79632f216fe6cb33d7899acb35b75c8303b763"
),
( Word32
193000,
BlockHash
"000000000000059f452a5f7340de6682a977387c17010ff6e6c3bd83ca8b1317"
),
( Word32
210000,
BlockHash
"000000000000048b95347e83192f69cf0366076336c639f9b7228e9ba171342e"
),
( Word32
216116,
BlockHash
"00000000000001b4f4b433e81ee46494af945cf96014816a4e2370f11b23df4e"
),
( Word32
225430,
BlockHash
"00000000000001c108384350f74090433e7fcf79a606b8e797f065b130575932"
),
( Word32
250000,
BlockHash
"000000000000003887df1f29024b06fc2200b55f8af8f35453d7be294df2d214"
),
( Word32
279000,
BlockHash
"0000000000000001ae8c72a0b0c301f67e3afca10e819efa9041e458e9bd7e40"
),
( Word32
295000,
BlockHash
"00000000000000004d9b4ef50f0f9d686fd69db2e03af35a100370c64632a983"
),
( Word32
478559,
BlockHash
"000000000000000000651ef99cb9fcbe0dadde1d424bd9f15ff20136191a5eec"
),
( Word32
504031,
BlockHash
"0000000000000000011ebf65b60d0a3de80b8175be709d653b4c1a1beeb6ab9c"
)
],
$sel:seeds:Network :: [String]
seeds =
[ String
"seed.bitcoinabc.org",
String
"seed-bch.bitcoinforks.org",
String
"btccash-seeder.bitcoinunlimited.info",
String
"seed.bchd.cash",
String
"seed.bch.loping.net",
String
"dnsseed.electroncash.de"
],
$sel:bip44Coin:Network :: Word32
bip44Coin = Word32
145,
$sel:sigHashForkId:Network :: Maybe Word32
sigHashForkId = Word32 -> Maybe Word32
forall a. a -> Maybe a
Just Word32
0,
$sel:edaHeight:Network :: Maybe Word32
edaHeight = Word32 -> Maybe Word32
forall a. a -> Maybe a
Just Word32
478559,
$sel:daaHeight:Network :: Maybe Word32
daaHeight = Word32 -> Maybe Word32
forall a. a -> Maybe a
Just Word32
404031,
$sel:asertActivationTime:Network :: Maybe Word32
asertActivationTime = Word32 -> Maybe Word32
forall a. a -> Maybe a
Just Word32
1605441600,
$sel:asertHalfLife:Network :: Integer
asertHalfLife = Integer
60 Integer -> Integer -> Integer
forall a. Num a => a -> a -> a
* Integer
60 Integer -> Integer -> Integer
forall a. Num a => a -> a -> a
* Integer
10,
$sel:segWit:Network :: Bool
segWit = Bool
False,
$sel:cashAddrPrefix:Network :: Maybe Text
cashAddrPrefix = Text -> Maybe Text
forall a. a -> Maybe a
Just Text
"bitcoincash",
$sel:bech32Prefix:Network :: Maybe Text
bech32Prefix = Maybe Text
forall a. Maybe a
Nothing,
$sel:replaceByFee:Network :: Bool
replaceByFee = Bool
False,
$sel:halvingInterval:Network :: Word32
halvingInterval = Word32
210000
}
bchTest4 :: Network
bchTest4 :: Network
bchTest4 =
Network
{ $sel:name:Network :: String
name = String
"bchtest4",
$sel:addrPrefix:Network :: Word8
addrPrefix = Word8
111,
$sel:scriptPrefix:Network :: Word8
scriptPrefix = Word8
196,
$sel:secretPrefix:Network :: Word8
secretPrefix = Word8
239,
$sel:xPubPrefix:Network :: Word32
xPubPrefix = Word32
0x043587cf,
$sel:xPrvPrefix:Network :: Word32
xPrvPrefix = Word32
0x04358394,
$sel:magic:Network :: Word32
magic = Word32
0xe2b7daaf,
$sel:genesisHeader:Network :: BlockHeader
genesisHeader =
Word32
-> BlockHash
-> Hash256
-> Word32
-> Word32
-> Word32
-> BlockHeader
BlockHeader
Word32
0x01
BlockHash
"0000000000000000000000000000000000000000000000000000000000000000"
Hash256
"3ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a"
Word32
1597811185
Word32
0x1d00ffff
Word32
114152193,
$sel:maxBlockSize:Network :: Int
maxBlockSize = Int
2000000,
$sel:maxSatoshi:Network :: Word64
maxSatoshi = Word64
2100000000000000,
$sel:userAgent:Network :: ByteString
userAgent = ByteString
"/haskoin-bch-test4:" ByteString -> ByteString -> ByteString
forall a. Semigroup a => a -> a -> a
<> ByteString
forall a. IsString a => a
versionString ByteString -> ByteString -> ByteString
forall a. Semigroup a => a -> a -> a
<> ByteString
"/",
$sel:defaultPort:Network :: Int
defaultPort = Int
28333,
$sel:minDiffBlocks:Network :: Bool
minDiffBlocks = Bool
True,
$sel:powNoRetarget:Network :: Bool
powNoRetarget = Bool
False,
$sel:powLimit:Network :: Integer
powLimit =
Integer
0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff,
$sel:bip34Block:Network :: (Word32, BlockHash)
bip34Block =
( Word32
2,
BlockHash
"00000000b0c65b1e03baace7d5c093db0d6aac224df01484985ffd5e86a1a20c"
),
$sel:bip65Height:Network :: Word32
bip65Height = Word32
3,
$sel:bip66Height:Network :: Word32
bip66Height = Word32
4,
$sel:targetTimespan:Network :: Word32
targetTimespan = Word32
14 Word32 -> Word32 -> Word32
forall a. Num a => a -> a -> a
* Word32
24 Word32 -> Word32 -> Word32
forall a. Num a => a -> a -> a
* Word32
60 Word32 -> Word32 -> Word32
forall a. Num a => a -> a -> a
* Word32
60,
$sel:targetSpacing:Network :: Word32
targetSpacing = Word32
10 Word32 -> Word32 -> Word32
forall a. Num a => a -> a -> a
* Word32
60,
$sel:checkpoints:Network :: [(Word32, BlockHash)]
checkpoints =
[ ( Word32
5000,
BlockHash
"000000009f092d074574a216faec682040a853c4f079c33dfd2c3ef1fd8108c4"
),
( Word32
16845,
BlockHash
"00000000fb325b8f34fe80c96a5f708a08699a68bbab82dba4474d86bd743077"
),
( Word32
38000,
BlockHash
"000000000015197537e59f339e3b1bbf81a66f691bd3d7aa08560fc7bf5113fb"
),
( Word32
54700,
BlockHash
"00000000009af4379d87f17d0f172ee4769b48839a5a3a3e81d69da4322518b8"
)
],
$sel:seeds:Network :: [String]
seeds =
[ String
"testnet4-seed-bch.bitcoinforks.org",
String
"testnet4-seed-bch.toom.im",
String
"seed.tbch4.loping.net",
String
"testnet4-seed.flowee.cash"
],
$sel:bip44Coin:Network :: Word32
bip44Coin = Word32
1,
$sel:sigHashForkId:Network :: Maybe Word32
sigHashForkId = Word32 -> Maybe Word32
forall a. a -> Maybe a
Just Word32
0,
$sel:edaHeight:Network :: Maybe Word32
edaHeight = Word32 -> Maybe Word32
forall a. a -> Maybe a
Just Word32
7,
$sel:daaHeight:Network :: Maybe Word32
daaHeight = Word32 -> Maybe Word32
forall a. a -> Maybe a
Just Word32
3000,
$sel:asertActivationTime:Network :: Maybe Word32
asertActivationTime = Word32 -> Maybe Word32
forall a. a -> Maybe a
Just Word32
1605441600,
$sel:asertHalfLife:Network :: Integer
asertHalfLife = Integer
60 Integer -> Integer -> Integer
forall a. Num a => a -> a -> a
* Integer
60,
$sel:segWit:Network :: Bool
segWit = Bool
False,
$sel:cashAddrPrefix:Network :: Maybe Text
cashAddrPrefix = Text -> Maybe Text
forall a. a -> Maybe a
Just Text
"bchtest",
$sel:bech32Prefix:Network :: Maybe Text
bech32Prefix = Maybe Text
forall a. Maybe a
Nothing,
$sel:replaceByFee:Network :: Bool
replaceByFee = Bool
False,
$sel:halvingInterval:Network :: Word32
halvingInterval = Word32
210000
}
bchTest :: Network
bchTest :: Network
bchTest =
Network
{ $sel:name:Network :: String
name = String
"bchtest",
$sel:addrPrefix:Network :: Word8
addrPrefix = Word8
111,
$sel:scriptPrefix:Network :: Word8
scriptPrefix = Word8
196,
$sel:secretPrefix:Network :: Word8
secretPrefix = Word8
239,
$sel:xPubPrefix:Network :: Word32
xPubPrefix = Word32
0x043587cf,
$sel:xPrvPrefix:Network :: Word32
xPrvPrefix = Word32
0x04358394,
$sel:magic:Network :: Word32
magic = Word32
0xf4e5f3f4,
$sel:genesisHeader:Network :: BlockHeader
genesisHeader =
Word32
-> BlockHash
-> Hash256
-> Word32
-> Word32
-> Word32
-> BlockHeader
BlockHeader
Word32
0x01
BlockHash
"0000000000000000000000000000000000000000000000000000000000000000"
Hash256
"3ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a"
Word32
1296688602
Word32
486604799
Word32
414098458,
$sel:maxBlockSize:Network :: Int
maxBlockSize = Int
32000000,
$sel:maxSatoshi:Network :: Word64
maxSatoshi = Word64
2100000000000000,
$sel:userAgent:Network :: ByteString
userAgent = ByteString
"/haskoin-bch-test:" ByteString -> ByteString -> ByteString
forall a. Semigroup a => a -> a -> a
<> ByteString
forall a. IsString a => a
versionString ByteString -> ByteString -> ByteString
forall a. Semigroup a => a -> a -> a
<> ByteString
"/",
$sel:defaultPort:Network :: Int
defaultPort = Int
18333,
$sel:minDiffBlocks:Network :: Bool
minDiffBlocks = Bool
True,
$sel:powNoRetarget:Network :: Bool
powNoRetarget = Bool
False,
$sel:powLimit:Network :: Integer
powLimit =
Integer
0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff,
$sel:bip34Block:Network :: (Word32, BlockHash)
bip34Block =
( Word32
21111,
BlockHash
"0000000023b3a96d3484e5abb3755c413e7d41500f8e2a5c3f0dd01299cd8ef8"
),
$sel:bip65Height:Network :: Word32
bip65Height = Word32
581885,
$sel:bip66Height:Network :: Word32
bip66Height = Word32
330776,
$sel:targetTimespan:Network :: Word32
targetTimespan = Word32
14 Word32 -> Word32 -> Word32
forall a. Num a => a -> a -> a
* Word32
24 Word32 -> Word32 -> Word32
forall a. Num a => a -> a -> a
* Word32
60 Word32 -> Word32 -> Word32
forall a. Num a => a -> a -> a
* Word32
60,
$sel:targetSpacing:Network :: Word32
targetSpacing = Word32
10 Word32 -> Word32 -> Word32
forall a. Num a => a -> a -> a
* Word32
60,
$sel:checkpoints:Network :: [(Word32, BlockHash)]
checkpoints =
[ ( Word32
546,
BlockHash
"000000002a936ca763904c3c35fce2f3556c559c0214345d31b1bcebf76acb70"
),
( Word32
1155876,
BlockHash
"00000000000e38fef93ed9582a7df43815d5c2ba9fd37ef70c9a0ea4a285b8f5"
),
( Word32
1188697,
BlockHash
"0000000000170ed0918077bde7b4d36cc4c91be69fa09211f748240dabe047fb"
)
],
$sel:seeds:Network :: [String]
seeds =
[ String
"testnet-seed.bitcoinabc.org",
String
"testnet-seed-bch.bitcoinforks.org",
String
"testnet-seed.bchd.cash",
String
"seed.tbch.loping.net"
],
$sel:bip44Coin:Network :: Word32
bip44Coin = Word32
1,
$sel:sigHashForkId:Network :: Maybe Word32
sigHashForkId = Word32 -> Maybe Word32
forall a. a -> Maybe a
Just Word32
0,
$sel:edaHeight:Network :: Maybe Word32
edaHeight = Word32 -> Maybe Word32
forall a. a -> Maybe a
Just Word32
1155876,
$sel:daaHeight:Network :: Maybe Word32
daaHeight = Word32 -> Maybe Word32
forall a. a -> Maybe a
Just Word32
1188697,
$sel:asertActivationTime:Network :: Maybe Word32
asertActivationTime = Word32 -> Maybe Word32
forall a. a -> Maybe a
Just Word32
1605441600,
$sel:asertHalfLife:Network :: Integer
asertHalfLife = Integer
60 Integer -> Integer -> Integer
forall a. Num a => a -> a -> a
* Integer
60,
$sel:segWit:Network :: Bool
segWit = Bool
False,
$sel:cashAddrPrefix:Network :: Maybe Text
cashAddrPrefix = Text -> Maybe Text
forall a. a -> Maybe a
Just Text
"bchtest",
$sel:bech32Prefix:Network :: Maybe Text
bech32Prefix = Maybe Text
forall a. Maybe a
Nothing,
$sel:replaceByFee:Network :: Bool
replaceByFee = Bool
False,
$sel:halvingInterval:Network :: Word32
halvingInterval = Word32
210000
}
bchRegTest :: Network
bchRegTest :: Network
bchRegTest =
Network
{ $sel:name:Network :: String
name = String
"bchreg",
$sel:addrPrefix:Network :: Word8
addrPrefix = Word8
111,
$sel:scriptPrefix:Network :: Word8
scriptPrefix = Word8
196,
$sel:secretPrefix:Network :: Word8
secretPrefix = Word8
239,
$sel:xPubPrefix:Network :: Word32
xPubPrefix = Word32
0x043587cf,
$sel:xPrvPrefix:Network :: Word32
xPrvPrefix = Word32
0x04358394,
$sel:magic:Network :: Word32
magic = Word32
0xdab5bffa,
$sel:genesisHeader:Network :: BlockHeader
genesisHeader =
Word32
-> BlockHash
-> Hash256
-> Word32
-> Word32
-> Word32
-> BlockHeader
BlockHeader
Word32
0x01
BlockHash
"0000000000000000000000000000000000000000000000000000000000000000"
Hash256
"3ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a"
Word32
1296688602
Word32
0x207fffff
Word32
2,
$sel:maxBlockSize:Network :: Int
maxBlockSize = Int
1000000,
$sel:maxSatoshi:Network :: Word64
maxSatoshi = Word64
2100000000000000,
$sel:userAgent:Network :: ByteString
userAgent = ByteString
"/haskoin-bch-regtest:" ByteString -> ByteString -> ByteString
forall a. Semigroup a => a -> a -> a
<> ByteString
forall a. IsString a => a
versionString ByteString -> ByteString -> ByteString
forall a. Semigroup a => a -> a -> a
<> ByteString
"/",
$sel:defaultPort:Network :: Int
defaultPort = Int
18444,
$sel:minDiffBlocks:Network :: Bool
minDiffBlocks = Bool
True,
$sel:powNoRetarget:Network :: Bool
powNoRetarget = Bool
True,
$sel:powLimit:Network :: Integer
powLimit =
Integer
0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff,
$sel:bip34Block:Network :: (Word32, BlockHash)
bip34Block =
( Word32
100000000,
BlockHash
"0000000000000000000000000000000000000000000000000000000000000000"
),
$sel:bip65Height:Network :: Word32
bip65Height = Word32
1351,
$sel:bip66Height:Network :: Word32
bip66Height = Word32
1251,
$sel:targetTimespan:Network :: Word32
targetTimespan = Word32
14 Word32 -> Word32 -> Word32
forall a. Num a => a -> a -> a
* Word32
24 Word32 -> Word32 -> Word32
forall a. Num a => a -> a -> a
* Word32
60 Word32 -> Word32 -> Word32
forall a. Num a => a -> a -> a
* Word32
60,
$sel:targetSpacing:Network :: Word32
targetSpacing = Word32
10 Word32 -> Word32 -> Word32
forall a. Num a => a -> a -> a
* Word32
60,
$sel:checkpoints:Network :: [(Word32, BlockHash)]
checkpoints =
[ ( Word32
0,
BlockHash
"0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206"
)
],
$sel:seeds:Network :: [String]
seeds = [String
"localhost"],
$sel:bip44Coin:Network :: Word32
bip44Coin = Word32
1,
$sel:sigHashForkId:Network :: Maybe Word32
sigHashForkId = Word32 -> Maybe Word32
forall a. a -> Maybe a
Just Word32
0,
$sel:edaHeight:Network :: Maybe Word32
edaHeight = Maybe Word32
forall a. Maybe a
Nothing,
$sel:daaHeight:Network :: Maybe Word32
daaHeight = Word32 -> Maybe Word32
forall a. a -> Maybe a
Just Word32
0,
$sel:asertActivationTime:Network :: Maybe Word32
asertActivationTime = Word32 -> Maybe Word32
forall a. a -> Maybe a
Just Word32
1605441600,
$sel:asertHalfLife:Network :: Integer
asertHalfLife = Integer
2 Integer -> Integer -> Integer
forall a. Num a => a -> a -> a
* Integer
24 Integer -> Integer -> Integer
forall a. Num a => a -> a -> a
* Integer
60 Integer -> Integer -> Integer
forall a. Num a => a -> a -> a
* Integer
60,
$sel:segWit:Network :: Bool
segWit = Bool
False,
$sel:cashAddrPrefix:Network :: Maybe Text
cashAddrPrefix = Text -> Maybe Text
forall a. a -> Maybe a
Just Text
"bchreg",
$sel:bech32Prefix:Network :: Maybe Text
bech32Prefix = Maybe Text
forall a. Maybe a
Nothing,
$sel:replaceByFee:Network :: Bool
replaceByFee = Bool
False,
$sel:halvingInterval:Network :: Word32
halvingInterval = Word32
150
}
allNets :: [Network]
allNets :: [Network]
allNets = [Network
btc, Network
bch, Network
btcTest, Network
bchTest4, Network
bchTest, Network
btcRegTest, Network
bchRegTest]