Imagine I have a function with such signature in Solidity:

function doThing(bytes[] calldata arr) external;

how are elements of arr are packed in bytes? I would say that first 4 bytes is bytes4(keccak256("doThing")), then 32 bytes with arguments offset for array beginning. On this offset we have length of array (32 bytes). And then again, for every bytes element, we have an offset, length, and elements. Am I right? It would be cool to see some


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.