From 73e0dab85fade29c3270cd60eff226a5d7a2811b Mon Sep 17 00:00:00 2001 From: Pavel Prokhorov Date: Fri, 20 Dec 2024 22:11:08 +0300 Subject: [PATCH] Fallback to string if bytevector decoding fails --- src/model/transaction/invoke_script_transaction.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/model/transaction/invoke_script_transaction.rs b/src/model/transaction/invoke_script_transaction.rs index 4a1fbac..009003f 100644 --- a/src/model/transaction/invoke_script_transaction.rs +++ b/src/model/transaction/invoke_script_transaction.rs @@ -225,9 +225,13 @@ fn map_args(value: &Value) -> Result> { "integer" | "Int" => { Arg::Integer(JsonDeserializer::safe_to_int_from_field(&arg, "value")?) } - "binary" | "ByteVector" => Arg::Binary(Base64String::from_string( - &JsonDeserializer::safe_to_string_from_field(&arg, "value")?, - )?), + "binary" | "ByteVector" => { + let val = JsonDeserializer::safe_to_string_from_field(&arg, "value")?; + match Base64String::from_string(&val) { + Ok(b) => Arg::Binary(b), + Err(_) => Arg::String(val), + } + } "list" | "List" | "Array" => { let result = map_args(&arg["value"])?; Arg::List(result)