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. |
||
|---|---|---|
| .. | ||
| data | ||
| bench_test.go | ||
| consensus_test.go | ||
| consensus.go | ||
| doc.go | ||
| engine_test.go | ||
| engine.go | ||
| error_test.go | ||
| error.go | ||
| example_test.go | ||
| go.mod | ||
| go.sum | ||
| log.go | ||
| opcode_test.go | ||
| opcode.go | ||
| README.md | ||
| reference_test.go | ||
| script_test.go | ||
| script.go | ||
| scriptbuilder_test.go | ||
| scriptbuilder.go | ||
| scriptnum_test.go | ||
| scriptnum.go | ||
| sigcache_test.go | ||
| sigcache.go | ||
| sighash_test.go | ||
| sighash.go | ||
| sign_test.go | ||
| sign.go | ||
| stack_test.go | ||
| stack.go | ||
| standard_test.go | ||
| standard.go | ||
| tokenizer_test.go | ||
| tokenizer.go | ||
txscript
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
-
Standard Pay-to-pubkey-hash Script Demonstrates creating a script which pays to a Decred address. It also prints the created script hex and uses the DisasmString function to display the disassembled script.
-
Extracting Details from Standard Scripts Demonstrates extracting information from a standard public key script.
-
Manually Signing a Transaction Output Demonstrates manually creating and signing a redeem transaction.
-
Counting Opcodes in Scripts Demonstrates creating a script tokenizer instance and using it to count the number of opcodes a script contains.
License
Package txscript is licensed under the copyfree ISC License.