diff --git a/core/src/all_modules.py b/core/src/all_modules.py index 5cb305ca6..69cf9a818 100644 --- a/core/src/all_modules.py +++ b/core/src/all_modules.py @@ -183,6 +183,8 @@ import trezor.lvglui.lv_symbols trezor.lvglui.scrs import trezor.lvglui.scrs +trezor.lvglui.scrs.address +import trezor.lvglui.scrs.address trezor.lvglui.scrs.app_guide import trezor.lvglui.scrs.app_guide trezor.lvglui.scrs.bip39_dotmap diff --git a/core/src/storage/cache.py b/core/src/storage/cache.py index 371f3baeb..c412ec2b7 100644 --- a/core/src/storage/cache.py +++ b/core/src/storage/cache.py @@ -164,6 +164,8 @@ def __init__(self) -> None: session.clear() _SESSIONLESS_CACHE.clear() +_SESSION_ID = bytearray(_SESSION_ID_LENGTH) + gc.collect() @@ -212,6 +214,8 @@ def start_session(received_session_id: bytes | None = None) -> bytes | None: return selected_session.export_session_id() else: received_session_id = se_thd89.start_session(received_session_id) + if received_session_id is not None: + _SESSION_ID[:] = received_session_id return received_session_id @@ -225,9 +229,14 @@ def end_current_session() -> None: _SESSIONS[_active_session_idx].clear() _active_session_idx = None else: + _SESSION_ID[:] = b"" se_thd89.end_session() +def get_session_id() -> bytes: + return bytes(_SESSION_ID) + + def is_session_started() -> bool: if not utils.USE_THD89: return _active_session_idx is not None diff --git a/core/src/trezor/lvglui/assets/addr/btc-btc-48.png b/core/src/trezor/lvglui/assets/addr/btc-btc-48.png new file mode 100755 index 000000000..8940d1556 Binary files /dev/null and b/core/src/trezor/lvglui/assets/addr/btc-btc-48.png differ diff --git a/core/src/trezor/lvglui/assets/addr/btn-doubledown.png b/core/src/trezor/lvglui/assets/addr/btn-doubledown.png new file mode 100755 index 000000000..32387102d Binary files /dev/null and b/core/src/trezor/lvglui/assets/addr/btn-doubledown.png differ diff --git a/core/src/trezor/lvglui/assets/addr/btn-doubleup.png b/core/src/trezor/lvglui/assets/addr/btn-doubleup.png new file mode 100755 index 000000000..1a2cc930d Binary files /dev/null and b/core/src/trezor/lvglui/assets/addr/btn-doubleup.png differ diff --git a/core/src/trezor/lvglui/assets/addr/chain-ada-48.png b/core/src/trezor/lvglui/assets/addr/chain-ada-48.png new file mode 100755 index 000000000..65074f54e Binary files /dev/null and b/core/src/trezor/lvglui/assets/addr/chain-ada-48.png differ diff --git a/core/src/trezor/lvglui/assets/addr/chain-alephium-48.png b/core/src/trezor/lvglui/assets/addr/chain-alephium-48.png new file mode 100755 index 000000000..ed660da4c Binary files /dev/null and b/core/src/trezor/lvglui/assets/addr/chain-alephium-48.png differ diff --git a/core/src/trezor/lvglui/assets/addr/chain-algo-48.png b/core/src/trezor/lvglui/assets/addr/chain-algo-48.png new file mode 100755 index 000000000..1f7e7caf8 Binary files /dev/null and b/core/src/trezor/lvglui/assets/addr/chain-algo-48.png differ diff --git a/core/src/trezor/lvglui/assets/addr/chain-apt-48.png b/core/src/trezor/lvglui/assets/addr/chain-apt-48.png new file mode 100755 index 000000000..af812c25a Binary files /dev/null and b/core/src/trezor/lvglui/assets/addr/chain-apt-48.png differ diff --git a/core/src/trezor/lvglui/assets/addr/chain-atom-48.png b/core/src/trezor/lvglui/assets/addr/chain-atom-48.png new file mode 100755 index 000000000..e391db59d Binary files /dev/null and b/core/src/trezor/lvglui/assets/addr/chain-atom-48.png differ diff --git a/core/src/trezor/lvglui/assets/addr/chain-cfx-48.png b/core/src/trezor/lvglui/assets/addr/chain-cfx-48.png new file mode 100755 index 000000000..e467ae80e Binary files /dev/null and b/core/src/trezor/lvglui/assets/addr/chain-cfx-48.png differ diff --git a/core/src/trezor/lvglui/assets/addr/chain-dot-48.png b/core/src/trezor/lvglui/assets/addr/chain-dot-48.png new file mode 100755 index 000000000..3f4ffd9ca Binary files /dev/null and b/core/src/trezor/lvglui/assets/addr/chain-dot-48.png differ diff --git a/core/src/trezor/lvglui/assets/addr/chain-fil-48.png b/core/src/trezor/lvglui/assets/addr/chain-fil-48.png new file mode 100755 index 000000000..b5f1f1cef Binary files /dev/null and b/core/src/trezor/lvglui/assets/addr/chain-fil-48.png differ diff --git a/core/src/trezor/lvglui/assets/addr/chain-kaspa-48.png b/core/src/trezor/lvglui/assets/addr/chain-kaspa-48.png new file mode 100755 index 000000000..a7901dc6d Binary files /dev/null and b/core/src/trezor/lvglui/assets/addr/chain-kaspa-48.png differ diff --git a/core/src/trezor/lvglui/assets/addr/chain-near-48.png b/core/src/trezor/lvglui/assets/addr/chain-near-48.png new file mode 100755 index 000000000..6b04dc28c Binary files /dev/null and b/core/src/trezor/lvglui/assets/addr/chain-near-48.png differ diff --git a/core/src/trezor/lvglui/assets/addr/chain-nervos-48.png b/core/src/trezor/lvglui/assets/addr/chain-nervos-48.png new file mode 100755 index 000000000..d26e6bf2c Binary files /dev/null and b/core/src/trezor/lvglui/assets/addr/chain-nervos-48.png differ diff --git a/core/src/trezor/lvglui/assets/addr/chain-nexa-48.png b/core/src/trezor/lvglui/assets/addr/chain-nexa-48.png new file mode 100755 index 000000000..a1f8e08dd Binary files /dev/null and b/core/src/trezor/lvglui/assets/addr/chain-nexa-48.png differ diff --git a/core/src/trezor/lvglui/assets/addr/chain-nostr-48.png b/core/src/trezor/lvglui/assets/addr/chain-nostr-48.png new file mode 100755 index 000000000..a301024e5 Binary files /dev/null and b/core/src/trezor/lvglui/assets/addr/chain-nostr-48.png differ diff --git a/core/src/trezor/lvglui/assets/addr/chain-scdo-48.png b/core/src/trezor/lvglui/assets/addr/chain-scdo-48.png new file mode 100755 index 000000000..7bdc8a40d Binary files /dev/null and b/core/src/trezor/lvglui/assets/addr/chain-scdo-48.png differ diff --git a/core/src/trezor/lvglui/assets/addr/chain-sol-48.png b/core/src/trezor/lvglui/assets/addr/chain-sol-48.png new file mode 100755 index 000000000..451121814 Binary files /dev/null and b/core/src/trezor/lvglui/assets/addr/chain-sol-48.png differ diff --git a/core/src/trezor/lvglui/assets/addr/chain-sui-48.png b/core/src/trezor/lvglui/assets/addr/chain-sui-48.png new file mode 100755 index 000000000..d3d8ac513 Binary files /dev/null and b/core/src/trezor/lvglui/assets/addr/chain-sui-48.png differ diff --git a/core/src/trezor/lvglui/assets/addr/chain-ton-48.png b/core/src/trezor/lvglui/assets/addr/chain-ton-48.png new file mode 100755 index 000000000..60be37d9d Binary files /dev/null and b/core/src/trezor/lvglui/assets/addr/chain-ton-48.png differ diff --git a/core/src/trezor/lvglui/assets/addr/chain-tron-48.png b/core/src/trezor/lvglui/assets/addr/chain-tron-48.png new file mode 100755 index 000000000..ef0a9a168 Binary files /dev/null and b/core/src/trezor/lvglui/assets/addr/chain-tron-48.png differ diff --git a/core/src/trezor/lvglui/assets/addr/chain-xrp-48.png b/core/src/trezor/lvglui/assets/addr/chain-xrp-48.png new file mode 100755 index 000000000..4cef3c55a Binary files /dev/null and b/core/src/trezor/lvglui/assets/addr/chain-xrp-48.png differ diff --git a/core/src/trezor/lvglui/assets/addr/evm-arb1-24.png b/core/src/trezor/lvglui/assets/addr/evm-arb1-24.png new file mode 100755 index 000000000..f28f8892b Binary files /dev/null and b/core/src/trezor/lvglui/assets/addr/evm-arb1-24.png differ diff --git a/core/src/trezor/lvglui/assets/addr/evm-avax-24.png b/core/src/trezor/lvglui/assets/addr/evm-avax-24.png new file mode 100755 index 000000000..b18af9145 Binary files /dev/null and b/core/src/trezor/lvglui/assets/addr/evm-avax-24.png differ diff --git a/core/src/trezor/lvglui/assets/addr/evm-bnb-24.png b/core/src/trezor/lvglui/assets/addr/evm-bnb-24.png new file mode 100755 index 000000000..f9c9e6c13 Binary files /dev/null and b/core/src/trezor/lvglui/assets/addr/evm-bnb-24.png differ diff --git a/core/src/trezor/lvglui/assets/addr/evm-eth-48.png b/core/src/trezor/lvglui/assets/addr/evm-eth-48.png new file mode 100755 index 000000000..615c3f152 Binary files /dev/null and b/core/src/trezor/lvglui/assets/addr/evm-eth-48.png differ diff --git a/core/src/trezor/lvglui/assets/addr/evm-matic-24.png b/core/src/trezor/lvglui/assets/addr/evm-matic-24.png new file mode 100755 index 000000000..03f3b6baa Binary files /dev/null and b/core/src/trezor/lvglui/assets/addr/evm-matic-24.png differ diff --git a/core/src/trezor/lvglui/assets/addr/point.png b/core/src/trezor/lvglui/assets/addr/point.png new file mode 100755 index 000000000..e4faa2516 Binary files /dev/null and b/core/src/trezor/lvglui/assets/addr/point.png differ diff --git a/core/src/trezor/lvglui/assets/addr/wallet.png b/core/src/trezor/lvglui/assets/addr/wallet.png new file mode 100755 index 000000000..b3b2a5a1d Binary files /dev/null and b/core/src/trezor/lvglui/assets/addr/wallet.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-acm.png b/core/src/trezor/lvglui/assets/chain/btc/btc-acm.png new file mode 100755 index 000000000..2f6634434 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-acm.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-axe.png b/core/src/trezor/lvglui/assets/chain/btc/btc-axe.png new file mode 100755 index 000000000..45c30f7d1 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-axe.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-bch.png b/core/src/trezor/lvglui/assets/chain/btc/btc-bch.png new file mode 100755 index 000000000..501aabaa9 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-bch.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-btc.png b/core/src/trezor/lvglui/assets/chain/btc/btc-btc.png new file mode 100755 index 000000000..27a544c0e Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-btc.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-btcp.png b/core/src/trezor/lvglui/assets/chain/btc/btc-btcp.png new file mode 100755 index 000000000..37a61edcc Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-btcp.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-btg.png b/core/src/trezor/lvglui/assets/chain/btc/btc-btg.png new file mode 100755 index 000000000..2d8ffda30 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-btg.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-btx.png b/core/src/trezor/lvglui/assets/chain/btc/btc-btx.png new file mode 100755 index 000000000..6e028b5d7 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-btx.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-crown.png b/core/src/trezor/lvglui/assets/chain/btc/btc-crown.png new file mode 100755 index 000000000..13e4966bf Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-crown.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-crw.png b/core/src/trezor/lvglui/assets/chain/btc/btc-crw.png new file mode 100755 index 000000000..2f22cef46 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-crw.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-dash.png b/core/src/trezor/lvglui/assets/chain/btc/btc-dash.png new file mode 100755 index 000000000..cfac732e1 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-dash.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-dcr.png b/core/src/trezor/lvglui/assets/chain/btc/btc-dcr.png new file mode 100755 index 000000000..03ea94d7c Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-dcr.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-dgb.png b/core/src/trezor/lvglui/assets/chain/btc/btc-dgb.png new file mode 100755 index 000000000..b115d0d94 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-dgb.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-doge.png b/core/src/trezor/lvglui/assets/chain/btc/btc-doge.png new file mode 100755 index 000000000..e56b7db08 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-doge.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-firo.png b/core/src/trezor/lvglui/assets/chain/btc/btc-firo.png new file mode 100755 index 000000000..9821310d4 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-firo.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-fjc.png b/core/src/trezor/lvglui/assets/chain/btc/btc-fjc.png new file mode 100755 index 000000000..2aca189ce Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-fjc.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-ftc.png b/core/src/trezor/lvglui/assets/chain/btc/btc-ftc.png new file mode 100755 index 000000000..19cbd5e82 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-ftc.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-grs.png b/core/src/trezor/lvglui/assets/chain/btc/btc-grs.png new file mode 100755 index 000000000..4aaa5333c Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-grs.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-kmd.png b/core/src/trezor/lvglui/assets/chain/btc/btc-kmd.png new file mode 100755 index 000000000..241d79d8e Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-kmd.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-koto.png b/core/src/trezor/lvglui/assets/chain/btc/btc-koto.png new file mode 100755 index 000000000..7a5260c22 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-koto.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-ltc.png b/core/src/trezor/lvglui/assets/chain/btc/btc-ltc.png new file mode 100755 index 000000000..0d38549ac Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-ltc.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-mona.png b/core/src/trezor/lvglui/assets/chain/btc/btc-mona.png new file mode 100755 index 000000000..c41e76ff4 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-mona.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-mue.png b/core/src/trezor/lvglui/assets/chain/btc/btc-mue.png new file mode 100755 index 000000000..0ccf3b01f Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-mue.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-nmc.png b/core/src/trezor/lvglui/assets/chain/btc/btc-nmc.png new file mode 100755 index 000000000..06e975a31 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-nmc.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-part.png b/core/src/trezor/lvglui/assets/chain/btc/btc-part.png new file mode 100755 index 000000000..668e5479f Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-part.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-ppc.png b/core/src/trezor/lvglui/assets/chain/btc/btc-ppc.png new file mode 100755 index 000000000..830aca73a Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-ppc.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-ptd.png b/core/src/trezor/lvglui/assets/chain/btc/btc-ptd.png new file mode 100755 index 000000000..27fd5f87a Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-ptd.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-qtum.png b/core/src/trezor/lvglui/assets/chain/btc/btc-qtum.png new file mode 100755 index 000000000..fb6f63aa6 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-qtum.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-regtest.png b/core/src/trezor/lvglui/assets/chain/btc/btc-regtest.png new file mode 100755 index 000000000..85d3c5a7a Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-regtest.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-rito.png b/core/src/trezor/lvglui/assets/chain/btc/btc-rito.png new file mode 100755 index 000000000..58ccc9f21 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-rito.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-rvn.png b/core/src/trezor/lvglui/assets/chain/btc/btc-rvn.png new file mode 100755 index 000000000..441ce18d9 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-rvn.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-smart.png b/core/src/trezor/lvglui/assets/chain/btc/btc-smart.png new file mode 100755 index 000000000..2e8e5f615 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-smart.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-sys.png b/core/src/trezor/lvglui/assets/chain/btc/btc-sys.png new file mode 100755 index 000000000..3a16673f4 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-sys.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-tbch.png b/core/src/trezor/lvglui/assets/chain/btc/btc-tbch.png new file mode 100755 index 000000000..5bac6eb82 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-tbch.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-tbtg.png b/core/src/trezor/lvglui/assets/chain/btc/btc-tbtg.png new file mode 100755 index 000000000..e4df17e25 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-tbtg.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-tdash.png b/core/src/trezor/lvglui/assets/chain/btc/btc-tdash.png new file mode 100755 index 000000000..7f9b12e55 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-tdash.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-tdcr.png b/core/src/trezor/lvglui/assets/chain/btc/btc-tdcr.png new file mode 100755 index 000000000..95a7f4c76 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-tdcr.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-test.png b/core/src/trezor/lvglui/assets/chain/btc/btc-test.png new file mode 100755 index 000000000..2be6be3e0 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-test.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-tfiro.png b/core/src/trezor/lvglui/assets/chain/btc/btc-tfiro.png new file mode 100755 index 000000000..cf9a1039e Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-tfiro.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-tgrs.png b/core/src/trezor/lvglui/assets/chain/btc/btc-tgrs.png new file mode 100755 index 000000000..c927a8932 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-tgrs.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-tltc.png b/core/src/trezor/lvglui/assets/chain/btc/btc-tltc.png new file mode 100755 index 000000000..176f7e120 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-tltc.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-tpart.png b/core/src/trezor/lvglui/assets/chain/btc/btc-tpart.png new file mode 100755 index 000000000..f87cb0e28 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-tpart.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-tppc.png b/core/src/trezor/lvglui/assets/chain/btc/btc-tppc.png new file mode 100755 index 000000000..e77695109 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-tppc.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-tqtum.png b/core/src/trezor/lvglui/assets/chain/btc/btc-tqtum.png new file mode 100755 index 000000000..7e2ae2182 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-tqtum.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-trc.png b/core/src/trezor/lvglui/assets/chain/btc/btc-trc.png new file mode 100755 index 000000000..8598f207a Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-trc.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-trvn.png b/core/src/trezor/lvglui/assets/chain/btc/btc-trvn.png new file mode 100755 index 000000000..c96bb5014 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-trvn.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-tsmart.png b/core/src/trezor/lvglui/assets/chain/btc/btc-tsmart.png new file mode 100755 index 000000000..1da06c266 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-tsmart.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-uno.png b/core/src/trezor/lvglui/assets/chain/btc/btc-uno.png new file mode 100755 index 000000000..c485af911 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-uno.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-via.png b/core/src/trezor/lvglui/assets/chain/btc/btc-via.png new file mode 100755 index 000000000..60e952332 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-via.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-viacoin.png b/core/src/trezor/lvglui/assets/chain/btc/btc-viacoin.png new file mode 100755 index 000000000..4a213c1cf Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-viacoin.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-vips.png b/core/src/trezor/lvglui/assets/chain/btc/btc-vips.png new file mode 100755 index 000000000..9508ad870 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-vips.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-vtc.png b/core/src/trezor/lvglui/assets/chain/btc/btc-vtc.png new file mode 100755 index 000000000..6360e1b66 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-vtc.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-xna.png b/core/src/trezor/lvglui/assets/chain/btc/btc-xna.png new file mode 100755 index 000000000..1dd0ba092 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-xna.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-xpm.png b/core/src/trezor/lvglui/assets/chain/btc/btc-xpm.png new file mode 100755 index 000000000..4303eac83 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-xpm.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-xrc.png b/core/src/trezor/lvglui/assets/chain/btc/btc-xrc.png new file mode 100755 index 000000000..b945de408 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-xrc.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-xvg.png b/core/src/trezor/lvglui/assets/chain/btc/btc-xvg.png new file mode 100755 index 000000000..e42506e95 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-xvg.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-zcr.png b/core/src/trezor/lvglui/assets/chain/btc/btc-zcr.png new file mode 100755 index 000000000..1555bdb0d Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-zcr.png differ diff --git a/core/src/trezor/lvglui/assets/chain/btc/btc-zec.png b/core/src/trezor/lvglui/assets/chain/btc/btc-zec.png new file mode 100755 index 000000000..b7be48a42 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/btc/btc-zec.png differ diff --git a/core/src/trezor/lvglui/assets/chain/evm/evm-arb1.png b/core/src/trezor/lvglui/assets/chain/evm/evm-arb1.png new file mode 100755 index 000000000..29f3f95a6 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/evm/evm-arb1.png differ diff --git a/core/src/trezor/lvglui/assets/chain/evm/evm-arbitrum_nova.png b/core/src/trezor/lvglui/assets/chain/evm/evm-arbitrum_nova.png new file mode 100755 index 000000000..02019f50e Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/evm/evm-arbitrum_nova.png differ diff --git a/core/src/trezor/lvglui/assets/chain/evm/evm-aurora.png b/core/src/trezor/lvglui/assets/chain/evm/evm-aurora.png new file mode 100755 index 000000000..351d8938c Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/evm/evm-aurora.png differ diff --git a/core/src/trezor/lvglui/assets/chain/evm/evm-avax.png b/core/src/trezor/lvglui/assets/chain/evm/evm-avax.png new file mode 100755 index 000000000..b36e3202d Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/evm/evm-avax.png differ diff --git a/core/src/trezor/lvglui/assets/chain/evm/evm-base.png b/core/src/trezor/lvglui/assets/chain/evm/evm-base.png new file mode 100755 index 000000000..b1e8e4ce2 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/evm/evm-base.png differ diff --git a/core/src/trezor/lvglui/assets/chain/evm/evm-bnb.png b/core/src/trezor/lvglui/assets/chain/evm/evm-bnb.png new file mode 100755 index 000000000..2a8ebcdcc Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/evm/evm-bnb.png differ diff --git a/core/src/trezor/lvglui/assets/chain/evm/evm-boba.png b/core/src/trezor/lvglui/assets/chain/evm/evm-boba.png new file mode 100755 index 000000000..1615db04f Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/evm/evm-boba.png differ diff --git a/core/src/trezor/lvglui/assets/chain/evm/evm-celo.png b/core/src/trezor/lvglui/assets/chain/evm/evm-celo.png new file mode 100755 index 000000000..8dc344866 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/evm/evm-celo.png differ diff --git a/core/src/trezor/lvglui/assets/chain/evm/evm-cro.png b/core/src/trezor/lvglui/assets/chain/evm/evm-cro.png new file mode 100755 index 000000000..f00bfbf78 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/evm/evm-cro.png differ diff --git a/core/src/trezor/lvglui/assets/chain/evm/evm-etc.png b/core/src/trezor/lvglui/assets/chain/evm/evm-etc.png new file mode 100755 index 000000000..9760fd0d1 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/evm/evm-etc.png differ diff --git a/core/src/trezor/lvglui/assets/chain/evm/evm-eth.png b/core/src/trezor/lvglui/assets/chain/evm/evm-eth.png new file mode 100755 index 000000000..44546fb81 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/evm/evm-eth.png differ diff --git a/core/src/trezor/lvglui/assets/chain/evm/evm-filecoin.png b/core/src/trezor/lvglui/assets/chain/evm/evm-filecoin.png new file mode 100755 index 000000000..d2ad98135 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/evm/evm-filecoin.png differ diff --git a/core/src/trezor/lvglui/assets/chain/evm/evm-ftm.png b/core/src/trezor/lvglui/assets/chain/evm/evm-ftm.png new file mode 100755 index 000000000..f02b4c3dc Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/evm/evm-ftm.png differ diff --git a/core/src/trezor/lvglui/assets/chain/evm/evm-ht.png b/core/src/trezor/lvglui/assets/chain/evm/evm-ht.png new file mode 100755 index 000000000..afb3b274c Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/evm/evm-ht.png differ diff --git a/core/src/trezor/lvglui/assets/chain/evm/evm-kava.png b/core/src/trezor/lvglui/assets/chain/evm/evm-kava.png new file mode 100755 index 000000000..fb7f2c601 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/evm/evm-kava.png differ diff --git a/core/src/trezor/lvglui/assets/chain/evm/evm-klay.png b/core/src/trezor/lvglui/assets/chain/evm/evm-klay.png new file mode 100755 index 000000000..89c71cea8 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/evm/evm-klay.png differ diff --git a/core/src/trezor/lvglui/assets/chain/evm/evm-linea.png b/core/src/trezor/lvglui/assets/chain/evm/evm-linea.png new file mode 100755 index 000000000..a3daa7309 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/evm/evm-linea.png differ diff --git a/core/src/trezor/lvglui/assets/chain/evm/evm-matic.png b/core/src/trezor/lvglui/assets/chain/evm/evm-matic.png new file mode 100755 index 000000000..2eb7de1c3 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/evm/evm-matic.png differ diff --git a/core/src/trezor/lvglui/assets/chain/evm/evm-mixin.png b/core/src/trezor/lvglui/assets/chain/evm/evm-mixin.png new file mode 100755 index 000000000..21e38e327 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/evm/evm-mixin.png differ diff --git a/core/src/trezor/lvglui/assets/chain/evm/evm-mnt.png b/core/src/trezor/lvglui/assets/chain/evm/evm-mnt.png new file mode 100755 index 000000000..555decefb Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/evm/evm-mnt.png differ diff --git a/core/src/trezor/lvglui/assets/chain/evm/evm-oeth.png b/core/src/trezor/lvglui/assets/chain/evm/evm-oeth.png new file mode 100755 index 000000000..1c4b94600 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/evm/evm-oeth.png differ diff --git a/core/src/trezor/lvglui/assets/chain/evm/evm-okc.png b/core/src/trezor/lvglui/assets/chain/evm/evm-okc.png new file mode 100755 index 000000000..5affebfcb Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/evm/evm-okc.png differ diff --git a/core/src/trezor/lvglui/assets/chain/evm/evm-okt.png b/core/src/trezor/lvglui/assets/chain/evm/evm-okt.png new file mode 100755 index 000000000..6ccbabaca Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/evm/evm-okt.png differ diff --git a/core/src/trezor/lvglui/assets/chain/evm/evm-one.png b/core/src/trezor/lvglui/assets/chain/evm/evm-one.png new file mode 100755 index 000000000..864bc2b82 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/evm/evm-one.png differ diff --git a/core/src/trezor/lvglui/assets/chain/evm/evm-teth.png b/core/src/trezor/lvglui/assets/chain/evm/evm-teth.png new file mode 100755 index 000000000..aad7ccb9f Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/evm/evm-teth.png differ diff --git a/core/src/trezor/lvglui/assets/chain/evm/evm-xdai.png b/core/src/trezor/lvglui/assets/chain/evm/evm-xdai.png new file mode 100755 index 000000000..d6b2db90f Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/evm/evm-xdai.png differ diff --git a/core/src/trezor/lvglui/assets/chain/evm/evm-zksync-era.png b/core/src/trezor/lvglui/assets/chain/evm/evm-zksync-era.png new file mode 100755 index 000000000..00a58354c Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/evm/evm-zksync-era.png differ diff --git a/core/src/trezor/lvglui/assets/chain/others/chain-ada.png b/core/src/trezor/lvglui/assets/chain/others/chain-ada.png new file mode 100755 index 000000000..8da5bc327 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/others/chain-ada.png differ diff --git a/core/src/trezor/lvglui/assets/chain/others/chain-algo.png b/core/src/trezor/lvglui/assets/chain/others/chain-algo.png new file mode 100755 index 000000000..f61133683 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/others/chain-algo.png differ diff --git a/core/src/trezor/lvglui/assets/chain/others/chain-apt-48.png b/core/src/trezor/lvglui/assets/chain/others/chain-apt-48.png new file mode 100755 index 000000000..af812c25a Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/others/chain-apt-48.png differ diff --git a/core/src/trezor/lvglui/assets/chain/others/chain-apt.png b/core/src/trezor/lvglui/assets/chain/others/chain-apt.png new file mode 100755 index 000000000..0c3227535 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/others/chain-apt.png differ diff --git a/core/src/trezor/lvglui/assets/chain/others/chain-astar.png b/core/src/trezor/lvglui/assets/chain/others/chain-astar.png new file mode 100755 index 000000000..ff8acf661 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/others/chain-astar.png differ diff --git a/core/src/trezor/lvglui/assets/chain/others/chain-atom.png b/core/src/trezor/lvglui/assets/chain/others/chain-atom.png new file mode 100755 index 000000000..fce3b2190 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/others/chain-atom.png differ diff --git a/core/src/trezor/lvglui/assets/chain/others/chain-cfx.png b/core/src/trezor/lvglui/assets/chain/others/chain-cfx.png new file mode 100755 index 000000000..7da44ef7a Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/others/chain-cfx.png differ diff --git a/core/src/trezor/lvglui/assets/chain/others/chain-dot.png b/core/src/trezor/lvglui/assets/chain/others/chain-dot.png new file mode 100755 index 000000000..4cbb7832e Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/others/chain-dot.png differ diff --git a/core/src/trezor/lvglui/assets/chain/others/chain-eos.png b/core/src/trezor/lvglui/assets/chain/others/chain-eos.png new file mode 100755 index 000000000..d7aed72c7 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/others/chain-eos.png differ diff --git a/core/src/trezor/lvglui/assets/chain/others/chain-etc.png b/core/src/trezor/lvglui/assets/chain/others/chain-etc.png new file mode 100755 index 000000000..fdfa74dc8 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/others/chain-etc.png differ diff --git a/core/src/trezor/lvglui/assets/chain/others/chain-fil.png b/core/src/trezor/lvglui/assets/chain/others/chain-fil.png new file mode 100755 index 000000000..965862f6b Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/others/chain-fil.png differ diff --git a/core/src/trezor/lvglui/assets/chain/others/chain-joystream.png b/core/src/trezor/lvglui/assets/chain/others/chain-joystream.png new file mode 100755 index 000000000..c6b00d864 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/others/chain-joystream.png differ diff --git a/core/src/trezor/lvglui/assets/chain/others/chain-kaspa.png b/core/src/trezor/lvglui/assets/chain/others/chain-kaspa.png new file mode 100755 index 000000000..70856a4e3 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/others/chain-kaspa.png differ diff --git a/core/src/trezor/lvglui/assets/chain/others/chain-kusama.png b/core/src/trezor/lvglui/assets/chain/others/chain-kusama.png new file mode 100755 index 000000000..af0fa509d Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/others/chain-kusama.png differ diff --git a/core/src/trezor/lvglui/assets/chain/others/chain-manta.png b/core/src/trezor/lvglui/assets/chain/others/chain-manta.png new file mode 100755 index 000000000..00666faea Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/others/chain-manta.png differ diff --git a/core/src/trezor/lvglui/assets/chain/others/chain-near.png b/core/src/trezor/lvglui/assets/chain/others/chain-near.png new file mode 100755 index 000000000..1f9d79def Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/others/chain-near.png differ diff --git a/core/src/trezor/lvglui/assets/chain/others/chain-nervos.png b/core/src/trezor/lvglui/assets/chain/others/chain-nervos.png new file mode 100755 index 000000000..a15e2bfea Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/others/chain-nervos.png differ diff --git a/core/src/trezor/lvglui/assets/chain/others/chain-nexa.png b/core/src/trezor/lvglui/assets/chain/others/chain-nexa.png new file mode 100755 index 000000000..080ccbe42 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/others/chain-nexa.png differ diff --git a/core/src/trezor/lvglui/assets/chain/others/chain-nostr.png b/core/src/trezor/lvglui/assets/chain/others/chain-nostr.png new file mode 100755 index 000000000..9d62f9ed8 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/others/chain-nostr.png differ diff --git a/core/src/trezor/lvglui/assets/chain/others/chain-scdo.png b/core/src/trezor/lvglui/assets/chain/others/chain-scdo.png new file mode 100755 index 000000000..88630b2de Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/others/chain-scdo.png differ diff --git a/core/src/trezor/lvglui/assets/chain/others/chain-sol.png b/core/src/trezor/lvglui/assets/chain/others/chain-sol.png new file mode 100755 index 000000000..525b70718 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/others/chain-sol.png differ diff --git a/core/src/trezor/lvglui/assets/chain/others/chain-stacks.png b/core/src/trezor/lvglui/assets/chain/others/chain-stacks.png new file mode 100755 index 000000000..af727d3d9 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/others/chain-stacks.png differ diff --git a/core/src/trezor/lvglui/assets/chain/others/chain-stc.png b/core/src/trezor/lvglui/assets/chain/others/chain-stc.png new file mode 100755 index 000000000..cbde0e0f4 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/others/chain-stc.png differ diff --git a/core/src/trezor/lvglui/assets/chain/others/chain-sui.png b/core/src/trezor/lvglui/assets/chain/others/chain-sui.png new file mode 100755 index 000000000..e82ecb588 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/others/chain-sui.png differ diff --git a/core/src/trezor/lvglui/assets/chain/others/chain-ton.png b/core/src/trezor/lvglui/assets/chain/others/chain-ton.png new file mode 100755 index 000000000..0be1c2aad Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/others/chain-ton.png differ diff --git a/core/src/trezor/lvglui/assets/chain/others/chain-tron.png b/core/src/trezor/lvglui/assets/chain/others/chain-tron.png new file mode 100755 index 000000000..00c881a61 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/others/chain-tron.png differ diff --git a/core/src/trezor/lvglui/assets/chain/others/chain-westend.png b/core/src/trezor/lvglui/assets/chain/others/chain-westend.png new file mode 100755 index 000000000..b9002178c Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/others/chain-westend.png differ diff --git a/core/src/trezor/lvglui/assets/chain/others/chain-xem.png b/core/src/trezor/lvglui/assets/chain/others/chain-xem.png new file mode 100755 index 000000000..701bc1c83 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/others/chain-xem.png differ diff --git a/core/src/trezor/lvglui/assets/chain/others/chain-xlm.png b/core/src/trezor/lvglui/assets/chain/others/chain-xlm.png new file mode 100755 index 000000000..eaa734787 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/others/chain-xlm.png differ diff --git a/core/src/trezor/lvglui/assets/chain/others/chain-xmr.png b/core/src/trezor/lvglui/assets/chain/others/chain-xmr.png new file mode 100755 index 000000000..d2cbfa8d5 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/others/chain-xmr.png differ diff --git a/core/src/trezor/lvglui/assets/chain/others/chain-xrp.png b/core/src/trezor/lvglui/assets/chain/others/chain-xrp.png new file mode 100755 index 000000000..503a13c8b Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/others/chain-xrp.png differ diff --git a/core/src/trezor/lvglui/assets/chain/others/chain-xtz.png b/core/src/trezor/lvglui/assets/chain/others/chain-xtz.png new file mode 100755 index 000000000..ad4575e41 Binary files /dev/null and b/core/src/trezor/lvglui/assets/chain/others/chain-xtz.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/about.png b/core/src/trezor/lvglui/assets/prompt/about.png new file mode 100755 index 000000000..527d8c504 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/about.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/add-account.png b/core/src/trezor/lvglui/assets/prompt/add-account.png new file mode 100755 index 000000000..4a10a8ecc Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/add-account.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/add.png b/core/src/trezor/lvglui/assets/prompt/add.png new file mode 100755 index 000000000..a35d34b72 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/add.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/alert-danger.png b/core/src/trezor/lvglui/assets/prompt/alert-danger.png new file mode 100755 index 000000000..5615b5030 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/alert-danger.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/alert-error-red-outline.png b/core/src/trezor/lvglui/assets/prompt/alert-error-red-outline.png new file mode 100755 index 000000000..8f2878d74 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/alert-error-red-outline.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/alert-error-red-solid.png b/core/src/trezor/lvglui/assets/prompt/alert-error-red-solid.png new file mode 100755 index 000000000..93edc5fd5 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/alert-error-red-solid.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/alert-warning-yellow-outline.png b/core/src/trezor/lvglui/assets/prompt/alert-warning-yellow-outline.png new file mode 100755 index 000000000..a6c3f9005 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/alert-warning-yellow-outline.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/alert-warning-yellow-solid.png b/core/src/trezor/lvglui/assets/prompt/alert-warning-yellow-solid.png new file mode 100755 index 000000000..5882631a2 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/alert-warning-yellow-solid.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/alert-warning.png b/core/src/trezor/lvglui/assets/prompt/alert-warning.png new file mode 100755 index 000000000..f2bd8aa46 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/alert-warning.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/arrow-down.png b/core/src/trezor/lvglui/assets/prompt/arrow-down.png new file mode 100755 index 000000000..25d0749bb Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/arrow-down.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/arrow-left-1.png b/core/src/trezor/lvglui/assets/prompt/arrow-left-1.png new file mode 100755 index 000000000..4f3a7f1d1 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/arrow-left-1.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/arrow-left-2.png b/core/src/trezor/lvglui/assets/prompt/arrow-left-2.png new file mode 100755 index 000000000..376da18da Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/arrow-left-2.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/arrow-left-gray.png b/core/src/trezor/lvglui/assets/prompt/arrow-left-gray.png new file mode 100755 index 000000000..f2b7468b0 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/arrow-left-gray.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/arrow-left.png b/core/src/trezor/lvglui/assets/prompt/arrow-left.png new file mode 100755 index 000000000..b411bdcef Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/arrow-left.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/arrow-right-1.png b/core/src/trezor/lvglui/assets/prompt/arrow-right-1.png new file mode 100755 index 000000000..3fcc86f5d Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/arrow-right-1.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/arrow-right-2.png b/core/src/trezor/lvglui/assets/prompt/arrow-right-2.png new file mode 100755 index 000000000..bb9618ebe Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/arrow-right-2.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/arrow-right.png b/core/src/trezor/lvglui/assets/prompt/arrow-right.png new file mode 100755 index 000000000..a0c88ae07 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/arrow-right.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/arrow-up.png b/core/src/trezor/lvglui/assets/prompt/arrow-up.png new file mode 100755 index 000000000..ab0c6420c Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/arrow-up.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/banned.png b/core/src/trezor/lvglui/assets/prompt/banned.png new file mode 100755 index 000000000..af16b61ee Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/banned.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/banner-icon-blue.png b/core/src/trezor/lvglui/assets/prompt/banner-icon-blue.png new file mode 100755 index 000000000..70a117586 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/banner-icon-blue.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/banner-icon-gray.png b/core/src/trezor/lvglui/assets/prompt/banner-icon-gray.png new file mode 100755 index 000000000..f2065b389 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/banner-icon-gray.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/banner-icon-red.png b/core/src/trezor/lvglui/assets/prompt/banner-icon-red.png new file mode 100755 index 000000000..267bd9a8e Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/banner-icon-red.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/banner-icon-yellow.png b/core/src/trezor/lvglui/assets/prompt/banner-icon-yellow.png new file mode 100755 index 000000000..74e6cf7d2 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/banner-icon-yellow.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/ble-connected.png b/core/src/trezor/lvglui/assets/prompt/ble-connected.png new file mode 100755 index 000000000..1c9e3f05d Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/ble-connected.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/ble-disabled.png b/core/src/trezor/lvglui/assets/prompt/ble-disabled.png new file mode 100755 index 000000000..c2292dc51 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/ble-disabled.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/ble-enabled.png b/core/src/trezor/lvglui/assets/prompt/ble-enabled.png new file mode 100755 index 000000000..c9288ce65 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/ble-enabled.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/branches.png b/core/src/trezor/lvglui/assets/prompt/branches.png new file mode 100755 index 000000000..a8f28757a Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/branches.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/btn-del-white.png b/core/src/trezor/lvglui/assets/prompt/btn-del-white.png new file mode 100755 index 000000000..9b1f2f356 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/btn-del-white.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/btn-del.png b/core/src/trezor/lvglui/assets/prompt/btn-del.png new file mode 100755 index 000000000..01f022878 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/btn-del.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/btn-double-down.png b/core/src/trezor/lvglui/assets/prompt/btn-double-down.png new file mode 100755 index 000000000..3943ace41 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/btn-double-down.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/btn-doubledown.png b/core/src/trezor/lvglui/assets/prompt/btn-doubledown.png new file mode 100755 index 000000000..32387102d Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/btn-doubledown.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/btn-doubleup.png b/core/src/trezor/lvglui/assets/prompt/btn-doubleup.png new file mode 100755 index 000000000..1a2cc930d Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/btn-doubleup.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/btn-eye.png b/core/src/trezor/lvglui/assets/prompt/btn-eye.png new file mode 100755 index 000000000..97b7b47b2 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/btn-eye.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/btn-light-off.png b/core/src/trezor/lvglui/assets/prompt/btn-light-off.png new file mode 100755 index 000000000..31168d7f8 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/btn-light-off.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/btn-light-on.png b/core/src/trezor/lvglui/assets/prompt/btn-light-on.png new file mode 100755 index 000000000..9b9a6a98c Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/btn-light-on.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/camera-bg.png b/core/src/trezor/lvglui/assets/prompt/camera-bg.png new file mode 100755 index 000000000..cb9d10f0b Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/camera-bg.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/charging-bg.png b/core/src/trezor/lvglui/assets/prompt/charging-bg.png new file mode 100755 index 000000000..f1c5c61c3 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/charging-bg.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/charging-fg.png b/core/src/trezor/lvglui/assets/prompt/charging-fg.png new file mode 100755 index 000000000..4138808bb Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/charging-fg.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/charging.png b/core/src/trezor/lvglui/assets/prompt/charging.png new file mode 100755 index 000000000..54b25dd5f Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/charging.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/check-seed.png b/core/src/trezor/lvglui/assets/prompt/check-seed.png new file mode 100755 index 000000000..b364bdb0c Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/check-seed.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/checked-green-1.png b/core/src/trezor/lvglui/assets/prompt/checked-green-1.png new file mode 100755 index 000000000..ba067da4c Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/checked-green-1.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/checked-green.png b/core/src/trezor/lvglui/assets/prompt/checked-green.png new file mode 100755 index 000000000..982ae543c Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/checked-green.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/checked-solid.png b/core/src/trezor/lvglui/assets/prompt/checked-solid.png new file mode 100755 index 000000000..f839586b8 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/checked-solid.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/checked-white.png b/core/src/trezor/lvglui/assets/prompt/checked-white.png new file mode 100755 index 000000000..1aa8880c7 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/checked-white.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/close.png b/core/src/trezor/lvglui/assets/prompt/close.png new file mode 100755 index 000000000..bca68a66f Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/close.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/connect-wallet.png b/core/src/trezor/lvglui/assets/prompt/connect-wallet.png new file mode 100755 index 000000000..324fe872b Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/connect-wallet.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/connect.png b/core/src/trezor/lvglui/assets/prompt/connect.png new file mode 100755 index 000000000..7722fe4d7 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/connect.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/crypto.png b/core/src/trezor/lvglui/assets/prompt/crypto.png new file mode 100755 index 000000000..19638abeb Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/crypto.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/danger.png b/core/src/trezor/lvglui/assets/prompt/danger.png new file mode 100755 index 000000000..2c483fa5f Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/danger.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/developer.png b/core/src/trezor/lvglui/assets/prompt/developer.png new file mode 100755 index 000000000..7f3632d3b Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/developer.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/dotmap-back.png b/core/src/trezor/lvglui/assets/prompt/dotmap-back.png new file mode 100755 index 000000000..a9cc79438 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/dotmap-back.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/dotmap-front.png b/core/src/trezor/lvglui/assets/prompt/dotmap-front.png new file mode 100755 index 000000000..ffdc409b4 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/dotmap-front.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/down-home.png b/core/src/trezor/lvglui/assets/prompt/down-home.png new file mode 100755 index 000000000..a33996857 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/down-home.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/download-qrcode.png b/core/src/trezor/lvglui/assets/prompt/download-qrcode.png new file mode 100755 index 000000000..76b0ffd80 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/download-qrcode.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/fcc-logo.png b/core/src/trezor/lvglui/assets/prompt/fcc-logo.png new file mode 100755 index 000000000..3dd0c8591 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/fcc-logo.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/feedback-correct.png b/core/src/trezor/lvglui/assets/prompt/feedback-correct.png new file mode 100755 index 000000000..58616df80 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/feedback-correct.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/feedback-incorrect.png b/core/src/trezor/lvglui/assets/prompt/feedback-incorrect.png new file mode 100755 index 000000000..ac30d72b3 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/feedback-incorrect.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/finger-start-arrow.png b/core/src/trezor/lvglui/assets/prompt/finger-start-arrow.png new file mode 100755 index 000000000..f931e60ca Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/finger-start-arrow.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/finger-start-full.png b/core/src/trezor/lvglui/assets/prompt/finger-start-full.png new file mode 100755 index 000000000..e1cc75156 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/finger-start-full.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/finger-start.png b/core/src/trezor/lvglui/assets/prompt/finger-start.png new file mode 100755 index 000000000..32aa7820b Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/finger-start.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/fingerprint-process-0.png b/core/src/trezor/lvglui/assets/prompt/fingerprint-process-0.png new file mode 100755 index 000000000..42e9b91b1 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/fingerprint-process-0.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/fingerprint-process-100.png b/core/src/trezor/lvglui/assets/prompt/fingerprint-process-100.png new file mode 100755 index 000000000..2569afa70 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/fingerprint-process-100.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/fingerprint-process-12.5.png b/core/src/trezor/lvglui/assets/prompt/fingerprint-process-12.5.png new file mode 100755 index 000000000..4f70b6610 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/fingerprint-process-12.5.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/fingerprint-process-25.png b/core/src/trezor/lvglui/assets/prompt/fingerprint-process-25.png new file mode 100755 index 000000000..438b877ec Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/fingerprint-process-25.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/fingerprint-process-37.5.png b/core/src/trezor/lvglui/assets/prompt/fingerprint-process-37.5.png new file mode 100755 index 000000000..23c2bbf20 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/fingerprint-process-37.5.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/fingerprint-process-50.png b/core/src/trezor/lvglui/assets/prompt/fingerprint-process-50.png new file mode 100755 index 000000000..2ab31a65d Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/fingerprint-process-50.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/fingerprint-process-62.5.png b/core/src/trezor/lvglui/assets/prompt/fingerprint-process-62.5.png new file mode 100755 index 000000000..2443064df Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/fingerprint-process-62.5.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/fingerprint-process-75.png b/core/src/trezor/lvglui/assets/prompt/fingerprint-process-75.png new file mode 100755 index 000000000..198d9fbaf Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/fingerprint-process-75.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/fingerprint-process-87.5.png b/core/src/trezor/lvglui/assets/prompt/fingerprint-process-87.5.png new file mode 100755 index 000000000..45a2b907a Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/fingerprint-process-87.5.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/fingerprint-prompt.png b/core/src/trezor/lvglui/assets/prompt/fingerprint-prompt.png new file mode 100755 index 000000000..9af5293a9 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/fingerprint-prompt.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/fingerprint.png b/core/src/trezor/lvglui/assets/prompt/fingerprint.png new file mode 100755 index 000000000..15cd38e5c Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/fingerprint.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/general.png b/core/src/trezor/lvglui/assets/prompt/general.png new file mode 100755 index 000000000..430756a20 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/general.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/group-icon-amount.png b/core/src/trezor/lvglui/assets/prompt/group-icon-amount.png new file mode 100755 index 000000000..ea21d0d54 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/group-icon-amount.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/group-icon-data.png b/core/src/trezor/lvglui/assets/prompt/group-icon-data.png new file mode 100755 index 000000000..33dc2d7b1 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/group-icon-data.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/group-icon-directions.png b/core/src/trezor/lvglui/assets/prompt/group-icon-directions.png new file mode 100755 index 000000000..c0de15208 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/group-icon-directions.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/group-icon-fees.png b/core/src/trezor/lvglui/assets/prompt/group-icon-fees.png new file mode 100755 index 000000000..2824c0564 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/group-icon-fees.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/group-icon-more.png b/core/src/trezor/lvglui/assets/prompt/group-icon-more.png new file mode 100755 index 000000000..e369979e1 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/group-icon-more.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/group-icon-wallet.png b/core/src/trezor/lvglui/assets/prompt/group-icon-wallet.png new file mode 100755 index 000000000..e7d3c9c36 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/group-icon-wallet.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/hardware-wallet-works-way.png b/core/src/trezor/lvglui/assets/prompt/hardware-wallet-works-way.png new file mode 100755 index 000000000..7ec570c81 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/hardware-wallet-works-way.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/hidden-wallet.png b/core/src/trezor/lvglui/assets/prompt/hidden-wallet.png new file mode 100755 index 000000000..160ad1297 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/hidden-wallet.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/homescreen.png b/core/src/trezor/lvglui/assets/prompt/homescreen.png new file mode 100755 index 000000000..caccf68d5 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/homescreen.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/language.png b/core/src/trezor/lvglui/assets/prompt/language.png new file mode 100755 index 000000000..e6e8897f2 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/language.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/left-delete.png b/core/src/trezor/lvglui/assets/prompt/left-delete.png new file mode 100755 index 000000000..c8468774c Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/left-delete.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/lock.png b/core/src/trezor/lvglui/assets/prompt/lock.png new file mode 100755 index 000000000..d5dc253bb Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/lock.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/logo-green.png b/core/src/trezor/lvglui/assets/prompt/logo-green.png new file mode 100755 index 000000000..6576d9e70 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/logo-green.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/logo-white.png b/core/src/trezor/lvglui/assets/prompt/logo-white.png new file mode 100755 index 000000000..8a91e6375 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/logo-white.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/nav-back.png b/core/src/trezor/lvglui/assets/prompt/nav-back.png new file mode 100755 index 000000000..803bf524c Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/nav-back.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/nav-close.png b/core/src/trezor/lvglui/assets/prompt/nav-close.png new file mode 100755 index 000000000..a1abd5a60 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/nav-close.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/nav-more.png b/core/src/trezor/lvglui/assets/prompt/nav-more.png new file mode 100755 index 000000000..f4b90f85a Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/nav-more.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/nfc-bg.png b/core/src/trezor/lvglui/assets/prompt/nfc-bg.png new file mode 100755 index 000000000..22bddc6de Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/nfc-bg.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/nfc-icon-searching.png b/core/src/trezor/lvglui/assets/prompt/nfc-icon-searching.png new file mode 100755 index 000000000..1b7c96d2f Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/nfc-icon-searching.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/nfc-icon-transfering.png b/core/src/trezor/lvglui/assets/prompt/nfc-icon-transfering.png new file mode 100755 index 000000000..80b2cb8b4 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/nfc-icon-transfering.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/nfc-start.png b/core/src/trezor/lvglui/assets/prompt/nfc-start.png new file mode 100755 index 000000000..002e09c0c Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/nfc-start.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/notice.png b/core/src/trezor/lvglui/assets/prompt/notice.png new file mode 100755 index 000000000..a85f43e8d Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/notice.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/onekey-help.png b/core/src/trezor/lvglui/assets/prompt/onekey-help.png new file mode 100755 index 000000000..4e06e72f1 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/onekey-help.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/pin-protection.png b/core/src/trezor/lvglui/assets/prompt/pin-protection.png new file mode 100755 index 000000000..e21735b22 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/pin-protection.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/point.png b/core/src/trezor/lvglui/assets/prompt/point.png new file mode 100755 index 000000000..e4faa2516 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/point.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/power-on-off.png b/core/src/trezor/lvglui/assets/prompt/power-on-off.png new file mode 100755 index 000000000..0ed66ca4a Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/power-on-off.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/poweroff.png b/core/src/trezor/lvglui/assets/prompt/poweroff.png new file mode 100755 index 000000000..d5e3f6c95 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/poweroff.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/protection.png b/core/src/trezor/lvglui/assets/prompt/protection.png new file mode 100755 index 000000000..ec184844c Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/protection.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/recovery-phrase.png b/core/src/trezor/lvglui/assets/prompt/recovery-phrase.png new file mode 100755 index 000000000..51920375b Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/recovery-phrase.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/recovery.png b/core/src/trezor/lvglui/assets/prompt/recovery.png new file mode 100755 index 000000000..f4b650f9b Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/recovery.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/security-check.png b/core/src/trezor/lvglui/assets/prompt/security-check.png new file mode 100755 index 000000000..80fe6ddc2 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/security-check.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/security.png b/core/src/trezor/lvglui/assets/prompt/security.png new file mode 100755 index 000000000..080deb710 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/security.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/settings-fingerprint.png b/core/src/trezor/lvglui/assets/prompt/settings-fingerprint.png new file mode 100755 index 000000000..ef1994b53 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/settings-fingerprint.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/settings-plus.png b/core/src/trezor/lvglui/assets/prompt/settings-plus.png new file mode 100755 index 000000000..c44675f66 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/settings-plus.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/slide-arrow-black.png b/core/src/trezor/lvglui/assets/prompt/slide-arrow-black.png new file mode 100755 index 000000000..e030da23f Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/slide-arrow-black.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/slide-arrow-disable.png b/core/src/trezor/lvglui/assets/prompt/slide-arrow-disable.png new file mode 100755 index 000000000..051c706b8 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/slide-arrow-disable.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/slide-arrow-green.png b/core/src/trezor/lvglui/assets/prompt/slide-arrow-green.png new file mode 100755 index 000000000..d3a73edcc Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/slide-arrow-green.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/slide-arrow-white.png b/core/src/trezor/lvglui/assets/prompt/slide-arrow-white.png new file mode 100755 index 000000000..4b96ef2ba Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/slide-arrow-white.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/slide-done-green.png b/core/src/trezor/lvglui/assets/prompt/slide-done-green.png new file mode 100755 index 000000000..8192823e1 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/slide-done-green.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/slide-done-white.png b/core/src/trezor/lvglui/assets/prompt/slide-done-white.png new file mode 100755 index 000000000..91378cc46 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/slide-done-white.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/slide-down.jpg b/core/src/trezor/lvglui/assets/prompt/slide-down.jpg new file mode 100755 index 000000000..3f3a82e03 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/slide-down.jpg differ diff --git a/core/src/trezor/lvglui/assets/prompt/slide-down.png b/core/src/trezor/lvglui/assets/prompt/slide-down.png new file mode 100755 index 000000000..87db13df9 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/slide-down.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/slider-done-black.png b/core/src/trezor/lvglui/assets/prompt/slider-done-black.png new file mode 100755 index 000000000..feb7aa550 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/slider-done-black.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/success.png b/core/src/trezor/lvglui/assets/prompt/success.png new file mode 100755 index 000000000..18bfbf7de Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/success.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/sweep-up.png b/core/src/trezor/lvglui/assets/prompt/sweep-up.png new file mode 100755 index 000000000..f397f0f85 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/sweep-up.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/unknown.png b/core/src/trezor/lvglui/assets/prompt/unknown.png new file mode 100755 index 000000000..e6f239b5c Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/unknown.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/unlock.png b/core/src/trezor/lvglui/assets/prompt/unlock.png new file mode 100755 index 000000000..fe7b433d9 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/unlock.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/up-home.png b/core/src/trezor/lvglui/assets/prompt/up-home.png new file mode 100755 index 000000000..2c044e6c9 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/up-home.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/update-green.png b/core/src/trezor/lvglui/assets/prompt/update-green.png new file mode 100755 index 000000000..8a12d415f Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/update-green.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/upload-res.png b/core/src/trezor/lvglui/assets/prompt/upload-res.png new file mode 100755 index 000000000..80225dd27 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/upload-res.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/usb.png b/core/src/trezor/lvglui/assets/prompt/usb.png new file mode 100755 index 000000000..80dddd0b0 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/usb.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/wallet.png b/core/src/trezor/lvglui/assets/prompt/wallet.png new file mode 100755 index 000000000..b3b2a5a1d Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/wallet.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/warning-bar.png b/core/src/trezor/lvglui/assets/prompt/warning-bar.png new file mode 100755 index 000000000..988e937eb Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/warning-bar.png differ diff --git a/core/src/trezor/lvglui/assets/prompt/warning.png b/core/src/trezor/lvglui/assets/prompt/warning.png new file mode 100755 index 000000000..ed2ec6859 Binary files /dev/null and b/core/src/trezor/lvglui/assets/prompt/warning.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-10-green.png b/core/src/trezor/lvglui/assets/sys/battery/battery-10-green.png new file mode 100755 index 000000000..9dc4867df Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-10-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-10-white.png b/core/src/trezor/lvglui/assets/sys/battery/battery-10-white.png new file mode 100755 index 000000000..e2878d691 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-10-white.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-100-green.png b/core/src/trezor/lvglui/assets/sys/battery/battery-100-green.png new file mode 100755 index 000000000..bb3a90599 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-100-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-100-white.png b/core/src/trezor/lvglui/assets/sys/battery/battery-100-white.png new file mode 100755 index 000000000..5559cb413 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-100-white.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-15-green.png b/core/src/trezor/lvglui/assets/sys/battery/battery-15-green.png new file mode 100755 index 000000000..f2fd97e4e Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-15-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-15-white.png b/core/src/trezor/lvglui/assets/sys/battery/battery-15-white.png new file mode 100755 index 000000000..03793a279 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-15-white.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-20-green.png b/core/src/trezor/lvglui/assets/sys/battery/battery-20-green.png new file mode 100755 index 000000000..732876939 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-20-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-20-white.png b/core/src/trezor/lvglui/assets/sys/battery/battery-20-white.png new file mode 100755 index 000000000..f2cf167cf Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-20-white.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-25-green.png b/core/src/trezor/lvglui/assets/sys/battery/battery-25-green.png new file mode 100755 index 000000000..887b4d67e Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-25-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-25-white.png b/core/src/trezor/lvglui/assets/sys/battery/battery-25-white.png new file mode 100755 index 000000000..2c931b7fb Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-25-white.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-30-green.png b/core/src/trezor/lvglui/assets/sys/battery/battery-30-green.png new file mode 100755 index 000000000..01730cac3 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-30-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-30-white.png b/core/src/trezor/lvglui/assets/sys/battery/battery-30-white.png new file mode 100755 index 000000000..044babce1 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-30-white.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-35-green.png b/core/src/trezor/lvglui/assets/sys/battery/battery-35-green.png new file mode 100755 index 000000000..28cec6011 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-35-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-35-white.png b/core/src/trezor/lvglui/assets/sys/battery/battery-35-white.png new file mode 100755 index 000000000..1da1362be Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-35-white.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-40-green.png b/core/src/trezor/lvglui/assets/sys/battery/battery-40-green.png new file mode 100755 index 000000000..ee80bc50c Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-40-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-40-white.png b/core/src/trezor/lvglui/assets/sys/battery/battery-40-white.png new file mode 100755 index 000000000..0e7ad3db4 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-40-white.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-45-green.png b/core/src/trezor/lvglui/assets/sys/battery/battery-45-green.png new file mode 100755 index 000000000..b27e9b2cc Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-45-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-45-white.png b/core/src/trezor/lvglui/assets/sys/battery/battery-45-white.png new file mode 100755 index 000000000..8ed2358b2 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-45-white.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-5-green.png b/core/src/trezor/lvglui/assets/sys/battery/battery-5-green.png new file mode 100755 index 000000000..90dde7c7a Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-5-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-5-white.png b/core/src/trezor/lvglui/assets/sys/battery/battery-5-white.png new file mode 100755 index 000000000..3109a35eb Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-5-white.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-50-green.png b/core/src/trezor/lvglui/assets/sys/battery/battery-50-green.png new file mode 100755 index 000000000..adeedbfa2 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-50-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-50-white.png b/core/src/trezor/lvglui/assets/sys/battery/battery-50-white.png new file mode 100755 index 000000000..35480a870 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-50-white.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-55-green.png b/core/src/trezor/lvglui/assets/sys/battery/battery-55-green.png new file mode 100755 index 000000000..9283c16c0 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-55-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-55-white.png b/core/src/trezor/lvglui/assets/sys/battery/battery-55-white.png new file mode 100755 index 000000000..05ee33b0a Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-55-white.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-60-green.png b/core/src/trezor/lvglui/assets/sys/battery/battery-60-green.png new file mode 100755 index 000000000..1531f0193 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-60-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-60-white.png b/core/src/trezor/lvglui/assets/sys/battery/battery-60-white.png new file mode 100755 index 000000000..6fc4e070b Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-60-white.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-65-green.png b/core/src/trezor/lvglui/assets/sys/battery/battery-65-green.png new file mode 100755 index 000000000..6b1339feb Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-65-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-65-white.png b/core/src/trezor/lvglui/assets/sys/battery/battery-65-white.png new file mode 100755 index 000000000..b26fe169c Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-65-white.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-70-green.png b/core/src/trezor/lvglui/assets/sys/battery/battery-70-green.png new file mode 100755 index 000000000..23a31d64a Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-70-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-70-white.png b/core/src/trezor/lvglui/assets/sys/battery/battery-70-white.png new file mode 100755 index 000000000..53ebe07ef Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-70-white.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-75-green.png b/core/src/trezor/lvglui/assets/sys/battery/battery-75-green.png new file mode 100755 index 000000000..c589a3a0e Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-75-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-75-white.png b/core/src/trezor/lvglui/assets/sys/battery/battery-75-white.png new file mode 100755 index 000000000..da418b861 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-75-white.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-80-green.png b/core/src/trezor/lvglui/assets/sys/battery/battery-80-green.png new file mode 100755 index 000000000..bd69e30c0 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-80-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-80-white.png b/core/src/trezor/lvglui/assets/sys/battery/battery-80-white.png new file mode 100755 index 000000000..ccb3b7489 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-80-white.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-85-green.png b/core/src/trezor/lvglui/assets/sys/battery/battery-85-green.png new file mode 100755 index 000000000..a0ceb0429 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-85-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-85-white.png b/core/src/trezor/lvglui/assets/sys/battery/battery-85-white.png new file mode 100755 index 000000000..adc930ece Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-85-white.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-90-green.png b/core/src/trezor/lvglui/assets/sys/battery/battery-90-green.png new file mode 100755 index 000000000..0af0d9e1e Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-90-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-90-white.png b/core/src/trezor/lvglui/assets/sys/battery/battery-90-white.png new file mode 100755 index 000000000..da048a1b2 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-90-white.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-95-green.png b/core/src/trezor/lvglui/assets/sys/battery/battery-95-green.png new file mode 100755 index 000000000..cef7f6711 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-95-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/battery-95-white.png b/core/src/trezor/lvglui/assets/sys/battery/battery-95-white.png new file mode 100755 index 000000000..fea2a3334 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/battery-95-white.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/charging_battery-10-green.png b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-10-green.png new file mode 100755 index 000000000..cdaf17847 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-10-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/charging_battery-100-green.png b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-100-green.png new file mode 100755 index 000000000..72f27f63b Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-100-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/charging_battery-15-green.png b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-15-green.png new file mode 100755 index 000000000..05bf4749f Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-15-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/charging_battery-20-green.png b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-20-green.png new file mode 100755 index 000000000..b8f6fa5a3 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-20-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/charging_battery-25-green.png b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-25-green.png new file mode 100755 index 000000000..968f76098 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-25-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/charging_battery-30-green.png b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-30-green.png new file mode 100755 index 000000000..72156db04 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-30-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/charging_battery-35-green.png b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-35-green.png new file mode 100755 index 000000000..7a5aae113 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-35-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/charging_battery-40-green.png b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-40-green.png new file mode 100755 index 000000000..37ff065ae Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-40-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/charging_battery-45-green.png b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-45-green.png new file mode 100755 index 000000000..0eab1e260 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-45-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/charging_battery-5-green.png b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-5-green.png new file mode 100755 index 000000000..efc3f14ac Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-5-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/charging_battery-50-green.png b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-50-green.png new file mode 100755 index 000000000..0c8ea5845 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-50-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/charging_battery-55-green.png b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-55-green.png new file mode 100755 index 000000000..55dd0099b Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-55-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/charging_battery-60-green.png b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-60-green.png new file mode 100755 index 000000000..0081c5868 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-60-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/charging_battery-65-green.png b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-65-green.png new file mode 100755 index 000000000..c149bd75f Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-65-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/charging_battery-70-green.png b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-70-green.png new file mode 100755 index 000000000..6e600dd50 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-70-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/charging_battery-75-green.png b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-75-green.png new file mode 100755 index 000000000..e496211f1 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-75-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/charging_battery-80-green.png b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-80-green.png new file mode 100755 index 000000000..91c68680d Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-80-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/charging_battery-85-green.png b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-85-green.png new file mode 100755 index 000000000..354cbacbb Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-85-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/charging_battery-90-green.png b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-90-green.png new file mode 100755 index 000000000..2fc9ae8fa Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-90-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/battery/charging_battery-95-green.png b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-95-green.png new file mode 100755 index 000000000..e7b5c39d7 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/battery/charging_battery-95-green.png differ diff --git a/core/src/trezor/lvglui/assets/sys/font/Geist-Regular-20-emu.bin b/core/src/trezor/lvglui/assets/sys/font/Geist-Regular-20-emu.bin new file mode 100755 index 000000000..acbf1c8a9 --- /dev/null +++ b/core/src/trezor/lvglui/assets/sys/font/Geist-Regular-20-emu.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0fd54ff25475bfe662f3b8c514ee93bfe4e1167d069a01a2acc4442ce285dfcd +size 26048 diff --git a/core/src/trezor/lvglui/assets/sys/font/Geist-Regular-20.bin b/core/src/trezor/lvglui/assets/sys/font/Geist-Regular-20.bin new file mode 100755 index 000000000..551227882 --- /dev/null +++ b/core/src/trezor/lvglui/assets/sys/font/Geist-Regular-20.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a9a4b785d5463db95730f438c655b5e407c1fc7296a1438da339e13afc7221e +size 7930860 diff --git a/core/src/trezor/lvglui/assets/sys/font/Geist-Regular-26-emu.bin b/core/src/trezor/lvglui/assets/sys/font/Geist-Regular-26-emu.bin new file mode 100755 index 000000000..4391fa0cf --- /dev/null +++ b/core/src/trezor/lvglui/assets/sys/font/Geist-Regular-26-emu.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:025aec87efad3d73e45ecca2e0339bd3c5a9721e8fa0076e8c07801089f491fa +size 38744 diff --git a/core/src/trezor/lvglui/assets/sys/font/Geist-Regular-26.bin b/core/src/trezor/lvglui/assets/sys/font/Geist-Regular-26.bin new file mode 100755 index 000000000..315e8b3b5 --- /dev/null +++ b/core/src/trezor/lvglui/assets/sys/font/Geist-Regular-26.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e4a540234e96dcd9931cdc1bacc42cd1b8c373b7e9c87bf2ddec16d6fbd0faa +size 12606052 diff --git a/core/src/trezor/lvglui/assets/sys/font/Geist-Regular-30-emu.bin b/core/src/trezor/lvglui/assets/sys/font/Geist-Regular-30-emu.bin new file mode 100755 index 000000000..1125c24d0 --- /dev/null +++ b/core/src/trezor/lvglui/assets/sys/font/Geist-Regular-30-emu.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d670e1fea72fa16baecfdcd32411a91e4273513c6939b2b55c5d315617a91986 +size 50492 diff --git a/core/src/trezor/lvglui/assets/sys/font/Geist-Regular-30.bin b/core/src/trezor/lvglui/assets/sys/font/Geist-Regular-30.bin new file mode 100755 index 000000000..42f29d5f7 --- /dev/null +++ b/core/src/trezor/lvglui/assets/sys/font/Geist-Regular-30.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a28cc04943abdd2da8517ee36d8626c1d9b0fc73881720aa44ae850b430522e2 +size 16313788 diff --git a/core/src/trezor/lvglui/assets/sys/font/Geist-SemiBold-26-emu.bin b/core/src/trezor/lvglui/assets/sys/font/Geist-SemiBold-26-emu.bin new file mode 100755 index 000000000..7cf6f292e --- /dev/null +++ b/core/src/trezor/lvglui/assets/sys/font/Geist-SemiBold-26-emu.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e15c01b4b00297f0e1a3bcdb7405c4591d94f45f11c2992f708870ec8d7da71 +size 41472 diff --git a/core/src/trezor/lvglui/assets/sys/font/Geist-SemiBold-26.bin b/core/src/trezor/lvglui/assets/sys/font/Geist-SemiBold-26.bin new file mode 100755 index 000000000..adb794527 --- /dev/null +++ b/core/src/trezor/lvglui/assets/sys/font/Geist-SemiBold-26.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f6a35b8a2b93ebd817dd4833116bc319ea8e9518ce5d292cbb1419e7102ada7 +size 13050400 diff --git a/core/src/trezor/lvglui/assets/sys/font/Geist-SemiBold-30-emu.bin b/core/src/trezor/lvglui/assets/sys/font/Geist-SemiBold-30-emu.bin new file mode 100755 index 000000000..bd1d39968 --- /dev/null +++ b/core/src/trezor/lvglui/assets/sys/font/Geist-SemiBold-30-emu.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:533580cfcc3b9e53bdba39aaa004cfbb2db35f44b7451e44de2cd9dfcac8d903 +size 53728 diff --git a/core/src/trezor/lvglui/assets/sys/font/Geist-SemiBold-30.bin b/core/src/trezor/lvglui/assets/sys/font/Geist-SemiBold-30.bin new file mode 100755 index 000000000..1ad5f4e7f --- /dev/null +++ b/core/src/trezor/lvglui/assets/sys/font/Geist-SemiBold-30.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f377587e8201f6c1ef26f430b16aa45e7dad422f37cd697bec5215fd400c309 +size 17179480 diff --git a/core/src/trezor/lvglui/assets/sys/font/Geist-SemiBold-38-emu.bin b/core/src/trezor/lvglui/assets/sys/font/Geist-SemiBold-38-emu.bin new file mode 100755 index 000000000..caaf553a6 --- /dev/null +++ b/core/src/trezor/lvglui/assets/sys/font/Geist-SemiBold-38-emu.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7eb3c1ec4cc71a5bcf5e8ff93c5f49dfcc0c1d7e5a7981c2d753d04d7f346f2a +size 88016 diff --git a/core/src/trezor/lvglui/assets/sys/font/Geist-SemiBold-38.bin b/core/src/trezor/lvglui/assets/sys/font/Geist-SemiBold-38.bin new file mode 100755 index 000000000..a49aaab46 --- /dev/null +++ b/core/src/trezor/lvglui/assets/sys/font/Geist-SemiBold-38.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a6a499874f515bc94aa08a578e5a9a1ef786e9bd921c7338cf46ed5e05062cef +size 26394896 diff --git a/core/src/trezor/lvglui/assets/sys/font/Geist-SemiBold-48-emu.bin b/core/src/trezor/lvglui/assets/sys/font/Geist-SemiBold-48-emu.bin new file mode 100755 index 000000000..5b9a37ff0 --- /dev/null +++ b/core/src/trezor/lvglui/assets/sys/font/Geist-SemiBold-48-emu.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58ed15ea15ec6d5f3aa77afddc02cdf58cc2970cf2d4621179b430c1fd19ace7 +size 188000 diff --git a/core/src/trezor/lvglui/assets/sys/font/Geist-SemiBold-48.bin b/core/src/trezor/lvglui/assets/sys/font/Geist-SemiBold-48.bin new file mode 100755 index 000000000..a894b9049 --- /dev/null +++ b/core/src/trezor/lvglui/assets/sys/font/Geist-SemiBold-48.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88f93e760e87da34dc42acbdadcb5b6f72388da3f016dea7bd23273eb6afcebb +size 41261404 diff --git a/core/src/trezor/lvglui/assets/sys/font/Geist-SemiBold-64-emu.bin b/core/src/trezor/lvglui/assets/sys/font/Geist-SemiBold-64-emu.bin new file mode 100755 index 000000000..24d6e5ed5 --- /dev/null +++ b/core/src/trezor/lvglui/assets/sys/font/Geist-SemiBold-64-emu.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c73e6b0457690a5e90f0527bd60fe49321249af3ed2d4ae85fbcbb1c6c84e668 +size 231016 diff --git a/core/src/trezor/lvglui/assets/sys/font/Geist-SemiBold-64.bin b/core/src/trezor/lvglui/assets/sys/font/Geist-SemiBold-64.bin new file mode 100755 index 000000000..61552e108 --- /dev/null +++ b/core/src/trezor/lvglui/assets/sys/font/Geist-SemiBold-64.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:135e4250ab36488ae2d8c23a9cb5db4df630a08f563961f3f4fe4d0920b0636b +size 71925836 diff --git a/core/src/trezor/lvglui/assets/sys/font/GeistMono-Regular-28-emu.bin b/core/src/trezor/lvglui/assets/sys/font/GeistMono-Regular-28-emu.bin new file mode 100755 index 000000000..29588058b --- /dev/null +++ b/core/src/trezor/lvglui/assets/sys/font/GeistMono-Regular-28-emu.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52a92b6c701834f710d24e50e9c0f1af6294ac665f6fd9f6299043863b929828 +size 62444 diff --git a/core/src/trezor/lvglui/assets/sys/font/GeistMono-Regular-28.bin b/core/src/trezor/lvglui/assets/sys/font/GeistMono-Regular-28.bin new file mode 100755 index 000000000..9a1b57449 --- /dev/null +++ b/core/src/trezor/lvglui/assets/sys/font/GeistMono-Regular-28.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02f5352b4d602ed5975d043f25f739dde49927e2dc3594ec51c90428caf537bf +size 14456324 diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-aws.png b/core/src/trezor/lvglui/assets/sys/icon/icon-aws.png new file mode 100755 index 000000000..a0bc1f4d0 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-aws.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-binance.png b/core/src/trezor/lvglui/assets/sys/icon/icon-binance.png new file mode 100755 index 000000000..ff038d40f Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-binance.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-bitbucket.png b/core/src/trezor/lvglui/assets/sys/icon/icon-bitbucket.png new file mode 100755 index 000000000..47eeaecb1 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-bitbucket.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-bitfinex.png b/core/src/trezor/lvglui/assets/sys/icon/icon-bitfinex.png new file mode 100755 index 000000000..83d376f4f Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-bitfinex.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-bitwarden.png b/core/src/trezor/lvglui/assets/sys/icon/icon-bitwarden.png new file mode 100755 index 000000000..c066cb362 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-bitwarden.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-bluetooth.png b/core/src/trezor/lvglui/assets/sys/icon/icon-bluetooth.png new file mode 100755 index 000000000..0b2aa2c13 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-bluetooth.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-cloudflare.png b/core/src/trezor/lvglui/assets/sys/icon/icon-cloudflare.png new file mode 100755 index 000000000..a557900e2 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-cloudflare.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-coinbase.png b/core/src/trezor/lvglui/assets/sys/icon/icon-coinbase.png new file mode 100755 index 000000000..ebe8fb38a Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-coinbase.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-dashlane.png b/core/src/trezor/lvglui/assets/sys/icon/icon-dashlane.png new file mode 100755 index 000000000..ca13fe942 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-dashlane.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-dot-34.png b/core/src/trezor/lvglui/assets/sys/icon/icon-dot-34.png new file mode 100755 index 000000000..d84b5d673 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-dot-34.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-dot-48.png b/core/src/trezor/lvglui/assets/sys/icon/icon-dot-48.png new file mode 100755 index 000000000..59cb8822e Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-dot-48.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-dotmap.png b/core/src/trezor/lvglui/assets/sys/icon/icon-dotmap.png new file mode 100755 index 000000000..eb0a2d7c2 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-dotmap.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-dropbox.png b/core/src/trezor/lvglui/assets/sys/icon/icon-dropbox.png new file mode 100755 index 000000000..ba2407c31 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-dropbox.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-duo.png b/core/src/trezor/lvglui/assets/sys/icon/icon-duo.png new file mode 100755 index 000000000..c6e127638 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-duo.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-facebook.png b/core/src/trezor/lvglui/assets/sys/icon/icon-facebook.png new file mode 100755 index 000000000..d57177c94 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-facebook.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-fastmail.png b/core/src/trezor/lvglui/assets/sys/icon/icon-fastmail.png new file mode 100755 index 000000000..607994831 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-fastmail.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-fedora.png b/core/src/trezor/lvglui/assets/sys/icon/icon-fedora.png new file mode 100755 index 000000000..276ad6ce9 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-fedora.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-gandi.png b/core/src/trezor/lvglui/assets/sys/icon/icon-gandi.png new file mode 100755 index 000000000..01967a079 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-gandi.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-gemini.png b/core/src/trezor/lvglui/assets/sys/icon/icon-gemini.png new file mode 100755 index 000000000..cfd0320f0 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-gemini.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-github.png b/core/src/trezor/lvglui/assets/sys/icon/icon-github.png new file mode 100755 index 000000000..2300a9fed Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-github.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-gitlab.png b/core/src/trezor/lvglui/assets/sys/icon/icon-gitlab.png new file mode 100755 index 000000000..9631423a3 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-gitlab.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-good.png b/core/src/trezor/lvglui/assets/sys/icon/icon-good.png new file mode 100755 index 000000000..440605606 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-good.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-google.png b/core/src/trezor/lvglui/assets/sys/icon/icon-google.png new file mode 100755 index 000000000..6c9f8ce84 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-google.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-invity.png b/core/src/trezor/lvglui/assets/sys/icon/icon-invity.png new file mode 100755 index 000000000..227256482 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-invity.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-keeper.png b/core/src/trezor/lvglui/assets/sys/icon/icon-keeper.png new file mode 100755 index 000000000..ff760f705 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-keeper.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-kraken.png b/core/src/trezor/lvglui/assets/sys/icon/icon-kraken.png new file mode 100755 index 000000000..bfb9f3a0a Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-kraken.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-lite-34.png b/core/src/trezor/lvglui/assets/sys/icon/icon-lite-34.png new file mode 100755 index 000000000..f26b87418 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-lite-34.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-lite-48.png b/core/src/trezor/lvglui/assets/sys/icon/icon-lite-48.png new file mode 100755 index 000000000..df354d313 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-lite-48.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-lite.png b/core/src/trezor/lvglui/assets/sys/icon/icon-lite.png new file mode 100755 index 000000000..2bc4385ad Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-lite.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-login.gov.png b/core/src/trezor/lvglui/assets/sys/icon/icon-login.gov.png new file mode 100755 index 000000000..5c8a84dba Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-login.gov.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-microsoft.png b/core/src/trezor/lvglui/assets/sys/icon/icon-microsoft.png new file mode 100755 index 000000000..ef58b7a28 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-microsoft.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-mojeid.png b/core/src/trezor/lvglui/assets/sys/icon/icon-mojeid.png new file mode 100755 index 000000000..0b48d9e7a Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-mojeid.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-namecheap.png b/core/src/trezor/lvglui/assets/sys/icon/icon-namecheap.png new file mode 100755 index 000000000..647ad6f99 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-namecheap.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-proton.png b/core/src/trezor/lvglui/assets/sys/icon/icon-proton.png new file mode 100755 index 000000000..c9ec6d161 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-proton.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-quick-stark.png b/core/src/trezor/lvglui/assets/sys/icon/icon-quick-stark.png new file mode 100755 index 000000000..68fdd4127 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-quick-stark.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-send.png b/core/src/trezor/lvglui/assets/sys/icon/icon-send.png new file mode 100755 index 000000000..3a667d0c3 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-send.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-slushpool.png b/core/src/trezor/lvglui/assets/sys/icon/icon-slushpool.png new file mode 100755 index 000000000..6fca9e37f Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-slushpool.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-stripe.png b/core/src/trezor/lvglui/assets/sys/icon/icon-stripe.png new file mode 100755 index 000000000..33d8aff3a Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-stripe.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-tips-blue.png b/core/src/trezor/lvglui/assets/sys/icon/icon-tips-blue.png new file mode 100755 index 000000000..8b5c7a58d Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-tips-blue.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-tutanota.png b/core/src/trezor/lvglui/assets/sys/icon/icon-tutanota.png new file mode 100755 index 000000000..1db688852 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-tutanota.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-warning-bar.png b/core/src/trezor/lvglui/assets/sys/icon/icon-warning-bar.png new file mode 100755 index 000000000..8a27b2ab9 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-warning-bar.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/icon-webauthn.png b/core/src/trezor/lvglui/assets/sys/icon/icon-webauthn.png new file mode 100755 index 000000000..f3e962f4b Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/icon-webauthn.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/mm-logo-48.png b/core/src/trezor/lvglui/assets/sys/icon/mm-logo-48.png new file mode 100755 index 000000000..0248a0431 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/mm-logo-48.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/mm-logo-96.png b/core/src/trezor/lvglui/assets/sys/icon/mm-logo-96.png new file mode 100755 index 000000000..9233191c8 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/mm-logo-96.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/ok-logo-48.png b/core/src/trezor/lvglui/assets/sys/icon/ok-logo-48.png new file mode 100755 index 000000000..6c83d0169 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/ok-logo-48.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/ok-logo-96.png b/core/src/trezor/lvglui/assets/sys/icon/ok-logo-96.png new file mode 100755 index 000000000..bde5fd717 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/ok-logo-96.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/okx-logo-48.png b/core/src/trezor/lvglui/assets/sys/icon/okx-logo-48.png new file mode 100755 index 000000000..d3335f3b2 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/okx-logo-48.png differ diff --git a/core/src/trezor/lvglui/assets/sys/icon/okx-logo-96.png b/core/src/trezor/lvglui/assets/sys/icon/okx-logo-96.png new file mode 100755 index 000000000..74f5143eb Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/icon/okx-logo-96.png differ diff --git a/core/src/trezor/lvglui/assets/sys/wallpaper/app-address.jpg b/core/src/trezor/lvglui/assets/sys/wallpaper/app-address.jpg new file mode 100755 index 000000000..f547005f2 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/wallpaper/app-address.jpg differ diff --git a/core/src/trezor/lvglui/assets/sys/wallpaper/app-backup.jpg b/core/src/trezor/lvglui/assets/sys/wallpaper/app-backup.jpg new file mode 100755 index 000000000..81698753b Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/wallpaper/app-backup.jpg differ diff --git a/core/src/trezor/lvglui/assets/sys/wallpaper/app-connect.jpg b/core/src/trezor/lvglui/assets/sys/wallpaper/app-connect.jpg new file mode 100755 index 000000000..9d827232c Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/wallpaper/app-connect.jpg differ diff --git a/core/src/trezor/lvglui/assets/sys/wallpaper/app-keys.jpg b/core/src/trezor/lvglui/assets/sys/wallpaper/app-keys.jpg new file mode 100755 index 000000000..71526efc2 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/wallpaper/app-keys.jpg differ diff --git a/core/src/trezor/lvglui/assets/sys/wallpaper/app-nft.jpg b/core/src/trezor/lvglui/assets/sys/wallpaper/app-nft.jpg new file mode 100755 index 000000000..0532cf67d Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/wallpaper/app-nft.jpg differ diff --git a/core/src/trezor/lvglui/assets/sys/wallpaper/app-scan.jpg b/core/src/trezor/lvglui/assets/sys/wallpaper/app-scan.jpg new file mode 100755 index 000000000..00cf7aed8 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/wallpaper/app-scan.jpg differ diff --git a/core/src/trezor/lvglui/assets/sys/wallpaper/app-settings.jpg b/core/src/trezor/lvglui/assets/sys/wallpaper/app-settings.jpg new file mode 100755 index 000000000..50a45f6cb Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/wallpaper/app-settings.jpg differ diff --git a/core/src/trezor/lvglui/assets/sys/wallpaper/app-tips.jpg b/core/src/trezor/lvglui/assets/sys/wallpaper/app-tips.jpg new file mode 100755 index 000000000..964a139ef Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/wallpaper/app-tips.jpg differ diff --git a/core/src/trezor/lvglui/assets/sys/wallpaper/wallpaper-1.jpg b/core/src/trezor/lvglui/assets/sys/wallpaper/wallpaper-1.jpg new file mode 100755 index 000000000..1bfc007fb Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/wallpaper/wallpaper-1.jpg differ diff --git a/core/src/trezor/lvglui/assets/sys/wallpaper/wallpaper-2.jpg b/core/src/trezor/lvglui/assets/sys/wallpaper/wallpaper-2.jpg new file mode 100755 index 000000000..6f06a235b Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/wallpaper/wallpaper-2.jpg differ diff --git a/core/src/trezor/lvglui/assets/sys/wallpaper/wallpaper-3.jpg b/core/src/trezor/lvglui/assets/sys/wallpaper/wallpaper-3.jpg new file mode 100755 index 000000000..57bc0de0f Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/wallpaper/wallpaper-3.jpg differ diff --git a/core/src/trezor/lvglui/assets/sys/wallpaper/wallpaper-4.jpg b/core/src/trezor/lvglui/assets/sys/wallpaper/wallpaper-4.jpg new file mode 100755 index 000000000..575826c9d Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/wallpaper/wallpaper-4.jpg differ diff --git a/core/src/trezor/lvglui/assets/sys/wallpaper/wallpaper-5.jpg b/core/src/trezor/lvglui/assets/sys/wallpaper/wallpaper-5.jpg new file mode 100755 index 000000000..8a6a42706 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/wallpaper/wallpaper-5.jpg differ diff --git a/core/src/trezor/lvglui/assets/sys/wallpaper/wallpaper-6.jpg b/core/src/trezor/lvglui/assets/sys/wallpaper/wallpaper-6.jpg new file mode 100755 index 000000000..b0eead70d Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/wallpaper/wallpaper-6.jpg differ diff --git a/core/src/trezor/lvglui/assets/sys/wallpaper/wallpaper-7.jpg b/core/src/trezor/lvglui/assets/sys/wallpaper/wallpaper-7.jpg new file mode 100755 index 000000000..dc46d6fd3 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/wallpaper/wallpaper-7.jpg differ diff --git a/core/src/trezor/lvglui/assets/sys/wallpaper/zoom-wallpaper-1.jpg b/core/src/trezor/lvglui/assets/sys/wallpaper/zoom-wallpaper-1.jpg new file mode 100755 index 000000000..ba872c9cb Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/wallpaper/zoom-wallpaper-1.jpg differ diff --git a/core/src/trezor/lvglui/assets/sys/wallpaper/zoom-wallpaper-2.jpg b/core/src/trezor/lvglui/assets/sys/wallpaper/zoom-wallpaper-2.jpg new file mode 100755 index 000000000..714a0e745 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/wallpaper/zoom-wallpaper-2.jpg differ diff --git a/core/src/trezor/lvglui/assets/sys/wallpaper/zoom-wallpaper-3.jpg b/core/src/trezor/lvglui/assets/sys/wallpaper/zoom-wallpaper-3.jpg new file mode 100755 index 000000000..a4bbda171 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/wallpaper/zoom-wallpaper-3.jpg differ diff --git a/core/src/trezor/lvglui/assets/sys/wallpaper/zoom-wallpaper-4.jpg b/core/src/trezor/lvglui/assets/sys/wallpaper/zoom-wallpaper-4.jpg new file mode 100755 index 000000000..d985ac487 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/wallpaper/zoom-wallpaper-4.jpg differ diff --git a/core/src/trezor/lvglui/assets/sys/wallpaper/zoom-wallpaper-5.jpg b/core/src/trezor/lvglui/assets/sys/wallpaper/zoom-wallpaper-5.jpg new file mode 100755 index 000000000..45886a9a8 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/wallpaper/zoom-wallpaper-5.jpg differ diff --git a/core/src/trezor/lvglui/assets/sys/wallpaper/zoom-wallpaper-6.jpg b/core/src/trezor/lvglui/assets/sys/wallpaper/zoom-wallpaper-6.jpg new file mode 100755 index 000000000..e8b326070 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/wallpaper/zoom-wallpaper-6.jpg differ diff --git a/core/src/trezor/lvglui/assets/sys/wallpaper/zoom-wallpaper-7.jpg b/core/src/trezor/lvglui/assets/sys/wallpaper/zoom-wallpaper-7.jpg new file mode 100755 index 000000000..66649ad59 Binary files /dev/null and b/core/src/trezor/lvglui/assets/sys/wallpaper/zoom-wallpaper-7.jpg differ diff --git a/core/src/trezor/lvglui/i18n/keys.py b/core/src/trezor/lvglui/i18n/keys.py index ba50b9c3d..73f33c664 100644 --- a/core/src/trezor/lvglui/i18n/keys.py +++ b/core/src/trezor/lvglui/i18n/keys.py @@ -1828,4 +1828,48 @@ VERIFY_DEVICE_BOOTLOADER_DESC = 833 # Download OneKey App at: onekey.so/download FORM__DOWNLOAD_APP_FROM_DOWNLOAD_CENTER = 834 +# FIDO Keys +FIDO_FIDO_KEYS_LABEL = 835 +# Secure accounts with FIDO security keys +FIDO_FIDO_KEYS_DESC = 836 +# Remove FIDO Key? +FIDO_REMOVE_KEY_TITLE = 837 +# This FIDO key will be removed permanently +FIDO_REMOVE_KEY_DESC = 838 +# FIDO Key Removed +FIDO_REMOVE_KEY_SUCCESS_TITLE = 839 +# Key Limit Reached +FIDO_ADD_KEY_LIMIT_REACHED_TITLE = 840 +# 60 FIDO keys limit reached. Remove unused to add new +FIDO_ADD_KEY_LIMIT_REACHED_DESC = 841 +# Manage FIDO Keys +FIDO_MANAGE_KEY_CTA_LABEL = 842 +# No FIDO keys yet +FIDO_LIST_EMPTY_TEXT = 843 +# Using OneKey Devices as Security Keys +TIPS_SECURITY_KEYS_TEXT = 844 +# Register +TIPS_SECURITY_KEYS_REGISTER_TITLE = 845 +# Plug in your OneKey to your computer +TIPS_SECURITY_KEYS_REGISTER_PLUG_IN = 846 +# Go to security settings of the website (e.g. Google, Facebook) +TIPS_SECURITY_KEYS_REGISTER_GO_TO_WEBSITE = 847 +# Select "Add Security Key" option +TIPS_SECURITY_KEYS_REGISTER_SELECT_OPTION = 848 +# Confirm with OneKey (unlock required) +TIPS_SECURITY_KEYS_REGISTER_CONFIRM = 849 +# Choose "Security Key" at login +TIPS_SECURITY_KEYS_AUTHENTICATE_CHOOSE_OPTION = 850 +# Approve with OneKey +TIPS_SECURITY_KEYS_AUTHENTICATE_APPROVE = 851 +# Authenticate +TIPS_SECURITY_KEYS_AUTHENTICATE_TITLE = 852 +# Slide to unlock +MISTOUCH_PROTECTION_TITLE = 853 +# 5 failed tries. Slide to continue +MISTOUCH_PROTECTION_DESC = 854 +# Slide to continue +MISTOUCH_PROTECTION_SLIDE_TEXT = 855 +# Back to home +BUTTON__BACK_TO_HOME = 856 # fmt: on diff --git a/core/src/trezor/lvglui/i18n/locales/de.py b/core/src/trezor/lvglui/i18n/locales/de.py index 04a2274a6..b21915401 100644 --- a/core/src/trezor/lvglui/i18n/locales/de.py +++ b/core/src/trezor/lvglui/i18n/locales/de.py @@ -835,5 +835,27 @@ "Weniger zeigen", "Bootloader-URL erfordert Geräteverifizierung in der OneKey App 5.5.0+", "Laden Sie die OneKey App herunter unter: onekey.so/download", + "FIDO-Schlüssel", + "Sichern Sie Konten mit FIDO-Sicherheitsschlüsseln", + "FIDO-Schlüssel entfernen?", + "Dieser FIDO-Schlüssel wird dauerhaft entfernt", + "FIDO-Schlüssel entfernt", + "Schlüsselgrenze erreicht", + "60 FIDO-Schlüssel-Limit erreicht. Entfernen Sie ungenutzte, um neue hinzuzufügen", + "Verwalten von FIDO-Schlüsseln", + "Noch keine FIDO-Schlüssel", + "Verwendung von OneKey-Geräten als Sicherheitsschlüssel", + "Registrieren", + "Stecken Sie Ihren OneKey in Ihren Computer ein", + "Gehen Sie zu den Sicherheitseinstellungen der Website (z. B. Google, Facebook)", + "Wählen Sie die Option \"Add Security Key\" aus", + "Bestätigen mit OneKey (Entsperrung erforderlich)", + "Wählen Sie \"Security Key\" beim Login", + "Genehmigen mit OneKey", + "Authentifizieren", + "Zum Entsperren schieben", + "5 fehlgeschlagene Versuche. Wischen, um fortzufahren", + "Zum Fortfahren wischen", + "Zurück zur Startseite", ] # fmt: on diff --git a/core/src/trezor/lvglui/i18n/locales/en.py b/core/src/trezor/lvglui/i18n/locales/en.py index 91db6634d..df697e8fc 100644 --- a/core/src/trezor/lvglui/i18n/locales/en.py +++ b/core/src/trezor/lvglui/i18n/locales/en.py @@ -835,5 +835,27 @@ "Show Less", "Bootloader URL requires device verification in OneKey App 5.5.0+", "Download OneKey App at: onekey.so/download", + "FIDO Keys", + "Secure accounts with FIDO security keys", + "Remove FIDO Key?", + "This FIDO key will be removed permanently", + "FIDO Key Removed", + "Key Limit Reached", + "60 FIDO keys limit reached. Remove unused to add new", + "Manage FIDO Keys", + "No FIDO keys yet", + "Using OneKey Devices as Security Keys", + "Register", + "Plug in your OneKey to your computer", + "Go to security settings of the website (e.g. Google, Facebook)", + "Select \"Add Security Key\" option", + "Confirm with OneKey (unlock required)", + "Choose \"Security Key\" at login", + "Approve with OneKey", + "Authenticate", + "Slide to unlock", + "5 failed tries. Slide to continue", + "Slide to continue", + "Back to home", ] # fmt: on diff --git a/core/src/trezor/lvglui/i18n/locales/es.py b/core/src/trezor/lvglui/i18n/locales/es.py index 88e58f048..4f0828881 100644 --- a/core/src/trezor/lvglui/i18n/locales/es.py +++ b/core/src/trezor/lvglui/i18n/locales/es.py @@ -835,5 +835,27 @@ "Mostrar menos", "La URL del bootloader requiere verificación del dispositivo en la aplicación OneKey 5.5.0+", "Descarga la aplicación OneKey en: onekey.so/download", + "Llaves FIDO", + "Asegure cuentas con llaves de seguridad FIDO", + "¿Eliminar FIDO Key?", + "Esta clave FIDO será eliminada permanentemente", + "Llave FIDO Eliminada", + "Límite de clave alcanzado", + "Se alcanzó el límite de 60 claves FIDO. Elimine las no utilizadas para agregar nuevas", + "Gestionar claves FIDO", + "Aún no hay llaves FIDO", + "Usar dispositivos OneKey como llaves de seguridad", + "Registrar", + "Conecta tu OneKey a tu computadora", + "Ve a la configuración de seguridad del sitio web (por ejemplo, Google, Facebook)", + "Seleccione la opción \"Add Security Key\"", + "Confirma con OneKey (desbloqueo requerido)", + "Elige \"Security Key\" al iniciar sesión", + "Aprobar con OneKey", + "Autenticar", + "Desliza para desbloquear", + "5 intentos fallidos. Desliza para continuar", + "Desliza para continuar", + "Volver a inicio", ] # fmt: on diff --git a/core/src/trezor/lvglui/i18n/locales/fr.py b/core/src/trezor/lvglui/i18n/locales/fr.py index 9aded5c2b..cf47e91a0 100644 --- a/core/src/trezor/lvglui/i18n/locales/fr.py +++ b/core/src/trezor/lvglui/i18n/locales/fr.py @@ -835,5 +835,27 @@ "Afficher moins", "L'URL du bootloader nécessite une vérification de l'appareil dans l'application OneKey 5.5.0+.", "Téléchargez l'application OneKey à : onekey.so/download", + "Clés FIDO", + "Sécurisez les comptes avec des clés de sécurité FIDO", + "Supprimer la clé FIDO ?", + "Cette clé FIDO sera supprimée définitivement", + "Clé FIDO retirée", + "Limite de clé atteinte", + "Limite de 60 clés FIDO atteinte. Supprimez les inutilisées pour en ajouter de nouvelles", + "Gérer les clés FIDO", + "Pas encore de clés FIDO", + "Utilisation des appareils OneKey comme clés de sécurité", + "S'inscrire", + "Branchez votre OneKey à votre ordinateur", + "Accédez aux paramètres de sécurité du site web (par exemple, Google, Facebook)", + "Sélectionnez l'option \"Add Security Key\"", + "Confirmer avec OneKey (déverrouillage requis)", + "Choisissez \"Security Key\" lors de la connexion", + "Approuver avec OneKey", + "Authentifier", + "Faites glisser pour déverrouiller", + "5 tentatives échouées. Glissez pour continuer", + "Faites glisser pour continuer", + "Retour à l'accueil", ] # fmt: on diff --git a/core/src/trezor/lvglui/i18n/locales/it.py b/core/src/trezor/lvglui/i18n/locales/it.py index 24468ba62..56e45384d 100644 --- a/core/src/trezor/lvglui/i18n/locales/it.py +++ b/core/src/trezor/lvglui/i18n/locales/it.py @@ -835,5 +835,27 @@ "Mostra meno", "L'URL del bootloader richiede la verifica del dispositivo nell'app OneKey 5.5.0+", "Scarica l'app OneKey su: onekey.so/download", + "Chiavi FIDO", + "Proteggi gli account con le chiavi di sicurezza FIDO", + "Rimuovere la chiave FIDO?", + "Questa chiave FIDO verrà rimossa permanentemente", + "Chiave FIDO rimossa", + "Limite di chiavi raggiunto", + "Limite di 60 chiavi FIDO raggiunto. Rimuovi quelle non utilizzate per aggiungerne di nuove", + "Gestire le chiavi FIDO", + "Nessuna chiave FIDO ancora", + "Utilizzare i dispositivi OneKey come chiavi di sicurezza", + "Registrati", + "Collega il tuo OneKey al computer", + "Vai alle impostazioni di sicurezza del sito web (ad esempio, Google, Facebook)", + "Seleziona l'opzione \"Add Security Key\"", + "Conferma con OneKey (sblocco richiesto)", + "Scegli \"Security Key\" al login", + "Approva con OneKey", + "Autenticare", + "Scorri per sbloccare", + "5 tentativi falliti. Scorri per continuare", + "Scorri per continuare", + "Torna alla home", ] # fmt: on diff --git a/core/src/trezor/lvglui/i18n/locales/ja.py b/core/src/trezor/lvglui/i18n/locales/ja.py index f9508d5b2..bb36199a1 100644 --- a/core/src/trezor/lvglui/i18n/locales/ja.py +++ b/core/src/trezor/lvglui/i18n/locales/ja.py @@ -835,5 +835,27 @@ "表示を減らす", "ブートローダー URL は OneKey アプリ 5.5.0+ でデバイスの確認が必要です", "OneKeyアプリをダウンロードするには、onekey.so/downloadをご利用ください。", + "FIDOキー", + "FIDOセキュリティキーでアカウントを保護する", + "FIDOキーを削除しますか?", + "このFIDOキーは永久に削除されます", + "FIDOキーが削除されました", + "キーの制限に達しました", + "60個のFIDOキーの制限に達しました。新しいものを追加するには、未使用のものを削除してください", + "FIDOキーを管理する", + "まだFIDOキーがありません", + "OneKeyデバイスをセキュリティキーとして使用する", + "登録", + "コンピュータに OneKey を接続してください", + "ウェブサイトのセキュリティ設定に移動します(例:Google、Facebook)", + "「セキュリティキーを追加」オプションを選択", + "OneKeyで確認(ロック解除が必要)", + "ログイン時に「Security Key」を選択してください", + "OneKeyで承認", + "認証", + "スライドしてロック解除", + "5回失敗しました。スライドして続行してください", + "スライドして続行", + "ホームに戻る", ] # fmt: on diff --git a/core/src/trezor/lvglui/i18n/locales/ko.py b/core/src/trezor/lvglui/i18n/locales/ko.py index d84b31e6a..b2ec59b90 100644 --- a/core/src/trezor/lvglui/i18n/locales/ko.py +++ b/core/src/trezor/lvglui/i18n/locales/ko.py @@ -82,7 +82,7 @@ "암호 비활성화", "암호구 암호화를 비활성화하시겠습니까?", "이 장치에 항상 암호를 입력하시겠습니까?", - "암호 소스", + "Passphrase 소스", "장치에 항상 암호 입력 설정을 취소하시겠습니까?", "암호 입력", "연결된 장치에 암호를 입력하십시오.", @@ -835,5 +835,27 @@ "더 적게 표시", "부트로더 URL 은 OneKey App 5.5.0+ 에서 기기 인증이 필요합니다.", "OneKey 앱을 다운로드하세요: onekey.so/download", + "FIDO 키", + "FIDO 보안 키로 계정을 보호하세요", + "FIDO 키를 제거하시겠습니까?", + "이 FIDO 키는 영구적으로 제거됩니다", + "FIDO 키 제거됨", + "키 제한에 도달했습니다", + "60 FIDO 키 제한에 도달했습니다. 새로 추가하려면 사용하지 않는 키를 제거하세요.", + "FIDO 키 관리", + "아직 FIDO 키가 없습니다", + "OneKey 장치를 보안 키로 사용하기", + "등록", + "컴퓨터에 OneKey 를 연결하세요", + "웹사이트(예: Google, Facebook)의 보안 설정으로 이동하세요", + "\"보안 키 추가\" 옵션 선택", + "OneKey로 확인 (잠금 해제 필요)", + "로그인 시 \"Security Key\"를 선택하세요", + "OneKey로 승인", + "인증하다", + "밀어서 잠금 해제", + "5번 시도 실패. 계속하려면 슬라이드하세요", + "슬라이드하여 계속", + "홈으로 돌아가기", ] # fmt: on diff --git a/core/src/trezor/lvglui/i18n/locales/pt_br.py b/core/src/trezor/lvglui/i18n/locales/pt_br.py index 78eef230e..084266ded 100644 --- a/core/src/trezor/lvglui/i18n/locales/pt_br.py +++ b/core/src/trezor/lvglui/i18n/locales/pt_br.py @@ -835,5 +835,27 @@ "Mostrar menos", "A URL do Bootloader requer verificação do dispositivo no OneKey App 5.5.0+", "Baixe o aplicativo OneKey em: onekey.so/download", + "Chaves FIDO", + "Proteja contas com chaves de segurança FIDO", + "Remover chave FIDO?", + "Esta chave FIDO será removida permanentemente", + "Chave FIDO Removida", + "Limite de Chaves Atingido", + "Limite de 60 chaves FIDO atingido. Remova as não utilizadas para adicionar novas", + "Gerenciar Chaves FIDO", + "Ainda não há chaves FIDO", + "Usando dispositivos OneKey como chaves de segurança", + "Registrar", + "Conecte seu OneKey ao seu computador", + "Vá para as configurações de segurança do site (por exemplo, Google, Facebook)", + "Selecione a opção \"Add Security Key\"", + "Confirme com OneKey (desbloqueio necessário)", + "Escolha \"Security Key\" ao fazer login", + "Aprovar com OneKey", + "Autenticar", + "Deslize para desbloquear", + "5 tentativas falhas. Deslize para continuar", + "Deslize para continuar", + "Voltar para casa", ] # fmt: on diff --git a/core/src/trezor/lvglui/i18n/locales/ru.py b/core/src/trezor/lvglui/i18n/locales/ru.py index c935ab105..13b894928 100644 --- a/core/src/trezor/lvglui/i18n/locales/ru.py +++ b/core/src/trezor/lvglui/i18n/locales/ru.py @@ -835,5 +835,27 @@ "Показать меньше", "URL загрузчика требует проверки устройства в приложении OneKey версии 5.5.0 и выше", "Скачайте приложение OneKey по адресу: onekey.so/download", + "Ключи FIDO", + "Защитите аккаунты с помощью ключей безопасности FIDO", + "Удалить FIDO ключ?", + "Этот ключ FIDO будет удален навсегда", + "Ключ FIDO удален", + "Достигнут лимит ключей", + "Достигнут лимит в 60 ключей FIDO. Удалите неиспользуемые, чтобы добавить новые", + "Управление ключами FIDO", + "Пока нет ключей FIDO", + "Использование устройств OneKey в качестве ключей безопасности", + "Зарегистрироваться", + "Подключите ваш OneKey к компьютеру", + "Перейдите в настройки безопасности на сайте (например, Google, Facebook)", + "Выберите опцию \"Add Security Key\"", + "Подтвердите с помощью OneKey (требуется разблокировка)", + "Выберите \"Security Key\" при входе", + "Утвердить с OneKey", + "Аутентифицировать", + "Проведите, чтобы разблокировать", + "5 неудачных попыток. Проведите, чтобы продолжить", + "Проведите, чтобы продолжить", + "Вернуться на главную", ] # fmt: on diff --git a/core/src/trezor/lvglui/i18n/locales/zh_cn.py b/core/src/trezor/lvglui/i18n/locales/zh_cn.py index 7ccce30ec..486ed239c 100644 --- a/core/src/trezor/lvglui/i18n/locales/zh_cn.py +++ b/core/src/trezor/lvglui/i18n/locales/zh_cn.py @@ -835,5 +835,27 @@ "显示更少", "Bootloader URL 需要在 OneKey App 5.5.0+ 中进行设备验证", "在 onekey.so/download 下载 OneKey App", + "FIDO 密钥", + "使用 FIDO 安全密钥保护账户", + "移除 FIDO 密钥?", + "此 FIDO 密钥将被永久删除", + "FIDO 密钥已移除", + "已达到密钥数量限制", + "已达到 60 个 FIDO 密钥的限制。移除未使用的以添加新的", + "管理 FIDO 密钥", + "还没有 FIDO 密钥", + "使用 OneKey 设备作为安全密钥", + "注册", + "将你的 OneKey 插入到电脑中", + "前往网站的安全设置(例如 Google, Facebook)", + "选择 \"Add Security Key\" 选项", + "使用 OneKey 确认(需要解锁)", + "选择 \"Security Key\" 进行登录", + "使用 OneKey 批准", + "认证", + "滑动解锁", + "5 次尝试失败。滑动继续", + "滑动继续", + "返回首页", ] # fmt: on diff --git a/core/src/trezor/lvglui/i18n/locales/zh_hk.py b/core/src/trezor/lvglui/i18n/locales/zh_hk.py index b0b7ce509..804844784 100644 --- a/core/src/trezor/lvglui/i18n/locales/zh_hk.py +++ b/core/src/trezor/lvglui/i18n/locales/zh_hk.py @@ -816,7 +816,7 @@ "我的地址", "選擇網路", "{network}位址", - "選擇推導路徑", + "選擇派生路徑", "選擇帳戶", "前往帳戶", "輸入格式錯誤", @@ -835,5 +835,27 @@ "顯示更少", "Bootloader URL 需要在 OneKey App 5.5.0+ 中進行設備驗證", "到 onekey.so/download 下載 OneKey App", + "FIDO 金鑰", + "使用 FIDO 安全金鑰保護帳戶", + "移除 FIDO 金鑰?", + "這個 FIDO 金鑰將會被永久刪除", + "FIDO 金鑰已移除", + "已達到金鑰限制", + "已達到 60 個 FIDO 金鑰的限制。移除未使用的以新增", + "管理 FIDO 密钥", + "尚未有 FIDO 金鑰", + "使用 OneKey 裝置作為安全金鑰", + "註冊", + "將你的 OneKey 插入電腦", + "前往網站的安全設置(例如:Google、Facebook)", + "選擇 \"Add Security Key\" 選項", + "使用 OneKey 確認(需解鎖)", + "在 登入 時 選擇 \"Security Key\"", + "使用 OneKey 批准", + "認證", + "滑動解鎖", + "5 次嘗試失敗。 滑動以繼續", + "滑動以繼續", + "返回主頁", ] # fmt: on diff --git a/core/src/trezor/lvglui/lv_colors.py b/core/src/trezor/lvglui/lv_colors.py index f05b29f9d..f0d2c6f23 100644 --- a/core/src/trezor/lvglui/lv_colors.py +++ b/core/src/trezor/lvglui/lv_colors.py @@ -42,6 +42,8 @@ class lv_colors: ONEKEY_BLACK_2 = LV_COLOR_MAKE(0x1A, 0x1A, 0x1A) ONEKEY_BLACK_3 = LV_COLOR_MAKE(0x1E, 0x1E, 0x1E) ONEKEY_BLACK_4 = LV_COLOR_MAKE(0x0F, 0x0F, 0x0F) # slider main disable color + ONEKEY_BLACK_5 = LV_COLOR_MAKE(0x16, 0x16, 0x16) # arrow btn disable color + ONEKEY_GRAY = LV_COLOR_MAKE( 0x96, 0x96, 0x96 ) # cancel button disable text/ display item key switch enable border color diff --git a/core/src/trezor/lvglui/res/app-address.jpg b/core/src/trezor/lvglui/res/app-address.jpg new file mode 100644 index 000000000..f547005f2 Binary files /dev/null and b/core/src/trezor/lvglui/res/app-address.jpg differ diff --git a/core/src/trezor/lvglui/res/app-keys.jpg b/core/src/trezor/lvglui/res/app-keys.jpg new file mode 100644 index 000000000..71526efc2 Binary files /dev/null and b/core/src/trezor/lvglui/res/app-keys.jpg differ diff --git a/core/src/trezor/lvglui/res/app-tips.jpg b/core/src/trezor/lvglui/res/app-tips.jpg index 8398b90aa..964a139ef 100644 Binary files a/core/src/trezor/lvglui/res/app-tips.jpg and b/core/src/trezor/lvglui/res/app-tips.jpg differ diff --git a/core/src/trezor/lvglui/res/branches.png b/core/src/trezor/lvglui/res/branches.png new file mode 100644 index 000000000..a8f28757a Binary files /dev/null and b/core/src/trezor/lvglui/res/branches.png differ diff --git a/core/src/trezor/lvglui/res/btc-btc-48.png b/core/src/trezor/lvglui/res/btc-btc-48.png new file mode 100644 index 000000000..8940d1556 Binary files /dev/null and b/core/src/trezor/lvglui/res/btc-btc-48.png differ diff --git a/core/src/trezor/lvglui/res/chain-ada-48.png b/core/src/trezor/lvglui/res/chain-ada-48.png new file mode 100644 index 000000000..65074f54e Binary files /dev/null and b/core/src/trezor/lvglui/res/chain-ada-48.png differ diff --git a/core/src/trezor/lvglui/res/chain-alephium-48.png b/core/src/trezor/lvglui/res/chain-alephium-48.png new file mode 100644 index 000000000..ed660da4c Binary files /dev/null and b/core/src/trezor/lvglui/res/chain-alephium-48.png differ diff --git a/core/src/trezor/lvglui/res/chain-algo-48.png b/core/src/trezor/lvglui/res/chain-algo-48.png new file mode 100644 index 000000000..1f7e7caf8 Binary files /dev/null and b/core/src/trezor/lvglui/res/chain-algo-48.png differ diff --git a/core/src/trezor/lvglui/res/chain-apt-48.png b/core/src/trezor/lvglui/res/chain-apt-48.png new file mode 100644 index 000000000..af812c25a Binary files /dev/null and b/core/src/trezor/lvglui/res/chain-apt-48.png differ diff --git a/core/src/trezor/lvglui/res/chain-atom-48.png b/core/src/trezor/lvglui/res/chain-atom-48.png new file mode 100644 index 000000000..e391db59d Binary files /dev/null and b/core/src/trezor/lvglui/res/chain-atom-48.png differ diff --git a/core/src/trezor/lvglui/res/chain-cfx-48.png b/core/src/trezor/lvglui/res/chain-cfx-48.png new file mode 100644 index 000000000..e467ae80e Binary files /dev/null and b/core/src/trezor/lvglui/res/chain-cfx-48.png differ diff --git a/core/src/trezor/lvglui/res/chain-dot-48.png b/core/src/trezor/lvglui/res/chain-dot-48.png new file mode 100644 index 000000000..3f4ffd9ca Binary files /dev/null and b/core/src/trezor/lvglui/res/chain-dot-48.png differ diff --git a/core/src/trezor/lvglui/res/chain-fil-48.png b/core/src/trezor/lvglui/res/chain-fil-48.png new file mode 100644 index 000000000..b5f1f1cef Binary files /dev/null and b/core/src/trezor/lvglui/res/chain-fil-48.png differ diff --git a/core/src/trezor/lvglui/res/chain-kaspa-48.png b/core/src/trezor/lvglui/res/chain-kaspa-48.png new file mode 100644 index 000000000..a7901dc6d Binary files /dev/null and b/core/src/trezor/lvglui/res/chain-kaspa-48.png differ diff --git a/core/src/trezor/lvglui/res/chain-near-48.png b/core/src/trezor/lvglui/res/chain-near-48.png new file mode 100644 index 000000000..6b04dc28c Binary files /dev/null and b/core/src/trezor/lvglui/res/chain-near-48.png differ diff --git a/core/src/trezor/lvglui/res/chain-nervos-48.png b/core/src/trezor/lvglui/res/chain-nervos-48.png new file mode 100644 index 000000000..d26e6bf2c Binary files /dev/null and b/core/src/trezor/lvglui/res/chain-nervos-48.png differ diff --git a/core/src/trezor/lvglui/res/chain-nexa-48.png b/core/src/trezor/lvglui/res/chain-nexa-48.png new file mode 100644 index 000000000..a1f8e08dd Binary files /dev/null and b/core/src/trezor/lvglui/res/chain-nexa-48.png differ diff --git a/core/src/trezor/lvglui/res/chain-nostr-48.png b/core/src/trezor/lvglui/res/chain-nostr-48.png new file mode 100644 index 000000000..a301024e5 Binary files /dev/null and b/core/src/trezor/lvglui/res/chain-nostr-48.png differ diff --git a/core/src/trezor/lvglui/res/chain-scdo-48.png b/core/src/trezor/lvglui/res/chain-scdo-48.png new file mode 100644 index 000000000..7bdc8a40d Binary files /dev/null and b/core/src/trezor/lvglui/res/chain-scdo-48.png differ diff --git a/core/src/trezor/lvglui/res/chain-sol-48.png b/core/src/trezor/lvglui/res/chain-sol-48.png new file mode 100644 index 000000000..451121814 Binary files /dev/null and b/core/src/trezor/lvglui/res/chain-sol-48.png differ diff --git a/core/src/trezor/lvglui/res/chain-sui-48.png b/core/src/trezor/lvglui/res/chain-sui-48.png new file mode 100644 index 000000000..d3d8ac513 Binary files /dev/null and b/core/src/trezor/lvglui/res/chain-sui-48.png differ diff --git a/core/src/trezor/lvglui/res/chain-ton-48.png b/core/src/trezor/lvglui/res/chain-ton-48.png new file mode 100644 index 000000000..60be37d9d Binary files /dev/null and b/core/src/trezor/lvglui/res/chain-ton-48.png differ diff --git a/core/src/trezor/lvglui/res/chain-tron-48.png b/core/src/trezor/lvglui/res/chain-tron-48.png new file mode 100644 index 000000000..ef0a9a168 Binary files /dev/null and b/core/src/trezor/lvglui/res/chain-tron-48.png differ diff --git a/core/src/trezor/lvglui/res/chain-xem-48.png b/core/src/trezor/lvglui/res/chain-xem-48.png new file mode 100644 index 000000000..b20076cf6 Binary files /dev/null and b/core/src/trezor/lvglui/res/chain-xem-48.png differ diff --git a/core/src/trezor/lvglui/res/chain-xlm-48.png b/core/src/trezor/lvglui/res/chain-xlm-48.png new file mode 100644 index 000000000..814b0d558 Binary files /dev/null and b/core/src/trezor/lvglui/res/chain-xlm-48.png differ diff --git a/core/src/trezor/lvglui/res/chain-xrp-48.png b/core/src/trezor/lvglui/res/chain-xrp-48.png new file mode 100644 index 000000000..4cef3c55a Binary files /dev/null and b/core/src/trezor/lvglui/res/chain-xrp-48.png differ diff --git a/core/src/trezor/lvglui/res/evm-arb1-24.png b/core/src/trezor/lvglui/res/evm-arb1-24.png new file mode 100644 index 000000000..f28f8892b Binary files /dev/null and b/core/src/trezor/lvglui/res/evm-arb1-24.png differ diff --git a/core/src/trezor/lvglui/res/evm-avax-24.png b/core/src/trezor/lvglui/res/evm-avax-24.png new file mode 100644 index 000000000..b18af9145 Binary files /dev/null and b/core/src/trezor/lvglui/res/evm-avax-24.png differ diff --git a/core/src/trezor/lvglui/res/evm-bnb-24.png b/core/src/trezor/lvglui/res/evm-bnb-24.png new file mode 100644 index 000000000..f9c9e6c13 Binary files /dev/null and b/core/src/trezor/lvglui/res/evm-bnb-24.png differ diff --git a/core/src/trezor/lvglui/res/evm-eth-48.png b/core/src/trezor/lvglui/res/evm-eth-48.png new file mode 100644 index 000000000..615c3f152 Binary files /dev/null and b/core/src/trezor/lvglui/res/evm-eth-48.png differ diff --git a/core/src/trezor/lvglui/res/evm-matic-24.png b/core/src/trezor/lvglui/res/evm-matic-24.png new file mode 100644 index 000000000..03f3b6baa Binary files /dev/null and b/core/src/trezor/lvglui/res/evm-matic-24.png differ diff --git a/core/src/trezor/lvglui/res/group-icon-wallet.png b/core/src/trezor/lvglui/res/group-icon-wallet.png new file mode 100644 index 000000000..e7d3c9c36 Binary files /dev/null and b/core/src/trezor/lvglui/res/group-icon-wallet.png differ diff --git a/core/src/trezor/lvglui/res/point.png b/core/src/trezor/lvglui/res/point.png new file mode 100644 index 000000000..e4faa2516 Binary files /dev/null and b/core/src/trezor/lvglui/res/point.png differ diff --git a/core/src/trezor/lvglui/res/protection.png b/core/src/trezor/lvglui/res/protection.png new file mode 100644 index 000000000..ec184844c Binary files /dev/null and b/core/src/trezor/lvglui/res/protection.png differ diff --git a/core/src/trezor/lvglui/scrs/address.py b/core/src/trezor/lvglui/scrs/address.py new file mode 100644 index 000000000..65ff3a7ff --- /dev/null +++ b/core/src/trezor/lvglui/scrs/address.py @@ -0,0 +1,600 @@ +import storage.cache +from trezor import messages, wire +from trezor.enums import InputScriptType, MessageType +from trezor.lvglui.scrs import lv +from trezor.lvglui.scrs.template import ADDRESS_OFFLINE_RETURN_TYPE +from trezor.ui.layouts import show_address_offline + +from apps.workflow_handlers import find_registered_handler + +chain_list = [ + ( + MessageType.GetAddress, + { + "symbol": " BTC", + "name": "Bitcoin", + "msg_class": "GetAddress", + "index_pos": -3, + "legacy_path": [0x80000000 + 44, 0x80000000 + 0, 0x80000000 + 0, 0, 0], + "native_segwit_path": [ + 0x80000000 + 84, + 0x80000000 + 0, + 0x80000000 + 0, + 0, + 0, + ], + "nested_segwit_path": [ + 0x80000000 + 49, + 0x80000000 + 0, + 0x80000000 + 0, + 0, + 0, + ], + "taproot_path": [0x80000000 + 86, 0x80000000 + 0, 0x80000000 + 0, 0, 0], + "icon_96": "A:/res/btc-btc.png", + "icon_48": "A:/assets/addr/btc-btc-48.png", + "primary_color": 0xFF9C00, + }, + ), + ( + MessageType.EthereumGetAddressOneKey, + { + "symbol": " ETH", + "name": "Ethereum", + "msg_class": "EthereumGetAddressOneKey", + "index_pos": -1, + "ledger_pos": -3, + "base_path": [0x80000000 + 44, 0x80000000 + 60, 0x80000000 + 0, 0, 0], + "icon_96": "A:/res/evm-eth.png", + "icon_48": "A:/assets/addr/evm-eth-48.png", + "primary_color": 0x637FFF, + }, + ), + ( + MessageType.SolanaGetAddress, + { + "symbol": " SOL", + "name": "Solana", + "msg_class": "SolanaGetAddress", + "index_pos": -2, + "base_path": [ + 0x80000000 + 44, + 0x80000000 + 501, + 0x80000000 + 0, + 0x80000000 + 0, + ], + "icon_96": "A:/res/chain-sol.png", + "icon_48": "A:/assets/addr/chain-sol-48.png", + "primary_color": 0xC74AE3, + }, + ), + ( + MessageType.CardanoGetAddress, + { + "symbol": " ADA", + "name": "Cardano", + "msg_class": "CardanoGetAddress", + "index_pos": -3, + "base_path": [0x80000000 + 1852, 0x80000000 + 1815, 0x80000000 + 0, 0, 0], + "staking_path": [ + 0x80000000 + 1852, + 0x80000000 + 1815, + 0x80000000 + 0, + 2, + 0, + ], + "protocol_magic": 764824073, + "network_id": 1, + "icon_96": "A:/res/chain-ada.png", + "icon_48": "A:/assets/addr/chain-ada-48.png", + "primary_color": 0x2970FF, + }, + ), + ( + MessageType.TronGetAddress, + { + "symbol": " TRX", + "name": "Tron", + "msg_class": "TronGetAddress", + "index_pos": -1, + "base_path": [0x80000000 + 44, 0x80000000 + 195, 0x80000000 + 0, 0, 0], + "icon_96": "A:/res/chain-tron.png", + "icon_48": "A:/assets/addr/chain-tron-48.png", + "primary_color": 0xFF0013, + }, + ), + ( + MessageType.TonGetAddress, + { + "symbol": " TON", + "name": "TON", + "msg_class": "TonGetAddress", + "index_pos": -1, + "base_path": [0x80000000 + 44, 0x80000000 + 607, 0x80000000 + 0], + "icon_96": "A:/res/chain-ton.png", + "icon_48": "A:/assets/addr/chain-ton-48.png", + "primary_color": 0x0098EA, + }, + ), + ( + MessageType.SuiGetAddress, + { + "symbol": " SUI", + "name": "Sui", + "msg_class": "SuiGetAddress", + "index_pos": -3, + "base_path": [ + 0x80000000 + 44, + 0x80000000 + 784, + 0x80000000 + 0, + 0x80000000 + 0, + 0x80000000 + 0, + ], + "icon_96": "A:/res/chain-sui.png", + "icon_48": "A:/assets/addr/chain-sui-48.png", + "primary_color": 0x6FBCF0, + }, + ), + ( + MessageType.PolkadotGetAddress, + { + "symbol": " DOT", + "name": "Polkadot", + "msg_class": "PolkadotGetAddress", + "index_pos": -3, + "base_path": [ + 0x80000000 + 44, + 0x80000000 + 354, + 0x80000000 + 0, + 0x80000000 + 0, + 0x80000000 + 0, + ], + "icon_96": "A:/res/chain-dot.png", + "icon_48": "A:/assets/addr/chain-dot-48.png", + "primary_color": 0xE6007A, + }, + ), + ( + MessageType.NearGetAddress, + { + "symbol": " NEAR", + "name": "NEAR", + "msg_class": "NearGetAddress", + "index_pos": -1, + "base_path": [0x80000000 + 44, 0x80000000 + 397, 0x80000000 + 0], + "icon_96": "A:/res/chain-near.png", + "icon_48": "A:/assets/addr/chain-near-48.png", + "primary_color": 0xFFFFFF, + }, + ), + ( + MessageType.AptosGetAddress, + { + "symbol": " APT", + "name": "Aptos", + "msg_class": "AptosGetAddress", + "index_pos": -3, + "base_path": [ + 0x80000000 + 44, + 0x80000000 + 637, + 0x80000000 + 0, + 0x80000000 + 0, + 0x80000000 + 0, + ], + "icon_96": "A:/res/chain-apt.png", + "icon_48": "A:/assets/addr/chain-apt-48.png", + "primary_color": 0xFFFFFF, + }, + ), + ( + MessageType.KaspaGetAddress, + { + "symbol": " KAS", + "name": "Kaspa", + "msg_class": "KaspaGetAddress", + "index_pos": -1, + "base_path": [0x80000000 + 44, 0x80000000 + 111111, 0x80000000 + 0, 0, 0], + "icon_96": "A:/res/chain-kaspa.png", + "icon_48": "A:/assets/addr/chain-kaspa-48.png", + "primary_color": 0x55ECC7, + }, + ), + ( + MessageType.FilecoinGetAddress, + { + "symbol": " FIL", + "name": "Filecoin", + "msg_class": "FilecoinGetAddress", + "index_pos": -1, + "base_path": [0x80000000 + 44, 0x80000000 + 461, 0x80000000 + 0, 0, 0], + "icon_96": "A:/res/chain-fil.png", + "icon_48": "A:/assets/addr/chain-fil-48.png", + "primary_color": 0x0090FF, + }, + ), + ( + MessageType.AlephiumGetAddress, + { + "symbol": " ALPH", + "name": "Alephium", + "msg_class": "AlephiumGetAddress", + "index_pos": -3, + "base_path": [0x80000000 + 44, 0x80000000 + 1234, 0x80000000 + 0, 0, 0], + "icon_96": "A:/res/chain-alephium.png", + "icon_48": "A:/assets/addr/chain-alephium-48.png", + "primary_color": 0xFFFFFF, + }, + ), + ( + MessageType.AlgorandGetAddress, + { + "symbol": " ALGO", + "name": "Algorand", + "msg_class": "AlgorandGetAddress", + "index_pos": -1, + "base_path": [ + 0x80000000 + 44, + 0x80000000 + 283, + 0x80000000 + 0, + 0x80000000 + 0, + 0x80000000 + 0, + ], + "icon_96": "A:/res/chain-algo.png", + "icon_48": "A:/assets/addr/chain-algo-48.png", + "primary_color": 0xFFFFFF, + }, + ), + ( + MessageType.ConfluxGetAddress, + { + "symbol": " CFX", + "name": "Conflux", + "msg_class": "ConfluxGetAddress", + "index_pos": -1, + "base_path": [0x80000000 + 44, 0x80000000 + 503, 0x80000000 + 0, 0, 0], + "icon_96": "A:/res/chain-cfx.png", + "icon_48": "A:/assets/addr/chain-cfx-48.png", + "primary_color": 0xFFFFFF, + }, + ), + ( + MessageType.CosmosGetAddress, + { + "symbol": " ATOM", + "name": "Cosmos", + "msg_class": "CosmosGetAddress", + "index_pos": -1, + "base_path": [0x80000000 + 44, 0x80000000 + 118, 0x80000000 + 0, 0, 0], + "icon_96": "A:/res/chain-atom.png", + "icon_48": "A:/assets/addr/chain-atom-48.png", + "primary_color": 0xE0E0E0, + }, + ), + ( + MessageType.NervosGetAddress, + { + "symbol": " CKB", + "name": "Nervos", + "msg_class": "NervosGetAddress", + "index_pos": -1, + "base_path": [0x80000000 + 44, 0x80000000 + 309, 0x80000000 + 0, 0, 0], + "icon_96": "A:/res/chain-nervos.png", + "icon_48": "A:/assets/addr/chain-nervos-48.png", + "primary_color": 0xFFFFFF, + }, + ), + ( + MessageType.NexaGetAddress, + { + "symbol": " NEXA", + "name": "Nexa", + "msg_class": "NexaGetAddress", + "index_pos": -3, + "base_path": [0x80000000 + 44, 0x80000000 + 29223, 0x80000000 + 0, 0, 0], + "icon_96": "A:/res/chain-nexa.png", + "icon_48": "A:/assets/addr/chain-nexa-48.png", + "primary_color": 0xFFE144, + }, + ), + ( + MessageType.NostrGetPublicKey, + { + "symbol": " NOSTR", + "name": "Nostr", + "msg_class": "NostrGetPublicKey", + "index_pos": -3, + "base_path": [0x80000000 + 44, 0x80000000 + 1237, 0x80000000 + 0, 0, 0], + "icon_96": "A:/res/chain-nostr.png", + "icon_48": "A:/assets/addr/chain-nostr-48.png", + "primary_color": 0x8D45DD, + }, + ), + ( + MessageType.RippleGetAddress, + { + "symbol": " XRP", + "name": "Ripple", + "msg_class": "RippleGetAddress", + "index_pos": -3, + "base_path": [0x80000000 + 44, 0x80000000 + 144, 0x80000000 + 0, 0, 0], + "icon_96": "A:/res/chain-xrp.png", + "icon_48": "A:/assets/addr/chain-xrp-48.png", + "primary_color": 0xFFFFFF, + }, + ), + ( + MessageType.ScdoGetAddress, + { + "symbol": " SCDO", + "name": "SCDO", + "msg_class": "ScdoGetAddress", + "index_pos": -3, + "base_path": [0x80000000 + 44, 0x80000000 + 541, 0x80000000 + 0, 0, 0], + "icon_96": "A:/res/chain-scdo.png", + "icon_48": "A:/assets/addr/chain-scdo-48.png", + "primary_color": 0xFFFFFF, + }, + ), +] + + +class AddressManager: + """Core logic for handling address generation and display""" + + class STATE: + INIT = 0 + SHOW_ADDRESS = 1 + HANDLE_RESPONSE = 2 + UPDATE_ADDRESS = 3 + FINISH = 4 + ERROR = 5 + + def __init__(self): + self.current_handler = None + self.current_chain_info = None + self.current_index = 0 + self.btc_script_type = None + self.use_ledger_path = None + self.user_interaction = None + self.addr_type = None + self.prev_session_id = None + + def get_chain_info(self, msg_type) -> dict: + """Get chain configuration information""" + for mt, info in chain_list: + if mt == msg_type: + return info + raise wire.DataError("Chain info not found") + + def _prepare_btc_message(self): + """Prepare Bitcoin message""" + if self.current_chain_info is None: + raise wire.DataError("Chain info is None") + + if self.btc_script_type == InputScriptType.SPENDP2SHWITNESS: + path = self.current_chain_info["nested_segwit_path"][:] + self.addr_type = "Nested Segwit" + elif self.btc_script_type == InputScriptType.SPENDTAPROOT: + path = self.current_chain_info["taproot_path"][:] + self.addr_type = "Taproot" + elif self.btc_script_type == InputScriptType.SPENDWITNESS: + path = self.current_chain_info["native_segwit_path"][:] + self.addr_type = "Native Segwit" + elif self.btc_script_type == InputScriptType.SPENDADDRESS: + path = self.current_chain_info["legacy_path"][:] + self.addr_type = "Legacy" + else: + self.btc_script_type = InputScriptType.SPENDTAPROOT + path = self.current_chain_info["taproot_path"][:] + self.addr_type = "Taproot" + pos = self.current_chain_info["index_pos"] + path[pos] += self.current_index + + msg_class = getattr(messages, self.current_chain_info["msg_class"]) + return msg_class( + address_n=path, show_display=False, script_type=self.btc_script_type + ) + + def _prepare_eth_message(self): + """Prepare Ethereum message""" + if self.current_chain_info is None: + raise wire.DataError("Chain info is None") + + path = self.current_chain_info["base_path"][:] + if self.use_ledger_path is True: + pos = self.current_chain_info["ledger_pos"] + self.addr_type = "Ledger Live" + else: + pos = self.current_chain_info["index_pos"] + self.addr_type = "BIP44 Standard" + path[pos] += self.current_index + msg_class = getattr(messages, self.current_chain_info["msg_class"]) + return msg_class(address_n=path, show_display=False) + + def _prepare_ada_message(self): + """Prepare Cardano message""" + if self.current_chain_info is None: + raise wire.DataError("Chain info is None") + + path = self.current_chain_info["base_path"][:] + staking_path = self.current_chain_info["staking_path"][:] + pos = self.current_chain_info["index_pos"] + path[pos] += self.current_index + staking_path[pos] += self.current_index + self.addr_type = "BIP44 Standard" + + from trezor.messages import CardanoAddressParametersType + from trezor.enums import CardanoDerivationType, CardanoAddressType + + address_parameters = CardanoAddressParametersType( + address_type=CardanoAddressType.BASE, + address_n=path, + address_n_staking=staking_path, + ) + derivation_type = CardanoDerivationType.ICARUS + + storage.cache.end_current_session() + self.curr_session_id = storage.cache.start_session() + storage.cache.SESSION_DIRIVE_CARDANO = True + + msg_class = getattr(messages, self.current_chain_info["msg_class"]) + return msg_class( + show_display=False, + protocol_magic=764824073, + network_id=1, + address_parameters=address_parameters, + derivation_type=derivation_type, + ) + + def _prepare_dot_message(self): + """Prepare Polkadot message""" + if self.current_chain_info is None: + raise wire.DataError("Chain info is None") + + path = self.current_chain_info["base_path"][:] + pos = self.current_chain_info["index_pos"] + path[pos] += self.current_index + self.addr_type = "BIP44 Standard" + + msg_class = getattr(messages, self.current_chain_info["msg_class"]) + return msg_class( + address_n=path, show_display=False, network="polkadot", prefix=0 + ) + + def _prepare_ckb_message(self): + """Prepare Nervos message""" + if self.current_chain_info is None: + raise wire.DataError("Chain info is None") + + path = self.current_chain_info["base_path"][:] + pos = self.current_chain_info["index_pos"] + path[pos] += self.current_index + self.addr_type = "BIP44 Standard" + + msg_class = getattr(messages, self.current_chain_info["msg_class"]) + return msg_class(address_n=path, show_display=False, network="ckb") + + def _prepare_alephium_message(self): + """Prepare Alephium message""" + if self.current_chain_info is None: + raise wire.DataError("Chain info is None") + + path = self.current_chain_info["base_path"][:] + pos = self.current_chain_info["index_pos"] + path[pos] += self.current_index + self.addr_type = "BIP44 Standard" + + msg_class = getattr(messages, self.current_chain_info["msg_class"]) + return msg_class(address_n=path, show_display=False, target_group=0) + + def _prepare_nexa_message(self): + """Prepare Nexa message""" + if self.current_chain_info is None: + raise wire.DataError("Chain info is None") + + path = self.current_chain_info["base_path"][:] + pos = self.current_chain_info["index_pos"] + path[pos] += self.current_index + self.addr_type = "BIP44 Standard" + + msg_class = getattr(messages, self.current_chain_info["msg_class"]) + return msg_class(address_n=path, show_display=False, prefix="nexa") + + def _prepare_default_message(self): + """Prepare default chain message""" + if self.current_chain_info is None: + raise wire.DataError("Chain info is None") + + path = self.current_chain_info["base_path"][:] + pos = self.current_chain_info["index_pos"] + path[pos] += self.current_index + self.addr_type = "BIP44 Standard" + + msg_class = getattr(messages, self.current_chain_info["msg_class"]) + return msg_class(address_n=path, show_display=False) + + def _prepare_chain_message(self, msg_type): + """Prepare message object based on chain type""" + + if msg_type == MessageType.GetAddress: + return self._prepare_btc_message() + elif msg_type == MessageType.EthereumGetAddressOneKey: + return self._prepare_eth_message() + elif msg_type == MessageType.CardanoGetAddress: + return self._prepare_ada_message() + elif msg_type == MessageType.PolkadotGetAddress: + return self._prepare_dot_message() + elif msg_type == MessageType.NervosGetAddress: + return self._prepare_ckb_message() + elif msg_type == MessageType.AlephiumGetAddress: + return self._prepare_alephium_message() + else: + return self._prepare_default_message() + + async def generate_address(self, msg_type, index=0, ctx=None): + """Main logic for generating addresses""" + + ctx = wire.DummyContext() + + self.current_index = index + state = self.STATE.INIT + + while state not in (self.STATE.FINISH, self.STATE.ERROR): + + # pyright: off + if state == self.STATE.INIT: + handler = find_registered_handler(None, msg_type) + chain_info = self.get_chain_info(msg_type) + + self.current_handler = handler + self.current_chain_info = chain_info + + state = self.STATE.SHOW_ADDRESS + + elif state == self.STATE.SHOW_ADDRESS: + # Generate message + msg = self._prepare_chain_message(msg_type) + + address_resp = await self.current_handler(ctx, msg) + + ctx.primary_color = lv.color_hex( + self.current_chain_info["primary_color"] + ) + ctx.icon_path = self.current_chain_info["icon_96"] + + self.user_interaction = await show_address_offline( + ctx, + address=address_resp.address + if msg_type != MessageType.NostrGetPublicKey + else address_resp.npub, + network=self.current_chain_info["name"], + addr_type=self.addr_type, + account_name=f" Account #{self.current_index + 1}", + ) + state = self.STATE.HANDLE_RESPONSE + + elif state == self.STATE.HANDLE_RESPONSE: + # Handle user interaction results + if isinstance(self.user_interaction, tuple): + return_type, value = self.user_interaction + if return_type == ADDRESS_OFFLINE_RETURN_TYPE.ETH_LEDGER_PATH: + self.use_ledger_path = value + state = self.STATE.SHOW_ADDRESS + elif return_type == ADDRESS_OFFLINE_RETURN_TYPE.BTC_DERIVE_SCRIPTS: + self.btc_script_type = value + state = self.STATE.SHOW_ADDRESS + elif self.user_interaction == ADDRESS_OFFLINE_RETURN_TYPE.DONE: + state = self.STATE.FINISH + else: + state = self.STATE.ERROR + # pyright: on + + # Clean up + self.cleanup() + + def cleanup(self): + """Clean up state""" + self.current_handler = None + self.current_chain_info = None + self.user_interaction = None + self.addr_type = None diff --git a/core/src/trezor/lvglui/scrs/components/keyboard.py b/core/src/trezor/lvglui/scrs/components/keyboard.py index a4e400037..c639fa847 100644 --- a/core/src/trezor/lvglui/scrs/components/keyboard.py +++ b/core/src/trezor/lvglui/scrs/components/keyboard.py @@ -573,6 +573,245 @@ def event_cb(self, event): motor.vibrate() +class IndexKeyboard(lv.keyboard): + """number keyboard with textarea for account index.""" + + def __init__( + self, parent, max_len: int = 50, min_len: int = 4, is_pin: bool = True + ) -> None: + super().__init__(parent) + self.is_pin = is_pin + self.ta = lv.textarea(parent) + self.ta.align(lv.ALIGN.TOP_MID, 0, 188) + + self.ta.add_style( + StyleWrapper() + .bg_color(lv_colors.BLACK) + .border_width(0) + .width(lv.SIZE.CONTENT) + .max_width(432) + .text_font(font_GeistSemiBold48) + .text_color(lv_colors.WHITE) + .text_letter_space(6) + .text_align_center(), + 0, + ) + self.ta.set_one_line(True) + if self.is_pin: + self.ta.set_accepted_chars("0123456789") + else: + self.ta.set_accepted_chars("#0123456789") + self.ta.set_max_length(max_len) + self.max_len = max_len + self.min_len = min_len + self.ta.set_password_mode(is_pin) + self.ta.clear_flag(lv.obj.FLAG.CLICKABLE) + self.ta.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF) + self.nums = [i for i in range(10)] + if device.is_random_pin_map_enabled(): + random.shuffle(self.nums) + self.btnm_map = [ + str(self.nums[1]), + str(self.nums[2]), + str(self.nums[3]), + "\n", + str(self.nums[4]), + str(self.nums[5]), + str(self.nums[6]), + "\n", + str(self.nums[7]), + str(self.nums[8]), + str(self.nums[9]), + "\n", + lv.SYMBOL.BACKSPACE, + str(self.nums[0]), + lv.SYMBOL.OK, + "", + ] + self.dummy_btnm_map = [ + str(self.nums[1]), + str(self.nums[2]), + str(self.nums[3]), + "\n", + str(self.nums[4]), + str(self.nums[5]), + str(self.nums[6]), + "\n", + str(self.nums[7]), + str(self.nums[8]), + str(self.nums[9]), + "\n", + lv.SYMBOL.CLOSE, + str(self.nums[0]), + lv.SYMBOL.OK, + "", + ] + self.ctrl_map = [ + lv.btnmatrix.CTRL.NO_REPEAT + | lv.btnmatrix.CTRL.CLICK_TRIG + | lv.btnmatrix.CTRL.POPOVER + ] * 12 + self.ctrl_map[-1] = ( + lv.btnmatrix.CTRL.NO_REPEAT + | lv.btnmatrix.CTRL.DISABLED + | lv.btnmatrix.CTRL.CLICK_TRIG + | lv.btnmatrix.CTRL.POPOVER + ) + self.set_map(lv.keyboard.MODE.NUMBER, self.dummy_btnm_map, self.ctrl_map) + self.set_mode(lv.keyboard.MODE.NUMBER) + self.set_size(lv.pct(100), 472) + + self.add_style( + StyleWrapper().bg_color(lv_colors.BLACK).pad_hor(4).pad_gap(4), 0 + ) + self.add_style( + StyleWrapper() + .bg_color(lv_colors.ONEKEY_BLACK) + .radius(40) + .text_font(font_GeistSemiBold48), + lv.PART.ITEMS | lv.STATE.DEFAULT, + ) + self.add_style(StyleWrapper(), 0) + self.add_style( + StyleWrapper().bg_color(lv_colors.ONEKEY_GRAY_3) + # .transform_height(-2) + # .transform_width(-2) + # .transition(DefaultTransition()) + , + lv.PART.ITEMS | lv.STATE.PRESSED, + ) + self.add_style( + StyleWrapper() + .bg_color(lv_colors.ONEKEY_BLACK_1) + .text_color(lv_colors.ONEKEY_GRAY), + lv.PART.ITEMS | lv.STATE.DISABLED, + ) + + self.set_popovers(True) + self.align(lv.ALIGN.BOTTOM_MID, 0, -4) + self.set_textarea(self.ta) + + # self.input_count_tips = lv.label(parent) + # self.input_count_tips.align(lv.ALIGN.BOTTOM_MID, 0, -512) + # self.input_count_tips.add_style( + # StyleWrapper() + # .text_font(font_GeistRegular20) + # .text_letter_space(1) + # .text_color(lv_colors.LIGHT_GRAY), + # 0, + # ) + # self.input_count_tips.add_flag(lv.obj.FLAG.HIDDEN) + + self.add_event_cb(self.event_cb, lv.EVENT.DRAW_PART_BEGIN, None) + self.add_event_cb(self.event_cb, lv.EVENT.VALUE_CHANGED, None) + self.add_event_cb(self.event_cb, lv.EVENT.READY, None) + self.add_event_cb(self.event_cb, lv.EVENT.CANCEL, None) + self.previous_input_len = 0 + + # def update_count_tips(self): + # """Update/show tips only when input length larger than 10""" + # input_len = len(self.ta.get_text()) + # if input_len >= (self.max_len // 5 if self.max_len != 6 else 0): + # self.input_count_tips.set_text(f"{len(self.ta.get_text())}/{self.max_len}") + # if self.input_count_tips.has_flag(lv.obj.FLAG.HIDDEN): + # self.input_count_tips.clear_flag(lv.obj.FLAG.HIDDEN) + # else: + # if not self.input_count_tips.has_flag(lv.obj.FLAG.HIDDEN): + # self.input_count_tips.add_flag(lv.obj.FLAG.HIDDEN) + + def toggle_number_input_keys(self, enable: bool): + if enable: + self.dummy_ctl_map = [] + self.dummy_ctl_map.extend(self.ctrl_map) + + if self.is_pin: + if self.input_len >= self.min_len: + self.dummy_ctl_map[-1] &= ( + self.dummy_ctl_map[-1] ^ lv.btnmatrix.CTRL.DISABLED + ) + else: + if self.input_len > 0: + self.dummy_ctl_map[-1] &= ( + self.dummy_ctl_map[-1] ^ lv.btnmatrix.CTRL.DISABLED + ) + + if self.input_len > 0 or ( + not self.is_pin and self.ta.get_text().startswith("#") + ): + self.dummy_ctl_map[-3] = ( + lv.btnmatrix.CTRL.CLICK_TRIG | lv.btnmatrix.CTRL.POPOVER + ) + else: + self.set_map( + lv.keyboard.MODE.NUMBER, self.dummy_btnm_map, self.ctrl_map + ) + return + + self.set_map(lv.keyboard.MODE.NUMBER, self.btnm_map, self.dummy_ctl_map) + else: + self.dummy_ctl_map = [] + self.dummy_ctl_map.extend(self.ctrl_map) + for i in range(12): + if i not in (9, 11): + self.dummy_ctl_map[i] |= lv.btnmatrix.CTRL.DISABLED + elif i == 11: + self.dummy_ctl_map[-1] &= ( + self.dummy_ctl_map[-1] ^ lv.btnmatrix.CTRL.DISABLED + ) + self.set_map(lv.keyboard.MODE.NUMBER, self.btnm_map, self.dummy_ctl_map) + + def event_cb(self, event): + code = event.code + text = self.ta.get_text() + if not self.is_pin and text.startswith("#"): + input_len = len(text) - 1 + else: + input_len = len(text) + self.input_len = input_len + self.ta.clear_flag(lv.obj.FLAG.HIDDEN) + + if code == lv.EVENT.DRAW_PART_BEGIN: + dsc = lv.obj_draw_part_dsc_t.__cast__(event.get_param()) + if self.is_pin: + if input_len >= self.min_len: + change_key_bg(dsc, 9, 11, True) + elif input_len > 0: + change_key_bg(dsc, 9, 11, True, False) + else: + change_key_bg(dsc, 9, 11, False) + if dsc.id == 9: + dsc.rect_dsc.bg_color = lv_colors.ONEKEY_RED_1 + else: + if input_len > 0: + change_key_bg(dsc, 9, 11, True) + else: + change_key_bg(dsc, 9, 11, False) + if dsc.id == 9: + dsc.rect_dsc.bg_color = lv_colors.ONEKEY_RED_1 + + elif code == lv.EVENT.VALUE_CHANGED: + utils.lcd_resume() + motor.vibrate() + + if not self.is_pin: + if text and not text.startswith("#"): + self.ta.set_text("#" + text) + elif text == "": + self.ta.set_text("") + + if input_len + 1 >= self.max_len: + self.toggle_number_input_keys(False) + elif input_len > 0: + self.toggle_number_input_keys(True) + else: + self.set_map( + lv.keyboard.MODE.NUMBER, self.dummy_btnm_map, self.ctrl_map + ) + + # self.update_count_tips() + self.previous_input_len = input_len + + class PassphraseKeyboard(lv.btnmatrix): def __init__(self, parent, max_len) -> None: super().__init__(parent) diff --git a/core/src/trezor/lvglui/scrs/components/navigation.py b/core/src/trezor/lvglui/scrs/components/navigation.py index e8e6bc599..fb95e0aa3 100644 --- a/core/src/trezor/lvglui/scrs/components/navigation.py +++ b/core/src/trezor/lvglui/scrs/components/navigation.py @@ -6,8 +6,8 @@ class Navigation(lv.obj): def __init__(self, parent) -> None: super().__init__(parent) self.remove_style_all() - self.set_size(lv.pct(100), 72) - self.align(lv.ALIGN.TOP_MID, 0, 44) + self.set_size(lv.pct(50), 72) + self.align(lv.ALIGN.TOP_LEFT, 0, 44) self.add_style(StyleWrapper().pad_all(12), 0) self.nav_btn = lv.imgbtn(self) self.nav_btn.set_size(48, 48) @@ -16,3 +16,21 @@ def __init__(self, parent) -> None: self.nav_btn.add_flag(lv.obj.FLAG.EVENT_BUBBLE) self.nav_btn.add_style(StyleWrapper().bg_img_src("A:/res/nav-back.png"), 0) self.add_flag(lv.obj.FLAG.EVENT_BUBBLE) + + +class GeneralNavigation(lv.obj): + def __init__(self, parent, img: str = "A:/res/general.png") -> None: + super().__init__(parent) + self.remove_style_all() + + self.set_size(lv.pct(50), 72) + self.align(lv.ALIGN.TOP_RIGHT, 0, 44) + + self.select_btn = lv.imgbtn(self) + self.select_btn.set_size(48, 48) + self.select_btn.set_align(lv.ALIGN.RIGHT_MID) + self.select_btn.set_ext_click_area(100) + self.select_btn.add_flag(lv.obj.FLAG.EVENT_BUBBLE) + self.select_btn.add_style(StyleWrapper().bg_img_src(img), 0) + + self.add_flag(lv.obj.FLAG.EVENT_BUBBLE) diff --git a/core/src/trezor/lvglui/scrs/homescreen.py b/core/src/trezor/lvglui/scrs/homescreen.py index c856b3229..1eaa823d5 100644 --- a/core/src/trezor/lvglui/scrs/homescreen.py +++ b/core/src/trezor/lvglui/scrs/homescreen.py @@ -1,6 +1,8 @@ +import gc import math from micropython import const +import storage.cache from storage import device from trezor import io, loop, uart, utils, workflow from trezor.enums import SafetyCheckLevel @@ -23,6 +25,7 @@ from ..lv_symbols import LV_SYMBOLS from . import font_GeistRegular26, font_GeistRegular30, font_GeistSemiBold26 +from .address import AddressManager, chain_list from .common import FullSizeWindow, Screen, lv # noqa: F401, F403, F405 from .components.anim import Anim from .components.banner import LEVEL, Banner @@ -270,10 +273,24 @@ def __init__(self, parent) -> None: ) self.scan_desc.align_to(self.scan, lv.ALIGN.OUT_BOTTOM_MID, 0, 8) + self.address = lv.imgbtn(self) + self.address.set_size(216, 216) + self.address.align_to(self.connect, lv.ALIGN.OUT_BOTTOM_MID, 0, 77) + self.address.set_style_bg_img_src("A:/res/app-address.jpg", 0) + self.address.add_style(click_style, lv.PART.MAIN | lv.STATE.PRESSED) + self.address.add_flag(lv.obj.FLAG.EVENT_BUBBLE) + self.address_desc = lv.label(self) + self.address_desc.set_text(_(i18n_keys.APP__ADDRESS)) + self.address_desc.add_style(default_desc_style, 0) + self.address_desc.add_style( + pressed_desc_style, lv.PART.MAIN | lv.STATE.PRESSED + ) + self.address_desc.align_to(self.address, lv.ALIGN.OUT_BOTTOM_MID, 0, 8) + self.settings = lv.imgbtn(self) self.settings.set_size(216, 216) # self.settings.set_pos(16, 148) - self.settings.align_to(self.connect, lv.ALIGN.OUT_BOTTOM_MID, 0, 77) + self.settings.align_to(self.address, lv.ALIGN.OUT_RIGHT_MID, 16, 0) self.settings.set_style_bg_img_src("A:/res/app-settings.jpg", 0) self.settings.add_style(click_style, lv.PART.MAIN | lv.STATE.PRESSED) self.settings.add_flag(lv.obj.FLAG.EVENT_BUBBLE) @@ -285,20 +302,6 @@ def __init__(self, parent) -> None: ) self.settings_desc.align_to(self.settings, lv.ALIGN.OUT_BOTTOM_MID, 0, 8) - self.guide = lv.imgbtn(self) - self.guide.set_size(216, 216) - self.guide.align_to(self.settings, lv.ALIGN.OUT_RIGHT_MID, 16, 0) - self.guide.set_style_bg_img_src("A:/res/app-tips.jpg", 0) - self.guide.add_style(click_style, lv.PART.MAIN | lv.STATE.PRESSED) - self.guide.add_flag(lv.obj.FLAG.EVENT_BUBBLE) - self.guide_desc = lv.label(self) - self.guide_desc.set_text(_(i18n_keys.APP__TIPS)) - self.guide_desc.add_style(default_desc_style, 0) - self.guide_desc.add_style( - pressed_desc_style, lv.PART.MAIN | lv.STATE.PRESSED - ) - self.guide_desc.align_to(self.guide, lv.ALIGN.OUT_BOTTOM_MID, 0, 8) - self.nft = lv.imgbtn(self) self.nft.set_size(216, 216) self.nft.set_pos(16, 148) @@ -328,6 +331,21 @@ def __init__(self, parent) -> None: self.backup_desc.align_to(self.backup, lv.ALIGN.OUT_BOTTOM_MID, 0, 8) self.backup.add_flag(lv.obj.FLAG.HIDDEN) self.backup_desc.add_flag(lv.obj.FLAG.HIDDEN) + + self.guide = lv.imgbtn(self) + self.guide.set_size(216, 216) + self.guide.align_to(self.nft, lv.ALIGN.OUT_BOTTOM_MID, 0, 77) + self.guide.set_style_bg_img_src("A:/res/app-tips.jpg", 0) + self.guide.add_style(click_style, lv.PART.MAIN | lv.STATE.PRESSED) + self.guide.add_flag(lv.obj.FLAG.EVENT_BUBBLE) + self.guide_desc = lv.label(self) + self.guide_desc.set_text(_(i18n_keys.APP__TIPS)) + self.guide_desc.add_style(default_desc_style, 0) + self.guide_desc.add_style( + pressed_desc_style, lv.PART.MAIN | lv.STATE.PRESSED + ) + self.guide_desc.align_to(self.guide, lv.ALIGN.OUT_BOTTOM_MID, 0, 8) + self.add_event_cb(self.on_click, lv.EVENT.CLICKED, None) self.add_event_cb(self.on_pressed, lv.EVENT.PRESSED, None) self.add_event_cb(self.on_released, lv.EVENT.RELEASED, None) @@ -375,8 +393,8 @@ def __init__(self, parent) -> None: self.scan_desc, self.connect, self.connect_desc, - self.guide, - self.guide_desc, + self.address, + self.address_desc, self.img_down, ] self.group_2 = [ @@ -385,6 +403,8 @@ def __init__(self, parent) -> None: self.nft_desc, self.backup, self.backup_desc, + self.guide, + self.guide_desc, self.img_down, ] @@ -492,6 +512,8 @@ def on_click(self, event_obj): ScanScreen(self.parent) elif target == self.connect: ConnectWalletWays(self.parent) + elif target == self.address: + ShowAddress(self.parent) elif target == self.img_down: self.dismiss() @@ -505,6 +527,8 @@ def on_pressed(self, event_obj): self.settings_desc.add_state(lv.STATE.PRESSED) elif target == self.guide: self.guide_desc.add_state(lv.STATE.PRESSED) + elif target == self.address: + self.address_desc.add_state(lv.STATE.PRESSED) elif target == self.nft: self.nft_desc.add_state(lv.STATE.PRESSED) elif target == self.backup: @@ -524,6 +548,8 @@ def on_released(self, event_obj): self.settings_desc.clear_state(lv.STATE.PRESSED) elif target == self.guide: self.guide_desc.clear_state(lv.STATE.PRESSED) + elif target == self.address: + self.address_desc.clear_state(lv.STATE.PRESSED) elif target == self.nft: self.nft_desc.clear_state(lv.STATE.PRESSED) elif target == self.backup: @@ -537,12 +563,404 @@ def refresh_text(self): # self.tips.set_text(_(i18n_keys.CONTENT__SWIPE_DOWN_TO_CLOSE)) self.settings_desc.set_text(_(i18n_keys.APP__SETTINGS)) self.guide_desc.set_text(_(i18n_keys.APP__TIPS)) + self.address_desc.set_text(_(i18n_keys.APP__ADDRESS)) self.nft_desc.set_text(_(i18n_keys.APP__NFT_GALLERY)) self.backup_desc.set_text(_(i18n_keys.APP__BACK_UP)) self.scan_desc.set_text(_(i18n_keys.APP__SCAN)) self.connect_desc.set_text(_(i18n_keys.APP__CONNECT_WALLET)) +class ShowAddress(Screen): + def __init__(self, prev_scr=None): + if not hasattr(self, "_init"): + self._init = True + self.current_index = 0 + kwargs = { + "prev_scr": prev_scr, + "title": _(i18n_keys.TITLE__SELECT_NETWORK), + "nav_back": True, + } + super().__init__(**kwargs) + + self.init_ui() + + self.prev_session_id = storage.cache.get_session_id() + self.curr_session_id = storage.cache.start_session() + gc.collect() + + else: + self.container.delete() + self.init_ui() + gc.collect() + + def init_ui(self): + """Initialize UI components""" + self.container = ContainerFlexCol( + self.content_area, self.title, padding_row=2, pos=(0, 157) + ) + + # Initialize variables + self.chains = chain_list + self.visible_chains_count = 8 + self.is_expanded = False + self.chain_buttons = [] + self.created_count = 0 + + # Account button + self.index_btn = ListItemBtn( + self.content_area, + f" Account #{self.current_index + 1}", + left_img_src="A:/res/wallet.png", + has_next=False, + ) + self.index_btn.align_to(self.title, lv.ALIGN.BOTTOM_MID, 0, 145) + self.index_btn.set_style_radius(40, 0) + self.index_btn.add_event_cb(self.on_index_click, lv.EVENT.CLICKED, None) + + self._create_visible_chain_buttons() + + self._create_expand_button() + + def _create_visible_chain_buttons(self): + """Create visible chain buttons""" + for i in range(min(self.visible_chains_count, len(self.chains))): + msg_type, chain_info = self.chains[i] + + btn = ListItemBtn( + self.container, + f" {chain_info['name']}", + left_img_src=chain_info["icon_48"], + has_next=False, + ) + + # add ecosystem icons for eth + if chain_info["name"] == "Ethereum": + btn.label_left.align_to(btn.img_left, lv.ALIGN.OUT_RIGHT_MID, 16, -9) + + btn.eco_icon_1 = lv.img(btn) + btn.eco_icon_1.set_src("A:/assets/addr/evm-bnb-24.png") + btn.eco_icon_1.align_to(btn.img_left, lv.ALIGN.OUT_RIGHT_MID, 22, 27) + + btn.eco_icon_2 = lv.img(btn) + btn.eco_icon_2.set_src("A:/assets/addr/evm-matic-24.png") + btn.eco_icon_2.align_to(btn.eco_icon_1, lv.ALIGN.OUT_RIGHT_MID, 4, 0) + + btn.eco_icon_3 = lv.img(btn) + btn.eco_icon_3.set_src("A:/assets/addr/evm-arb1-24.png") + btn.eco_icon_3.align_to(btn.eco_icon_2, lv.ALIGN.OUT_RIGHT_MID, 4, 0) + + btn.eco_icon_4 = lv.img(btn) + btn.eco_icon_4.set_src("A:/assets/addr/evm-avax-24.png") + btn.eco_icon_4.align_to(btn.eco_icon_3, lv.ALIGN.OUT_RIGHT_MID, 4, 0) + + btn.eco_icon_5 = lv.img(btn) + btn.eco_icon_5.set_src("A:/assets/addr/point.png") + btn.eco_icon_5.align_to(btn.eco_icon_4, lv.ALIGN.OUT_RIGHT_MID, 6, 8) + + btn.add_style( + StyleWrapper().pad_ver(20), + 0, + ) + + btn.add_event_cb( + lambda e, mt=msg_type: self.on_chain_click(e, mt), + lv.EVENT.CLICKED, + None, + ) + self.chain_buttons.append(btn) + self.created_count += 1 + + def _create_expand_button(self): + self.expand_btn = ListItemBtn( + self.container, + _(i18n_keys.BUTTON__MORE_NETWORKS), + left_img_src="A:/assets/addr/btn-doubledown.png", + has_next=False, + ) + + self.expand_btn.label_left.set_width(lv.SIZE.CONTENT) + self.expand_btn.label_left.align(lv.ALIGN.CENTER, 16, 0) + self.expand_btn.img_left.align_to( + self.expand_btn.label_left, lv.ALIGN.OUT_LEFT_MID, -16, 0 + ) + + self.expand_btn.add_event_cb(self.on_expand_click, lv.EVENT.CLICKED, None) + + def on_index_click(self, event): + """Handle account selection click""" + IndexSelectionScreen(self) + + def on_chain_click(self, event, msg_type): + """Handle chain selection click""" + if utils.lcd_resume(): + return + + addr_manager = AddressManager() + + workflow.spawn(addr_manager.generate_address(msg_type, self.current_index)) + + def update_index_btn_text(self): + """Update account button text""" + self.index_btn.label_left.set_text(f"Account #{self.current_index + 1}") + + def on_expand_click(self, event): + """Handle expand/collapse button click""" + self.is_expanded = not self.is_expanded + + if self.is_expanded: + self._handle_expand() + else: + self._handle_collapse() + + def _handle_expand(self): + """Handle expand operation""" + self.expand_btn.delete() + + if self.created_count < len(self.chains): + for i in range(self.created_count, len(self.chains)): + msg_type, chain_info = self.chains[i] + btn = ListItemBtn( + self.container, + f" {chain_info['name']}", + left_img_src=chain_info["icon_48"], + has_next=False, + ) + btn.add_event_cb( + lambda e, mt=msg_type: self.on_chain_click(e, mt), + lv.EVENT.CLICKED, + None, + ) + self.chain_buttons.append(btn) + self.created_count = len(self.chains) + + self.expand_btn = ListItemBtn( + self.container, + _(i18n_keys.BUTTON__LESS_NETWORKS), + left_img_src="A:/assets/addr/btn-doubleup.png", + has_next=False, + ) + + self.expand_btn.label_left.set_width(lv.SIZE.CONTENT) + self.expand_btn.label_left.align(lv.ALIGN.CENTER, 16, 0) + self.expand_btn.img_left.align_to( + self.expand_btn.label_left, lv.ALIGN.OUT_LEFT_MID, -16, 0 + ) + + self.expand_btn.add_event_cb(self.on_expand_click, lv.EVENT.CLICKED, None) + + for btn in self.chain_buttons[self.visible_chains_count :]: + btn.clear_flag(lv.obj.FLAG.HIDDEN) + + gc.collect() + + def _handle_collapse(self): + """Handle collapse operation""" + self.content_area.scroll_to(0, 500, lv.ANIM.ON) + for btn in self.chain_buttons[self.visible_chains_count :]: + btn.add_flag(lv.obj.FLAG.HIDDEN) + + self.expand_btn.label_left.set_text(_(i18n_keys.BUTTON__MORE_NETWORKS)) + self.expand_btn.img_left.set_src("A:/assets/addr/btn-doubledown.png") + + self.expand_btn.label_left.set_width(lv.SIZE.CONTENT) + self.expand_btn.label_left.align(lv.ALIGN.CENTER, 16, 0) + self.expand_btn.img_left.align_to( + self.expand_btn.label_left, lv.ALIGN.OUT_LEFT_MID, -16, 0 + ) + + def eventhandler(self, event_obj): + event = event_obj.code + target = event_obj.get_target() + if event == lv.EVENT.CLICKED: + if utils.lcd_resume(): + return + if isinstance(target, lv.imgbtn): + if target == self.nav_back.nav_btn: + storage.cache.end_current_session() + storage.cache.start_session(self.prev_session_id) + if self.prev_scr is not None: + self.load_screen(self.prev_scr, destroy_self=True) + else: + if hasattr(self, "btn") and target == self.btn: + self.on_click(target) + + def _load_scr(self, scr: "Screen", back: bool = False) -> None: + lv.scr_load(scr) + + +class IndexSelectionScreen(Screen): + def __init__(self, prev_scr=None): + if not hasattr(self, "_init"): + self._init = True + super().__init__( + prev_scr, title=_(i18n_keys.TITLE__SELECT_ACCOUNT), nav_back=True + ) + + from .components.navigation import GeneralNavigation + + # # navi + self.nav_opt = GeneralNavigation(self.content_area) + + self.container = ContainerFlexCol(self.content_area, self.title, padding_row=2) + + self.current_account = self.prev_scr.current_index + 1 + self.current_page = (self.current_account - 1) // 5 + + # account select btn + self.account_btns = [] + for _i in range(5): + btn = ListItemBtn( + self.container, + "", + ) + btn.add_check_img() + self.account_btns.append(btn) + self.update_account_buttons() + + self.placeholder = ListItemBtn( + self.content_area, + "", + has_next=False, + ) + + self.placeholder.align_to(self.container, lv.ALIGN.OUT_BOTTOM_MID, 0, 12) + self.placeholder.add_style( + StyleWrapper().bg_opa(lv.OPA.TRANSP).text_opa(lv.OPA.TRANSP), 0 + ) + + self.bottom_panel = lv.obj(self) + self.bottom_panel.set_size(lv.pct(100), 115) + self.bottom_panel.align(lv.ALIGN.BOTTOM_MID, 0, 0) + self.bottom_panel.set_style_bg_color(lv_colors.BLACK, 0) + self.bottom_panel.set_style_border_width(0, 0) + self.bottom_panel.set_style_pad_all(0, 0) + self.bottom_panel.clear_flag(lv.obj.FLAG.CLICKABLE) + + self.next_btn = NormalButton(self, "") + self.next_btn.set_size(231, 98) + self.next_btn.align(lv.ALIGN.BOTTOM_RIGHT, -8, -8) + self.next_btn.set_style_bg_img_src("A:/res/arrow-right-2.png", 0) + + self.back_btn = NormalButton(self, "") + self.back_btn.set_size(231, 98) + self.back_btn.align(lv.ALIGN.BOTTOM_LEFT, 8, -8) + self.back_btn.set_style_bg_img_src("A:/res/arrow-left-2.png", 0) + + self.bottom_panel.move_foreground() + self.next_btn.move_foreground() + self.back_btn.move_foreground() + + self.disable_style = ( + StyleWrapper() + .bg_img_recolor(lv_colors.ONEKEY_GRAY_1) + .bg_img_recolor_opa(lv.OPA.COVER) + ) + self.enable_style = StyleWrapper().bg_img_recolor_opa(lv.OPA.TRANSP) + + self.update_page_buttons() + + def get_page_start(self): + return (self.current_page * 5) + 1 + + def update_account_buttons(self): + page_start = self.get_page_start() + for i, btn in enumerate(self.account_btns): + account_num = page_start + i + btn.label_left.set_text(f"Account #{account_num}") + + if account_num == self.current_account: + btn.set_checked() + else: + btn.set_uncheck() + + def update_page_buttons(self): + if self.current_page == 0: + self.back_btn.disable(bg_color=lv_colors.ONEKEY_BLACK_5) + self.back_btn.add_style(self.disable_style, 0) + elif self.current_page == 199999999: + self.next_btn.disable(bg_color=lv_colors.ONEKEY_BLACK_5) + self.next_btn.add_style(self.disable_style, 0) + else: + if not self.next_btn.has_flag(lv.btn.FLAG.CLICKABLE): + self.next_btn.enable() + self.next_btn.add_style(self.enable_style, 0) + if not self.back_btn.has_flag(lv.btn.FLAG.CLICKABLE): + self.back_btn.enable() + self.back_btn.add_style(self.enable_style, 0) + gc.collect() + + def next_page(self): + self.current_page += 1 + self.update_account_buttons() + self.update_page_buttons() + + def prev_page(self): + if self.current_page > 0: + self.current_page -= 1 + self.update_account_buttons() + self.update_page_buttons() + + def eventhandler(self, event_obj): + event = event_obj.code + target = event_obj.get_target() + if event == lv.EVENT.CLICKED: + if utils.lcd_resume(): + return + + if isinstance(target, lv.imgbtn): + if target == self.nav_back.nav_btn: + if self.prev_scr is not None: + self.load_screen(self.prev_scr, destroy_self=True) + elif target == self.nav_opt.select_btn: + workflow.spawn(self.type_account_index()) + else: + if target == self.back_btn: + self.prev_page() + elif target == self.next_btn: + self.next_page() + else: + for i, btn in enumerate(self.account_btns): + if target == btn: + for other_btn in self.account_btns: + other_btn.set_uncheck() + + btn.set_checked() + + self.current_account = self.get_page_start() + i + self.prev_scr.current_index = self.current_account - 1 + self.prev_scr.update_index_btn_text() + break + + async def type_account_index(self): + from trezor.lvglui.scrs.pinscreen import InputNum + + result = None + while True: + numscreen = InputNum( + title=_(i18n_keys.TITLE__SET_INITIAL_ACCOUNT), + subtitle=_(i18n_keys.TITLE__SET_INITIAL_ACCOUNT_ERROR) + if result is not None + else "", + is_pin=False, + ) + result = await numscreen.request() + + if not result: # user cancelled + return + + account_num = int(result) + if 1 <= account_num <= 1000000000: + break + + self.current_account = account_num + self.current_page = (account_num - 1) // 5 + self.prev_scr.current_index = account_num - 1 + self.prev_scr.update_index_btn_text() + + self.update_account_buttons() + self.update_page_buttons() + + class NftGallery(Screen): def __init__(self, prev_scr=None): if not hasattr(self, "_init"): @@ -1394,7 +1812,6 @@ def __init__( ) self.content_area.set_style_max_height(684, 0) self.add_nav_back() - import gc gc.collect() gc.threshold(int(18248 * 1.5)) # type: ignore["threshold" is not a known member of module] diff --git a/core/src/trezor/lvglui/scrs/pinscreen.py b/core/src/trezor/lvglui/scrs/pinscreen.py index ea81eef63..9585d7302 100644 --- a/core/src/trezor/lvglui/scrs/pinscreen.py +++ b/core/src/trezor/lvglui/scrs/pinscreen.py @@ -5,7 +5,7 @@ from .common import FullSizeWindow, lv, lv_colors # noqa: F401,F403 from .components.button import NormalButton from .components.container import ContainerFlexCol -from .components.keyboard import NumberKeyboard +from .components.keyboard import IndexKeyboard, NumberKeyboard from .components.listitem import ListItemWithLeadingCheckbox from .widgets.style import StyleWrapper @@ -71,6 +71,98 @@ def eventhandler(self, event_obj: lv.event_t): self.btn.disable() +class InputNum(FullSizeWindow): + _instance = None + + @classmethod + def get_window_if_visible(cls) -> "InputNum" | None: + return ( + cls._instance + if (cls._instance is not None and cls._instance.is_visible()) + else None + ) + + def __init__(self, **kwargs): + super().__init__( + title=kwargs.get("title") or _(i18n_keys.TITLE__ENTER_PIN), + subtitle=kwargs.get("subtitle", ""), + anim_dir=0, + ) + self.__class__._instance = self + + self.title.add_style( + StyleWrapper() + .text_font(font_GeistSemiBold48) + .text_align_center() + .text_letter_space(0), + 0, + ) + self.title.align(lv.ALIGN.TOP_MID, 0, 24) + + if self.subtitle.get_text() != "": + self.subtitle.add_style( + StyleWrapper().text_font(font_GeistRegular26) + # .max_width(310) + .max_width(368) + .text_color(lv_colors.WHITE) + .bg_color(lv_colors.ONEKEY_RED_2) + .bg_opa(lv.OPA.COVER) + .pad_hor(8) + .pad_ver(16) + .radius(40) + .text_align_center(), + 0, + ) + # self.subtitle.add_style( + # StyleWrapper() + # .text_font(font_GeistRegular26) + # .max_width(368) + # .text_color(lv_colors.ONEKEY_RED_1) + # .text_align_center(), + # 0, + # ) + + title_height = self.title.get_height() + subtitle_y = 40 if title_height > 60 else 70 + self.subtitle.align_to(self.title, lv.ALIGN.OUT_BOTTOM_MID, 0, subtitle_y) + self.subtitle.move_foreground() + + self.clear_flag(lv.obj.FLAG.SCROLLABLE) + self.keyboard = IndexKeyboard( + self, min_len=1, max_len=11, is_pin=kwargs.get("is_pin", True) + ) + self.keyboard.add_event_cb(self.on_event, lv.EVENT.READY, None) + self.keyboard.add_event_cb(self.on_event, lv.EVENT.CANCEL, None) + self.keyboard.add_event_cb(self.on_event, lv.EVENT.VALUE_CHANGED, None) + + self.keyboard.ta.add_style( + StyleWrapper().bg_opa(lv.OPA.TRANSP), + 0, + ) + + def on_event(self, event_obj): + code = event_obj.code + if code == lv.EVENT.VALUE_CHANGED: + utils.lcd_resume() + if self.keyboard.ta.get_text() != "": + self.subtitle.set_text("") + self.subtitle.remove_style_all() + + return + elif code == lv.EVENT.READY: + input = self.keyboard.ta.get_text() + if input.startswith("#"): + input = input[1:] + if len(input) < 1: + return + self.channel.publish(input) + elif code == lv.EVENT.CANCEL: + self.channel.publish(0) + + self.clean() + self.destroy(500) + + class InputPin(FullSizeWindow): _instance = None @@ -107,7 +199,35 @@ def __init__(self, **kwargs): .text_align_center(), 0, ) - self.subtitle.align_to(self.title, lv.ALIGN.OUT_BOTTOM_MID, 0, 8) + + if self.subtitle.get_text() != "": + self.subtitle.add_style( + StyleWrapper().text_font(font_GeistRegular26) + # .max_width(310) + .text_color(lv_colors.WHITE) + .bg_color(lv_colors.ONEKEY_RED_2) + .bg_opa(lv.OPA.COVER) + .pad_hor(8) + .pad_ver(16) + .radius(40) + .text_align_center(), + 0, + ) + # self.subtitle.add_style( + # StyleWrapper() + # .text_font(font_GeistRegular26) + # .max_width(368) + # .text_color(lv_colors.ONEKEY_RED_1) + # .text_align_center(), + # 0, + # ) + + title_height = self.title.get_height() + subtitle_y = 40 if title_height > 60 else 70 + self.subtitle.align_to(self.title, lv.ALIGN.OUT_BOTTOM_MID, 0, subtitle_y) + self.subtitle.move_foreground() + + # self.subtitle.align_to(self.title, lv.ALIGN.OUT_BOTTOM_MID, 0, 8) self._show_fingerprint_prompt_if_necessary() self.clear_flag(lv.obj.FLAG.SCROLLABLE) self.keyboard = NumberKeyboard(self) @@ -115,6 +235,11 @@ def __init__(self, **kwargs): self.keyboard.add_event_cb(self.on_event, lv.EVENT.CANCEL, None) self.keyboard.add_event_cb(self.on_event, lv.EVENT.VALUE_CHANGED, None) + self.keyboard.ta.add_style( + StyleWrapper().bg_opa(lv.OPA.TRANSP), + 0, + ) + def _show_fingerprint_prompt_if_necessary(self): from . import fingerprints @@ -133,6 +258,7 @@ def on_event(self, event_obj): utils.lcd_resume() if self.keyboard.ta.get_text() != "": self.subtitle.set_text("") + self.subtitle.remove_style_all() return elif code == lv.EVENT.READY: input = self.keyboard.ta.get_text() diff --git a/core/src/trezor/lvglui/scrs/template.py b/core/src/trezor/lvglui/scrs/template.py index d68b7a491..4ff29a34c 100644 --- a/core/src/trezor/lvglui/scrs/template.py +++ b/core/src/trezor/lvglui/scrs/template.py @@ -1,6 +1,7 @@ import utime from trezor import utils +from trezor.enums import InputScriptType from trezor.lvglui.scrs.components.button import NormalButton from trezor.lvglui.scrs.components.pageable import PageAbleMessage @@ -16,7 +17,8 @@ font_GeistSemiBold48, ) from .common import FullSizeWindow, lv -from .components.banner import Banner +from .components.banner import LEVEL, Banner +from .components.button import ListItemBtn from .components.container import ContainerFlexCol from .components.listitem import CardHeader, CardItem, DisplayItem from .components.qrcode import QRCode @@ -87,6 +89,7 @@ def show_address(self, evm_chain_id: int | None = None): .text_color(lv_colors.LIGHT_GRAY), 0, ) + self.item_addr.align_to(self.title, lv.ALIGN.OUT_BOTTOM_LEFT, 0, 40) self.container = ContainerFlexCol( @@ -173,6 +176,312 @@ def eventhandler(self, event_obj): self.channel.publish(1) +class BTCDeriveSelectionScreen(FullSizeWindow): + def __init__(self, prev_scr=None, addr_type=None, net_scr=None): + super().__init__( + _(i18n_keys.TITLE__SELECT_DERIVATION_PATH), + None, + confirm_text="", + cancel_text="", + anim_dir=2, + ) + self.prev_scr = prev_scr + self.net_scr = net_scr + + self.add_nav_back() + + # Create derivation option buttons + self.derive_options = [ + ("Nested Segwit", InputScriptType.SPENDP2SHWITNESS), + ("Taproot", InputScriptType.SPENDTAPROOT), + ("Native Segwit", InputScriptType.SPENDWITNESS), + ("Legacy", InputScriptType.SPENDADDRESS), + ] + + self.container = ContainerFlexCol(self.content_area, self.title, padding_row=2) + + # Create buttons and set checked state + self.option_btns = [] + for text, type_value in self.derive_options: + btn = ListItemBtn( + self.container, + text, + has_next=False, + ) + btn.add_check_img() + if text == addr_type: + btn.set_checked() + self.selected_type = type_value + self.origin_type = type_value + self.option_btns.append(btn) + + def eventhandler(self, event_obj): + code = event_obj.code + target = event_obj.get_target() + + if code == lv.EVENT.CLICKED: + if utils.lcd_resume(): + return + + if isinstance(target, lv.imgbtn): + if target == self.nav_back.nav_btn: + if self.prev_scr is not None: + self.prev_scr.btc_derive_changed(self.selected_type) + self.destroy(50) + + else: + for i, btn in enumerate(self.option_btns): + if target == btn: + for other_btn in self.option_btns: + other_btn.set_uncheck() + + btn.set_checked() + self.selected_type = self.derive_options[i][1] + + +class ETHDeriveSelectionScreen(FullSizeWindow): + def __init__(self, prev_scr=None, addr_type=None): + super().__init__( + _(i18n_keys.TITLE__SELECT_DERIVATION_PATH), + None, + confirm_text="", + cancel_text="", + anim_dir=2, + ) + self.prev_scr = prev_scr + + self.add_nav_back() + + # Create derivation option buttons + self.derive_options = [ + ("BIP44 Standard", False), + ("Ledger Live", True), + ] + + self.container = ContainerFlexCol(self.content_area, self.title, padding_row=2) + + # Create buttons and set checked state + self.option_btns = [] + for text, type_value in self.derive_options: + btn = ListItemBtn( + self.container, + text, + has_next=False, + ) + btn.add_check_img() + if text == addr_type: + btn.set_checked() + self.selected_type = type_value + self.option_btns.append(btn) + + def eventhandler(self, event_obj): + code = event_obj.code + target = event_obj.get_target() + + if code == lv.EVENT.CLICKED: + if utils.lcd_resume(): + return + + if isinstance(target, lv.imgbtn): + if target == self.nav_back.nav_btn: + if self.prev_scr is not None: + self.prev_scr.eth_derive_changed(self.selected_type) + self.destroy(50) + + else: + for i, btn in enumerate(self.option_btns): + if target == btn: + for other_btn in self.option_btns: + other_btn.set_uncheck() + + btn.set_checked() + self.selected_type = self.derive_options[i][1] + + +class ADDRESS_OFFLINE_RETURN_TYPE: + DONE = 0 + ETH_LEDGER_PATH = 1 + BTC_DERIVE_SCRIPTS = 2 + + +class AddressOffline(FullSizeWindow): + class SHOW_TYPE: + ADDRESS = 0 + QRCODE = 1 + + def __init__( + self, + title, + address, + primary_color, + icon_path: str, + xpubs=None, + address_qr=None, + multisig_index: int | None = 0, + addr_type=None, + evm_chain_id: int | None = None, + qr_first: bool = False, + network: str = "", + prev_scr=None, + account_name: str = "", + ): + super().__init__( + title, + None, + confirm_text=_(i18n_keys.BUTTON__DONE), + cancel_text=_(i18n_keys.BUTTON__QRCODE) + if not qr_first + else _(i18n_keys.BUTTON__ADDRESS), + anim_dir=0, + primary_color=primary_color, + ) + self.xpubs = xpubs + self.multisig_index = multisig_index + self.address = address + self.address_qr = address_qr + self.icon = icon_path + self.addr_type = addr_type + self.evm_chain_id = evm_chain_id + self.network = title.split(" ")[0] + self.prev_scr = prev_scr + self.account_name = account_name + if primary_color: + self.title.add_style(StyleWrapper().text_color(primary_color), 0) + self.qr_first = qr_first + if qr_first: + self.show_qr_code(self.qr_first) + else: + self.show_address(evm_chain_id=evm_chain_id) + + def show_address(self, evm_chain_id: int | None = None): + self.current = self.SHOW_TYPE.ADDRESS + if hasattr(self, "qr"): + self.qr.delete() + del self.qr + if hasattr(self, "subtitle"): + self.subtitle.delete() + del self.subtitle + self.btn_no.label.set_text(_(i18n_keys.BUTTON__QRCODE)) + + # derive btn + if self.network in ("Bitcoin", "Ethereum"): + self.derive_btn = ListItemBtn( + self.content_area, + self.addr_type, + left_img_src="A:/res/branches.png", + has_next=True, + ) + + else: + self.derive_btn = ListItemBtn( + self.content_area, + self.addr_type, + left_img_src="A:/res/branches.png", + has_next=False, + ) + self.derive_btn.remove_style(None, lv.PART.MAIN | lv.STATE.PRESSED) + + self.derive_btn.align_to(self.title, lv.ALIGN.OUT_BOTTOM_LEFT, 0, 40) + self.derive_btn.set_style_radius(40, 0) + self.derive_btn.add_style( + StyleWrapper().bg_color(lv_colors.ONEKEY_GRAY_3), + 0, + ) + + # address + self.group_address = ContainerFlexCol( + self.content_area, self.derive_btn, pos=(0, 8), padding_row=0 + ) + self.item_group_header = CardHeader( + self.group_address, + self.account_name, + "A:/res/group-icon-wallet.png", + ) + self.item_group_body = DisplayItem( + self.group_address, + None, + content=self.address, + font=font_GeistSemiBold48, + ) + self.group_address.add_dummy() + + if self.network == "Ethereum": + self.erc20_tips = Banner( + self.content_area, + LEVEL.DEFAULT, + _(i18n_keys.CONTENT__NETWORK_ADDRESS_ETHEREUM), + ) + self.erc20_tips.align_to(self.group_address, lv.ALIGN.OUT_BOTTOM_MID, 0, 8) + self.erc20_tips.add_style( + StyleWrapper().bg_color(lv_colors.ONEKEY_GRAY_3), + 0, + ) + + def show_qr_code(self, has_tips: bool = False): + self.current = self.SHOW_TYPE.QRCODE + if hasattr(self, "group_address"): + self.group_address.delete() + del self.group_address + if hasattr(self, "derive_btn"): + self.derive_btn.delete() + del self.derive_btn + if hasattr(self, "erc20_tips"): + self.erc20_tips.delete() + del self.erc20_tips + self.btn_no.label.set_text(_(i18n_keys.BUTTON__ADDRESS)) + if has_tips: + from .components.label import SubTitle + + self.subtitle = SubTitle( + self.content_area, + self.title, + (0, 16), + _( + i18n_keys.CONTENT__RETUNRN_TO_THE_APP_AND_SCAN_THE_SIGNED_TX_QR_CODE_BELOW + ), + ) + self.qr = QRCode( + self.content_area, + self.address if self.address_qr is None else self.address_qr, + self.icon, + ) + self.qr.align_to( + self.title if not has_tips else self.subtitle, + lv.ALIGN.OUT_BOTTOM_LEFT, + 0, + 30, + ) + + def btc_derive_changed(self, new_type): + self.channel.publish((ADDRESS_OFFLINE_RETURN_TYPE.BTC_DERIVE_SCRIPTS, new_type)) + self.destroy(50) + + def eth_derive_changed(self, new_type): + self.channel.publish((ADDRESS_OFFLINE_RETURN_TYPE.ETH_LEDGER_PATH, new_type)) + self.destroy(50) + + def eventhandler(self, event_obj): + code = event_obj.code + target = event_obj.get_target() + if code == lv.EVENT.CLICKED: + utils.lcd_resume() + if target == self.btn_no: + if self.current == self.SHOW_TYPE.ADDRESS: + self.show_qr_code(self.qr_first) + else: + self.show_address(self.evm_chain_id) + elif target == self.btn_yes: + self.destroy(50) + self.channel.publish(ADDRESS_OFFLINE_RETURN_TYPE.DONE) + elif hasattr(self, "derive_btn") and target == self.derive_btn: + if self.network == "Bitcoin": + BTCDeriveSelectionScreen(self, self.addr_type, self.prev_scr) + elif self.network == "Ethereum": + ETHDeriveSelectionScreen(self, self.addr_type) + else: + pass + + class XpubOrPub(FullSizeWindow): def __init__( self, title, path, primary_color, icon_path: str, xpub=None, pubkey=None diff --git a/core/src/trezor/ui/layouts/lvgl/__init__.py b/core/src/trezor/ui/layouts/lvgl/__init__.py index bced6a8f1..e8a751c07 100644 --- a/core/src/trezor/ui/layouts/lvgl/__init__.py +++ b/core/src/trezor/ui/layouts/lvgl/__init__.py @@ -25,6 +25,7 @@ "confirm_sign_identity", "confirm_signverify", "show_address", + "show_address_offline", "show_error_and_raise", "show_pubkey", "show_success", @@ -57,6 +58,7 @@ "confirm_sol_memo", "confirm_data", "confirm_final", + "confirm_password_input", "confirm_blind_sign_common", "show_onekey_app_guide", "confirm_set_homescreen", @@ -346,6 +348,68 @@ async def show_address( await loop.sleep(300) +async def show_address_offline( + ctx: wire.GenericContext, + address: str, + *, + address_qr: str | None = None, + case_sensitive: bool = True, + network: str = "", + multisig_index: int | None = None, + xpubs: Sequence[str] = (), + address_extra: str | None = None, + title_qr: str | None = None, + evm_chain_id: int | None = None, + title: str = "", + addr_type: str | None = None, + prev_scr=None, + account_name: str = "", +) -> None: + is_multisig = len(xpubs) > 0 + from trezor.lvglui.scrs.template import AddressOffline + + by_qr = isinstance(ctx, wire.QRContext) + if is_multisig: + return await interact( + ctx, + AddressOffline( + title, + address, + ctx.primary_color, + ctx.icon_path, + xpubs, + address_qr, + multisig_index, + qr_first=by_qr, + network=network, + ), + "show_address", + ButtonRequestType.Address, + ) + res = await interact( + ctx, + AddressOffline( + title if title else _(i18n_keys.TITLE__STR_ADDRESS).format(network), + address, + ctx.primary_color, + ctx.icon_path, + address_qr=address_qr, + addr_type=addr_type, + evm_chain_id=evm_chain_id, + qr_first=by_qr, + network=network, + prev_scr=prev_scr, + account_name=account_name, + ), + "show_address", + ButtonRequestType.Address, + ) + from trezor import loop + + await loop.sleep(50) + return res + + async def show_pubkey( ctx: wire.Context, pubkey: str, @@ -1088,6 +1152,9 @@ async def request_pin_on_device( if attempts_remaining is None or attempts_remaining == device.PIN_MAX_ATTEMPTS: subprompt = "" + elif attempts_remaining == 5: + await confirm_password_input(ctx) + subprompt = f"{_(i18n_keys.MSG__INCORRECT_PIN_STR_ATTEMPTS_LEFT).format(attempts_remaining)}" elif attempts_remaining == 1: subprompt = f"{_(i18n_keys.MSG__INCORRECT_PIN_THIS_IS_YOUR_LAST_ATTEMPT)}" else: @@ -1293,6 +1360,22 @@ async def confirm_final(ctx: wire.Context, chain_name: str) -> None: ) +async def confirm_password_input(ctx: wire.Context) -> None: + from trezor.ui.layouts.lvgl import confirm_action + + await confirm_action( + ctx, + "confirm_password_input", + title=_(i18n_keys.MISTOUCH_PROTECTION_TITLE), + action=_(i18n_keys.MISTOUCH_PROTECTION_DESC), + verb=_(i18n_keys.MISTOUCH_PROTECTION_SLIDE_TEXT), + verb_cancel=_(i18n_keys.BUTTON__BACK_TO_HOME), + hold=True, + anim_dir=0, + icon="A:/assets/prompt/protection.png", + ) + + async def confirm_blind_sign_common( ctx: wire.Context, signer: str, raw_message: bytes ) -> None: