From a130318601cd67b61554a8b803be0ddbe294b6f9 Mon Sep 17 00:00:00 2001 From: Jakub Matys Date: Thu, 6 Sep 2018 08:56:29 +0200 Subject: [PATCH] Use forked version of btcutil --- Gopkg.lock | 18 ++++-- bchain/coins/bch/bcashparser.go | 8 +-- bchain/coins/bch/bcashrpc.go | 2 +- bchain/coins/btc/bitcoinparser.go | 6 +- bchain/coins/btg/bgoldparser.go | 6 +- bchain/coins/dash/dashparser.go | 14 ++--- bchain/coins/dogecoin/dogecoinparser.go | 6 +- bchain/coins/litecoin/litecoinparser.go | 10 +-- bchain/coins/monacoin/monacoinparser.go | 10 +-- bchain/coins/namecoin/namecoinparser.go | 6 +- bchain/coins/utils/address.go | 42 ------------- bchain/coins/vertcoin/vertcoinparser.go | 10 +-- bchain/coins/zec/zcashparser.go | 81 ++++++++++++++----------- bchain/coins/zec/zcashparser_test.go | 54 +++++++++++++++-- bchain/coins/zec/zcashrpc.go | 2 +- bchain/coins/zec/zcashrpc_test.go | 22 ++++--- 16 files changed, 159 insertions(+), 138 deletions(-) delete mode 100644 bchain/coins/utils/address.go diff --git a/Gopkg.lock b/Gopkg.lock index 8618ddd9..92e073b8 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -49,12 +49,6 @@ packages = ["ripemd160"] revision = "53f62d9b43e87a6c56975cf862af7edf33a8d0df" -[[projects]] - branch = "master" - name = "github.com/cpacia/bchutil" - packages = ["."] - revision = "12e86f41eb040d3b85b5d8e3a3a4bed035517c52" - [[projects]] name = "github.com/dchest/blake256" packages = ["."] @@ -121,6 +115,18 @@ revision = "ea4d1f681babbce9545c9c5f3d5194a789c89f5b" version = "v1.2.0" +[[projects]] + branch = "master" + name = "github.com/jakm/bchutil" + packages = ["."] + revision = "9e4fc13b082c87967b0befbcbad6fe5a5aa5ac1a" + +[[projects]] + branch = "master" + name = "github.com/jakm/btcutil" + packages = [".","base58","bech32","chaincfg","txscript"] + revision = "a45c5a6a9cb32f0caecb14a4e5a8f82640be1f39" + [[projects]] branch = "master" name = "github.com/juju/errors" diff --git a/bchain/coins/bch/bcashparser.go b/bchain/coins/bch/bcashparser.go index 62f4c6b2..5977e2fd 100644 --- a/bchain/coins/bch/bcashparser.go +++ b/bchain/coins/bch/bcashparser.go @@ -5,10 +5,10 @@ import ( "blockbook/bchain/coins/btc" "fmt" - "github.com/btcsuite/btcd/chaincfg" - "github.com/btcsuite/btcd/txscript" - "github.com/btcsuite/btcutil" - "github.com/cpacia/bchutil" + "github.com/jakm/bchutil" + "github.com/jakm/btcutil" + "github.com/jakm/btcutil/chaincfg" + "github.com/jakm/btcutil/txscript" "github.com/schancel/cashaddr-converter/address" ) diff --git a/bchain/coins/bch/bcashrpc.go b/bchain/coins/bch/bcashrpc.go index 5dd9b141..cbf4b94f 100644 --- a/bchain/coins/bch/bcashrpc.go +++ b/bchain/coins/bch/bcashrpc.go @@ -7,8 +7,8 @@ import ( "encoding/json" "math/big" - "github.com/cpacia/bchutil" "github.com/golang/glog" + "github.com/jakm/bchutil" "github.com/juju/errors" ) diff --git a/bchain/coins/btc/bitcoinparser.go b/bchain/coins/btc/bitcoinparser.go index a4745be0..8dc08c47 100644 --- a/bchain/coins/btc/bitcoinparser.go +++ b/bchain/coins/btc/bitcoinparser.go @@ -9,10 +9,10 @@ import ( vlq "github.com/bsm/go-vlq" "github.com/btcsuite/btcd/blockchain" - "github.com/btcsuite/btcd/chaincfg" - "github.com/btcsuite/btcd/txscript" "github.com/btcsuite/btcd/wire" - "github.com/btcsuite/btcutil" + "github.com/jakm/btcutil" + "github.com/jakm/btcutil/chaincfg" + "github.com/jakm/btcutil/txscript" ) // OutputScriptToAddressesFunc converts ScriptPubKey to bitcoin addresses diff --git a/bchain/coins/btg/bgoldparser.go b/bchain/coins/btg/bgoldparser.go index 67d2c7ef..ab4e38b5 100644 --- a/bchain/coins/btg/bgoldparser.go +++ b/bchain/coins/btg/bgoldparser.go @@ -7,9 +7,9 @@ import ( "bytes" "io" - "github.com/btcsuite/btcd/chaincfg" "github.com/btcsuite/btcd/chaincfg/chainhash" "github.com/btcsuite/btcd/wire" + "github.com/jakm/btcutil/chaincfg" ) const ( @@ -27,8 +27,8 @@ func init() { MainNetParams.Net = MainnetMagic // Address encoding magics - MainNetParams.PubKeyHashAddrID = 38 // base58 prefix: G - MainNetParams.ScriptHashAddrID = 23 // base58 prefix: A + MainNetParams.PubKeyHashAddrID = []byte{38} // base58 prefix: G + MainNetParams.ScriptHashAddrID = []byte{23} // base58 prefix: A TestNetParams = chaincfg.TestNet3Params TestNetParams.Net = TestnetMagic diff --git a/bchain/coins/dash/dashparser.go b/bchain/coins/dash/dashparser.go index 5590cc87..9b93e41b 100644 --- a/bchain/coins/dash/dashparser.go +++ b/bchain/coins/dash/dashparser.go @@ -3,8 +3,8 @@ package dash import ( "blockbook/bchain/coins/btc" - "github.com/btcsuite/btcd/chaincfg" "github.com/btcsuite/btcd/wire" + "github.com/jakm/btcutil/chaincfg" ) const ( @@ -24,22 +24,22 @@ func init() { MainNetParams.Net = MainnetMagic // Address encoding magics - MainNetParams.PubKeyHashAddrID = 76 // base58 prefix: X - MainNetParams.ScriptHashAddrID = 16 // base58 prefix: 7 + MainNetParams.PubKeyHashAddrID = []byte{76} // base58 prefix: X + MainNetParams.ScriptHashAddrID = []byte{16} // base58 prefix: 7 TestNetParams = chaincfg.TestNet3Params TestNetParams.Net = TestnetMagic // Address encoding magics - TestNetParams.PubKeyHashAddrID = 140 // base58 prefix: y - TestNetParams.ScriptHashAddrID = 19 // base58 prefix: 8 or 9 + TestNetParams.PubKeyHashAddrID = []byte{140} // base58 prefix: y + TestNetParams.ScriptHashAddrID = []byte{19} // base58 prefix: 8 or 9 RegtestParams = chaincfg.RegressionNetParams RegtestParams.Net = RegtestMagic // Address encoding magics - RegtestParams.PubKeyHashAddrID = 140 // base58 prefix: y - RegtestParams.ScriptHashAddrID = 19 // base58 prefix: 8 or 9 + RegtestParams.PubKeyHashAddrID = []byte{140} // base58 prefix: y + RegtestParams.ScriptHashAddrID = []byte{19} // base58 prefix: 8 or 9 err := chaincfg.Register(&MainNetParams) if err == nil { diff --git a/bchain/coins/dogecoin/dogecoinparser.go b/bchain/coins/dogecoin/dogecoinparser.go index ac7ea94b..6975c688 100644 --- a/bchain/coins/dogecoin/dogecoinparser.go +++ b/bchain/coins/dogecoin/dogecoinparser.go @@ -6,8 +6,8 @@ import ( "blockbook/bchain/coins/utils" "bytes" - "github.com/btcsuite/btcd/chaincfg" "github.com/btcsuite/btcd/wire" + "github.com/jakm/btcutil/chaincfg" ) const ( @@ -21,8 +21,8 @@ var ( func init() { MainNetParams = chaincfg.MainNetParams MainNetParams.Net = MainnetMagic - MainNetParams.PubKeyHashAddrID = 30 - MainNetParams.ScriptHashAddrID = 22 + MainNetParams.PubKeyHashAddrID = []byte{30} + MainNetParams.ScriptHashAddrID = []byte{22} err := chaincfg.Register(&MainNetParams) if err != nil { diff --git a/bchain/coins/litecoin/litecoinparser.go b/bchain/coins/litecoin/litecoinparser.go index 3cb06f34..d81faa4f 100644 --- a/bchain/coins/litecoin/litecoinparser.go +++ b/bchain/coins/litecoin/litecoinparser.go @@ -3,8 +3,8 @@ package litecoin import ( "blockbook/bchain/coins/btc" - "github.com/btcsuite/btcd/chaincfg" "github.com/btcsuite/btcd/wire" + "github.com/jakm/btcutil/chaincfg" ) const ( @@ -21,14 +21,14 @@ var ( func init() { MainNetParams = chaincfg.MainNetParams MainNetParams.Net = MainnetMagic - MainNetParams.PubKeyHashAddrID = 48 - MainNetParams.ScriptHashAddrID = 50 + MainNetParams.PubKeyHashAddrID = []byte{48} + MainNetParams.ScriptHashAddrID = []byte{50} MainNetParams.Bech32HRPSegwit = "ltc" TestNetParams = chaincfg.TestNet3Params TestNetParams.Net = TestnetMagic - TestNetParams.PubKeyHashAddrID = 111 - TestNetParams.ScriptHashAddrID = 58 + TestNetParams.PubKeyHashAddrID = []byte{111} + TestNetParams.ScriptHashAddrID = []byte{58} TestNetParams.Bech32HRPSegwit = "tltc" err := chaincfg.Register(&MainNetParams) diff --git a/bchain/coins/monacoin/monacoinparser.go b/bchain/coins/monacoin/monacoinparser.go index 4a05bdf0..ac082016 100644 --- a/bchain/coins/monacoin/monacoinparser.go +++ b/bchain/coins/monacoin/monacoinparser.go @@ -4,8 +4,8 @@ import ( "blockbook/bchain" "blockbook/bchain/coins/btc" - "github.com/btcsuite/btcd/chaincfg" "github.com/btcsuite/btcd/wire" + "github.com/jakm/btcutil/chaincfg" monacoinCfg "github.com/wakiyamap/monad/chaincfg" "github.com/wakiyamap/monad/txscript" monacoinWire "github.com/wakiyamap/monad/wire" @@ -29,8 +29,8 @@ var ( func init() { MainNetParams = chaincfg.MainNetParams MainNetParams.Net = MainnetMagic - MainNetParams.PubKeyHashAddrID = 50 - MainNetParams.ScriptHashAddrID = 55 + MainNetParams.PubKeyHashAddrID = []byte{50} + MainNetParams.ScriptHashAddrID = []byte{55} MainNetParams.Bech32HRPSegwit = "mona" MonaMainParams = monacoinCfg.MainNetParams MonaMainParams.Net = MonaMainMagic @@ -40,8 +40,8 @@ func init() { TestNetParams = chaincfg.TestNet3Params TestNetParams.Net = TestnetMagic - TestNetParams.PubKeyHashAddrID = 111 - TestNetParams.ScriptHashAddrID = 117 + TestNetParams.PubKeyHashAddrID = []byte{111} + TestNetParams.ScriptHashAddrID = []byte{117} TestNetParams.Bech32HRPSegwit = "tmona" MonaTestParams = monacoinCfg.TestNet4Params MonaTestParams.Net = MonaTestMagic diff --git a/bchain/coins/namecoin/namecoinparser.go b/bchain/coins/namecoin/namecoinparser.go index 344dbeb4..270f1ed6 100644 --- a/bchain/coins/namecoin/namecoinparser.go +++ b/bchain/coins/namecoin/namecoinparser.go @@ -6,8 +6,8 @@ import ( "blockbook/bchain/coins/utils" "bytes" - "github.com/btcsuite/btcd/chaincfg" "github.com/btcsuite/btcd/wire" + "github.com/jakm/btcutil/chaincfg" ) const ( @@ -21,8 +21,8 @@ var ( func init() { MainNetParams = chaincfg.MainNetParams MainNetParams.Net = MainnetMagic - MainNetParams.PubKeyHashAddrID = 52 - MainNetParams.ScriptHashAddrID = 13 + MainNetParams.PubKeyHashAddrID = []byte{52} + MainNetParams.ScriptHashAddrID = []byte{13} err := chaincfg.Register(&MainNetParams) if err != nil { diff --git a/bchain/coins/utils/address.go b/bchain/coins/utils/address.go deleted file mode 100644 index 9fb2708e..00000000 --- a/bchain/coins/utils/address.go +++ /dev/null @@ -1,42 +0,0 @@ -package utils - -import ( - "crypto/sha256" - "errors" - - "github.com/btcsuite/btcutil/base58" -) - -var ( - // ErrChecksumMismatch describes an error where decoding failed due - // to a bad checksum. - ErrChecksumMismatch = errors.New("checksum mismatch") - - // ErrInvalidFormat describes an error where decoding failed due to invalid version - ErrInvalidFormat = errors.New("invalid format: version and/or checksum bytes missing") -) - -// checksum: first four bytes of sha256^2 -func checksum(input []byte) (cksum [4]byte) { - h := sha256.Sum256(input) - h2 := sha256.Sum256(h[:]) - copy(cksum[:], h2[:4]) - return -} - -// CheckDecode decodes a string that was encoded with CheckEncode and verifies the checksum. -func CheckDecode(input string) (result []byte, version []byte, err error) { - decoded := base58.Decode(input) - if len(decoded) < 5 { - return nil, nil, ErrInvalidFormat - } - version = append(version, decoded[0:2]...) - var cksum [4]byte - copy(cksum[:], decoded[len(decoded)-4:]) - if checksum(decoded[:len(decoded)-4]) != cksum { - return nil, nil, ErrChecksumMismatch - } - payload := decoded[2 : len(decoded)-4] - result = append(result, payload...) - return -} diff --git a/bchain/coins/vertcoin/vertcoinparser.go b/bchain/coins/vertcoin/vertcoinparser.go index 6f33a9ae..59fdbdcf 100644 --- a/bchain/coins/vertcoin/vertcoinparser.go +++ b/bchain/coins/vertcoin/vertcoinparser.go @@ -3,8 +3,8 @@ package vertcoin import ( "blockbook/bchain/coins/btc" - "github.com/btcsuite/btcd/chaincfg" "github.com/btcsuite/btcd/wire" + "github.com/jakm/btcutil/chaincfg" ) const ( @@ -21,14 +21,14 @@ var ( func init() { MainNetParams = chaincfg.MainNetParams MainNetParams.Net = MainnetMagic - MainNetParams.PubKeyHashAddrID = 71 - MainNetParams.ScriptHashAddrID = 5 + MainNetParams.PubKeyHashAddrID = []byte{71} + MainNetParams.ScriptHashAddrID = []byte{5} MainNetParams.Bech32HRPSegwit = "vtc" TestNetParams = chaincfg.TestNet3Params TestNetParams.Net = TestnetMagic - TestNetParams.PubKeyHashAddrID = 74 - TestNetParams.ScriptHashAddrID = 196 + TestNetParams.PubKeyHashAddrID = []byte{74} + TestNetParams.ScriptHashAddrID = []byte{196} TestNetParams.Bech32HRPSegwit = "tvtc" err := chaincfg.Register(&MainNetParams) diff --git a/bchain/coins/zec/zcashparser.go b/bchain/coins/zec/zcashparser.go index 7b7e6e20..c6452fc7 100644 --- a/bchain/coins/zec/zcashparser.go +++ b/bchain/coins/zec/zcashparser.go @@ -3,11 +3,9 @@ package zec import ( "blockbook/bchain" "blockbook/bchain/coins/btc" - "blockbook/bchain/coins/utils" - "github.com/btcsuite/btcd/chaincfg" "github.com/btcsuite/btcd/wire" - "github.com/juju/errors" + "github.com/jakm/btcutil/chaincfg" ) const ( @@ -16,18 +14,48 @@ const ( RegtestMagic wire.BitcoinNet = 0x5f3fe8aa ) +var ( + MainNetParams chaincfg.Params + TestNetParams chaincfg.Params +) + +func init() { + MainNetParams = chaincfg.MainNetParams + MainNetParams.Net = MainnetMagic + + // Address encoding magics + MainNetParams.AddressMagicLen = 2 + MainNetParams.PubKeyHashAddrID = []byte{0x1C, 0xB8} // base58 prefix: t1 + MainNetParams.ScriptHashAddrID = []byte{0x1C, 0xBD} // base58 prefix: t3 + + TestNetParams = chaincfg.TestNet3Params + TestNetParams.Net = TestnetMagic + + // Address encoding magics + TestNetParams.AddressMagicLen = 2 + TestNetParams.PubKeyHashAddrID = []byte{0x1D, 0x25} // base58 prefix: tm + TestNetParams.ScriptHashAddrID = []byte{0x1C, 0xBA} // base58 prefix: t2 + + err := chaincfg.Register(&MainNetParams) + if err == nil { + err = chaincfg.Register(&TestNetParams) + } + if err != nil { + panic(err) + } +} + // ZCashParser handle type ZCashParser struct { - *bchain.BaseParser + *btc.BitcoinParser + baseparser *bchain.BaseParser } // NewZCashParser returns new ZCashParser instance -func NewZCashParser(c *btc.Configuration) *ZCashParser { +func NewZCashParser(params *chaincfg.Params, c *btc.Configuration) *ZCashParser { return &ZCashParser{ - &bchain.BaseParser{ - BlockAddressesToKeep: c.BlockAddressesToKeep, - AmountDecimalPoint: 8, - }, + BitcoinParser: btc.NewBitcoinParser(params, c), + baseparser: &bchain.BaseParser{}, } } @@ -38,42 +66,23 @@ func GetChainParams(chain string) *chaincfg.Params { var params *chaincfg.Params switch chain { case "test": - params = &chaincfg.TestNet3Params - params.Net = TestnetMagic + return &TestNetParams case "regtest": params = &chaincfg.RegressionNetParams params.Net = RegtestMagic default: - params = &chaincfg.MainNetParams - params.Net = MainnetMagic + return &MainNetParams } return params } -// GetAddrDescFromVout returns internal address representation of given transaction output -func (p *ZCashParser) GetAddrDescFromVout(output *bchain.Vout) (bchain.AddressDescriptor, error) { - if len(output.ScriptPubKey.Addresses) != 1 { - return nil, nil - } - hash, _, err := utils.CheckDecode(output.ScriptPubKey.Addresses[0]) - return hash, err +// PackTx packs transaction to byte array using protobuf +func (p *ZCashParser) PackTx(tx *bchain.Tx, height uint32, blockTime int64) ([]byte, error) { + return p.baseparser.PackTx(tx, height, blockTime) } -// GetAddrDescFromAddress returns internal address representation of given address -func (p *ZCashParser) GetAddrDescFromAddress(address string) (bchain.AddressDescriptor, error) { - hash, _, err := utils.CheckDecode(address) - return hash, err -} - -// GetAddressesFromAddrDesc returns addresses for given address descriptor with flag if the addresses are searchable -func (p *ZCashParser) GetAddressesFromAddrDesc(addrDesc bchain.AddressDescriptor) ([]string, bool, error) { - // TODO implement - return nil, false, errors.New("GetAddressesFromAddrDesc: not implemented") -} - -// GetScriptFromAddrDesc returns output script for given address descriptor -func (p *ZCashParser) GetScriptFromAddrDesc(addrDesc bchain.AddressDescriptor) ([]byte, error) { - // TODO implement - return nil, errors.New("GetScriptFromAddrDesc: not implemented") +// UnpackTx unpacks transaction from protobuf byte array +func (p *ZCashParser) UnpackTx(buf []byte) (*bchain.Tx, uint32, error) { + return p.baseparser.UnpackTx(buf) } diff --git a/bchain/coins/zec/zcashparser_test.go b/bchain/coins/zec/zcashparser_test.go index c5e02b5c..ebaf5135 100644 --- a/bchain/coins/zec/zcashparser_test.go +++ b/bchain/coins/zec/zcashparser_test.go @@ -5,6 +5,7 @@ package zec import ( "blockbook/bchain" "blockbook/bchain/coins/btc" + "bytes" "encoding/hex" "math/big" "reflect" @@ -90,6 +91,51 @@ func init() { } } +func TestGetAddrDesc(t *testing.T) { + type args struct { + tx bchain.Tx + parser *ZCashParser + } + tests := []struct { + name string + args args + }{ + { + name: "zec-1", + args: args{ + tx: testTx1, + parser: NewZCashParser(GetChainParams("main"), &btc.Configuration{}), + }, + }, + { + name: "zec-2", + args: args{ + tx: testTx2, + parser: NewZCashParser(GetChainParams("main"), &btc.Configuration{}), + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + for n, vout := range tt.args.tx.Vout { + got1, err := tt.args.parser.GetAddrDescFromVout(&vout) + if err != nil { + t.Errorf("getAddrDescFromVout() error = %v, vout = %d", err, n) + return + } + got2, err := tt.args.parser.GetAddrDescFromAddress(vout.ScriptPubKey.Addresses[0]) + if err != nil { + t.Errorf("getAddrDescFromAddress() error = %v, vout = %d", err, n) + return + } + if !bytes.Equal(got1, got2) { + t.Errorf("Address descriptors mismatch: got1 = %v, got2 = %v", got1, got2) + } + } + }) + } +} + func TestPackTx(t *testing.T) { type args struct { tx bchain.Tx @@ -109,7 +155,7 @@ func TestPackTx(t *testing.T) { tx: testTx1, height: 292272, blockTime: 1521645728, - parser: NewZCashParser(&btc.Configuration{}), + parser: NewZCashParser(GetChainParams("main"), &btc.Configuration{}), }, want: testTxPacked1, wantErr: false, @@ -120,7 +166,7 @@ func TestPackTx(t *testing.T) { tx: testTx2, height: 292217, blockTime: 1521637604, - parser: NewZCashParser(&btc.Configuration{}), + parser: NewZCashParser(GetChainParams("main"), &btc.Configuration{}), }, want: testTxPacked2, wantErr: false, @@ -157,7 +203,7 @@ func TestUnpackTx(t *testing.T) { name: "zec-1", args: args{ packedTx: testTxPacked1, - parser: NewZCashParser(&btc.Configuration{}), + parser: NewZCashParser(GetChainParams("main"), &btc.Configuration{}), }, want: &testTx1, want1: 292272, @@ -167,7 +213,7 @@ func TestUnpackTx(t *testing.T) { name: "zec-2", args: args{ packedTx: testTxPacked2, - parser: NewZCashParser(&btc.Configuration{}), + parser: NewZCashParser(GetChainParams("main"), &btc.Configuration{}), }, want: &testTx2, want1: 292217, diff --git a/bchain/coins/zec/zcashrpc.go b/bchain/coins/zec/zcashrpc.go index b2c45fe5..6c9b023b 100644 --- a/bchain/coins/zec/zcashrpc.go +++ b/bchain/coins/zec/zcashrpc.go @@ -35,7 +35,7 @@ func (z *ZCashRPC) Initialize() error { params := GetChainParams(chainName) - z.Parser = NewZCashParser(z.ChainConfig) + z.Parser = NewZCashParser(params, z.ChainConfig) // parameters for getInfo request if params.Net == MainnetMagic { diff --git a/bchain/coins/zec/zcashrpc_test.go b/bchain/coins/zec/zcashrpc_test.go index f98520c6..be6be633 100644 --- a/bchain/coins/zec/zcashrpc_test.go +++ b/bchain/coins/zec/zcashrpc_test.go @@ -11,15 +11,17 @@ import ( "testing" ) -func getRPCClient(cfg json.RawMessage) (bchain.BlockChain, error) { - c, err := NewZCashRPC(cfg, nil) - if err != nil { - return nil, err +func getRPCClient(chain string) func(cfg json.RawMessage) (bchain.BlockChain, error) { + return func(cfg json.RawMessage) (bchain.BlockChain, error) { + c, err := NewZCashRPC(cfg, nil) + if err != nil { + return nil, err + } + cli := c.(*ZCashRPC) + cli.Parser = NewZCashParser(GetChainParams(chain), cli.ChainConfig) + cli.Mempool = bchain.NewUTXOMempool(cli, cli.ChainConfig.MempoolWorkers, cli.ChainConfig.MempoolSubWorkers) + return cli, nil } - cli := c.(*ZCashRPC) - cli.Parser = NewZCashParser(cli.ChainConfig) - cli.Mempool = bchain.NewUTXOMempool(cli, cli.ChainConfig.MempoolWorkers, cli.ChainConfig.MempoolSubWorkers) - return cli, nil } var tests struct { @@ -30,14 +32,14 @@ var tests struct { func TestMain(m *testing.M) { flag.Parse() - t, err := rpc.NewTest("Zcash", getRPCClient) + t, err := rpc.NewTest("Zcash", getRPCClient("main")) if err != nil { panic(err) } tests.mainnet = t - t, err = rpc.NewTest("Zcash Testnet", getRPCClient) + t, err = rpc.NewTest("Zcash Testnet", getRPCClient("test")) if err != nil { panic(err) }