dcrd/txscript
Dave Collins 1955bb1bf1
multi: Abstract standard verification flags.
This modifies the way standard verification flags are handled so that it
is possible to selectively enable them based on the result of agenda
votes.

First, it moves the StandardVerifyFlags constant from the txscript
package to the mempool/policy code and rename it to
BaseStandardVerifyFlags.  As the TODO in the comment of the moved
constant indicated, these flags are policy related and thus really
belong in policy.  Ideally there would be a completely separate policy
package, but since the policy code currently lives in mempool/policy.go,
the constant has been moved there.

Next, it introduces a new function named standardScriptVerifyFlags,
which accepts the chain as an argument and, for now, just returns the
BaseStandardVerifyFlags along with a nil error.  This will allow
additional flags to be selectively enabled depending on the result of an
agenda vote.

Finally, it updates the mempool policy struct to require a closure for
obtaining the flags so it can remain decoupled from the chain which in
turn allows easier and more robust unit testing of mempool functionality
since it allows a mocks to be used.
2017-09-15 12:58:21 -05:00
..
data txscript: Introduce OP_SHA256. 2017-09-14 11:33:48 -05:00
consensus.go txscript: Implement CheckSequenceVerify 2017-08-28 12:23:34 -05:00
doc.go blockchain: Rework to use new db interface. 2016-08-18 15:42:18 -04:00
engine_test.go multi: Separate tx serialization type from version. 2017-08-07 14:10:27 -05:00
engine.go txscript: Introduce OP_SHA256. 2017-09-14 11:33:48 -05:00
error.go blockchain: Rework to use new db interface. 2016-08-18 15:42:18 -04:00
example_test.go multi: Update DecodeAddress function signature 2017-07-21 23:41:24 -05:00
internal_test.go txscript: Introduce OP_SHA256. 2017-09-14 11:33:48 -05:00
log.go all: Remove seelog logger. 2017-06-20 10:58:10 -04:00
opcode_test.go multi: Abstract standard verification flags. 2017-09-15 12:58:21 -05:00
opcode.go txscript: Introduce OP_SHA256. 2017-09-14 11:33:48 -05:00
README.md multi: Update markdown in README files to match change in github parser. 2017-05-26 12:06:19 -04:00
reference_test.go txscript: Introduce OP_SHA256. 2017-09-14 11:33:48 -05:00
script_test.go txscript: Introduce OP_SHA256. 2017-09-14 11:33:48 -05:00
script.go txscript: remove unneeded API 2017-08-17 15:42:04 -04:00
scriptbuilder_test.go txscript: Expose AddOps on ScriptBuilder. 2016-11-18 12:58:00 -06:00
scriptbuilder.go travis: enable gometalinter (#603) 2017-03-08 15:44:15 -05:00
scriptnum_test.go txscript: Sync upstream makeScriptNum tests. 2016-05-17 16:34:03 -05:00
scriptnum.go Initial Decred Commit. 2016-02-07 14:00:12 -05:00
sigcache_test.go multi: Upstream chainhash abstraction sync 2016-11-16 12:48:40 -06:00
sigcache.go Merge in btcd '7f07fb1093dd80105d36d61c8fb8a16f6e9d9b29' 2016-09-23 14:40:27 -04:00
sign_test.go multi: Separate tx serialization type from version. 2017-08-07 14:10:27 -05:00
sign.go txscript: Expose AddOps on ScriptBuilder. 2016-11-18 12:58:00 -06:00
stack_test.go multi: Error descriptions are in lower case. 2017-09-08 18:03:59 +02:00
stack.go blockchain: Rework to use new db interface. 2016-08-18 15:42:18 -04:00
standard_test.go txscript: Force extracted addrs to compressed. 2017-08-02 00:34:35 +00:00
standard.go multi: Abstract standard verification flags. 2017-09-15 12:58:21 -05:00

txscript

Build Status ISC License GoDoc

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

$ go get -u github.com/decred/dcrd/txscript

Examples

License

Package txscript is licensed under the copyfree ISC License.