github.com/aychain/blockbook@v0.1.1-0.20181121092459-6d1fc7e07c5b/bchain/coins/monacoin/monacoinparser.go (about) 1 package monacoin 2 3 import ( 4 "blockbook/bchain/coins/btc" 5 6 "github.com/btcsuite/btcd/wire" 7 "github.com/jakm/btcutil/chaincfg" 8 ) 9 10 const ( 11 MainnetMagic wire.BitcoinNet = 0xdbb6c0fb 12 TestnetMagic wire.BitcoinNet = 0xf1c8d2fd 13 ) 14 15 var ( 16 MainNetParams chaincfg.Params 17 TestNetParams chaincfg.Params 18 ) 19 20 func init() { 21 MainNetParams = chaincfg.MainNetParams 22 MainNetParams.Net = MainnetMagic 23 MainNetParams.PubKeyHashAddrID = []byte{50} 24 MainNetParams.ScriptHashAddrID = []byte{55} 25 MainNetParams.Bech32HRPSegwit = "mona" 26 27 TestNetParams = chaincfg.TestNet3Params 28 TestNetParams.Net = TestnetMagic 29 TestNetParams.PubKeyHashAddrID = []byte{111} 30 TestNetParams.ScriptHashAddrID = []byte{117} 31 TestNetParams.Bech32HRPSegwit = "tmona" 32 } 33 34 // MonacoinParser handle 35 type MonacoinParser struct { 36 *btc.BitcoinParser 37 } 38 39 // NewMonacoinParser returns new MonacoinParser instance 40 func NewMonacoinParser(params *chaincfg.Params, c *btc.Configuration) *MonacoinParser { 41 return &MonacoinParser{BitcoinParser: btc.NewBitcoinParser(params, c)} 42 } 43 44 // GetChainParams contains network parameters for the main Monacoin network, 45 // and the test Monacoin network 46 func GetChainParams(chain string) *chaincfg.Params { 47 if !chaincfg.IsRegistered(&MainNetParams) { 48 err := chaincfg.Register(&MainNetParams) 49 if err == nil { 50 err = chaincfg.Register(&TestNetParams) 51 } 52 if err != nil { 53 panic(err) 54 } 55 } 56 switch chain { 57 case "test": 58 return &TestNetParams 59 default: 60 return &MainNetParams 61 } 62 }