From 5042f26b7ead2aee992542daacf72bf0268de3e1 Mon Sep 17 00:00:00 2001 From: Yash Date: Mon, 27 Oct 2025 21:26:45 +0530 Subject: [PATCH 1/3] memory specifier in abi gen for struct return types --- stylus-proc/src/macros/derive/abi_type/mod.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/stylus-proc/src/macros/derive/abi_type/mod.rs b/stylus-proc/src/macros/derive/abi_type/mod.rs index 925fc0cd..d57220c1 100644 --- a/stylus-proc/src/macros/derive/abi_type/mod.rs +++ b/stylus-proc/src/macros/derive/abi_type/mod.rs @@ -73,6 +73,8 @@ impl DeriveAbiTypeGenerator { .concat(#fields_selector_abis) )* .concat(#ConstString::new(")")); + + const EXPORT_ABI_RET: #ConstString = #ConstString::new(#name_str).concat(#ConstString::new(" memory")); } } } @@ -136,6 +138,7 @@ mod tests { .concat(stylus_sdk::abi::ConstString::new(",")) .concat(::SELECTOR_ABI) .concat(stylus_sdk::abi::ConstString::new(")")); + const EXPORT_ABI_RET: stylus_sdk::abi::ConstString = stylus_sdk::abi::ConstString::new("Foo").concat(stylus_sdk::abi::ConstString::new(" memory")); } }; assert_ast_eq(result, expected); From df42de70f41345b28a38ea500399c5f7b3176997 Mon Sep 17 00:00:00 2001 From: Yash Date: Mon, 27 Oct 2025 22:17:09 +0530 Subject: [PATCH 2/3] update test abi --- stylus-proc/tests/contract_abi.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stylus-proc/tests/contract_abi.rs b/stylus-proc/tests/contract_abi.rs index 70212802..861fc4a8 100644 --- a/stylus-proc/tests/contract_abi.rs +++ b/stylus-proc/tests/contract_abi.rs @@ -42,7 +42,7 @@ interface ICounter is ITrait1, ITrait2 { function mixed(MixedInput input) external; - function mixedResult() external view returns (MixedResult); + function mixedResult() external view returns (MixedResult memory); struct MixedResult {uint256 number;string text;uint256 number2;} } From 7ecc5877e2c05b4ac31829ec54d80d0280274cbf Mon Sep 17 00:00:00 2001 From: Yash Date: Mon, 27 Oct 2025 22:21:02 +0530 Subject: [PATCH 3/3] update autogen abi in examples --- examples/nested_structs/abi.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/nested_structs/abi.sol b/examples/nested_structs/abi.sol index cb1982ae..fdc65985 100644 --- a/examples/nested_structs/abi.sol +++ b/examples/nested_structs/abi.sol @@ -11,7 +11,7 @@ interface INestedStructs { function addDogs(address user, Dog[] memory dogs) external; - function getUser(address _address) external view returns (User); + function getUser(address _address) external view returns (User memory); function getAllUsers() external view returns (User[] memory);