Merge pull request #669 from kdmukai/verify_p2tr_addresses_v2

[New Feature] Enable basic p2tr address verification
This commit is contained in:
Nick Klockenga
2025-01-22 22:41:08 -05:00
committed by GitHub
2 changed files with 22 additions and 17 deletions
+2 -6
View File
@@ -1722,8 +1722,8 @@ class AddressVerificationStartView(View):
destination = Destination(SeedSelectSeedView, view_args=dict(flow=Controller.FLOW__VERIFY_SINGLESIG_ADDR), skip_current_view=True)
elif self.controller.unverified_address["script_type"] == SettingsConstants.TAPROOT:
# TODO: add Taproot support
return Destination(NotYetImplementedView)
sig_type = SettingsConstants.SINGLE_SIG
destination = Destination(SeedSelectSeedView, view_args=dict(flow=Controller.FLOW__VERIFY_SINGLESIG_ADDR), skip_current_view=True)
derivation_path = embit_utils.get_standard_derivation_path(
network=self.controller.unverified_address["network"],
@@ -1816,10 +1816,6 @@ class SeedAddressVerificationView(View):
self.sig_type = self.controller.unverified_address["sig_type"]
self.network = self.controller.unverified_address["network"]
if self.script_type == SettingsConstants.TAPROOT:
# TODO: Taproot addr verification
return Destination(NotYetImplementedView)
# TODO: This should be in `Seed` or `PSBT` utility class
embit_network = SettingsConstants.map_network_to_embit(self.network)
+20 -11
View File
@@ -257,16 +257,25 @@ class TestToolsFlows(FlowTest):
settings = controller.settings
settings.set_value(SettingsConstants.SETTING__NETWORK, SettingsConstants.REGTEST)
def load_address_into_decoder(view: scan_views.ScanView):
addrs = [
# Native segwit regtest receive addr @ index 6
view.decoder.add_data("bcrt1q4e9q5taxnsvc6m0uxv6h75mkzvnkxeqk6l90u2")
"bcrt1q4e9q5taxnsvc6m0uxv6h75mkzvnkxeqk6l90u2",
self.run_sequence([
FlowStep(MainMenuView, button_data_selection=MainMenuView.TOOLS),
FlowStep(tools_views.ToolsMenuView, button_data_selection=tools_views.ToolsMenuView.VERIFY_ADDRESS),
FlowStep(scan_views.ScanAddressView, before_run=load_address_into_decoder), # simulate read address QR
FlowStep(seed_views.AddressVerificationStartView, is_redirect=True),
FlowStep(seed_views.SeedSelectSeedView, screen_return_value=0),
FlowStep(seed_views.SeedAddressVerificationView),
FlowStep(seed_views.SeedAddressVerificationSuccessView),
])
# Taproot regtest change addr @ index 48
"bcrt1pj5v8ean2hc5lh2djsgfx4j9uc0n67942ngv6q9r49qv88ex5mrwsn3u4f7",
]
for test_addr in addrs:
def load_address_into_decoder(view: scan_views.ScanView):
# Native segwit regtest receive addr @ index 6
view.decoder.add_data(test_addr)
self.run_sequence([
FlowStep(MainMenuView, button_data_selection=MainMenuView.TOOLS),
FlowStep(tools_views.ToolsMenuView, button_data_selection=tools_views.ToolsMenuView.VERIFY_ADDRESS),
FlowStep(scan_views.ScanAddressView, before_run=load_address_into_decoder), # simulate read address QR
FlowStep(seed_views.AddressVerificationStartView, is_redirect=True),
FlowStep(seed_views.SeedSelectSeedView, screen_return_value=0),
FlowStep(seed_views.SeedAddressVerificationView),
FlowStep(seed_views.SeedAddressVerificationSuccessView),
])