// Copyright (c) 2015 The btcsuite developers
// Copyright (c) 2017-2022 The Decred developers
// Use of this source code is governed by an ISC
// license that can be found in the LICENSE file.

/*
Package txsort provides stable transaction sorting.

# Overview

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
*/
package txsort
