36a40e8 check amount against MAX_MONEY with unsigned comparison (Dmitry Petukhov)
Pull request description:
Because explicit conversion of arbitrarily large unsigned values
to signed values of the same bit width is implementation defined
until c++20, better check against MAX_MONEY with unsigned comparison.
Tree-SHA512: c4c40a7126b66e7d1c18750a7151619ab76d48098139a800cbf2123dc5f52091c07508c75846415d05ac67d1d21da71bc30d726e120bf35480a48d85df3e7fe5
Because explicit conversion of arbitrarily large unsigned values
to signed values of the same bit width is implementation defined
until c++20, better check against MAX_MONEY with unsigned comparison.
15371c3 Refactor UnblindConfidentialPair, and use proper generator serialization comparison (Gregory Sanders)
67fa949 Use proper secp API to compare generators in issuance validation (Gregory Sanders)
Pull request description:
Shouldn't be an issue, but just as a precaution to protect against non-guaranteed conditions changing.
Tree-SHA512: 2bc983c36abd6157852b1f38636612ebde7519adb7c210b39a4b3dd9f36f497b7e80861223f4d582f6c35abdc669847126b246a0418f7d8d24455c841566f145
f7a5476 add standard license header to src/blind.cpp (Dmitry Petukhov)
Pull request description:
As discussed in #485, src/blind.cpp should have a standard license header.
Tree-SHA512: cf15808a6a1189d4beb4911d0e55e8288df839908202b534bfd0fe5a80c74c0e174060454320e01b0c83295b62f4b9184d2de37d378b686b95428cd39a72bf22
if nNonce.vchCommitment contains invalid key of correct length,
IsValid() check will pass, but then assertion will be hit
when secp256k1_ec_pubkey_parse() is called on it inside CKey::ECDH().
Therefore, the check should be done with IsFullyValid()
bc257db f'rawreissueasset functional tests' (Gregory Sanders)
181d099 rawreissueasset functional tests (Gregory Sanders)
21cb8aa rawreissuance rpc (Gregory Sanders)
1251ecd fixup rawissueasset help comment (Gregory Sanders)
23371af add confidential_key explanation in validateaddress help (Gregory Sanders)
c579f4b Correct how wallet blinding logic detects which token id to use based on blinding keys (Gregory Sanders)
fff2dcc blindrawtransaction: Have blind_issuances parse correctly from command line (Gregory Sanders)
756bdc0 issueasset_base: Push 0-value value to issuance field if blinding (Gregory Sanders)
ca383ac add functional testing for raw issuance call (Gregory Sanders)
a5e1af5 rawissueasset RPC call (Gregory Sanders)
f9f91ba Fixup issueasset help results information (Gregory Sanders)
69d8d15 Break out issuance-specific testing to its own functional test (Gregory Sanders)
2b22b6d Fixup (raw)blindrawtransaction (Gregory Sanders)
a5e9e0e Fix blinding logic for issuances on input 1 or higher (Gregory Sanders)
83df289 fixup BlindTransaction issuance counting assertion (Gregory Sanders)
Pull request description:
Resolves the initial issuance portion of: https://github.com/ElementsProject/elements/issues/471
The user follows this flow:
`createrawtransaction->fundrawtransaction->rawissueasset->blindrawtransaction->signrawtransaction`
`rawissueasset` is a new RPC call that allows the user to append N-many issuances, up to the amount of inputs the transaction has, at once. It allows the issuances to be "marked" for blinding later(only effects reissance token asset id), and for the destination outputs to be arbitrary addresses, blinded or otherwise.
Previously `fundrawtransaction` would not blind issuances(pretty much on accident), so I have added an argument, default `true`, on whether to blind issuances, since there is no field in the transaction itself to mark as whether we want to blind it or not.
Note: This will cause your transactions' fee-rate to go down, so the caller may want to over-shoot fees during the `fundrawtransaction` call as cushion.
I also fixed a couple bugs on the way as I uncovered them.
Tree-SHA512: fa77158c390743f579797d426b9d9cb000a5d686a8b10aa818b1e9ad65fdc42ac139a36ad226e31676b3bd9c6643bc69074869d6a927309a7ec328c91e853bec
f2161b411 Improve raw peg-in creation logic/help and add basic tests (Gregory Sanders)
Pull request description:
shores up concerns in https://github.com/ElementsProject/elements/issues/465 and fixes a return variable help text. Adds tests.
Tree-SHA512: d32305a355c3bbac22c9cf5ceab57825f9dd1ced40a401cda62d25cba4313a832032720b0ecc30f2ca0025c3992099d32660fec566955dd00973ffb42362e32b
0064b03 Add Asset parameter to MutateTxAddOutData (yoshihide shimada)
0dd6605 Remove comma for `claimpegin` in command line help info (Stefan Liu)
a2715eb validation: change pindexPrev->nHeight + 1 to nHeight (shafisher)
16113d8 Removed redundant .rpcuser, .rpcpassword (wintercooled)
370e797 Changed config file to work with new core v0.17 format as well as previous versions (wintercooled)
Pull request description:
Core v0.17 now handles config file settings differently and loads the existing config settings as mainnet and not regtest. This means our e1 and e2 nodes in the tutorial can't connect.
This PR makes the bitcoin.conf file compatible with both formats. Without this change the tutorial code fails if you are using bitcoind v0.17.0.0.
REF: https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.17.0.md
If the following options are not in a section, they will only apply to mainnet:
`addnode=`, `connect=`, `port=`, `bind=`, `rpcport=`, `rpcbind=` and `wallet=`.
The options to choose a network (`regtest=` and `testnet=`) must be specified
outside of sections.
Tested with bitcoind v0.16.2.0 and v0.17.0.0
Tree-SHA512: 3136703da17570e410c1e86ab31f3ac0bca60847164dd10e75a57affd1b7b67fdfbba2be5437ad9ffdd5428c10f6d34073d3e746f55dacda858ab47b517cd3fc
61cbc79 changed link name for easier diff (wintercooled)
ef0451d added link to schnorr as research (wintercooled)
2652861 Modified intro text (wintercooled)
f68ba12 Modified what is elements? text (wintercooled)
b0ac198 changed link from github.io to .org (wintercooled)
7b2a331 Amend links to point at new .org site content (wintercooled)