Skip to content

Conversation

@nuttycom
Copy link
Contributor

@nuttycom nuttycom commented Jan 9, 2022

Fixes #5433

@nuttycom nuttycom force-pushed the cleanup/sendmany_txbuilder branch 2 times, most recently from 288f35e to c64aa47 Compare January 9, 2022 02:54
@nuttycom nuttycom marked this pull request as ready for review January 9, 2022 02:54
@nuttycom nuttycom requested review from LarryRuane, daira and str4d January 9, 2022 02:54
@nuttycom nuttycom added A-wallet Area: Wallet C-cleanup Category: PRs that clean code up or issues documenting cleanup. A-rpc-interface Area: RPC interface A-wallet-change Area: Change handling within the wallet C-simplification Category: Changes that simplify the protocol specification or consensus rules. NU5 Network upgrade: NU5-specific tasks S-committed Status: Planned work in a sprint labels Jan 9, 2022
@nuttycom nuttycom added this to the Core Sprint 2021-52 milestone Jan 9, 2022
@nuttycom nuttycom force-pushed the cleanup/sendmany_txbuilder branch 5 times, most recently from 2459ab1 to 0454f0f Compare January 11, 2022 16:33
@nuttycom nuttycom force-pushed the cleanup/sendmany_txbuilder branch from 0454f0f to 6db48a1 Compare January 11, 2022 20:25
This replaces the old implementation of asyncrpcoperation_sendmany
with one where all transaction construction is delegated to the
transaction builder. The capabilities of z_sendmany are somewhat
modified in the process:

* z_sendmany now permits sending funds from a Sprout address to
  both transparent and Sapling addresses. PRIVACY NOTE: When
  user sends a Sprout->Sapling transaction, the amount of the
  transaction is publicly revealed.
* z_sendmany no longer supports transactions sending funds into
  the Sprout pool, with the exception of change amounts when
  sending from a Sprout address.
* When sending transparent coinbase funds to a set of shielded
  addresses, the amount sent to recipients must fully consume
  the input value and no change is permitted. This is a slightly
  weaker constraint than was previously implemented; in the past,
  only a single shielded recipient was allowed.
@nuttycom nuttycom force-pushed the cleanup/sendmany_txbuilder branch from 6db48a1 to 9b36a56 Compare January 11, 2022 20:28
@str4d
Copy link
Contributor

str4d commented Jan 12, 2022

CI is currently failing btest.

daira
daira previously approved these changes Jan 12, 2022
Copy link
Contributor

@daira daira left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

utACK modulo comments.

This adds an `allowRevealedAmounts` argument to z_sendmany. This
flag must be present to allow an amount-revealing cross-pool transfer
to be constructed.
nuttycom and others added 3 commits January 12, 2022 10:45
Copy link
Contributor

@str4d str4d left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

utACK de58fc0

Copy link
Contributor

@daira daira left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

utACK de58fc0

@str4d str4d merged commit 423489c into zcash:master Jan 12, 2022
@nuttycom nuttycom deleted the cleanup/sendmany_txbuilder branch January 12, 2022 23:51
LarryRuane pushed a commit to LarryRuane/zcash that referenced this pull request Jan 22, 2022
Use the transaction builder to implement z_sendmany.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-rpc-interface Area: RPC interface A-wallet Area: Wallet A-wallet-change Area: Change handling within the wallet C-cleanup Category: PRs that clean code up or issues documenting cleanup. C-simplification Category: Changes that simplify the protocol specification or consensus rules. NU5 Network upgrade: NU5-specific tasks S-committed Status: Planned work in a sprint

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Replace manual construction of Sprout-inclusive transactions in asyncrpcoperation_sendmany.cpp with transaction builder.

3 participants