From 5910b2357432c224ed44d1566c26f3596341d991 Mon Sep 17 00:00:00 2001 From: Alexandru Popenta Date: Tue, 2 Jul 2024 15:28:28 +0300 Subject: [PATCH] fix set payload from list --- multiversx_sdk/abi/struct_value.py | 2 +- multiversx_sdk/abi/struct_value_test.py | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/multiversx_sdk/abi/struct_value.py b/multiversx_sdk/abi/struct_value.py index 6f3f0b37..268b72c4 100644 --- a/multiversx_sdk/abi/struct_value.py +++ b/multiversx_sdk/abi/struct_value.py @@ -35,7 +35,7 @@ def set_payload(self, value: Any): native_list, ok = convert_native_value_to_list(value, raise_on_failure=False) if ok: - set_fields_from_list(self.fields, native_list[1:]) + set_fields_from_list(self.fields, native_list) return raise ValueError("cannot set payload for struct (should be either a dictionary or a list)") diff --git a/multiversx_sdk/abi/struct_value_test.py b/multiversx_sdk/abi/struct_value_test.py index 647be1f2..460c35bc 100644 --- a/multiversx_sdk/abi/struct_value_test.py +++ b/multiversx_sdk/abi/struct_value_test.py @@ -19,6 +19,11 @@ def test_set_payload_and_get_payload(): Field("b", BigUIntValue()) ]) + # From list + value.set_payload([39, 40]) + assert value.fields == [Field("a", U32Value(39)), Field("b", BigUIntValue(40))] + assert value.get_payload() == SimpleNamespace(a=39, b=40) + # From SimpleNamespace value.set_payload(SimpleNamespace(a=41, b=42)) assert value.fields == [Field("a", U32Value(41)), Field("b", BigUIntValue(42))]