lbcwallet/wtxmgr
carla 50869085eb
wtxmgr: add put and fetch functions for optional transaction label
Add and test functions which can be used to write optional transaction
labels to disk in their own bucket. These labels are keyed by txid and
write the labels to disk using-length value encoding scheme. Although
the length field is not required at present, it is added to allow future
extensibility without a migration.

This approach is chosen over adding this information to txRecords,
Because a migration would be required to add a field after the variable
Length serialized tx.

The put label function will overwrite existing labels if called more
than once for the same txid. User side validation of whether we want
to override this label should be performed by calling code. Labels must
be > 0 characters and <= 500 characters (an arbitrarily chosen limit).
2020-05-11 15:16:11 +02:00
..
db.go wtxmgr: add put and fetch functions for optional transaction label 2020-05-11 15:16:11 +02:00
doc.go Use LICENSE file and short license headers. 2016-02-28 22:22:34 -05:00
error.go Improve wallet atomicity. 2018-05-23 19:38:56 -07:00
example_test.go wtxmgr: convert unit tests to be package-level 2018-11-14 18:09:10 -08:00
go.mod wtxmgr+build: update all packges to point towards walletdb v1.2.0 2020-01-15 04:51:25 -08:00
go.sum wtxmgr: update go.mod to walletdb 1.2.0 2020-01-15 12:40:34 -08:00
kahnsort.go wtxmgr: export dependencySort 2019-01-31 16:42:53 -08:00
kahnsort_test.go wtxmgr/khansort_test: add DependencySort unit tests 2019-01-31 16:43:22 -08:00
log.go wtxmgr+wallet: add wtxmgr sublogger 2018-11-14 18:09:10 -08:00
migrations.go wtxmgr/migrations: add drop transaction history migration 2018-11-14 18:09:10 -08:00
migrations_test.go wtxmgr/migrations: add drop transaction history migration 2018-11-14 18:09:10 -08:00
query.go multi: switch import paths back to upstream 2018-05-23 19:38:56 -07:00
query_test.go wtxmgr: convert unit tests to be package-level 2018-11-14 18:09:10 -08:00
README.md multi: switch import paths back to upstream 2018-05-23 19:38:56 -07:00
tx.go wtxmgr: add put and fetch functions for optional transaction label 2020-05-11 15:16:11 +02:00
tx_test.go wtxmgr: add put and fetch functions for optional transaction label 2020-05-11 15:16:11 +02:00
unconfirmed.go wtxmgr: prevent adding existing confirmed transactions as unconfirmed 2019-07-10 16:25:00 -07:00

wtxmgr

[Build Status] (https://travis-ci.org/btcsuite/btcwallet)

Package wtxmgr provides storage and spend tracking of wallet transactions and their relevant input and outputs.

Feature overview

  • Storage for relevant wallet transactions
  • Ability to mark outputs as controlled by wallet
  • Unspent transaction output index
  • Balance tracking
  • Automatic spend tracking for transaction inserts and removals
  • Double spend detection and correction after blockchain reorgs
  • Scalable design:
    • Utilizes similar prefixes to allow cursor iteration over relevant transaction inputs and outputs
    • Programmatically detectable errors, including encapsulation of errors from packages it relies on
    • Operates under its own walletdb namespace

Documentation

[GoDoc] (http://godoc.org/github.com/btcsuite/btcwallet/wtxmgr)

Full go doc style documentation for the project can be viewed online without installing this package by using the GoDoc site here: http://godoc.org/github.com/btcsuite/btcwallet/wtxmgr

You can also view the documentation locally once the package is installed with the godoc tool by running godoc -http=":6060" and pointing your browser to http://localhost:6060/pkg/github.com/btcsuite/btcwallet/wtxmgr

Installation

$ go get github.com/btcsuite/btcwallet/wtxmgr

Package wtxmgr is licensed under the copyfree ISC License.