decred.org/dcrdex@v1.0.5/dex/networks/bch/params_test.go (about) 1 package bch 2 3 import ( 4 "encoding/hex" 5 "testing" 6 7 btctest "decred.org/dcrdex/dex/networks/btc/test" 8 ) 9 10 func TestCompatibility(t *testing.T) { 11 fromHex := func(str string) []byte { 12 b, err := hex.DecodeString(str) 13 if err != nil { 14 t.Fatalf("error decoding %s: %v", str, err) 15 } 16 return b 17 } 18 19 // 2b381efec176b72da70e894a6dbba1fc1ba18a1d573af898e6f92915c0ca8209:1 20 cashAddrP2PKH := "bitcoincash:qznf2drgsapgsejd95yp9nw0qzhw9mrcxsez7d78uv" 21 p2pkhAddr, err := DecodeCashAddress(cashAddrP2PKH, MainNetParams) 22 if err != nil { 23 t.Fatalf("error p2pkh decoding CashAddr address: %v", err) 24 } 25 if !p2pkhAddr.IsForNet(MainNetParams) { 26 t.Fatalf("IsForNet rejected address %v (%v) for net %v", p2pkhAddr, cashAddrP2PKH, MainNetParams.Name) 27 } 28 29 // b63e8090fe7140328d5d6ecdd6045b123e3f05742d9a749f2550fba7d0a6879f:1 30 cashAddrP2SH := "bitcoincash:pqugctqhj096cufywe32rktfu5dpmnnrjgsznuudl2" 31 p2shAddr, err := DecodeCashAddress(cashAddrP2SH, MainNetParams) 32 if err != nil { 33 t.Fatalf("error decoding p2sh CashAddr address: %v", err) 34 } 35 if !p2shAddr.IsForNet(MainNetParams) { 36 t.Fatalf("IsForNet rejected address %v (%v) for net %v", p2shAddr, cashAddrP2SH, MainNetParams.Name) 37 } 38 39 // These scripts and addresses are just copy-pasted from random 40 // getrawtransaction output. 41 items := &btctest.CompatibilityItems{ 42 P2PKHScript: fromHex("76a914a6953468874288664d2d0812cdcf00aee2ec783488ac"), 43 PKHAddr: p2pkhAddr.String(), 44 P2SHScript: fromHex("a914388c2c1793cbac71247662a1d969e51a1dce639287"), 45 SHAddr: p2shAddr.String(), 46 } 47 btctest.CompatibilityCheck(t, items, MainNetParams) 48 }