Commit Graph

915 Commits

Author SHA1 Message Date
Matt Corallo bfe889904a Fix whitespace (s/\t/ /g) 2018-04-02 14:58:25 -04:00
Matt Corallo bcf57e69df
Merge pull request #70 from TheBlueMatt/2018-03-bip143-ref-ergonomics
Only provide the required TxIn to bip143 sighash_all
2018-04-02 13:04:09 -04:00
Matt Corallo 0e1d927b47 Only provide the required TxIn to bip143 sighash_all.
This resolves an very unergonomic API by allowing iteration over a
Transaction being signed's inputs without needing to take a
conflicting reference to the transaction.

The API is still relateively unsafe in that its very easy to
generate bogus sighashes with it, but this is much better than it
was, and its not clear how to fix it further.
2018-04-02 12:42:59 -04:00
Andrew Poelstra 157d0312c4
Merge pull request #69 from TheBlueMatt/2018-03-tx-weight
Add a Transaction.get_weight() method, check it in fuzzing
2018-04-02 16:41:54 +00:00
Matt Corallo 3793b2859a Add a Transaction.get_weight() method, check it in fuzzing 2018-04-02 12:23:05 -04:00
Matt Corallo f859dc8b26 Expose VarInt's encoded length 2018-04-02 12:23:05 -04:00
Andrew Poelstra 050fd8ccd0
Merge pull request #68 from TheBlueMatt/master
Move witness inside of TxIn.
2018-04-02 16:21:54 +00:00
Matt Corallo a33f00621b Move witness inside of TxIn.
This is a rather large breaking API change, but is significantly
more sensible. In the "do not allow internal representation to
represent an invalid state" category, this ensures that witness
cannot have an length other than the number of inputs. Further,
it reduces vec propagation, which may help performance in some
cases by reducing allocs. Fianlly, this just makes more sense (tm).
Witness are a per-input field like the scriptSig, placing them
outside of the TxIn is just where they are serialized, not where
they logically belong.
2018-03-26 10:25:33 -04:00
Andrew Poelstra 0aa5cee39b
Merge pull request #66 from rust-bitcoin/0.12
bump to 0.12
2018-03-23 16:58:14 +00:00
Andrew Poelstra 85728d16a1 bump to 0.12 2018-03-23 15:27:56 +00:00
Andrew Poelstra cabac2354e
Merge pull request #64 from tamasblummer/address_socket
create Address message with SocketAddr, get SocketAddr from Address m…
2018-03-23 15:26:46 +00:00
Tamas Blummer ae708447a2 create Address message with SocketAddr, get SocketAddr from Address message. 2018-03-23 15:12:06 +01:00
Andrew Poelstra 15fd85b9d0
Merge pull request #63 from TheBlueMatt/master
Update fuzz target boilerplate to match rust-lightning
2018-03-22 01:47:06 +00:00
Matt Corallo 74cd941c83 Bump secp256k1 dep for older rustc 2018-03-21 18:44:10 -04:00
Matt Corallo 855b377d51 Fix crash in Address::from_str if input isn't long enough 2018-03-21 18:44:10 -04:00
Matt Corallo 8ae711ce0f Check-in fuzzing inputs for deserialize_script.
These were generated by running afl with AFL_EXIT_WHEN_DONE,
10 billion iterations in honggfuzz, and then minimizing with
afl-cmin.
2018-03-21 18:44:10 -04:00
Matt Corallo 298ba23876 Add address serialization round-trip fuzzer 2018-03-21 18:44:10 -04:00
Matt Corallo 73fca023ae Set travis to do 1,000,000 hfuzz steps 2018-03-21 18:44:10 -04:00
Matt Corallo 6826d8f35c Stub out Sha2 calls when fuzzing to mask all but the first byte 2018-03-21 18:44:10 -04:00
Matt Corallo d445eaa8c3 Update fuzzers to match rust-lightning boilerplate 2018-03-21 17:14:41 -04:00
Andrew Poelstra d3fda36ca6
Merge pull request #65 from rust-bitcoin/rustc-1.14
Rustc 1.14
2018-03-21 20:53:01 +00:00
Andrew Poelstra 22343fb023 Bump cargo version and travis to compile with 1.14 2018-03-21 20:38:15 +00:00
Andrew Poelstra 64987e349c minor nits to get compilation to work on rustc 1.14 (currently shipping Debian version) 2018-03-21 18:49:46 +00:00
Andrew Poelstra d1b5f2a79d
Merge pull request #62 from tamasblummer/wif
Implemented segwit address types. Moved PrivKey into its own module.
2018-03-21 16:58:55 +00:00
Tamas Blummer 1a87244b2b Implement Segwit addresses 2018-03-20 18:26:51 +01:00
Andrew Poelstra b15438b441
Merge pull request #60 from rust-bitcoin/bech32
Add bech32 support
2018-03-13 16:13:25 +00:00
Andrew Poelstra 65d8df08b8 address: implement Bech32 support 2018-03-13 14:48:01 +00:00
Andrew Poelstra 9884bec577 add docs indicating change in Sha256dHash debug output 2018-03-12 21:50:35 +00:00
Andrew Poelstra 8968b081ca util: add Debug output for Sha256d and Hash160 which don't reverse the bytes 2018-03-12 21:27:09 +00:00
Andrew Poelstra ee1dfcf4a2 base58: remove Base58 traits, replace with encode/decode functions 2018-03-12 21:27:07 +00:00
Andrew Poelstra c8702ab55d
Merge pull request #58 from tamasblummer/libbitcoinconsenus_feature
Optional feature gives access to Bitcoin Core's own script validator
2018-03-12 19:38:20 +00:00
Tamas Blummer 755fb454eb integration with bitcoinconsenus 2018-03-12 17:17:16 +01:00
Andrew Poelstra cdeff991c5
Merge pull request #59 from rust-bitcoin/readme-fix
Fix a couple README links
2018-03-12 16:02:38 +00:00
Andrew Poelstra a66a44c4b9 Fix a couple README links 2018-03-12 15:55:56 +00:00
Andrew Poelstra 7225a87522
Merge pull request #57 from rust-bitcoin/remove-script
remove script interpreter
2018-03-10 14:09:50 +00:00
Andrew Poelstra 21f2baf58e remove script interpreter 2018-03-09 20:30:11 +00:00
Andrew Poelstra 0ef9dc3365
Merge pull request #56 from tamasblummer/memblocks
Moved blockchain and patricia_tree to rust-memblocks
2018-03-09 19:56:30 +00:00
Tamas Blummer 77ce6f18d0 Moved blockchain and patricia_tree to rust-memblocks 2018-03-09 17:22:31 +01:00
Andrew Poelstra 6d13d68f51
Merge pull request #51 from tamasblummer/is_on_main_chain_public2
[Trivial] is_on_main_chain is a very useful function upstream, make it public
2018-03-09 15:20:25 +00:00
Andrew Poelstra 7dcca9157b
Merge branch 'master' into is_on_main_chain_public2 2018-03-09 15:09:21 +00:00
Andrew Poelstra 10d6aba269
Merge pull request #50 from tamasblummer/get_tip_height
[Trivial] add get_best_tip_height to blokchain
2018-03-09 15:09:14 +00:00
Tamás Blummer e530aa98c9
Merge branch 'master' into is_on_main_chain_public2 2018-03-09 16:03:06 +01:00
Andrew Poelstra ab72eabd59
Merge branch 'master' into get_tip_height 2018-03-09 15:01:15 +00:00
Andrew Poelstra c92ede0cc5
Merge pull request #49 from tamasblummer/public_command
[Trivial] RawNetworkMessage::command should be public.
2018-03-09 15:01:03 +00:00
Andrew Poelstra 78fdf7133f
Merge branch 'master' into is_on_main_chain_public2 2018-03-09 14:50:00 +00:00
Andrew Poelstra 992846f992
Merge branch 'master' into public_command 2018-03-09 14:49:38 +00:00
Andrew Poelstra 9fe5a67a1d
Merge branch 'master' into get_tip_height 2018-03-09 14:49:36 +00:00
Andrew Poelstra 1bebc9fa00
Merge pull request #48 from tamasblummer/gitignore
[Trivial] add IntelliJ IDEA files to .gitignore
2018-03-09 14:48:30 +00:00
Andrew Poelstra a3037bd4b4
Merge branch 'master' into is_on_main_chain_public2 2018-03-09 14:45:31 +00:00
Andrew Poelstra c07a159c3a
Merge branch 'master' into get_tip_height 2018-03-09 14:45:30 +00:00