dcrd/txscript
Dave Collins f6ea97a42d
txscript: Accept raw public keys in MultiSigScript.
This modifies MultiSigScript to accept raw serialized variadic pubkeys
instead of a fixed slice of addresses and updates the tests to be more
consistent with the rest of the code.

It also now takes the required number of signatures (threshold) as the
first parameter so it more closely matches the typical way threshold
signatures are referred to.  Namely, m-of-n where m is the threshold and
n is the number of pubkeys.

These style of multisig scripts involve public keys as opposed to
addresses, and callers typically have the public key as opposed to an
address already anyway, so the new API is more convenient, logical, and
flexible.

Finally, in order to keep the semantics the same such that only
compressed secp256k1 public keys are used, an additional check is added
to reject the provided serialized public keys when they do not adhere to
the strict compressed public key encoding requirements.
2021-03-13 16:49:29 -06:00
..
data txscript: Proactively evict SigCache entries. 2020-09-24 12:19:59 -05:00
bench_test.go txscript: Rename script bldr add data to unchecked. 2021-03-12 17:33:14 -06:00
consensus_test.go txscript: Rework check pubkey encoding test. 2020-07-08 22:23:14 -05:00
consensus.go multi: Start dcrec/secp256k1 v4 module dev cycle. 2020-12-16 16:30:24 -06:00
doc.go txscript: Add support for errors.Is/As. 2020-05-26 21:50:17 -05:00
engine_test.go txscript: Export several useful funcs for treasury. 2020-07-07 12:52:27 -05:00
engine.go multi: Add decentralized treasury support. 2020-09-21 12:15:31 -05:00
error_test.go multi: Add decentralized treasury support. 2020-09-21 12:15:31 -05:00
error.go multi: Add decentralized treasury support. 2020-09-21 12:15:31 -05:00
example_test.go multi: Start dcrec/secp256k1 v4 module dev cycle. 2020-12-16 16:30:24 -06:00
go.mod multi: Update to siphash v1.2.2. 2021-01-30 18:32:35 -06:00
go.sum multi: Update to siphash v1.2.2. 2021-01-30 18:32:35 -06:00
log.go txscript: Optimize trace logging. 2020-07-28 16:48:20 -05:00
opcode_test.go multi: Add decentralized treasury support. 2020-09-21 12:15:31 -05:00
opcode.go multi: Start dcrec/secp256k1 v4 module dev cycle. 2020-12-16 16:30:24 -06:00
README.md multi: Update README.md files for go modules. 2021-01-22 14:39:23 -06:00
reference_test.go txscript: Add script bldr unchecked op add. 2021-03-12 17:33:15 -06:00
script_test.go multi: Add decentralized treasury support. 2020-09-21 12:15:31 -05:00
script.go multi: Add decentralized treasury support. 2020-09-21 12:15:31 -05:00
scriptbuilder_test.go txscript: Rename script bldr add data to unchecked. 2021-03-12 17:33:14 -06:00
scriptbuilder.go txscript: Add script bldr unchecked op add. 2021-03-12 17:33:15 -06:00
scriptnum_test.go txscript: Rename script bldr add data to unchecked. 2021-03-12 17:33:14 -06:00
scriptnum.go txscript: Export CsvMaxScriptNumLen. 2020-07-08 19:59:53 -05:00
sigcache_test.go multi: Start dcrec/secp256k1 v4 module dev cycle. 2020-12-16 16:30:24 -06:00
sigcache.go multi: Start dcrec/secp256k1 v4 module dev cycle. 2020-12-16 16:30:24 -06:00
sighash_test.go txscript: Decouple and optimize sighash calc. 2018-05-01 08:51:41 -05:00
sighash.go multi: Correct typos. 2019-08-16 17:37:58 -05:00
sign_test.go txscript: Accept raw public keys in MultiSigScript. 2021-03-13 16:49:29 -06:00
sign.go multi: Start dcrec/secp256k1 v4 module dev cycle. 2020-12-16 16:30:24 -06:00
stack_test.go txscript: Optimize alt stack drop. 2020-07-28 16:44:34 -05:00
stack.go txscript: Optimize alt stack drop. 2020-07-28 16:44:34 -05:00
standard_test.go txscript: Accept raw public keys in MultiSigScript. 2021-03-13 16:49:29 -06:00
standard.go txscript: Accept raw public keys in MultiSigScript. 2021-03-13 16:49:29 -06:00
tokenizer_test.go txscript: Add support for errors.Is/As. 2020-05-26 21:50:17 -05:00
tokenizer.go multi: remove whitespace 2019-11-21 18:31:30 -06:00

txscript

Build Status ISC License Doc

Package txscript implements the Decred transaction script language. There is a comprehensive test suite.

This package has intentionally been designed so it can be used as a standalone package for any projects needing to use or validate Decred transaction scripts.

Decred Scripts

Decred provides a stack-based, FORTH-like language for the scripts in the Decred transactions. This language is not Turing complete although it is still fairly powerful.

Installation and Updating

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

Examples

License

Package txscript is licensed under the copyfree ISC License.