github.com/trezor/blockbook@v0.4.1-0.20240328132726-e9a08582ee2c/bchain/coins/fujicoin/fujicoinparser.go (about) 1 package fujicoin 2 3 import ( 4 "github.com/martinboehm/btcd/wire" 5 "github.com/martinboehm/btcutil/chaincfg" 6 "github.com/trezor/blockbook/bchain/coins/btc" 7 ) 8 9 const ( 10 // MainnetMagic is mainnet network constant 11 MainnetMagic wire.BitcoinNet = 0x696a7566 12 // TestnetMagic is testnet network constant 13 TestnetMagic wire.BitcoinNet = 0x66756a69 14 // RegtestMagic is regtest network constant 15 RegtestMagic wire.BitcoinNet = 0x66756a69 16 ) 17 18 var ( 19 // MainNetParams are parser parameters for mainnet 20 MainNetParams chaincfg.Params 21 // TestNetParams are parser parameters for testnet 22 TestNetParams chaincfg.Params 23 ) 24 25 func init() { 26 MainNetParams = chaincfg.MainNetParams 27 MainNetParams.Net = MainnetMagic 28 MainNetParams.PubKeyHashAddrID = []byte{36} 29 MainNetParams.ScriptHashAddrID = []byte{16} 30 MainNetParams.Bech32HRPSegwit = "fc" 31 32 TestNetParams = chaincfg.TestNet3Params 33 TestNetParams.Net = TestnetMagic 34 TestNetParams.PubKeyHashAddrID = []byte{74} 35 TestNetParams.ScriptHashAddrID = []byte{196} 36 TestNetParams.Bech32HRPSegwit = "tfc" 37 } 38 39 // FujicoinParser handle 40 type FujicoinParser struct { 41 *btc.BitcoinParser 42 } 43 44 // NewFujicoinParser returns new FujicoinParser instance 45 func NewFujicoinParser(params *chaincfg.Params, c *btc.Configuration) *FujicoinParser { 46 p := &FujicoinParser{BitcoinParser: btc.NewBitcoinParser(params, c)} 47 p.VSizeSupport = false 48 return p 49 } 50 51 // GetChainParams contains network parameters for the main Fujicoin network, 52 // and the test Fujicoin network 53 func GetChainParams(chain string) *chaincfg.Params { 54 if !chaincfg.IsRegistered(&MainNetParams) { 55 err := chaincfg.Register(&MainNetParams) 56 if err == nil { 57 err = chaincfg.Register(&TestNetParams) 58 } 59 if err != nil { 60 panic(err) 61 } 62 } 63 switch chain { 64 case "test": 65 return &TestNetParams 66 default: 67 return &MainNetParams 68 } 69 }