github.com/aychain/blockbook@v0.1.1-0.20181121092459-6d1fc7e07c5b/bchain/coins/vertcoin/vertcoinparser.go (about) 1 package vertcoin 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 = 0xdab5bffb 12 TestnetMagic wire.BitcoinNet = 0x74726576 // "vert" word 13 RegtestMagic wire.BitcoinNet = 0xdab5bffc 14 ) 15 16 var ( 17 MainNetParams chaincfg.Params 18 TestNetParams chaincfg.Params 19 ) 20 21 func init() { 22 MainNetParams = chaincfg.MainNetParams 23 MainNetParams.Net = MainnetMagic 24 MainNetParams.PubKeyHashAddrID = []byte{71} 25 MainNetParams.ScriptHashAddrID = []byte{5} 26 MainNetParams.Bech32HRPSegwit = "vtc" 27 28 TestNetParams = chaincfg.TestNet3Params 29 TestNetParams.Net = TestnetMagic 30 TestNetParams.PubKeyHashAddrID = []byte{74} 31 TestNetParams.ScriptHashAddrID = []byte{196} 32 TestNetParams.Bech32HRPSegwit = "tvtc" 33 } 34 35 // VertcoinParser handle 36 type VertcoinParser struct { 37 *btc.BitcoinParser 38 } 39 40 // NewVertcoinParser returns new VertcoinParser instance 41 func NewVertcoinParser(params *chaincfg.Params, c *btc.Configuration) *VertcoinParser { 42 return &VertcoinParser{BitcoinParser: btc.NewBitcoinParser(params, c)} 43 } 44 45 // GetChainParams contains network parameters for the main Vertcoin network, 46 // and the test Vertcoin network 47 func GetChainParams(chain string) *chaincfg.Params { 48 if !chaincfg.IsRegistered(&MainNetParams) { 49 err := chaincfg.Register(&MainNetParams) 50 if err == nil { 51 err = chaincfg.Register(&TestNetParams) 52 } 53 if err != nil { 54 panic(err) 55 } 56 } 57 switch chain { 58 case "test": 59 return &TestNetParams 60 default: 61 return &MainNetParams 62 } 63 }