Skip to content
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

Replace send-to-self with dual send+receive entries #119

Merged
merged 5 commits into from
Sep 22, 2023

Conversation

luke-jr
Copy link
Member

@luke-jr luke-jr commented Oct 27, 2020

Makes the GUI transaction list more like the RPC, and IMO clearer in general.

As a side effect, this also fixes the GUI entries when a transaction is a net profit to us, but some inputs were also from us.

Originally bitcoin/bitcoin#15115

Has Concept ACKs from @*Empact @*jonasschnelli

@maflcko maflcko changed the title GUI: Replace send-to-self with dual send+receive entries Replace send-to-self with dual send+receive entries Oct 28, 2020
@promag
Copy link
Contributor

promag commented Oct 28, 2020

Concept ACK.

@rebroad
Copy link
Contributor

rebroad commented Mar 29, 2021

@luke-jr what's the difference between raising a pull on this repository vs the bitcoin repository (as per your original 15115 pull request)? Sorry to ask this here but I'm unsure of where best to ask this.

@hebasto
Copy link
Member

hebasto commented Mar 29, 2021

@rebroad

@luke-jr what's the difference between raising a pull on this repository vs the bitcoin repository (as per your original 15115 pull request)? Sorry to ask this here but I'm unsure of where best to ask this.

Moving into the GUI repo was requested explicitly by @fanquake.

@maflcko
Copy link
Contributor

maflcko commented Mar 29, 2021

@hebasto hebasto added the Wallet label Apr 19, 2021
@Rspigler
Copy link
Contributor

Rspigler commented Jul 6, 2021

Concept ACK

@luke-jr
Copy link
Member Author

luke-jr commented Jul 6, 2021

Rebased, ping @Rspigler @promag @Empact @jonasschnelli

@Rspigler
Copy link
Contributor

Rspigler commented Jul 7, 2021

Will build/test tomorrow

Copy link
Contributor

@promag promag left a comment

Choose a reason for hiding this comment

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

Tested ACK and light code review aa744e4. Will post full review.

src/qt/transactionrecord.cpp Outdated Show resolved Hide resolved
@luke-jr
Copy link
Member Author

luke-jr commented Mar 1, 2022

Rebased

@Rspigler
Copy link
Contributor

Rspigler commented Mar 2, 2022

Getting:

terminate called after throwing an instance of 'std::runtime_error'
what(): JSON value is not a string as expected
Aborted

when trying to open bitcoin-qt after compiling 2bb4e30.

Edit: I'm getting this on master too

@hebasto hebasto requested a review from achow101 June 1, 2022 22:38
@hebasto
Copy link
Member

hebasto commented Oct 26, 2022

cc @achow101

@achow101
Copy link
Member

ACK 2bb4e30

Tested that it does indeed split up send-to-self payments.

Copy link
Member

@hebasto hebasto left a comment

Choose a reason for hiding this comment

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

Tested 2bb4e30 on Ubuntu 22.04:

  • the master branch:
    image

  • this PR:
    image

Copy link
Member

@hebasto hebasto left a comment

Choose a reason for hiding this comment

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

The first commit 880b151 fails to compile:

qt/transactionrecord.cpp: In static member function ‘static QList<TransactionRecord> TransactionRecord::decomposeTransaction(const interfaces::WalletTx&)’:
qt/transactionrecord.cpp:46:22: error: ‘ISMINE_NO’ was not declared in this scope; did you mean ‘wallet::ISMINE_NO’?
   46 |         fAllFromMe = ISMINE_NO;
      |                      ^~~~~~~~~
      |                      wallet::ISMINE_NO
In file included from qt/transactionrecord.cpp:10:
./wallet/ismine.h:42:5: note: ‘wallet::ISMINE_NO’ declared here
   42 |     ISMINE_NO         = 0,
      |     ^~~~~~~~~

@hebasto
Copy link
Member

hebasto commented Dec 6, 2022

@luke-jr Are you planning to address #119 (review)?

@DrahtBot
Copy link
Contributor

DrahtBot commented Dec 6, 2022

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Reviews

See the guideline for information on the review process.

Type Reviewers
ACK hebasto
Concept ACK Rspigler
Stale ACK promag, achow101

If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.

Conflicts

No conflicts as of last run.

…g whether a transaction is a send or receive

This changes behaviour (IMO for the better) in the case where some but not all inputs are from us, and the net amount is positive.
If we didn't send it, it can't possibly be change, even if that's the key's purpose
@luke-jr
Copy link
Member Author

luke-jr commented Jun 23, 2023

The first commit 880b151 fails to compile:

Fixed. Remaining commits are identical.

else
{
isminetype fAllToMe = ISMINE_SPENDABLE;
if (fAllFromMe || !any_from_me) {
for (const isminetype mine : wtx.txout_is_mine)
Copy link
Member

Choose a reason for hiding this comment

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

In f3fbe99 "GUI: TransactionRecord: Refactor to turn send-to-self into send+receive pairs"

This for loop seems to be duplicated from the one above. I think this could be refactored so that we don't need to duplicate this work?

Copy link
Member

@hebasto hebasto left a comment

Choose a reason for hiding this comment

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

ACK 099dbe4.

Going to merge it, leaving further improvements for follow-ups.

@hebasto hebasto merged commit b000ed5 into bitcoin-core:master Sep 22, 2023
Frank-GER pushed a commit to syscoin/syscoin that referenced this pull request Sep 25, 2023
@bitcoin-core bitcoin-core deleted a comment from indianfako Sep 26, 2023
sidhujag pushed a commit to syscoin/syscoin that referenced this pull request Sep 26, 2023
ryanofsky added a commit to ryanofsky/libmultiprocess that referenced this pull request Sep 27, 2023
Needed to support vector<bool> txout_is_change field added in
bitcoin-core/gui#119
ryanofsky added a commit to ryanofsky/libmultiprocess that referenced this pull request Sep 27, 2023
Needed to support vector<bool> txout_is_change field added in
bitcoin-core/gui#119
ryanofsky added a commit to chaincodelabs/libmultiprocess that referenced this pull request Sep 27, 2023
1c6fb04 Add support for vector<bool> serialization (Ryan Ofsky)

Pull request description:

  Needed to support `vector<bool>` `txout_is_change` field added in bitcoin-core/gui#119

Top commit has no ACKs.

Tree-SHA512: e7b87a6c52c09631c6effef66f79fa2954e8e5a6e4d17f348dc7295d6c3bd13da29922bd8802dcf5d566c2c72dcfed37da6889cc733850c8479bdd3113e2f6c9
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

9 participants