diff --git a/contracts/feature-tests/abi-tester/abi_tester_expected_main.abi.json b/contracts/feature-tests/abi-tester/abi_tester_expected_main.abi.json index 661ec87542..934e0e51c2 100644 --- a/contracts/feature-tests/abi-tester/abi_tester_expected_main.abi.json +++ b/contracts/feature-tests/abi-tester/abi_tester_expected_main.abi.json @@ -394,11 +394,15 @@ "mutability": "readonly", "inputs": [ { - "name": "_arg", + "name": "arg", "type": "AbiWithManagedBufferReadToEnd" } ], - "outputs": [] + "outputs": [ + { + "type": "bytes" + } + ] }, { "name": "payable_egld", diff --git a/contracts/feature-tests/abi-tester/src/abi_proxy.rs b/contracts/feature-tests/abi-tester/src/abi_proxy.rs index cc62957853..c13a4a4e2d 100644 --- a/contracts/feature-tests/abi-tester/src/abi_proxy.rs +++ b/contracts/feature-tests/abi-tester/src/abi_proxy.rs @@ -378,12 +378,12 @@ where Arg0: ProxyArg>, >( self, - _arg: Arg0, - ) -> TxTypedCall { + arg: Arg0, + ) -> TxTypedCall> { self.wrapped_tx .payment(NotPayable) .raw_call("takes_object_with_managed_buffer_read_to_end") - .argument(&_arg) + .argument(&arg) .original_result() } diff --git a/contracts/feature-tests/abi-tester/src/abi_tester.rs b/contracts/feature-tests/abi-tester/src/abi_tester.rs index 58f81bccac..de54b21046 100644 --- a/contracts/feature-tests/abi-tester/src/abi_tester.rs +++ b/contracts/feature-tests/abi-tester/src/abi_tester.rs @@ -175,8 +175,9 @@ pub trait AbiTester { #[view] fn takes_object_with_managed_buffer_read_to_end( &self, - _arg: AbiWithManagedBufferReadToEnd, - ) { + arg: AbiWithManagedBufferReadToEnd, + ) -> ManagedBuffer { + arg.flush.to_managed_buffer() } #[endpoint] diff --git a/framework/base/src/types/managed/wrapped/managed_buffer_read_to_end.rs b/framework/base/src/types/managed/wrapped/managed_buffer_read_to_end.rs index fbc05b13d9..ac767ffbe4 100644 --- a/framework/base/src/types/managed/wrapped/managed_buffer_read_to_end.rs +++ b/framework/base/src/types/managed/wrapped/managed_buffer_read_to_end.rs @@ -18,6 +18,11 @@ impl ManagedBufferReadToEnd { pub fn new_from_buf(buf: ManagedBuffer) -> Self { Self { buffer: buf } } + + #[inline] + pub fn to_managed_buffer(&self) -> ManagedBuffer { + self.buffer.clone() + } } impl PartialEq for ManagedBufferReadToEnd {