-
Notifications
You must be signed in to change notification settings - Fork 725
[RPC] shielded_sendmany from multiple sources + raw_shielded_sendmany #1964
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[RPC] shielded_sendmany from multiple sources + raw_shielded_sendmany #1964
Conversation
fc4f04d to
f7f73b6
Compare
|
Rebased on master. Ready for review. |
f7f73b6 to
c14e152
Compare
Fuzzbawls
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
utACK c14e1528e7693a7143e2a15c938feaed22210035
Now that Build-Commit parts are decoupled, it's redundant.
Also lower the chain height test (since we use nuparams at startup)
c14e152 to
634ddbf
Compare
furszy
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nice work ☕ , code review till b8e28f8 ACK non-inclusive.
furszy
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK 634ddbf and merging..
…chor 60ea1d8 [CI][Tests] Move sapling functional tests to their own list (random-zebra) 03aec32 [Tests] Add sapling_mempool to test_runner and re-sort the list (random-zebra) c3a1fff [Test] Add sapling_mempool functional test (random-zebra) 101978d [RPC] Introduce getbestsaplinganchor to get the most recent sapling root (random-zebra) Pull request description: Based on top of: - [x] #1958 - [x] #1964 This adds a functional test to check the bahavior of sapling transactions with the mempool. Specifically, it verifies the nullifiers/anchor management introduced in #1958: - If a transaction spends a sapling note, already spent by another in-mempool transaction, it's not accepted in the mempool. - Same if it tries to double-spend a note already spent on chain. - If, after disconnecting a block, the sapling merkle tree root changes, any transaction that spends a note referencing the old root must be evicted from the mempool. In order to verify the last point, a simple RPC `getbestsaplinganchor` is introduced in the "blockchain" category. It returns the `pcoinsTip` best anchor. Note: without 1958, the test crashes the node, as two transactions spending the same note can both enter the mempool, but then the assertions in the memory pool consistency checks fail during block creation. ACKs for top commit: furszy: Pretty nice!, code review ACK 60ea1d8 Fuzzbawls: utACK 60ea1d8 Tree-SHA512: c321d7866bec56fca31d48286ac28ae44f27c48232919fd3f66fcc858a558b17cc0580163790c74290f376049fa44391a1033eb582ff9716b502673f535048d6
467b0d8 [Tests] Check delegations with sapling transactions (random-zebra) d412525 [RPC] Add fUseShielded parameter to delegatestake/rawdelegatestake (random-zebra) 847d278 [Trivial] Missing newline in delegatestake (random-zebra) 7440709 [Validation] Don't reject sapling txes with P2CS outputs (random-zebra) Pull request description: Enable pay-to-cold-staking outputs in shielded transactions. Add the option in `delegatestake`/`rawdelegatestake` to spend shielded funds directly to P2CS (without having to unshield them first). Add functional test. Based on top of - [x] #1964 - [x] #1967 - [x] #1969 Starts with `[Validation] Don't reject sapling txes with P2CS outputs` (461d4ea69ea21ea639ae639d4248b4ef28312429) ACKs for top commit: furszy: Looking good, ACK 467b0d8 Fuzzbawls: ACK 467b0d8 Tree-SHA512: 88752fe1550def605b90cc894d0666f5c37dd8f075566e976c8fbfaa6e088ee0c1bb028e1885411b739781fda6ebac12a5c99fc19a06f453e594441ee1e1b599
Add the option to
shielded_sendmanyto automatically select the inputs from any transparent or sapling address (inserting the string"from_transparent"/"from_shielded"instead of the from-address)Create new rpc
raw_shielded_sendmanywhich creates (without committing) the shielded transaction and returns a json object.Update the functional tests.
Based on top of:
Starts with
[Refactor] Introduce CreateShieldedTransaction auxiliary fun for RPC(e014ff32c2f1ac20aa35f8f8cbc4fd588c74c2af)