8a3d622 Disallow issuance-stuffing in tx deserialization (Gregory Sanders)
Pull request description:
This is not a consensus change, as "honest" serialization for size/txid purposes will not include these, and only the amounts fields are used in "balance" checking later.
Tree-SHA512: b50e42c002cf0fc8619e2a946ece34ce69133a2a196397d578ca70425f068dc74a4754b5064ee5df67df0faf898da997caeb53f15ff04904b7e6d7361d01a57f
7b0b52f81 [RPC]Add assetlabel support to some commands (Akio Nakamura)
Pull request description:
The support of assetlabel parameter that was previously present left behind from elements-0.17 when #515 have been merged.
I think it is still useful for these commands to support assetlabels.
This patch add assetlabel support to following RPC:
1. getreceivedbyaddress
Add the 3rd parameter as "assetlabel"
Print 'optional' explicitly in the help text.↲
2. getreceivedbylabel
Add the 3rd parameter as "assetlabel"
Print 'optional' explicitly in the help text.↲
3. gettransaction
Add the 3rd parameter as "assetlabel"
4. getbalance
Set the name of 4th parameter as "assetlabel".
Print 'optional' explicitly in the help text.↲
5. listreceivedbyaddress
Set the name of 5th parameter as "assetlabel".
Enable assetlabel selection to the result of amounts.
Print 'optional' explicitly in the help text.↲
6. sendtoaddress
Print 'optional' explicitly in the help text.↲
... and add some tests for assetlabel support.
notice)
Also ```getwalletinfo``` had a parameter to specify "assetlabel".
But no need to add a parameter because the command is a catch-all one.
Tree-SHA512: ba8633e87e21ea3ae5f16f30eb3767e79d7b52cf0ada73257f71416ece2eeca91566e6d33d00bcb8efeac6012def8d3c86bb39deb0fc6a54b24758b8d469e1ef
Remain the support of assetlabel parameter that was previously present.
1. sendtoaddress
Print 'optional' explicitly in the help text.↲
2. getreceivedbyaddress
Add the 3rd parameter as "assetlabel"
Print 'optional' explicitly in the help text.↲
3. getreceivedbylabel
Add the 3rd parameter as "assetlabel"
Print 'optional' explicitly in the help text.↲
4. getbalance
Set the name of 4th parameter as "assetlabel".
Print 'optional' explicitly in the help text.↲
5. listreceivedbyaddress
Set the name of 5th parameter as "assetlabel".
Enable assetlabel selection to the result of amounts.
Print 'optional' explicitly in the help text.↲
6. gettransaction
Add the 3rd parameter as "assetlabel"
notice) Also getwalletinfo had a parameter to specify "assetlabel".
But no need to add a parameter because the command is a catch-all one.
cc49106 Update getnewaddress help message with "blech32" special case (Steven Roose)
56358b8 Add tests for blinding pegin transactions (Steven Roose)
a9f589b Add support for blinding pegin transactions (Steven Roose)
bf0cc83 Add confidential assets values to listunspent documentation (Steven Roose)
4e84596 Always return blind address for "blech32" type (Steven Roose)
Pull request description:
Adds pegin handling support for `blindrawtransaction` and `rawblindrawtransaction`.
Tree-SHA512: 1138aeedd2d5852108abd53a6afc83524e5f06ad3ab770fd8ab37c97c8dd5c49f78b8d44bdf7cbe2c073e07cd8566bf032526ab6488e99fc02f8b5b154a3fde1
f9d159b Don't assert on user-inputed values (Steven Roose)
Pull request description:
This prevents the assertion from crashing the node when an RPC user
enters invalid blinding factors.
Fixes#540.
Tree-SHA512: d68787edb9919a3a55b94884180700854941c5f273c2ac07f534bd0a3981f163fa26c8cef931001bc9906d6c74a58cdc0148eb7d53d3edbedf005a0be7c60c5b
4089122 Better explain the 8-decimal asset issuance. (Gregory Sanders)
Pull request description:
Since this RPC call is likely the first place people are exposed to this UI quirk, explain it here.
Tree-SHA512: 0d0e5d576e772facecc6632b9966c689946d76ea5b2a4faf7d790d7147ac542c952f20283458675f9753228c371a9ce16bd2599d317615c06863cce21ae20f7a
dd757ad FundTransaction: mark all change keys as kept (Gregory Sanders)
Pull request description:
Regression from 0.14 due to internal API changes.
If a key has already been marked returned it's a nop.
Tree-SHA512: c3842f17a9f6032500491c303bf0bc47b05d1f1fb7b6f37b55fc0815d7b20b30be97e34793526288dccee449e3939df8d6dc79899c1adcb3cf6abf8713700dee
c866f52e2 Squashed 'src/secp256k1/' changes from 43dd1f4..44db4d8 (Gregory Sanders)
Pull request description:
Resolves https://github.com/ElementsProject/elements/issues/540 along with other minor updates.
Tree-SHA512: ef34626cb6a5b35c81587d3bf545baab5dbe875db61047fbccfc367058c5416f8e32e5ff6b1ffbb0d14c0e5307893376b0d4b548846994470c8191fe295538ee
44db4d8 Merge pull request #57 from apoelstra/2019-04-surjectionproof-stack
f7e4d08 surjection proof: Reject proofs with too many used inputs in reduced mode
112edb2 allow reducing surjection proof size (to lower generation stack usage)
d512d78 surjectionproof: introduce `SECP256K1_SURJECTIONPROOF_MAX_USED_INPUTS` constant and set it to 16
a118acc surjectionproof: reduce stack usage
e7f4ff4 Merge pull request #70 from apoelstra/2019-06-surjection-count
f94d46e Merge pull request #71 from real-or-random/fix-trailing-test
49a1e01 surjectionproof: fix malleability in surjection proof parsing
55311b0 Fix read of wrong buffer (and OOB) in surjectionproof tests
290a27b surjectionproof: add test vectors for "set padding bits"
7bc3daa surjectionproof: add fixed test vectors
6f3b0c0 Improve comments for surctionproof init+alloc/destroy funcs
250ebb3 work in progress: add _allocate_initialized/destroy funcs
4a77633 Improve explanation of key cancellation attack in whitelist.md
898c9f0 Clarify how to derive alternative generator H
15d9278 Add bench_generator and bench_rangeproof to .gitignore
86240b2 Clean up ./configure help strings (zkp extensions)
865b761 Fix a small typo in the generator parameter name
cd5ba5c generator: remove `CHECK` abort calls exposed by public API
ff16651 musig: add user documentation
0ad6b60 Add 3-of-3 MuSig example
b61a1a9 Add MuSig module which allows creating n-of-n multisignatures and adaptor signatures.
5d5374f Add schnorrsig module which implements BIP-schnorr [0] compatible signing, verification and batch verification.
a8ae6ba add chacha20 function
9a8a71e use proper types for rangeproof min/max
14769b9 rangeproof: reduce iteration count in unit tests
0593861 Enable more builds with rest of experimental flags
e9fea74 Add explanation about how BIP32 unhardened derivation can be used to simplify whitelisting
dec1b9c Add comment to explain effect of max_n_iterations in surjectionproof_init
ea62bfe add unit test for generator and pedersen commitment roundtripping
e32924f rangeproof: fix serialization of pedersen commintments
972d056 rangeproof: verify correctness of pedersen commitments when parsing
2cc4c6f generator: verify correctness of point when parsing
65ffea4 rangeproof: check that points deserialize correctly when verifying rangeproof
cb786d6 rangeproof: add fixed vector test case
b387ba0 Expose generator in shared library
8da4328 fix spelling in documentation
6f14fe4 Test for rejection of trailing bytes in range proofs
ab4fbc1 Test for rejection of trailing bytes in surjection proofs
c908c97 Reject surjection proofs with trailing garbage
f723bf5 Minor bugfix. Wrong length due to NUL character.
6872069 Add whitelisting benchmark
6ceccb7 add whitelist_impl.h to include for dist
a3ad4a8 generator: add API tests
e93e886 generator: remove unnecessary ARG_CHECK from generate()
f1d6e4b Fix generator makefile
68be611 Fix pedersen_blind_generator_blind_sum return value documentation
51fc58a Add n_keys argument to whitelist_verify
36b100c Fix checks of whitelist serialize/parse arguments
c8f54e1 whitelist: fix serialize/parse API to take serialized length
56fca50 Fix include/secp256k1_rangeproof.h function argument documentation.
4617f04 rangeproof: add API tests
cd4e438 surjectionproof: rename unit test functions to be more consistent with other modules
2cc7f1e surjectionproof: add API unit tests
c4097f7 surjectionproof: tests_impl.h s/assert/CHECK/g
5ee6bf3 rangeproof: fix memory leak in unit tests
94e81a2 add surjection proof module
a66ea35 Implement ring-signature based whitelist delegation scheme
2bb5133 rangeproof: several API changes
9b00b61 Expose generator in pedersen/rangeproof API
54fa263 Constant-time generator module
023aa86 rangeproof: expose sidechannel message field in the signing API
89e7451 [RANGEPROOF BREAK] Use quadratic residue for tie break and modularity cleanup
f126331 Pedersen commitments, borromean ring signatures, and ZK range proofs.
e1fb4af Add 64-bit integer utilities
e541a90 Merge #629: Avoid calling _is_zero when _set_b32 fails.
f34b0c3 Merge #630: Note intention of timing sidechannel freeness.
8d1563b Note intention of timing sidechannel freeness.
1669bb2 Merge #628: Fix ability to compile tests without -DVERIFY.
ecc94ab Merge #627: Guard memcmp in tests against mixed size inputs.
544435f Merge #578: Avoid implementation-defined and undefined behavior when dealing with sizes
143dc6e Merge #595: Allow to use external default callbacks
e49f799 Add missing #(un)defines to base-config.h
77defd2 Add secp256k1_ prefix to default callback functions
908bdce Include stdio.h and stdlib.h explicitly in secp256k1.c
5db782e Allow usage of external default callbacks
6095a86 Replace CHECKs for no_precomp ctx by ARG_CHECKs without a return
cd473e0 Avoid calling secp256k1_*_is_zero when secp256k1_*_set_b32 fails.
6c36de7 Merge #600: scratch space: use single allocation
98836b1 scratch: replace frames with "checkpoint" system
7623cf2 scratch: save a couple bytes of unnecessarily-allocated memory
a7a164f scratch: rename `max_size` to `size`, document that extra will actually be allocated
5a4bc0b scratch: unify allocations
c2b028a scratch space: thread `error_callback` into all scratch space functions
0be1a4a scratch: add magic bytes to beginning of structure
92a48a7 scratch space: use single allocation
40839e2 Merge #592: Use trivial algorithm in ecmult_multi if scratch space is small
dcf3920 Fix ability to compile tests without -DVERIFY.
a484e00 Merge #566: Enable context creation in preallocated memory
0522caa Explain caller's obligations for preallocated memory
238305f Move _preallocated functions to separate header
695feb6 Export _preallocated functions
814cc78 Add tests for contexts in preallocated memory
ba12dd0 Check arguments of _preallocated functions
5feadde Support cloning a context into preallocated memory
c4fd5da Switch to a single malloc call
ef020de Add size constants for preallocated memory
1bf7c05 Prepare for manual memory management in preallocated memory
248bffb Guard memcmp in tests against mixed size inputs.
36698dc Merge #596: Make WINDOW_G configurable
a61a93f Clean up ./configure help strings
2842dc5 Make WINDOW_G configurable
1a02d6c Merge #626: Revert "Merge #620: Install headers automatically"
662918c Revert "Merge #620: Install headers automatically"
14c7dbd Simplify control flow in DER parsing
ec8f20b Avoid out-of-bound pointers and integer overflows in size comparisons
01ee1b3 Parse DER-enconded length into a size_t instead of an int
912680e Merge #561: Respect LDFLAGS and #undef STATIC_PRECOMPUTATION if using basic config
91fae3a Merge #620: Install headers automatically
5df77a0 Merge #533: Make sure we're not using an uninitialized variable in secp256k1_wnaf_const(...)
975e51e Merge #617: Pass scalar by reference in secp256k1_wnaf_const()
735fbde Merge #619: Clear a copied secret key after negation
16e8615 Install headers automatically
069870d Clear a copied secret key after negation
8979ec0 Pass scalar by reference in secp256k1_wnaf_const()
84a8085 Merge #612: Allow field_10x26_arm.s to compile for ARMv7 architecture
d4d270a Allow field_10x26_arm.s to compile for ARMv7 architecture
b19c000 Merge #607: Use size_t shifts when computing a size_t
4d01bc2 Merge #606: travis: Remove unused sudo:false
e6d01e9 Use size_t shifts when computing a size_t
7667532 travis: Remove unused sudo:false
248f046 Make sure we're not using an uninitialized variable in secp256k1_wnaf_const(...)
9ab96f7 Use trivial algorithm in ecmult_multi if scratch space is small
ee99f12 Merge #599: Switch x86_64 asm to use "i" instead of "n" for immediate values.
d58bc93 Switch x86_64 asm to use "i" instead of "n" for immediate values.
05362ee Merge #597: Add $(COMMON_LIB) to exhaustive tests to fix ARM asm build
8348386 Add $(COMMON_LIB) to exhaustive tests to fix ARM asm build
aa15154 Merge #568: Fix integer overflow in ecmult_multi_var when n is large
2277af5 Fix integer overflow in ecmult_multi_var when n is large
dbed75d Undefine `STATIC_PRECOMPUTATION` if using the basic config
310111e Keep LDFLAGS if `--coverage`
85d0e1b Merge #591: Make bench_internal obey secp256k1_fe_sqrt's contract wrt aliasing.
1419637 Merge #580: Add trivial ecmult_multi algorithm which does not require a scratch space
a697d82 Add trivial ecmult_multi to the benchmark tool
bade617 Add trivial ecmult_multi algorithm. It is selected when no scratch space is given and just multiplies and adds the points.
5545e13 Merge #584: configure: Use CFLAGS_FOR_BUILD when checking native compiler
20c5869 Merge #516: improvements to random seed in src/tests.c
b76e45d Make bench_internal obey secp256k1_fe_sqrt's contract wrt aliasing.
870a977 Merge #562: Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse
be40c4d Fixup for C90 mixed declarations.
c71dd2c Merge #509: Fix algorithm selection in bench_ecmult
6492bf8 Merge #518: Summarize build options after running configure
0e9ada1 Merge #567: Correct order of libs returned on pkg-config --libs --static libsecp2…
e96901a Merge #587: Make randomization of a non-signing context a noop
58df8d0 Merge #511: Portability fix for the configure scripts generated
2ebdad7 Merge #552: Make constants static:
1c131af Merge #551: secp256k1_fe_sqrt: Verify that the arguments don't alias.
ba698f8 Merge #539: Assorted minor corrections
949e85b Merge #550: Optimize secp256k1_fe_normalize_weak calls.
a34bcaa Actually pass CFLAGS_FOR_BUILD and LDFLAGS_FOR_BUILD to linker
2d5f4ce configure: Use CFLAGS_FOR_BUILD when checking native compiler
b408c6a Merge #579: Use __GNUC_PREREQ for detecting __builtin_expect
6198375 Make randomization of a non-signing context a noop
c663397 Use __GNUC_PREREQ for detecting __builtin_expect
3cb057f Fix possible integer overflow in DER parsing
89a20a8 Correct order of libs returned on pkg-config --libs --static libsecp256k1 call.
d3cb1f9 Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse
496c5b4 Make constants static: static const secp256k1_ge secp256k1_ge_const_g; static const int CURVE_B;
bf8b86c secp256k1_fe_sqrt: Verify that the arguments don't alias.
9bd89c8 Optimize secp256k1_fe_normalize_weak calls. Move secp256k1_fe_normalize_weak calls out of ECMULT_TABLE_GET_GE and ECMULT_TABLE_GET_GE_STORAGE and into secp256k1_ge_globalz_set_table_gej instead.
52ab96f clean dependendies in field_*_impl.h
deff5ed Correct math typos in field_*.h
4efb3f8 Add check that restrict pointers don't alias with all parameters.
3965027 Summarize build options in configure script
0f05173 Fix algorithm selection in bench_ecmult
8b3841c fix bug in fread() failure check
cddef0c tests: add warning message when /dev/urandom fails
270f6c8 Portability fix for the configure scripts generated
REVERT: 43dd1f4 Merge pull request #40 from instagibbs/size_t
REVERT: 6532fa0 Merge pull request #39 from instagibbs/more_builds
REVERT: 2b2429d rangeproof: reduce iteration count in unit tests
REVERT: 12b0e5d Enable more builds with rest of experimental flags
REVERT: 8c444ee use proper types for rangeproof min/max
REVERT: 53ad841 Add explanation about how BIP32 unhardened derivation can be used to simplify whitelisting
REVERT: 71c5fe0 Add comment to explain effect of max_n_iterations in surjectionproof_init
REVERT: 85fd42f add unit test for generator and pedersen commitment roundtripping
REVERT: 2ccf885 rangeproof: fix serialization of pedersen commintments
REVERT: 60c173b rangeproof: verify correctness of pedersen commitments when parsing
REVERT: 32d7526 generator: verify correctness of point when parsing
REVERT: ae14e8a rangeproof: check that points deserialize correctly when verifying rangeproof
REVERT: 44fe43d rangeproof: add fixed vector test case
REVERT: e065d7d Expose generator in shared library
REVERT: fb1ba32 fix spelling in documentation
REVERT: fb75faa Test for rejection of trailing bytes in range proofs
REVERT: 9b2cf17 Test for rejection of trailing bytes in surjection proofs
REVERT: a3a1800 Reject surjection proofs with trailing garbage
REVERT: 0c77ae9 Minor bugfix. Wrong length due to NUL character.
REVERT: b1f31bc Add whitelisting benchmark
REVERT: 52a9f8f add whitelist_impl.h to include for dist
REVERT: a707865 generator: add API tests
REVERT: ec1ef04 generator: remove unnecessary ARG_CHECK from generate()
REVERT: b0e9aa8 Fix generator makefile
REVERT: 526c654 Fix pedersen_blind_generator_blind_sum return value documentation
REVERT: b51886e Add n_keys argument to whitelist_verify
REVERT: 37c57de Fix checks of whitelist serialize/parse arguments
REVERT: 9b8a9d9 whitelist: fix serialize/parse API to take serialized length
REVERT: 7f17515 Fix include/secp256k1_rangeproof.h function argument documentation.
REVERT: 0d81702 rangeproof: add API tests
REVERT: 417bb06 surjectionproof: rename unit test functions to be more consistent with other modules
REVERT: 1e2d5c1 surjectionproof: add API unit tests
REVERT: 7878a29 surjectionproof: tests_impl.h s/assert/CHECK/g
REVERT: e609591 rangeproof: fix memory leak in unit tests
REVERT: 0c17f79 add surjection proof module
REVERT: c174f0c Implement ring-signature based whitelist delegation scheme
REVERT: a2bc660 rangeproof: several API changes
REVERT: 21bfb3c Expose generator in pedersen/rangeproof API
REVERT: f4620de Constant-time generator module
REVERT: d46fc3c rangeproof: expose sidechannel message field in the signing API
REVERT: cf40b1b [RANGEPROOF BREAK] Use quadratic residue for tie break and modularity cleanup
REVERT: 6d28767 Get rid of precomputed H tables (Pieter Wuille)
REVERT: ae1e576 Pedersen commitments, borromean ring signatures, and ZK range proofs.
REVERT: efc61dc Add 64-bit integer utilities
git-subtree-dir: src/secp256k1
git-subtree-split: 44db4d801fff3cd94105136cb443d603683baad2
a502bc8ff Move MainchainRPCCheck to its own schedule, fix resolution (Gregory Sanders)
Pull request description:
Also fix second->millisecond regression from 0.17
Tree-SHA512: 8074d953f6a661ce5cab76d0304d85acea0b7eabfcf9dc5be6c3bba1a34caf03649fa3feb6d20ab0e546640d98a016d3ddb12f8176b7fefbe772323d3c870de2
7737d29b7 have peg-in witness creation strip witness for space savings (Gregory Sanders)
Pull request description:
Cheaper peg-in witness for those with segwit transactions in Bitcoin.
resolves https://github.com/ElementsProject/elements/issues/628
Tree-SHA512: defc4f38b2456c6f45cf2ebd48a3d5f9e39544bd048606257ef6cf90623595c159f61e3df56845fb7a37a44b5019614e692663978a9664dd9b4d01b77bedeb86
1ae68dc0b Fix qt usages of txout-based GetCredit (Gregory Sanders)
c17af5d2d Delete unused non-CWalletTx GetCredit (Gregory Sanders)
Pull request description:
First commit is dead code that we don't want to accidentally try to use.
Second fixes actually-used code in QT for looking at transaction details.
resolves https://github.com/ElementsProject/elements/issues/630
Tree-SHA512: 181fead8c385de6d91d637607619014bb1668fa2a6c3c81fb6c575750582f3204e4f94fcf28e68f42c2c02a97e42a818ac8c3add5a9700e263f5620718973bcc
5de1e3f9d Disallow issuance calls in bitcoin mode (Gregory Sanders)
Pull request description:
Enough people are running `-regtest` and getting confused as to why they cannot issue assets to make some checks worth it even though we don't intend people to run bitcoin mode at all.
Tree-SHA512: cb595839d01a000b5a48be4ae5c7084a687bb5c252be8f812f56455082ed78e66cb15313ab15934941cd403040ae253d8270faf6e85995d5caa0d1a66ccd3c6c
This is technically not 100% correct since if blinded addresses are
turned off, it will create a normal address for "blech32".
But it's the simplest thing to do.
I also moved some RPC methods that were not at the end of the file with
the other ELEMENTS RPC methods. This makes the diff on my machine look
crazy. Let's hope GitHub has more intelligent diffs..