Commit graph

278 commits

Author SHA1 Message Date
Steven Roose 4443e04cb8 Fix error in base58check test 2020-07-13 09:35:42 -04:00
Anirudha Bose 6065135ba8 Improve test coverage of WIF decoder/encoder
Use subtests to split cases, and add new ones, notably for decoding
invalid WIFs.
2020-07-06 10:32:46 -04:00
shuai.qi c78a7129bf Fix typo 2020-07-06 10:08:39 -04:00
johnta0 35f6653e0a hdkeychain: fix trivial typo 2020-07-06 10:08:01 -04:00
Akio Nakamura 63e5e276cd Fix some typos in docs
This PR fixes 'hardended'/'hardned' to 'hardened' in the godocs.
2020-07-06 10:06:32 -04:00
Olaoluwa Osuntokun af92bbf499
Merge pull request #173 from guggero/psbt-util
psbt: add/export new utility functions and BIP 69 in-place sort
2020-06-25 00:45:29 -07:00
Oliver Gugger 0b85b11dcc
psbt: add BIP 69 in-place sort 2020-06-25 09:38:04 +02:00
Oliver Gugger 488d2cc834
psbt: add new utility functions 2020-06-25 09:38:03 +02:00
Oliver Gugger 8ec8bad266
psbt: export WriteTxWitness 2020-06-25 09:38:03 +02:00
Olaoluwa Osuntokun 7ddbb930fd
Merge pull request #165 from onyb/has-witness-nil-deference
Fix nil pointer dereference when WitnessHash is called before HasWitness
2020-06-22 16:30:30 -07:00
Olaoluwa Osuntokun 3beec01267
Merge pull request #171 from wpaulino/expose-extended-key-fields
hdkeychain: expose extended key's version and child index
2020-06-22 16:27:57 -07:00
Wilmer Paulino d8c8794021
hdkeychain: expose extended key's version and child index 2020-06-17 16:31:20 -07:00
Anirudha Bose 29af078e7b
Fix nil pointer dereference when WitnessHash is called before HasWitness
Issue: btcsuite/btcd#1543
Related PR: btcsuite/btcutil#156
2020-05-05 09:28:57 +05:30
Olaoluwa Osuntokun b2bf7f89d6
Merge pull request #163 from Crypt-iQ/psbt_fixes_0409
psbt: fix two deserialization bugs
2020-04-10 17:06:09 -07:00
nsa f06d6af2f0 psbt: return ErrInvalidKeydata if value isn't a 32-bit uint
This commit fixes a panic when deserializing PSBTs in raw binary.
If the key type was SighashType and the value was not 4 bytes long,
the call to binary.LittleEndian.Uint32(value) would panic as the
function expects 4 bytes to parse into a uint32. We now perform a
sanity check that asserts that the value is 4 bytes long.
2020-04-08 17:54:59 -04:00
nsa d08f03552c psbt: define MaxPsbtKeyLength and check against it when decoding
This commit defines MaxPsbtKeyLength and checks that decoding a
key from a PSBT blob doesn't attempt to allocate too much memory.
2020-04-08 17:53:06 -04:00
Olaoluwa Osuntokun 8bf941f570
Merge pull request #162 from guggero/psbt-empty-input
psbt: fix deserialization with zero inputs
2020-03-23 16:36:00 -07:00
Oliver Gugger 04442f8ef9
psbt: fix deserialization with zero inputs
This is a fix/workaround for a special case that's caused by
https://github.com/btcsuite/btcd/blob/master/wire/msgtx.go#L426.
When a wire format transaction with no inputs is serialized, the wire
package assumes it's a non-witness transaction (as there is indeed no
witness data present).
But when de-serializing the same transaction, the line mentioned above
assumes that for the special case of a zero input length, the
transaction must be in the witness format, which causes the
de-serialization  to fail.
The workaround in this commit fixes this special case by just trying
to deserialize the transaction in the non-witness format too.
2020-03-23 10:38:36 +01:00
Olaoluwa Osuntokun 02a4fd9de1
Merge pull request #155 from Roasbeef/psbt-refactor
psbt: refactor new PSBT library to match code style of project
2020-01-16 15:10:25 -08:00
Olaoluwa Osuntokun 8aa4d06cc2
psbt: create sub-module 2020-01-15 17:57:05 -08:00
Olaoluwa Osuntokun f1575b5bfd
build: add top-level go mod file 2020-01-15 17:56:58 -08:00
Olaoluwa Osuntokun 959fe939ad
psbt: update tests to match new API changes 2020-01-15 17:56:53 -08:00
Olaoluwa Osuntokun 6bd3b8034f
psbt: refactor updater.go for consistent code style 2020-01-15 17:56:50 -08:00
Olaoluwa Osuntokun 2a3238c694
psbt: create new enum type for return values of Sign method 2020-01-15 17:56:47 -08:00
Olaoluwa Osuntokun ef5f31d2e3
psbt: rename psbt.Psbt to psbt.Packet, rename existing constructors 2020-01-15 17:56:44 -08:00
Olaoluwa Osuntokun 6d70b190b0
psbt: create new utils file, refactor finalizer for consistent code style 2020-01-15 17:56:41 -08:00
Olaoluwa Osuntokun 41cb8d70da
psbt: modify Extract method to return the transaction directly
In this commit, we modify the Extract method to return the transaction
directly as in many cases a user will likely want to write the
transaction to disk, or perform additional validation rather than obtain
the raw bytes directly.
2020-01-15 17:56:38 -08:00
Olaoluwa Osuntokun 57a6543394
psbt: remove Creator struct, create New function as entry point into package
The creator struct really didn't do anything before, as a result in this
commit we move to get rid of it, and create a `New` method as
customarily used in go packages.
2020-01-15 17:56:35 -08:00
Olaoluwa Osuntokun a94de55e85
psbt: move bip32 structs into new file 2020-01-15 17:56:32 -08:00
Olaoluwa Osuntokun 33335d05df
psbt: move output into new file 2020-01-15 17:56:29 -08:00
Olaoluwa Osuntokun 9411189e0e
psbt: move input into new file 2020-01-15 17:56:26 -08:00
Olaoluwa Osuntokun 7611eb65d8
psbt: move PSBT keys/type into new file 2020-01-15 17:56:23 -08:00
Adam Gibson e17c9730c4 PSBT BIP 174 implementation (#126)
Implements: PSBT struct, roles: creator, updater, signer, extractor.
Passing test vectors.
2019-12-19 15:20:22 -03:00
Conner Fromknecht 9e5f4b9a99 gcs/gcs: use sort.Slice instead of sort.Sort, remove uint64Slice
This commit removes the uint64Slice type and performs sorting during
filter construction and ZipMatchAny using sort.Slice. The benchmarks
indicated that this speeds up BuildGCSFilter and ZipMatchAny by 10-12%,
likely to the overhead of needing to resolve the sort.Interface methods.

The benchmarks indicate that this improvement is not present for the
smallest query size in our benchmarks, i.e. 100 elements, but the
reduction is only about 3%. This would indicate the at these small
values, the use of reflection is actually slightly slower than interface
method resolution in total.
2019-04-25 16:57:16 -07:00
Conner Fromknecht 8cea9a2e28 gcs/gcs: ensure match zero hash 2019-04-25 16:42:51 -07:00
Conner Fromknecht 6f51807c27 gcs/gcs_test: match zero element 2019-04-25 16:42:51 -07:00
Danny Paz 3ac1210f4b use defaultnet params instead of btc chaincfg for decode address
remove unneeded parens

change custom to litecoin for test description
2019-03-15 18:01:44 -07:00
Jim Posen 4c204d6978 gcs/builder: Omit all OP_RETURN scripts from basic filter. 2019-02-06 16:39:14 -08:00
Conner Fromknecht bf1e1be935 gcs/gcs_test: adds generic tests for all matching strats 2019-01-11 20:11:46 -08:00
Conner Fromknecht 36301f211d gcs/gcsbench_test: adds Zip/HashMatchAny comparsions 2019-01-11 20:11:46 -08:00
Conner Fromknecht 784cec0650 gcs/gcs: adds HashMatchAny for large filter queries 2019-01-11 20:11:46 -08:00
Olaoluwa Osuntokun ab6388e0c6
gcs/builder: remove the AddScript method as it's no longer used (#121)
In this commit, we remoec the AddScript method as it's no longer used,
and AddEntry should be used in place for adding pkScripts to the
filters.
2018-07-06 18:06:48 -05:00
Olaoluwa Osuntokun 7eb98d5700 gcs/builder: skip zero nil outputs scripts 2018-07-06 17:32:55 -05:00
Olaoluwa Osuntokun 46d39f9c2c gcs/builder: skip OP_RETURN outputs when for regular filter 2018-07-06 17:32:55 -05:00
Olaoluwa Osuntokun 98e65a007d builder: remove outpoint methods 2018-07-06 17:32:55 -05:00
Olaoluwa Osuntokun d3e82fcd5d gcs: switch basic filter to index prev output scripts of all inputs 2018-07-06 17:32:55 -05:00
Olaoluwa Osuntokun e993e6ce27 gcs/builder: remove extended filter
In this commit, we remove the extended filter as it doesn't have a clear
use atm.
2018-07-06 17:32:55 -05:00
Olaoluwa Osuntokun 0ecd90b8d6 gcs: update fp and modulus values based on recent optimality analysis
In this commit, we decrease the default fp rate to 19, or 1/2^19. We do
this as recent analysis by sipa on the bitcoin dev mailing list has
shown that optimally, we can use a value of 2^19 for the fp rate, while
use n=1.497137*2^P rather than n directly. As a result, we can shrink
the filter size by quite a bit, while still maintaining a sane false
positive value.
2018-07-06 17:32:55 -05:00
Olaoluwa Osuntokun 996307736e gcs/builder: update builder tests to use addr script directly 2018-07-06 17:32:55 -05:00
Olaoluwa Osuntokun 3b3422dc54 gcs/builder: update regular filter to exclude txid
In this commit, we update the regular filter to exclude the txid, as in
most cases we can use the output script for the same purpose.
2018-07-06 17:32:55 -05:00