# 编码和解码

By [web3zoom](https://paragraph.com/@web3zoom) · 2025-07-22

---

    // SPDX-License-Identifier: GPL-3.0
    
    pragma solidity ^0.8.30;
    
    contract AbiDecode{
        struct MyStruct {
            string name;
            uint[] nums;
        }
    
        function encode(
            uint x, 
            address addr,
            uint[] calldata arr,
            MyStruct calldata myStruct
        ) external pure returns(bytes memory){
            return abi.encode(x,addr,arr,myStruct);
        }
    
        function decode(bytes calldata data) external pure returns(
             uint x, 
            address addr,
            uint[] memory arr,
            MyStruct memory myStruct
        ) {
          (x,addr,arr,myStruct) = abi.decode(data, (uint, address, uint[], MyStruct));
        }
    }

---

*Originally published on [web3zoom](https://paragraph.com/@web3zoom/jC40sIL0uuj0PZLRez8z)*
