feat: Silent Payment Address Generation#854
Conversation
|
Strong cACK. But i think would be better to add it as a KruxApp. AFAIK BIP352 has some tracking issue and isn't too stable to implement on firmware. Also, would be nice to have some |
100% agree!
good suggestion, i think it makes more sense to create a proper video once we have the send support. this will help new users to get familiar with silent payment. |
There was a problem hiding this comment.
Tested UX here with dana and silentium. Same outputs on mainnet using *(["abandon] * 11 + ["about"]) mnemonic (fingerprint 73c5da0a).
There's a failed functional test, i believe because the new item add the item stack:
tests/pages/test_menu.py ...F...
...
mocker = <pytest_mock.plugin.MockerFixture object at 0x1114ca9c0>, amigo = None
def test_two_screens_menu(mocker, amigo):
from krux.pages import Menu, MENU_CONTINUE, MENU_EXIT, MENU_SHUTDOWN
from krux.input import (
BUTTON_ENTER,
BUTTON_PAGE,
BUTTON_PAGE_PREV,
SWIPE_UP,
SWIPE_DOWN,
)
...
assert status == MENU_EXIT
> assert ctx.input.wait_for_fastnav_button.call_count == len(BTN_SEQUENCE)
E AssertionError: assert 27 == 13
E + where 27 = <MagicMock name='mock.input.wait_for_fastnav_button' id='4609921712'>.call_count
E + where <MagicMock name='mock.input.wait_for_fastnav_button' id='4609921712'> = <MagicMock name='mock.in
E + where <MagicMock name='mock.input' id='4575737040'> = <MagicMock id='4595040336'>.input
E + and 13 = len([0, 1, 0, 0, 7, 2, ...])
tests/pages/test_menu.py:225: AssertionError
---------------------------------------- Captured stdout call ----------------------------------------
3
click 0 [0]
click 1 [0, 1]
click 1 [0, 1, 1]
click 2 [0, 1, 1, 2]
click 4 [0, 1, 1, 2, 4]
click 0 [0, 1, 1, 2, 4, 0]
[('0', <function test_two_screens_menu.<locals>.<lambda> at 0x110b8fba0>), ('1', <function test_two_screens_menu.<locals>.<lambda> at 0x111b65300>), ('2', <function test_two_screens_menu.<locals>.<lambda> at 0x111b66b60>), ('3', <function test_two_screens_menu.<locals>.<lambda> at 0x111b663e0>), ('4', <function test_two_screens_menu.<locals>.<lambda> at 0x111b66d40>), ('< Back', <function Menu.<lambda> at 0x1114877e0>)]
click 0 [0]
click 1 [0, 1]
click 1 [0, 1, 1]
click 4 [0, 1, 1, 4]
click 0 [0, 1, 1, 4, 0Also i suggest on krux-app to add an item menu that shows the current taproot "classic" address for verification, like in silentium. It would be nice to sign too (but dont know if its a not pushed wip)
|
unfortunately, this is only for receiving... to spend the seed phrase must be entered into external applications, like Dana/Silentium |
idk what's wrong but all the tests are passing perfectly on my end. below are the logs Test Logs |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #854 +/- ##
==========================================
- Coverage 97.31% 97.27% -0.04%
==========================================
Files 83 85 +2
Lines 10573 10648 +75
==========================================
+ Hits 10289 10358 +69
- Misses 284 290 +6 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Had similar error on other branches. I think its a jupyter apple issue :) no error on your side i think. also you need to fix transalations, lint and formatting. Maybe it's worth to re-open this PR on kapps |
I was talking more on |
|
after thinking about it for a while, i think it makes more sense to add this once we have proper receive support with some coordinator integration in place. right now i’m trying to shift my focus more towards implementing SP send support first. |
I agree. |
What is this PR for?
#688, basic support for generating Silent Payment addresses.
NOTE: the actual Silent Payment computation logic should ultimately come from
embit. Once upstream support is finalized, this can be refactored to rely directly on it.For more details, see: diybitcoinhardware/embit#96
Changes made to:
Did you build the code and tested on device?
What is the purpose of this pull request?
2026-04-15.16-39-12.mov