Andrew Poelstra
4ab69b8a77
script tracer: add `op_count` a running opcode count
2014-08-25 21:39:16 -07:00
Andrew Poelstra
46bffa304c
script tracer: Put an obvious "opcode failed" message in the pre-execute stack
2014-08-25 16:09:00 -07:00
Andrew Poelstra
4ba533514e
Add Default impl to Script
2014-08-23 16:20:46 -07:00
Andrew Poelstra
e3445ebef7
Pull script tracing code out of Transcation so it can be used independently
2014-08-22 12:14:39 -07:00
Andrew Poelstra
e29fdb90c8
fix for upstream
2014-08-18 18:04:32 -07:00
Andrew Poelstra
7059c21ef4
tx trace: add `executed` boolean, add a trace even for ops that fail
2014-08-17 13:35:57 -07:00
Andrew Poelstra
09679b8d9f
Add a copy of the script to ScriptTrace
2014-08-16 19:21:07 -07:00
Andrew Poelstra
62dd2e7cee
Add transaction trace capability for debugging scripts
2014-08-16 19:04:57 -07:00
Andrew Poelstra
8d1a3e1f7c
Some error improvements
2014-08-16 13:33:13 -07:00
Andrew Poelstra
8a814e4331
Add P2SH support
2014-08-15 17:37:40 -07:00
Andrew Poelstra
fa859b3490
Fix VERIFY-op handling in provably-unspendable code
2014-08-14 20:32:36 -07:00
Andrew Poelstra
61969ce6ee
Fix overflow in script
2014-08-14 20:09:54 -07:00
Andrew Poelstra
fc04462682
Implement pruning
2014-08-14 17:05:07 -07:00
Andrew Poelstra
d9d7416e32
Fixes for recent stdlib changes
2014-08-14 15:20:39 -07:00
Andrew Poelstra
cfe7d5eb26
Use slices rather than allocations in most parts of script
2014-08-13 20:25:28 -07:00
Andrew Poelstra
526f9fc574
Remove -all- CODESEPARATORS before serializing the script, even though only one has effect
...
I can validate the whole testnet chain now :) onto P2SH!
2014-08-12 21:34:46 -07:00
Andrew Poelstra
29d0701faa
Fix off-by-one error handling OP_CODESEPARATOR
2014-08-11 22:43:24 -07:00
Andrew Poelstra
38593dd2ab
Remove entire signature push operation, not just signature data, when hashing for checksig
2014-08-11 21:40:30 -07:00
Andrew Poelstra
dea6d457f4
Clean up `read_uint` as in PR #2 (thanks @jkozera)
2014-08-11 19:20:39 -07:00
Andrew Poelstra
3e25134b2f
Added unit tests for three more testnet failures, the latter of which I'm still working on
2014-08-11 19:17:58 -07:00
Andrew Poelstra
a87dd0042b
Get OP_MULTISIG working
2014-08-10 21:37:12 -07:00
Andrew Poelstra
bf09ab2754
Fix script bugs (can now fully validate testnet up to multisig)
2014-08-10 19:35:58 -07:00
Andrew Poelstra
e01e9ad3be
Implement CHECKSIG and CHECKSIGVERIFY
...
Still need the multisig ops, and p2sh
2014-08-10 13:51:05 -07:00
Andrew Poelstra
ecdb750148
Implement script except for crypto opcodes, replace zero_hash by Default
...
Looks like to implement the crypto opcodes I may need to switch from
rust-crypto to rust-openssl.. or implement RIPEMD-160 for rust-crypto.
In either case I will need to generalize the hash.rs stuff to support
other hashes, so I'm committing here as a checkpoint before doing all
that.
2014-08-05 19:08:06 -07:00
Andrew Poelstra
a2ce000b2b
Revamp Serializable interface to be similar to Encoder/Encodable
...
This is a massive simplification, fixes a couple endianness bugs (though
not all of them I don't think), should give a speedup, gets rid of the
`serialize_iter` crap.
2014-08-01 09:01:39 -07:00
Andrew Poelstra
8cd8947cf3
Implement some more ToJson's
2014-07-29 10:19:21 -07:00
Andrew Poelstra
a34f2642f1
Implement ToJson for BlockHeader
...
I think this is what I want to do for everything json-visible...perhaps
I will not be able to keep the macro for it though, since there are
some clever variations on it (e.g. blocks should have their header's
hash as a field, txes should appear as txids unless vebose output is
requested, etc.)
2014-07-28 20:12:10 -07:00
Andrew Poelstra
c9ad7c0b58
Initial commit, move into Cargo
2014-07-18 06:56:17 -07:00