1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-05-08 09:58:46 +00:00

feat(core): Implement PaymentNotification validation.

This commit is contained in:
Andrew Kozlik 2025-04-23 14:23:37 +02:00
parent a008a06015
commit 0cdcfa5e25
2 changed files with 27 additions and 0 deletions

View File

@ -143,6 +143,7 @@ Q(apps.misc.cipher_key_value)
Q(apps.misc.get_ecdh_session_key)
Q(apps.misc.get_entropy)
Q(apps.misc.get_firmware_hash)
Q(apps.misc.payment_notification)
Q(apps.misc.sign_identity)
Q(apps.nostr)
Q(apps.nostr.get_pubkey)
@ -227,6 +228,7 @@ Q(omni)
Q(ownership)
Q(passphrase)
Q(paths)
Q(payment_notification)
Q(payment_request)
Q(pin)
Q(progress)

View File

@ -0,0 +1,25 @@
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from trezor.messages import PaymentNotification, Success
from apps.common.keychain import Keychain
from apps.common.keychain import with_slip44_keychain
@with_slip44_keychain(slip44_id=0, slip21_namespaces=[[b"SLIP-0024"]])
async def payment_notification(msg: PaymentNotification, keychain: Keychain) -> Success:
from trezor.messages import Success
from trezor.wire import DataError
from apps.common.payment_request import PaymentRequestVerifier
if msg.payment_req is None:
raise DataError("Missing payment request.")
PaymentRequestVerifier(msg.payment_req, 0, keychain).verify()
# TODO Show payment request memos.
return Success()