decred.org/dcrdex@v1.0.5/client/asset/btc/block_test/main.go (about) 1 package main 2 3 import ( 4 "flag" 5 "fmt" 6 "os" 7 8 "github.com/btcsuite/btcd/chaincfg/chainhash" 9 "github.com/btcsuite/btcd/rpcclient" 10 ) 11 12 var host = flag.String("host", "127.0.0.1:8332", "node RPC host:port") 13 var user = flag.String("user", "", "node RPC username") 14 var pass = flag.String("pass", "", "node RPC password") 15 16 func main() { 17 os.Exit(mainCore()) 18 } 19 20 func mainCore() int { 21 flag.Parse() 22 23 client, err := rpcclient.New(&rpcclient.ConnConfig{ 24 HTTPPostMode: true, 25 DisableTLS: true, 26 Host: *host, 27 User: *user, 28 Pass: *pass, 29 }, nil) 30 if err != nil { 31 fmt.Fprintf(os.Stderr, "ERROR: Unable to connect to RPC server: %v\n", err) 32 return 1 33 } 34 defer client.Shutdown() 35 36 infoResult, err := client.GetNetworkInfo() 37 if err != nil { 38 fmt.Fprintf(os.Stderr, "ERROR: GetInfo failed: %v\n", err) 39 return 1 40 } 41 fmt.Printf("Node connection count: %d\n", infoResult.Connections) 42 43 hash, err := client.GetBestBlockHash() 44 if err != nil { 45 fmt.Fprintf(os.Stderr, "ERROR: GetBestBlockHash failed: %v\n", err) 46 return 2 47 } 48 hdr, err := client.GetBlockHeaderVerbose(hash) 49 if err != nil { 50 fmt.Fprintf(os.Stderr, "ERROR: GetBestBlockHash failed: %v\n", err) 51 return 2 52 } 53 fmt.Println(hdr.Height, hash) 54 55 // block with tx with big witness item that fails for old btcd/wire 56 bigBlockHash, _ := chainhash.NewHashFromStr("0000000000000000000400a35a007e223a7fb8a622dc7b5aa5eaace6824291fb") 57 msgBlock, err := client.GetBlock(bigBlockHash) 58 if err != nil { 59 fmt.Println(err) 60 return 1 61 } 62 fmt.Println(msgBlock.BlockHash()) 63 64 return 0 65 }