dcrd/dcrutil/txsort
Dave Collins 705015e400
dcrutil: Prepare v4.0.0.
This updates the dcrutil module dependencies, the copyright year in the
files modified since the previous release, and serves as a base for
dcrutil/v4.0.0.

The updated direct dependencies in this commit are as follows:

- github.com/decred/dcrd/txscript/v4@v4.0.0

The full list of updated direct dependencies since the previous
dcrutil/v3.0.0 release are as follows:

- github.com/decred/dcrd/chaincfg/chainhash@v1.0.3
- github.com/decred/dcrd/dcrec/edwards/v2@v2.0.2
- github.com/decred/dcrd/dcrec/secp256k1/v4@v4.0.1
- github.com/decred/dcrd/txscript/v4@v4.0.0
- github.com/decred/dcrd/wire@v1.5.0

Finally, all modules in the repository that depend on the module are
tidied to ensure they are updated to use the latest versions hoisted
forward as a result.
2021-11-19 11:54:59 -06:00
..
testdata txsort: Implement stable tx sorting package. 2017-12-08 11:22:21 -06:00
doc.go txsort: Implement stable tx sorting package. 2017-12-08 11:22:21 -06:00
README.md multi: Update README.md files for go modules. 2021-01-22 14:39:23 -06:00
txsort_test.go dcrutil: Prepare v4.0.0. 2021-11-19 11:54:59 -06:00
txsort.go multi: Correct typos. 2019-08-22 10:20:03 -05:00

txsort

Build Status ISC License Doc

Package txsort provides stable transaction sorting.

This package implements a standard lexicographical sort order of transaction inputs and outputs. This is useful to standardize transactions for faster multi-party agreement as well as preventing information leaks in a single-party use case. It is a modified form of BIP69 which has been updated to account for differences with Decred-specific transactions.

The sort order for transaction inputs is defined as follows:

  • Previous transaction tree in ascending order
  • Previous transaction hash (treated as a big-endian uint256) lexicographically in ascending order
  • Previous output index in ascending order

The sort order for transaction outputs is defined as follows:

  • Amount in ascending order
  • Public key script version in ascending order
  • Raw public key script bytes lexicographically in ascending order

A comprehensive suite of tests is provided to ensure proper functionality.

Installation and Updating

This package is part of the github.com/decred/dcrd/dcrutil/v3 module. Use the standard go tooling for working with modules to incorporate it.

License

Package txsort is licensed under the copyfree ISC License.