diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index c32704a8..f7a7a889 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -13,7 +13,7 @@ jobs: name: Analyse strategy: matrix: - sdk: ["$NANOS_SDK", "$NANOX_SDK", "$NANOSP_SDK", "$STAX_SDK"] + sdk: ["$NANOS_SDK", "$NANOX_SDK", "$NANOSP_SDK"] runs-on: ubuntu-latest container: image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder-legacy:latest diff --git a/.github/workflows/guidelines_enforcer.yml b/.github/workflows/guidelines_enforcer.yml index 0b958e52..fdaf9f27 100644 --- a/.github/workflows/guidelines_enforcer.yml +++ b/.github/workflows/guidelines_enforcer.yml @@ -21,5 +21,3 @@ jobs: guidelines_enforcer: name: Call Ledger guidelines_enforcer uses: LedgerHQ/ledger-app-workflows/.github/workflows/reusable_guidelines_enforcer.yml@v1 - with: - relative_app_directory: 'app' diff --git a/Makefile b/Makefile index abebfe31..6ac593e0 100644 --- a/Makefile +++ b/Makefile @@ -25,7 +25,6 @@ ifeq ($(BOLOS_SDK),) # In this case, there is not predefined SDK and we run dockerized # When not using the SDK, we override and build the XL complete app -ZXLIB_COMPILE_STAX ?= 1 SUBSTRATE_PARSER_FULL ?= 1 include $(CURDIR)/deps/ledger-zxlib/dockerized_build.mk diff --git a/app/Makefile.version b/app/Makefile.version index 8243f511..4bb301d0 100644 --- a/app/Makefile.version +++ b/app/Makefile.version @@ -1,3 +1,3 @@ APPVERSION_M=0 APPVERSION_N=23 -APPVERSION_P=11 +APPVERSION_P=12 diff --git a/app/rust/src/parser/parsed_obj.rs b/app/rust/src/parser/parsed_obj.rs index 55ef45dd..1750f41c 100644 --- a/app/rust/src/parser/parsed_obj.rs +++ b/app/rust/src/parser/parsed_obj.rs @@ -784,4 +784,13 @@ mod test { msg.read(&bytes).unwrap(); ParsedObj::validate(&mut msg).unwrap(); } + + #[test] + fn parse_versioned_contract() { + let input = "8080000000040060dbb32efe0c56e1d418c020f4cb71c556b6a60d0000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000301000000000602107468656e2d677265656e2d6d61636177000004cf3b3b2068656c6c6f2d776f726c6420636f6e74726163740a0a28646566696e652d636f6e7374616e742073656e6465722027535a324a365a593438475631455a35563256355242394d5036365357383650594b4b51394836445052290a28646566696e652d636f6e7374616e7420726563697069656e742027534d324a365a593438475631455a35563256355242394d5036365357383650594b4b51565838583047290a0a28646566696e652d66756e6769626c652d746f6b656e206e6f76656c2d746f6b656e2d3139290a2866742d6d696e743f206e6f76656c2d746f6b656e2d3139207531322073656e646572290a2866742d7472616e736665723f206e6f76656c2d746f6b656e2d31392075322073656e64657220726563697069656e74290a0a28646566696e652d6e6f6e2d66756e6769626c652d746f6b656e2068656c6c6f2d6e66742075696e74290a0a286e66742d6d696e743f2068656c6c6f2d6e66742075312073656e646572290a286e66742d6d696e743f2068656c6c6f2d6e66742075322073656e646572290a286e66742d7472616e736665723f2068656c6c6f2d6e66742075312073656e64657220726563697069656e74290a0a28646566696e652d7075626c69632028746573742d656d69742d6576656e74290a202028626567696e0a20202020287072696e7420224576656e74212048656c6c6f20776f726c64220a20202020286f6b207531290a2020290a290a0a28626567696e2028746573742d656d69742d6576656e7429290a0a28646566696e652d7075626c69632028746573742d6576656e742d7479706573290a202028626567696e0a2020202028756e777261702d70616e6963202866742d6d696e743f206e6f76656c2d746f6b656e2d313920753320726563697069656e7429290a2020202028756e777261702d70616e696320286e66742d6d696e743f2068656c6c6f2d6e667420753220726563697069656e7429290a2020202028756e777261702d70616e696320287374782d7472616e736665723f207536302074782d73656e6465722027535a324a365a593438475631455a35563256355242394d5036365357383650594b4b5139483644505229290a2020202028756e777261702d70616e696320287374782d6275726e3f207532302074782d73656e64657229290a20202020286f6b207531290a2020290a290a0a28646566696e652d6d61702073746f7265207b206b65793a20286275666620333229207d207b2076616c75653a20286275666620333229207d290a0a28646566696e652d7075626c696320286765742d76616c756520286b65792028627566662033322929290a202028626567696e0a20202020286d6174636820286d61702d6765743f2073746f7265207b206b65793a206b6579207d290a202020202020656e74727920286f6b20286765742076616c756520656e74727929290a202020202020286572722030290a20202020290a2020290a290a0a28646566696e652d7075626c696320287365742d76616c756520286b65792028627566662033322929202876616c75652028627566662033322929290a202028626567696e0a20202020286d61702d7365742073746f7265207b206b65793a206b6579207d207b2076616c75653a2076616c7565207d290a20202020286f6b207531290a2020290a290a"; + let bytes = hex::decode(input).unwrap(); + let mut msg = ParsedObj::from_bytes(&bytes).unwrap(); + msg.read(&bytes).unwrap(); + ParsedObj::validate(&mut msg).unwrap(); + } } diff --git a/app/rust/src/parser/transaction_payload.rs b/app/rust/src/parser/transaction_payload.rs index 804f670a..a928484f 100644 --- a/app/rust/src/parser/transaction_payload.rs +++ b/app/rust/src/parser/transaction_payload.rs @@ -1,7 +1,9 @@ use core::fmt::Write; use nom::{ - bytes::complete::take, - number::complete::{be_u32, be_u64, le_u8}, + branch::alt, + bytes::complete::{tag, take}, + combinator::{flat_map, map}, + number::complete::{be_u32, be_u64, be_u8, le_u8}, sequence::tuple, }; @@ -19,6 +21,9 @@ use crate::parser::c32; use super::value::{Value, ValueId}; use crate::{check_canary, is_expert_mode, zxformat}; +// The number of contract call arguments we can handle. +// this can be adjusted, but keep in mind that higher values could +// hit stack overflows issues. pub const MAX_NUM_ARGS: u32 = 10; // The items in contract_call transactions are @@ -477,6 +482,69 @@ impl<'a> TransactionContractCall<'a> { } } +/// A transaction that deploys a versioned smart contract +#[repr(C)] +#[derive(Clone, PartialEq)] +#[cfg_attr(test, derive(Debug))] +pub struct VersionedSmartContract<'a>(&'a [u8]); + +impl<'a> VersionedSmartContract<'a> { + #[inline(never)] + fn from_bytes(input: &'a [u8]) -> Result<(&[u8], Self), ParserError> { + check_canary!(); + + // clarity version + // len prefixed contract name + // len prefixed contract code + let parse_tag = alt((tag(&[0x01]), tag(&[0x02]))); + let parse_length_1_byte = map(be_u8, |length| std::cmp::min(length, 128u8) as usize); + let parse_length_4_bytes = flat_map(be_u32, take); + + let parser = tuple(( + parse_tag, + flat_map(parse_length_1_byte, take), + parse_length_4_bytes, + )); + let (_, (_, name, code)) = parser(input)?; + + // 1-byte tag, 1-byte name_len, name, 4-byte code_len, code + let total_length = 1 + 1 + name.len() + 4 + code.len(); + let (rem, res) = take(total_length)(input)?; + + Ok((rem, Self(res))) + } + + pub fn contract_name(&'a self) -> Result, ParserError> { + // skip the tag. safe ecause this was checked during parsing + ContractName::from_bytes(&self.0[1..]) + .map(|(_, res)| res) + .map_err(|e| e.into()) + } + + #[inline(never)] + fn get_contract_items( + &self, + display_idx: u8, + out_key: &mut [u8], + out_value: &mut [u8], + page_idx: u8, + ) -> Result { + let mut writer_key = zxformat::Writer::new(out_key); + + match display_idx { + 0 => { + writer_key + .write_str("Contract Name") + .map_err(|_| ParserError::parser_unexpected_buffer_end)?; + check_canary!(); + let name = self.contract_name()?; + zxformat::pageString(out_value, name.name(), page_idx) + } + _ => Err(ParserError::parser_value_out_of_range), + } + } +} + /// A transaction that instantiates a smart contract #[repr(C)] #[derive(Clone, PartialEq)] @@ -485,11 +553,22 @@ pub struct TransactionSmartContract<'a>(&'a [u8]); impl<'a> TransactionSmartContract<'a> { #[inline(never)] - fn from_bytes(bytes: &'a [u8]) -> nom::IResult<&[u8], Self, ParserError> { + fn from_bytes(bytes: &'a [u8]) -> Result<(&[u8], Self), ParserError> { check_canary!(); - // we take "ownership" of bytes here because - // it should only contain the contract information and body - Ok((Default::default(), Self(bytes))) + + // len prefixed contract name + // len prefixed contract code + let parse_length_1_byte = map(be_u8, |length| std::cmp::min(length, 128u8) as usize); + let parse_length_4_bytes = flat_map(be_u32, take); + + let parser = tuple((flat_map(parse_length_1_byte, take), parse_length_4_bytes)); + let (_, (name, code)) = parser(bytes)?; + + // 1-byte name_len, name, 4-byte code_len, code + let total_length = 1 + name.len() + 4 + code.len(); + let (rem, res) = take(total_length)(bytes)?; + + Ok((rem, Self(res))) } pub fn contract_name(&'a self) -> Result, ParserError> { @@ -529,6 +608,7 @@ pub enum TransactionPayloadId { TokenTransfer = 0, SmartContract = 1, ContractCall = 2, + VersionedSmartContract = 6, } impl TransactionPayloadId { @@ -537,6 +617,7 @@ impl TransactionPayloadId { 0 => Ok(Self::TokenTransfer), 1 => Ok(Self::SmartContract), 2 => Ok(Self::ContractCall), + 6 => Ok(Self::VersionedSmartContract), _ => Err(ParserError::parser_invalid_transaction_payload), } } @@ -549,6 +630,7 @@ pub enum TransactionPayload<'a> { TokenTransfer(StxTokenTransfer<'a>), SmartContract(TransactionSmartContract<'a>), ContractCall(TransactionContractCall<'a>), + VersionedSmartContract(VersionedSmartContract<'a>), } impl<'a> TransactionPayload<'a> { @@ -568,6 +650,10 @@ impl<'a> TransactionPayload<'a> { let call = TransactionContractCall::from_bytes(id.0)?; (call.0, Self::ContractCall(call.1)) } + TransactionPayloadId::VersionedSmartContract => { + let call = VersionedSmartContract::from_bytes(id.0)?; + (call.0, Self::VersionedSmartContract(call.1)) + } }; Ok(res) } @@ -583,10 +669,15 @@ impl<'a> TransactionPayload<'a> { matches!(self, &Self::ContractCall(_)) } + pub fn is_contract_deploy_payload(&self) -> bool { + matches!(self, &Self::VersionedSmartContract(_)) + } + pub fn contract_name(&'a self) -> Option> { match self { Self::SmartContract(contract) => contract.contract_name().ok(), Self::ContractCall(contract) => contract.contract_name().ok(), + Self::VersionedSmartContract(contract) => contract.contract_name().ok(), _ => None, } } @@ -635,7 +726,7 @@ impl<'a> TransactionPayload<'a> { pub fn num_items(&self) -> u8 { match self { Self::TokenTransfer(_) => 3, - Self::SmartContract(_) => 1, + Self::SmartContract(_) | Self::VersionedSmartContract(_) => 1, Self::ContractCall(ref call) => call.num_items().unwrap_or(CONTRACT_CALL_BASE_ITEMS), } } @@ -659,6 +750,9 @@ impl<'a> TransactionPayload<'a> { Self::ContractCall(ref call) => { call.get_contract_call_items(idx, out_key, out_value, page_idx) } + Self::VersionedSmartContract(ref deploy) => { + deploy.get_contract_items(idx, out_key, out_value, page_idx) + } } } } diff --git a/app/script_s2.ld b/app/script_s2.ld deleted file mode 100644 index f3f048f3..00000000 --- a/app/script_s2.ld +++ /dev/null @@ -1,170 +0,0 @@ -/******************************************************************************* -* Ledger Blue - Secure firmware -* (c) 2016, 2017, 2018, 2019 Ledger -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -********************************************************************************/ - -/** - * Global chip memory layout and constants - * - */ - -MEMORY -{ - DISCARD (rwx) : ORIGIN = 0xd0000000, LENGTH = 1M - - FLASH (rx) : ORIGIN = 0xc0de0000, LENGTH = 400K - DATA (r) : ORIGIN = 0xc0de0000, LENGTH = 400K - SRAM (rwx) : ORIGIN = 0xda7a0000, LENGTH = 30K -} - -PAGE_SIZE = 512; -STACK_SIZE = 8192; -END_STACK = ORIGIN(SRAM) + LENGTH(SRAM); - -ENTRY(main); - -SECTIONS -{ - /****************************************************************/ - /* This section locates the code in FLASH */ - /****************************************************************/ - - /** put text in Flash memory, VMA will be equal to LMA */ - .text : - { - /* provide start code symbol, shall be zero */ - _text = .; - _nvram_start = .; - - /* ensure main is always @ 0xC0D00000 */ - *(.boot*) - - /* place the other code and rodata defined BUT nvram variables that are displaced in a r/w area */ - *(.text*) - *(.rodata) - *(.rodata.[^N]*) /*.data.rel.ro* not here to detect invalid PIC usage */ - *(.rodata.N[^_]*) - - . = ALIGN(4); - - /* all code placed */ - _etext = .; - - . = ALIGN(PAGE_SIZE); - - _nvram_data = .; - - /* NVM data (ex-filesystem) */ - *(.bss.N_* .rodata.N_*) - - . = ALIGN(PAGE_SIZE); - _envram_data = .; - - _install_parameters = .; - _nvram_end = .; - } > FLASH = 0x00 - - .data (NOLOAD): - { - . = ALIGN(4); - - /** - * Place RAM initialized variables - */ - _data = .; - - *(vtable) - *(.data*) - - _edata = .; - - } > DISCARD /*> SRAM AT>FLASH = 0x00 */ - - .bss : - { - /** - * Place RAM uninitialized variables - */ - _bss = .; - *(.bss*) - _ebss = .; - - - /** - * Reserve stack size - */ - . = ALIGN(4); - app_stack_canary = .; - PROVIDE(app_stack_canary = .); - . += 4; - _stack_validation = .; - . = _stack_validation + STACK_SIZE; - _stack = ABSOLUTE(END_STACK) - STACK_SIZE; - PROVIDE( _stack = ABSOLUTE(END_STACK) - STACK_SIZE); - _estack = ABSOLUTE(END_STACK); - PROVIDE( _estack = ABSOLUTE(END_STACK) ); - - } > SRAM = 0x00 - - /****************************************************************/ - /* DEBUG */ - /****************************************************************/ - - /* remove the debugging information from the standard libraries */ - DEBUG (NOLOAD) : - { - libc.a ( * ) - libm.a ( * ) - libgcc.a ( * ) - *(.ARM.exidx* .gnu.linkonce.armexidx.*) - } > DISCARD - - /* Stabs debugging sections. */ - .stab 0 : { *(.stab) } - .stabstr 0 : { *(.stabstr) } - .stab.excl 0 : { *(.stab.excl) } - .stab.exclstr 0 : { *(.stab.exclstr) } - .stab.index 0 : { *(.stab.index) } - .stab.indexstr 0 : { *(.stab.indexstr) } - .comment 0 : { *(.comment) } - /* DWARF debug sections. - Symbols in the DWARF debugging sections are relative to the beginning - of the section so we begin them at 0. */ - /* DWARF 1 */ - .debug 0 : { *(.debug) } - .line 0 : { *(.line) } - /* GNU DWARF 1 extensions */ - .debug_srcinfo 0 : { *(.debug_srcinfo) } - .debug_sfnames 0 : { *(.debug_sfnames) } - /* DWARF 1.1 and DWARF 2 */ - .debug_aranges 0 : { *(.debug_aranges) } - .debug_pubnames 0 : { *(.debug_pubnames) } - /* DWARF 2 */ - .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } - .debug_abbrev 0 : { *(.debug_abbrev) } - .debug_line 0 : { *(.debug_line) } - .debug_frame 0 : { *(.debug_frame) } - .debug_str 0 : { *(.debug_str) } - .debug_loc 0 : { *(.debug_loc) } - .debug_macinfo 0 : { *(.debug_macinfo) } - /* SGI/MIPS DWARF 2 extensions */ - .debug_weaknames 0 : { *(.debug_weaknames) } - .debug_funcnames 0 : { *(.debug_funcnames) } - .debug_typenames 0 : { *(.debug_typenames) } - .debug_varnames 0 : { *(.debug_varnames) } -} - -PROVIDE(_nvram = ABSOLUTE(_nvram_start)); -PROVIDE(_envram = ABSOLUTE(_nvram_end)); diff --git a/app/script_x.ld b/app/script_x.ld deleted file mode 100644 index 0d174c46..00000000 --- a/app/script_x.ld +++ /dev/null @@ -1,175 +0,0 @@ -/******************************************************************************* -* Ledger Blue - Secure firmware -* (c) 2016, 2017, 2018, 2019 Ledger -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -********************************************************************************/ - -/** - * Global chip memory layout and constants - * - */ - -MEMORY -{ - DISCARD (rwx) : ORIGIN = 0xd0000000, LENGTH = 1M - - FLASH (rx) : ORIGIN = 0xc0de0000, LENGTH = 400K - DATA (r) : ORIGIN = 0xc0de0000, LENGTH = 400K - SRAM (rwx) : ORIGIN = 0xda7a0000, LENGTH = 30K -} - -PAGE_SIZE = 256; -STACK_SIZE = 8192; -END_STACK = ORIGIN(SRAM) + LENGTH(SRAM); - -ENTRY(main) - -SECTIONS -{ - - /****************************************************************/ - /* This section locates the code in FLASH */ - /****************************************************************/ - - /** put text in Flash memory, VMA will be equal to LMA */ - .text : - { - /* provide start code symbol, shall be zero */ - _text = .; - _nvram = .; - PROVIDE(_nvram = . + ORIGIN(FLASH)); - - PROVIDE(_setjmp = setjmp); /*thanks clang*/ - - /* ensure main is always @ 0xC0D00000 */ - *(.boot*) - - /* place the other code and rodata defined BUT nvram variables that are displaced in a r/w area */ - *(.text*) - *(.rodata) - *(.rodata.[^N]*) /*.data.rel.ro* not here to detect invalid PIC usage */ - *(.rodata.N[^_]*) - - . = ALIGN(4); - - /* all code placed */ - _etext = .; - - . = ALIGN(PAGE_SIZE); - - _nvram_data = .; - - /* NVM data (ex-filesystem) */ - *(.bss.N_* .rodata.N_*) - - . = ALIGN(PAGE_SIZE); - _envram_data = .; - /* _nvram_data_size = _envram_data - _nvram_data; */ - _install_parameters = .; - PROVIDE(N_install_parameters = .); - _envram = .; - PROVIDE(_envram = . + ORIGIN(FLASH)); - - } > FLASH = 0x00 - - .data (NOLOAD): - { - . = ALIGN(4); - - /** - * Place RAM initialized variables - */ - _data = .; - - *(vtable) - *(.data*) - - _edata = .; - - } > DISCARD /*> SRAM AT>FLASH = 0x00 */ - - .bss : - { - /** - * Place RAM uninitialized variables - */ - _bss = .; - *(.bss*) - _ebss = .; - - - /** - * Reserve stack size - */ - . = ALIGN(4); - app_stack_canary = .; - PROVIDE(app_stack_canary = .); - . += 4; - _stack_validation = .; - . = _stack_validation + STACK_SIZE; - _stack = ABSOLUTE(END_STACK) - STACK_SIZE; - PROVIDE( _stack = ABSOLUTE(END_STACK) - STACK_SIZE); - _estack = ABSOLUTE(END_STACK); - PROVIDE( _estack = ABSOLUTE(END_STACK) ); - - } > SRAM = 0x00 - - /****************************************************************/ - /* DEBUG */ - /****************************************************************/ - - /* remove the debugging information from the standard libraries */ - DEBUG (NOLOAD) : - { - libc.a ( * ) - libm.a ( * ) - libgcc.a ( * ) - *(.ARM.exidx* .gnu.linkonce.armexidx.*) - } > DISCARD - - /* Stabs debugging sections. */ - .stab 0 : { *(.stab) } - .stabstr 0 : { *(.stabstr) } - .stab.excl 0 : { *(.stab.excl) } - .stab.exclstr 0 : { *(.stab.exclstr) } - .stab.index 0 : { *(.stab.index) } - .stab.indexstr 0 : { *(.stab.indexstr) } - .comment 0 : { *(.comment) } - /* DWARF debug sections. - Symbols in the DWARF debugging sections are relative to the beginning - of the section so we begin them at 0. */ - /* DWARF 1 */ - .debug 0 : { *(.debug) } - .line 0 : { *(.line) } - /* GNU DWARF 1 extensions */ - .debug_srcinfo 0 : { *(.debug_srcinfo) } - .debug_sfnames 0 : { *(.debug_sfnames) } - /* DWARF 1.1 and DWARF 2 */ - .debug_aranges 0 : { *(.debug_aranges) } - .debug_pubnames 0 : { *(.debug_pubnames) } - /* DWARF 2 */ - .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } - .debug_abbrev 0 : { *(.debug_abbrev) } - .debug_line 0 : { *(.debug_line) } - .debug_frame 0 : { *(.debug_frame) } - .debug_str 0 : { *(.debug_str) } - .debug_loc 0 : { *(.debug_loc) } - .debug_macinfo 0 : { *(.debug_macinfo) } - /* SGI/MIPS DWARF 2 extensions */ - .debug_weaknames 0 : { *(.debug_weaknames) } - .debug_funcnames 0 : { *(.debug_funcnames) } - .debug_typenames 0 : { *(.debug_typenames) } - .debug_varnames 0 : { *(.debug_varnames) } - -} diff --git a/ledger_app.toml b/ledger_app.toml new file mode 100644 index 00000000..de2864f5 --- /dev/null +++ b/ledger_app.toml @@ -0,0 +1,7 @@ +[app] +build_directory = "./app/" +sdk = "C" +devices = ["nanos", "nanox", "nanos+"] + +[tests] +unit_directory = "./tests/" diff --git a/tests_zemu/snapshots/s-mainmenu/00004.png b/tests_zemu/snapshots/s-mainmenu/00004.png index 08114bd1..bb952ab2 100644 Binary files a/tests_zemu/snapshots/s-mainmenu/00004.png and b/tests_zemu/snapshots/s-mainmenu/00004.png differ diff --git a/tests_zemu/snapshots/s-mainmenu/00010.png b/tests_zemu/snapshots/s-mainmenu/00010.png index 08114bd1..bb952ab2 100644 Binary files a/tests_zemu/snapshots/s-mainmenu/00010.png and b/tests_zemu/snapshots/s-mainmenu/00010.png differ diff --git a/tests_zemu/snapshots/s-sign_standard_contract_call_tx/00016.png b/tests_zemu/snapshots/s-sign_standard_contract_call_tx/00016.png new file mode 100644 index 00000000..d67bcb6f Binary files /dev/null and b/tests_zemu/snapshots/s-sign_standard_contract_call_tx/00016.png differ diff --git a/tests_zemu/snapshots/sp-mainmenu/00004.png b/tests_zemu/snapshots/sp-mainmenu/00004.png index 3a9a7c35..2fddf432 100644 Binary files a/tests_zemu/snapshots/sp-mainmenu/00004.png and b/tests_zemu/snapshots/sp-mainmenu/00004.png differ diff --git a/tests_zemu/snapshots/sp-mainmenu/00010.png b/tests_zemu/snapshots/sp-mainmenu/00010.png index 3a9a7c35..2fddf432 100644 Binary files a/tests_zemu/snapshots/sp-mainmenu/00010.png and b/tests_zemu/snapshots/sp-mainmenu/00010.png differ diff --git a/tests_zemu/snapshots/sp-show_address/00004.png b/tests_zemu/snapshots/sp-show_address/00004.png new file mode 100644 index 00000000..439ee9ae Binary files /dev/null and b/tests_zemu/snapshots/sp-show_address/00004.png differ diff --git a/tests_zemu/snapshots/st-call_with_string_args/00000.png b/tests_zemu/snapshots/st-call_with_string_args/00000.png deleted file mode 100644 index 2fcb9254..00000000 Binary files a/tests_zemu/snapshots/st-call_with_string_args/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-call_with_string_args/00001.png b/tests_zemu/snapshots/st-call_with_string_args/00001.png deleted file mode 100644 index 184b68c9..00000000 Binary files a/tests_zemu/snapshots/st-call_with_string_args/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-call_with_string_args/00002.png b/tests_zemu/snapshots/st-call_with_string_args/00002.png deleted file mode 100644 index 18125775..00000000 Binary files a/tests_zemu/snapshots/st-call_with_string_args/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-call_with_string_args/00003.png b/tests_zemu/snapshots/st-call_with_string_args/00003.png deleted file mode 100644 index b66c7442..00000000 Binary files a/tests_zemu/snapshots/st-call_with_string_args/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-call_with_string_args/00004.png b/tests_zemu/snapshots/st-call_with_string_args/00004.png deleted file mode 100644 index 517761e0..00000000 Binary files a/tests_zemu/snapshots/st-call_with_string_args/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-call_with_string_args/00005.png b/tests_zemu/snapshots/st-call_with_string_args/00005.png deleted file mode 100644 index 7b8f0793..00000000 Binary files a/tests_zemu/snapshots/st-call_with_string_args/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-call_with_string_args/00006.png b/tests_zemu/snapshots/st-call_with_string_args/00006.png deleted file mode 100644 index 311f7d76..00000000 Binary files a/tests_zemu/snapshots/st-call_with_string_args/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-mainmenu/00000.png b/tests_zemu/snapshots/st-mainmenu/00000.png deleted file mode 100644 index 311f7d76..00000000 Binary files a/tests_zemu/snapshots/st-mainmenu/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-mainmenu/00001.png b/tests_zemu/snapshots/st-mainmenu/00001.png deleted file mode 100644 index da17f7eb..00000000 Binary files a/tests_zemu/snapshots/st-mainmenu/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-mainmenu/00002.png b/tests_zemu/snapshots/st-mainmenu/00002.png deleted file mode 100644 index 240659da..00000000 Binary files a/tests_zemu/snapshots/st-mainmenu/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-mainmenu/00003.png b/tests_zemu/snapshots/st-mainmenu/00003.png deleted file mode 100644 index 3d38a1c1..00000000 Binary files a/tests_zemu/snapshots/st-mainmenu/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-mainmenu/00004.png b/tests_zemu/snapshots/st-mainmenu/00004.png deleted file mode 100644 index 240659da..00000000 Binary files a/tests_zemu/snapshots/st-mainmenu/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-mainmenu/00005.png b/tests_zemu/snapshots/st-mainmenu/00005.png deleted file mode 100644 index 311f7d76..00000000 Binary files a/tests_zemu/snapshots/st-mainmenu/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-multisigTest/00000.png b/tests_zemu/snapshots/st-multisigTest/00000.png deleted file mode 100644 index 2fcb9254..00000000 Binary files a/tests_zemu/snapshots/st-multisigTest/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-multisigTest/00001.png b/tests_zemu/snapshots/st-multisigTest/00001.png deleted file mode 100644 index 7198f71e..00000000 Binary files a/tests_zemu/snapshots/st-multisigTest/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-multisigTest/00002.png b/tests_zemu/snapshots/st-multisigTest/00002.png deleted file mode 100644 index 6e4f0695..00000000 Binary files a/tests_zemu/snapshots/st-multisigTest/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-multisigTest/00003.png b/tests_zemu/snapshots/st-multisigTest/00003.png deleted file mode 100644 index c7e21ba0..00000000 Binary files a/tests_zemu/snapshots/st-multisigTest/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-multisigTest/00004.png b/tests_zemu/snapshots/st-multisigTest/00004.png deleted file mode 100644 index 311f7d76..00000000 Binary files a/tests_zemu/snapshots/st-multisigTest/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-show_address/00000.png b/tests_zemu/snapshots/st-show_address/00000.png deleted file mode 100644 index c6f6e1b1..00000000 Binary files a/tests_zemu/snapshots/st-show_address/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-show_address/00001.png b/tests_zemu/snapshots/st-show_address/00001.png deleted file mode 100644 index e6c72fc9..00000000 Binary files a/tests_zemu/snapshots/st-show_address/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-show_address/00002.png b/tests_zemu/snapshots/st-show_address/00002.png deleted file mode 100644 index 311f7d76..00000000 Binary files a/tests_zemu/snapshots/st-show_address/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_big_list_tuple/00000.png b/tests_zemu/snapshots/st-sign-structured_data_big_list_tuple/00000.png deleted file mode 100644 index 2fcb9254..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_big_list_tuple/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_big_list_tuple/00001.png b/tests_zemu/snapshots/st-sign-structured_data_big_list_tuple/00001.png deleted file mode 100644 index 3ba1a84a..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_big_list_tuple/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_big_list_tuple/00002.png b/tests_zemu/snapshots/st-sign-structured_data_big_list_tuple/00002.png deleted file mode 100644 index b4384f09..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_big_list_tuple/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_big_list_tuple/00003.png b/tests_zemu/snapshots/st-sign-structured_data_big_list_tuple/00003.png deleted file mode 100644 index c7e21ba0..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_big_list_tuple/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_big_list_tuple/00004.png b/tests_zemu/snapshots/st-sign-structured_data_big_list_tuple/00004.png deleted file mode 100644 index 311f7d76..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_big_list_tuple/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_big_tuple/00000.png b/tests_zemu/snapshots/st-sign-structured_data_big_tuple/00000.png deleted file mode 100644 index 2fcb9254..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_big_tuple/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_big_tuple/00001.png b/tests_zemu/snapshots/st-sign-structured_data_big_tuple/00001.png deleted file mode 100644 index 3ba1a84a..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_big_tuple/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_big_tuple/00002.png b/tests_zemu/snapshots/st-sign-structured_data_big_tuple/00002.png deleted file mode 100644 index 773c140d..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_big_tuple/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_big_tuple/00003.png b/tests_zemu/snapshots/st-sign-structured_data_big_tuple/00003.png deleted file mode 100644 index c7e21ba0..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_big_tuple/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_big_tuple/00004.png b/tests_zemu/snapshots/st-sign-structured_data_big_tuple/00004.png deleted file mode 100644 index 311f7d76..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_big_tuple/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_empty_list/00000.png b/tests_zemu/snapshots/st-sign-structured_data_empty_list/00000.png deleted file mode 100644 index 2fcb9254..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_empty_list/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_empty_list/00001.png b/tests_zemu/snapshots/st-sign-structured_data_empty_list/00001.png deleted file mode 100644 index 3ba1a84a..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_empty_list/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_empty_list/00002.png b/tests_zemu/snapshots/st-sign-structured_data_empty_list/00002.png deleted file mode 100644 index db30acc1..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_empty_list/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_empty_list/00003.png b/tests_zemu/snapshots/st-sign-structured_data_empty_list/00003.png deleted file mode 100644 index c7e21ba0..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_empty_list/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_empty_list/00004.png b/tests_zemu/snapshots/st-sign-structured_data_empty_list/00004.png deleted file mode 100644 index 311f7d76..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_empty_list/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_simple_number/00000.png b/tests_zemu/snapshots/st-sign-structured_data_simple_number/00000.png deleted file mode 100644 index 2fcb9254..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_simple_number/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_simple_number/00001.png b/tests_zemu/snapshots/st-sign-structured_data_simple_number/00001.png deleted file mode 100644 index 3ba1a84a..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_simple_number/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_simple_number/00002.png b/tests_zemu/snapshots/st-sign-structured_data_simple_number/00002.png deleted file mode 100644 index 2f2f6aa5..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_simple_number/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_simple_number/00003.png b/tests_zemu/snapshots/st-sign-structured_data_simple_number/00003.png deleted file mode 100644 index c7e21ba0..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_simple_number/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_simple_number/00004.png b/tests_zemu/snapshots/st-sign-structured_data_simple_number/00004.png deleted file mode 100644 index 311f7d76..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_simple_number/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_some_tuple/00000.png b/tests_zemu/snapshots/st-sign-structured_data_some_tuple/00000.png deleted file mode 100644 index 2fcb9254..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_some_tuple/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_some_tuple/00001.png b/tests_zemu/snapshots/st-sign-structured_data_some_tuple/00001.png deleted file mode 100644 index 3ba1a84a..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_some_tuple/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_some_tuple/00002.png b/tests_zemu/snapshots/st-sign-structured_data_some_tuple/00002.png deleted file mode 100644 index 6d7d645b..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_some_tuple/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_some_tuple/00003.png b/tests_zemu/snapshots/st-sign-structured_data_some_tuple/00003.png deleted file mode 100644 index c7e21ba0..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_some_tuple/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_some_tuple/00004.png b/tests_zemu/snapshots/st-sign-structured_data_some_tuple/00004.png deleted file mode 100644 index 311f7d76..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_some_tuple/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_string/00000.png b/tests_zemu/snapshots/st-sign-structured_data_string/00000.png deleted file mode 100644 index 2fcb9254..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_string/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_string/00001.png b/tests_zemu/snapshots/st-sign-structured_data_string/00001.png deleted file mode 100644 index 3ba1a84a..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_string/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_string/00002.png b/tests_zemu/snapshots/st-sign-structured_data_string/00002.png deleted file mode 100644 index 3efd8d55..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_string/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_string/00003.png b/tests_zemu/snapshots/st-sign-structured_data_string/00003.png deleted file mode 100644 index c7e21ba0..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_string/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_string/00004.png b/tests_zemu/snapshots/st-sign-structured_data_string/00004.png deleted file mode 100644 index 311f7d76..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_string/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_tuple/00000.png b/tests_zemu/snapshots/st-sign-structured_data_tuple/00000.png deleted file mode 100644 index 2fcb9254..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_tuple/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_tuple/00001.png b/tests_zemu/snapshots/st-sign-structured_data_tuple/00001.png deleted file mode 100644 index 3ba1a84a..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_tuple/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_tuple/00002.png b/tests_zemu/snapshots/st-sign-structured_data_tuple/00002.png deleted file mode 100644 index 77939f5c..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_tuple/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_tuple/00003.png b/tests_zemu/snapshots/st-sign-structured_data_tuple/00003.png deleted file mode 100644 index c7e21ba0..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_tuple/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign-structured_data_tuple/00004.png b/tests_zemu/snapshots/st-sign-structured_data_tuple/00004.png deleted file mode 100644 index 311f7d76..00000000 Binary files a/tests_zemu/snapshots/st-sign-structured_data_tuple/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign/00000.png b/tests_zemu/snapshots/st-sign/00000.png deleted file mode 100644 index 2fcb9254..00000000 Binary files a/tests_zemu/snapshots/st-sign/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign/00001.png b/tests_zemu/snapshots/st-sign/00001.png deleted file mode 100644 index 9dd2692b..00000000 Binary files a/tests_zemu/snapshots/st-sign/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign/00002.png b/tests_zemu/snapshots/st-sign/00002.png deleted file mode 100644 index 2bc135b2..00000000 Binary files a/tests_zemu/snapshots/st-sign/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign/00003.png b/tests_zemu/snapshots/st-sign/00003.png deleted file mode 100644 index c7e21ba0..00000000 Binary files a/tests_zemu/snapshots/st-sign/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign/00004.png b/tests_zemu/snapshots/st-sign/00004.png deleted file mode 100644 index 311f7d76..00000000 Binary files a/tests_zemu/snapshots/st-sign/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_jwt/00000.png b/tests_zemu/snapshots/st-sign_jwt/00000.png deleted file mode 100644 index 2fcb9254..00000000 Binary files a/tests_zemu/snapshots/st-sign_jwt/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_jwt/00001.png b/tests_zemu/snapshots/st-sign_jwt/00001.png deleted file mode 100644 index a8b5800e..00000000 Binary files a/tests_zemu/snapshots/st-sign_jwt/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_jwt/00002.png b/tests_zemu/snapshots/st-sign_jwt/00002.png deleted file mode 100644 index d4f8165a..00000000 Binary files a/tests_zemu/snapshots/st-sign_jwt/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_jwt/00003.png b/tests_zemu/snapshots/st-sign_jwt/00003.png deleted file mode 100644 index 311f7d76..00000000 Binary files a/tests_zemu/snapshots/st-sign_jwt/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_message/00000.png b/tests_zemu/snapshots/st-sign_message/00000.png deleted file mode 100644 index 2fcb9254..00000000 Binary files a/tests_zemu/snapshots/st-sign_message/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_message/00001.png b/tests_zemu/snapshots/st-sign_message/00001.png deleted file mode 100644 index 5505848f..00000000 Binary files a/tests_zemu/snapshots/st-sign_message/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_message/00002.png b/tests_zemu/snapshots/st-sign_message/00002.png deleted file mode 100644 index 4f232727..00000000 Binary files a/tests_zemu/snapshots/st-sign_message/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_message/00003.png b/tests_zemu/snapshots/st-sign_message/00003.png deleted file mode 100644 index c7e21ba0..00000000 Binary files a/tests_zemu/snapshots/st-sign_message/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_message/00004.png b/tests_zemu/snapshots/st-sign_message/00004.png deleted file mode 100644 index 311f7d76..00000000 Binary files a/tests_zemu/snapshots/st-sign_message/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_standard_contract_call_tx/00000.png b/tests_zemu/snapshots/st-sign_standard_contract_call_tx/00000.png deleted file mode 100644 index 2fcb9254..00000000 Binary files a/tests_zemu/snapshots/st-sign_standard_contract_call_tx/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_standard_contract_call_tx/00001.png b/tests_zemu/snapshots/st-sign_standard_contract_call_tx/00001.png deleted file mode 100644 index 184b68c9..00000000 Binary files a/tests_zemu/snapshots/st-sign_standard_contract_call_tx/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_standard_contract_call_tx/00002.png b/tests_zemu/snapshots/st-sign_standard_contract_call_tx/00002.png deleted file mode 100644 index d1802a24..00000000 Binary files a/tests_zemu/snapshots/st-sign_standard_contract_call_tx/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_standard_contract_call_tx/00003.png b/tests_zemu/snapshots/st-sign_standard_contract_call_tx/00003.png deleted file mode 100644 index d0e4caa2..00000000 Binary files a/tests_zemu/snapshots/st-sign_standard_contract_call_tx/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_standard_contract_call_tx/00004.png b/tests_zemu/snapshots/st-sign_standard_contract_call_tx/00004.png deleted file mode 100644 index 6e62b943..00000000 Binary files a/tests_zemu/snapshots/st-sign_standard_contract_call_tx/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_standard_contract_call_tx/00005.png b/tests_zemu/snapshots/st-sign_standard_contract_call_tx/00005.png deleted file mode 100644 index 7b8f0793..00000000 Binary files a/tests_zemu/snapshots/st-sign_standard_contract_call_tx/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_standard_contract_call_tx/00006.png b/tests_zemu/snapshots/st-sign_standard_contract_call_tx/00006.png deleted file mode 100644 index 311f7d76..00000000 Binary files a/tests_zemu/snapshots/st-sign_standard_contract_call_tx/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-mainmenu/00004.png b/tests_zemu/snapshots/x-mainmenu/00004.png index 3a9a7c35..2fddf432 100644 Binary files a/tests_zemu/snapshots/x-mainmenu/00004.png and b/tests_zemu/snapshots/x-mainmenu/00004.png differ diff --git a/tests_zemu/snapshots/x-mainmenu/00010.png b/tests_zemu/snapshots/x-mainmenu/00010.png index 3a9a7c35..2fddf432 100644 Binary files a/tests_zemu/snapshots/x-mainmenu/00010.png and b/tests_zemu/snapshots/x-mainmenu/00010.png differ diff --git a/tests_zemu/snapshots/x-show_address/00004.png b/tests_zemu/snapshots/x-show_address/00004.png new file mode 100644 index 00000000..439ee9ae Binary files /dev/null and b/tests_zemu/snapshots/x-show_address/00004.png differ diff --git a/tests_zemu/tests/common.ts b/tests_zemu/tests/common.ts index 29d449c8..9c09f363 100644 --- a/tests_zemu/tests/common.ts +++ b/tests_zemu/tests/common.ts @@ -1,17 +1,15 @@ import { IDeviceModel } from '@zondax/zemu' -const Resolve = require("path").resolve; +const Resolve = require('path').resolve -export const APP_SEED = "equip will roof matter pink blind book anxiety banner elbow sun young" +export const APP_SEED = 'equip will roof matter pink blind book anxiety banner elbow sun young' const APP_PATH_S = Resolve('../app/output/app_s.elf') const APP_PATH_X = Resolve('../app/output/app_x.elf') const APP_PATH_SP = Resolve('../app/output/app_s2.elf') -const APP_PATH_ST = Resolve('../app/output/app_stax.elf') export const models: IDeviceModel[] = [ { name: 'nanos', prefix: 'S', path: APP_PATH_S }, { name: 'nanox', prefix: 'X', path: APP_PATH_X }, { name: 'nanosp', prefix: 'SP', path: APP_PATH_SP }, - { name: 'stax', prefix: 'ST', path: APP_PATH_ST }, ]