diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 000000000..1c2b081ba --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,31 @@ +name: build +on: + push: + branches: + - master + pull_request: + branches: + - master +permissions: + contents: read +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Setup Go ${{ matrix.go-version }} + uses: actions/setup-go@v5 + with: + go-version: stable + - name: Install golangci-lint + run: curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.62.2 + env: + GO111MODULE: on + - name: Run goclean.sh + run: ./goclean.sh + env: + GO111MODULE: on + - name: Go Build/Install + run: go build && go install . ./cmd/... + env: + GO111MODULE: on diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 36959cc9c..000000000 --- a/.travis.yml +++ /dev/null @@ -1,34 +0,0 @@ -language: go -go_import_path: github.com/gcash/bchd -go: - - "1.23.4" - -services: - - docker - -sudo: false - -cache: - directories: - - $GOPATH/pkg/mod - - /home/travis/.cache/go-build - -env: - - GO111MODULE=on - -before_install: - - go get github.com/golangci/golangci-lint/cmd/golangci-lint - -install: - - env GO111MODULE=on go build - - env GO111MODULE=on go install . ./cmd/... - -script: - - export PATH=$PATH:$HOME/gopath/bin - - ./goclean.sh - -after_script: - - if [ "$TRAVIS_GO_VERSION" = "1.23.4" ] && [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$TRAVIS_TAG" != "" ]; then go get github.com/inconshreveable/mousetrap; fi - - if [ "$TRAVIS_GO_VERSION" = "1.23.4" ] && [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$TRAVIS_TAG" != "" ]; then go get github.com/mitchellh/gox; fi - - if [ "$TRAVIS_GO_VERSION" = "1.23.4" ] && [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$TRAVIS_TAG" != "" ]; then go get github.com/tcnksm/ghr; fi - - if [ "$TRAVIS_GO_VERSION" = "1.23.4" ] && [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$TRAVIS_TAG" != "" ]; then make compile; ghr --username gcash --token $GITHUB_TOKEN --replace $TRAVIS_TAG pkg/; fi diff --git a/README.md b/README.md index 7d0f053fa..9d38c46c4 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ bchd ==== -[![Build Status](https://travis-ci.org/gcash/bchd.png?branch=master)](https://travis-ci.org/gcash/bchd) +![Build Status](https://github.com/gcash/bchd/actions/workflows/main.yml/badge.svg?branch=master) [![Go Report Card](https://goreportcard.com/badge/github.com/gcash/bchd)](https://goreportcard.com/report/github.com/gcash/bchd) [![ISC License](http://img.shields.io/badge/license-ISC-blue.svg)](http://copyfree.org) [![GoDoc](https://img.shields.io/badge/godoc-reference-blue.svg)](http://godoc.org/github.com/gcash/bchd) @@ -11,8 +11,8 @@ This project is a port of the [btcd](https://github.com/btcsuite/btcd) codebase and reliable blockchain server which makes it a suitable backend to serve blockchain data to lite clients and block explorers or to power your local wallet. -bchd does not include any wallet functionality by design as it makes the codebase more modular and easy to maintain. -The [bchwallet](https://github.com/gcash/bchwallet) is a separate application that provides a secure Bitcoin Cash wallet +bchd does not include any wallet functionality by design as it makes the codebase more modular and easy to maintain. +The [bchwallet](https://github.com/gcash/bchwallet) is a separate application that provides a secure Bitcoin Cash wallet that communicates with your running bchd instance via the API. ## Table of Contents @@ -28,7 +28,7 @@ that communicates with your running bchd instance via the API. ## Requirements -[Go](http://golang.org) 1.16.4 or newer. +[Go](http://golang.org) 1.23.4 or newer. ## Install @@ -139,7 +139,7 @@ Chris Pacia (ctpacia@gmail.com) - GPG Fingerprint: 0150 2502 DD3A 928D CE52 8CB9 or -Josh Ellithorpe (quest@mac.com) - GPG Fingerprint: B6DE 3514 E07E 30BB 5F40 8D74 E49B 7E00 0022 8DDD +Josh Ellithorpe (quest@mac.com) - GPG Fingerprint: B6DE 3514 E07E 30BB 5F40 8D74 E49B 7E00 0022 8DDD ## License diff --git a/bchec/README.md b/bchec/README.md index 70f506f8d..eb1deed5a 100644 --- a/bchec/README.md +++ b/bchec/README.md @@ -1,7 +1,7 @@ bchec ===== -[![Build Status](https://travis-ci.org/gcash/bchd.png?branch=master)](https://travis-ci.org/gcash/bchd) +![Build Status](https://github.com/gcash/bchd/actions/workflows/main.yml/badge.svg?branch=master) [![ISC License](http://img.shields.io/badge/license-ISC-blue.svg)](http://copyfree.org) [![GoDoc](https://godoc.org/github.com/gcash/bchd/bchec?status.png)](http://godoc.org/github.com/gcash/bchd/bchec) @@ -25,11 +25,11 @@ $ go get -u github.com/gcash/bchd/bchec ## Examples -* [Sign Message](http://godoc.org/github.com/gcash/bchd/bchec#example-package--SignMessage) +* [Sign Message](http://godoc.org/github.com/gcash/bchd/bchec#example-package--SignMessage) Demonstrates signing a message with a secp256k1 private key that is first parsed form raw bytes and serializing the generated signature. -* [Verify Signature](http://godoc.org/github.com/gcash/bchd/bchec#example-package--VerifySignature) +* [Verify Signature](http://godoc.org/github.com/gcash/bchd/bchec#example-package--VerifySignature) Demonstrates verifying a secp256k1 signature against a public key that is first parsed from raw bytes. The signature is also parsed from raw bytes. @@ -65,4 +65,3 @@ verify the signature perform the following: Package bchec is licensed under the [copyfree](http://copyfree.org) ISC License except for bchec.go and bchec_test.go which is under the same license as Go. - diff --git a/bchrpc/README.md b/bchrpc/README.md index 3860520aa..d89907465 100644 --- a/bchrpc/README.md +++ b/bchrpc/README.md @@ -1,7 +1,7 @@ bchrpc ======= -[![Build Status](https://travis-ci.org/gcash/bchd.png?branch=master)](https://travis-ci.org/gcash/bchd) +![Build Status](https://github.com/gcash/bchd/actions/workflows/main.yml/badge.svg?branch=master) [![ISC License](http://img.shields.io/badge/license-ISC-blue.svg)](http://copyfree.org) [![GoDoc](https://img.shields.io/badge/godoc-reference-blue.svg)](http://godoc.org/github.com/gcash/bchd/bchrpc) @@ -11,7 +11,7 @@ Package bchrpc implements a gRPC server. This package provides a gRPC API which when combined with the `addrindex` and `txindex` provides a powerful API for supporting Bitcoin Cash applications. At present the API only exposes public -methods for interacting with transactions and blocks. It does not expose any methods which can +methods for interacting with transactions and blocks. It does not expose any methods which can control the node so it is safe to expose the API publicly. To control the node continue using the JSON-RPC API. diff --git a/blockchain/README.md b/blockchain/README.md index 30370e925..e45711817 100644 --- a/blockchain/README.md +++ b/blockchain/README.md @@ -1,7 +1,7 @@ blockchain ========== -[![Build Status](https://travis-ci.org/gcash/bchd.png?branch=master)](https://travis-ci.org/gcash/bchd) +![Build Status](https://github.com/gcash/bchd/actions/workflows/main.yml/badge.svg?branch=master) [![ISC License](http://img.shields.io/badge/license-ISC-blue.svg)](http://copyfree.org) [![GoDoc](https://img.shields.io/badge/godoc-reference-blue.svg)](http://godoc.org/github.com/gcash/bchd/blockchain) @@ -61,18 +61,18 @@ is by no means exhaustive: ## Examples -* [ProcessBlock Example](http://godoc.org/github.com/gcash/bchd/blockchain#example-BlockChain-ProcessBlock) +* [ProcessBlock Example](http://godoc.org/github.com/gcash/bchd/blockchain#example-BlockChain-ProcessBlock) Demonstrates how to create a new chain instance and use ProcessBlock to attempt to add a block to the chain. This example intentionally attempts to insert a duplicate genesis block to illustrate how an invalid block is handled. -* [CompactToBig Example](http://godoc.org/github.com/gcash/bchd/blockchain#example-CompactToBig) +* [CompactToBig Example](http://godoc.org/github.com/gcash/bchd/blockchain#example-CompactToBig) Demonstrates how to convert the compact "bits" in a block header which represent the target difficulty to a big integer and display it using the typical hex notation. -* [BigToCompact Example](http://godoc.org/github.com/gcash/bchd/blockchain#example-BigToCompact) +* [BigToCompact Example](http://godoc.org/github.com/gcash/bchd/blockchain#example-BigToCompact) Demonstrates how to convert a target difficulty into the compact "bits" in a block header which represent that target difficulty. diff --git a/blockchain/fullblocktests/README.md b/blockchain/fullblocktests/README.md index 6c72b0939..d7de95fcc 100644 --- a/blockchain/fullblocktests/README.md +++ b/blockchain/fullblocktests/README.md @@ -1,7 +1,7 @@ fullblocktests ============== -[![Build Status](https://travis-ci.org/gcash/bchd.png?branch=master)](https://travis-ci.org/gcash/bchd) +![Build Status](https://github.com/gcash/bchd/actions/workflows/main.yml/badge.svg?branch=master) [![ISC License](http://img.shields.io/badge/license-ISC-blue.svg)](http://copyfree.org) [![GoDoc](https://img.shields.io/badge/godoc-reference-blue.svg)](http://godoc.org/github.com/gcash/bchd/blockchain/fullblocktests) diff --git a/blockchain/indexers/README.md b/blockchain/indexers/README.md index 2222563ba..26d0d724f 100644 --- a/blockchain/indexers/README.md +++ b/blockchain/indexers/README.md @@ -1,7 +1,7 @@ indexers ======== -[![Build Status](https://travis-ci.org/gcash/bchd.png?branch=master)](https://travis-ci.org/gcash/bchd) +![Build Status](https://github.com/gcash/bchd/actions/workflows/main.yml/badge.svg?branch=master) [![ISC License](http://img.shields.io/badge/license-ISC-blue.svg)](http://copyfree.org) [![GoDoc](https://godoc.org/github.com/gcash/bchd/blockchain/indexers?status.png)](http://godoc.org/github.com/gcash/bchd/blockchain/indexers) diff --git a/chaincfg/README.md b/chaincfg/README.md index 3f661e300..63a5253ca 100644 --- a/chaincfg/README.md +++ b/chaincfg/README.md @@ -1,7 +1,7 @@ chaincfg ======== -[![Build Status](https://travis-ci.org/gcash/bchd.png?branch=master)](https://travis-ci.org/gcash/bchd) +![Build Status](https://github.com/gcash/bchd/actions/workflows/main.yml/badge.svg?branch=master) [![ISC License](http://img.shields.io/badge/license-ISC-blue.svg)](http://copyfree.org) [![GoDoc](https://img.shields.io/badge/godoc-reference-blue.svg)](http://godoc.org/github.com/gcash/bchd/chaincfg) diff --git a/chaincfg/chainhash/README.md b/chaincfg/chainhash/README.md index cfe2a3019..8f113d6b9 100644 --- a/chaincfg/chainhash/README.md +++ b/chaincfg/chainhash/README.md @@ -1,7 +1,7 @@ chainhash ========= -[![Build Status](https://travis-ci.org/gcash/bchd.png?branch=master)](https://travis-ci.org/gcash/bchd) +![Build Status](https://github.com/gcash/bchd/actions/workflows/main.yml/badge.svg?branch=master) [![ISC License](http://img.shields.io/badge/license-ISC-blue.svg)](http://copyfree.org) [![GoDoc](https://img.shields.io/badge/godoc-reference-blue.svg)](http://godoc.org/github.com/gcash/bchd/chaincfg/chainhash) ======= diff --git a/connmgr/README.md b/connmgr/README.md index a90a0d3f4..28801381c 100644 --- a/connmgr/README.md +++ b/connmgr/README.md @@ -1,7 +1,7 @@ connmgr ======= -[![Build Status](https://travis-ci.org/gcash/bchd.png?branch=master)](https://travis-ci.org/gcash/bchd) +![Build Status](https://github.com/gcash/bchd/actions/workflows/main.yml/badge.svg?branch=master) [![ISC License](http://img.shields.io/badge/license-ISC-blue.svg)](http://copyfree.org) [![GoDoc](https://img.shields.io/badge/godoc-reference-blue.svg)](http://godoc.org/github.com/gcash/bchd/connmgr) diff --git a/database/README.md b/database/README.md index b85199465..a6e7ee692 100644 --- a/database/README.md +++ b/database/README.md @@ -1,7 +1,7 @@ database ======== -[![Build Status](https://travis-ci.org/gcash/bchd.png?branch=master)](https://travis-ci.org/gcash/bchd) +![Build Status](https://github.com/gcash/bchd/actions/workflows/main.yml/badge.svg?branch=master) [![ISC License](http://img.shields.io/badge/license-ISC-blue.svg)](http://copyfree.org) [![GoDoc](https://img.shields.io/badge/godoc-reference-blue.svg)](http://godoc.org/github.com/gcash/bchd/database) @@ -42,11 +42,11 @@ $ go get -u github.com/gcash/bchd/database ## Examples -* [Basic Usage Example](http://godoc.org/github.com/gcash/bchd/database#example-package--BasicUsage) +* [Basic Usage Example](http://godoc.org/github.com/gcash/bchd/database#example-package--BasicUsage) Demonstrates creating a new database and using a managed read-write transaction to store and retrieve metadata. -* [Block Storage and Retrieval Example](http://godoc.org/github.com/gcash/bchd/database#example-package--BlockStorageAndRetrieval) +* [Block Storage and Retrieval Example](http://godoc.org/github.com/gcash/bchd/database#example-package--BlockStorageAndRetrieval) Demonstrates creating a new database, using a managed read-write transaction to store a block, and then using a managed read-only transaction to fetch the block. diff --git a/database/ffldb/README.md b/database/ffldb/README.md index 2c3f70ca2..307b7b648 100644 --- a/database/ffldb/README.md +++ b/database/ffldb/README.md @@ -1,7 +1,7 @@ ffldb ===== -[![Build Status](https://travis-ci.org/gcash/bchd.png?branch=master)](https://travis-ci.org/gcash/bchd) +![Build Status](https://github.com/gcash/bchd/actions/workflows/main.yml/badge.svg?branch=master) [![ISC License](http://img.shields.io/badge/license-ISC-blue.svg)](http://copyfree.org) [![GoDoc](https://godoc.org/github.com/gcash/bchd/database/ffldb?status.png)](http://godoc.org/github.com/gcash/bchd/database/ffldb) ======= diff --git a/database/internal/treap/README.md b/database/internal/treap/README.md index eac0a6384..c6765c981 100644 --- a/database/internal/treap/README.md +++ b/database/internal/treap/README.md @@ -1,7 +1,7 @@ treap ===== -[![Build Status](https://travis-ci.org/gcash/bchd.png?branch=master)](https://travis-ci.org/gcash/bchd) +![Build Status](https://github.com/gcash/bchd/actions/workflows/main.yml/badge.svg?branch=master) [![ISC License](http://img.shields.io/badge/license-ISC-blue.svg)](http://copyfree.org) [![GoDoc](https://godoc.org/github.com/gcash/bchd/database/internal/treap?status.png)](http://godoc.org/github.com/gcash/bchd/database/internal/treap) diff --git a/integration/README.md b/integration/README.md index 376684022..541836ee0 100644 --- a/integration/README.md +++ b/integration/README.md @@ -1,7 +1,7 @@ integration =========== -[![Build Status](https://travis-ci.org/gcash/bchd.png?branch=master)](https://travis-ci.org/gcash/bchd) +![Build Status](https://github.com/gcash/bchd/actions/workflows/main.yml/badge.svg?branch=master) [![ISC License](http://img.shields.io/badge/license-ISC-blue.svg)](http://copyfree.org) This contains integration tests which make use of the diff --git a/integration/rpctest/README.md b/integration/rpctest/README.md index 6060a7d8b..d2c055c57 100644 --- a/integration/rpctest/README.md +++ b/integration/rpctest/README.md @@ -1,7 +1,7 @@ rpctest ======= -[![Build Status](https://travis-ci.org/gcash/bchd.png?branch=master)](https://travis-ci.org/gcash/bchd) +![Build Status](https://github.com/gcash/bchd/actions/workflows/main.yml/badge.svg?branch=master) [![ISC License](http://img.shields.io/badge/license-ISC-blue.svg)](http://copyfree.org) [![GoDoc](https://img.shields.io/badge/godoc-reference-blue.svg)](http://godoc.org/github.com/gcash/bchd/integration/rpctest) @@ -27,4 +27,3 @@ $ go get -u github.com/gcash/bchd/integration/rpctest Package rpctest is licensed under the [copyfree](http://copyfree.org) ISC License. - diff --git a/mempool/README.md b/mempool/README.md index ca431932b..c3b811e2f 100644 --- a/mempool/README.md +++ b/mempool/README.md @@ -1,7 +1,7 @@ mempool ======= -[![Build Status](https://travis-ci.org/gcash/bchd.png?branch=master)](https://travis-ci.org/gcash/bchd) +![Build Status](https://github.com/gcash/bchd/actions/workflows/main.yml/badge.svg?branch=master) [![ISC License](http://img.shields.io/badge/license-ISC-blue.svg)](http://copyfree.org) [![GoDoc](https://img.shields.io/badge/godoc-reference-blue.svg)](http://godoc.org/github.com/gcash/bchd/mempool) diff --git a/mining/README.md b/mining/README.md index b2223e9ce..e59e693f1 100644 --- a/mining/README.md +++ b/mining/README.md @@ -1,7 +1,7 @@ mining ====== -[![Build Status](https://travis-ci.org/gcash/bchd.png?branch=master)](https://travis-ci.org/gcash/bchd) +![Build Status](https://github.com/gcash/bchd/actions/workflows/main.yml/badge.svg?branch=master) [![ISC License](http://img.shields.io/badge/license-ISC-blue.svg)](http://copyfree.org) [![GoDoc](https://img.shields.io/badge/godoc-reference-blue.svg)](http://godoc.org/github.com/gcash/bchd/mining) diff --git a/mining/cpuminer/README.md b/mining/cpuminer/README.md index 91326aef0..f614dc678 100644 --- a/mining/cpuminer/README.md +++ b/mining/cpuminer/README.md @@ -1,7 +1,7 @@ cpuminer ======== -[![Build Status](https://travis-ci.org/gcash/bchd.png?branch=master)](https://travis-ci.org/gcash/bchd) +![Build Status](https://github.com/gcash/bchd/actions/workflows/main.yml/badge.svg?branch=master) [![ISC License](http://img.shields.io/badge/license-ISC-blue.svg)](http://copyfree.org) [![GoDoc](https://img.shields.io/badge/godoc-reference-blue.svg)](http://godoc.org/github.com/gcash/bchd/mining/cpuminer) ======= diff --git a/netsync/README.md b/netsync/README.md index 6864f1be0..550e5d43d 100644 --- a/netsync/README.md +++ b/netsync/README.md @@ -1,7 +1,7 @@ netsync ======= -[![Build Status](https://travis-ci.org/gcash/bchd.png?branch=master)](https://travis-ci.org/gcash/bchd) +![Build Status](https://github.com/gcash/bchd/actions/workflows/main.yml/badge.svg?branch=master) [![ISC License](http://img.shields.io/badge/license-ISC-blue.svg)](http://copyfree.org) [![GoDoc](https://img.shields.io/badge/godoc-reference-blue.svg)](http://godoc.org/github.com/gcash/bchd/netsync) diff --git a/peer/README.md b/peer/README.md index 6049677a7..47e1dd6b7 100644 --- a/peer/README.md +++ b/peer/README.md @@ -1,11 +1,11 @@ peer ==== -[![Build Status](https://travis-ci.org/gcash/bchd.png?branch=master)](https://travis-ci.org/gcash/bchd) +![Build Status](https://github.com/gcash/bchd/actions/workflows/main.yml/badge.svg?branch=master) [![ISC License](http://img.shields.io/badge/license-ISC-blue.svg)](http://copyfree.org) [![GoDoc](https://img.shields.io/badge/godoc-reference-blue.svg)](http://godoc.org/github.com/gcash/bchd/peer) -Package peer provides a common base for creating and managing bitcoin cash +Package peer provides a common base for creating and managing bitcoin cash network peers. This package has intentionally been designed so it can be used as a standalone @@ -63,7 +63,7 @@ $ go get -u github.com/gcash/bchd/peer ## Examples -* [New Outbound Peer Example](https://godoc.org/github.com/gcash/bchd/peer#example-package--NewOutboundPeer) +* [New Outbound Peer Example](https://godoc.org/github.com/gcash/bchd/peer#example-package--NewOutboundPeer) Demonstrates the basic process for initializing and creating an outbound peer. Peers negotiate by exchanging version and verack messages. For demonstration, a simple handler for the version message is attached to the peer. diff --git a/rpcclient/README.md b/rpcclient/README.md index 6bce8a7e2..b3109b966 100644 --- a/rpcclient/README.md +++ b/rpcclient/README.md @@ -1,7 +1,7 @@ rpcclient ========= -[![Build Status](https://travis-ci.org/gcash/bchd.png?branch=master)](https://travis-ci.org/gcash/bchd) +![Build Status](https://github.com/gcash/bchd/actions/workflows/main.yml/badge.svg?branch=master) [![ISC License](http://img.shields.io/badge/license-ISC-blue.svg)](http://copyfree.org) [![GoDoc](https://img.shields.io/badge/godoc-reference-blue.svg)](http://godoc.org/github.com/gcash/bchd/rpcclient) diff --git a/txscript/README.md b/txscript/README.md index 691883e79..f52f5a893 100644 --- a/txscript/README.md +++ b/txscript/README.md @@ -1,7 +1,7 @@ txscript ======== -[![Build Status](https://travis-ci.org/gcash/bchd.png?branch=master)](https://travis-ci.org/gcash/bchd) +![Build Status](https://github.com/gcash/bchd/actions/workflows/main.yml/badge.svg?branch=master) [![ISC License](http://img.shields.io/badge/license-ISC-blue.svg)](http://copyfree.org) [![GoDoc](https://godoc.org/github.com/gcash/bchd/txscript?status.png)](http://godoc.org/github.com/gcash/bchd/txscript) @@ -26,15 +26,15 @@ $ go get -u github.com/gcash/bchd/txscript ## Examples -* [Standard Pay-to-pubkey-hash Script](http://godoc.org/github.com/gcash/bchd/txscript#example-PayToAddrScript) +* [Standard Pay-to-pubkey-hash Script](http://godoc.org/github.com/gcash/bchd/txscript#example-PayToAddrScript) Demonstrates creating a script which pays to a bitcoin cash address. It also prints the created script hex and uses the DisasmString function to display the disassembled script. -* [Extracting Details from Standard Scripts](http://godoc.org/github.com/gcash/bchd/txscript#example-ExtractPkScriptAddrs) +* [Extracting Details from Standard Scripts](http://godoc.org/github.com/gcash/bchd/txscript#example-ExtractPkScriptAddrs) Demonstrates extracting information from a standard public key script. -* [Manually Signing a Transaction Output](http://godoc.org/github.com/gcash/bchd/txscript#example-SignTxOutput) +* [Manually Signing a Transaction Output](http://godoc.org/github.com/gcash/bchd/txscript#example-SignTxOutput) Demonstrates manually creating and signing a redeem transaction. ## License diff --git a/wire/README.md b/wire/README.md index e430fd24e..87c1fb609 100644 --- a/wire/README.md +++ b/wire/README.md @@ -1,7 +1,7 @@ wire ==== -[![Build Status](https://travis-ci.org/gcash/bchd.png?branch=master)](https://travis-ci.org/gcash/bchd) +![Build Status](https://github.com/gcash/bchd/actions/workflows/main.yml/badge.svg?branch=master) [![ISC License](http://img.shields.io/badge/license-ISC-blue.svg)](http://copyfree.org) [![GoDoc](https://img.shields.io/badge/godoc-reference-blue.svg)](http://godoc.org/github.com/gcash/bchd/wire) =======