lbryio / lbry-desktop

A browser and wallet for LBRY, the decentralized, user-controlled content marketplace.
https://lbry.tech
MIT License
3.56k stars 414 forks source link

proper pagination across wallet related calls #3770

Closed tzarebczan closed 4 years ago

tzarebczan commented 4 years ago

At some point we need to bite the bullet and implement proper pagination on our various wallet related calls where we hack around it by passing a large page size. Most importantly, this will improve overall experience by making the calls faster (especially on lbry.tv).

There are also some bugs associated with claim list + reposts + resolve param - they don't get resolved with large lists.

To do this properly in our current form, we'd need these from the SDK: https://github.com/lbryio/lbry-sdk/issues/2404 (so when someone goes into a claim, we don't need to know all their publishes to see if they can edit it)

https://github.com/lbryio/lbry-sdk/issues/1853 (so that someone can filter on supports/tips/channels/etc on transaction history)

https://github.com/lbryio/lbry-sdk/issues/2841 (so we can show tip/support/claim actions on transaction list without loading all claims/supports)

tzarebczan commented 4 years ago

Main places we use own claim awareness (outside of transaction list):

tzarebczan commented 4 years ago

Mapping to txo list: All --exclude_internal_transfers (gotta confirm) Send --type=other --is_my_input --is_not_my_output Receive --type=other --is_not_my_input --exclude_internal_transfers Publish (Active) --type=stream, repost --unspent --include_received_tips Publish (History) --type=stream, repost --is_spent(67.3)
Channel (Active) --type=channel --unspent --include_received_tips Channel (History) --type=channel --include_received_tips --is_spent(67.3) Tip (Active) --type=support --unspent --is_my_output --is_not_my_input Tip (Claimed) --type=support --is_my_output --is_not_my_input Tip (Sent) --type=support --is_my_input --is_not_my_input Support (Staked) --type=support --unspent --is_my_input --is_my_output Support (History) --type=support --is_my_input --is_my_output ---is_spent(67.3) Abandon --type=stream, repost, channel --is_spent(67.3)

We'd then use the "is_spent": true, property to show an action or not (i.e unlock, delete, etc)