Braydon Fuller
945db009b2
Add test for transaction and block version serialization
2020-08-19 14:12:03 -07:00
Braydon Fuller
e9f1f11c2c
Transaction and header version is signed int
2020-08-17 10:28:51 -07:00
Andrew Poelstra
7efde3ae47
Merge pull request #419 from elichai/2020-03-description
...
Deprecate Error::description
2020-05-23 17:26:38 +00:00
Elichai Turkel
af31017eb1
Remove the cursor overhead, write is implemented on vec these days
2020-05-19 12:57:39 +03:00
Elichai Turkel
654232a3dc
Deprecate Error::description
2020-04-13 02:15:28 +03:00
Elichai Turkel
41e4471721
Remove alloc when hashing sighash
2020-04-12 19:04:12 +03:00
Elichai Turkel
3f2d428706
Remove needless references
2020-03-29 17:15:14 +03:00
Nadav Ivgi
f3b5a7187c
Add Transaction::get_size()
2020-03-23 19:48:41 +02:00
Andrew Poelstra
659f2edb3b
Merge pull request #381 from elichai/2020-01-hex
...
Remove the hex dependency
2020-01-24 19:14:20 +00:00
Steven Roose
930a6ca1dc
Merge pull request #390 from instagibbs/bip143_sighash_notall
...
Add bip143 sighash support for other flags
2020-01-21 23:26:17 +00:00
Gregory Sanders
908aff50bc
Add bip143 sighash support for other flags
2020-01-21 09:50:41 -05:00
Elichai Turkel
c19b736566
Remove the hex dependency
2020-01-20 18:50:02 +02:00
Gregory Sanders
2916685ca6
small Transaction test cleanup
2020-01-14 11:14:23 -05:00
Gregory Sanders
3624ee82c8
Use witness scaling constant in get_weight
2020-01-14 11:14:23 -05:00
Dr Maxim Orlovsky
5fc24dea33
Multiple fixes for hash types and their computing
...
Unit test for wtxid and SegWit transactions
2020-01-01 13:54:23 +01:00
Dr Maxim Orlovsky
0abe15b1f6
Moving from BitcoinHash to Wtxid for Transactions
2020-01-01 13:52:20 +01:00
Dr Maxim Orlovsky
f5a8087105
New hash types: MerkleRoot/Branch, WitnessCommit, SigHash, FilterHash
2020-01-01 13:50:17 +01:00
Dr Maxim Orlovsky
4746ccb88e
Final work on Txid and other hashes
...
Fixing issue with external dependency and hash_newtype macro implementation
Reverting back to the bitcoin_hashes crate after new version release
2020-01-01 13:48:28 +01:00
Dr Maxim Orlovsky
5f4f629bb1
Replaced all hash160, sha256 and sha256d with the new hash types throughout the code
...
Embedding Txid's in the doc exaples
2020-01-01 13:44:34 +01:00
Dr Maxim Orlovsky
ec92a05682
New HashTypes defined according to #284 (WIP), Txid is completed
2020-01-01 13:41:42 +01:00
Steven Roose
5f4555bfac
Remove util::misc::hex_bytes in favor of bitcoin_hashes::hex
2019-12-09 14:19:09 +00:00
Andrew Poelstra
65cb18d583
Merge pull request #341 from ccdle12/txin-impl-default
...
Add default trait implementation for TxIn
2019-12-06 21:21:49 +00:00
Matt Corallo
acb43af981
Drop byteorder dependency
...
Taking an external dependency just to convert ints to byte arrays
is somewhat of a waste, especially when Rust isn't very aggressive
about doing cross-crate LTO.
Note that the latest LLVM pattern-matches this, and while I haven't
tested it, that should mean this means no loss of optimization.
2019-12-05 10:41:00 -05:00
Chris Coverdale
0586ed94c4
Add default trait implementation for TxIn
2019-11-17 16:41:14 +00:00
Tamás Blummer
f01568c85a
use lambda instead of a hash map to find spent outputs ( #319 )
...
* use lambda instead of a hash map to find spent outputs
* check for double use of an input
2019-08-23 18:49:31 +02:00
Steven Roose
48f4c1989f
Rename bitcoin_hashes dependency to hashes
2019-08-16 15:52:27 +01:00
Steven Roose
fc6415d652
Add human-readable serde for OutPoint as `<txid>:<vout>`
2019-07-26 15:30:46 +02:00
Tamás Blummer
c93a70487f
Add client side block filter (BIP158) ( #281 )
...
* add client side block filters with code from murmel. use siphash from bitcoin_hashes pass Bitcoin Core tests upgrade to bitcoin_hashes 0.7
* add filter.filter_id() test use BlockFilter directly
* fixed edge cases of matching empty query sets or or using empty filter
2019-07-26 09:36:25 +02:00
Andrew Poelstra
3b9a94a178
eliminate type parameter from the `Decodable` trait
2019-07-11 17:23:01 +00:00
Andrew Poelstra
42960b959f
eliminate type parameter from `Encodable` trait
2019-07-11 17:21:19 +00:00
Andrew Poelstra
b734d6488a
make consensus_encode return the encoded length
2019-07-11 17:15:32 +00:00
Andrew Poelstra
abb9210c04
make `VarInt::len` and `Transaction::get_weight` return a usize
2019-07-11 17:14:05 +00:00
Andrew Poelstra
7e6ad7c893
rename Encoder to WriteExt and Decoder to ReadExt
2019-07-11 15:01:38 +00:00
Andrew Poelstra
b2727b6ebe
Merge pull request #250 from stevenroose/no-strason
...
Remove Decimal and replace strason with serde_json
2019-07-03 17:30:21 +00:00
Steven Roose
560a709faa
Add OutPoint::new() for one-liner construction ( #285 )
2019-06-24 18:49:20 +02:00
Steven Roose
30201f3924
Remove Decimal and replace strason with serde_json
2019-06-13 18:29:16 +01:00
Carl Dong
99f63a8ca4
Convert codebase from util::hash to bitcoin_hashes
...
Also replace unsafe transmute with call to read_u64_into
2019-01-24 16:27:52 -05:00
Dimitris Apostolou
132ca5ea95
Fix typos
2019-01-23 14:17:29 -05:00
Antoine Riard
96c66292c8
Fix comment on transaction version
2019-01-10 18:29:50 -08:00
Andrew Poelstra
b8a72448df
Merge pull request #153 from rust-bitcoin/2018-08-segwit-ambiguity
...
transaction: make 0-input de/serialization always use Segwit
2018-11-03 15:29:51 +00:00
Steven Roose
fefd5d4fe2
Implement FromStr for OutPoint
2018-10-18 12:37:02 +01:00
Andrew Poelstra
11a2783235
add comment expanding on the segwit ambiguity
2018-10-10 02:45:09 +00:00
Andrew Poelstra
a181a523c6
remove special case for 0-input 0-output transaction deserialization
...
This creates two ways to encode an empty transaction; we should use only the
Segwit-enabled one because that's what we do for 0-input non-0-output transactions.
2018-10-10 02:03:08 +00:00
Andrew Poelstra
98e39b4383
transaction: make 0-input de/serialization always use Segwit
2018-09-27 13:50:35 +00:00
Carl Dong
0f42ca69b0
Move relevant names into consensus::encode
...
- Move network::encodable::* to consensus::encode::*
- Rename Consensus{En,De}codable to {En,De}codable (now under
consensus::encode)
- Move network::serialize::Error to consensus::encode::Error
- Remove Raw{En,De}coder, implement {En,De}coder for T: {Write,Read}
instead
- Move network::serialize::Simple{En,De}coder to
consensus::encode::{En,De}coder
- Rename util::Error::Serialize to util::Error::Encode
- Modify comments to refer to new names
- Modify files to refer to new names
- Expose {En,De}cod{able,er}, {de,}serialize, Params
- Do not return Result for serialize{,_hex} as serializing to a Vec
should never fail
2018-09-25 21:19:35 +08:00
Carl Dong
8e0e4eb55a
Move serialize::BitcoinHash to util: #️⃣ :BitcoinHash
...
- Use Sha256dEncoder for calculating merkle root
- Remove BitcoinHash implementation for Vec<u8>
2018-09-25 21:19:10 +08:00
Andrew Poelstra
f0221fb79b
transaction: reject transactions with Segwit byte set but no witnesses
2018-08-24 19:57:58 +00:00
Carl Dong
0c172941af
Replace serialize::Error::Detail with variants
...
- Add serialize::Error::ParseFailed(&'static str) variant for
serialization errors without context
- Add appropriate variants to replace network::Error::Detail for
serialization error with context
- Remove error method from SimpleDecoders
2018-08-21 01:58:40 -07:00
Carl Dong
e5b5cbfadb
Fix Error type for SimpleDecoder and SimpleEncoder
...
- Separate serialize::Error and network::Error from util::Error
- Remove unneeded propagate_err and consume_err
- Change fuzzing code to ignore Err type
2018-08-21 01:58:40 -07:00
Andrew Poelstra
2d961412af
Merge pull request #139 from jeandudey/2018-08-18-outpoint
...
Rename `TxOutRef` to `OutPoint` and use it in `TxIn`.
2018-08-20 18:18:00 +00:00