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  }