Skip to content

Commit c4d846b

Browse files
authored
fix: field struct encoding (#977)
1 parent 6064189 commit c4d846b

File tree

1 file changed

+6
-9
lines changed

1 file changed

+6
-9
lines changed

primitives/src/services/field.rs

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ use frame_support::pallet_prelude::*;
2020
#[cfg(feature = "std")]
2121
use serde::{Deserialize, Serialize};
2222
use sp_core::RuntimeDebug;
23-
use sp_std::{boxed::Box, vec};
23+
use sp_std::boxed::Box;
2424

2525
use super::Constraints;
2626

@@ -397,18 +397,15 @@ impl<'a, C: Constraints, AccountId: Encode + Clone> From<&'a Field<C, AccountId>
397397
Field::Uint64(val) => ethabi::Token::Uint((*val).into()),
398398
Field::Int64(val) => ethabi::Token::Int((*val).into()),
399399
Field::String(val) => ethabi::Token::String(val.to_string()),
400-
Field::Array(_, val) => ethabi::Token::Array(val.into_iter().map(Into::into).collect()),
400+
Field::Array(_, val) => {
401+
ethabi::Token::FixedArray(val.into_iter().map(Into::into).collect())
402+
},
401403
Field::List(_, val) => ethabi::Token::Array(val.into_iter().map(Into::into).collect()),
402404
Field::AccountId(val) => ethabi::Token::Bytes(val.encode()),
403-
Field::Struct(_, fields) => ethabi::Token::Array(
405+
Field::Struct(_, fields) => ethabi::Token::Tuple(
404406
fields
405407
.into_iter()
406-
.map(|(field_name, field_value)| {
407-
ethabi::Token::Tuple(vec![
408-
ethabi::Token::String(field_name.to_string()),
409-
field_value.as_ref().clone().into(),
410-
])
411-
})
408+
.map(|(_name, field_value)| field_value.as_ref().clone().into())
412409
.collect(),
413410
),
414411
}

0 commit comments

Comments
 (0)