Popularity
1.1
Growing
Activity
7.7
Growing
7
2
1

Description

Features: - Client is completely configurable - Customize the network per request (main, test or stn) - Using heimdall http client with exponential backoff & more - Current coverage for the whatsonchain.com API

Programming language: Go
License: MIT License
Tags: API     Go Tools     Go     Golang     Bitcoin     Broadcast     Bsv     Whatsonchain     Woc    
Latest version: v0.3.1

go-whatsonchain alternatives and similar packages

Based on the "Go Tools" category

Do you think we are missing an alternative of go-whatsonchain or a related project?

Add another 'Go Tools' Package

README

go-whatsonchain

The unofficial golang implementation for the whatsonchain.com API

Release Build Status Report codecov Go Sponsor Donate

Table of Contents

Installation

go-whatsonchain requires a supported release of Go. ```shell script go get -u github.com/mrz1836/go-whatsonchain


<br/>

## Documentation
View the generated [documentation](https://pkg.go.dev/github.com/mrz1836/go-whatsonchain)

[![GoDoc](https://godoc.org/github.com/mrz1836/go-whatsonchain?status.svg&style=flat)](https://pkg.go.dev/github.com/mrz1836/go-whatsonchain)

### Features
- [Client](client.go) is completely configurable
- Customize the network per request (`main`, `test` or `stn`)
- Using default [heimdall http client](https://github.com/gojek/heimdall) with exponential backoff & more
- Use your own custom HTTP client
- Current coverage for the [whatsonchain.com API](https://developers.whatsonchain.com/)
    - [x] Health
        - [x] Get API Status
    - [x] Chain Info
        - [x] Get Blockchain Info
        - [x] Get Circulating Supply
    - [x] Block
        - [x] Get by Hash
        - [x] Get by Height
        - [x] Get Block Pages
        - [x] Get Header by Hash
        - [x] Get Headers
    - [x] Transaction
        - [x] Get by TX Hash
        - [x] Broadcast Transaction
        - [x] Bulk Broadcast
        - [x] Bulk Transaction Details
        - [x] Decode Transaction
        - [x] Download Receipt
        - [x] Get Raw Transaction Data
        - [x] Get Raw Transaction Output
        - [x] Get Merkle Proof
    - [x] Mempool
        - [x] Get Mempool Info
        - [x] Get Mempool Transactions
    - [x] Address
        - [x] Get Address Info
        - [x] Get Balance
        - [x] Get History
        - [x] Get Unspent Transactions
        - [x] Get Unspent Transaction Details (Custom)
        - [x] Download Statement
    - [x] Script
        - [x] Get Script History
        - [x] Get Script Unspent Transactions
    - [x] Exchange Rate
        - [x] Get Exchange Rate
    - [x] Search
        - [x] Get Explorer Links
    - [x] Merchant API
        - [x] Fee Quotes
        - [x] Submit Transaction
        - [x] Transaction Status

<details>
<summary><strong><code>Library Deployment</code></strong></summary>
<br/>

[goreleaser](https://github.com/goreleaser/goreleaser) for easy binary or library deployment to Github and can be installed via: `brew install goreleaser`.

The [.goreleaser.yml](.goreleaser.yml) file is used to configure [goreleaser](https://github.com/goreleaser/goreleaser).

Use `make release-snap` to create a snapshot version of the release, and finally `make release` to ship to production.
</details>

<details>
<summary><strong><code>Makefile Commands</code></strong></summary>
<br/>

View all `makefile` commands
```shell script
make help

List of all current commands:

clean                  Remove previous builds and any test cache data
clean-mods             Remove all the Go mod cache
coverage               Shows the test coverage
godocs                 Sync the latest tag with GoDocs
help                   Show this help message
install                Install the application
install-go             Install the application (Using Native Go)
lint                   Run the Go lint application
release                Full production release (creates release in Github)
release                Runs common.release then runs godocs
release-snap           Test the full release (build binaries)
release-test           Full production test release (everything except deploy)
replace-version        Replaces the version in HTML/JS (pre-deploy)
tag                    Generate a new tag and push (tag version=0.0.0)
tag-remove             Remove a tag if found (tag-remove version=0.0.0)
tag-update             Update an existing tag to current commit (tag-update version=0.0.0)
test                   Runs vet, lint and ALL tests
test-short             Runs vet, lint and tests (excludes integration tests)
test-travis            Runs all tests via Travis (also exports coverage)
test-travis-short      Runs unit tests via Travis (also exports coverage)
uninstall              Uninstall the application (and remove files)
vet                    Run the Go vet application

Examples & Tests

All unit tests and [examples](whatsonchain_test.go) run via Travis CI and uses Go version 1.15.x. View the [deployment configuration file](.travis.yml).

Run all tests (including integration tests) ```shell script make test


Run tests (excluding integration tests)
```shell script
make test-short

Benchmarks

Run the Go [benchmarks](whatsonchain_test.go): ```shell script make bench


<br/>

## Code Standards
Read more about this Go project's [code standards](CODE_STANDARDS.md).

<br/>

## Usage
View the [whatsonchain examples](whatsonchain_test.go)

Basic implementation:
```go
package main

import (

    "fmt"

    "github.com/mrz1836/go-whatsonchain"
)

func main() {

    // Create a client
    client := whatsonchain.NewClient(whatsonchain.NetworkMain, nil, nil)

    // Get a balance for an address
    balance, _ := client.AddressBalance("16ZqP5Tb22KJuvSAbjNkoiZs13mmRmexZA")
    fmt.Println("confirmed balance", balance.Confirmed)
}

Maintainers

MrZ

Contributing

View the [contributing guidelines](CONTRIBUTING.md) and please follow the [code of conduct](CODE_OF_CONDUCT.md).

How can I help?

All kinds of contributions are welcome :raised_hands:! The most basic way to show your support is to star :star2: the project, or to raise issues :speech_balloon:. You can also support this project by becoming a sponsor on GitHub :clap: or by making a bitcoin donation to ensure this journey continues indefinitely! :rocket:

Credits

WhatsOnChain for their hard work on the Whatsonchain API

AustEcon's Python Version

License

License


*Note that all licence references and agreements mentioned in the go-whatsonchain README section above are relevant to that project's source code only.