diff --git a/src/app_ui/sign/common/action/function_call_bin.rs b/src/app_ui/sign/common/action/function_call_bin.rs index 2a06f69..fe0b6c0 100644 --- a/src/app_ui/sign/common/action/function_call_bin.rs +++ b/src/app_ui/sign/common/action/function_call_bin.rs @@ -1,6 +1,6 @@ use crate::app_ui::fields_writer::FieldsWriter; +use crate::parsing::types::common::action::function_call::ArgsBinaryRepresentation; use crate::utils::types::elipsis_fields::ElipsisFields; -use crate::utils::types::hex_display::HexDisplay; pub struct FieldsContext { pub args_display_buf: [u8; 20], @@ -14,7 +14,7 @@ impl FieldsContext { } } pub fn format<'b, 'a: 'b>( - args: &'b HexDisplay<200>, + args: &'b ArgsBinaryRepresentation, field_context: &'a mut FieldsContext, writer: &'_ mut FieldsWriter<'b, 7>, ) { diff --git a/src/app_ui/sign/common/action/function_call_common.rs b/src/app_ui/sign/common/action/function_call_common.rs index 40f9b6b..43ea96e 100644 --- a/src/app_ui/sign/common/action/function_call_common.rs +++ b/src/app_ui/sign/common/action/function_call_common.rs @@ -1,7 +1,4 @@ -use crate::{ - parsing::{self}, - utils::types::elipsis_fields::ElipsisFields, -}; +use crate::{parsing, utils::types::elipsis_fields::ElipsisFields}; use fmt_buffer::Buffer; use ledger_device_sdk::ui::gadgets::Field; diff --git a/src/app_ui/sign/common/action/function_call_str.rs b/src/app_ui/sign/common/action/function_call_str.rs index 1036582..bb30d68 100644 --- a/src/app_ui/sign/common/action/function_call_str.rs +++ b/src/app_ui/sign/common/action/function_call_str.rs @@ -1,4 +1,4 @@ -use crate::utils::types::capped_string::CappedString; +use crate::parsing::types::common::action::function_call::ArgsStringRepresentation; use crate::app_ui::fields_writer::FieldsWriter; use crate::utils::types::elipsis_fields::ElipsisFields; @@ -15,7 +15,7 @@ impl FieldsContext { } } pub fn format<'b, 'a: 'b>( - args: &'b CappedString<200>, + args: &'b ArgsStringRepresentation, field_context: &'a mut FieldsContext, writer: &'_ mut FieldsWriter<'b, 7>, ) { diff --git a/src/app_ui/sign/common/action/mod.rs b/src/app_ui/sign/common/action/mod.rs index 5449086..b4f936c 100644 --- a/src/app_ui/sign/common/action/mod.rs +++ b/src/app_ui/sign/common/action/mod.rs @@ -1,8 +1,7 @@ use crate::{ app_ui::fields_writer::FieldsWriter, handlers::common::action::ActionParams, - parsing, - utils::types::{capped_string::CappedString, hex_display::HexDisplay}, + parsing::{self, types::common::action::function_call::{ArgsBinaryRepresentation, ArgsStringRepresentation}}, }; use fmt_buffer::Buffer; @@ -124,7 +123,7 @@ pub fn ui_display_deploy_contract( pub fn ui_display_function_call_str( func_call_common: &parsing::types::FunctionCallCommon, - args: &CappedString<200>, + args: &ArgsStringRepresentation, params: ActionParams, ) -> bool { let mut writer: FieldsWriter<'_, 7> = FieldsWriter::new(); @@ -141,7 +140,7 @@ pub fn ui_display_function_call_str( pub fn ui_display_function_call_bin( func_call_common: &parsing::types::FunctionCallCommon, - args: &HexDisplay<200>, + args: &ArgsBinaryRepresentation, params: ActionParams, ) -> bool { let mut writer: FieldsWriter<'_, 7> = FieldsWriter::new(); diff --git a/src/handlers/common/action/function_call.rs b/src/handlers/common/action/function_call.rs index cae3564..5e57903 100644 --- a/src/handlers/common/action/function_call.rs +++ b/src/handlers/common/action/function_call.rs @@ -1,3 +1,6 @@ +use crate::parsing::types::common::action::function_call::{ + ArgsBinaryRepresentation, ArgsStringRepresentation, +}; use crate::parsing::types::FunctionCallCommon; use crate::sign_ui; use crate::utils::types::capped_string::CappedString; @@ -31,11 +34,13 @@ pub fn handle( { // '{' char Some(123) => { - let mut args_str: CappedString<200> = CappedString::new(); + let mut args_str: ArgsStringRepresentation = CappedString::new(); match args_str.deserialize_with_bytes_count(stream, args_bytes_count) { Err(err) if err.kind() == ErrorKind::InvalidData => { - let mut args_bin: HexDisplay<200> = unsafe { - core::mem::transmute::, HexDisplay<200>>(args_str) + let mut args_bin: ArgsBinaryRepresentation = unsafe { + core::mem::transmute::( + args_str, + ) }; args_bin.reformat(); ArgsRepr::BinHex(args_bin) @@ -47,7 +52,7 @@ pub fn handle( } } Some(_first_byte) => { - let mut args_bin: HexDisplay<200> = HexDisplay::new(); + let mut args_bin: ArgsBinaryRepresentation = HexDisplay::new(); args_bin .deserialize_with_bytes_count(stream, args_bytes_count) .map_err(|_err| AppSW::TxParsingFail)?; @@ -85,6 +90,6 @@ fn handle_common( } enum ArgsRepr { - String(CappedString<200>), - BinHex(HexDisplay<200>), + String(ArgsStringRepresentation), + BinHex(ArgsBinaryRepresentation), } diff --git a/src/parsing/types/common/action/function_call.rs b/src/parsing/types/common/action/function_call.rs index a1e8f35..6dcd639 100644 --- a/src/parsing/types/common/action/function_call.rs +++ b/src/parsing/types/common/action/function_call.rs @@ -2,9 +2,23 @@ use near_gas::NearGas; use near_token::NearToken; use crate::utils::types::capped_string::CappedString; +use crate::utils::types::hex_display::HexDisplay; use borsh::io::{Read, Result}; use borsh::BorshDeserialize; +#[cfg(target_os = "nanos")] +pub type ArgsStringRepresentation = CappedString<200>; +#[cfg(target_os = "nanos")] +pub type ArgsBinaryRepresentation = HexDisplay<200>; +#[cfg(target_os = "nanosplus")] +pub type ArgsStringRepresentation = CappedString<1000>; +#[cfg(target_os = "nanosplus")] +pub type ArgsBinaryRepresentation = HexDisplay<1000>; +#[cfg(target_os = "nanox")] +pub type ArgsStringRepresentation = CappedString<1000>; +#[cfg(target_os = "nanox")] +pub type ArgsBinaryRepresentation = HexDisplay<1000>; + pub struct FunctionCallCommon { pub method_name: CappedString<50>, pub gas: NearGas,