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

Enhance on-chain receive workflow and address type selection #2624

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

myxmaster
Copy link
Contributor

@myxmaster myxmaster commented Dec 12, 2024

Description

These changes

  • improve rendering performance, when clicking Receive in on-chain swipeable row
    • moved selectedIndex initialization to constructor (no more renderings with wrong selectedIndex)
    • added selectedIndex !== 2 condition to prevent unnecessary rendering
  • show SettingsButton instead of ClearButton for selectedIndex=2 (on-chain), because here it makes sense to choose address type (and not going back to create another invoice)
  • enhance addressType modalBox (Receive and InvoiceSettings)
    • 60% height
    • scrollable content for longer translations
    • prevents unnecessary updates when same address type is selected
    • Receive only: automatically generates new on-chain address when new address type is picked

This pull request is categorized as a:

  • New feature
  • Bug fix
  • Code refactor
  • Configuration change
  • Locales update
  • Quality assurance
  • Other

Checklist

  • I’ve run yarn run tsc and made sure my code compiles correctly
  • I’ve run yarn run lint and made sure my code didn’t contain any problematic patterns
  • I’ve run yarn run prettier and made sure my code is formatted correctly
  • I’ve run yarn run test and made sure all of the tests pass

Testing

If you modified or added a utility file, did you add new unit tests?

  • No, I’m a fool
  • Yes
  • N/A

I have tested this PR on the following platforms (please specify OS version and phone model/VM):

  • Android
  • iOS

I have tested this PR with the following types of nodes (please specify node version and API version where appropriate):

  • Embedded LND
  • LND (REST)
  • LND (Lightning Node Connect)
  • Core Lightning (CLNRest)
  • LndHub
  • [DEPRECATED] Core Lightning (c-lightning-REST)
  • [DEPRECATED] Core Lightning (Spark)
  • [DEPRECATED] Eclair

Locales

  • I’ve added new locale text that requires translations
  • I’m aware that new translations should be made on the ZEUS Transfix page and not directly to this repo

Third Party Dependencies and Packages

  • Contributors will need to run yarn after this PR is merged in
  • 3rd party dependencies have been modified:
    • verify that package.json and yarn.lock have been properly updated
    • verify that dependencies are installed for both iOS and Android platforms

Other:

  • Changes were made that require an update to the README
  • Changes were made that require an update to onboarding

@myxmaster myxmaster force-pushed the improve-on-chain-receive-rendering branch from 7647112 to 3781ae0 Compare December 12, 2024 12:40
Copy link
Contributor

@kaloudis kaloudis left a comment

Choose a reason for hiding this comment

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

there's a bug. Go to Receive. Select an address type. Autogenerate triggers but no invoice or QR is displayed

@myxmaster myxmaster force-pushed the improve-on-chain-receive-rendering branch from 3781ae0 to b856a95 Compare December 17, 2024 19:01
@myxmaster myxmaster requested a review from kaloudis December 17, 2024 19:01
@myxmaster myxmaster force-pushed the improve-on-chain-receive-rendering branch from b856a95 to 0009626 Compare December 19, 2024 15:06
views/Receive.tsx Outdated Show resolved Hide resolved
…electedIndex

- for on-chain->receive: replace ClearButton with SettingsButton and do not render LN invoice items

addressType modalBox:
- use ScrollView
- do nothing if same address type as before is picked (also in InvoiceSettings.tsx)
- Receive.tsx: autoGenerateOnChainAddress if new address type is picked
@myxmaster myxmaster force-pushed the improve-on-chain-receive-rendering branch from 0009626 to 23c53ca Compare December 19, 2024 20:19
@myxmaster myxmaster requested a review from kaloudis December 19, 2024 20:26
Copy link
Contributor

@kaloudis kaloudis left a comment

Choose a reason for hiding this comment

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

There's another bug here:

When creating a new address from an external account, users are still allowed to change the address type, even though external accounts have fixed address types.

To make matters worse, the newly generated addresses come from the internal on-chain wallet but the label above the QR persists with the external account label.

@myxmaster
Copy link
Contributor Author

SettingsButton now hidden for external accounts entirely.
-> Tested with an external account on regtest, it generates addresses for the external account only, not for the internal. I think you triggered that bug by changing address type for the external address...?

@myxmaster myxmaster requested a review from kaloudis December 23, 2024 19:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants