Bitcoin UTXO & xPub Management Suite

BUX

Bitcoin UTXO & xPub Management Suite

Release Build Status Report codecov Mergify Status Go
Gitpod Ready-to-Code standard-readme compliant Makefile Included Sponsor Donate


Table of Contents


About

TLDR;

Application developers should focus on their applications and should not be bogged down with managing UTXOs or XPubs. Developers should be able to use an open-source, easy to install solution to rapidly build full-featured Bitcoin applications.



DISCLAIMER

BUX is still considered "ALPHA" and should not be used in production until v1.0.0



BUX: Out-of-the-box Features:

  • xPub & UTXO State Management (state, tip, balance, utxos, destinations)
  • Bring your own Database (MySQL, PostgreSQL, SQLite, Mongo or interface your own)
  • Caching (Ristretto, mCache, Redis or custom)
  • Task Management (TaskQ, Machinery or custom)
  • Transaction Processing (queue, broadcast, update state of xpubs)
  • Plugins using BRFC standards

Project Assumptions: MVP

  • No private keys are used, only the xPub (or access key) is given to bux
  • (BYOX) Bring your own xPub
  • Signing a transaction is outside this application (IE: buxServer or buxWallet)
  • All transactions need to be submitted to the bux service to effectively track utxo states
  • Database can be backed up, but not regenerated from chain
    • Certain data is not on chain, plus re-scanning xPub is expensive and not easily possible with WOC and limitations with blockchair

Installation

bux requires a supported release of Go.

go get -u github.com/BuxOrg/bux

Documentation

View the generated documentation

GoDoc


Repository Features

This repository was created using MrZ's go-template

Built-in Features

Package Dependencies
Library Deployment

Releases are automatically created when you create a new git tag!

If you want to manually make releases, please install GoReleaser:

goreleaser for easy binary or library deployment to Github and can be installed:

  • using make: make install-releaser
  • using brew: brew install goreleaser

The .goreleaser.yml file is used to configure goreleaser.


Automatic Releases on Tag Creation (recommended)

Automatic releases via Github Actions from creating a new tag:

make tag version=1.2.3

Manual Releases (optional)

Use make release-snap to create a snapshot version of the release, and finally make release to ship to production (manually).


Makefile Commands

View all makefile commands

make help

List of all current commands:

all                           Runs multiple commands
clean                         Remove previous builds and any cached data
clean-mods                    Remove all the Go mod cache
coverage                      Shows the test coverage
diff                          Show the git diff
generate                      Runs the go generate command in the base of the repo
godocs                        Sync the latest tag with GoDocs
help                          Show this help message
install                       Install the application
install-all-contributors      Installs all contributors locally
install-go                    Install the application (Using Native Go)
install-releaser              Install the GoReleaser application
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)
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 lint and ALL tests
test-all-db                   Runs all tests including embedded database tests
test-all-db-ci                Runs all tests including embedded database tests (CI)
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-no-lint                  Runs just tests
test-short                    Runs vet, lint and tests (excludes integration tests)
test-unit                     Runs tests and outputs coverage
uninstall                     Uninstall the application (and remove files)
update-contributors           Regenerates the contributors html/list
update-linter                 Update the golangci-lint package (macOS only)
vet                           Run the Go vet application

Examples & Tests

All unit tests and examples run via Github Actions and uses Go version 1.17.x. View the configuration file.


Run all tests (including integration tests)

make test

Run tests (excluding integration tests)

make test-short

Benchmarks

Run the Go benchmarks:

make bench

Code Standards

Read more about this Go project's code standards.


Usage

Checkout all the examples!


Contributing

View the contributing guidelines and follow the code of conduct.


How can I help?

All kinds of contributions are welcome πŸ™Œ ! The most basic way to show your support is to star 🌟 the project, or to raise issues πŸ’¬ . You can also support this project by becoming a sponsor on GitHub πŸ‘ or by making a bitcoin donation to ensure this journey continues indefinitely! πŸš€

Stars


Contributors ✨

Thank you to these wonderful people (emoji key):


Mr. Z

πŸš‡ πŸ’» 🚧 πŸ›‘οΈ

Siggi

πŸš‡ πŸ’» πŸ›‘οΈ

Dylan

πŸš‡ πŸ’»

This project follows the all-contributors specification.


License

License

Owner
BUX
Bitcoin UTXO & xPub Management Suite
BUX
Comments
  • Changed block sync check to bool instead of channel

    Changed block sync check to bool instead of channel

    I removed the channel from the block sync, but am not sure if it's actually working.

    Maybe @galt-tr can verify that it is actually doing something on the agent side. It just blasts through the blocks in my tests.

  • Bump gorm.io/plugin/dbresolver from 1.1.0 to 1.2.0

    Bump gorm.io/plugin/dbresolver from 1.1.0 to 1.2.0

    Bumps gorm.io/plugin/dbresolver from 1.1.0 to 1.2.0.

    Commits
    • 691098d Update README
    • 8866a19 Works with transaction, close #27, #15
    • 8e5731d Use ModifyStatement to support dbresolver
    • b028264 Update docker-compose.yml
    • a321cb5 Merge pull request #68 from go-gorm/dependabot/go_modules/gorm.io/gorm-1.23.4
    • 1b012ee Bump gorm.io/gorm from 1.23.2 to 1.23.4
    • 72abf01 Merge pull request #64 from go-gorm/dependabot/go_modules/gorm.io/gorm-1.23.2
    • d498af6 Bump gorm.io/gorm from 1.23.1 to 1.23.2
    • e0cd290 Merge pull request #63 from go-gorm/dependabot/go_modules/gorm.io/driver/mysq...
    • 00ebef8 Bump gorm.io/driver/mysql from 1.2.1 to 1.3.2
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/mrz1836/go-cache from 0.7.3 to 0.8.0

    Bump github.com/mrz1836/go-cache from 0.7.3 to 0.8.0

    Bumps github.com/mrz1836/go-cache from 0.7.3 to 0.8.0.

    Release notes

    Sourced from github.com/mrz1836/go-cache's releases.

    Release v0.8.0

    Changelog

    • d45bc7e Bump codecov/codecov-action from 3.1.0 to 3.1.1
    • a45f9f0 Bump github.com/newrelic/go-agent/v3 from 3.18.2 to 3.19.0
    • d1ea618 Bump github.com/newrelic/go-agent/v3 from 3.19.0 to 3.19.1
    • e90e87d Bump github.com/newrelic/go-agent/v3 from 3.19.1 to 3.19.2
    • 4946072 Bump github.com/newrelic/go-agent/v3 from 3.19.2 to 3.20.0
    • 06500e9 Bump github.com/newrelic/go-agent/v3 from 3.20.0 to 3.20.1
    • a6f093a Bump github.com/stretchr/testify from 1.8.0 to 1.8.1
    • 55a4883 Bump goreleaser/goreleaser-action from 3.1.0 to 3.2.0
    • c95a966 Merge pull request #46 from mrz1836/dependabot/go_modules/master/github.com/newrelic/go-agent/v3-3.19.0
    • 271f6a0 Merge pull request #47 from mrz1836/dependabot/go_modules/master/github.com/newrelic/go-agent/v3-3.19.1
    • c696a1a Merge pull request #48 from mrz1836/dependabot/go_modules/master/github.com/newrelic/go-agent/v3-3.19.2
    • 861eef4 Merge pull request #49 from mrz1836/dependabot/github_actions/master/codecov/codecov-action-3.1.1
    • 1973492 Merge pull request #50 from mrz1836/dependabot/github_actions/master/goreleaser/goreleaser-action-3.2.0
    • 23e376a Merge pull request #51 from mrz1836/dependabot/go_modules/master/github.com/stretchr/testify-1.8.1
    • e1beaae Merge pull request #52 from mrz1836/dependabot/go_modules/master/github.com/newrelic/go-agent/v3-3.20.0
    • f727dfe Merge pull request #53 from mrz1836/dependabot/go_modules/master/github.com/newrelic/go-agent/v3-3.20.1
    • 24da38f Removed linter comment
    • da50e81 Updated linter version
    • 9b99799 Upgraded to go 1.17 and upgraded all deps
    Commits
    • da50e81 Updated linter version
    • 24da38f Removed linter comment
    • 9b99799 Upgraded to go 1.17 and upgraded all deps
    • f727dfe Merge pull request #53 from mrz1836/dependabot/go_modules/master/github.com/n...
    • 06500e9 Bump github.com/newrelic/go-agent/v3 from 3.20.0 to 3.20.1
    • e1beaae Merge pull request #52 from mrz1836/dependabot/go_modules/master/github.com/n...
    • 4946072 Bump github.com/newrelic/go-agent/v3 from 3.19.2 to 3.20.0
    • 23e376a Merge pull request #51 from mrz1836/dependabot/go_modules/master/github.com/s...
    • a6f093a Bump github.com/stretchr/testify from 1.8.0 to 1.8.1
    • 1973492 Merge pull request #50 from mrz1836/dependabot/github_actions/master/goreleas...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/mrz1836/go-cache from 0.7.0 to 0.7.1

    Bump github.com/mrz1836/go-cache from 0.7.0 to 0.7.1

    Bumps github.com/mrz1836/go-cache from 0.7.0 to 0.7.1.

    Release notes

    Sourced from github.com/mrz1836/go-cache's releases.

    Release v0.7.1

    Changelog

    • bc9f7e9 Bump github.com/newrelic/go-agent/v3 from 3.17.0 to 3.18.0
    • df51b62 Merge pull request #41 from mrz1836/dependabot/go_modules/master/github.com/newrelic/go-agent/v3-3.18.0
    • 1346671 Minor fix, from linter
    • fd90518 Removed old schedule
    • 6cb4f96 Updated linter and makefile
    • ea293b4 Upgraded deps
    Commits
    • 1346671 Minor fix, from linter
    • fd90518 Removed old schedule
    • 6cb4f96 Updated linter and makefile
    • ea293b4 Upgraded deps
    • df51b62 Merge pull request #41 from mrz1836/dependabot/go_modules/master/github.com/n...
    • bc9f7e9 Bump github.com/newrelic/go-agent/v3 from 3.17.0 to 3.18.0
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github/codeql-action from 1 to 2

    Bump github/codeql-action from 1 to 2

    Bumps github/codeql-action from 1 to 2.

    Changelog

    Sourced from github/codeql-action's changelog.

    2.1.9 - 27 Apr 2022

    • Add working-directory input to the autobuild action. #1024
    • The analyze and upload-sarif actions will now wait up to 2 minutes for processing to complete after they have uploaded the results so they can report any processing errors that occurred. This behavior can be disabled by setting the wait-for-processing action input to "false". #1007
    • Update default CodeQL bundle version to 2.9.0.
    • Fix a bug where status reporting fails on Windows. #1042

    2.1.8 - 08 Apr 2022

    • Update default CodeQL bundle version to 2.8.5. #1014
    • Fix error where the init action would fail due to a GitHub API request that was taking too long to complete #1025

    2.1.7 - 05 Apr 2022

    • A bug where additional queries specified in the workflow file would sometimes not be respected has been fixed. #1018

    2.1.6 - 30 Mar 2022

    • [v2+ only] The CodeQL Action now runs on Node.js v16. #1000
    • Update default CodeQL bundle version to 2.8.4. #990
    • Fix a bug where an invalid commit_oid was being sent to code scanning when a custom checkout path was being used. #956
    Commits
    • 3962f1b Bump glob from 7.1.7 to 8.0.1
    • 9daf1de Update references to release branches
    • bce749b Improve consistency of variable references in Bash
    • fce4a01 Update the major version tag within the release process
    • bac9320 Update description of "Tag release and merge back" workflow
    • b3bf557 Merge branch 'main' into henrymercer/handle-merge-conflicts-in-releases
    • f6312f1 Commit any conflicts during v1 backport to simplify release process
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump actions/setup-go from 2.2.0 to 3

    Bump actions/setup-go from 2.2.0 to 3

    Bumps actions/setup-go from 2.2.0 to 3.

    Release notes

    Sourced from actions/setup-go's releases.

    v3.0.0

    What's Changed

    Breaking Changes

    With the update to Node 16, all scripts will now be run with Node 16 rather than Node 12.

    This new major release removes the stable input, so there is no need to specify additional input to use pre-release versions. This release also corrects the pre-release versions syntax to satisfy the SemVer notation (1.18.0-beta1 -> 1.18.0-beta.1, 1.18.0-rc1 -> 1.18.0-rc.1).

    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-go@v3
        with:
          go-version: '1.18.0-rc.1' 
      - run: go version
    
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump actions/checkout from 2.4.0 to 3

    Bump actions/checkout from 2.4.0 to 3

    Bumps actions/checkout from 2.4.0 to 3.

    Release notes

    Sourced from actions/checkout's releases.

    v3.0.0

    • Update default runtime to node16
    Changelog

    Sourced from actions/checkout's changelog.

    Changelog

    v2.3.1

    v2.3.0

    v2.2.0

    v2.1.1

    • Changes to support GHES (here and here)

    v2.1.0

    v2.0.0

    v2 (beta)

    • Improved fetch performance
      • The default behavior now fetches only the SHA being checked-out
    • Script authenticated git commands
      • Persists with.token in the local git config
      • Enables your scripts to run authenticated git commands
      • Post-job cleanup removes the token
      • Coming soon: Opt out by setting with.persist-credentials to false
    • Creates a local branch
      • No longer detached HEAD when checking out a branch
      • A local branch is created with the corresponding upstream branch set
    • Improved layout

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/newrelic/go-agent/v3 from 3.20.1 to 3.20.2

    Bump github.com/newrelic/go-agent/v3 from 3.20.1 to 3.20.2

    Bumps github.com/newrelic/go-agent/v3 from 3.20.1 to 3.20.2.

    Release notes

    Sourced from github.com/newrelic/go-agent/v3's releases.

    Release v3.20.2

    3.20.2

    Added

    • New NoticeExpectedError() method allows you to capture errors that you are expecting to handle, without triggering alerts

    Fixed

    • More defensive harvest cycle code that will avoid crashing even in the event of a panic.
    • Update nats-server version to avoid known zip-slip exploit
    • Update labstack/echo version to mitigate known open redirect exploit

    Support Statement

    New Relic recommends that you upgrade the agent regularly to ensure that you’re getting the latest features and performance benefits. Additionally, older releases will no longer be supported when they reach end-of-life.

    We also recommend using the latest version of the Go language. At minimum, you should at least be using no version of Go older than what is supported by the Go team themselves.

    See the Go Agent EOL Policy for details about supported versions of the Go Agent and third-party components.

    Changelog

    Sourced from github.com/newrelic/go-agent/v3's changelog.

    3.20.2

    Added

    • New NoticeExpectedError() method allows you to capture errors that you are expecting to handle, without triggering alerts

    Fixed

    • More defensive harvest cycle code that will avoid crashing even in the event of a panic.
    • Update nats-server version to avoid known zip-slip exploit
    • Update labstack/echo version to mitigate known open redirect exploit

    Support Statement

    New Relic recommends that you upgrade the agent regularly to ensure that you’re getting the latest features and performance benefits. Additionally, older releases will no longer be supported when they reach end-of-life.

    We also recommend using the latest version of the Go language. At minimum, you should at least be using no version of Go older than what is supported by the Go team themselves.

    See the Go Agent EOL Policy for details about supported versions of the Go Agent and third-party components.

    Commits
    • b972074 Merge pull request #616 from newrelic/develop
    • fbbbb5c Merge pull request #615 from iamemilio/readme
    • 9fd0003 Merge pull request #610 from iamemilio/encode_bug
    • d824822 Merge pull request #611 from iamemilio/expectedErrors
    • dc72e67 Merge pull request #612 from iot-defcon/patch-1
    • 649ab73 Merge pull request #613 from iot-defcon/patch-2
    • 4f73195 remove direct dependencies from nrecho go mod bump
    • dff95d1 set app version to 3.20.2
    • 09a58e2 3.20.2 changelog
    • 39824ad pull requests must be made against develop
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/mrz1836/go-datastore from 0.1.10 to 0.1.11

    Bump github.com/mrz1836/go-datastore from 0.1.10 to 0.1.11

    Bumps github.com/mrz1836/go-datastore from 0.1.10 to 0.1.11.

    Release notes

    Sourced from github.com/mrz1836/go-datastore's releases.

    Release v0.1.11

    Changelog

    • 17224d6 Bump github.com/99designs/gqlgen from 0.17.20 to 0.17.21
    • c5ae0ab Bump github.com/99designs/gqlgen from 0.17.21 to 0.17.22
    • 6683712 Bump go.mongodb.org/mongo-driver from 1.11.0 to 1.11.1
    • 6c57019 Bump gorm.io/plugin/dbresolver from 1.3.0 to 1.4.0
    • c3e5acb Merge pull request #52 from mrz1836/dependabot/go_modules/master/gorm.io/plugin/dbresolver-1.4.0
    • df647fb Merge pull request #53 from mrz1836/dependabot/go_modules/master/github.com/99designs/gqlgen-0.17.21
    • abebd04 Merge pull request #54 from mrz1836/dependabot/go_modules/master/github.com/99designs/gqlgen-0.17.22
    • 8a4f48d Merge pull request #55 from mrz1836/dependabot/go_modules/master/go.mongodb.org/mongo-driver-1.11.1
    • 19fe040 Upgraded deps
    Commits
    • 19fe040 Upgraded deps
    • abebd04 Merge pull request #54 from mrz1836/dependabot/go_modules/master/github.com/9...
    • 8a4f48d Merge pull request #55 from mrz1836/dependabot/go_modules/master/go.mongodb.o...
    • 6683712 Bump go.mongodb.org/mongo-driver from 1.11.0 to 1.11.1
    • c5ae0ab Bump github.com/99designs/gqlgen from 0.17.21 to 0.17.22
    • df647fb Merge pull request #53 from mrz1836/dependabot/go_modules/master/github.com/9...
    • c3e5acb Merge pull request #52 from mrz1836/dependabot/go_modules/master/gorm.io/plug...
    • 17224d6 Bump github.com/99designs/gqlgen from 0.17.20 to 0.17.21
    • 6c57019 Bump gorm.io/plugin/dbresolver from 1.3.0 to 1.4.0
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/tonicpow/go-paymail from 0.8.0 to 0.8.1

    Bump github.com/tonicpow/go-paymail from 0.8.0 to 0.8.1

    Bumps github.com/tonicpow/go-paymail from 0.8.0 to 0.8.1.

    Release notes

    Sourced from github.com/tonicpow/go-paymail's releases.

    Release v0.8.1

    Changelog

    • 853a80d Bump actions/setup-go from 3.3.0 to 3.3.1
    • 7628e48 Bump actions/setup-go from 3.3.1 to 3.4.0
    • a42f248 Bump github.com/libsv/go-bt/v2 from 2.1.0 to 2.1.1
    • 1c4ef38 Bump github.com/libsv/go-bt/v2 from 2.1.0-beta.4 to 2.1.0
    • fc168f0 Bump github.com/mrz1836/go-api-router from 0.4.16 to 0.5.0
    • bd45f95 Bump github.com/stretchr/testify from 1.8.0 to 1.8.1
    • a3d7001 Bump golang.org/x/net from 0.1.0 to 0.2.0
    • 846f976 Bump golang.org/x/net from 0.2.0 to 0.3.0
    • 468a082 Bump golang.org/x/net from 0.3.0 to 0.4.0
    • 7297dd9 Bump goreleaser/goreleaser-action from 3.1.0 to 3.2.0
    • c6220c3 Bumped version
    • 139bf08 Merge pull request #100 from tonicpow/dependabot/go_modules/master/github.com/mrz1836/go-api-router-0.5.0
    • 3780672 Merge pull request #101 from tonicpow/dependabot/go_modules/master/github.com/libsv/go-bt/v2-2.1.0
    • 36ecf57 Merge pull request #102 from tonicpow/dependabot/github_actions/master/actions/setup-go-3.4.0
    • c7d9639 Merge pull request #103 from tonicpow/dependabot/go_modules/master/golang.org/x/net-0.3.0
    • f3410dc Merge pull request #104 from tonicpow/dependabot/go_modules/master/golang.org/x/net-0.4.0
    • 14a9a6f Merge pull request #105 from tonicpow/dependabot/go_modules/master/github.com/libsv/go-bt/v2-2.1.1
    • 98d818c Merge pull request #96 from tonicpow/dependabot/go_modules/master/github.com/stretchr/testify-1.8.1
    • 0f34bc0 Merge pull request #97 from tonicpow/dependabot/github_actions/master/actions/setup-go-3.3.1
    • f96d120 Merge pull request #98 from tonicpow/dependabot/github_actions/master/goreleaser/goreleaser-action-3.2.0
    • fd8a63c Merge pull request #99 from tonicpow/dependabot/go_modules/master/golang.org/x/net-0.2.0
    • d68254d Updated linter version
    • 3108af9 Upgraded deps
    Commits
    • d68254d Updated linter version
    • c6220c3 Bumped version
    • 3108af9 Upgraded deps
    • 14a9a6f Merge pull request #105 from tonicpow/dependabot/go_modules/master/github.com...
    • f3410dc Merge pull request #104 from tonicpow/dependabot/go_modules/master/golang.org...
    • a42f248 Bump github.com/libsv/go-bt/v2 from 2.1.0 to 2.1.1
    • 468a082 Bump golang.org/x/net from 0.3.0 to 0.4.0
    • c7d9639 Merge pull request #103 from tonicpow/dependabot/go_modules/master/golang.org...
    • 846f976 Bump golang.org/x/net from 0.2.0 to 0.3.0
    • 36ecf57 Merge pull request #102 from tonicpow/dependabot/github_actions/master/action...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump go.mongodb.org/mongo-driver from 1.11.0 to 1.11.1

    Bump go.mongodb.org/mongo-driver from 1.11.0 to 1.11.1

    Bumps go.mongodb.org/mongo-driver from 1.11.0 to 1.11.1.

    Release notes

    Sourced from go.mongodb.org/mongo-driver's releases.

    MongoDB Go Driver 1.11.1

    The MongoDB Go Driver Team is pleased to release version 1.11.1 of the official Go driver.

    Release Notes

    This release contains a bug fix for heartbeat buildup with streaming protocol when the Go driver process is paused in an FAAS environment (e.g. AWS Lambda). This release also includes a bug fix for handling sequential "NoWritesPerformed" labeled operation errors, in that they should still return the "previous indefinite error".

    P.S. We want to hear about how Go developers use MongoDB and the MongoDB Go Driver! If you haven't already, please take the 2022 MongoDB Go Developer Survey.


    For a full list of tickets included in this release, please see the links below:

    Documentation for the Go driver can be found on pkg.go.dev and the MongoDB documentation site. BSON library documentation is also available on pkg.go.dev. Questions and inquiries can be asked on the MongoDB Developer Community. Bugs can be reported in the Go Driver project in the MongoDB JIRA where a list of current issues can be found. Your feedback on the Go driver is greatly appreciated!

    Commits
    • 88c138b Update version to v1.11.1
    • 1f525ec Merge branch 'release/1.11' of github.com:mongodb/mongo-go-driver into releas...
    • fc7ebbb Revert "Release/1.11 (#1146)"
    • bf833d5 Release/1.11 (#1146)
    • cd79115 resolve merge conflicts
    • ed484be GODRIVER-2577 Retry heartbeat on timeout to prevent pool cleanup in FAAS paus...
    • 30805e4 GODRIVER-2333 Assert that Ping op succeeds initial DNS spec tests (#1124)
    • 19f3fb9 GODRIVER-2651 Break NoWritesPerformed-Only Error Sequence (#1135)
    • 4803b59 Update version to v1.11.1-prerelease
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • [Bug]: Transaction can be broadcast out of order - check if parent is done before broadcasting

    [Bug]: Transaction can be broadcast out of order - check if parent is done before broadcasting

    What happened?

    Missing inputs error when broadcasting

    How can we reproduce this?

    Hard to run into, it's related to parent tx not being broadcast and the child being broadcast before.

    Search

    • [X] I did search for other open and closed issues before opening this.

    Code of Conduct

    • [X] I agree to follow this project's Code of Conduct

    Additional context

    No response

  • [Bug]: 422 Error when xpub current_balance gets below 0 - sqlite

    [Bug]: 422 Error when xpub current_balance gets below 0 - sqlite

    What happened?

    I'm not 100% on repro steps yet in terms of causing the xpub current_balance to get below 0, but if it does happen with sqlite then you can see error as shown in the attached logs when go-datastore attempts to read the value.

    How can we reproduce this?

    Set xpub current_balance below 0 and run a command with bux that would select the xpub and read its current_balance field and watch it panic.

    Search

    • [X] I did search for other open and closed issues before opening this.

    Code of Conduct

    • [X] I agree to follow this project's Code of Conduct

    Additional context

    2022/09/19 23:02:26 type="error" file="[email protected]/models.go" method="go-datastore.(*Client).IncrementModel.func1" line="111" message="error executing query" file="/home/galt/go/pkg/mod/github.com/mrz1836/[email protected]/models.go:111" error="sql: Scan error on column index 5, name "current_balance": converting driver.Value type int64 ("-15") to a uint64: invalid syntax" duration="0.116ms" rows="1" sql="SELECT * FROM `xapi_xpubs` WHERE id = "7bd748da2721f4bcc7908a987c0c700c55b93deb55f02bae50777bc97882190b" ORDER BY `xapi_xpubs`.`id` LIMIT 1 "
    2022/09/19 23:02:26 type="info" file="bux/models_internal.go" method="bux.(*Model).DebugLog" line="38" message="save tx error: sql: Scan error on column index 5, name "current_balance": converting driver.Value type int64 ("-15") to a uint64: invalid syntax"
    
  • [Bug]: Transaction seems to be synced, not found on chain

    [Bug]: Transaction seems to be synced, not found on chain

    What happened?

    Example: f850a716343651a227fb755a2da903790c249cd2fe2e068cab6e25a6a3e3bffb

    Screenshot 2022-09-06 at 20 55 14

    Another problem with this one is that the sync tries forever and fills the results field in MySQL with JSON that at a certain moment is not readable anymore.

    How can we reproduce this?

    Search

    • [X] I did search for other open and closed issues before opening this.

    Code of Conduct

    • [X] I agree to follow this project's Code of Conduct

    Additional context

    No response

  • After creating a destination with monitor enabled, monitor fails to add filter

    After creating a destination with monitor enabled, monitor fails to add filter

    1. Create a new destination (while having monitor turned on/enabled)
    2. in the AfterCreated() method, monitor.Add() is fired (model_destinations.go:347)
    3. error occurs: client was expected but not found
    Screen Shot 2022-06-09 at 1 28 50 PM

    It seems that the client on the monitor is not found...?

  • Feature: test-net support

    Feature: test-net support

    • [ ] Requires new go-bitcoin v2
    • [ ] Update any models that are looking at addresses, destinations or other strings that might be different
    • [x] Broadcasting package support
    • [x] Paymail (internal support - IE: running a paymail server)
    • [ ] Paymail (external support - IE: interacting with external service providers, like MoneyButton)
Windows helpers for GnuPG tools suite - OpenSSH, WSL 1, WSL2, Cygwin, MSYS2, Git4Windows, Putty...
Windows helpers for GnuPG tools suite - OpenSSH, WSL 1, WSL2, Cygwin, MSYS2, Git4Windows, Putty...

win-gpg-agent Simple set of tools to make working with GPG and SSH keys easier on Windows 10. Windows 10 has ssh-agent service (with support for persi

Jan 6, 2023
A full node Bitcoin (BSV) implementation written in Go

bsvd bsvd is a full node Bitcoin (BSV) implementation written in Go (golang). This project is a port of the bchd codebase to Bitcoin (BSV). It provide

Dec 25, 2022
A db for bitcoin-sv & BTC

Welcome to go-svdb Project =========== Boquan Team The Boquan is a team dedicated to promoting and developing true bitcoin. The team has successfully

Sep 3, 2021
Moeing chain is an EVM&Web3 compatible sidechain for Bitcoin Cash

Full node client of smartBCH This repository contains the code of the full node client of smartBCH, an EVM&Web3 compatible sidechain for Bitcoin Cash.

Nov 29, 2022
Store data on Bitcoin for 350 sats/KB up to 185 KB by using P2SH-P2WSH witness scripts

Bitcandle Store data on Bitcoin for 350 sats/KB up to 185 kB by using P2SH-P2WSH witness scripts. 225ed8bc432d37cf434f80717286fd5671f676f12b573294db72

Aug 12, 2022
A curated Golang toolkit for creating Bitcoin SV powered apps
A curated Golang toolkit for creating Bitcoin SV powered apps

bsv A curated Golang toolkit for creating Bitcoin SV powered apps Table of Contents Installation Maintainers License Installation bsv requires a suppo

May 10, 2022
A work-in-progress Bitcoin wallet based on Output Descriptors

go-wallet A work-in-progress Bitcoin wallet Descriptors go-wallet is designed around Bitcoin Descriptors. It implements a Output Script Descriptors la

May 4, 2022
The go-to Bitcoin Node (BN) Go library.

go-bitcoin Go wrapper for bitcoin RPC RPC services Start by creating a connection to a bitcoin node b, err := New("rcp host", rpc port, "rpc usernam

Feb 13, 2022
Bitcoin CPU miner written in Go.

CPU Miner Bitcoin CPU miner written in Go. Introduction This is a CPU miner written in Go. It is a proof of concept and is not intended for production

Dec 29, 2022
A fully validating Bitcoin node with Utreexo support

btcd btcd is an alternative full node bitcoin implementation written in Go (golang). This project is currently under active development and is in a Be

Dec 21, 2022
Bitcoin futures curve from Deribit as a JSON webservice

Curve Bitcoin futures curve from Deribit as a JSON webservice Building go build . Running ./curve Expiration date and annualised yield of each contr

Dec 13, 2021
Bitcoin Core integration/staging tree

Bitcoin Core integration/staging tree https://bitcoincore.org For an immediately usable, binary version of the Bitcoin Core software, see https://bitc

Dec 30, 2022
Mastering Bitcoin 2nd Edition - Programming the Open Blockchain

Code Examples: Mastering Bitcoin Mastering Bitcoin is a book for developers, although the first two chapters cover bitcoin at a level that is also app

Jan 1, 2023
Bitcoin Improvement Proposals

People wishing to submit BIPs, first should propose their idea or document to the [email protected] mailing list (do not assign a

Jan 2, 2023
Full bitcoin solution written in Go (golang)
Full bitcoin solution written in Go (golang)

About Gocoin Gocoin is a full Bitcoin solution written in Go language (golang). The software architecture is focused on maximum performance of the nod

Dec 20, 2022
A simple, concurrent bitcoin miner framework implemented in Go.

Bitcoin Miner A simple, concurrent bitcoin miner framework implemented in Go. Disclaimer: this is not a product intended to be used for real mining, s

Dec 29, 2022
Bitcoin address balance checker on steroids.

BTCSteroids Bitcoin address balance checker on steroids. Table of contents Quick start What's included Use Cases Thanks Copyright and license Quick st

Dec 12, 2022
Btc-globe - Visualize Bitcoin node locations using golang
Btc-globe - Visualize Bitcoin node locations using golang

btc-globe Visualize Bitcoin nodes by location using Golang

Jan 19, 2022
A tool for secrets management, encryption as a service, and privileged access management
A tool for secrets management, encryption as a service, and privileged access management

Deploy HCP Vault & AWS Transit Gateways via Terraform https://medium.com/hashicorp-engineering/deploying-hcp-vault-using-the-hcp-terraform-provider-5e

Nov 23, 2021