refactor(core): replace hexlify with bytes.hex()
What changed, and why it matters
This is a large but straightforward internal cleanup: the project switched from using the MicroPython `ubinascii` module's `hexlify`/`unhexlify` functions to the standard Python `bytes.hex()` and `bytes.fromhex()` methods. The change removes the `ubinascii` module from the firmware build and updates many source and test files to use the new built-in methods. There is no security fix or vulnerability being patched here.
No security action required. Treat as a normal refactor; verify tests pass and that no remaining runtime dependency on `ubinascii` exists.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The commit refactors the Trezor Core firmware to use MicroPython’s built-in bytes.hex() / bytes.fromhex() / bytearray.hex() instead of the ubinascii.hexlify() / ubinascii.unhexlify() C module. It disables MICROPY_PY_UBINASCII in both firmware and unix port configs, enables MICROPY_PY_BUILTINS_BYTES_HEX, removes modubinascii.c from the build, deletes the ubinascii.pyi mock stubs, and mechanically replaces calls across ~120 files. The functional behavior (hex encoding/decoding) is identical; this is a code-size and dependency-simplification refactor.
Changed components
core/SConscript.firmwarecore/SConscript.unixcore/embed/projects/firmware/mpconfigport.hcore/embed/projects/unix/mpconfigport.hcore/embed/upymod/build.rscore/mocks/ubinascii.pyicore/src/apps/bitcoin/sign_tx/layout.pycore/src/apps/cardano/get_public_key.pycore/src/apps/common/signverify.pycore/src/apps/ethereum/*core/src/apps/management/reboot_to_bootloader.pycore/src/apps/nostr/sign_event.pycore/src/apps/stellar/*core/src/apps/tron/sc_constants.pycore/src/apps/webauthn/credential.pycore/src/storage/device.pycore/src/trezor/crypto/base32.pycore/src/trezor/utils.pycore/src/trezor/wire/thp/pairing_context.pycore/tests/*Inspect captured patch +1334 / −1383
diff --git a/core/SConscript.firmware b/core/SConscript.firmware
index f87288cb..13b7758c 100644
--- a/core/SConscript.firmware
+++ b/core/SConscript.firmware
@@ -323,7 +323,6 @@ SOURCE_MOD += [
]
SOURCE_MICROPYTHON = [
- 'vendor/micropython/extmod/modubinascii.c',
'vendor/micropython/extmod/moductypes.c',
'vendor/micropython/extmod/moduheapq.c',
'vendor/micropython/extmod/modutimeq.c',
diff --git a/core/SConscript.unix b/core/SConscript.unix
index ac5ce199..64ebdc56 100644
--- a/core/SConscript.unix
+++ b/core/SConscript.unix
@@ -305,7 +305,6 @@ SOURCE_MOD += [
]
SOURCE_MICROPYTHON = [
- 'vendor/micropython/extmod/modubinascii.c',
'vendor/micropython/extmod/moductypes.c',
'vendor/micropython/extmod/moduheapq.c',
'vendor/micropython/extmod/moduos.c',
diff --git a/core/embed/projects/firmware/mpconfigport.h b/core/embed/projects/firmware/mpconfigport.h
index 5928bc3b..f5e6d4c3 100644
--- a/core/embed/projects/firmware/mpconfigport.h
+++ b/core/embed/projects/firmware/mpconfigport.h
@@ -92,6 +92,7 @@
#define MICROPY_PY_FUNCTION_ATTRS (1)
#define MICROPY_PY_DESCRIPTORS (0)
#define MICROPY_PY_DELATTR_SETATTR (0)
+#define MICROPY_PY_BUILTINS_BYTES_HEX (1)
#define MICROPY_PY_BUILTINS_STR_UNICODE (1)
#define MICROPY_PY_BUILTINS_STR_CENTER (0)
#define MICROPY_PY_BUILTINS_STR_PARTITION (1)
@@ -146,7 +147,7 @@
#define MICROPY_PY_UHASHLIB_MD5 (0)
#define MICROPY_PY_UHASHLIB_SHA1 (0)
#define MICROPY_PY_UCRYPTOLIB (0)
-#define MICROPY_PY_UBINASCII (1)
+#define MICROPY_PY_UBINASCII (0)
#define MICROPY_PY_UBINASCII_CRC32 (0)
#define MICROPY_PY_URANDOM (0)
#define MICROPY_PY_URANDOM_EXTRA_FUNCS (0)
diff --git a/core/embed/projects/unix/mpconfigport.h b/core/embed/projects/unix/mpconfigport.h
index 18e5e9bd..7ac33e30 100644
--- a/core/embed/projects/unix/mpconfigport.h
+++ b/core/embed/projects/unix/mpconfigport.h
@@ -101,6 +101,7 @@
#define MICROPY_PY_FUNCTION_ATTRS (1)
#define MICROPY_PY_DESCRIPTORS (0)
#define MICROPY_PY_DELATTR_SETATTR (0)
+#define MICROPY_PY_BUILTINS_BYTES_HEX (1)
#define MICROPY_PY_BUILTINS_STR_UNICODE (1)
#define MICROPY_PY_BUILTINS_STR_CENTER (0)
#define MICROPY_PY_BUILTINS_STR_PARTITION (1)
@@ -161,7 +162,7 @@
#define MICROPY_PY_UHASHLIB_MD5 (0)
#define MICROPY_PY_UHASHLIB_SHA1 (0)
#define MICROPY_PY_UCRYPTOLIB (0)
-#define MICROPY_PY_UBINASCII (1)
+#define MICROPY_PY_UBINASCII (0)
#define MICROPY_PY_UBINASCII_CRC32 (0)
#define MICROPY_PY_URANDOM (0)
#define MICROPY_PY_URANDOM_EXTRA_FUNCS (0)
diff --git a/core/embed/upymod/build.rs b/core/embed/upymod/build.rs
index 3b231c3c..bbbafee7 100644
--- a/core/embed/upymod/build.rs
+++ b/core/embed/upymod/build.rs
@@ -129,7 +129,6 @@ fn main() -> Result<()> {
lib.add_sources_in_dir(
mpy_dir,
[
- "extmod/modubinascii.c",
"extmod/moduheapq.c",
"extmod/modutimeq.c",
"extmod/utime_mphal.c",
diff --git a/core/mocks/generated/ubinascii.pyi b/core/mocks/generated/ubinascii.pyi
deleted file mode 120000
index b129e0ce..00000000
--- a/core/mocks/generated/ubinascii.pyi
+++ /dev/null
@@ -1 +0,0 @@
-../ubinascii.pyi
\ No newline at end of file
diff --git a/core/mocks/ubinascii.pyi b/core/mocks/ubinascii.pyi
deleted file mode 100644
index 969d21dd..00000000
--- a/core/mocks/ubinascii.pyi
+++ /dev/null
@@ -1,7 +0,0 @@
-from buffer_types import AnyBytes, StrOrBytes
-
-def hexlify(data: AnyBytes, sep: AnyBytes = ...) -> bytes: ...
-def unhexlify(data: StrOrBytes) -> bytes: ...
-def a2b_base64(data: AnyBytes) -> bytes: ...
-def b2a_base64(data: AnyBytes) -> bytes: ...
-def crc32(data: AnyBytes, crc: int = ...) -> int: ...
diff --git a/core/src/apps/bitcoin/sign_tx/layout.py b/core/src/apps/bitcoin/sign_tx/layout.py
index a4640709..2f2b0ebc 100644
--- a/core/src/apps/bitcoin/sign_tx/layout.py
+++ b/core/src/apps/bitcoin/sign_tx/layout.py
@@ -226,11 +226,9 @@ async def show_payment_request_details(
async def confirm_replacement(title: str, txid: AnyBytes) -> None:
- from ubinascii import hexlify
-
await layouts.confirm_replacement(
title,
- hexlify(txid).decode(),
+ txid.hex(),
)
diff --git a/core/src/apps/cardano/get_public_key.py b/core/src/apps/cardano/get_public_key.py
index 1a4bb850..f0726db8 100644
--- a/core/src/apps/cardano/get_public_key.py
+++ b/core/src/apps/cardano/get_public_key.py
@@ -1,5 +1,4 @@
from typing import TYPE_CHECKING
-from ubinascii import hexlify
from trezor import TR
@@ -55,8 +54,8 @@ def _get_public_key(
node = keychain.derive(derivation_path)
- public_key = hexlify(derive_public_key(keychain, derivation_path)).decode()
- chain_code = hexlify(node.chain_code()).decode()
+ public_key = derive_public_key(keychain, derivation_path).hex()
+ chain_code = node.chain_code().hex()
xpub_key = public_key + chain_code
node_type = HDNodeType(
diff --git a/core/src/apps/common/signverify.py b/core/src/apps/common/signverify.py
index 2511aba6..22874549 100644
--- a/core/src/apps/common/signverify.py
+++ b/core/src/apps/common/signverify.py
@@ -29,12 +29,10 @@ def message_digest(coin: CoinInfo, message: AnyBytes) -> bytes:
def decode_message(message: AnyBytes) -> str:
- from ubinascii import hexlify
-
try:
return bytes(message).decode()
except UnicodeError:
- return f"hex({hexlify(message).decode()})"
+ return f"hex({message.hex()})"
def is_printable_ascii(bytestring: AnyBytes) -> bool:
diff --git a/core/src/apps/ethereum/clear_signing.py b/core/src/apps/ethereum/clear_signing.py
index c57d718f..ca100e73 100644
--- a/core/src/apps/ethereum/clear_signing.py
+++ b/core/src/apps/ethereum/clear_signing.py
@@ -465,9 +465,7 @@ class RawFormatter(FieldFormatter):
elif isinstance(value, str):
return value, None, None
elif isinstance(value, (bytes, bytearray)):
- from ubinascii import hexlify
-
- return hexlify(value).decode(), None, None
+ return value.hex(), None, None
elif isinstance(value, bool):
return str(value), None, None
elif isinstance(value, int):
@@ -1251,8 +1249,6 @@ async def _expand_one_subcall(
def raw_rows() -> list[DisplayedField]:
"""No subparsing. Show the callee and the raw hex blob."""
- from ubinascii import hexlify
-
to_label = TR.ethereum__subcall_to
blob_label = field_definition.label
if index is not None:
@@ -1260,7 +1256,7 @@ async def _expand_one_subcall(
blob_label = f"({subcall}) {blob_label}"
return [
((to_label, callee_str(), None), None, None),
- ((blob_label, hexlify(blob).decode(), None), None, None),
+ ((blob_label, blob.hex(), None), None, None),
]
if nested:
diff --git a/core/src/apps/ethereum/get_public_key.py b/core/src/apps/ethereum/get_public_key.py
index c39061d3..ea081d4f 100644
--- a/core/src/apps/ethereum/get_public_key.py
+++ b/core/src/apps/ethereum/get_public_key.py
@@ -5,8 +5,6 @@ if TYPE_CHECKING:
async def get_public_key(msg: EthereumGetPublicKey) -> EthereumPublicKey:
- from ubinascii import hexlify
-
from trezor.messages import EthereumPublicKey, GetPublicKey
from trezor.ui.layouts import show_pubkey
@@ -17,6 +15,6 @@ async def get_public_key(msg: EthereumGetPublicKey) -> EthereumPublicKey:
resp = await bitcoin_get_public_key.get_public_key(btc_pubkey_msg)
if msg.show_display:
- await show_pubkey(hexlify(resp.node.public_key).decode())
+ await show_pubkey(resp.node.public_key.hex())
return EthereumPublicKey(node=resp.node, xpub=resp.xpub)
diff --git a/core/src/apps/ethereum/helpers.py b/core/src/apps/ethereum/helpers.py
index 5ce2c271..b36f16ee 100644
--- a/core/src/apps/ethereum/helpers.py
+++ b/core/src/apps/ethereum/helpers.py
@@ -1,5 +1,4 @@
from typing import TYPE_CHECKING
-from ubinascii import hexlify
from trezor import TR
@@ -36,7 +35,7 @@ def address_from_bytes(
else:
prefix = ""
- address_hex = hexlify(address_bytes)
+ address_hex = address_bytes.hex().encode()
writer = keccak256(prefix.encode())
writer.extend(address_hex)
digest = writer.get_digest()
@@ -60,17 +59,15 @@ def address_from_bytes(
def bytes_from_address(address: str) -> bytes:
- from ubinascii import unhexlify
-
from trezor import wire
if len(address) == 40:
- return unhexlify(address)
+ return bytes.fromhex(address)
elif len(address) == 42:
if address[0:2] not in ("0x", "0X"):
raise wire.ProcessError("Ethereum: invalid beginning of an address")
- return unhexlify(address[2:])
+ return bytes.fromhex(address[2:])
elif len(address) == 0:
return bytes()
@@ -121,7 +118,7 @@ def get_type_name(field: EthereumFieldType) -> str:
def decode_typed_data(data: AnyBytes, type_name: str) -> str:
"""Used by sign_typed_data module to show data to user."""
if type_name.startswith("bytes"):
- return hexlify(data).decode()
+ return data.hex()
elif type_name == "string":
return bytes(data).decode()
elif type_name == "address":
diff --git a/core/src/apps/ethereum/layout.py b/core/src/apps/ethereum/layout.py
index 38fe10ba..ba32de4a 100644
--- a/core/src/apps/ethereum/layout.py
+++ b/core/src/apps/ethereum/layout.py
@@ -1,5 +1,4 @@
from typing import TYPE_CHECKING
-from ubinascii import hexlify
from trezor import TR
from trezor.enums import ButtonRequestType
@@ -290,7 +289,7 @@ async def require_confirm_vault_tx(
account, account_path = get_account_and_path(address_n)
extra_data_str: str | None = (
- "0x" + hexlify(extra_data).decode() if extra_data is not None else None
+ "0x" + extra_data.hex() if extra_data is not None else None
)
await confirm_ethereum_vault_tx(
@@ -402,11 +401,9 @@ def require_confirm_address(
br_name: str | None = None,
footer: str | None = None,
) -> Awaitable[None]:
- from ubinascii import hexlify
-
from trezor.ui.layouts import confirm_address
- address_hex = "0x" + hexlify(address_bytes).decode()
+ address_hex = "0x" + address_bytes.hex()
return confirm_address(
title or TR.ethereum__title_signing_address,
address_hex,
@@ -419,11 +416,9 @@ def require_confirm_address(
async def confirm_message_hash(message_hash: bytes) -> None:
- from ubinascii import hexlify
-
from trezor.ui.layouts import confirm_value
- message_hash_hex = "0x" + hexlify(message_hash).decode()
+ message_hash_hex = "0x" + message_hash.hex()
await confirm_value(
TR.ethereum__title_confirm_message_hash,
diff --git a/core/src/apps/ethereum/sc_constants.py.mako b/core/src/apps/ethereum/sc_constants.py.mako
index 75839b19..17f1f013 100644
--- a/core/src/apps/ethereum/sc_constants.py.mako
+++ b/core/src/apps/ethereum/sc_constants.py.mako
@@ -5,10 +5,8 @@
from typing import Iterator
<%
-from binascii import unhexlify
-
def fmt_addr(addr_hex: str) -> str:
- data = "".join(f'\\x{b:02x}' for b in unhexlify(addr_hex))
+ data = "".join(f'\\x{b:02x}' for b in bytes.fromhex(addr_hex))
return f'b"{data}"'
diff --git a/core/src/apps/ethereum/staking.py b/core/src/apps/ethereum/staking.py
index e02a1681..94218296 100644
--- a/core/src/apps/ethereum/staking.py
+++ b/core/src/apps/ethereum/staking.py
@@ -1,5 +1,4 @@
from typing import TYPE_CHECKING
-from ubinascii import unhexlify
from trezor.utils import BufferReader
from trezor.wire import DataError
@@ -13,18 +12,18 @@ if TYPE_CHECKING:
from .keychain import MsgInSignTx
-FUNC_SIG_STAKE = unhexlify("3a29dbae")
-FUNC_SIG_UNSTAKE = unhexlify("76ec871c")
-FUNC_SIG_CLAIM = unhexlify("33986ffa")
+FUNC_SIG_STAKE = b"\x3a\x29\xdb\xae"
+FUNC_SIG_UNSTAKE = b"\x76\xec\x87\x1c"
+FUNC_SIG_CLAIM = b"\x33\x98\x6f\xfa"
# addresses for pool (stake/unstake) and accounting (claim) operations
ADDRESSES_POOL = (
- unhexlify("AFA848357154a6a624686b348303EF9a13F63264"), # Hoodi testnet
- unhexlify("D523794C879D9eC028960a231F866758e405bE34"), # mainnet
+ b"\xaf\xa8\x48\x35\x71\x54\xa6\xa6\x24\x68\x6b\x34\x83\x03\xef\x9a\x13\xf6\x32\x64", # Hoodi testnet
+ b"\xd5\x23\x79\x4c\x87\x9d\x9e\xc0\x28\x96\x0a\x23\x1f\x86\x67\x58\xe4\x05\xbe\x34", # mainnet
)
ADDRESSES_ACCOUNTING = (
- unhexlify("624087DD1904ab122A32878Ce9e933C7071F53B9"), # Hoodi testnet
- unhexlify("7a7f0b3c23C23a31cFcb0c44709be70d4D545c6e"), # mainnet
+ b"\x62\x40\x87\xdd\x19\x04\xab\x12\x2a\x32\x87\x8c\xe9\xe9\x33\xc7\x07\x1f\x53\xb9", # Hoodi testnet
+ b"\x7a\x7f\x0b\x3c\x23\xc2\x3a\x31\xcf\xcb\x0c\x44\x70\x9b\xe7\x0d\x4d\x54\x5c\x6e", # mainnet
)
diff --git a/core/src/apps/management/reboot_to_bootloader.py b/core/src/apps/management/reboot_to_bootloader.py
index e712594d..f62ced50 100644
--- a/core/src/apps/management/reboot_to_bootloader.py
+++ b/core/src/apps/management/reboot_to_bootloader.py
@@ -13,8 +13,6 @@ _REBOOT_SUCCESS_TIMEOUT_MS = const(500)
async def install_upgrade(firmware_header: AnyBytes) -> AnyBytes:
- from ubinascii import hexlify
-
from trezor import TR, utils, wire
from trezor.ui.layouts import confirm_firmware_update
@@ -38,7 +36,7 @@ async def install_upgrade(firmware_header: AnyBytes) -> AnyBytes:
description=TR.reboot_to_bootloader__version_by_template.format(
version_str, hdr.vendor
),
- fingerprint=hexlify(hdr.fingerprint).decode(),
+ fingerprint=hdr.fingerprint.hex(),
)
return hdr.hash
diff --git a/core/src/apps/nostr/sign_event.py b/core/src/apps/nostr/sign_event.py
index d061a4de..41141d82 100644
--- a/core/src/apps/nostr/sign_event.py
+++ b/core/src/apps/nostr/sign_event.py
@@ -10,8 +10,6 @@ if TYPE_CHECKING:
@auto_keychain(__name__)
async def sign_event(msg: NostrSignEvent, keychain: Keychain) -> NostrEventSignature:
- from ubinascii import hexlify
-
from trezor import TR
from trezor.crypto.curve import bip340
from trezor.crypto.hashlib import sha256
@@ -46,7 +44,9 @@ async def sign_event(msg: NostrSignEvent, keychain: Keychain) -> NostrEventSigna
]
await confirm_value(title, content, "", "nostr_sign_event", info_items=info_items)
- serialized_event = f'[0,"{hexlify(pk).decode()}",{created_at},{kind},[{serialized_tags}],"{content}"]'
+ serialized_event = (
+ f'[0,"{pk.hex()}",{created_at},{kind},[{serialized_tags}],"{content}"]'
+ )
event_id = sha256(serialized_event).digest()
# The event signature is basically the signature of the event ID computed above
diff --git a/core/src/apps/stellar/layout.py b/core/src/apps/stellar/layout.py
index b4affe8a..b45bbd04 100644
--- a/core/src/apps/stellar/layout.py
+++ b/core/src/apps/stellar/layout.py
@@ -1,5 +1,4 @@
from typing import TYPE_CHECKING
-from ubinascii import hexlify
import trezor.ui.layouts as layouts
from trezor import TR, strings, wire
@@ -394,7 +393,7 @@ def _format_sc_val(val: StellarSCVal) -> str:
elif t == StellarSCValType.SCV_BYTES:
if val.bytes is None:
raise DataError("Stellar: missing bytes value")
- return "0x" + hexlify(val.bytes).decode()
+ return "0x" + val.bytes.hex()
elif t == StellarSCValType.SCV_STRING:
if val.string is None:
raise DataError("Stellar: missing string value")
@@ -404,7 +403,7 @@ def _format_sc_val(val: StellarSCVal) -> str:
try:
return f'"{_escape_str(bytes(val.string).decode())}"'
except UnicodeError:
- return "0x" + hexlify(val.string).decode()
+ return "0x" + val.string.hex()
elif t == StellarSCValType.SCV_SYMBOL:
if val.symbol is None:
raise DataError("Stellar: missing symbol value")
diff --git a/core/src/apps/stellar/operations/layout.py b/core/src/apps/stellar/operations/layout.py
index 96b48533..e6fd66aa 100644
--- a/core/src/apps/stellar/operations/layout.py
+++ b/core/src/apps/stellar/operations/layout.py
@@ -1,5 +1,4 @@
from typing import TYPE_CHECKING
-from ubinascii import hexlify
from trezor import TR
from trezor.ui.layouts import (
@@ -381,7 +380,7 @@ async def confirm_set_options_op(op: StellarSetOptionsOp) -> None:
async def confirm_claim_claimable_balance_op(
op: StellarClaimClaimableBalanceOp,
) -> None:
- balance_id = hexlify(op.balance_id).decode()
+ balance_id = op.balance_id.hex()
await confirm_properties(
"op_claim_claimable_balance",
TR.stellar__claim_claimable_balance,
diff --git a/core/src/apps/stellar/sign_tx.py b/core/src/apps/stellar/sign_tx.py
index f694d7f0..ef24d406 100644
--- a/core/src/apps/stellar/sign_tx.py
+++ b/core/src/apps/stellar/sign_tx.py
@@ -14,8 +14,6 @@ if TYPE_CHECKING:
*[PATTERN], slip44_id=SLIP44_ID, curve=CURVE, slip21_namespaces=[[b"SLIP-0024"]]
)
async def sign_tx(msg: StellarSignTx, keychain: Slip21Keychain) -> StellarSignedTx:
- from ubinascii import hexlify
-
from trezor import TR
from trezor.crypto.curve import ed25519
from trezor.crypto.hashlib import sha256
@@ -105,7 +103,7 @@ async def sign_tx(msg: StellarSignTx, keychain: Slip21Keychain) -> StellarSigned
if msg.memo_hash is None:
raise DataError("Stellar: Missing memo hash")
writers.write_bytes_fixed(w, bytearray(msg.memo_hash), 32)
- memo_confirm_text = hexlify(msg.memo_hash).decode()
+ memo_confirm_text = msg.memo_hash.hex()
else:
raise ProcessError("Stellar invalid memo type")
diff --git a/core/src/apps/tron/sc_constants.py b/core/src/apps/tron/sc_constants.py
index dd8d0205..964095ee 100644
--- a/core/src/apps/tron/sc_constants.py
+++ b/core/src/apps/tron/sc_constants.py
@@ -1,5 +1,4 @@
from micropython import const
-from ubinascii import unhexlify
# smart contract 'data' field lengths in bytes
SC_FUNC_SIG_BYTES = const(4)
@@ -10,5 +9,5 @@ assert SC_ARGUMENT_ADDRESS_BYTES <= SC_ARGUMENT_BYTES
# Known TRC-20/ERC-20 functions
-SC_FUNC_SIG_TRANSFER = unhexlify("a9059cbb")
-SC_FUNC_SIG_APPROVE = unhexlify("095ea7b3")
+SC_FUNC_SIG_TRANSFER = b"\xa9\x05\x9c\xbb"
+SC_FUNC_SIG_APPROVE = b"\x09\x5e\xa7\xb3"
diff --git a/core/src/apps/webauthn/credential.py b/core/src/apps/webauthn/credential.py
index 355ce7ed..0193344d 100644
--- a/core/src/apps/webauthn/credential.py
+++ b/core/src/apps/webauthn/credential.py
@@ -1,7 +1,6 @@
import ustruct
from micropython import const
from typing import TYPE_CHECKING
-from ubinascii import hexlify
import storage.device as storage_device
from trezor import utils
@@ -301,7 +300,7 @@ class Fido2Credential(Credential):
elif self.user_display_name:
return self.user_display_name
elif self.user_id:
- return hexlify(self.user_id).decode()
+ return self.user_id.hex()
else:
return None
@@ -439,8 +438,8 @@ class U2fCredential(Credential):
if app is not None:
return app.label
- start = hexlify(self.rp_id_hash[:4]).decode()
- end = hexlify(self.rp_id_hash[-4:]).decode()
+ start = self.rp_id_hash[:4].hex()
+ end = self.rp_id_hash[-4:].hex()
return f"{start}...{end}"
@staticmethod
diff --git a/core/src/storage/device.py b/core/src/storage/device.py
index 343de482..29125fb3 100644
--- a/core/src/storage/device.py
+++ b/core/src/storage/device.py
@@ -103,12 +103,11 @@ def is_initialized() -> bool:
def get_device_id() -> str:
from trezorcrypto import random # avoid pulling in trezor.crypto
- from ubinascii import hexlify
dev_id = common.get(_NAMESPACE, DEVICE_ID, public=True)
if not dev_id:
# _new_device_id
- new_dev_id_str = hexlify(random.bytes(12)).decode().upper()
+ new_dev_id_str = random.bytes(12).hex().upper()
dev_id = new_dev_id_str.encode()
common.set(_NAMESPACE, DEVICE_ID, dev_id, public=True)
return dev_id.decode()
diff --git a/core/src/trezor/crypto/base32.py b/core/src/trezor/crypto/base32.py
index 49360665..575a195b 100644
--- a/core/src/trezor/crypto/base32.py
+++ b/core/src/trezor/crypto/base32.py
@@ -58,8 +58,6 @@ def encode(s: AnyBytes) -> str:
def decode(s: str) -> bytes:
- from ubinascii import unhexlify
-
data = s.encode()
_, leftover = divmod(len(data), 8)
if leftover:
@@ -85,11 +83,11 @@ def decode(s: str) -> bytes:
acc += _b32rev[c] << shift
shift -= 5
if shift < 0:
- parts.append(unhexlify((f"{acc:010x}").encode()))
+ parts.append(bytes.fromhex(f"{acc:010x}"))
acc = 0
shift = 35
# Process the last, partial quanta
- last = unhexlify(bytes(f"{acc:010x}", "ascii"))
+ last = bytes.fromhex(f"{acc:010x}")
if padchars == 0:
last = b"" # No characters
elif padchars == 1:
diff --git a/core/src/trezor/utils.py b/core/src/trezor/utils.py
index 0e49c436..3add64b3 100644
--- a/core/src/trezor/utils.py
+++ b/core/src/trezor/utils.py
@@ -236,14 +236,10 @@ if False: # noqa
self.data = ""
def update(self, data: bytes) -> None:
- from ubinascii import hexlify
-
self.ctx.update(data)
- self.data += hexlify(data).decode() + " "
+ self.data += data.hex() + " "
def digest(self) -> bytes:
- from ubinascii import hexlify
-
from trezor import log
digest = self.ctx.digest()
@@ -251,7 +247,7 @@ if False: # noqa
__name__,
"%s hash: %s, data: %s",
self.ctx.__class__.__name__,
- hexlify(digest).decode(),
+ digest.hex(),
self.data,
)
return digest
@@ -410,9 +406,7 @@ def hexlify_if_bytes(data: str | bytes | bytearray | memoryview) -> str:
if isinstance(data, str):
return data
elif isinstance(data, (bytes, bytearray, memoryview)):
- from ubinascii import hexlify
-
- return hexlify(data).decode()
+ return data.hex()
else:
raise TypeError("Expected str, bytes, bytearray, or memoryview")
diff --git a/core/src/trezor/wire/thp/pairing_context.py b/core/src/trezor/wire/thp/pairing_context.py
index 38ccd449..bd0c5eea 100644
--- a/core/src/trezor/wire/thp/pairing_context.py
+++ b/core/src/trezor/wire/thp/pairing_context.py
@@ -1,5 +1,4 @@
from typing import TYPE_CHECKING
-from ubinascii import hexlify
from trezor import loop, protobuf, workflow
from trezor.wire import context, message_handler, protocol_common
@@ -167,7 +166,7 @@ class PairingContext(Context):
def _get_code_qr_code_str(self) -> str:
if self.code_qr_code is not None:
- code_str = (hexlify(self.code_qr_code)).decode("utf-8")
+ code_str = self.code_qr_code.hex()
if __debug__:
log.debug(
__name__, "code_qr_code_hexlified: %s", code_str, iface=self.iface
diff --git a/core/tests/common.py b/core/tests/common.py
index cbb67e85..f9c8ad39 100644
--- a/core/tests/common.py
+++ b/core/tests/common.py
@@ -1,6 +1,5 @@
import unittest # noqa: F401
from typing import Any, Awaitable
-from ubinascii import hexlify, unhexlify # noqa: F401
from trezor import utils # noqa: F401
from trezor.wire import context
diff --git a/core/tests/ethereum_common.py b/core/tests/ethereum_common.py
index 407e0baa..7101d17d 100644
--- a/core/tests/ethereum_common.py
+++ b/core/tests/ethereum_common.py
@@ -1,5 +1,3 @@
-from ubinascii import unhexlify # noqa: F401
-
from trezor import messages, protobuf
from trezor.crypto import cosi
from trezor.crypto.curve import ed25519
diff --git a/core/tests/test_apps.bitcoin.address.py b/core/tests/test_apps.bitcoin.address.py
index a6ebbe41..70791905 100644
--- a/core/tests/test_apps.bitcoin.address.py
+++ b/core/tests/test_apps.bitcoin.address.py
@@ -31,7 +31,7 @@ class TestAddress(unittest.TestCase):
def test_p2wpkh_in_p2sh_address(self):
coin = coins.by_name("Testnet")
address = address_p2wpkh_in_p2sh(
- unhexlify(
+ bytes.fromhex(
"03a1af804ac108a8a51782198c2d034b28bf90c8803f5a53f76276fa69a4eae77f"
),
coin,
@@ -62,7 +62,7 @@ class TestAddress(unittest.TestCase):
# test data from https://bc-2.jp/tools/bech32demo/index.html
coin = coins.by_name("Testnet")
address = address_p2wpkh(
- unhexlify(
+ bytes.fromhex(
"0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"
),
coin,
@@ -73,7 +73,7 @@ class TestAddress(unittest.TestCase):
coin = coins.by_name("Testnet")
address = address_p2sh(
- unhexlify("7a55d61848e77ca266e79a39bfc85c580a6426c9"), coin
+ bytes.fromhex("7a55d61848e77ca266e79a39bfc85c580a6426c9"), coin
)
self.assertEqual(address, "2N4Q5FhU2497BryFfUgbqkAJE87aKHUhXMp")
@@ -81,7 +81,7 @@ class TestAddress(unittest.TestCase):
coin = coins.by_name("Testnet")
# pubkey OP_CHECKSIG
- script = unhexlify(
+ script = bytes.fromhex(
"210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798ac"
)
h = HashWriter(sha256())
@@ -97,7 +97,7 @@ class TestAddress(unittest.TestCase):
# test data from Mastering Bitcoin
address = _address_p2wsh_in_p2sh(
- unhexlify(
+ bytes.fromhex(
"9592d601848d04b172905e0ddb0adde59f1590f1e553ffc81ddc4b0ed927dd73"
),
coin,
@@ -110,19 +110,19 @@ class TestAddress(unittest.TestCase):
# # commented out because uncompressed public keys are not supported
# coin = coins.by_name('Bitcoin')
# pubkeys = [
- # unhexlify('04a882d414e478039cd5b52a92ffb13dd5e6bd4515497439dffd691a0f12af9575fa349b5694ed3155b136f09e63975a1700c9f4d4df849323dac06cf3bd6458cd'),
- # unhexlify('046ce31db9bdd543e72fe3039a1f1c047dab87037c36a669ff90e28da1848f640de68c2fe913d363a51154a0c62d7adea1b822d05035077418267b1a1379790187'),
- # unhexlify('0411ffd36c70776538d079fbae117dc38effafb33304af83ce4894589747aee1ef992f63280567f52f5ba870678b4ab4ff6c8ea600bd217870a8b4f1f09f3a8e83'),
+ # bytes.fromhex('04a882d414e478039cd5b52a92ffb13dd5e6bd4515497439dffd691a0f12af9575fa349b5694ed3155b136f09e63975a1700c9f4d4df849323dac06cf3bd6458cd'),
+ # bytes.fromhex('046ce31db9bdd543e72fe3039a1f1c047dab87037c36a669ff90e28da1848f640de68c2fe913d363a51154a0c62d7adea1b822d05035077418267b1a1379790187'),
+ # bytes.fromhex('0411ffd36c70776538d079fbae117dc38effafb33304af83ce4894589747aee1ef992f63280567f52f5ba870678b4ab4ff6c8ea600bd217870a8b4f1f09f3a8e83'),
# ]
# address = _address_multisig_p2sh(pubkeys, 2, coin.address_type_p2sh)
# self.assertEqual(address, '347N1Thc213QqfYCz3PZkjoJpNv5b14kBd')
coin = coins.by_name("Bitcoin")
pubkeys = [
- unhexlify(
+ bytes.fromhex(
"02fe6f0a5a297eb38c391581c4413e084773ea23954d93f7753db7dc0adc188b2f"
),
- unhexlify(
+ bytes.fromhex(
"02ff12471208c14bd580709cb2358d98975247d8765f92bc25eab3b2763ed605f8"
),
]
@@ -138,10 +138,10 @@ class TestAddress(unittest.TestCase):
# https://bitcoin.stackexchange.com/questions/62656/generate-a-p2sh-p2wsh-address-and-spend-output-sent-to-it
coin = coins.by_name("Testnet")
pubkeys = [
- unhexlify(
+ bytes.fromhex(
"020b020e27e49f049eac10010506499a84e1d59a500cd3680e9ded580df9a107b0"
),
- unhexlify(
+ bytes.fromhex(
"0320ce424c6d61f352ccfea60d209651672cfb03b2dc77d1d64d3ba519aec756ae"
),
]
@@ -343,7 +343,7 @@ class TestAddress(unittest.TestCase):
for coin_name, address_n, address, mac in VECTORS:
coin = coins.by_name(coin_name)
- mac = unhexlify(mac)
+ mac = bytes.fromhex(mac)
keychain = Keychain(
seed,
coin.curve_name,
diff --git a/core/tests/test_apps.bitcoin.address_grs.py b/core/tests/test_apps.bitcoin.address_grs.py
index 724e8f95..431963a2 100644
--- a/core/tests/test_apps.bitcoin.address_grs.py
+++ b/core/tests/test_apps.bitcoin.address_grs.py
@@ -74,7 +74,7 @@ class TestAddressGRS(unittest.TestCase):
coin = coins.by_name("Groestlcoin Testnet")
address = address_p2sh(
- unhexlify("7a55d61848e77ca266e79a39bfc85c580a6426c9"), coin
+ bytes.fromhex("7a55d61848e77ca266e79a39bfc85c580a6426c9"), coin
)
self.assertEqual(address, "2N4Q5FhU2497BryFfUgbqkAJE87aKDv3V3e")
diff --git a/core/tests/test_apps.bitcoin.change_detector.py b/core/tests/test_apps.bitcoin.change_detector.py
index 46193dbb..4e22d1c5 100644
--- a/core/tests/test_apps.bitcoin.change_detector.py
+++ b/core/tests/test_apps.bitcoin.change_detector.py
@@ -12,10 +12,10 @@ xpub1 = HDNodeType(
depth=2,
fingerprint=50263508,
child_num=0,
- chain_code=unhexlify(
+ chain_code=bytes.fromhex(
"8eb1f96a45dcb693dbad61f5184871d999127a37f1b0d4dae9964eaf3fb0e15b"
),
- public_key=unhexlify(
+ public_key=bytes.fromhex(
"03922315cd2d2d874e4c55add2e0ea41af9c2957f02c0abe0f55285d364a067b61"
),
)
@@ -25,10 +25,10 @@ xpub2 = HDNodeType(
depth=2,
fingerprint=50263508,
child_num=1,
- chain_code=unhexlify(
+ chain_code=bytes.fromhex(
"acad50a7e52e44841d42bec6886df516974f8d366bc471a8515dfc69a6692700"
),
- public_key=unhexlify(
+ public_key=bytes.fromhex(
"02e6f3bf3093b45705e3d838490377e0d99eed911ca01990d1e94acd445dee59e8"
),
)
@@ -38,10 +38,10 @@ xpub3 = HDNodeType(
depth=2,
fingerprint=50263508,
child_num=2,
- chain_code=unhexlify(
+ chain_code=bytes.fromhex(
"5204b124a264b0bbf86360e365f0c9a0cb6e3ea57dda97196af015d64ccfa6b1"
),
- public_key=unhexlify(
+ public_key=bytes.fromhex(
"021cd5d138ba442c7f8ee9a2b8f4e254dc599a57d42c69b7194074135a0ba82926"
),
)
diff --git a/core/tests/test_apps.bitcoin.ownership_proof.py b/core/tests/test_apps.bitcoin.ownership_proof.py
index efaab336..ab5688bd 100644
--- a/core/tests/test_apps.bitcoin.ownership_proof.py
+++ b/core/tests/test_apps.bitcoin.ownership_proof.py
@@ -40,7 +40,7 @@ class TestOwnershipProof(unittest.TestCase):
ownership_id = ownership.get_identifier(script_pubkey, keychain)
self.assertEqual(
ownership_id,
- unhexlify(
+ bytes.fromhex(
"a122407efc198211c81af4450f40b235d54775efd934d16b9e31c6ce9bad5707"
),
)
@@ -57,13 +57,13 @@ class TestOwnershipProof(unittest.TestCase):
)
self.assertEqual(
signature,
- unhexlify(
+ bytes.fromhex(
"3045022100c0dc28bb563fc5fea76cacff75dba9cb4122412faae01937cdebccfb065f9a7002202e980bfbd8a434a7fc4cd2ca49da476ce98ca097437f8159b1a386b41fcdfac5"
),
)
self.assertEqual(
proof,
- unhexlify(
+ bytes.fromhex(
"534c00190001a122407efc198211c81af4450f40b235d54775efd934d16b9e31c6ce9bad57070002483045022100c0dc28bb563fc5fea76cacff75dba9cb4122412faae01937cdebccfb065f9a7002202e980bfbd8a434a7fc4cd2ca49da476ce98ca097437f8159b1a386b41fcdfac50121032ef68318c8f6aaa0adec0199c69901f0db7d3485eb38d9ad235221dc3d61154b"
),
)
@@ -92,7 +92,7 @@ class TestOwnershipProof(unittest.TestCase):
self.assertEqual(
ownership_id,
- unhexlify(
+ bytes.fromhex(
"92caf0b8daf78f1d388dbbceaec34bd2dabc31b217e32343663667f6694a3f46"
),
)
@@ -109,13 +109,13 @@ class TestOwnershipProof(unittest.TestCase):
)
self.assertEqual(
signature,
- unhexlify(
+ bytes.fromhex(
"304402207f1003c59661ddf564af2e10d19ad8d6a1a47ad30e7052197d95fd65d186a67802205f0a804509980fec1b063554aadd8fb871d7c9fe934087cba2da09cbeff8531c"
),
)
self.assertEqual(
proof,
- unhexlify(
+ bytes.fromhex(
"534c0019010192caf0b8daf78f1d388dbbceaec34bd2dabc31b217e32343663667f6694a3f4617160014e0cffbee1925a411844f44c3b8d81365ab51d0360247304402207f1003c59661ddf564af2e10d19ad8d6a1a47ad30e7052197d95fd65d186a67802205f0a804509980fec1b063554aadd8fb871d7c9fe934087cba2da09cbeff8531c012103a961687895a78da9aef98eed8e1f2a3e91cfb69d2f3cf11cbd0bb1773d951928"
),
)
@@ -143,7 +143,7 @@ class TestOwnershipProof(unittest.TestCase):
ownership_id = ownership.get_identifier(script_pubkey, keychain)
self.assertEqual(
ownership_id,
- unhexlify(
+ bytes.fromhex(
"dc18066224b9e30e306303436dc18ab881c7266c13790350a3fe415e438135ec"
),
)
@@ -160,13 +160,13 @@ class TestOwnershipProof(unittest.TestCase):
)
self.assertEqual(
signature,
- unhexlify(
+ bytes.fromhex(
"647d6af883107a870417e808abe424882bd28ee04a28ba85a7e99400e1b9485075733695964c2a0fa02d4439ab80830e9566ccbd10f2597f5513eff9f03a0497"
),
)
self.assertEqual(
proof,
- unhexlify(
+ bytes.fromhex(
"534c00190001dc18066224b9e30e306303436dc18ab881c7266c13790350a3fe415e438135ec000140647d6af883107a870417e808abe424882bd28ee04a28ba85a7e99400e1b9485075733695964c2a0fa02d4439ab80830e9566ccbd10f2597f5513eff9f03a0497"
),
)
@@ -194,7 +194,7 @@ class TestOwnershipProof(unittest.TestCase):
ownership_id = ownership.get_identifier(script_pubkey, keychain)
self.assertEqual(
ownership_id,
- unhexlify(
+ bytes.fromhex(
"ccc49ac5fede0efc80725fbda8b763d4e62a221c51cc5425076cffa7722c0bda"
),
)
@@ -211,13 +211,13 @@ class TestOwnershipProof(unittest.TestCase):
)
self.assertEqual(
signature,
- unhexlify(
+ bytes.fromhex(
"3045022100e818002d0a85438a7f2140503a6aa0a6af6002fa956d0101fd3db24e776e546f0220430fd59dc1498bc96ab6e71a4829b60224828cf1fc35edc98e0973db203ca3f0"
),
)
self.assertEqual(
proof,
- unhexlify(
+ bytes.fromhex(
"534c00190001ccc49ac5fede0efc80725fbda8b763d4e62a221c51cc5425076cffa7722c0bda6b483045022100e818002d0a85438a7f2140503a6aa0a6af6002fa956d0101fd3db24e776e546f0220430fd59dc1498bc96ab6e71a4829b60224828cf1fc35edc98e0973db203ca3f0012102f63159e21fbcb54221ec993def967ad2183a9c243c8bff6e7d60f4d5ed3b386500"
),
)
@@ -240,8 +240,8 @@ class TestOwnershipProof(unittest.TestCase):
commitment_data = b""
# Proof for "all all ... all" seed without passphrase.
- script_pubkey = unhexlify("0014b2f771c370ccf219cd3059cda92bdf7f00cf2103")
- proof = unhexlify(
+ script_pubkey = bytes.fromhex("0014b2f771c370ccf219cd3059cda92bdf7f00cf2103")
+ proof = bytes.fromhex(
"534c00190001a122407efc198211c81af4450f40b235d54775efd934d16b9e31c6ce9bad57070002483045022100c0dc28bb563fc5fea76cacff75dba9cb4122412faae01937cdebccfb065f9a7002202e980bfbd8a434a7fc4cd2ca49da476ce98ca097437f8159b1a386b41fcdfac50121032ef68318c8f6aaa0adec0199c69901f0db7d3485eb38d9ad235221dc3d61154b"
)
self.assertTrue(
@@ -263,10 +263,10 @@ class TestOwnershipProof(unittest.TestCase):
commitment_data = b""
# Proof for "all all ... all" seed without passphrase.
- script_pubkey = unhexlify(
+ script_pubkey = bytes.fromhex(
"51204102897557de0cafea0a8401ea5b59668eccb753e4b100aebe6a19609f3cc79f"
)
- proof = unhexlify(
+ proof = bytes.fromhex(
"534c00190001dc18066224b9e30e306303436dc18ab881c7266c13790350a3fe415e438135ec0001401b553e5b9cc787b531bbc78417aea901272b4ea905136a2babc4d6ca471549743b5e0e39ddc14e620b254e42faa7f6d5bd953e97aa231d764d21bc5a58e8b7d9"
)
self.assertTrue(
@@ -322,19 +322,19 @@ class TestOwnershipProof(unittest.TestCase):
]
self.assertEqual(
ownership_ids[0],
- unhexlify(
+ bytes.fromhex(
"309c4ffec5c228cc836b51d572c0a730dbabd39df9f01862502ac9eabcdeb94a"
),
)
self.assertEqual(
ownership_ids[1],
- unhexlify(
+ bytes.fromhex(
"46307177b959c48bf2eb516e0463bb651aad388c7f8f597320df7854212fa344"
),
)
self.assertEqual(
ownership_ids[2],
- unhexlify(
+ bytes.fromhex(
"3892f9573e08cedff9160b243759520733a980fed45b131a8bba171317ae5d94"
),
)
@@ -352,7 +352,7 @@ class TestOwnershipProof(unittest.TestCase):
)
self.assertEqual(
signature,
- unhexlify(
+ bytes.fromhex(
"30450221009d8cd2d792633732b3a406ea86072e94c72c0d1ffb5ddde466993ee2142eeef502206fa9c6273ab35400ebf689028ebcf8d2031edb3326106339e92d499652dc4303"
),
)
@@ -371,13 +371,13 @@ class TestOwnershipProof(unittest.TestCase):
)
self.assertEqual(
signature,
- unhexlify(
+ bytes.fromhex(
"304402205fae1218bc4600ad6c28b6093e8f3757603681b024e60f1d92fca579bfce210b022011d6f1c6ef1c7f7601f635ed237dafc774386dd9f4be0aef85e3af3f095d8a92"
),
)
self.assertEqual(
proof,
- unhexlify(
+ bytes.fromhex(
"534c00190003309c4ffec5c228cc836b51d572c0a730dbabd39df9f01862502ac9eabcdeb94a46307177b959c48bf2eb516e0463bb651aad388c7f8f597320df7854212fa3443892f9573e08cedff9160b243759520733a980fed45b131a8bba171317ae5d940004004830450221009d8cd2d792633732b3a406ea86072e94c72c0d1ffb5ddde466993ee2142eeef502206fa9c6273ab35400ebf689028ebcf8d2031edb3326106339e92d499652dc43030147304402205fae1218bc4600ad6c28b6093e8f3757603681b024e60f1d92fca579bfce210b022011d6f1c6ef1c7f7601f635ed237dafc774386dd9f4be0aef85e3af3f095d8a9201695221032ef68318c8f6aaa0adec0199c69901f0db7d3485eb38d9ad235221dc3d61154b2103025324888e429ab8e3dbaf1f7802648b9cd01e9b418485c5fa4c1b9b5700e1a621033057150eb57e2b21d69866747f3d377e928f864fa88ecc5ddb1c0e501cce3f8153ae"
),
)
@@ -425,7 +425,7 @@ class TestOwnershipProof(unittest.TestCase):
ownership_ids = [b"\x00" * 32, b"\x01" * 32, b"\x02" * 32, ownership_id]
self.assertEqual(
ownership_id,
- unhexlify(
+ bytes.fromhex(
"66f99db388dfa7ae137f7bdb5f0004b4d6968014921cfaff1fec042e3bb83ae0"
),
)
@@ -443,7 +443,7 @@ class TestOwnershipProof(unittest.TestCase):
)
self.assertEqual(
signature,
- unhexlify(
+ bytes.fromhex(
"30450221008c2c61ac2b50fd5f644baf5e8815b41caaf41d3b085d6e79c1ab38ab9ff4ef0702206742f837eddd4484ebf642e0bcb9621fe39165d3c9d62706bb01b2a8d854fb39"
),
)
@@ -462,7 +462,7 @@ class TestOwnershipProof(unittest.TestCase):
)
self.assertEqual(
signature,
- unhexlify(
+ bytes.fromhex(
"304402200f5ec86b369f6a980a237944a1a06e6615afb147c6d84baf28cd1b8a58faf52702205614240e1582adeaa84685398a24d3678d0781371678b402b290ae3de3e058ee"
),
)
@@ -481,13 +481,13 @@ class TestOwnershipProof(unittest.TestCase):
)
self.assertEqual(
signature,
- unhexlify(
+ bytes.fromhex(
"304402201ce53fcd797b6f5ceefa839817d6285551ff420457503ae2dab3f90ca1f6f2330220522f030423c22d5582c4f8fe243839031f584642ba5c085af712145d1e8146b7"
),
)
self.assertEqual(
proof,
- unhexlify(
+ bytes.fromhex(
"534c0019000400000000000000000000000000000000000000000000000000000000000000000101010101010101010101010101010101010101010101010101010101010101020202020202020202020202020202020202020202020202020202020202020266f99db388dfa7ae137f7bdb5f0004b4d6968014921cfaff1fec042e3bb83ae0232200208c256ed80a97a421656daa1468f6d4d43f475cb52ed79532d8bcb3155182981205004830450221008c2c61ac2b50fd5f644baf5e8815b41caaf41d3b085d6e79c1ab38ab9ff4ef0702206742f837eddd4484ebf642e0bcb9621fe39165d3c9d62706bb01b2a8d854fb390147304402200f5ec86b369f6a980a237944a1a06e6615afb147c6d84baf28cd1b8a58faf52702205614240e1582adeaa84685398a24d3678d0781371678b402b290ae3de3e058ee0147304402201ce53fcd797b6f5ceefa839817d6285551ff420457503ae2dab3f90ca1f6f2330220522f030423c22d5582c4f8fe243839031f584642ba5c085af712145d1e8146b701ad5321032922ce9b0b71ae2d2d8a7f239610ae8226e0fb8c0f445ec4c88cf9aa4787f44b21028373a1cdb9a1afbc67e57f75eeea1f53e7210ae8ec4b3441a5f2bc4a250b663c21028ab4c06e3ad19053b370eff097697d4cb6d3738712ebcdcdc27c58a5639ac3aa2103e3247fab300aeba459257e4605245f85378ecbfe092ca3bc55ec1259baa456f521023b0d8d97398d97c4dba10f788344abd4bd1058ad3959724d32079ad04bdbde8a55ae"
),
)
@@ -535,7 +535,7 @@ class TestOwnershipProof(unittest.TestCase):
ownership_ids = [b"\x00" * 32, ownership_id]
self.assertEqual(
ownership_id,
- unhexlify(
+ bytes.fromhex(
"ce4ee8298ad105c3495a1d2b620343133521ab34de2450deeb32eec39475fef4"
),
)
@@ -553,7 +553,7 @@ class TestOwnershipProof(unittest.TestCase):
)
self.assertEqual(
signature,
- unhexlify(
+ bytes.fromhex(
"3044022058091b367ab67281963029435046abcb51057d143077a36737780a7cbcd6c1af02202f54147645b970c60b5b631b233ed93c15304294a4214b2c44b57db84815ca14"
),
)
@@ -572,13 +572,13 @@ class TestOwnershipProof(unittest.TestCase):
)
self.assertEqual(
signature,
- unhexlify(
+ bytes.fromhex(
"304402200d8f270ea9a80678f266b3fbe6e4aa59aab46b440d8066dcf46fb46a4beaf58202201198d73e355158ebf532ca6527e28ea97b79594e016a65c7a0c68813c26271ff"
),
)
self.assertEqual(
proof,
- unhexlify(
+ bytes.fromhex(
"534c001900020000000000000000000000000000000000000000000000000000000000000000ce4ee8298ad105c3495a1d2b620343133521ab34de2450deeb32eec39475fef4d900473044022058091b367ab67281963029435046abcb51057d143077a36737780a7cbcd6c1af02202f54147645b970c60b5b631b233ed93c15304294a4214b2c44b57db84815ca140147304402200d8f270ea9a80678f266b3fbe6e4aa59aab46b440d8066dcf46fb46a4beaf58202201198d73e355158ebf532ca6527e28ea97b79594e016a65c7a0c68813c26271ff014752210203ed6187880ae932660086e55d4561a57952dd200aa3ed2aa66b73e5723a0ce7210360e7f32fd3c8dee27a166f6614c598929699ee66acdcbda5fb24571bf2ae1ca052ae00"
),
)
diff --git a/core/tests/test_apps.bitcoin.segwit.bip143.native_p2wpkh.py b/core/tests/test_apps.bitcoin.segwit.bip143.native_p2wpkh.py
index b93e7658..e28bb392 100644
--- a/core/tests/test_apps.bitcoin.segwit.bip143.native_p2wpkh.py
+++ b/core/tests/test_apps.bitcoin.segwit.bip143.native_p2wpkh.py
@@ -27,7 +27,7 @@ class TestSegwitBip143NativeP2WPKH(unittest.TestCase):
inp1 = TxInput(
address_n=[0],
# Trezor expects hash in reversed format
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"9f96ade4b41d5433f4eda31e1738ec2b36f6e7d1420d94a6af99801a88f7f7ff"
),
prev_index=0,
@@ -39,7 +39,7 @@ class TestSegwitBip143NativeP2WPKH(unittest.TestCase):
inp2 = TxInput(
address_n=[1],
# Trezor expects hash in reversed format
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"8ac60eb9575db5b2d987e29f301b5b819ea83a5c6579d282d189cc04b8e151ef"
),
prev_index=1,
@@ -70,8 +70,8 @@ class TestSegwitBip143NativeP2WPKH(unittest.TestCase):
sig_hasher.add_input(self.inp2, b"")
prevouts_hash = get_tx_hash(sig_hasher.h_prevouts, double=coin.sign_hash_double)
self.assertEqual(
- hexlify(prevouts_hash),
- b"96b827c8483d4e9b96712b6713a7b68d6e8003a781feba36c31143470b4efd37",
+ prevouts_hash.hex(),
+ "96b827c8483d4e9b96712b6713a7b68d6e8003a781feba36c31143470b4efd37",
)
def test_sequence(self):
@@ -83,8 +83,8 @@ class TestSegwitBip143NativeP2WPKH(unittest.TestCase):
sig_hasher.h_sequences, double=coin.sign_hash_double
)
self.assertEqual(
- hexlify(sequence_hash),
- b"52b0a642eea2fb7ae638c36f6252b6750293dbe574a806984b8e4d8548339a3b",
+ sequence_hash.hex(),
+ "52b0a642eea2fb7ae638c36f6252b6750293dbe574a806984b8e4d8548339a3b",
)
def test_outputs(self):
@@ -98,8 +98,8 @@ class TestSegwitBip143NativeP2WPKH(unittest.TestCase):
outputs_hash = get_tx_hash(sig_hasher.h_outputs, double=coin.sign_hash_double)
self.assertEqual(
- hexlify(outputs_hash),
- b"863ef3e1a92afbfdb97f31ad0fc7683ee943e9abcf2501590ff8f6551f47e5e5",
+ outputs_hash.hex(),
+ "863ef3e1a92afbfdb97f31ad0fc7683ee943e9abcf2501590ff8f6551f47e5e5",
)
def test_preimage_testdata(self):
@@ -127,8 +127,8 @@ class TestSegwitBip143NativeP2WPKH(unittest.TestCase):
self.inp2, [node.public_key()], 1, self.tx, coin, SigHashType.SIGHASH_ALL
)
self.assertEqual(
- hexlify(result),
- b"2fa3f1351618b2532228d7182d3221d95c21fd3d496e7e22e9ded873cf022a8b",
+ result.hex(),
+ "2fa3f1351618b2532228d7182d3221d95c21fd3d496e7e22e9ded873cf022a8b",
)
diff --git a/core/tests/test_apps.bitcoin.segwit.bip143.p2wpkh_in_p2sh.py b/core/tests/test_apps.bitcoin.segwit.bip143.p2wpkh_in_p2sh.py
index a5fcad4e..4c6c549c 100644
--- a/core/tests/test_apps.bitcoin.segwit.bip143.p2wpkh_in_p2sh.py
+++ b/core/tests/test_apps.bitcoin.segwit.bip143.p2wpkh_in_p2sh.py
@@ -27,7 +27,7 @@ class TestSegwitBip143(unittest.TestCase):
inp1 = TxInput(
address_n=[0],
# Trezor expects hash in reversed format
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"77541aeb3c4dac9260b68f74f44c973081a9d4cb2ebe8038b2d70faa201b6bdb"
),
prev_index=1,
@@ -57,8 +57,8 @@ class TestSegwitBip143(unittest.TestCase):
sig_hasher.add_input(self.inp1, b"")
prevouts_hash = get_tx_hash(sig_hasher.h_prevouts, double=coin.sign_hash_double)
self.assertEqual(
- hexlify(prevouts_hash),
- b"b0287b4a252ac05af83d2dcef00ba313af78a3e9c329afa216eb3aa2a7b4613a",
+ prevouts_hash.hex(),
+ "b0287b4a252ac05af83d2dcef00ba313af78a3e9c329afa216eb3aa2a7b4613a",
)
def test_bip143_sequence(self):
@@ -69,8 +69,8 @@ class TestSegwitBip143(unittest.TestCase):
sig_hasher.h_sequences, double=coin.sign_hash_double
)
self.assertEqual(
- hexlify(sequence_hash),
- b"18606b350cd8bf565266bc352f0caddcf01e8fa789dd8a15386327cf8cabe198",
+ sequence_hash.hex(),
+ "18606b350cd8bf565266bc352f0caddcf01e8fa789dd8a15386327cf8cabe198",
)
def test_bip143_outputs(self):
@@ -84,8 +84,8 @@ class TestSegwitBip143(unittest.TestCase):
outputs_hash = get_tx_hash(sig_hasher.h_outputs, double=coin.sign_hash_double)
self.assertEqual(
- hexlify(outputs_hash),
- b"de984f44532e2173ca0d64314fcefe6d30da6f8cf27bafa706da61df8a226c83",
+ outputs_hash.hex(),
+ "de984f44532e2173ca0d64314fcefe6d30da6f8cf27bafa706da61df8a226c83",
)
def test_bip143_preimage_testdata(self):
@@ -109,8 +109,8 @@ class TestSegwitBip143(unittest.TestCase):
self.inp1, [node.public_key()], 1, self.tx, coin, SigHashType.SIGHASH_ALL
)
self.assertEqual(
- hexlify(result),
- b"6e28aca7041720995d4acf59bbda64eef5d6f23723d23f2e994757546674bbd9",
+ result.hex(),
+ "6e28aca7041720995d4acf59bbda64eef5d6f23723d23f2e994757546674bbd9",
)
diff --git a/core/tests/test_apps.bitcoin.segwit.bip341.p2tr.py b/core/tests/test_apps.bitcoin.segwit.bip341.p2tr.py
index bec4b1aa..c39ab798 100644
--- a/core/tests/test_apps.bitcoin.segwit.bip341.p2tr.py
+++ b/core/tests/test_apps.bitcoin.segwit.bip341.p2tr.py
@@ -20,11 +20,11 @@ VECTORS = [
"inputs": [
TxInput(
amount=420000000,
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"9c4e333b5f116359b5f5578fe4a74c6f58b3bab9d28149a583da86f6bf0ce27d"
),
prev_index=1,
- script_pubkey=unhexlify(
+ script_pubkey=bytes.fromhex(
"512053a1f6e454df1aa2776a2814a721372d6258050de330b3c6d10ee8f4e0dda343"
),
script_type=InputScriptType.SPENDTAPROOT,
@@ -32,11 +32,11 @@ VECTORS = [
),
TxInput(
amount=462000000,
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"99ddaf6d9b75447d5127e17312f6def68acba2d4f464d0e2ac93137bb5cab7d7"
),
prev_index=0,
- script_pubkey=unhexlify(
+ script_pubkey=bytes.fromhex(
"5120147c9c57132f6e7ecddba9800bb0c4449251c92a1e60371ee77557b6620f3ea3"
),
script_type=InputScriptType.SPENDTAPROOT,
@@ -44,11 +44,11 @@ VECTORS = [
),
TxInput(
amount=294000000,
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"4218a419542757d960174457dc82e06b3613ac8ed2c528926833433883f5e1f8"
),
prev_index=0,
- script_pubkey=unhexlify(
+ script_pubkey=bytes.fromhex(
"76a914751e76e8199196d454941c45d1b3a323f1433bd688ac"
),
script_type=InputScriptType.SPENDADDRESS,
@@ -56,11 +56,11 @@ VECTORS = [
),
TxInput(
amount=504000000,
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"3b8504d63a84a0fd1043e7ec832adaeeb7382a6d3ca762b10cb363aa809168f0"
),
prev_index=1,
- script_pubkey=unhexlify(
+ script_pubkey=bytes.fromhex(
"5120e4d810fd50586274face62b8a807eb9719cef49c04177cc6b76a9a4251d5450e"
),
script_type=InputScriptType.SPENDTAPROOT,
@@ -68,11 +68,11 @@ VECTORS = [
),
TxInput(
amount=630000000,
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"7a488f58881cecb2523690afcf22eb8892372bae018a125e1f006283a38c630c"
),
prev_index=0,
- script_pubkey=unhexlify(
+ script_pubkey=bytes.fromhex(
"512091b64d5324723a985170e4dc5a0f84c041804f2cd12660fa5dec09fc21783605"
),
script_type=InputScriptType.SPENDTAPROOT,
@@ -80,21 +80,23 @@ VECTORS = [
),
TxInput(
amount=378000000,
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"50d0ac326d44a3a29358214139fecb8a7129aa2f2dbeb28e96aa6fc6bd496195"
),
prev_index=0,
- script_pubkey=unhexlify("00147dd65592d0ab2fe0d0257d571abf032cd9db93dc"),
+ script_pubkey=bytes.fromhex(
+ "00147dd65592d0ab2fe0d0257d571abf032cd9db93dc"
+ ),
script_type=InputScriptType.SPENDWITNESS,
sequence=0x00000000,
),
TxInput(
amount=672000000,
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"3a013eb5a6a664585ddbc210e02147847cde7317c0ce4e056ee4f0f167a2ef81"
),
prev_index=1,
- script_pubkey=unhexlify(
+ script_pubkey=bytes.fromhex(
"512075169f4001aa68f15bbed28b218df1d0a62cbbcf1188c6665110c293c907b831"
),
script_type=InputScriptType.SPENDTAPROOT,
@@ -102,11 +104,11 @@ VECTORS = [
),
TxInput(
amount=546000000,
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"eebd075c693d6823dd39fe11e3a6d1993fdec6109860937d50624a3c9c6690a6"
),
prev_index=0,
- script_pubkey=unhexlify(
+ script_pubkey=bytes.fromhex(
"51200f63ca2c7639b9bb4be0465cc0aa3ee78a0761ba5f5f7d6ff8eab340f09da561"
),
script_type=InputScriptType.SPENDTAPROOT,
@@ -114,11 +116,11 @@ VECTORS = [
),
TxInput(
amount=588000000,
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"9e667967d1eb839b9b0a1fd17b2f29e838ff0240a83c61f896844377f8b57a72"
),
prev_index=1,
- script_pubkey=unhexlify(
+ script_pubkey=bytes.fromhex(
"5120053690babeabbb7850c32eead0acf8df990ced79f7a31e358fabf2658b4bc587"
),
script_type=InputScriptType.SPENDTAPROOT,
@@ -128,44 +130,44 @@ VECTORS = [
"outputs": [
PrevOutput(
amount=1000000000,
- script_pubkey=unhexlify(
+ script_pubkey=bytes.fromhex(
"76a91406afd46bcdfd22ef94ac122aa11f241244a37ecc88ac"
), # 1cMh228HTCiwS8ZsaakH8A8wze1JR5ZsP
),
PrevOutput(
amount=3410000000,
- script_pubkey=unhexlify(
+ script_pubkey=bytes.fromhex(
"ac9a87f5594be208f8532db38cff670c450ed2fea8fcdefcc9a663f78bab962b"
),
),
],
- "sha_amounts": unhexlify(
+ "sha_amounts": bytes.fromhex(
"58a6964a4f5f8f0b642ded0a8a553be7622a719da71d1f5befcefcdee8e0fde6"
),
- "sha_outputs": unhexlify(
+ "sha_outputs": bytes.fromhex(
"a2e6dab7c1f0dcd297c8d61647fd17d821541ea69c3cc37dcbad7f90d4eb4bc5"
),
- "sha_prevouts": unhexlify(
+ "sha_prevouts": bytes.fromhex(
"2bd4d5a417902673919b2c209d14f8efaa285ede022a88d6a45edf4bdd43db11"
),
- "sha_scriptpubkeys": unhexlify(
+ "sha_scriptpubkeys": bytes.fromhex(
"26003c31f2f1786d22fcb3e1f690ddcdff53627a59f9219d5a2c77985a8930c0"
),
- "sha_sequences": unhexlify(
+ "sha_sequences": bytes.fromhex(
"18959c7221ab5ce9e26c3cd67b22c24f8baa54bac281d8e6b05e400e6c3a957e"
),
"signature_hashes": [
{
"index": 3,
"hash_type": SigHashType.SIGHASH_ALL,
- "result": unhexlify(
+ "result": bytes.fromhex(
"6ffd256e108685b41831385f57eebf2fca041bc6b5e607ea11b3e03d4cf9d9ba"
),
},
{
"index": 4,
"hash_type": SigHashType.SIGHASH_ALL_TAPROOT,
- "result": unhexlify(
+ "result": bytes.fromhex(
"9f90136737540ccc18707e1fd398ad222a1a7e4dd65cbfd22dbe4660191efa58"
),
},
@@ -181,7 +183,7 @@ VECTORS = [
),
"inputs": [
TxInput(
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"8dcb562f365cfeb249be74e7865135cf035add604234fc0d8330b49bec92605f"
),
prev_index=0,
@@ -189,10 +191,12 @@ VECTORS = [
script_type=InputScriptType.SPENDWITNESS,
multisig=None,
sequence=0,
- script_pubkey=unhexlify("0014196a5bea745288a7f947993c28e3a0f2108d2e0a"),
+ script_pubkey=bytes.fromhex(
+ "0014196a5bea745288a7f947993c28e3a0f2108d2e0a"
+ ),
),
TxInput(
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"e1323b577ed0d216f4e52bf2b4c490710dfa0088dae3d15e8ba26ad792184361"
),
prev_index=1,
@@ -200,7 +204,7 @@ VECTORS = [
amount=600000000, # 6 btc
script_type=InputScriptType.SPENDTAPROOT,
sequence=0,
- script_pubkey=unhexlify(
+ script_pubkey=bytes.fromhex(
"512029d942d0408906b359397b6f87c5145814a9aefc8c396dd05efa8b5b73576bf2"
),
),
@@ -208,31 +212,31 @@ VECTORS = [
"outputs": [
PrevOutput(
amount=1000000000,
- script_pubkey=unhexlify(
+ script_pubkey=bytes.fromhex(
"76a914682dfdbc97ab5c31300f36d3c12c6fd854b1b35a88ac"
), # 1AVrNUPAytZZbisNduCacWcEVJS6eGRvaa
),
],
- "sha_amounts": unhexlify(
+ "sha_amounts": bytes.fromhex(
"5733468db74734c00efa0b466bca091d8f1aab074af2538f36bd0a734a5940c5"
),
- "sha_outputs": unhexlify(
+ "sha_outputs": bytes.fromhex(
"8cdee56004a241f9c79cc55b7d79eaed04909d84660502a2d4e9c357c2047cf5"
),
- "sha_prevouts": unhexlify(
+ "sha_prevouts": bytes.fromhex(
"32553b113292dfa8216546e721388a6c19c76626ca65dc187e0348d6ed445f81"
),
- "sha_scriptpubkeys": unhexlify(
+ "sha_scriptpubkeys": bytes.fromhex(
"423cd73484fc5e3e0a623442846c279c2216f25a2f32d161fea6c5821a1adde7"
),
- "sha_sequences": unhexlify(
+ "sha_sequences": bytes.fromhex(
"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc"
),
"signature_hashes": [
{
"index": 1,
"hash_type": SigHashType.SIGHASH_ALL_TAPROOT,
- "result": unhexlify(
+ "result": bytes.fromhex(
"07333acfe6dce8196f1ad62b2e039a3d9f0b6627bf955be767c519c0f8789ff4"
),
},
diff --git a/core/tests/test_apps.bitcoin.segwit.signtx.native_p2wpkh.py b/core/tests/test_apps.bitcoin.segwit.signtx.native_p2wpkh.py
index 1c1ebc84..26a94d65 100644
--- a/core/tests/test_apps.bitcoin.segwit.signtx.native_p2wpkh.py
+++ b/core/tests/test_apps.bitcoin.segwit.signtx.native_p2wpkh.py
@@ -47,7 +47,7 @@ class TestSignSegwitTxNativeP2WPKH(unittest.TestCase):
# 49'/1'/0'/0/0" - tb1qqzv60m9ajw8drqulta4ld4gfx0rdh82un5s65s
address_n=[49 | 0x80000000, 1 | 0x80000000, 0 | 0x80000000, 0, 0],
amount=12300000,
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"09144602765ce3dd8f4329445b20e3684e948709c5cdcaf12da3bb079c99448a"
),
prev_index=0,
@@ -59,19 +59,21 @@ class TestSignSegwitTxNativeP2WPKH(unittest.TestCase):
version=1, lock_time=0, inputs_count=1, outputs_count=2, extra_data_len=0
)
pinp1 = PrevInput(
- script_sig=unhexlify("160014d16b8c0680c61fc6ed2e407455715055e41052f5"),
- prev_hash=unhexlify(
+ script_sig=bytes.fromhex("160014d16b8c0680c61fc6ed2e407455715055e41052f5"),
+ prev_hash=bytes.fromhex(
"20912f98ea3ed849042efed0fdac8cb4fc301961c5988cba56902d8ffb61c337"
),
prev_index=0,
sequence=4294967295,
)
pout1 = PrevOutput(
- script_pubkey=unhexlify("00140099a7ecbd938ed1839f5f6bf6d50933c6db9d5c"),
+ script_pubkey=bytes.fromhex("00140099a7ecbd938ed1839f5f6bf6d50933c6db9d5c"),
amount=12300000,
)
pout2 = PrevOutput(
- script_pubkey=unhexlify("a91458b53ea7f832e8f096e896b8713a8c6df0e892ca87"),
+ script_pubkey=bytes.fromhex(
+ "a91458b53ea7f832e8f096e896b8713a8c6df0e892ca87"
+ ),
amount=111145789,
)
@@ -170,7 +172,7 @@ class TestSignSegwitTxNativeP2WPKH(unittest.TestCase):
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized header
- serialized_tx=unhexlify("01000000000101"),
+ serialized_tx=bytes.fromhex("01000000000101"),
),
),
TxAckInput(tx=TxAckInputWrapper(input=inp1)),
@@ -179,7 +181,7 @@ class TestSignSegwitTxNativeP2WPKH(unittest.TestCase):
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized inp1
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"8a44999c07bba32df1cacdc50987944e68e3205b4429438fdde35c76024614090000000000ffffffff02"
),
),
@@ -190,7 +192,7 @@ class TestSignSegwitTxNativeP2WPKH(unittest.TestCase):
details=TxRequestDetailsType(request_index=1, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized out1
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"404b4c000000000017a9147a55d61848e77ca266e79a39bfc85c580a6426c987"
),
signature_index=None,
@@ -204,7 +206,7 @@ class TestSignSegwitTxNativeP2WPKH(unittest.TestCase):
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized out2
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"a8386f0000000000160014d16b8c0680c61fc6ed2e407455715055e41052f5"
),
signature_index=None,
@@ -216,11 +218,11 @@ class TestSignSegwitTxNativeP2WPKH(unittest.TestCase):
request_type=TXFINISHED,
details=TxRequestDetailsType(),
serialized=TxRequestSerializedType(
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"02483045022100a7ca8f097525f9044e64376dc0a0f5d4aeb8d15d66808ba97979a0475b06b66502200597c8ebcef63e047f9aeef1a8001d3560470cf896c12f6990eec4faec599b950121033add1f0e8e3c3136f7428dd4a4de1057380bd311f5b0856e2269170b4ffa65bf00000000"
),
signature_index=0,
- signature=unhexlify(
+ signature=bytes.fromhex(
"3045022100a7ca8f097525f9044e64376dc0a0f5d4aeb8d15d66808ba97979a0475b06b66502200597c8ebcef63e047f9aeef1a8001d3560470cf896c12f6990eec4faec599b95"
),
),
@@ -247,7 +249,7 @@ class TestSignSegwitTxNativeP2WPKH(unittest.TestCase):
# 49'/1'/0'/0/0" - tb1qqzv60m9ajw8drqulta4ld4gfx0rdh82un5s65s
address_n=[49 | 0x80000000, 1 | 0x80000000, 0 | 0x80000000, 0, 0],
amount=12300000,
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"09144602765ce3dd8f4329445b20e3684e948709c5cdcaf12da3bb079c99448a"
),
prev_index=0,
@@ -259,19 +261,21 @@ class TestSignSegwitTxNativeP2WPKH(unittest.TestCase):
version=1, lock_time=0, inputs_count=1, outputs_count=2, extra_data_len=0
)
pinp1 = PrevInput(
- script_sig=unhexlify("160014d16b8c0680c61fc6ed2e407455715055e41052f5"),
- prev_hash=unhexlify(
+ script_sig=bytes.fromhex("160014d16b8c0680c61fc6ed2e407455715055e41052f5"),
+ prev_hash=bytes.fromhex(
"20912f98ea3ed849042efed0fdac8cb4fc301961c5988cba56902d8ffb61c337"
),
prev_index=0,
sequence=4294967295,
)
pout1 = PrevOutput(
- script_pubkey=unhexlify("00140099a7ecbd938ed1839f5f6bf6d50933c6db9d5c"),
+ script_pubkey=bytes.fromhex("00140099a7ecbd938ed1839f5f6bf6d50933c6db9d5c"),
amount=12300000,
)
pout2 = PrevOutput(
- script_pubkey=unhexlify("a91458b53ea7f832e8f096e896b8713a8c6df0e892ca87"),
+ script_pubkey=bytes.fromhex(
+ "a91458b53ea7f832e8f096e896b8713a8c6df0e892ca87"
+ ),
amount=111145789,
)
@@ -374,7 +378,7 @@ class TestSignSegwitTxNativeP2WPKH(unittest.TestCase):
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized header
- serialized_tx=unhexlify("01000000000101"),
+ serialized_tx=bytes.fromhex("01000000000101"),
),
),
TxAckInput(tx=TxAckInputWrapper(input=inp1)),
@@ -383,7 +387,7 @@ class TestSignSegwitTxNativeP2WPKH(unittest.TestCase):
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized inp1
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"8a44999c07bba32df1cacdc50987944e68e3205b4429438fdde35c76024614090000000000ffffffff02"
),
),
@@ -395,7 +399,7 @@ class TestSignSegwitTxNativeP2WPKH(unittest.TestCase):
details=TxRequestDetailsType(request_index=1, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized out1
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"404b4c000000000017a9147a55d61848e77ca266e79a39bfc85c580a6426c987"
),
signature_index=None,
@@ -409,7 +413,7 @@ class TestSignSegwitTxNativeP2WPKH(unittest.TestCase):
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized out2
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"a8386f0000000000160014d16b8c0680c61fc6ed2e407455715055e41052f5"
),
signature_index=None,
@@ -421,11 +425,11 @@ class TestSignSegwitTxNativeP2WPKH(unittest.TestCase):
request_type=TXFINISHED,
details=TxRequestDetailsType(),
serialized=TxRequestSerializedType(
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"02483045022100a7ca8f097525f9044e64376dc0a0f5d4aeb8d15d66808ba97979a0475b06b66502200597c8ebcef63e047f9aeef1a8001d3560470cf896c12f6990eec4faec599b950121033add1f0e8e3c3136f7428dd4a4de1057380bd311f5b0856e2269170b4ffa65bf00000000"
),
signature_index=0,
- signature=unhexlify(
+ signature=bytes.fromhex(
"3045022100a7ca8f097525f9044e64376dc0a0f5d4aeb8d15d66808ba97979a0475b06b66502200597c8ebcef63e047f9aeef1a8001d3560470cf896c12f6990eec4faec599b95"
),
),
@@ -452,7 +456,7 @@ class TestSignSegwitTxNativeP2WPKH(unittest.TestCase):
# 49'/1'/0'/0/0" - tb1qqzv60m9ajw8drqulta4ld4gfx0rdh82un5s65s
address_n=[49 | 0x80000000, 1 | 0x80000000, 0 | 0x80000000, 0, 0],
amount=12300000,
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"09144602765ce3dd8f4329445b20e3684e948709c5cdcaf12da3bb079c99448a"
),
prev_index=0,
diff --git a/core/tests/test_apps.bitcoin.segwit.signtx.native_p2wpkh_grs.py b/core/tests/test_apps.bitcoin.segwit.signtx.native_p2wpkh_grs.py
index a1b1ef68..c5e6e695 100644
--- a/core/tests/test_apps.bitcoin.segwit.signtx.native_p2wpkh_grs.py
+++ b/core/tests/test_apps.bitcoin.segwit.signtx.native_p2wpkh_grs.py
@@ -48,7 +48,7 @@ class TestSignSegwitTxNativeP2WPKH_GRS(unittest.TestCase):
# 84'/1'/0'/0/0" - tgrs1qkvwu9g3k2pdxewfqr7syz89r3gj557l3ued7ja
address_n=[84 | 0x80000000, 1 | 0x80000000, 0 | 0x80000000, 0, 0],
amount=12300000,
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"4f2f857f39ed1afe05542d058fb0be865a387446e32fc876d086203f483f61d1"
),
prev_index=0,
@@ -64,21 +64,21 @@ class TestSignSegwitTxNativeP2WPKH_GRS(unittest.TestCase):
extra_data_len=0,
)
pinp1 = PrevInput(
- script_sig=unhexlify(
+ script_sig=bytes.fromhex(
"483045022100d9615361c044e91f6dd7bb4455f3ad686cd5a663d7800bb74c448b2706500ccb022026bed24b81a501e8398411c5a9a793741d9bfe39617d51c363dde0a84f44f4f9012102659a6eefcc72d6f2eff92e57095388b17db0b06034946ecd44120e5e7a830ff4"
),
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"1c92508b38239e5c10b23fb46dcf765ee2f3a95b835edbf0943ec21b21711160"
),
prev_index=1,
sequence=4294967293,
)
pout1 = PrevOutput(
- script_pubkey=unhexlify("0014b31dc2a236505a6cb9201fa0411ca38a254a7bf1"),
+ script_pubkey=bytes.fromhex("0014b31dc2a236505a6cb9201fa0411ca38a254a7bf1"),
amount=12300000,
)
pout2 = PrevOutput(
- script_pubkey=unhexlify(
+ script_pubkey=bytes.fromhex(
"76a91438cc090e4a4b2e458c33fe35af1c5c0094699ac288ac"
),
amount=9887699777,
@@ -183,7 +183,7 @@ class TestSignSegwitTxNativeP2WPKH_GRS(unittest.TestCase):
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized header
- serialized_tx=unhexlify("01000000000101"),
+ serialized_tx=bytes.fromhex("01000000000101"),
),
),
TxAckInput(tx=TxAckInputWrapper(input=inp1)),
@@ -192,7 +192,7 @@ class TestSignSegwitTxNativeP2WPKH_GRS(unittest.TestCase):
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized inp1
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"d1613f483f2086d076c82fe34674385a86beb08f052d5405fe1aed397f852f4f0000000000feffffff02"
),
),
@@ -203,7 +203,7 @@ class TestSignSegwitTxNativeP2WPKH_GRS(unittest.TestCase):
details=TxRequestDetailsType(request_index=1, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized out1
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"404b4c000000000017a9147a55d61848e77ca266e79a39bfc85c580a6426c987"
),
signature_index=None,
@@ -217,7 +217,7 @@ class TestSignSegwitTxNativeP2WPKH_GRS(unittest.TestCase):
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized out2
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"a8386f0000000000160014cc8067093f6f843d6d3e22004a4290cd0c0f336b"
),
signature_index=None,
@@ -229,11 +229,11 @@ class TestSignSegwitTxNativeP2WPKH_GRS(unittest.TestCase):
request_type=TXFINISHED,
details=TxRequestDetailsType(),
serialized=TxRequestSerializedType(
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"02483045022100ea8780bc1e60e14e945a80654a41748bbf1aa7d6f2e40a88d91dfc2de1f34bd10220181a474a3420444bd188501d8d270736e1e9fe379da9970de992ff445b0972e3012103adc58245cf28406af0ef5cc24b8afba7f1be6c72f279b642d85c48798685f862d9ed0900"
),
signature_index=0,
- signature=unhexlify(
+ signature=bytes.fromhex(
"3045022100ea8780bc1e60e14e945a80654a41748bbf1aa7d6f2e40a88d91dfc2de1f34bd10220181a474a3420444bd188501d8d270736e1e9fe379da9970de992ff445b0972e3"
),
),
@@ -260,7 +260,7 @@ class TestSignSegwitTxNativeP2WPKH_GRS(unittest.TestCase):
# 84'/1'/0'/0/0" - tgrs1qkvwu9g3k2pdxewfqr7syz89r3gj557l3ued7ja
address_n=[84 | 0x80000000, 1 | 0x80000000, 0 | 0x80000000, 0, 0],
amount=12300000,
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"4f2f857f39ed1afe05542d058fb0be865a387446e32fc876d086203f483f61d1"
),
prev_index=0,
@@ -276,21 +276,21 @@ class TestSignSegwitTxNativeP2WPKH_GRS(unittest.TestCase):
extra_data_len=0,
)
pinp1 = PrevInput(
- script_sig=unhexlify(
+ script_sig=bytes.fromhex(
"483045022100d9615361c044e91f6dd7bb4455f3ad686cd5a663d7800bb74c448b2706500ccb022026bed24b81a501e8398411c5a9a793741d9bfe39617d51c363dde0a84f44f4f9012102659a6eefcc72d6f2eff92e57095388b17db0b06034946ecd44120e5e7a830ff4"
),
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"1c92508b38239e5c10b23fb46dcf765ee2f3a95b835edbf0943ec21b21711160"
),
prev_index=1,
sequence=4294967293,
)
pout1 = PrevOutput(
- script_pubkey=unhexlify("0014b31dc2a236505a6cb9201fa0411ca38a254a7bf1"),
+ script_pubkey=bytes.fromhex("0014b31dc2a236505a6cb9201fa0411ca38a254a7bf1"),
amount=12300000,
)
pout2 = PrevOutput(
- script_pubkey=unhexlify(
+ script_pubkey=bytes.fromhex(
"76a91438cc090e4a4b2e458c33fe35af1c5c0094699ac288ac"
),
amount=9887699777,
@@ -397,7 +397,7 @@ class TestSignSegwitTxNativeP2WPKH_GRS(unittest.TestCase):
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized header
- serialized_tx=unhexlify("01000000000101"),
+ serialized_tx=bytes.fromhex("01000000000101"),
),
),
TxAckInput(tx=TxAckInputWrapper(input=inp1)),
@@ -406,7 +406,7 @@ class TestSignSegwitTxNativeP2WPKH_GRS(unittest.TestCase):
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized inp1
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"d1613f483f2086d076c82fe34674385a86beb08f052d5405fe1aed397f852f4f0000000000feffffff02"
),
),
@@ -418,7 +418,7 @@ class TestSignSegwitTxNativeP2WPKH_GRS(unittest.TestCase):
details=TxRequestDetailsType(request_index=1, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized out1
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"404b4c000000000017a9147a55d61848e77ca266e79a39bfc85c580a6426c987"
),
signature_index=None,
@@ -432,7 +432,7 @@ class TestSignSegwitTxNativeP2WPKH_GRS(unittest.TestCase):
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized out2
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"a8386f0000000000160014cc8067093f6f843d6d3e22004a4290cd0c0f336b"
),
signature_index=None,
@@ -444,11 +444,11 @@ class TestSignSegwitTxNativeP2WPKH_GRS(unittest.TestCase):
request_type=TXFINISHED,
details=TxRequestDetailsType(),
serialized=TxRequestSerializedType(
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"02483045022100ea8780bc1e60e14e945a80654a41748bbf1aa7d6f2e40a88d91dfc2de1f34bd10220181a474a3420444bd188501d8d270736e1e9fe379da9970de992ff445b0972e3012103adc58245cf28406af0ef5cc24b8afba7f1be6c72f279b642d85c48798685f862d9ed0900"
),
signature_index=0,
- signature=unhexlify(
+ signature=bytes.fromhex(
"3045022100ea8780bc1e60e14e945a80654a41748bbf1aa7d6f2e40a88d91dfc2de1f34bd10220181a474a3420444bd188501d8d270736e1e9fe379da9970de992ff445b0972e3"
),
),
diff --git a/core/tests/test_apps.bitcoin.segwit.signtx.p2wpkh_in_p2sh.py b/core/tests/test_apps.bitcoin.segwit.signtx.p2wpkh_in_p2sh.py
index 289e7f75..1e492d92 100644
--- a/core/tests/test_apps.bitcoin.segwit.signtx.p2wpkh_in_p2sh.py
+++ b/core/tests/test_apps.bitcoin.segwit.signtx.p2wpkh_in_p2sh.py
@@ -47,7 +47,7 @@ class TestSignSegwitTxP2WPKHInP2SH(unittest.TestCase):
# 49'/1'/0'/1/0" - 2N1LGaGg836mqSQqiuUBLfcyGBhyZbremDX
address_n=[49 | 0x80000000, 1 | 0x80000000, 0 | 0x80000000, 1, 0],
amount=123456789,
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"20912f98ea3ed849042efed0fdac8cb4fc301961c5988cba56902d8ffb61c337"
),
prev_index=0,
@@ -59,21 +59,23 @@ class TestSignSegwitTxP2WPKHInP2SH(unittest.TestCase):
version=1, lock_time=0, inputs_count=1, outputs_count=2, extra_data_len=0
)
pinp1 = PrevInput(
- script_sig=unhexlify(
+ script_sig=bytes.fromhex(
"4730440220548e087d0426b20b8a571b03b9e05829f7558b80c53c12143e342f56ab29e51d02205b68cb7fb223981d4c999725ac1485a982c4259c4f50b8280f137878c232998a012102794a25b254a268e59a5869da57fbae2fadc6727cb3309321dab409b12b2fa17c"
),
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"802cabf0843b945eabe136d7fc7c89f41021658abf56cba000acbce88c41143a"
),
prev_index=0,
sequence=4294967295,
)
pout1 = PrevOutput(
- script_pubkey=unhexlify("a91458b53ea7f832e8f096e896b8713a8c6df0e892ca87"),
+ script_pubkey=bytes.fromhex(
+ "a91458b53ea7f832e8f096e896b8713a8c6df0e892ca87"
+ ),
amount=123456789,
)
pout2 = PrevOutput(
- script_pubkey=unhexlify(
+ script_pubkey=bytes.fromhex(
"76a914b84bacdcd8f4cc59274a5bfb73f804ca10f7fd1488ac"
),
amount=865519308,
@@ -177,7 +179,7 @@ class TestSignSegwitTxP2WPKHInP2SH(unittest.TestCase):
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized header
- serialized_tx=unhexlify("01000000000101"),
+ serialized_tx=bytes.fromhex("01000000000101"),
),
),
TxAckInput(tx=TxAckInputWrapper(input=inp1)),
@@ -186,7 +188,7 @@ class TestSignSegwitTxP2WPKHInP2SH(unittest.TestCase):
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized inp1
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"37c361fb8f2d9056ba8c98c5611930fcb48cacfdd0fe2e0449d83eea982f91200000000017160014d16b8c0680c61fc6ed2e407455715055e41052f5ffffffff02"
),
),
@@ -197,7 +199,7 @@ class TestSignSegwitTxP2WPKHInP2SH(unittest.TestCase):
details=TxRequestDetailsType(request_index=1, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized out1
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"e0aebb00000000001976a91414fdede0ddc3be652a0ce1afbc1b509a55b6b94888ac"
),
signature_index=None,
@@ -211,7 +213,7 @@ class TestSignSegwitTxP2WPKHInP2SH(unittest.TestCase):
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized out2
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"3df39f060000000017a91458b53ea7f832e8f096e896b8713a8c6df0e892ca87"
),
signature_index=None,
@@ -223,11 +225,11 @@ class TestSignSegwitTxP2WPKHInP2SH(unittest.TestCase):
request_type=TXFINISHED,
details=TxRequestDetailsType(),
serialized=TxRequestSerializedType(
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"02483045022100ccd253bfdf8a5593cd7b6701370c531199f0f05a418cd547dfc7da3f21515f0f02203fa08a0753688871c220648f9edadbdb98af42e5d8269364a326572cf703895b012103e7bfe10708f715e8538c92d46ca50db6f657bbc455b7494e6a0303ccdb868b7900000000"
),
signature_index=0,
- signature=unhexlify(
+ signature=bytes.fromhex(
"3045022100ccd253bfdf8a5593cd7b6701370c531199f0f05a418cd547dfc7da3f21515f0f02203fa08a0753688871c220648f9edadbdb98af42e5d8269364a326572cf703895b"
),
),
@@ -254,7 +256,7 @@ class TestSignSegwitTxP2WPKHInP2SH(unittest.TestCase):
# 49'/1'/0'/1/0" - 2N1LGaGg836mqSQqiuUBLfcyGBhyZbremDX
address_n=[49 | 0x80000000, 1 | 0x80000000, 0 | 0x80000000, 1, 0],
amount=123456789,
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"20912f98ea3ed849042efed0fdac8cb4fc301961c5988cba56902d8ffb61c337"
),
prev_index=0,
@@ -266,21 +268,23 @@ class TestSignSegwitTxP2WPKHInP2SH(unittest.TestCase):
version=1, lock_time=0, inputs_count=1, outputs_count=2, extra_data_len=0
)
pinp1 = PrevInput(
- script_sig=unhexlify(
+ script_sig=bytes.fromhex(
"4730440220548e087d0426b20b8a571b03b9e05829f7558b80c53c12143e342f56ab29e51d02205b68cb7fb223981d4c999725ac1485a982c4259c4f50b8280f137878c232998a012102794a25b254a268e59a5869da57fbae2fadc6727cb3309321dab409b12b2fa17c"
),
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"802cabf0843b945eabe136d7fc7c89f41021658abf56cba000acbce88c41143a"
),
prev_index=0,
sequence=4294967295,
)
pout1 = PrevOutput(
- script_pubkey=unhexlify("a91458b53ea7f832e8f096e896b8713a8c6df0e892ca87"),
+ script_pubkey=bytes.fromhex(
+ "a91458b53ea7f832e8f096e896b8713a8c6df0e892ca87"
+ ),
amount=123456789,
)
pout2 = PrevOutput(
- script_pubkey=unhexlify(
+ script_pubkey=bytes.fromhex(
"76a914b84bacdcd8f4cc59274a5bfb73f804ca10f7fd1488ac"
),
amount=865519308,
@@ -380,7 +384,7 @@ class TestSignSegwitTxP2WPKHInP2SH(unittest.TestCase):
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized header
- serialized_tx=unhexlify("01000000000101"),
+ serialized_tx=bytes.fromhex("01000000000101"),
),
),
TxAckInput(tx=TxAckInputWrapper(input=inp1)),
@@ -389,7 +393,7 @@ class TestSignSegwitTxP2WPKHInP2SH(unittest.TestCase):
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized inp1
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"37c361fb8f2d9056ba8c98c5611930fcb48cacfdd0fe2e0449d83eea982f91200000000017160014d16b8c0680c61fc6ed2e407455715055e41052f5ffffffff02"
),
),
@@ -401,7 +405,7 @@ class TestSignSegwitTxP2WPKHInP2SH(unittest.TestCase):
details=TxRequestDetailsType(request_index=1, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized out1
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"e0aebb00000000001976a91414fdede0ddc3be652a0ce1afbc1b509a55b6b94888ac"
),
signature_index=None,
@@ -415,7 +419,7 @@ class TestSignSegwitTxP2WPKHInP2SH(unittest.TestCase):
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized out2
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"3df39f060000000017a91458b53ea7f832e8f096e896b8713a8c6df0e892ca87"
),
signature_index=None,
@@ -427,11 +431,11 @@ class TestSignSegwitTxP2WPKHInP2SH(unittest.TestCase):
request_type=TXFINISHED,
details=TxRequestDetailsType(),
serialized=TxRequestSerializedType(
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"02483045022100ccd253bfdf8a5593cd7b6701370c531199f0f05a418cd547dfc7da3f21515f0f02203fa08a0753688871c220648f9edadbdb98af42e5d8269364a326572cf703895b012103e7bfe10708f715e8538c92d46ca50db6f657bbc455b7494e6a0303ccdb868b7900000000"
),
signature_index=0,
- signature=unhexlify(
+ signature=bytes.fromhex(
"3045022100ccd253bfdf8a5593cd7b6701370c531199f0f05a418cd547dfc7da3f21515f0f02203fa08a0753688871c220648f9edadbdb98af42e5d8269364a326572cf703895b"
),
),
@@ -458,7 +462,7 @@ class TestSignSegwitTxP2WPKHInP2SH(unittest.TestCase):
# 49'/1'/0'/1/0" - 2N1LGaGg836mqSQqiuUBLfcyGBhyZbremDX
address_n=[49 | 0x80000000, 1 | 0x80000000, 0 | 0x80000000, 1, 0],
amount=10,
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"20912f98ea3ed849042efed0fdac8cb4fc301961c5988cba56902d8ffb61c337"
),
prev_index=0,
@@ -470,21 +474,23 @@ class TestSignSegwitTxP2WPKHInP2SH(unittest.TestCase):
version=1, lock_time=0, inputs_count=1, outputs_count=2, extra_data_len=0
)
pinp1 = PrevInput(
- script_sig=unhexlify(
+ script_sig=bytes.fromhex(
"4730440220548e087d0426b20b8a571b03b9e05829f7558b80c53c12143e342f56ab29e51d02205b68cb7fb223981d4c999725ac1485a982c4259c4f50b8280f137878c232998a012102794a25b254a268e59a5869da57fbae2fadc6727cb3309321dab409b12b2fa17c"
),
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"802cabf0843b945eabe136d7fc7c89f41021658abf56cba000acbce88c41143a"
),
prev_index=0,
sequence=4294967295,
)
pout1 = PrevOutput(
- script_pubkey=unhexlify("a91458b53ea7f832e8f096e896b8713a8c6df0e892ca87"),
+ script_pubkey=bytes.fromhex(
+ "a91458b53ea7f832e8f096e896b8713a8c6df0e892ca87"
+ ),
amount=123456789,
)
pout2 = PrevOutput(
- script_pubkey=unhexlify(
+ script_pubkey=bytes.fromhex(
"76a914b84bacdcd8f4cc59274a5bfb73f804ca10f7fd1488ac"
),
amount=865519308,
@@ -494,7 +500,7 @@ class TestSignSegwitTxP2WPKHInP2SH(unittest.TestCase):
# 49'/1'/0'/1/0" - 2N1LGaGg836mqSQqiuUBLfcyGBhyZbremDX
address_n=[49 | 0x80000000, 1 | 0x80000000, 0 | 0x80000000, 1, 0],
amount=9, # modified!
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"20912f98ea3ed849042efed0fdac8cb4fc301961c5988cba56902d8ffb61c337"
),
prev_index=0,
@@ -591,7 +597,7 @@ class TestSignSegwitTxP2WPKHInP2SH(unittest.TestCase):
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized header
- serialized_tx=unhexlify("01000000000101"),
+ serialized_tx=bytes.fromhex("01000000000101"),
),
),
]
diff --git a/core/tests/test_apps.bitcoin.segwit.signtx.p2wpkh_in_p2sh_grs.py b/core/tests/test_apps.bitcoin.segwit.signtx.p2wpkh_in_p2sh_grs.py
index 4130cd4e..c3437984 100644
--- a/core/tests/test_apps.bitcoin.segwit.signtx.p2wpkh_in_p2sh_grs.py
+++ b/core/tests/test_apps.bitcoin.segwit.signtx.p2wpkh_in_p2sh_grs.py
@@ -48,7 +48,7 @@ class TestSignSegwitTxP2WPKHInP2SH_GRS(unittest.TestCase):
# 49'/1'/0'/1/0" - 2N1LGaGg836mqSQqiuUBLfcyGBhyZYBtBZ7
address_n=[49 | 0x80000000, 1 | 0x80000000, 0 | 0x80000000, 1, 0],
amount=123456789,
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"09a48bce2f9d5c6e4f0cb9ea1b32d0891855e8acfe5334f9ebd72b9ad2de60cf"
),
prev_index=0,
@@ -64,21 +64,23 @@ class TestSignSegwitTxP2WPKHInP2SH_GRS(unittest.TestCase):
extra_data_len=0,
)
pinp1 = PrevInput(
- script_sig=unhexlify(
+ script_sig=bytes.fromhex(
"47304402201f8f57f708144c3a11da322546cb37bd385aa825d940c37e8016f0efd6ec3e9402202a41bc02c29e4f3f13efd4bededbcd4308a6393279111d614ee1f7635cf3e65701210371546a36bdf6bc82087301b3f6e759736dc8790150673d2e7e2715d2ad72f3a4"
),
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"4f2f857f39ed1afe05542d058fb0be865a387446e32fc876d086203f483f61d1"
),
prev_index=1,
sequence=4294967294,
)
pout1 = PrevOutput(
- script_pubkey=unhexlify("a91458b53ea7f832e8f096e896b8713a8c6df0e892ca87"),
+ script_pubkey=bytes.fromhex(
+ "a91458b53ea7f832e8f096e896b8713a8c6df0e892ca87"
+ ),
amount=123456789,
)
pout2 = PrevOutput(
- script_pubkey=unhexlify(
+ script_pubkey=bytes.fromhex(
"76a91435528b20e9a793cf2c3a1cf9cff1f2127ad377da88ac"
),
amount=9764242764,
@@ -188,7 +190,7 @@ class TestSignSegwitTxP2WPKHInP2SH_GRS(unittest.TestCase):
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized header
- serialized_tx=unhexlify("01000000000101"),
+ serialized_tx=bytes.fromhex("01000000000101"),
),
),
TxAckInput(tx=TxAckInputWrapper(input=inp1)),
@@ -197,7 +199,7 @@ class TestSignSegwitTxP2WPKHInP2SH_GRS(unittest.TestCase):
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized inp1
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"cf60ded29a2bd7ebf93453feace8551889d0321beab90c4f6e5c9d2fce8ba4090000000017160014d16b8c0680c61fc6ed2e407455715055e41052f5feffffff02"
),
),
@@ -208,7 +210,7 @@ class TestSignSegwitTxP2WPKHInP2SH_GRS(unittest.TestCase):
details=TxRequestDetailsType(request_index=1, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized out1
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"e0aebb00000000001976a914a579388225827d9f2fe9014add644487808c695d88ac"
),
signature_index=None,
@@ -222,7 +224,7 @@ class TestSignSegwitTxP2WPKHInP2SH_GRS(unittest.TestCase):
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized out2
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"3df39f060000000017a91458b53ea7f832e8f096e896b8713a8c6df0e892ca87"
),
signature_index=None,
@@ -234,11 +236,11 @@ class TestSignSegwitTxP2WPKHInP2SH_GRS(unittest.TestCase):
request_type=TXFINISHED,
details=TxRequestDetailsType(),
serialized=TxRequestSerializedType(
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"02483045022100b7ce2972bcbc3a661fe320ba901e680913b2753fcb47055c9c6ba632fc4acf81022001c3cfd6c2fe92eb60f5176ce0f43707114dd7223da19c56f2df89c13c2fef80012103e7bfe10708f715e8538c92d46ca50db6f657bbc455b7494e6a0303ccdb868b7904ee0900"
),
signature_index=0,
- signature=unhexlify(
+ signature=bytes.fromhex(
"3045022100b7ce2972bcbc3a661fe320ba901e680913b2753fcb47055c9c6ba632fc4acf81022001c3cfd6c2fe92eb60f5176ce0f43707114dd7223da19c56f2df89c13c2fef80"
),
),
@@ -265,7 +267,7 @@ class TestSignSegwitTxP2WPKHInP2SH_GRS(unittest.TestCase):
# 49'/1'/0'/1/0" - 2N1LGaGg836mqSQqiuUBLfcyGBhyZYBtBZ7
address_n=[49 | 0x80000000, 1 | 0x80000000, 0 | 0x80000000, 1, 0],
amount=123456789,
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"09a48bce2f9d5c6e4f0cb9ea1b32d0891855e8acfe5334f9ebd72b9ad2de60cf"
),
prev_index=0,
@@ -281,21 +283,23 @@ class TestSignSegwitTxP2WPKHInP2SH_GRS(unittest.TestCase):
extra_data_len=0,
)
pinp1 = PrevInput(
- script_sig=unhexlify(
+ script_sig=bytes.fromhex(
"47304402201f8f57f708144c3a11da322546cb37bd385aa825d940c37e8016f0efd6ec3e9402202a41bc02c29e4f3f13efd4bededbcd4308a6393279111d614ee1f7635cf3e65701210371546a36bdf6bc82087301b3f6e759736dc8790150673d2e7e2715d2ad72f3a4"
),
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"4f2f857f39ed1afe05542d058fb0be865a387446e32fc876d086203f483f61d1"
),
prev_index=1,
sequence=4294967294,
)
pout1 = PrevOutput(
- script_pubkey=unhexlify("a91458b53ea7f832e8f096e896b8713a8c6df0e892ca87"),
+ script_pubkey=bytes.fromhex(
+ "a91458b53ea7f832e8f096e896b8713a8c6df0e892ca87"
+ ),
amount=123456789,
)
pout2 = PrevOutput(
- script_pubkey=unhexlify(
+ script_pubkey=bytes.fromhex(
"76a91435528b20e9a793cf2c3a1cf9cff1f2127ad377da88ac"
),
amount=9764242764,
@@ -401,7 +405,7 @@ class TestSignSegwitTxP2WPKHInP2SH_GRS(unittest.TestCase):
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized header
- serialized_tx=unhexlify("01000000000101"),
+ serialized_tx=bytes.fromhex("01000000000101"),
),
),
TxAckInput(tx=TxAckInputWrapper(input=inp1)),
@@ -410,7 +414,7 @@ class TestSignSegwitTxP2WPKHInP2SH_GRS(unittest.TestCase):
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized inp1
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"cf60ded29a2bd7ebf93453feace8551889d0321beab90c4f6e5c9d2fce8ba4090000000017160014d16b8c0680c61fc6ed2e407455715055e41052f5feffffff02"
),
),
@@ -422,7 +426,7 @@ class TestSignSegwitTxP2WPKHInP2SH_GRS(unittest.TestCase):
details=TxRequestDetailsType(request_index=1, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized out1
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"e0aebb00000000001976a914a579388225827d9f2fe9014add644487808c695d88ac"
),
signature_index=None,
@@ -436,7 +440,7 @@ class TestSignSegwitTxP2WPKHInP2SH_GRS(unittest.TestCase):
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
# returned serialized out2
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"3df39f060000000017a91458b53ea7f832e8f096e896b8713a8c6df0e892ca87"
),
signature_index=None,
@@ -448,11 +452,11 @@ class TestSignSegwitTxP2WPKHInP2SH_GRS(unittest.TestCase):
request_type=TXFINISHED,
details=TxRequestDetailsType(),
serialized=TxRequestSerializedType(
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"02483045022100b7ce2972bcbc3a661fe320ba901e680913b2753fcb47055c9c6ba632fc4acf81022001c3cfd6c2fe92eb60f5176ce0f43707114dd7223da19c56f2df89c13c2fef80012103e7bfe10708f715e8538c92d46ca50db6f657bbc455b7494e6a0303ccdb868b7904ee0900"
),
signature_index=0,
- signature=unhexlify(
+ signature=bytes.fromhex(
"3045022100b7ce2972bcbc3a661fe320ba901e680913b2753fcb47055c9c6ba632fc4acf81022001c3cfd6c2fe92eb60f5176ce0f43707114dd7223da19c56f2df89c13c2fef80"
),
),
diff --git a/core/tests/test_apps.bitcoin.sign_tx.writers.py b/core/tests/test_apps.bitcoin.sign_tx.writers.py
index f2588bd5..b412fdde 100644
--- a/core/tests/test_apps.bitcoin.sign_tx.writers.py
+++ b/core/tests/test_apps.bitcoin.sign_tx.writers.py
@@ -12,7 +12,7 @@ class TestWriters(unittest.TestCase):
inp = TxInput(
address_n=[0],
amount=390000,
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"d5f65ee80147b4bcc70b75e4bbf2d7382021b871bd8867ef8fa525ef50864882"
),
prev_index=0,
@@ -34,13 +34,13 @@ class TestWriters(unittest.TestCase):
inp = TxInput(
address_n=[0],
amount=390000,
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"d5f65ee80147b4bcc70b75e4bbf2d7382021b871bd8867ef8fa525ef50864882"
),
prev_index=0,
script_type=InputScriptType.SPENDWITNESS,
sequence=0xFFFFFFFF,
- script_pubkey=unhexlify(
+ script_pubkey=bytes.fromhex(
"76a91424a56db43cf6f2b02e838ea493f95d8d6047423188ac"
),
script_sig=b"0123456789",
diff --git a/core/tests/test_apps.bitcoin.signtx.fee_threshold.py b/core/tests/test_apps.bitcoin.signtx.fee_threshold.py
index b0ef6e57..8b0b27c2 100644
--- a/core/tests/test_apps.bitcoin.signtx.fee_threshold.py
+++ b/core/tests/test_apps.bitcoin.signtx.fee_threshold.py
@@ -48,18 +48,18 @@ class TestSignTxFeeThreshold(unittest.TestCase):
coin_bitcoin = coins.by_name('Bitcoin')
ptx1 = PrevTx(version=1, lock_time=0, inputs_count=2, outputs_count=1, extra_data_len=0)
- pinp1 = PrevInput(script_sig=unhexlify('483045022072ba61305fe7cb542d142b8f3299a7b10f9ea61f6ffaab5dca8142601869d53c0221009a8027ed79eb3b9bc13577ac2853269323434558528c6b6a7e542be46e7e9a820141047a2d177c0f3626fc68c53610b0270fa6156181f46586c679ba6a88b34c6f4874686390b4d92e5769fbb89c8050b984f4ec0b257a0e5c4ff8bd3b035a51709503'),
- prev_hash=unhexlify('c16a03f1cf8f99f6b5297ab614586cacec784c2d259af245909dedb0e39eddcf'),
+ pinp1 = PrevInput(script_sig=bytes.fromhex('483045022072ba61305fe7cb542d142b8f3299a7b10f9ea61f6ffaab5dca8142601869d53c0221009a8027ed79eb3b9bc13577ac2853269323434558528c6b6a7e542be46e7e9a820141047a2d177c0f3626fc68c53610b0270fa6156181f46586c679ba6a88b34c6f4874686390b4d92e5769fbb89c8050b984f4ec0b257a0e5c4ff8bd3b035a51709503'),
+ prev_hash=bytes.fromhex('c16a03f1cf8f99f6b5297ab614586cacec784c2d259af245909dedb0e39eddcf'),
prev_index=1)
- pinp2 = PrevInput(script_sig=unhexlify('48304502200fd63adc8f6cb34359dc6cca9e5458d7ea50376cbd0a74514880735e6d1b8a4c0221008b6ead7fe5fbdab7319d6dfede3a0bc8e2a7c5b5a9301636d1de4aa31a3ee9b101410486ad608470d796236b003635718dfc07c0cac0cfc3bfc3079e4f491b0426f0676e6643a39198e8e7bdaffb94f4b49ea21baa107ec2e237368872836073668214'),
- prev_hash=unhexlify('1ae39a2f8d59670c8fc61179148a8e61e039d0d9e8ab08610cb69b4a19453eaf'),
+ pinp2 = PrevInput(script_sig=bytes.fromhex('48304502200fd63adc8f6cb34359dc6cca9e5458d7ea50376cbd0a74514880735e6d1b8a4c0221008b6ead7fe5fbdab7319d6dfede3a0bc8e2a7c5b5a9301636d1de4aa31a3ee9b101410486ad608470d796236b003635718dfc07c0cac0cfc3bfc3079e4f491b0426f0676e6643a39198e8e7bdaffb94f4b49ea21baa107ec2e237368872836073668214'),
+ prev_hash=bytes.fromhex('1ae39a2f8d59670c8fc61179148a8e61e039d0d9e8ab08610cb69b4a19453eaf'),
prev_index=1)
- pout1 = PrevOutput(script_pubkey=unhexlify('76a91424a56db43cf6f2b02e838ea493f95d8d6047423188ac'),
+ pout1 = PrevOutput(script_pubkey=bytes.fromhex('76a91424a56db43cf6f2b02e838ea493f95d8d6047423188ac'),
amount=390000)
inp1 = TxInput(address_n=[0], # 14LmW5k4ssUrtbAB4255zdqv3b4w1TuX9e
# amount=390000,
- prev_hash=unhexlify('d5f65ee80147b4bcc70b75e4bbf2d7382021b871bd8867ef8fa525ef50864882'),
+ prev_hash=bytes.fromhex('d5f65ee80147b4bcc70b75e4bbf2d7382021b871bd8867ef8fa525ef50864882'),
prev_index=0,
amount=None)
out1 = TxOutput(address='1MJ2tj2ThBE62zXbBYA5ZaN3fdve5CPAz1',
@@ -76,13 +76,13 @@ class TestSignTxFeeThreshold(unittest.TestCase):
TxAckInput(tx=TxAckInputWrapper(input=inp1)),
helpers.UiConfirmForeignAddress(address_n=inp1.address_n),
True,
- TxRequest(request_type=TXMETA, details=TxRequestDetailsType(request_index=None, tx_hash=unhexlify('d5f65ee80147b4bcc70b75e4bbf2d7382021b871bd8867ef8fa525ef50864882')), serialized=None),
+ TxRequest(request_type=TXMETA, details=TxRequestDetailsType(request_index=None, tx_hash=bytes.fromhex('d5f65ee80147b4bcc70b75e4bbf2d7382021b871bd8867ef8fa525ef50864882')), serialized=None),
TxAckPrevMeta(tx=ptx1),
- TxRequest(request_type=TXINPUT, details=TxRequestDetailsType(request_index=0, tx_hash=unhexlify('d5f65ee80147b4bcc70b75e4bbf2d7382021b871bd8867ef8fa525ef50864882')), serialized=None),
+ TxRequest(request_type=TXINPUT, details=TxRequestDetailsType(request_index=0, tx_hash=bytes.fromhex('d5f65ee80147b4bcc70b75e4bbf2d7382021b871bd8867ef8fa525ef50864882')), serialized=None),
TxAckPrevInput(tx=TxAckPrevInputWrapper(input=pinp1)),
- TxRequest(request_type=TXINPUT, details=TxRequestDetailsType(request_index=1, tx_hash=unhexlify('d5f65ee80147b4bcc70b75e4bbf2d7382021b871bd8867ef8fa525ef50864882')), serialized=None),
+ TxRequest(request_type=TXINPUT, details=TxRequestDetailsType(request_index=1, tx_hash=bytes.fromhex('d5f65ee80147b4bcc70b75e4bbf2d7382021b871bd8867ef8fa525ef50864882')), serialized=None),
TxAckPrevInput(tx=TxAckPrevInputWrapper(input=pinp2)),
- TxRequest(request_type=TXOUTPUT, details=TxRequestDetailsType(request_index=0, tx_hash=unhexlify('d5f65ee80147b4bcc70b75e4bbf2d7382021b871bd8867ef8fa525ef50864882')), serialized=None),
+ TxRequest(request_type=TXOUTPUT, details=TxRequestDetailsType(request_index=0, tx_hash=bytes.fromhex('d5f65ee80147b4bcc70b75e4bbf2d7382021b871bd8867ef8fa525ef50864882')), serialized=None),
TxAckPrevOutput(tx=TxAckPrevOutputWrapper(output=pout1)),
TxRequest(request_type=TXOUTPUT, details=TxRequestDetailsType(request_index=0, tx_hash=None), serialized=None),
TxAckOutput(tx=TxAckOutputWrapper(output=out1)),
@@ -114,27 +114,27 @@ class TestSignTxFeeThreshold(unittest.TestCase):
version=1, lock_time=0, inputs_count=2, outputs_count=1, extra_data_len=0
)
pinp1 = PrevInput(
- script_sig=unhexlify(
+ script_sig=bytes.fromhex(
"483045022072ba61305fe7cb542d142b8f3299a7b10f9ea61f6ffaab5dca8142601869d53c0221009a8027ed79eb3b9bc13577ac2853269323434558528c6b6a7e542be46e7e9a820141047a2d177c0f3626fc68c53610b0270fa6156181f46586c679ba6a88b34c6f4874686390b4d92e5769fbb89c8050b984f4ec0b257a0e5c4ff8bd3b035a51709503"
),
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"c16a03f1cf8f99f6b5297ab614586cacec784c2d259af245909dedb0e39eddcf"
),
prev_index=1,
sequence=0xFFFF_FFFF,
)
pinp2 = PrevInput(
- script_sig=unhexlify(
+ script_sig=bytes.fromhex(
"48304502200fd63adc8f6cb34359dc6cca9e5458d7ea50376cbd0a74514880735e6d1b8a4c0221008b6ead7fe5fbdab7319d6dfede3a0bc8e2a7c5b5a9301636d1de4aa31a3ee9b101410486ad608470d796236b003635718dfc07c0cac0cfc3bfc3079e4f491b0426f0676e6643a39198e8e7bdaffb94f4b49ea21baa107ec2e237368872836073668214"
),
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"1ae39a2f8d59670c8fc61179148a8e61e039d0d9e8ab08610cb69b4a19453eaf"
),
prev_index=1,
sequence=0xFFFF_FFFF,
)
pout1 = PrevOutput(
- script_pubkey=unhexlify(
+ script_pubkey=bytes.fromhex(
"76a91424a56db43cf6f2b02e838ea493f95d8d6047423188ac"
),
amount=390000,
@@ -143,7 +143,7 @@ class TestSignTxFeeThreshold(unittest.TestCase):
inp1 = TxInput(
address_n=[0], # 14LmW5k4ssUrtbAB4255zdqv3b4w1TuX9e
amount=390000,
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"d5f65ee80147b4bcc70b75e4bbf2d7382021b871bd8867ef8fa525ef50864882"
),
prev_index=0,
@@ -201,7 +201,7 @@ class TestSignTxFeeThreshold(unittest.TestCase):
request_type=TXMETA,
details=TxRequestDetailsType(
request_index=None,
- tx_hash=unhexlify(
+ tx_hash=bytes.fromhex(
"d5f65ee80147b4bcc70b75e4bbf2d7382021b871bd8867ef8fa525ef50864882"
),
),
@@ -212,7 +212,7 @@ class TestSignTxFeeThreshold(unittest.TestCase):
request_type=TXINPUT,
details=TxRequestDetailsType(
request_index=0,
- tx_hash=unhexlify(
+ tx_hash=bytes.fromhex(
"d5f65ee80147b4bcc70b75e4bbf2d7382021b871bd8867ef8fa525ef50864882"
),
),
@@ -223,7 +223,7 @@ class TestSignTxFeeThreshold(unittest.TestCase):
request_type=TXINPUT,
details=TxRequestDetailsType(
request_index=1,
- tx_hash=unhexlify(
+ tx_hash=bytes.fromhex(
"d5f65ee80147b4bcc70b75e4bbf2d7382021b871bd8867ef8fa525ef50864882"
),
),
@@ -234,7 +234,7 @@ class TestSignTxFeeThreshold(unittest.TestCase):
request_type=TXOUTPUT,
details=TxRequestDetailsType(
request_index=0,
- tx_hash=unhexlify(
+ tx_hash=bytes.fromhex(
"d5f65ee80147b4bcc70b75e4bbf2d7382021b871bd8867ef8fa525ef50864882"
),
),
@@ -245,7 +245,7 @@ class TestSignTxFeeThreshold(unittest.TestCase):
request_type=TXINPUT,
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
- serialized_tx=unhexlify("0100000001")
+ serialized_tx=bytes.fromhex("0100000001")
),
),
]
diff --git a/core/tests/test_apps.bitcoin.signtx.omni.py b/core/tests/test_apps.bitcoin.signtx.omni.py
index b6893db4..a04a5cc4 100644
--- a/core/tests/test_apps.bitcoin.signtx.omni.py
+++ b/core/tests/test_apps.bitcoin.signtx.omni.py
@@ -16,7 +16,7 @@ class TestSignTxOmni(unittest.TestCase):
"6f6d6e69000000000000001f0000000020c855": True,
}
for k, v in VECTORS.items():
- k = unhexlify(k)
+ k = bytes.fromhex(k)
self.assertEqual(is_valid(k), v)
def test_parse(self):
@@ -28,7 +28,7 @@ class TestSignTxOmni(unittest.TestCase):
"6f6d6e6901000000": "Unknown transaction",
}
for k, v in VECTORS.items():
- k = unhexlify(k)
+ k = bytes.fromhex(k)
self.assertEqual(parse(k), v)
diff --git a/core/tests/test_apps.bitcoin.signtx.py b/core/tests/test_apps.bitcoin.signtx.py
index ec3ee428..3c649add 100644
--- a/core/tests/test_apps.bitcoin.signtx.py
+++ b/core/tests/test_apps.bitcoin.signtx.py
@@ -49,27 +49,27 @@ class TestSignTx(unittest.TestCase):
version=1, lock_time=0, inputs_count=2, outputs_count=1, extra_data_len=0
)
pinp1 = PrevInput(
- script_sig=unhexlify(
+ script_sig=bytes.fromhex(
"47304402202df6c8885489be0fd52ed1f82c20b4c2c03e479369ea8439ed6233a3bb349ddd02207f749a00dd98d1aca699178d8fa954dc45b9faff33d3c9f03b81fa766061f2d70121038b60c00f69d78f2c5df84a24b30894c3700e4d6176a1f440461c8c69bf1f4262"
),
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"468c0de3bf9dfcc4915354904108611db9547a16ec38a24bf6b240ccc946e0d3"
),
prev_index=0,
sequence=0xFFFF_FFFF,
)
pinp2 = PrevInput(
- script_sig=unhexlify(
+ script_sig=bytes.fromhex(
"483045022100b11b3804e9b5fbbad70532e550192b3bbdd65b51f30572638a5559a86600856702204b3bd50a847ddf66426c0f413b9e1a98388b0d36479e66ef37b2d53d9ad13d47012103d443712f673afafafc006ccb6e19220de7ae0c07c9832666103974293d04a93c"
),
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"ebb32bba661e3dccb216acf593de26223f5f2c17f6a75634f2a0b581c4855fa0"
),
prev_index=0,
sequence=0xFFFF_FFFF,
)
pout1 = PrevOutput(
- script_pubkey=unhexlify(
+ script_pubkey=bytes.fromhex(
"76a914be145c9a7c131ad0c6c9b86f83748d660b42e2f488ac"
),
amount=3_801_747,
@@ -77,7 +77,7 @@ class TestSignTx(unittest.TestCase):
inp1 = TxInput(
address_n=[44 | 0x80000000, 0 | 0x80000000, 0 | 0x80000000, 0, 10],
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"1f326f65768d55ef146efbb345bd87abe84ac7185726d0457a026fc347a26ef3"
),
prev_index=0,
@@ -137,7 +137,7 @@ class TestSignTx(unittest.TestCase):
request_type=TXMETA,
details=TxRequestDetailsType(
request_index=None,
- tx_hash=unhexlify(
+ tx_hash=bytes.fromhex(
"1f326f65768d55ef146efbb345bd87abe84ac7185726d0457a026fc347a26ef3"
),
),
@@ -148,7 +148,7 @@ class TestSignTx(unittest.TestCase):
request_type=TXINPUT,
details=TxRequestDetailsType(
request_index=0,
- tx_hash=unhexlify(
+ tx_hash=bytes.fromhex(
"1f326f65768d55ef146efbb345bd87abe84ac7185726d0457a026fc347a26ef3"
),
),
@@ -159,7 +159,7 @@ class TestSignTx(unittest.TestCase):
request_type=TXINPUT,
details=TxRequestDetailsType(
request_index=1,
- tx_hash=unhexlify(
+ tx_hash=bytes.fromhex(
"1f326f65768d55ef146efbb345bd87abe84ac7185726d0457a026fc347a26ef3"
),
),
@@ -170,7 +170,7 @@ class TestSignTx(unittest.TestCase):
request_type=TXOUTPUT,
details=TxRequestDetailsType(
request_index=0,
- tx_hash=unhexlify(
+ tx_hash=bytes.fromhex(
"1f326f65768d55ef146efbb345bd87abe84ac7185726d0457a026fc347a26ef3"
),
),
@@ -181,7 +181,7 @@ class TestSignTx(unittest.TestCase):
request_type=TXINPUT,
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
- serialized_tx=unhexlify("0100000001")
+ serialized_tx=bytes.fromhex("0100000001")
),
),
TxAckInput(tx=TxAckInputWrapper(input=inp1)),
@@ -196,10 +196,10 @@ class TestSignTx(unittest.TestCase):
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
signature_index=0,
- signature=unhexlify(
+ signature=bytes.fromhex(
"3045022100bebe58e7eac8170334f987d0f67032a2eddd0e2f378e002502ec88a69460ea460220040a8effc41167f5d5a5ffc77f37317d8125c7cd05f92d142e4d977f2f132c94"
),
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"f36ea247c36f027a45d0265718c74ae8ab87bd45b3fb6e14ef558d76656f321f000000006b483045022100bebe58e7eac8170334f987d0f67032a2eddd0e2f378e002502ec88a69460ea460220040a8effc41167f5d5a5ffc77f37317d8125c7cd05f92d142e4d977f2f132c940121038bac33bcdaeec5626e2f2c5680a9fdc5e551d4e1167f272825bea98e6158d4c8ffffffff01"
),
),
@@ -211,7 +211,7 @@ class TestSignTx(unittest.TestCase):
serialized=TxRequestSerializedType(
signature_index=None,
signature=None,
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"433f3900000000001976a9145d48886f4e2aad3164e55e23a7a41b921646a33488ac00000000"
),
),
diff --git a/core/tests/test_apps.bitcoin.signtx_decred.py b/core/tests/test_apps.bitcoin.signtx_decred.py
index fda79355..f090798d 100644
--- a/core/tests/test_apps.bitcoin.signtx_decred.py
+++ b/core/tests/test_apps.bitcoin.signtx_decred.py
@@ -43,22 +43,26 @@ if (
version=1, lock_time=0, inputs_count=1, outputs_count=2, extra_data_len=0
)
pinp1 = PrevInput(
- script_sig=unhexlify(
+ script_sig=bytes.fromhex(
"47304402207d127d59a44187952d9d0de94ad34a19dd9a84beb124fd8a3fb439c862544d3202206618f321385c30bda96fb01ce03f70a269d78a301c0b0c2e3e3689dfae3f4733012102ae1f6b51086bd753f072f94eb8ffe6806d3570c088a3ede46c678b6ea47d1675"
),
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"21012b08c5077036460e8f75bbc57beb11d7bc30e7ad224ad5e67d15bd086500"
),
prev_index=2,
sequence=0xFFFF_FFFF,
)
pout1 = PrevOutput(
- script_pubkey=unhexlify("76a914e4111051ae0349ab5589cf2b7e125c6da694a1a188ac"),
+ script_pubkey=bytes.fromhex(
+ "76a914e4111051ae0349ab5589cf2b7e125c6da694a1a188ac"
+ ),
amount=153_185_001,
decred_script_version=0,
)
pout2 = PrevOutput(
- script_pubkey=unhexlify("76a914dc1a98d791735eb9a8715a2a219c23680edcedad88ac"),
+ script_pubkey=bytes.fromhex(
+ "76a914dc1a98d791735eb9a8715a2a219c23680edcedad88ac"
+ ),
amount=200_000_000,
decred_script_version=0,
)
@@ -72,7 +76,7 @@ class TestSignTxDecred(unittest.TestCase):
def test_one_one_fee(self):
inp1 = TxInput(
address_n=[44 | 0x80000000, 1 | 0x80000000, 0 | 0x80000000, 0, 0],
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"4d8acde26d5efc7f5df1b3cdada6b11027616520c883e09c919b88f0f0cb6410"
),
prev_index=1,
@@ -103,7 +107,7 @@ class TestSignTxDecred(unittest.TestCase):
request_type=TXINPUT,
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
- serialized_tx=unhexlify("0100000001")
+ serialized_tx=bytes.fromhex("0100000001")
),
),
TxAckInput(tx=TxAckInputWrapper(input=inp1)),
@@ -111,7 +115,7 @@ class TestSignTxDecred(unittest.TestCase):
request_type=TXOUTPUT,
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"1064cbf0f0889b919ce083c82065612710b1a6adcdb3f15d7ffc5e6de2cd8a4d0100000000ffffffff01"
)
),
@@ -134,7 +138,7 @@ class TestSignTxDecred(unittest.TestCase):
request_type=TXINPUT,
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"603bea0b0000000000001976a914819d291a2f7fbf770e784bfd78b5ce92c58e95ea88ac0000000000000000"
)
),
@@ -144,7 +148,7 @@ class TestSignTxDecred(unittest.TestCase):
request_type=TXMETA,
details=TxRequestDetailsType(
request_index=None,
- tx_hash=unhexlify(
+ tx_hash=bytes.fromhex(
"4d8acde26d5efc7f5df1b3cdada6b11027616520c883e09c919b88f0f0cb6410"
),
),
@@ -155,7 +159,7 @@ class TestSignTxDecred(unittest.TestCase):
request_type=TXINPUT,
details=TxRequestDetailsType(
request_index=0,
- tx_hash=unhexlify(
+ tx_hash=bytes.fromhex(
"4d8acde26d5efc7f5df1b3cdada6b11027616520c883e09c919b88f0f0cb6410"
),
),
@@ -166,7 +170,7 @@ class TestSignTxDecred(unittest.TestCase):
request_type=TXOUTPUT,
details=TxRequestDetailsType(
request_index=0,
- tx_hash=unhexlify(
+ tx_hash=bytes.fromhex(
"4d8acde26d5efc7f5df1b3cdada6b11027616520c883e09c919b88f0f0cb6410"
),
),
@@ -177,7 +181,7 @@ class TestSignTxDecred(unittest.TestCase):
request_type=TXOUTPUT,
details=TxRequestDetailsType(
request_index=1,
- tx_hash=unhexlify(
+ tx_hash=bytes.fromhex(
"4d8acde26d5efc7f5df1b3cdada6b11027616520c883e09c919b88f0f0cb6410"
),
),
@@ -187,7 +191,7 @@ class TestSignTxDecred(unittest.TestCase):
TxRequest(
request_type=TXINPUT,
details=TxRequestDetailsType(request_index=0, tx_hash=None),
- serialized=TxRequestSerializedType(serialized_tx=unhexlify("01")),
+ serialized=TxRequestSerializedType(serialized_tx=bytes.fromhex("01")),
),
TxAckInput(tx=TxAckInputWrapper(input=inp1)),
TxRequest(
@@ -195,10 +199,10 @@ class TestSignTxDecred(unittest.TestCase):
details=TxRequestDetailsType(request_index=None, tx_hash=None),
serialized=TxRequestSerializedType(
signature_index=0,
- signature=unhexlify(
+ signature=bytes.fromhex(
"304402205ea5a0aec7e405eb3c792165f103f61f8ef862e76a2b0146bec1082b243cfbff022061e307113d389b969313bbee2c9a149fad4afdf715e8bd78df579438ef692814"
),
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"00c2eb0b0000000000000000ffffffff6a47304402205ea5a0aec7e405eb3c792165f103f61f8ef862e76a2b0146bec1082b243cfbff022061e307113d389b969313bbee2c9a149fad4afdf715e8bd78df579438ef6928140121030e669acac1f280d1ddf441cd2ba5e97417bf2689e4bbec86df4f831bf9f7ffd0"
),
),
@@ -226,7 +230,7 @@ class TestSignTxDecred(unittest.TestCase):
def test_purchase_ticket(self):
inp1 = TxInput(
address_n=[44 | 0x80000000, 1 | 0x80000000, 0 | 0x80000000, 0, 0],
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"4d8acde26d5efc7f5df1b3cdada6b11027616520c883e09c919b88f0f0cb6410"
),
prev_index=1,
@@ -270,7 +274,7 @@ class TestSignTxDecred(unittest.TestCase):
request_type=TXINPUT,
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
- serialized_tx=unhexlify("0100000001")
+ serialized_tx=bytes.fromhex("0100000001")
),
),
TxAckInput(tx=TxAckInputWrapper(input=inp1)),
@@ -278,7 +282,7 @@ class TestSignTxDecred(unittest.TestCase):
request_type=TXOUTPUT,
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"1064cbf0f0889b919ce083c82065612710b1a6adcdb3f15d7ffc5e6de2cd8a4d0100000000ffffffff03"
)
),
@@ -292,7 +296,7 @@ class TestSignTxDecred(unittest.TestCase):
request_type=TXOUTPUT,
details=TxRequestDetailsType(request_index=1, tx_hash=None),
serialized=TxRequestSerializedType(
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"603bea0b0000000000001aba76a914819d291a2f7fbf770e784bfd78b5ce92c58e95ea88ac"
)
),
@@ -302,7 +306,7 @@ class TestSignTxDecred(unittest.TestCase):
request_type=TXOUTPUT,
details=TxRequestDetailsType(request_index=2, tx_hash=None),
serialized=TxRequestSerializedType(
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"00000000000000000000206a1edc1a98d791735eb9a8715a2a219c23680edcedad00c2eb0b000000000058"
)
),
@@ -321,7 +325,7 @@ class TestSignTxDecred(unittest.TestCase):
request_type=TXINPUT,
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"000000000000000000001abd76a914000000000000000000000000000000000000000088ac0000000000000000"
)
),
@@ -331,7 +335,7 @@ class TestSignTxDecred(unittest.TestCase):
request_type=TXMETA,
details=TxRequestDetailsType(
request_index=None,
- tx_hash=unhexlify(
+ tx_hash=bytes.fromhex(
"4d8acde26d5efc7f5df1b3cdada6b11027616520c883e09c919b88f0f0cb6410"
),
),
@@ -342,7 +346,7 @@ class TestSignTxDecred(unittest.TestCase):
request_type=TXINPUT,
details=TxRequestDetailsType(
request_index=0,
- tx_hash=unhexlify(
+ tx_hash=bytes.fromhex(
"4d8acde26d5efc7f5df1b3cdada6b11027616520c883e09c919b88f0f0cb6410"
),
),
@@ -353,7 +357,7 @@ class TestSignTxDecred(unittest.TestCase):
request_type=TXOUTPUT,
details=TxRequestDetailsType(
request_index=0,
- tx_hash=unhexlify(
+ tx_hash=bytes.fromhex(
"4d8acde26d5efc7f5df1b3cdada6b11027616520c883e09c919b88f0f0cb6410"
),
),
@@ -364,7 +368,7 @@ class TestSignTxDecred(unittest.TestCase):
request_type=TXOUTPUT,
details=TxRequestDetailsType(
request_index=1,
- tx_hash=unhexlify(
+ tx_hash=bytes.fromhex(
"4d8acde26d5efc7f5df1b3cdada6b11027616520c883e09c919b88f0f0cb6410"
),
),
@@ -374,7 +378,7 @@ class TestSignTxDecred(unittest.TestCase):
TxRequest(
request_type=TXINPUT,
details=TxRequestDetailsType(request_index=0, tx_hash=None),
- serialized=TxRequestSerializedType(serialized_tx=unhexlify("01")),
+ serialized=TxRequestSerializedType(serialized_tx=bytes.fromhex("01")),
),
TxAckInput(tx=TxAckInputWrapper(input=inp1)),
TxRequest(
@@ -382,10 +386,10 @@ class TestSignTxDecred(unittest.TestCase):
details=TxRequestDetailsType(),
serialized=TxRequestSerializedType(
signature_index=0,
- signature=unhexlify(
+ signature=bytes.fromhex(
"3045022100b3a11ff4befcc035623de7665aaa76dacc9252e53aabf2a5d61238151e696532022004cbcc537c1d539e04c823140bac4524bdba09f528f5c4b76f3f1022b7dc0ad4"
),
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"00c2eb0b0000000000000000ffffffff6b483045022100b3a11ff4befcc035623de7665aaa76dacc9252e53aabf2a5d61238151e696532022004cbcc537c1d539e04c823140bac4524bdba09f528f5c4b76f3f1022b7dc0ad40121030e669acac1f280d1ddf441cd2ba5e97417bf2689e4bbec86df4f831bf9f7ffd0"
),
),
diff --git a/core/tests/test_apps.bitcoin.signtx_grs.py b/core/tests/test_apps.bitcoin.signtx_grs.py
index 15fe027f..988cb435 100644
--- a/core/tests/test_apps.bitcoin.signtx_grs.py
+++ b/core/tests/test_apps.bitcoin.signtx_grs.py
@@ -52,17 +52,17 @@ class TestSignTx_GRS(unittest.TestCase):
extra_data_len=0,
)
pinp1 = PrevInput(
- script_sig=unhexlify(
+ script_sig=bytes.fromhex(
"48304502210096a287593b1212a188e778596eb8ecd4cc169b93a4d115226460d8e3deae431c02206c78ec09b3df977f04a6df5eb53181165c4ea5a0b35f826551349130f879d6b8012102cf5126ff54e38a80a919579d7091cafe24840eab1d30fe2b4d59bdd9d267cad8"
),
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"7dc74a738c50c2ae1228ce9890841e5355fd6d7f2c1367e0a74403ab60db3224"
),
prev_index=0,
sequence=4294967294,
)
pout1 = PrevOutput(
- script_pubkey=unhexlify(
+ script_pubkey=bytes.fromhex(
"76a914172b4e06e9b7881a48d2ee8062b495d0b2517fe888ac"
),
amount=210016,
@@ -76,7 +76,7 @@ class TestSignTx_GRS(unittest.TestCase):
0,
2,
], # FXHDsC5ZqWQHkDmShzgRVZ1MatpWhwxTAA
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"cb74c8478c5814742c87cffdb4a21231869888f8042fb07a90e015a9db1f9d4a"
),
prev_index=0,
@@ -131,7 +131,7 @@ class TestSignTx_GRS(unittest.TestCase):
request_type=TXMETA,
details=TxRequestDetailsType(
request_index=None,
- tx_hash=unhexlify(
+ tx_hash=bytes.fromhex(
"cb74c8478c5814742c87cffdb4a21231869888f8042fb07a90e015a9db1f9d4a"
),
),
@@ -142,7 +142,7 @@ class TestSignTx_GRS(unittest.TestCase):
request_type=TXINPUT,
details=TxRequestDetailsType(
request_index=0,
- tx_hash=unhexlify(
+ tx_hash=bytes.fromhex(
"cb74c8478c5814742c87cffdb4a21231869888f8042fb07a90e015a9db1f9d4a"
),
),
@@ -153,7 +153,7 @@ class TestSignTx_GRS(unittest.TestCase):
request_type=TXOUTPUT,
details=TxRequestDetailsType(
request_index=0,
- tx_hash=unhexlify(
+ tx_hash=bytes.fromhex(
"cb74c8478c5814742c87cffdb4a21231869888f8042fb07a90e015a9db1f9d4a"
),
),
@@ -168,7 +168,7 @@ class TestSignTx_GRS(unittest.TestCase):
serialized=TxRequestSerializedType(
signature_index=None,
signature=None,
- serialized_tx=unhexlify("0100000001"),
+ serialized_tx=bytes.fromhex("0100000001"),
),
),
TxAckInput(tx=TxAckInputWrapper(input=inp1)),
@@ -183,10 +183,10 @@ class TestSignTx_GRS(unittest.TestCase):
details=TxRequestDetailsType(request_index=0, tx_hash=None),
serialized=TxRequestSerializedType(
signature_index=0,
- signature=unhexlify(
+ signature=bytes.fromhex(
"304402201fb96d20d0778f54520ab59afe70d5fb20e500ecc9f02281cf57934e8029e8e10220383d5a3e80f2e1eb92765b6da0f23d454aecbd8236f083d483e9a74302368761"
),
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"4a9d1fdba915e0907ab02f04f88898863112a2b4fdcf872c7414588c47c874cb000000006a47304402201fb96d20d0778f54520ab59afe70d5fb20e500ecc9f02281cf57934e8029e8e10220383d5a3e80f2e1eb92765b6da0f23d454aecbd8236f083d483e9a7430236876101210331693756f749180aeed0a65a0fab0625a2250bd9abca502282a4cf0723152e67ffffffff01"
),
),
@@ -198,7 +198,7 @@ class TestSignTx_GRS(unittest.TestCase):
serialized=TxRequestSerializedType(
signature_index=None,
signature=None,
- serialized_tx=unhexlify(
+ serialized_tx=bytes.fromhex(
"a0330300000000001976a914fe40329c95c5598ac60752a5310b320cb52d18e688ac00000000"
),
),
diff --git a/core/tests/test_apps.bitcoin.txweight.py b/core/tests/test_apps.bitcoin.txweight.py
index 229b5bd0..69342a9c 100644
--- a/core/tests/test_apps.bitcoin.txweight.py
+++ b/core/tests/test_apps.bitcoin.txweight.py
@@ -22,7 +22,7 @@ class TestCalculateTxWeight(unittest.TestCase):
inp1 = TxInput(
address_n=[0], # 14LmW5k4ssUrtbAB4255zdqv3b4w1TuX9e
# amount=390000,
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"d5f65ee80147b4bcc70b75e4bbf2d7382021b871bd8867ef8fa525ef50864882"
),
prev_index=0,
@@ -58,7 +58,7 @@ class TestCalculateTxWeight(unittest.TestCase):
# 49'/1'/0'/1/0" - 2N1LGaGg836mqSQqiuUBLfcyGBhyZbremDX
address_n=[49 | 0x80000000, 1 | 0x80000000, 0 | 0x80000000, 1, 0],
amount=123456789,
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"20912f98ea3ed849042efed0fdac8cb4fc301961c5988cba56902d8ffb61c337"
),
prev_index=0,
@@ -99,7 +99,7 @@ class TestCalculateTxWeight(unittest.TestCase):
# 49'/1'/0'/0/0" - tb1qqzv60m9ajw8drqulta4ld4gfx0rdh82un5s65s
address_n=[49 | 0x80000000, 1 | 0x80000000, 0 | 0x80000000, 0, 0],
amount=12300000,
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"09144602765ce3dd8f4329445b20e3684e948709c5cdcaf12da3bb079c99448a"
),
prev_index=0,
@@ -138,7 +138,7 @@ class TestCalculateTxWeight(unittest.TestCase):
inp1 = TxInput(
address_n=[86 | 0x80000000, 1 | 0x80000000, 0 | 0x80000000, 1, 0],
amount=4600,
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"7956f1de3e7362b04115b64a31f0b6822c50dd6c08d78398f392a0ac3f0e357b"
),
prev_index=1,
@@ -185,7 +185,7 @@ class TestCalculateTxWeight(unittest.TestCase):
inp1 = TxInput(
address_n=[48 | 0x80000000, 0 | 0x80000000, 1 | 0x80000000, 0, 0],
amount=100000,
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"c6091adf4c0c23982a35899a6e58ae11e703eacd7954f588ed4b9cdefc4dba52"
),
prev_index=1,
@@ -232,7 +232,7 @@ class TestCalculateTxWeight(unittest.TestCase):
inp1 = TxInput(
address_n=[49 | 0x80000000, 1 | 0x80000000, 1 | 0x80000000, 0, 0],
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"c9348040bbc2024e12dcb4a0b4806b0398646b91acf314da028c3f03dd0179fc"
),
prev_index=1,
@@ -260,7 +260,7 @@ class TestCalculateTxWeight(unittest.TestCase):
inp1 = TxInput(
address_n=[49 | 0x80000000, 1 | 0x80000000, 1 | 0x80000000, 0, 0],
amount=20000,
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"8c3ea7a10ab6d289119b722ec8c27b70c17c722334ced31a0370d782e4b6775d"
),
prev_index=0,
@@ -269,7 +269,7 @@ class TestCalculateTxWeight(unittest.TestCase):
inp2 = TxInput(
address_n=[84 | 0x80000000, 1 | 0x80000000, 1 | 0x80000000, 0, 0],
amount=15000,
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"7956f1de3e7362b04115b64a31f0b6822c50dd6c08d78398f392a0ac3f0e357b"
),
prev_index=0,
@@ -278,7 +278,7 @@ class TestCalculateTxWeight(unittest.TestCase):
inp3 = TxInput(
address_n=[86 | 0x80000000, 1 | 0x80000000, 1 | 0x80000000, 0, 0],
amount=4450,
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"7956f1de3e7362b04115b64a31f0b6822c50dd6c08d78398f392a0ac3f0e357b"
),
prev_index=0,
@@ -287,7 +287,7 @@ class TestCalculateTxWeight(unittest.TestCase):
inp4 = TxInput(
address_n=[44 | 0x80000000, 1 | 0x80000000, 1 | 0x80000000, 0, 0],
amount=10000,
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"3ac32e90831d79385eee49d6030a2123cd9d009fe8ffc3d470af9a6a777a119b"
),
prev_index=2,
@@ -341,20 +341,20 @@ class TestCalculateTxWeight(unittest.TestCase):
inp1 = TxInput(
amount=100000,
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"e5b7e21b5ba720e81efd6bfa9f854ababdcddc75a43bfa60bf0fe069cfd1bb8a"
),
prev_index=0,
script_type=InputScriptType.EXTERNAL,
- script_pubkey=unhexlify("00149c02608d469160a92f40fdf8c6ccced029493088"),
- ownership_proof=unhexlify(
+ script_pubkey=bytes.fromhex("00149c02608d469160a92f40fdf8c6ccced029493088"),
+ ownership_proof=bytes.fromhex(
"534c001900016b2055d8190244b2ed2d46513c40658a574d3bc2deb6969c0535bb818b44d2c40002483045022100d4ad0374c922848c71d913fba59c81b9075e0d33e884d953f0c4b4806b8ffd0c022024740e6717a2b6a5aa03148c3a28b02c713b4e30fc8aeae67fa69eb20e8ddcd9012103505f0d82bbdd251511591b34f36ad5eea37d3220c2b81a1189084431ddb3aa3d"
),
)
inp2 = TxInput(
address_n=[84 | 0x80000000, 1 | 0x80000000, 0 | 0x80000000, 0, 0],
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"70f9871eb03a38405cfd7a01e0e1448678132d815e2c9f552ad83ae23969509e"
),
prev_index=0,
@@ -365,15 +365,15 @@ class TestCalculateTxWeight(unittest.TestCase):
inp3 = TxInput(
# tb1qldlynaqp0hy4zc2aag3pkenzvxy65saesxw3wd
# address_n=parse_path("m/84h/1h/0h/0/1"),
- prev_hash=unhexlify(
+ prev_hash=bytes.fromhex(
"65b768dacccfb209eebd95a1fb80a04f1dd6a3abc6d7b41d5e9d9f91605b37d9"
),
prev_index=0,
amount=10000,
script_type=InputScriptType.EXTERNAL,
- script_pubkey=unhexlify("0014fb7e49f4017dc951615dea221b66626189aa43b9"),
+ script_pubkey=bytes.fromhex("0014fb7e49f4017dc951615dea221b66626189aa43b9"),
script_sig=bytes(0),
- witness=unhexlify(
+ witness=bytes.fromhex(
"024730440220432ac60461de52713ad543cbb1484f7eca1a72c615d539b3f42f5668da4501d2022063786a6d6940a5c1ed9c2d2fd02cef90b6c01ddd84829c946561e15be6c0aae1012103dcf3bc936ecb2ec57b8f468050abce8c8756e75fd74273c9977744b1a0be7d03"
),
)
diff --git a/core/tests/test_apps.bitcoin.zcash.zip243.py b/core/tests/test_apps.bitcoin.zcash.zip243.py
index b6d1f48a..32d9aba1 100644
--- a/core/tests/test_apps.bitcoin.zcash.zip243.py
+++ b/core/tests/test_apps.bitcoin.zcash.zip243.py
@@ -38,10 +38,10 @@ class TestZcashZip243(unittest.TestCase):
"version": 4,
"version_group_id": 0x892F2085,
"branch_id": 0x76B809BB,
- "prevouts_hash": b"bd4318eecf841a0cf01c2be532cf4bc3303e881e2aface159f1882f153152688",
- "sequence_hash": b"9ac6a31952ff626bf5a0a30d3d8ac63a0d4298d33d7bc38854bfa5860695e30a",
- "outputs_hash": b"d0cadf116b4441f5e1e17814908dee509ec262a79f3c88f7f3389e8200658992",
- "preimage_hash": b"f8772c6ecf9d903698fb8c51cd7b99605af298478989945936935da65e064695",
+ "prevouts_hash": "bd4318eecf841a0cf01c2be532cf4bc3303e881e2aface159f1882f153152688",
+ "sequence_hash": "9ac6a31952ff626bf5a0a30d3d8ac63a0d4298d33d7bc38854bfa5860695e30a",
+ "outputs_hash": "d0cadf116b4441f5e1e17814908dee509ec262a79f3c88f7f3389e8200658992",
+ "preimage_hash": "f8772c6ecf9d903698fb8c51cd7b99605af298478989945936935da65e064695",
},
{
"expiry": 231041495,
@@ -75,10 +75,10 @@ class TestZcashZip243(unittest.TestCase):
"version": 4,
"version_group_id": 0x892F2085,
"branch_id": 0x76B809BB,
- "prevouts_hash": b"8e286c6c0dde3119271c9c1398ef46614b0253c502b00a3691cec2e9047da35b",
- "sequence_hash": b"58477fd9ecd5faf3e08159e0ab5fdaab66cab364d081498ddcef41de0af3624e",
- "outputs_hash": b"c518797fc6f2c08fc22aa3f66122047b360e1db4df5c3feb28573c00cdf45fa1",
- "preimage_hash": b"0eb47dc51d89cc52378fc182242f78ebd3609544a365d2270c23b4052f301025",
+ "prevouts_hash": "8e286c6c0dde3119271c9c1398ef46614b0253c502b00a3691cec2e9047da35b",
+ "sequence_hash": "58477fd9ecd5faf3e08159e0ab5fdaab66cab364d081498ddcef41de0af3624e",
+ "outputs_hash": "c518797fc6f2c08fc22aa3f66122047b360e1db4df5c3feb28573c00cdf45fa1",
+ "preimage_hash": "0eb47dc51d89cc52378fc182242f78ebd3609544a365d2270c23b4052f301025",
},
{
"expiry": 186996458,
@@ -99,10 +99,10 @@ class TestZcashZip243(unittest.TestCase):
"version": 4,
"version_group_id": 0x892F2085,
"branch_id": 0x76B809BB,
- "prevouts_hash": b"445bc6328cd33b3c86259953dd674bded341ff1e1104dc21856919e9761036dd",
- "sequence_hash": b"42e1d5c2636f165afaa954afa6d7a50779eb145e947bf668f1a40dd771c711fc",
- "outputs_hash": b"869eda84eecf7257f9979a4848bbf52f4969a5736594ab7ba41452e7bb906824",
- "preimage_hash": b"7f6b5439a64b20faf6f9f9460bc75c333c4799e9b04c80c26a79b8e801b8b6e1",
+ "prevouts_hash": "445bc6328cd33b3c86259953dd674bded341ff1e1104dc21856919e9761036dd",
+ "sequence_hash": "42e1d5c2636f165afaa954afa6d7a50779eb145e947bf668f1a40dd771c711fc",
+ "outputs_hash": "869eda84eecf7257f9979a4848bbf52f4969a5736594ab7ba41452e7bb906824",
+ "preimage_hash": "7f6b5439a64b20faf6f9f9460bc75c333c4799e9b04c80c26a79b8e801b8b6e1",
},
{
"expiry": 254788522,
@@ -135,10 +135,10 @@ class TestZcashZip243(unittest.TestCase):
"version": 4,
"version_group_id": 0x892F2085,
"branch_id": 0x76B809BB,
- "prevouts_hash": b"509abdfafcc75265037f1ce6a4658ac9ecadd7b82378c3fbaeb48ab437ff6898",
- "sequence_hash": b"2b13f671cd1a9aa04c1e250eef74a316d7d2b049360d20604514ddc2dfacfd23",
- "outputs_hash": b"4f01b8785e80779290aa86c16b24952f9b7f8bc09da44e68f760ab1920ab8f2a",
- "preimage_hash": b"46152b79ebeba4089d05724e33d4a5e6d6ea9e3a2fe777af6644318ba93a1ca0",
+ "prevouts_hash": "509abdfafcc75265037f1ce6a4658ac9ecadd7b82378c3fbaeb48ab437ff6898",
+ "sequence_hash": "2b13f671cd1a9aa04c1e250eef74a316d7d2b049360d20604514ddc2dfacfd23",
+ "outputs_hash": "4f01b8785e80779290aa86c16b24952f9b7f8bc09da44e68f760ab1920ab8f2a",
+ "preimage_hash": "46152b79ebeba4089d05724e33d4a5e6d6ea9e3a2fe777af6644318ba93a1ca0",
},
# "Test vector 3" from https://github.com/zcash/zips/blob/master/zip-0243.rst
{
@@ -169,10 +169,10 @@ class TestZcashZip243(unittest.TestCase):
"version": 4,
"version_group_id": 0x892F2085,
"branch_id": 0x76B809BB,
- "prevouts_hash": b"fae31b8dec7b0b77e2c8d6b6eb0e7e4e55abc6574c26dd44464d9408a8e33f11",
- "sequence_hash": b"6c80d37f12d89b6f17ff198723e7db1247c4811d1a695d74d930f99e98418790",
- "outputs_hash": b"d2b04118469b7810a0d1cc59568320aad25a84f407ecac40b4f605a4e6868454",
- "preimage_hash": b"6c210ce6417539d4aa9546f6184e33ca89224ac4559d2a9c4cf090b646692bd9",
+ "prevouts_hash": "fae31b8dec7b0b77e2c8d6b6eb0e7e4e55abc6574c26dd44464d9408a8e33f11",
+ "sequence_hash": "6c80d37f12d89b6f17ff198723e7db1247c4811d1a695d74d930f99e98418790",
+ "outputs_hash": "d2b04118469b7810a0d1cc59568320aad25a84f407ecac40b4f605a4e6868454",
+ "preimage_hash": "6c210ce6417539d4aa9546f6184e33ca89224ac4559d2a9c4cf090b646692bd9",
},
]
@@ -196,7 +196,7 @@ class TestZcashZip243(unittest.TestCase):
for i in v["inputs"]:
txi = TxInput(
amount=i["amount"],
- prev_hash=unhexlify(i["prevout"][0]),
+ prev_hash=bytes.fromhex(i["prevout"][0]),
prev_index=i["prevout"][1],
script_type=i["script_type"],
sequence=i["sequence"],
@@ -206,28 +206,22 @@ class TestZcashZip243(unittest.TestCase):
for o in v["outputs"]:
txo = PrevOutput(
amount=o["amount"],
- script_pubkey=unhexlify(o["script_pubkey"]),
+ script_pubkey=bytes.fromhex(o["script_pubkey"]),
)
zip243.add_output(txo, txo.script_pubkey)
+ self.assertEqual(get_tx_hash(zip243.h_prevouts).hex(), v["prevouts_hash"])
+ self.assertEqual(get_tx_hash(zip243.h_sequence).hex(), v["sequence_hash"])
+ self.assertEqual(get_tx_hash(zip243.h_outputs).hex(), v["outputs_hash"])
self.assertEqual(
- hexlify(get_tx_hash(zip243.h_prevouts)), v["prevouts_hash"]
- )
- self.assertEqual(
- hexlify(get_tx_hash(zip243.h_sequence)), v["sequence_hash"]
- )
- self.assertEqual(hexlify(get_tx_hash(zip243.h_outputs)), v["outputs_hash"])
- self.assertEqual(
- hexlify(
- zip243.hash143(
- txi,
- [unhexlify(i["pubkey"])],
- 1,
- tx,
- coin,
- SigHashType.SIGHASH_ALL,
- )
- ),
+ zip243.hash143(
+ txi,
+ [bytes.fromhex(i["pubkey"])],
+ 1,
+ tx,
+ coin,
+ SigHashType.SIGHASH_ALL,
+ ).hex(),
v["preimage_hash"],
)
diff --git a/core/tests/test_apps.cardano.address.py b/core/tests/test_apps.cardano.address.py
index 63dc5001..2591e28e 100644
--- a/core/tests/test_apps.cardano.address.py
+++ b/core/tests/test_apps.cardano.address.py
@@ -61,22 +61,22 @@ class TestCardanoAddress(unittest.TestCase):
nodes = [
(
- b"3881a8de77d069001010d7f7d5211552e7d539b0e253add710367f95e528ed51",
- b"9b77608b38e0a0c7861aa234557c81482f42aae2d17993a8ddaec1868fb04d60",
- b"a938c8554ae04616cfaae7cd0eb557475082c4e910242ce774967e0bd7492408",
- b"cbf6ab47c8eb1a0477fc40b25dbb6c4a99454edb97d6fe5acedd3e238ef46fe0",
+ "3881a8de77d069001010d7f7d5211552e7d539b0e253add710367f95e528ed51",
+ "9b77608b38e0a0c7861aa234557c81482f42aae2d17993a8ddaec1868fb04d60",
+ "a938c8554ae04616cfaae7cd0eb557475082c4e910242ce774967e0bd7492408",
+ "cbf6ab47c8eb1a0477fc40b25dbb6c4a99454edb97d6fe5acedd3e238ef46fe0",
),
(
- b"3003aca659846540b9ed04f2b844f2d8ea964856ca38a7dffedef4f6e528ed51",
- b"8844ccc81d633e1c7126f30c2524c1652617cf58da755014070215bf5070ba38",
- b"be28c00ed6cb9b70310f78028f8e3a2db935baf482d84afa590b0b5b864571cc",
- b"584b4631d752023a249e980779517280e6c0b3ac7a7f27c6e9456bfd228ca60b",
+ "3003aca659846540b9ed04f2b844f2d8ea964856ca38a7dffedef4f6e528ed51",
+ "8844ccc81d633e1c7126f30c2524c1652617cf58da755014070215bf5070ba38",
+ "be28c00ed6cb9b70310f78028f8e3a2db935baf482d84afa590b0b5b864571cc",
+ "584b4631d752023a249e980779517280e6c0b3ac7a7f27c6e9456bfd228ca60b",
),
(
- b"68e4482add0a741e14c8f2306bf83206a623e3729dd24175915eedece428ed51",
- b"3165a80c5efe846224d46a0427cdb2be4f31ea3585c51f4131faefc4328ad95a",
- b"9a32499976ffb582daa9988dfc42a303de5ed00c320c929f496be3c6eb1cf405",
- b"da07ca30a3d1c5fe3c34ce5fa197722446a646624a10bdf8889a4b9c347b2ef2",
+ "68e4482add0a741e14c8f2306bf83206a623e3729dd24175915eedece428ed51",
+ "3165a80c5efe846224d46a0427cdb2be4f31ea3585c51f4131faefc4328ad95a",
+ "9a32499976ffb582daa9988dfc42a303de5ed00c320c929f496be3c6eb1cf405",
+ "da07ca30a3d1c5fe3c34ce5fa197722446a646624a10bdf8889a4b9c347b2ef2",
),
]
@@ -84,10 +84,10 @@ class TestCardanoAddress(unittest.TestCase):
n = self.keychain.derive(
[0x80000000 | 44, 0x80000000 | 1815, 0x80000000, 0, 0x80000000 + i]
)
- self.assertEqual(hexlify(n.private_key()), priv)
- self.assertEqual(hexlify(n.private_key_ext()), ext)
- self.assertEqual(hexlify(seed.remove_ed25519_prefix(n.public_key())), pub)
- self.assertEqual(hexlify(n.chain_code()), chain)
+ self.assertEqual(n.private_key().hex(), priv)
+ self.assertEqual(n.private_key_ext().hex(), ext)
+ self.assertEqual(seed.remove_ed25519_prefix(n.public_key()).hex(), pub)
+ self.assertEqual(n.chain_code().hex(), chain)
def test_non_hardened_address_derivation_scheme(self):
addresses = [
@@ -112,22 +112,22 @@ class TestCardanoAddress(unittest.TestCase):
nodes = [
(
- b"d03ba81163fd55af97bd132bf651a0da5b5e6201b15b1caca60b0be8e028ed51",
- b"493f44aa8d25fe0d3fe2935c76ea6b3e9e41c79e9dbcbe7131357c5aa1b6cac5",
- b"b90fb812a2268e9569ff1172e8daed1da3dc7e72c7bded7c5bcb7282039f90d5",
- b"fd8e71c1543de2cdc7f7623130c5f2cceb53549055fa1f5bc88199989e08cce7",
+ "d03ba81163fd55af97bd132bf651a0da5b5e6201b15b1caca60b0be8e028ed51",
+ "493f44aa8d25fe0d3fe2935c76ea6b3e9e41c79e9dbcbe7131357c5aa1b6cac5",
+ "b90fb812a2268e9569ff1172e8daed1da3dc7e72c7bded7c5bcb7282039f90d5",
+ "fd8e71c1543de2cdc7f7623130c5f2cceb53549055fa1f5bc88199989e08cce7",
),
(
- b"08b6438c8dd49d34b71c8e914d6ac3184e5ab3dcc8af023d08503a7edf28ed51",
- b"3fee605fdfaddc1ee2ea0b246b02c9abc54ad741054bc83943e8b21487b5a053",
- b"89053545a6c254b0d9b1464e48d2b5fcf91d4e25c128afb1fcfc61d0843338ea",
- b"26308151516f3b0e02bb1638142747863c520273ce9bd3e5cd91e1d46fe2a635",
+ "08b6438c8dd49d34b71c8e914d6ac3184e5ab3dcc8af023d08503a7edf28ed51",
+ "3fee605fdfaddc1ee2ea0b246b02c9abc54ad741054bc83943e8b21487b5a053",
+ "89053545a6c254b0d9b1464e48d2b5fcf91d4e25c128afb1fcfc61d0843338ea",
+ "26308151516f3b0e02bb1638142747863c520273ce9bd3e5cd91e1d46fe2a635",
),
(
- b"088f0275bf4a1bd18f08d7ef06c6ddb6ce7e3dc415fb4e89fe21bf39e628ed51",
- b"4c44563c7df519ea9b4d1801c1ab98b449db28b87f1c3837759c20f68c4c1e65",
- b"52548cb98e6f46a592bdf7f3598a9abc0126c78dfa3f46d1894ee52a5213e833",
- b"91af0668ee449e613e61bbb2482e5ddee1d9b15785727ec3e362c36861bff923",
+ "088f0275bf4a1bd18f08d7ef06c6ddb6ce7e3dc415fb4e89fe21bf39e628ed51",
+ "4c44563c7df519ea9b4d1801c1ab98b449db28b87f1c3837759c20f68c4c1e65",
+ "52548cb98e6f46a592bdf7f3598a9abc0126c78dfa3f46d1894ee52a5213e833",
+ "91af0668ee449e613e61bbb2482e5ddee1d9b15785727ec3e362c36861bff923",
),
]
@@ -135,10 +135,10 @@ class TestCardanoAddress(unittest.TestCase):
n = self.keychain.derive(
[0x80000000 | 44, 0x80000000 | 1815, 0x80000000, 0, i]
)
- self.assertEqual(hexlify(n.private_key()), priv)
- self.assertEqual(hexlify(n.private_key_ext()), ext)
- self.assertEqual(hexlify(seed.remove_ed25519_prefix(n.public_key())), pub)
- self.assertEqual(hexlify(n.chain_code()), chain)
+ self.assertEqual(n.private_key().hex(), priv)
+ self.assertEqual(n.private_key_ext().hex(), ext)
+ self.assertEqual(seed.remove_ed25519_prefix(n.public_key()).hex(), pub)
+ self.assertEqual(n.chain_code().hex(), chain)
def test_root_address_derivation_scheme(self):
# 44'/1815'
@@ -157,17 +157,17 @@ class TestCardanoAddress(unittest.TestCase):
)
priv, ext, pub, chain = (
- b"204ec79cbb6502a141de60d274962010c7f1c94a2987b26506433184d228ed51",
- b"975cdd1c8610b44701567f05934c45c8716064263ccfe72ed2167ccb705c09b6",
- b"8c47ebce34234d04fd3dfbac33feaba6133e4e3d77c4b5ab18120ec6878ad4ce",
- b"02ac67c59a8b0264724a635774ca2c242afa10d7ab70e2bf0a8f7d4bb10f1f7a",
+ "204ec79cbb6502a141de60d274962010c7f1c94a2987b26506433184d228ed51",
+ "975cdd1c8610b44701567f05934c45c8716064263ccfe72ed2167ccb705c09b6",
+ "8c47ebce34234d04fd3dfbac33feaba6133e4e3d77c4b5ab18120ec6878ad4ce",
+ "02ac67c59a8b0264724a635774ca2c242afa10d7ab70e2bf0a8f7d4bb10f1f7a",
)
n = self.keychain.derive([0x80000000 | 44, 0x80000000 | 1815])
- self.assertEqual(hexlify(n.private_key()), priv)
- self.assertEqual(hexlify(n.private_key_ext()), ext)
- self.assertEqual(hexlify(seed.remove_ed25519_prefix(n.public_key())), pub)
- self.assertEqual(hexlify(n.chain_code()), chain)
+ self.assertEqual(n.private_key().hex(), priv)
+ self.assertEqual(n.private_key_ext().hex(), ext)
+ self.assertEqual(seed.remove_ed25519_prefix(n.public_key()).hex(), pub)
+ self.assertEqual(n.chain_code().hex(), chain)
def test_address_hash(self):
data = [
@@ -203,17 +203,15 @@ class TestCardanoAddress(unittest.TestCase):
node = cardano.from_seed_slip23(master_secret)
# Check root node.
- root_priv = b"c0fe4a6973df4de06262693fc9186f71faf292960350882d49456bf108d13954"
- root_ext = b"4064253ffefc4127489bce1b825a47329010c5afb4d21154ef949ef786204405"
- root_pub = b"83e3ecaf57f90f022c45e10d1b8cb78499c30819515ad9a81ad82139fdb12a90"
- root_chain = b"22c12755afdd192742613b3062069390743ea232bc1b366c8f41e37292af9305"
+ root_priv = "c0fe4a6973df4de06262693fc9186f71faf292960350882d49456bf108d13954"
+ root_ext = "4064253ffefc4127489bce1b825a47329010c5afb4d21154ef949ef786204405"
+ root_pub = "83e3ecaf57f90f022c45e10d1b8cb78499c30819515ad9a81ad82139fdb12a90"
+ root_chain = "22c12755afdd192742613b3062069390743ea232bc1b366c8f41e37292af9305"
- self.assertEqual(hexlify(node.private_key()), root_priv)
- self.assertEqual(hexlify(node.private_key_ext()), root_ext)
- self.assertEqual(
- hexlify(seed.remove_ed25519_prefix(node.public_key())), root_pub
- )
- self.assertEqual(hexlify(node.chain_code()), root_chain)
+ self.assertEqual(node.private_key().hex(), root_priv)
+ self.assertEqual(node.private_key_ext().hex(), root_ext)
+ self.assertEqual(seed.remove_ed25519_prefix(node.public_key()).hex(), root_pub)
+ self.assertEqual(node.chain_code().hex(), root_chain)
# Check derived nodes and addresses.
keychain = Keychain(node)
@@ -221,24 +219,24 @@ class TestCardanoAddress(unittest.TestCase):
nodes = [
(
"Ae2tdPwUPEYxF9NAMNdd3v2LZoMeWp7gCZiDb6bZzFQeeVASzoP7HC4V9s6",
- b"e0acfe234aa6e1219ce7d3d8d91853e0808bab92ecb8a0ff0f345ff31ad13954",
- b"ff89dc71365c4b67bb7bb75d566e65b8a95f16e4d70cce51c25937db15614530",
- b"bc043d84b8b891d49890edb6aced6f2d78395f255c5b6aea8878b913f83e8579",
- b"dc3f0d2b5cccb822335ef6213fd133f4ca934151ec44a6000aee43b8a101078c",
+ "e0acfe234aa6e1219ce7d3d8d91853e0808bab92ecb8a0ff0f345ff31ad13954",
+ "ff89dc71365c4b67bb7bb75d566e65b8a95f16e4d70cce51c25937db15614530",
+ "bc043d84b8b891d49890edb6aced6f2d78395f255c5b6aea8878b913f83e8579",
+ "dc3f0d2b5cccb822335ef6213fd133f4ca934151ec44a6000aee43b8a101078c",
),
(
"Ae2tdPwUPEZ1TjYcvfkWAbiHtGVxv4byEHHZoSyQXjPJ362DifCe1ykgqgy",
- b"d0ce3e7a6445bc91801319b9bbaf47fdfca9364257295fb13bc5046a20d13954",
- b"c800359abdc875944754ae7368bab7ef75184d48816c368f5a28af4bcf1d1ee8",
- b"24c4fe188a39103db88818bc191fd8571eae7b284ebcbdf2462bde97b058a95c",
- b"6f7a744035f4b3ddb8f861c18446169643cc3ae85e271b4b4f0eda05cf84c65b",
+ "d0ce3e7a6445bc91801319b9bbaf47fdfca9364257295fb13bc5046a20d13954",
+ "c800359abdc875944754ae7368bab7ef75184d48816c368f5a28af4bcf1d1ee8",
+ "24c4fe188a39103db88818bc191fd8571eae7b284ebcbdf2462bde97b058a95c",
+ "6f7a744035f4b3ddb8f861c18446169643cc3ae85e271b4b4f0eda05cf84c65b",
),
(
"Ae2tdPwUPEZGXmSbda1kBNfyhRQGRcQxJFdk7mhWZXAGnapyejv2b2U3aRb",
- b"e8320644cce22a6e9fc33865fc5a598b1cda061c47a548aead3af4ed1cd13954",
- b"9e2ece5d7fe8119cb76090009be926a84fc5d3b95855b5962ffe2f880836cf09",
- b"831a63d381a8dab1e6e1ee991a4300fc70687aae5f97f4fcf92ed1b6c2bd99de",
- b"672d6af4707aba201b7940231e83dd357f92f8851b3dfdc224ef311e1b64cdeb",
+ "e8320644cce22a6e9fc33865fc5a598b1cda061c47a548aead3af4ed1cd13954",
+ "9e2ece5d7fe8119cb76090009be926a84fc5d3b95855b5962ffe2f880836cf09",
+ "831a63d381a8dab1e6e1ee991a4300fc70687aae5f97f4fcf92ed1b6c2bd99de",
+ "672d6af4707aba201b7940231e83dd357f92f8851b3dfdc224ef311e1b64cdeb",
),
]
@@ -256,10 +254,10 @@ class TestCardanoAddress(unittest.TestCase):
)
n = keychain.derive([0x80000000 | 44, 0x80000000 | 1815, 0x80000000, 0, i])
self.assertEqual(a, address)
- self.assertEqual(hexlify(n.private_key()), priv)
- self.assertEqual(hexlify(n.private_key_ext()), ext)
- self.assertEqual(hexlify(seed.remove_ed25519_prefix(n.public_key())), pub)
- self.assertEqual(hexlify(n.chain_code()), chain)
+ self.assertEqual(n.private_key().hex(), priv)
+ self.assertEqual(n.private_key_ext().hex(), ext)
+ self.assertEqual(seed.remove_ed25519_prefix(n.public_key()).hex(), pub)
+ self.assertEqual(n.chain_code().hex(), chain)
def test_slip39_256(self):
mnemonics = [
@@ -279,17 +277,15 @@ class TestCardanoAddress(unittest.TestCase):
node = cardano.from_seed_slip23(master_secret)
# Check root node.
- root_priv = b"90633724b5daf770a8b420b8658e7d8bc21e066b60ec8cd4d5730681cc294e4f"
- root_ext = b"f9d99bf3cd9c7e12663e8646afa40cb3aecf15d91f2abc15d21056c6bccb3414"
- root_pub = b"eea170f0ef97b59d22907cb429888029721ed67d3e7a1b56b81731086ab7db64"
- root_chain = b"04f1de750b62725fcc1ae1b93ca4063acb53c486b959cadaa100ebd7828e5460"
+ root_priv = "90633724b5daf770a8b420b8658e7d8bc21e066b60ec8cd4d5730681cc294e4f"
+ root_ext = "f9d99bf3cd9c7e12663e8646afa40cb3aecf15d91f2abc15d21056c6bccb3414"
+ root_pub = "eea170f0ef97b59d22907cb429888029721ed67d3e7a1b56b81731086ab7db64"
+ root_chain = "04f1de750b62725fcc1ae1b93ca4063acb53c486b959cadaa100ebd7828e5460"
- self.assertEqual(hexlify(node.private_key()), root_priv)
- self.assertEqual(hexlify(node.private_key_ext()), root_ext)
- self.assertEqual(
- hexlify(seed.remove_ed25519_prefix(node.public_key())), root_pub
- )
- self.assertEqual(hexlify(node.chain_code()), root_chain)
+ self.assertEqual(node.private_key().hex(), root_priv)
+ self.assertEqual(node.private_key_ext().hex(), root_ext)
+ self.assertEqual(seed.remove_ed25519_prefix(node.public_key()).hex(), root_pub)
+ self.assertEqual(node.chain_code().hex(), root_chain)
# Check derived nodes and addresses.
keychain = Keychain(node)
@@ -297,24 +293,24 @@ class TestCardanoAddress(unittest.TestCase):
nodes = [
(
"Ae2tdPwUPEYyDD1C2FbVJFAE3FuAxLspfMYt29TJ1urnSKr57cVhEcioSCC",
- b"38e8a4b17ca07b6a309f1cee83f87593e34a1fc3a289785ea451ef65df294e4f",
- b"405d10ef71c2b0019250d11837de8db825d8556bf1e57f8866920af6d8c90002",
- b"967a9a041ad1379e31c2c7f2aa4bc2b3f7769341c0ea89ccfb12a904f2e10877",
- b"7b15d8d9006afe3cd7e04f375a1126a8c7c7c07c59a6f0c5b0310f4245f4edbb",
+ "38e8a4b17ca07b6a309f1cee83f87593e34a1fc3a289785ea451ef65df294e4f",
+ "405d10ef71c2b0019250d11837de8db825d8556bf1e57f8866920af6d8c90002",
+ "967a9a041ad1379e31c2c7f2aa4bc2b3f7769341c0ea89ccfb12a904f2e10877",
+ "7b15d8d9006afe3cd7e04f375a1126a8c7c7c07c59a6f0c5b0310f4245f4edbb",
),
(
"Ae2tdPwUPEZHJGtyz47F6wD7qAegt1JNRJWuiE36QLvFzeqJPBZ2EBvhr8M",
- b"a09f90e3f76a7bdb7f8721cc0c142dbd6398fd704b83455e123fa886dc294e4f",
- b"917e4166bb404def9f12634e84ecbcb98afdea051ba7c38745e208178a9e9baf",
- b"6f3805bbc1b7a75afa95dffec331671f3c4662800615e80d2ec1202a9d874c86",
- b"44baf30fd549e6a1e05f99c2a2c8971aea8894ee8d9c5fc2c5ae6ee839a56b2d",
+ "a09f90e3f76a7bdb7f8721cc0c142dbd6398fd704b83455e123fa886dc294e4f",
+ "917e4166bb404def9f12634e84ecbcb98afdea051ba7c38745e208178a9e9baf",
+ "6f3805bbc1b7a75afa95dffec331671f3c4662800615e80d2ec1202a9d874c86",
+ "44baf30fd549e6a1e05f99c2a2c8971aea8894ee8d9c5fc2c5ae6ee839a56b2d",
),
(
"Ae2tdPwUPEYxD9xNPBJTzYmtFVVWEPB6KW4TCDijQ4pDwU11wt5621PyCi4",
- b"78dd824aea33bed5c1502d1a17f11a4adbe923aac1cd1f7ae98c9506db294e4f",
- b"ddfe7f27e2894b983df773d8ac2a07973fc37ff36e93a2f2d71fb7327d4e18f4",
- b"7f145b50ef07fb9accc40ee07a01fe93ceb6fa07d5a9f20fc3c8a48246dd4d02",
- b"e67d2864614ada5eec8fb8ee1225a94a6fb0a1b3c347c854ec3037351c6a0fc7",
+ "78dd824aea33bed5c1502d1a17f11a4adbe923aac1cd1f7ae98c9506db294e4f",
+ "ddfe7f27e2894b983df773d8ac2a07973fc37ff36e93a2f2d71fb7327d4e18f4",
+ "7f145b50ef07fb9accc40ee07a01fe93ceb6fa07d5a9f20fc3c8a48246dd4d02",
+ "e67d2864614ada5eec8fb8ee1225a94a6fb0a1b3c347c854ec3037351c6a0fc7",
),
]
@@ -332,10 +328,10 @@ class TestCardanoAddress(unittest.TestCase):
)
n = keychain.derive([0x80000000 | 44, 0x80000000 | 1815, 0x80000000, 0, i])
self.assertEqual(a, address)
- self.assertEqual(hexlify(n.private_key()), priv)
- self.assertEqual(hexlify(n.private_key_ext()), ext)
- self.assertEqual(hexlify(seed.remove_ed25519_prefix(n.public_key())), pub)
- self.assertEqual(hexlify(n.chain_code()), chain)
+ self.assertEqual(n.private_key().hex(), priv)
+ self.assertEqual(n.private_key_ext().hex(), ext)
+ self.assertEqual(seed.remove_ed25519_prefix(n.public_key()).hex(), pub)
+ self.assertEqual(n.chain_code().hex(), chain)
def test_testnet_byron_address(self):
addresses = [
@@ -371,7 +367,7 @@ class TestCardanoAddress(unittest.TestCase):
"BASE_OWN_STAKING_KEY_HASH": CardanoAddressParametersType(
address_type=CardanoAddressType.BASE,
address_n=[1852 | HARDENED, 1815 | HARDENED, 4 | HARDENED, 0, 0],
- staking_key_hash=unhexlify(
+ staking_key_hash=bytes.fromhex(
"1bc428e4720702ebd5dab4fb175324c192dc9bb76cc5da956e3c8dff"
),
),
@@ -379,7 +375,7 @@ class TestCardanoAddress(unittest.TestCase):
"BASE_FOREIGN_STAKING_KEY_HASH_ACCOUNT_4": CardanoAddressParametersType(
address_type=CardanoAddressType.BASE,
address_n=[1852 | HARDENED, 1815 | HARDENED, 4 | HARDENED, 0, 0],
- staking_key_hash=unhexlify(
+ staking_key_hash=bytes.fromhex(
"122a946b9ad3d2ddf029d3a828f0468aece76895f15c9efbd69b4277"
),
),
@@ -387,7 +383,7 @@ class TestCardanoAddress(unittest.TestCase):
"BASE_FOREIGN_STAKING_KEY_HASH_ACCOUNT_0": CardanoAddressParametersType(
address_type=CardanoAddressType.BASE,
address_n=[1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0],
- staking_key_hash=unhexlify(
+ staking_key_hash=bytes.fromhex(
"122a946b9ad3d2ddf029d3a828f0468aece76895f15c9efbd69b4277"
),
),
@@ -400,23 +396,23 @@ class TestCardanoAddress(unittest.TestCase):
2,
0,
],
- script_payment_hash=unhexlify(
+ script_payment_hash=bytes.fromhex(
"0d5acbf6a1dfb0c8724e60df314987315ccbf78bb6c0f9b6f3d568fe"
),
),
"BASE_KEY_SCRIPT_HASH": CardanoAddressParametersType(
address_type=CardanoAddressType.BASE_KEY_SCRIPT,
address_n=[1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0],
- script_staking_hash=unhexlify(
+ script_staking_hash=bytes.fromhex(
"8d7bebc7a58f1c7b5fb7c9391071ecd3b51b032695522f8c555343a9"
),
),
"BASE_SCRIPT_SCRIPT_HASHES": CardanoAddressParametersType(
address_type=CardanoAddressType.BASE_SCRIPT_SCRIPT,
- script_payment_hash=unhexlify(
+ script_payment_hash=bytes.fromhex(
"0d5acbf6a1dfb0c8724e60df314987315ccbf78bb6c0f9b6f3d568fe"
),
- script_staking_hash=unhexlify(
+ script_staking_hash=bytes.fromhex(
"8d7bebc7a58f1c7b5fb7c9391071ecd3b51b032695522f8c555343a9"
),
),
@@ -439,7 +435,7 @@ class TestCardanoAddress(unittest.TestCase):
certificate_pointer=CardanoBlockchainPointerType(
block_index=24157, tx_index=177, certificate_index=42
),
- script_payment_hash=unhexlify(
+ script_payment_hash=bytes.fromhex(
"0d5acbf6a1dfb0c8724e60df314987315ccbf78bb6c0f9b6f3d568fe"
),
),
@@ -449,7 +445,7 @@ class TestCardanoAddress(unittest.TestCase):
),
"ENTERPRISE_SCRIPT_HASH": CardanoAddressParametersType(
address_type=CardanoAddressType.ENTERPRISE_SCRIPT,
- script_payment_hash=unhexlify(
+ script_payment_hash=bytes.fromhex(
"0d5acbf6a1dfb0c8724e60df314987315ccbf78bb6c0f9b6f3d568fe"
),
),
@@ -465,7 +461,7 @@ class TestCardanoAddress(unittest.TestCase):
),
"REWARD_SCRIPT_HASH": CardanoAddressParametersType(
address_type=CardanoAddressType.REWARD_SCRIPT,
- script_staking_hash=unhexlify(
+ script_staking_hash=bytes.fromhex(
"8d7bebc7a58f1c7b5fb7c9391071ecd3b51b032695522f8c555343a9"
),
),
@@ -667,7 +663,7 @@ class TestCardanoAddress(unittest.TestCase):
2,
0,
],
- staking_key_hash=unhexlify(
+ staking_key_hash=bytes.fromhex(
"1bc428e4720702ebd5dab4fb175324c192dc9bb76cc5da956e3c8dff"
),
),
@@ -676,7 +672,7 @@ class TestCardanoAddress(unittest.TestCase):
address_type=CardanoAddressType.BASE,
address_n=[1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0],
address_n_staking=None,
- staking_key_hash=unhexlify(
+ staking_key_hash=bytes.fromhex(
"1bc428e4720702ebd5dab4fb175324c192dc9bb76cc5da956e3c8d"
),
),
@@ -697,14 +693,14 @@ class TestCardanoAddress(unittest.TestCase):
CardanoAddressParametersType(
address_type=CardanoAddressType.BASE_SCRIPT_KEY,
script_payment_hash=None,
- staking_key_hash=unhexlify(
+ staking_key_hash=bytes.fromhex(
"1bc428e4720702ebd5dab4fb175324c192dc9bb76cc5da956e3c8d"
),
),
# base_script_key address - address_n_staking is not a staking path
CardanoAddressParametersType(
address_type=CardanoAddressType.BASE_SCRIPT_KEY,
- script_payment_hash=unhexlify(
+ script_payment_hash=bytes.fromhex(
"0d5acbf6a1dfb0c8724e60df314987315ccbf78bb6c0f9b6f3d568fe"
),
address_n_staking=[
@@ -725,14 +721,14 @@ class TestCardanoAddress(unittest.TestCase):
CardanoAddressParametersType(
address_type=CardanoAddressType.BASE_SCRIPT_SCRIPT,
script_payment_hash=None,
- script_staking_hash=unhexlify(
+ script_staking_hash=bytes.fromhex(
"8d7bebc7a58f1c7b5fb7c9391071ecd3b51b032695522f8c555343a9"
),
),
# base_script_script address - script_staking and script_staking_hash are None
CardanoAddressParametersType(
address_type=CardanoAddressType.BASE_SCRIPT_SCRIPT,
- script_payment_hash=unhexlify(
+ script_payment_hash=bytes.fromhex(
"0d5acbf6a1dfb0c8724e60df314987315ccbf78bb6c0f9b6f3d568fe"
),
script_staking_hash=None,
@@ -746,7 +742,7 @@ class TestCardanoAddress(unittest.TestCase):
# pointer_script address - pointer is None
CardanoAddressParametersType(
address_type=CardanoAddressType.POINTER_SCRIPT,
- script_payment_hash=unhexlify(
+ script_payment_hash=bytes.fromhex(
"0d5acbf6a1dfb0c8724e60df314987315ccbf78bb6c0f9b6f3d568fe"
),
certificate_pointer=None,
@@ -778,14 +774,14 @@ class TestCardanoAddress(unittest.TestCase):
CardanoAddressParametersType(
address_type=CardanoAddressType.BASE,
address_n=[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0],
- staking_key_hash=unhexlify(
+ staking_key_hash=bytes.fromhex(
"1bc428e4720702ebd5dab4fb175324c192dc9bb76cc5da956e3c8dff"
),
),
CardanoAddressParametersType(
address_type=CardanoAddressType.BASE_KEY_SCRIPT,
address_n=[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0],
- script_staking_hash=unhexlify(
+ script_staking_hash=bytes.fromhex(
"8d7bebc7a58f1c7b5fb7c9391071ecd3b51b032695522f8c555343a9"
),
),
diff --git a/core/tests/test_apps.cardano.certificate.py b/core/tests/test_apps.cardano.certificate.py
index 198d5e74..d14d2c23 100644
--- a/core/tests/test_apps.cardano.certificate.py
+++ b/core/tests/test_apps.cardano.certificate.py
@@ -27,13 +27,13 @@ class TestCardanoCertificate(unittest.TestCase):
),
CardanoTxCertificate(
type=CardanoCertificateType.STAKE_REGISTRATION,
- script_hash=unhexlify(
+ script_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
),
CardanoTxCertificate(
type=CardanoCertificateType.STAKE_REGISTRATION,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
),
@@ -44,14 +44,14 @@ class TestCardanoCertificate(unittest.TestCase):
),
CardanoTxCertificate(
type=CardanoCertificateType.STAKE_REGISTRATION_CONWAY,
- script_hash=unhexlify(
+ script_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
deposit=2000000,
),
CardanoTxCertificate(
type=CardanoCertificateType.STAKE_REGISTRATION_CONWAY,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
deposit=2000000,
@@ -59,25 +59,25 @@ class TestCardanoCertificate(unittest.TestCase):
CardanoTxCertificate(
type=CardanoCertificateType.STAKE_DELEGATION,
path=[1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 2, 0],
- pool=unhexlify(
+ pool=bytes.fromhex(
"f61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb4973"
),
),
CardanoTxCertificate(
type=CardanoCertificateType.STAKE_DELEGATION,
- script_hash=unhexlify(
+ script_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
- pool=unhexlify(
+ pool=bytes.fromhex(
"f61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb4973"
),
),
CardanoTxCertificate(
type=CardanoCertificateType.STAKE_DELEGATION,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
- pool=unhexlify(
+ pool=bytes.fromhex(
"f61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb4973"
),
),
@@ -87,13 +87,13 @@ class TestCardanoCertificate(unittest.TestCase):
),
CardanoTxCertificate(
type=CardanoCertificateType.STAKE_DEREGISTRATION,
- script_hash=unhexlify(
+ script_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
),
CardanoTxCertificate(
type=CardanoCertificateType.STAKE_DEREGISTRATION,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
),
@@ -104,14 +104,14 @@ class TestCardanoCertificate(unittest.TestCase):
),
CardanoTxCertificate(
type=CardanoCertificateType.STAKE_DEREGISTRATION_CONWAY,
- script_hash=unhexlify(
+ script_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
deposit=2000000,
),
CardanoTxCertificate(
type=CardanoCertificateType.STAKE_DEREGISTRATION_CONWAY,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
deposit=2000000,
@@ -119,10 +119,10 @@ class TestCardanoCertificate(unittest.TestCase):
CardanoTxCertificate(
type=CardanoCertificateType.STAKE_POOL_REGISTRATION,
pool_parameters=CardanoPoolParametersType(
- pool_id=unhexlify(
+ pool_id=bytes.fromhex(
"f61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb4973"
),
- vrf_key_hash=unhexlify(
+ vrf_key_hash=bytes.fromhex(
"198890ad6c92e80fbdab554dda02da9fb49d001bbd96181f3e07f7a6ab0d0640"
),
pledge=500000000,
@@ -137,38 +137,38 @@ class TestCardanoCertificate(unittest.TestCase):
),
CardanoTxCertificate(
type=CardanoCertificateType.VOTE_DELEGATION,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
drep=CardanoDRep(
type=CardanoDRepType.KEY_HASH,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
),
),
CardanoTxCertificate(
type=CardanoCertificateType.VOTE_DELEGATION,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
drep=CardanoDRep(
type=CardanoDRepType.SCRIPT_HASH,
- script_hash=unhexlify(
+ script_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
),
),
CardanoTxCertificate(
type=CardanoCertificateType.VOTE_DELEGATION,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
drep=CardanoDRep(type=CardanoDRepType.ABSTAIN),
),
CardanoTxCertificate(
type=CardanoCertificateType.VOTE_DELEGATION,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
drep=CardanoDRep(type=CardanoDRepType.NO_CONFIDENCE),
@@ -184,17 +184,17 @@ class TestCardanoCertificate(unittest.TestCase):
CardanoTxCertificate(
type=CardanoCertificateType.STAKE_REGISTRATION,
path=[1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 2, 0],
- script_hash=unhexlify(
+ script_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
),
# STAKE_REGISTRATION both script_hash and key_hash are set
CardanoTxCertificate(
type=CardanoCertificateType.STAKE_REGISTRATION,
- script_hash=unhexlify(
+ script_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
),
@@ -202,7 +202,7 @@ class TestCardanoCertificate(unittest.TestCase):
CardanoTxCertificate(
type=CardanoCertificateType.STAKE_REGISTRATION,
path=[1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 2, 0],
- pool=unhexlify(
+ pool=bytes.fromhex(
"f61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb4973"
),
),
@@ -217,10 +217,10 @@ class TestCardanoCertificate(unittest.TestCase):
type=CardanoCertificateType.STAKE_REGISTRATION,
path=[1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 2, 0],
pool_parameters=CardanoPoolParametersType(
- pool_id=unhexlify(
+ pool_id=bytes.fromhex(
"f61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb4973"
),
- vrf_key_hash=unhexlify(
+ vrf_key_hash=bytes.fromhex(
"198890ad6c92e80fbdab554dda02da9fb49d001bbd96181f3e07f7a6ab0d0640"
),
pledge=500000000,
@@ -241,7 +241,7 @@ class TestCardanoCertificate(unittest.TestCase):
CardanoTxCertificate(
type=CardanoCertificateType.STAKE_REGISTRATION_CONWAY,
path=[1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 2, 0],
- script_hash=unhexlify(
+ script_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
deposit=2000000,
@@ -249,10 +249,10 @@ class TestCardanoCertificate(unittest.TestCase):
# STAKE_REGISTRATION_CONWAY both script_hash and key_hash are set
CardanoTxCertificate(
type=CardanoCertificateType.STAKE_REGISTRATION_CONWAY,
- script_hash=unhexlify(
+ script_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
deposit=2000000,
@@ -261,7 +261,7 @@ class TestCardanoCertificate(unittest.TestCase):
CardanoTxCertificate(
type=CardanoCertificateType.STAKE_REGISTRATION_CONWAY,
path=[1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 2, 0],
- pool=unhexlify(
+ pool=bytes.fromhex(
"f61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb4973"
),
deposit=2000000,
@@ -276,10 +276,10 @@ class TestCardanoCertificate(unittest.TestCase):
type=CardanoCertificateType.STAKE_REGISTRATION_CONWAY,
path=[1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 2, 0],
pool_parameters=CardanoPoolParametersType(
- pool_id=unhexlify(
+ pool_id=bytes.fromhex(
"f61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb4973"
),
- vrf_key_hash=unhexlify(
+ vrf_key_hash=bytes.fromhex(
"198890ad6c92e80fbdab554dda02da9fb49d001bbd96181f3e07f7a6ab0d0640"
),
pledge=500000000,
@@ -295,7 +295,7 @@ class TestCardanoCertificate(unittest.TestCase):
# STAKE_DELEGATION neither path or script_hash is set
CardanoTxCertificate(
type=CardanoCertificateType.STAKE_DELEGATION,
- pool=unhexlify(
+ pool=bytes.fromhex(
"f61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb4973"
),
),
@@ -303,23 +303,23 @@ class TestCardanoCertificate(unittest.TestCase):
CardanoTxCertificate(
type=CardanoCertificateType.STAKE_DELEGATION,
path=[1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 2, 0],
- script_hash=unhexlify(
+ script_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
- pool=unhexlify(
+ pool=bytes.fromhex(
"f61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb4973"
),
),
# STAKE_DELEGATION both script_hash and key_hash are set
CardanoTxCertificate(
type=CardanoCertificateType.STAKE_DELEGATION,
- script_hash=unhexlify(
+ script_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
- pool=unhexlify(
+ pool=bytes.fromhex(
"f61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb4973"
),
),
@@ -327,14 +327,14 @@ class TestCardanoCertificate(unittest.TestCase):
CardanoTxCertificate(
type=CardanoCertificateType.STAKE_DELEGATION,
path=[1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 2, 0],
- pool=unhexlify(
+ pool=bytes.fromhex(
"f61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb4973"
),
pool_parameters=CardanoPoolParametersType(
- pool_id=unhexlify(
+ pool_id=bytes.fromhex(
"f61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb4973"
),
- vrf_key_hash=unhexlify(
+ vrf_key_hash=bytes.fromhex(
"198890ad6c92e80fbdab554dda02da9fb49d001bbd96181f3e07f7a6ab0d0640"
),
pledge=500000000,
@@ -354,17 +354,17 @@ class TestCardanoCertificate(unittest.TestCase):
CardanoTxCertificate(
type=CardanoCertificateType.STAKE_DEREGISTRATION,
path=[1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 2, 0],
- script_hash=unhexlify(
+ script_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
),
# STAKE_DEREGISTRATION both script_hash and key_hash are set
CardanoTxCertificate(
type=CardanoCertificateType.STAKE_DEREGISTRATION,
- script_hash=unhexlify(
+ script_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
),
@@ -372,7 +372,7 @@ class TestCardanoCertificate(unittest.TestCase):
CardanoTxCertificate(
type=CardanoCertificateType.STAKE_DEREGISTRATION,
path=[1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 2, 0],
- pool=unhexlify(
+ pool=bytes.fromhex(
"f61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb4973"
),
),
@@ -387,10 +387,10 @@ class TestCardanoCertificate(unittest.TestCase):
type=CardanoCertificateType.STAKE_DEREGISTRATION,
path=[1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 2, 0],
pool_parameters=CardanoPoolParametersType(
- pool_id=unhexlify(
+ pool_id=bytes.fromhex(
"f61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb4973"
),
- vrf_key_hash=unhexlify(
+ vrf_key_hash=bytes.fromhex(
"198890ad6c92e80fbdab554dda02da9fb49d001bbd96181f3e07f7a6ab0d0640"
),
pledge=500000000,
@@ -411,7 +411,7 @@ class TestCardanoCertificate(unittest.TestCase):
CardanoTxCertificate(
type=CardanoCertificateType.STAKE_DEREGISTRATION_CONWAY,
path=[1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 2, 0],
- script_hash=unhexlify(
+ script_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
deposit=2000000,
@@ -419,10 +419,10 @@ class TestCardanoCertificate(unittest.TestCase):
# STAKE_DEREGISTRATION_CONWAY both script_hash and key_hash are set
CardanoTxCertificate(
type=CardanoCertificateType.STAKE_DEREGISTRATION_CONWAY,
- script_hash=unhexlify(
+ script_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
deposit=2000000,
@@ -431,7 +431,7 @@ class TestCardanoCertificate(unittest.TestCase):
CardanoTxCertificate(
type=CardanoCertificateType.STAKE_DEREGISTRATION_CONWAY,
path=[1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 2, 0],
- pool=unhexlify(
+ pool=bytes.fromhex(
"f61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb4973"
),
deposit=2000000,
@@ -446,10 +446,10 @@ class TestCardanoCertificate(unittest.TestCase):
type=CardanoCertificateType.STAKE_DEREGISTRATION_CONWAY,
path=[1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 2, 0],
pool_parameters=CardanoPoolParametersType(
- pool_id=unhexlify(
+ pool_id=bytes.fromhex(
"f61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb4973"
),
- vrf_key_hash=unhexlify(
+ vrf_key_hash=bytes.fromhex(
"198890ad6c92e80fbdab554dda02da9fb49d001bbd96181f3e07f7a6ab0d0640"
),
pledge=500000000,
@@ -471,10 +471,10 @@ class TestCardanoCertificate(unittest.TestCase):
type=CardanoCertificateType.STAKE_POOL_REGISTRATION,
path=[1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 2, 0],
pool_parameters=CardanoPoolParametersType(
- pool_id=unhexlify(
+ pool_id=bytes.fromhex(
"f61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb4973"
),
- vrf_key_hash=unhexlify(
+ vrf_key_hash=bytes.fromhex(
"198890ad6c92e80fbdab554dda02da9fb49d001bbd96181f3e07f7a6ab0d0640"
),
pledge=500000000,
@@ -489,14 +489,14 @@ class TestCardanoCertificate(unittest.TestCase):
# STAKE_POOL_REGISTRATION script hash is set
CardanoTxCertificate(
type=CardanoCertificateType.STAKE_POOL_REGISTRATION,
- script_hash=unhexlify(
+ script_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
pool_parameters=CardanoPoolParametersType(
- pool_id=unhexlify(
+ pool_id=bytes.fromhex(
"f61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb4973"
),
- vrf_key_hash=unhexlify(
+ vrf_key_hash=bytes.fromhex(
"198890ad6c92e80fbdab554dda02da9fb49d001bbd96181f3e07f7a6ab0d0640"
),
pledge=500000000,
@@ -511,14 +511,14 @@ class TestCardanoCertificate(unittest.TestCase):
# STAKE_POOL_REGISTRATION key hash is set
CardanoTxCertificate(
type=CardanoCertificateType.STAKE_POOL_REGISTRATION,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
pool_parameters=CardanoPoolParametersType(
- pool_id=unhexlify(
+ pool_id=bytes.fromhex(
"f61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb4973"
),
- vrf_key_hash=unhexlify(
+ vrf_key_hash=bytes.fromhex(
"198890ad6c92e80fbdab554dda02da9fb49d001bbd96181f3e07f7a6ab0d0640"
),
pledge=500000000,
@@ -533,17 +533,17 @@ class TestCardanoCertificate(unittest.TestCase):
# STAKE_POOL_REGISTRATION pool is set
CardanoTxCertificate(
type=CardanoCertificateType.STAKE_POOL_REGISTRATION,
- script_hash=unhexlify(
+ script_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
- pool=unhexlify(
+ pool=bytes.fromhex(
"f61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb4973"
),
pool_parameters=CardanoPoolParametersType(
- pool_id=unhexlify(
+ pool_id=bytes.fromhex(
"f61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb4973"
),
- vrf_key_hash=unhexlify(
+ vrf_key_hash=bytes.fromhex(
"198890ad6c92e80fbdab554dda02da9fb49d001bbd96181f3e07f7a6ab0d0640"
),
pledge=500000000,
@@ -558,14 +558,14 @@ class TestCardanoCertificate(unittest.TestCase):
# VOTE_REGISTRATION missing drep
CardanoTxCertificate(
type=CardanoCertificateType.VOTE_DELEGATION,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
),
# VOTE_REGISTRATION missing key hash
CardanoTxCertificate(
type=CardanoCertificateType.VOTE_DELEGATION,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
drep=CardanoDRep(type=CardanoDRepType.KEY_HASH),
@@ -573,7 +573,7 @@ class TestCardanoCertificate(unittest.TestCase):
# VOTE_REGISTRATION missing script hash
CardanoTxCertificate(
type=CardanoCertificateType.VOTE_DELEGATION,
- script_hash=unhexlify(
+ script_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
drep=CardanoDRep(type=CardanoDRepType.SCRIPT_HASH),
@@ -581,12 +581,12 @@ class TestCardanoCertificate(unittest.TestCase):
# VOTE_REGISTRATION unexpected script hash set instead of key hash
CardanoTxCertificate(
type=CardanoCertificateType.VOTE_DELEGATION,
- script_hash=unhexlify(
+ script_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
drep=CardanoDRep(
type=CardanoDRepType.KEY_HASH,
- script_hash=unhexlify(
+ script_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
),
@@ -594,12 +594,12 @@ class TestCardanoCertificate(unittest.TestCase):
# VOTE_REGISTRATION unexpected key hash set instead of script hash
CardanoTxCertificate(
type=CardanoCertificateType.VOTE_DELEGATION,
- script_hash=unhexlify(
+ script_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
drep=CardanoDRep(
type=CardanoDRepType.SCRIPT_HASH,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
),
@@ -607,15 +607,15 @@ class TestCardanoCertificate(unittest.TestCase):
# VOTE_REGISTRATION key hash set but unexpected script hash
CardanoTxCertificate(
type=CardanoCertificateType.VOTE_DELEGATION,
- script_hash=unhexlify(
+ script_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
drep=CardanoDRep(
type=CardanoDRepType.KEY_HASH,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
- script_hash=unhexlify(
+ script_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
),
@@ -623,15 +623,15 @@ class TestCardanoCertificate(unittest.TestCase):
# VOTE_REGISTRATION script hash set but unexpected key hash
CardanoTxCertificate(
type=CardanoCertificateType.VOTE_DELEGATION,
- script_hash=unhexlify(
+ script_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
drep=CardanoDRep(
type=CardanoDRepType.SCRIPT_HASH,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
- script_hash=unhexlify(
+ script_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
),
@@ -639,12 +639,12 @@ class TestCardanoCertificate(unittest.TestCase):
# VOTE_REGISTRATION unexpected key hash
CardanoTxCertificate(
type=CardanoCertificateType.VOTE_DELEGATION,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
drep=CardanoDRep(
type=CardanoDRepType.ABSTAIN,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
),
@@ -652,12 +652,12 @@ class TestCardanoCertificate(unittest.TestCase):
# VOTE_REGISTRATION unexpected key hash
CardanoTxCertificate(
type=CardanoCertificateType.VOTE_DELEGATION,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
drep=CardanoDRep(
type=CardanoDRepType.NO_CONFIDENCE,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
),
@@ -665,12 +665,12 @@ class TestCardanoCertificate(unittest.TestCase):
# VOTE_REGISTRATION unexpected script hash
CardanoTxCertificate(
type=CardanoCertificateType.VOTE_DELEGATION,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
drep=CardanoDRep(
type=CardanoDRepType.ABSTAIN,
- script_hash=unhexlify(
+ script_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
),
@@ -678,12 +678,12 @@ class TestCardanoCertificate(unittest.TestCase):
# VOTE_REGISTRATION unexpected script hash
CardanoTxCertificate(
type=CardanoCertificateType.VOTE_DELEGATION,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
drep=CardanoDRep(
type=CardanoDRepType.NO_CONFIDENCE,
- script_hash=unhexlify(
+ script_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
),
@@ -691,15 +691,15 @@ class TestCardanoCertificate(unittest.TestCase):
# VOTE_REGISTRATION unexpected script hash and key hash
CardanoTxCertificate(
type=CardanoCertificateType.VOTE_DELEGATION,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
drep=CardanoDRep(
type=CardanoDRepType.ABSTAIN,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
- script_hash=unhexlify(
+ script_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
),
@@ -707,15 +707,15 @@ class TestCardanoCertificate(unittest.TestCase):
# VOTE_REGISTRATION unexpected script hash and key hash
CardanoTxCertificate(
type=CardanoCertificateType.VOTE_DELEGATION,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
drep=CardanoDRep(
type=CardanoDRepType.NO_CONFIDENCE,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
- script_hash=unhexlify(
+ script_hash=bytes.fromhex(
"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd"
),
),
diff --git a/core/tests/test_apps.cardano.get_public_key.py b/core/tests/test_apps.cardano.get_public_key.py
index be487b5d..f5f55a8d 100644
--- a/core/tests/test_apps.cardano.get_public_key.py
+++ b/core/tests/test_apps.cardano.get_public_key.py
@@ -34,25 +34,25 @@ class TestCardanoGetPublicKey(unittest.TestCase):
]
public_keys = [
- b"a938c8554ae04616cfaae7cd0eb557475082c4e910242ce774967e0bd7492408",
- b"8c47ebce34234d04fd3dfbac33feaba6133e4e3d77c4b5ab18120ec6878ad4ce",
- b"17cc0bf978756d0d5c76f931629036a810c61801b78beecb44555773d13e3791",
- b"b90fb812a2268e9569ff1172e8daed1da3dc7e72c7bded7c5bcb7282039f90d5",
- b"f698a764b23aa6667b1157fc4247c6a1b58c21a3865ac6a47a3590167a9e0211",
- b"e9c46841be76e3be0289694fd5c7503c04f40e5b036abac200b98a9006cf6647",
- b"6d225f078ca611f00d86cbfd8ba6c6ac7826721434eae6525686efb878b72370",
- b"5d010cf16fdeff40955633d6c565f3844a288a24967cf6b76acbeb271b4f13c1",
+ "a938c8554ae04616cfaae7cd0eb557475082c4e910242ce774967e0bd7492408",
+ "8c47ebce34234d04fd3dfbac33feaba6133e4e3d77c4b5ab18120ec6878ad4ce",
+ "17cc0bf978756d0d5c76f931629036a810c61801b78beecb44555773d13e3791",
+ "b90fb812a2268e9569ff1172e8daed1da3dc7e72c7bded7c5bcb7282039f90d5",
+ "f698a764b23aa6667b1157fc4247c6a1b58c21a3865ac6a47a3590167a9e0211",
+ "e9c46841be76e3be0289694fd5c7503c04f40e5b036abac200b98a9006cf6647",
+ "6d225f078ca611f00d86cbfd8ba6c6ac7826721434eae6525686efb878b72370",
+ "5d010cf16fdeff40955633d6c565f3844a288a24967cf6b76acbeb271b4f13c1",
]
chain_codes = [
- b"cbf6ab47c8eb1a0477fc40b25dbb6c4a99454edb97d6fe5acedd3e238ef46fe0",
- b"02ac67c59a8b0264724a635774ca2c242afa10d7ab70e2bf0a8f7d4bb10f1f7a",
- b"646ac4a6295326bae6831be05921edfbcb362de48dfd37b12e74c227dfad768d",
- b"fd8e71c1543de2cdc7f7623130c5f2cceb53549055fa1f5bc88199989e08cce7",
- b"13cfb6de37a568aae56cadac907e6469b121464fe1b70a10c213eaea2cbb6636",
- b"58f3f46f4a93e7a4431e75b10af7497b747c3053cb7466ed53f4277e78a63c52",
- b"f72b3c361381db2d88289440268c94c5e7467c9414375e6b63d03026750f3c66",
- b"f123474e140a2c360b01f0fa66f2f22e2e965a5b07a80358cf75f77abbd66088",
+ "cbf6ab47c8eb1a0477fc40b25dbb6c4a99454edb97d6fe5acedd3e238ef46fe0",
+ "02ac67c59a8b0264724a635774ca2c242afa10d7ab70e2bf0a8f7d4bb10f1f7a",
+ "646ac4a6295326bae6831be05921edfbcb362de48dfd37b12e74c227dfad768d",
+ "fd8e71c1543de2cdc7f7623130c5f2cceb53549055fa1f5bc88199989e08cce7",
+ "13cfb6de37a568aae56cadac907e6469b121464fe1b70a10c213eaea2cbb6636",
+ "58f3f46f4a93e7a4431e75b10af7497b747c3053cb7466ed53f4277e78a63c52",
+ "f72b3c361381db2d88289440268c94c5e7467c9414375e6b63d03026750f3c66",
+ "f123474e140a2c360b01f0fa66f2f22e2e965a5b07a80358cf75f77abbd66088",
]
xpub_keys = [
@@ -69,8 +69,8 @@ class TestCardanoGetPublicKey(unittest.TestCase):
for index, derivation_path in enumerate(derivation_paths):
key = _get_public_key(keychain, derivation_path)
- self.assertEqual(hexlify(key.node.public_key), public_keys[index])
- self.assertEqual(hexlify(key.node.chain_code), chain_codes[index])
+ self.assertEqual(key.node.public_key.hex(), public_keys[index])
+ self.assertEqual(key.node.chain_code.hex(), chain_codes[index])
self.assertEqual(key.xpub, xpub_keys[index])
def test_get_public_key_scheme_18_words(self):
@@ -84,13 +84,13 @@ class TestCardanoGetPublicKey(unittest.TestCase):
]
public_keys = [
- b"82f12f1916c0c35a412291e72204f17f033b0b7edf148dfd7d75acd3975c9ac0",
- b"d92d0590e76bbf0300112a9f283fba2f7f8af5cf1054d634b610d1e4f541df90",
+ "82f12f1916c0c35a412291e72204f17f033b0b7edf148dfd7d75acd3975c9ac0",
+ "d92d0590e76bbf0300112a9f283fba2f7f8af5cf1054d634b610d1e4f541df90",
]
chain_codes = [
- b"974f9cd4336e23b976f934752026a2d4c32d2e23f0532f4f87152b45fa5ca81f",
- b"352499ed19b47f2bc8c164b47df0d55f428cc8c12f96b7e65d7563114ddfd75b",
+ "974f9cd4336e23b976f934752026a2d4c32d2e23f0532f4f87152b45fa5ca81f",
+ "352499ed19b47f2bc8c164b47df0d55f428cc8c12f96b7e65d7563114ddfd75b",
]
xpub_keys = [
@@ -101,8 +101,8 @@ class TestCardanoGetPublicKey(unittest.TestCase):
for index, derivation_path in enumerate(derivation_paths):
key = _get_public_key(keychain, derivation_path)
- self.assertEqual(hexlify(key.node.public_key), public_keys[index])
- self.assertEqual(hexlify(key.node.chain_code), chain_codes[index])
+ self.assertEqual(key.node.public_key.hex(), public_keys[index])
+ self.assertEqual(key.node.chain_code.hex(), chain_codes[index])
self.assertEqual(key.xpub, xpub_keys[index])
def test_get_public_key_scheme_24_words(self):
@@ -116,13 +116,13 @@ class TestCardanoGetPublicKey(unittest.TestCase):
]
public_keys = [
- b"9d45d1e979bd0b942adb1896019c85d08fbc562f012775a1f72fc7be8fe9e4b6",
- b"a85a339897354931d584f828f6d79d4227ed16f3468990687ab42f13a87c9ea8",
+ "9d45d1e979bd0b942adb1896019c85d08fbc562f012775a1f72fc7be8fe9e4b6",
+ "a85a339897354931d584f828f6d79d4227ed16f3468990687ab42f13a87c9ea8",
]
chain_codes = [
- b"aad67fd6d620f7af88ad816a229de09cfacff3e28008a528759b2e2cf28d859a",
- b"e6f844931e7e2ec724e6e62efde662ae2669355322dc3eb9b307bc1c8e75e219",
+ "aad67fd6d620f7af88ad816a229de09cfacff3e28008a528759b2e2cf28d859a",
+ "e6f844931e7e2ec724e6e62efde662ae2669355322dc3eb9b307bc1c8e75e219",
]
xpub_keys = [
@@ -133,8 +133,8 @@ class TestCardanoGetPublicKey(unittest.TestCase):
for index, derivation_path in enumerate(derivation_paths):
key = _get_public_key(keychain, derivation_path)
- self.assertEqual(hexlify(key.node.public_key), public_keys[index])
- self.assertEqual(hexlify(key.node.chain_code), chain_codes[index])
+ self.assertEqual(key.node.public_key.hex(), public_keys[index])
+ self.assertEqual(key.node.chain_code.hex(), chain_codes[index])
self.assertEqual(key.xpub, xpub_keys[index])
def test_slip39_128(self):
@@ -164,15 +164,15 @@ class TestCardanoGetPublicKey(unittest.TestCase):
]
public_keys = [
- b"bc043d84b8b891d49890edb6aced6f2d78395f255c5b6aea8878b913f83e8579",
- b"24c4fe188a39103db88818bc191fd8571eae7b284ebcbdf2462bde97b058a95c",
- b"831a63d381a8dab1e6e1ee991a4300fc70687aae5f97f4fcf92ed1b6c2bd99de",
+ "bc043d84b8b891d49890edb6aced6f2d78395f255c5b6aea8878b913f83e8579",
+ "24c4fe188a39103db88818bc191fd8571eae7b284ebcbdf2462bde97b058a95c",
+ "831a63d381a8dab1e6e1ee991a4300fc70687aae5f97f4fcf92ed1b6c2bd99de",
]
chain_codes = [
- b"dc3f0d2b5cccb822335ef6213fd133f4ca934151ec44a6000aee43b8a101078c",
- b"6f7a744035f4b3ddb8f861c18446169643cc3ae85e271b4b4f0eda05cf84c65b",
- b"672d6af4707aba201b7940231e83dd357f92f8851b3dfdc224ef311e1b64cdeb",
+ "dc3f0d2b5cccb822335ef6213fd133f4ca934151ec44a6000aee43b8a101078c",
+ "6f7a744035f4b3ddb8f861c18446169643cc3ae85e271b4b4f0eda05cf84c65b",
+ "672d6af4707aba201b7940231e83dd357f92f8851b3dfdc224ef311e1b64cdeb",
]
xpub_keys = [
@@ -184,8 +184,8 @@ class TestCardanoGetPublicKey(unittest.TestCase):
for index, derivation_path in enumerate(derivation_paths):
key = _get_public_key(keychain, derivation_path)
- self.assertEqual(hexlify(key.node.public_key), public_keys[index])
- self.assertEqual(hexlify(key.node.chain_code), chain_codes[index])
+ self.assertEqual(key.node.public_key.hex(), public_keys[index])
+ self.assertEqual(key.node.chain_code.hex(), chain_codes[index])
self.assertEqual(key.xpub, xpub_keys[index])
def test_slip39_256(self):
@@ -215,15 +215,15 @@ class TestCardanoGetPublicKey(unittest.TestCase):
]
public_keys = [
- b"967a9a041ad1379e31c2c7f2aa4bc2b3f7769341c0ea89ccfb12a904f2e10877",
- b"6f3805bbc1b7a75afa95dffec331671f3c4662800615e80d2ec1202a9d874c86",
- b"7f145b50ef07fb9accc40ee07a01fe93ceb6fa07d5a9f20fc3c8a48246dd4d02",
+ "967a9a041ad1379e31c2c7f2aa4bc2b3f7769341c0ea89ccfb12a904f2e10877",
+ "6f3805bbc1b7a75afa95dffec331671f3c4662800615e80d2ec1202a9d874c86",
+ "7f145b50ef07fb9accc40ee07a01fe93ceb6fa07d5a9f20fc3c8a48246dd4d02",
]
chain_codes = [
- b"7b15d8d9006afe3cd7e04f375a1126a8c7c7c07c59a6f0c5b0310f4245f4edbb",
- b"44baf30fd549e6a1e05f99c2a2c8971aea8894ee8d9c5fc2c5ae6ee839a56b2d",
- b"e67d2864614ada5eec8fb8ee1225a94a6fb0a1b3c347c854ec3037351c6a0fc7",
+ "7b15d8d9006afe3cd7e04f375a1126a8c7c7c07c59a6f0c5b0310f4245f4edbb",
+ "44baf30fd549e6a1e05f99c2a2c8971aea8894ee8d9c5fc2c5ae6ee839a56b2d",
+ "e67d2864614ada5eec8fb8ee1225a94a6fb0a1b3c347c854ec3037351c6a0fc7",
]
xpub_keys = [
@@ -235,8 +235,8 @@ class TestCardanoGetPublicKey(unittest.TestCase):
for index, derivation_path in enumerate(derivation_paths):
key = _get_public_key(keychain, derivation_path)
- self.assertEqual(hexlify(key.node.public_key), public_keys[index])
- self.assertEqual(hexlify(key.node.chain_code), chain_codes[index])
+ self.assertEqual(key.node.public_key.hex(), public_keys[index])
+ self.assertEqual(key.node.chain_code.hex(), chain_codes[index])
self.assertEqual(key.xpub, xpub_keys[index])
diff --git a/core/tests/test_apps.cardano.native_script.py b/core/tests/test_apps.cardano.native_script.py
index 5385d0ee..11038faf 100644
--- a/core/tests/test_apps.cardano.native_script.py
+++ b/core/tests/test_apps.cardano.native_script.py
@@ -18,11 +18,11 @@ if not utils.BITCOIN_ONLY:
[
CardanoNativeScript(
type=CardanoNativeScriptType.PUB_KEY,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"c4b9265645fde9536c0795adbcc5291767a0c61fd62448341d7e0386"
),
),
- b"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd",
+ "29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd",
],
# PUB_KEY with path
[
@@ -30,7 +30,7 @@ if not utils.BITCOIN_ONLY:
type=CardanoNativeScriptType.PUB_KEY,
key_path=[1854 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0],
),
- b"29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd",
+ "29fb5fd4aa8cadd6705acc8263cee0fc62edca5ac38db593fec2f9fd",
],
# ALL
[
@@ -43,13 +43,13 @@ if not utils.BITCOIN_ONLY:
),
CardanoNativeScript(
type=CardanoNativeScriptType.PUB_KEY,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"0241f2d196f52a92fbd2183d03b370c30b6960cfdeae364ffabac889"
),
),
],
),
- b"af5c2ce476a6ede1c879f7b1909d6a0b96cb2081391712d4a355cef6",
+ "af5c2ce476a6ede1c879f7b1909d6a0b96cb2081391712d4a355cef6",
],
# ALL with 1855 path
[
@@ -62,18 +62,18 @@ if not utils.BITCOIN_ONLY:
),
CardanoNativeScript(
type=CardanoNativeScriptType.PUB_KEY,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"0241f2d196f52a92fbd2183d03b370c30b6960cfdeae364ffabac889"
),
),
],
),
- b"fbf6672eb655c29b0f148fa1429be57c2174b067a7b3e3942e967fe8",
+ "fbf6672eb655c29b0f148fa1429be57c2174b067a7b3e3942e967fe8",
],
# ALL scripts are empty
[
CardanoNativeScript(type=CardanoNativeScriptType.ALL, scripts=[]),
- b"d441227553a0f1a965fee7d60a0f724b368dd1bddbc208730fccebcf",
+ "d441227553a0f1a965fee7d60a0f724b368dd1bddbc208730fccebcf",
],
# ANY
[
@@ -86,18 +86,18 @@ if not utils.BITCOIN_ONLY:
),
CardanoNativeScript(
type=CardanoNativeScriptType.PUB_KEY,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"0241f2d196f52a92fbd2183d03b370c30b6960cfdeae364ffabac889"
),
),
],
),
- b"d6428ec36719146b7b5fb3a2d5322ce702d32762b8c7eeeb797a20db",
+ "d6428ec36719146b7b5fb3a2d5322ce702d32762b8c7eeeb797a20db",
],
# ANY scripts are empty
[
CardanoNativeScript(type=CardanoNativeScriptType.ANY, scripts=[]),
- b"52dc3d43b6d2465e96109ce75ab61abe5e9c1d8a3c9ce6ff8a3af528",
+ "52dc3d43b6d2465e96109ce75ab61abe5e9c1d8a3c9ce6ff8a3af528",
],
# N OF K
[
@@ -111,19 +111,19 @@ if not utils.BITCOIN_ONLY:
),
CardanoNativeScript(
type=CardanoNativeScriptType.PUB_KEY,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"0241f2d196f52a92fbd2183d03b370c30b6960cfdeae364ffabac889"
),
),
CardanoNativeScript(
type=CardanoNativeScriptType.PUB_KEY,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"cecb1d427c4ae436d28cc0f8ae9bb37501a5b77bcc64cd1693e9ae20"
),
),
],
),
- b"2b2b17fd18e18acae4601d4818a1dee00a917ff72e772fa8482e36c9",
+ "2b2b17fd18e18acae4601d4818a1dee00a917ff72e772fa8482e36c9",
],
# N_OF_K scripts are empty
[
@@ -132,7 +132,7 @@ if not utils.BITCOIN_ONLY:
required_signatures_count=0,
scripts=[],
),
- b"3530cc9ae7f2895111a99b7a02184dd7c0cea7424f1632d73951b1d7",
+ "3530cc9ae7f2895111a99b7a02184dd7c0cea7424f1632d73951b1d7",
],
# INVALID BEFORE
[
@@ -141,7 +141,7 @@ if not utils.BITCOIN_ONLY:
scripts=[
CardanoNativeScript(
type=CardanoNativeScriptType.PUB_KEY,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"c4b9265645fde9536c0795adbcc5291767a0c61fd62448341d7e0386"
),
),
@@ -150,7 +150,7 @@ if not utils.BITCOIN_ONLY:
),
],
),
- b"c6262ef9bb2b1291c058d93b46dabf458e2d135f803f60713f84b0b7",
+ "c6262ef9bb2b1291c058d93b46dabf458e2d135f803f60713f84b0b7",
],
# INVALID HEREAFTER
[
@@ -159,7 +159,7 @@ if not utils.BITCOIN_ONLY:
scripts=[
CardanoNativeScript(
type=CardanoNativeScriptType.PUB_KEY,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"c4b9265645fde9536c0795adbcc5291767a0c61fd62448341d7e0386"
),
),
@@ -169,7 +169,7 @@ if not utils.BITCOIN_ONLY:
),
],
),
- b"b12ac304f89f4cd4d23f59a2b90d2b2697f7540b8f470d6aa05851b5",
+ "b12ac304f89f4cd4d23f59a2b90d2b2697f7540b8f470d6aa05851b5",
],
# NESTED SCRIPT
[
@@ -178,7 +178,7 @@ if not utils.BITCOIN_ONLY:
scripts=[
CardanoNativeScript(
type=CardanoNativeScriptType.PUB_KEY,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"c4b9265645fde9536c0795adbcc5291767a0c61fd62448341d7e0386"
),
),
@@ -201,7 +201,7 @@ if not utils.BITCOIN_ONLY:
),
CardanoNativeScript(
type=CardanoNativeScriptType.PUB_KEY,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"0241f2d196f52a92fbd2183d03b370c30b6960cfdeae364ffabac889"
),
),
@@ -223,13 +223,13 @@ if not utils.BITCOIN_ONLY:
),
CardanoNativeScript(
type=CardanoNativeScriptType.PUB_KEY,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"0241f2d196f52a92fbd2183d03b370c30b6960cfdeae364ffabac889"
),
),
CardanoNativeScript(
type=CardanoNativeScriptType.PUB_KEY,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"cecb1d427c4ae436d28cc0f8ae9bb37501a5b77bcc64cd1693e9ae20"
),
),
@@ -244,7 +244,7 @@ if not utils.BITCOIN_ONLY:
),
],
),
- b"4a6b4288459bf34668c0b281f922691460caf0c7c09caee3a726c27a",
+ "4a6b4288459bf34668c0b281f922691460caf0c7c09caee3a726c27a",
],
]
@@ -252,7 +252,7 @@ if not utils.BITCOIN_ONLY:
# PUB_KEY key_hash has invalid length
CardanoNativeScript(
type=CardanoNativeScriptType.PUB_KEY,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"3a55d9f68255dfbefa1efd711f82d005fae1be2e145d616c90cf0f"
),
),
@@ -272,7 +272,7 @@ if not utils.BITCOIN_ONLY:
scripts=[
CardanoNativeScript(
type=CardanoNativeScriptType.PUB_KEY,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"3a55d9f68255dfbefa1efd711f82d005fae1be2e145d616c90cf0fa9"
),
),
@@ -285,7 +285,7 @@ if not utils.BITCOIN_ONLY:
scripts=[
CardanoNativeScript(
type=CardanoNativeScriptType.PUB_KEY,
- key_hash=unhexlify(
+ key_hash=bytes.fromhex(
"3a55d9f68255dfbefa1efd711f82d005fae1be2e145d616c90cf0fa9"
),
),
@@ -310,7 +310,7 @@ class TestCardanoNativeScript(unittest.TestCase):
for script, expected_hash in VALID_NATIVE_SCRIPTS:
actual_hash = get_native_script_hash(keychain, script)
- self.assertEqual(hexlify(actual_hash), expected_hash)
+ self.assertEqual(actual_hash.hex(), expected_hash)
def test_validate_native_script(self):
for script, _ in VALID_NATIVE_SCRIPTS:
diff --git a/core/tests/test_apps.cardano.seed.py b/core/tests/test_apps.cardano.seed.py
index 94cec6fd..1e51cdd4 100644
--- a/core/tests/test_apps.cardano.seed.py
+++ b/core/tests/test_apps.cardano.seed.py
@@ -31,21 +31,21 @@ class TestCardanoKeychain(unittest.TestCase):
]
public_keys = [
- b"badd2852ccda7492364be0f88f2ba0b78c5f2d7179a941f1d19f756112b66afa",
- b"34377409140c061d76778626d43456880d5471c1cbade8c372cb6a3be9678072",
- b"73fea80d424276ad0978d4fe5310e8bc2d485f5f6bb3bf87612989f112ad5a7d",
- b"f626ab887eb5f40b502463ccf2ec5a7311676ee9e5d55c492059a366c0b4d4a1",
- b"408ee7b2d1c84d7899dba07150fae88c5411974f1762cb659dd928db8aac206b",
- b"86e8a3880767e1ed521a47de1e031d47f33d5a8095be467bffbbd3295e27258e",
+ "badd2852ccda7492364be0f88f2ba0b78c5f2d7179a941f1d19f756112b66afa",
+ "34377409140c061d76778626d43456880d5471c1cbade8c372cb6a3be9678072",
+ "73fea80d424276ad0978d4fe5310e8bc2d485f5f6bb3bf87612989f112ad5a7d",
+ "f626ab887eb5f40b502463ccf2ec5a7311676ee9e5d55c492059a366c0b4d4a1",
+ "408ee7b2d1c84d7899dba07150fae88c5411974f1762cb659dd928db8aac206b",
+ "86e8a3880767e1ed521a47de1e031d47f33d5a8095be467bffbbd3295e27258e",
]
chain_codes = [
- b"e1c5d15875d3ed68667978af38fe3fe586511d87a784c0962a333c21e63a865d",
- b"15c987276326a82defa4cb6762d43442f09e5dcbcc37fa0c58f24ae2dba3d3eb",
- b"dd75e154da417becec55cdd249327454138f082110297d5e87ab25e15fad150f",
- b"f7ab126f2884db9059fa09ca83be6b8bd0250426aeb62191bdd9861457b8bc91",
- b"18d5c9d20c8d23bed068c9ff3a1126b940f0e537f9d94891828a999dda6fafd1",
- b"580bba4bb0b9c56974e16a6998322a91e857e2fac28674404da993f6197fd29f",
+ "e1c5d15875d3ed68667978af38fe3fe586511d87a784c0962a333c21e63a865d",
+ "15c987276326a82defa4cb6762d43442f09e5dcbcc37fa0c58f24ae2dba3d3eb",
+ "dd75e154da417becec55cdd249327454138f082110297d5e87ab25e15fad150f",
+ "f7ab126f2884db9059fa09ca83be6b8bd0250426aeb62191bdd9861457b8bc91",
+ "18d5c9d20c8d23bed068c9ff3a1126b940f0e537f9d94891828a999dda6fafd1",
+ "580bba4bb0b9c56974e16a6998322a91e857e2fac28674404da993f6197fd29f",
]
xpub_keys = [
@@ -60,8 +60,8 @@ class TestCardanoKeychain(unittest.TestCase):
for index, derivation_path in enumerate(derivation_paths):
key = _get_public_key(keychain, derivation_path)
- self.assertEqual(hexlify(key.node.public_key), public_keys[index])
- self.assertEqual(hexlify(key.node.chain_code), chain_codes[index])
+ self.assertEqual(key.node.public_key.hex(), public_keys[index])
+ self.assertEqual(key.node.chain_code.hex(), chain_codes[index])
self.assertEqual(key.xpub, xpub_keys[index])
@@ -75,7 +75,7 @@ class TestCardanoDerivation(unittest.TestCase):
secret = cardano.derive_icarus(binary_mnemonic, "", False)
self.assertEqual(
- hexlify(secret).decode(),
+ secret.hex(),
"c065afd2832cd8b087c4d9ab7011f481ee1e0721e78ea5dd609f3ab3f156d245"
"d176bd8fd4ec60b4731c3918a2a72a0226c0cd119ec35b47e4d55884667f552a"
"23f7fdcd4a10c6cd2c7393ac61d877873e248f417634aa3d812af327ffe9d620",
@@ -85,7 +85,7 @@ class TestCardanoDerivation(unittest.TestCase):
secret = cardano.derive_icarus(binary_mnemonic, "foo", False)
self.assertEqual(
- hexlify(secret).decode(),
+ secret.hex(),
"70531039904019351e1afb361cd1b312a4d0565d4ff9f8062d38acf4b15cce41"
"d7b5738d9c893feea55512a3004acb0d222c35d3e3d5cde943a15a9824cbac59"
"443cf67e589614076ba01e354b1a432e0e6db3b59e37fc56b5fb0222970a010e",
@@ -102,7 +102,7 @@ class TestCardanoDerivation(unittest.TestCase):
binary_mnemonic = bip39.mnemonic_to_bits(mnemonic)
secret = cardano.derive_icarus(binary_mnemonic, "", True)
self.assertEqual(
- hexlify(secret).decode(),
+ secret.hex(),
"409bb7a2998ec48029c8d2956fabd043a368ccc9b5120e42dd8a5c7145d08f45"
"e8e8664d06f62b4fc3bab0134778af27ddf059a4ad1eb0efefeedd8189bbfe00"
"deb289c5cdc2cf8ccfa19aea63b28424a4b0045b4b762292d46b73aa1c5cc99a",
@@ -113,7 +113,7 @@ class TestCardanoDerivation(unittest.TestCase):
PASSPHRASE = "foo"
secret = cardano.derive_icarus(binary_mnemonic, PASSPHRASE, True)
self.assertEqual(
- hexlify(secret).decode(),
+ secret.hex(),
"c8ab7a160a66bfa7a118f553c4eebfe7444e36e449dac7d6eeae21f3bbaa9551"
"8593025160068776a4d61c0efc4f698585bb59f1aebe93c58e1eaf557ab59502"
"d9f68fbea3049bc2255d15fc63803e9c3dbb78abff2d53f8356794807d402568",
diff --git a/core/tests/test_apps.cardano.utils.py b/core/tests/test_apps.cardano.utils.py
index be467026..ba8a45c1 100644
--- a/core/tests/test_apps.cardano.utils.py
+++ b/core/tests/test_apps.cardano.utils.py
@@ -56,7 +56,8 @@ class TestCardanoUtils(unittest.TestCase):
for params, expected in test_vectors:
actual = format_asset_fingerprint(
- policy_id=unhexlify(params[0]), asset_name_bytes=unhexlify(params[1])
+ policy_id=bytes.fromhex(params[0]),
+ asset_name_bytes=bytes.fromhex(params[1]),
)
self.assertEqual(actual, expected)
diff --git a/core/tests/test_apps.common.cbor.py b/core/tests/test_apps.common.cbor.py
index ae62d8e1..e7ef7ae8 100644
--- a/core/tests/test_apps.common.cbor.py
+++ b/core/tests/test_apps.common.cbor.py
@@ -26,7 +26,7 @@ class TestCardanoCbor(unittest.TestCase):
((2**64) - 1, "9bffffffffffffffff"),
]
for val, header_hex in test_vectors:
- header = unhexlify(header_hex)
+ header = bytes.fromhex(header_hex)
self.assertEqual(create_array_header(val), header)
with self.assertRaises(NotImplementedError):
@@ -42,7 +42,7 @@ class TestCardanoCbor(unittest.TestCase):
((2**64) - 1, "d901029bffffffffffffffff"),
]
for val, header_hex in test_vectors:
- header = unhexlify(header_hex)
+ header = bytes.fromhex(header_hex)
self.assertEqual(create_tagged_set_header(val), header)
with self.assertRaises(NotImplementedError):
@@ -58,7 +58,7 @@ class TestCardanoCbor(unittest.TestCase):
((2**64) - 1, "bbffffffffffffffff"),
]
for val, header_hex in test_vectors:
- header = unhexlify(header_hex)
+ header = bytes.fromhex(header_hex)
self.assertEqual(create_map_header(val), header)
with self.assertRaises(NotImplementedError):
@@ -74,7 +74,7 @@ class TestCardanoCbor(unittest.TestCase):
((2**64) - 1, "d8185bffffffffffffffff"),
]
for val, header_hex in test_vectors:
- header = unhexlify(header_hex)
+ header = bytes.fromhex(header_hex)
self.assertEqual(create_embedded_cbor_bytes_header(val), header)
with self.assertRaises(NotImplementedError):
@@ -105,7 +105,7 @@ class TestCardanoCbor(unittest.TestCase):
(-1000000000000, "3B000000E8D4A50FFF"),
# binary strings
(b"", "40"),
- (unhexlify("01020304"), "4401020304"),
+ (bytes.fromhex("01020304"), "4401020304"),
# text strings
("", "60"),
("Fun", "6346756e"),
@@ -115,7 +115,7 @@ class TestCardanoCbor(unittest.TestCase):
),
# tags
(Tagged(1, 1363896240), "c11a514b67b0"),
- (Tagged(23, unhexlify("01020304")), "d74401020304"),
+ (Tagged(23, bytes.fromhex("01020304")), "d74401020304"),
# arrays
([], "80"),
([1, 2, 3], "83010203"),
@@ -142,7 +142,7 @@ class TestCardanoCbor(unittest.TestCase):
(None, "f6"),
]
for val, encoded_hex in test_vectors:
- encoded = unhexlify(encoded_hex)
+ encoded = bytes.fromhex(encoded_hex)
self.assertEqual(encode(val), encoded)
self.assertEqual(decode(encoded), val)
@@ -161,7 +161,7 @@ class TestCardanoCbor(unittest.TestCase):
]
for val, encoded_hex in test_vectors:
value_tuple = tuple(val)
- encoded = unhexlify(encoded_hex)
+ encoded = bytes.fromhex(encoded_hex)
self.assertEqual(encode(value_tuple), encoded)
self.assertEqual(decode(encoded), val)
@@ -180,7 +180,7 @@ class TestCardanoCbor(unittest.TestCase):
for key, value in val:
ordered_map[key] = value
- encoded = unhexlify(encoded_hex)
+ encoded = bytes.fromhex(encoded_hex)
self.assertEqual(encode(ordered_map), encoded)
self.assertEqual(decode(encoded), {k: v for k, v in val})
diff --git a/core/tests/test_apps.common.payment_request.py b/core/tests/test_apps.common.payment_request.py
index c305d3ca..1100afa8 100644
--- a/core/tests/test_apps.common.payment_request.py
+++ b/core/tests/test_apps.common.payment_request.py
@@ -80,7 +80,9 @@ def _get_request_without_memos() -> PaymentRequest:
"e55efcc85de5ab52a57a8ecf675d8454d6204c98298f93faf71c668fec9340070"
)
return PaymentRequest(
- recipient_name="TEST Recipient", signature=unhexlify(debug_signature), memos=[]
+ recipient_name="TEST Recipient",
+ signature=bytes.fromhex(debug_signature),
+ memos=[],
)
@@ -116,14 +118,14 @@ def _get_request_with_coin_purchase_memo() -> PaymentRequest:
def _get_sell_payment_request(include_nonce=b"DEBUG NONCE") -> PaymentRequest:
text_memo = TextMemo(text="text memo text")
mac = "a7594205d318491c7335d460acfebadc3c862b803abfd5a0fcf7ea6082bff1dc"
- refund_memo = RefundMemo(address="ADDRESS", mac=unhexlify(mac))
+ refund_memo = RefundMemo(address="ADDRESS", mac=bytes.fromhex(mac))
debug_signature = (
"20a71af90876caf75f987c432d7769311e04e0cf23afb31279acdf5563a0154a2"
"372a44d16c605b0710e9c7c93a0e9a382d946d99c43490edfcdf366bdbca5305c"
)
return PaymentRequest(
recipient_name="TEST Recipient",
- signature=unhexlify(debug_signature),
+ signature=bytes.fromhex(debug_signature),
nonce=include_nonce,
memos=[
PaymentRequestMemo(text_memo=text_memo),
@@ -140,12 +142,12 @@ def _get_coin_swap_request(include_nonce=b"DEBUG NONCE") -> PaymentRequest:
"e4c26c0ee3666380476deff2ac3d1899e86a298d98e249302207ffd14e70a3030"
)
coin_purchase_memo = CoinPurchaseMemo(
- coin_type=0, amount="AMOUNT", address="ADDRESS", mac=unhexlify(mac)
+ coin_type=0, amount="AMOUNT", address="ADDRESS", mac=bytes.fromhex(mac)
)
- refund_memo = RefundMemo(address="Refund address", mac=unhexlify(mac2))
+ refund_memo = RefundMemo(address="Refund address", mac=bytes.fromhex(mac2))
return PaymentRequest(
recipient_name="TEST Recipient",
- signature=unhexlify(debug_signature),
+ signature=bytes.fromhex(debug_signature),
nonce=include_nonce,
memos=[
PaymentRequestMemo(coin_purchase_memo=coin_purchase_memo),
diff --git a/core/tests/test_apps.common.seed.py b/core/tests/test_apps.common.seed.py
index 37e82d21..ea1f4f64 100644
--- a/core/tests/test_apps.common.seed.py
+++ b/core/tests/test_apps.common.seed.py
@@ -17,22 +17,22 @@ class TestSeed(unittest.TestCase):
keychain = Keychain(seed, "", [], slip21_namespaces=[[b"SLIP-0021"]])
# Key(m)
- KEY_M = unhexlify(
- b"dbf12b44133eaab506a740f6565cc117228cbf1dd70635cfa8ddfdc9af734756"
+ KEY_M = bytes.fromhex(
+ "dbf12b44133eaab506a740f6565cc117228cbf1dd70635cfa8ddfdc9af734756"
)
self.assertEqual(node1.key(), KEY_M)
# Key(m/"SLIP-0021")
- KEY_M_SLIP0021 = unhexlify(
- b"1d065e3ac1bbe5c7fad32cf2305f7d709dc070d672044a19e610c77cdf33de0d"
+ KEY_M_SLIP0021 = bytes.fromhex(
+ "1d065e3ac1bbe5c7fad32cf2305f7d709dc070d672044a19e610c77cdf33de0d"
)
node1.derive_path([b"SLIP-0021"])
self.assertEqual(node1.key(), KEY_M_SLIP0021)
self.assertEqual(keychain.derive_slip21([b"SLIP-0021"]).key(), KEY_M_SLIP0021)
# Key(m/"SLIP-0021"/"Master encryption key")
- KEY_M_SLIP0021_MEK = unhexlify(
- b"ea163130e35bbafdf5ddee97a17b39cef2be4b4f390180d65b54cf05c6a82fde"
+ KEY_M_SLIP0021_MEK = bytes.fromhex(
+ "ea163130e35bbafdf5ddee97a17b39cef2be4b4f390180d65b54cf05c6a82fde"
)
node1.derive_path([b"Master encryption key"])
self.assertEqual(node1.key(), KEY_M_SLIP0021_MEK)
@@ -42,8 +42,8 @@ class TestSeed(unittest.TestCase):
)
# Key(m/"SLIP-0021"/"Authentication key")
- KEY_M_SLIP0021_AK = unhexlify(
- b"47194e938ab24cc82bfa25f6486ed54bebe79c40ae2a5a32ea6db294d81861a6"
+ KEY_M_SLIP0021_AK = bytes.fromhex(
+ "47194e938ab24cc82bfa25f6486ed54bebe79c40ae2a5a32ea6db294d81861a6"
)
node2.derive_path([b"SLIP-0021", b"Authentication key"])
self.assertEqual(node2.key(), KEY_M_SLIP0021_AK)
diff --git a/core/tests/test_apps.eos.get_public_key.py b/core/tests/test_apps.eos.get_public_key.py
index e07502d3..e5c8d95b 100644
--- a/core/tests/test_apps.eos.get_public_key.py
+++ b/core/tests/test_apps.eos.get_public_key.py
@@ -30,10 +30,10 @@ class TestEosGetPublicKey(unittest.TestCase):
]
public_keys = [
- b"0315c358024ce46767102578947584c4342a6982b922d454f63588effa34597197",
- b"029622eff7248c4d298fe28f2df19ee0d5f7674f678844e05c31d1a5632412869e",
- b"02625f33c10399703e95e41bd5054beef3ab893dcc7df2bb9bdcee48359b29069d",
- b"037c9b7d24d42589941cca3f4debc75b37c0e7b881e6eb00d2e674958debe3bbc3",
+ "0315c358024ce46767102578947584c4342a6982b922d454f63588effa34597197",
+ "029622eff7248c4d298fe28f2df19ee0d5f7674f678844e05c31d1a5632412869e",
+ "02625f33c10399703e95e41bd5054beef3ab893dcc7df2bb9bdcee48359b29069d",
+ "037c9b7d24d42589941cca3f4debc75b37c0e7b881e6eb00d2e674958debe3bbc3",
]
wif_keys = [
@@ -48,7 +48,7 @@ class TestEosGetPublicKey(unittest.TestCase):
node.derive_path(path)
wif, public_key = _get_public_key(node)
- self.assertEqual(hexlify(public_key), public_keys[index])
+ self.assertEqual(public_key.hex(), public_keys[index])
self.assertEqual(wif, wif_keys[index])
self.assertEqual(public_key_to_wif(public_key), wif_keys[index])
diff --git a/core/tests/test_apps.ethereum.clear_signing.py b/core/tests/test_apps.ethereum.clear_signing.py
index dd5220d6..8ddc11e4 100644
--- a/core/tests/test_apps.ethereum.clear_signing.py
+++ b/core/tests/test_apps.ethereum.clear_signing.py
@@ -5,8 +5,6 @@ import unittest
if not utils.BITCOIN_ONLY:
- from ubinascii import hexlify
-
from ethereum_common import *
from trezor.enums import EthereumERC7730FieldFormatterType as FT
from trezor.messages import (
@@ -69,7 +67,7 @@ def to_bytes(v: int) -> bytes:
class TestEthereumClearSigning(unittest.TestCase):
def test_address_parsing_valid(self):
addr_hex = "d8da6bf26964af9d7eed9e03e53415d37aa96045"
- addr_bytes = unhexlify(addr_hex)
+ addr_bytes = bytes.fromhex(addr_hex)
valid_payload = b"\x00" * 12 + addr_bytes
data = memoryview(valid_payload)
@@ -82,7 +80,7 @@ class TestEthereumClearSigning(unittest.TestCase):
def test_address_parsing_invalid_padding(self):
addr_hex = "d8da6bf26964af9d7eed9e03e53415d37aa96045"
- addr_bytes = unhexlify(addr_hex)
+ addr_bytes = bytes.fromhex(addr_hex)
invalid_payload = b"\x01" + b"\x00" * 11 + addr_bytes # dirty padding
data = memoryview(invalid_payload)
@@ -165,7 +163,7 @@ class TestEthereumClearSigning(unittest.TestCase):
is_dynamic=False,
)
- addr_bytes = unhexlify("d8da6bf26964af9d7eed9e03e53415d37aa96045")
+ addr_bytes = bytes.fromhex("d8da6bf26964af9d7eed9e03e53415d37aa96045")
u160_val = 2**160 - 1
bool_val = 1
@@ -186,7 +184,7 @@ class TestEthereumClearSigning(unittest.TestCase):
is_dynamic=False,
)
- addr_bytes = unhexlify("d8da6bf26964af9d7eed9e03e53415d37aa96045")
+ addr_bytes = bytes.fromhex("d8da6bf26964af9d7eed9e03e53415d37aa96045")
overflow_u160 = 2**160
bool_val = 1
@@ -204,7 +202,7 @@ class TestEthereumClearSigning(unittest.TestCase):
def test_dynamic_struct_valid(self):
dynamic_struct = Tuple((parse_address, parse_string), is_dynamic=True)
- addr = unhexlify("d8da6bf26964af9d7eed9e03e53415d37aa96045")
+ addr = bytes.fromhex("d8da6bf26964af9d7eed9e03e53415d37aa96045")
# left padded with zeroes
addr_bytes = b"\x00" * (32 - 20) + addr
@@ -250,9 +248,9 @@ class TestEthereumClearSigning(unittest.TestCase):
def test_array_of_addresses_valid(self):
address_array_parser = Array(Atomic(parse_address))
- addr1 = unhexlify("d8da6bf26964af9d7eed9e03e53415d37aa96045")
+ addr1 = bytes.fromhex("d8da6bf26964af9d7eed9e03e53415d37aa96045")
addr1_bytes = b"\x00" * (32 - 20) + addr1
- addr2 = unhexlify("71c7656ec7ab88b098defb751b7401b5f6d8976f")
+ addr2 = bytes.fromhex("71c7656ec7ab88b098defb751b7401b5f6d8976f")
addr2_bytes = b"\x00" * (32 - 20) + addr2
array_length = len([addr1, addr2])
@@ -276,13 +274,13 @@ class TestEthereumClearSigning(unittest.TestCase):
def test_array_of_addresses_with_dirty_element(self):
address_array_parser = Array(Atomic(parse_address))
- addr_valid_bytes = b"\x00" * 12 + unhexlify(
+ addr_valid_bytes = b"\x00" * 12 + bytes.fromhex(
"d8da6bf26964af9d7eed9e03e53415d37aa96045"
)
addr_dirty_bytes = (
b"\x01"
+ b"\x00" * 11
- + unhexlify("71c7656ec7ab88b098defb751b7401b5f6d8976f")
+ + bytes.fromhex("71c7656ec7ab88b098defb751b7401b5f6d8976f")
)
payload = (
@@ -306,8 +304,8 @@ class TestEthereumClearSigning(unittest.TestCase):
)
)
- addr1 = unhexlify("d8da6bf26964af9d7eed9e03e53415d37aa96045")
- addr2 = unhexlify("71c7656ec7ab88b098defb751b7401b5f6d8976f")
+ addr1 = bytes.fromhex("d8da6bf26964af9d7eed9e03e53415d37aa96045")
+ addr2 = bytes.fromhex("71c7656ec7ab88b098defb751b7401b5f6d8976f")
text1 = "Hello first world!"
text2 = "Hello second world!"
@@ -358,10 +356,10 @@ class TestEthereumClearSigning(unittest.TestCase):
)
)
- addr1 = unhexlify("6666666666666666666666666666666666666666")
- addr2 = unhexlify("7777777777777777777777777777777777777777")
- addr3 = unhexlify("8888888888888888888888888888888888888888")
- addr4 = unhexlify("9999999999999999999999999999999999999999")
+ addr1 = bytes.fromhex("6666666666666666666666666666666666666666")
+ addr2 = bytes.fromhex("7777777777777777777777777777777777777777")
+ addr3 = bytes.fromhex("8888888888888888888888888888888888888888")
+ addr4 = bytes.fromhex("9999999999999999999999999999999999999999")
def pad_addr(addr):
return b"\x00" * (32 - 20) + addr
@@ -786,8 +784,8 @@ class TestEthereumClearSigning(unittest.TestCase):
network = make_eth_network()
fmt = AddressNameFormatter()
- addr1 = unhexlify("d8da6bf26964af9d7eed9e03e53415d37aa96045")
- addr2 = unhexlify("71c7656ec7ab88b098defb751b7401b5f6d8976f")
+ addr1 = bytes.fromhex("d8da6bf26964af9d7eed9e03e53415d37aa96045")
+ addr2 = bytes.fromhex("71c7656ec7ab88b098defb751b7401b5f6d8976f")
formatted, _, _ = await_result(
_format_field_value(fmt, [addr1, addr2], None, _Defs(), None)
@@ -803,7 +801,7 @@ class TestEthereumClearSigning(unittest.TestCase):
def test_multi_value_token_amount(self):
# Multi-value with TokenAmountFormatter: every element shares the one
# (constant) token, rendered one amount-per-line.
- token_addr = unhexlify("ae7ab96520de3a18e5e111b5eaab095312d7fe84")
+ token_addr = bytes.fromhex("ae7ab96520de3a18e5e111b5eaab095312d7fe84")
class _Defs:
network = make_eth_network()
@@ -935,7 +933,7 @@ class TestEthereumClearSigning(unittest.TestCase):
addr_hex = "d8da6bf26964af9d7eed9e03e53415d37aa96045"
flags = (1 << 255) | (1 << 160)
- packed_address = flags | int.from_bytes(unhexlify(addr_hex), "big")
+ packed_address = flags | int.from_bytes(bytes.fromhex(addr_hex), "big")
display_format = DisplayFormat(
binding_context=None,
@@ -989,7 +987,7 @@ class TestEthereumClearSigning(unittest.TestCase):
def test_from_proto_token_amount_constant_token(self):
# Regression test for `from_proto`
# Might use a .proto binary blob in future.
- token_addr = unhexlify("ae7ab96520de3a18e5e111b5eaab095312d7fe84") # stETH
+ token_addr = bytes.fromhex("ae7ab96520de3a18e5e111b5eaab095312d7fe84") # stETH
info = EthereumERC7730FieldInfo(
path=EthereumERC7730Path(path=[0]),
label="Amount",
@@ -1004,7 +1002,7 @@ class TestEthereumClearSigning(unittest.TestCase):
def test_token_amount_constant_token_format(self):
# The token is resolved from `defs` by the constant address, without
# touching the calldata - so `path_walker` is never called (passed None).
- token_addr = unhexlify("ae7ab96520de3a18e5e111b5eaab095312d7fe84") # stETH
+ token_addr = bytes.fromhex("ae7ab96520de3a18e5e111b5eaab095312d7fe84") # stETH
class _Defs:
network = make_eth_network()
@@ -1030,10 +1028,10 @@ class TestEthereumClearSigning(unittest.TestCase):
# --- `calldata` fields (nested invocations) ---
TRANSFER_SIG = b"\xa9\x05\x9c\xbb"
- RECIPIENT = unhexlify("d8da6bf26964af9d7eed9e03e53415d37aa96045")
+ RECIPIENT = bytes.fromhex("d8da6bf26964af9d7eed9e03e53415d37aa96045")
# stETH: mapped to "Lido" in KNOWN_ADDRESSES, exercising the provider /
# callee name resolution. Will be updated once those definitions are removed.
- CALLEE = unhexlify("ae7ab96520de3a18e5e111b5eaab095312d7fe84")
+ CALLEE = bytes.fromhex("ae7ab96520de3a18e5e111b5eaab095312d7fe84")
@staticmethod
def _msg(**kwargs):
@@ -1116,7 +1114,7 @@ class TestEthereumClearSigning(unittest.TestCase):
# the fallback is two rows: the callee, then the raw hex blob
self.assertEqual(len(fields), 2)
self.assertEqual(fields[0][0][:2], ("Subcall to", callee_str))
- self.assertEqual(fields[1][0][:2], ("Wrapped call", hexlify(blob).decode()))
+ self.assertEqual(fields[1][0][:2], ("Wrapped call", blob.hex()))
for _, token, token_address in fields:
self.assertIsNone(token)
self.assertIsNone(token_address)
@@ -1175,7 +1173,7 @@ class TestEthereumClearSigning(unittest.TestCase):
self.assertEqual(fields[1][0][:2], ("(Subcall) Intent", "Send"))
(label, formatted, _), _, _ = fields[2]
self.assertEqual(label, "(Subcall) To")
- self.assertEqual(formatted.lower(), "0x" + hexlify(self.RECIPIENT).decode())
+ self.assertEqual(formatted.lower(), "0x" + self.RECIPIENT.hex())
(label, formattedWhy this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.