Dado el siguiente conjunto de contratos, el objetivo es implementar un convertidor de bytes a bytes para que las estructuras puedan pasarlas de un contrato a otro en forma de bytes. Suponga que los contratos de almacenamiento y controlador tienen diferentes direcciones en la red. StructDefiner nunca se implementa por sí solo y se usa como parte de Storage o Controller.
// SPDX-License-Identifier: MIT pragma solidity ^0.8.12; contract StructDefiner { struct MyStruct { uint256 someField; address someAddress; uint128 someOtherfield; uint128 oneMoreField; } } contract Storage { StructDefiner.MyStruct[] internal structs; function getStructByIdx(uint256 idx) external view returns (bytes memory) { assembly { //Your code } } } contract Controller { Storage internal storag; constructor(address _storage) { storag = Storage(_storage); } function getStruct(uint256 idx) public view returns (StructDefiner.MyStruct memory myStruct) { bytes memory _myStruct = storag.getStructByIdx(idx); assembly { //your code } } } I am a beginner in solidity and assembly language please give me some idea how I can solve this problem.