https://github.com/mrz1836/go-bitindex
:minidisc: Unofficial golang implementation for the BitIndex API
https://github.com/mrz1836/go-bitindex
api bitcoin bitcoinsv bitindex bitindex-api bsv go golang gomod gomodule xpub
Last synced: 5 months ago
JSON representation
:minidisc: Unofficial golang implementation for the BitIndex API
- Host: GitHub
- URL: https://github.com/mrz1836/go-bitindex
- Owner: mrz1836
- License: mit
- Archived: true
- Created: 2019-10-25T18:16:57.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2021-08-06T17:45:58.000Z (almost 5 years ago)
- Last Synced: 2024-06-20T13:41:04.169Z (almost 2 years ago)
- Topics: api, bitcoin, bitcoinsv, bitindex, bitindex-api, bsv, go, golang, gomod, gomodule, xpub
- Language: Go
- Homepage: https://www.bitindex.network/developers/api-documentation-v3.html
- Size: 167 KB
- Stars: 4
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# go-bitindex
> The unofficial Go implementation for the [BitIndex API](https://www.bitindex.network/developers/api-documentation-v3.html)
[](https://github.com/mrz1836/go-bitindex/releases)
[](https://github.com/mrz1836/go-bitindex/actions)
[](https://goreportcard.com/report/github.com/mrz1836/go-bitindex)
[](https://golang.org/)
[](https://github.com/sponsors/mrz1836)
[](https://mrz1818.com/?tab=tips&af=go-bitindex)
## Table of Contents
- [Installation](#installation)
- [Documentation](#documentation)
- [Examples & Tests](#examples--tests)
- [Benchmarks](#benchmarks)
- [Code Standards](#code-standards)
- [Usage](#usage)
- [Maintainers](#maintainers)
- [Contributing](#contributing)
- [License](#license)
## Installation
**go-bitindex** requires a [supported release of Go](https://golang.org/doc/devel/release.html#policy).
```shell script
go get -u github.com/mrz1836/go-bitindex
```
## Documentation
View the generated [documentation](https://pkg.go.dev/github.com/mrz1836/go-bitindex)
[](https://pkg.go.dev/github.com/mrz1836/go-bitindex)
You can also view the [BitIndex api](https://www.bitindex.network/developers/api-documentation-v3.html) documentation.
### Features
- Supports >= V3 API requests
- [Client](client.go) is completely configurable
- Customize the network per request (`main`, `test` or `stn`)
- Using [heimdall http client](https://github.com/gojek/heimdall) with exponential backoff & more
- Current (V3) coverage for the [BitIndex](https://developers.bitindex.com/) API
- [x] Address
- [x] Block
- [x] Chain Info
- [x] Transaction
- [x] Webhooks
- [x] Xpub
Library Deployment
[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.
Makefile Commands
View all `makefile` commands
```shell script
make help
```
List of all current commands:
```text
all Runs lint, test-short and vet
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 golangci-lint application (install if not found)
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)
run-examples Runs all the examples
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-ci Runs all tests via CI (exports coverage)
test-ci-no-race Runs all tests via CI (no race) (exports coverage)
test-ci-short Runs unit tests via CI (exports coverage)
test-short Runs vet, lint and tests (excludes integration tests)
uninstall Uninstall the application (and remove files)
update-linter Update the golangci-lint package (macOS only)
vet Run the Go vet application
```
## Examples & Tests
All unit tests and [examples](examples) run via [Github Actions](https://github.com/mrz1836/go-bitindex/actions) and
uses [Go version 1.15.x](https://golang.org/doc/go1.15). View the [configuration file](.github/workflows/run-tests.yml).
Examples & Tests by API section:
- [address](address_test.go)
- [block](block_test.go)
- [chain](chain_test.go)
- [transaction](transaction_test.go)
- [webhook](webhook_test.go)
- [xpub](xpub_test.go)
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](bitindex_test.go):
```shell script
make bench
```
## Code Standards
Read more about this Go project's [code standards](CODE_STANDARDS.md).
## Usage
View the [bitindex examples](#examples--tests) above
Basic implementation:
```go
package main
import (
"log"
"github.com/mrz1836/go-bitindex"
)
func main() {
// Create a new client
client, _ := bitindex.NewClient("your-secret-api-key", bitindex.NetworkMain, nil)
// Get balance for an address
info, _ := client.AddressInfo("16ZqP5Tb22KJuvSAbjNkoiZs13mmRmexZA")
// What's the balance?
log.Println("address balance:", info.Balance)
}
```
## Maintainers
| [
](https://github.com/mrz1836) |
|:---:|
| [MrZ](https://github.com/mrz1836) |
## Contributing
View the [contributing guidelines](CONTRIBUTING.md) and 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](https://github.com/sponsors/mrz1836) :clap:
or by making a [**bitcoin donation**](https://mrz1818.com/?tab=tips&af=go-bitindex) to ensure this journey continues indefinitely! :rocket:
#### Credits
[@Attila](https://github.com/attilaaf) & [BitIndex](https://www.bitindex.network/) for their hard work on the [BitIndex API](https://www.bitindex.network/developers/api-documentation-v3.html)
Looking for a Javascript version? Check out the [BitIndex JS SDK](https://github.com/BitIndex/bitindex-sdk)
Looking for MatterCloud? Checkout the [go-mattercloud](https://github.com/mrz1836/go-mattercloud) package.
## License
