When any contract function is called - delegatecall or otherwise - the EVM loads the requisite pointers & values into that call frame's volatile stack/memory.

Example: Let's say we have contract A delegatecalling to contract Delegate.

Unless you explicitly:

a) align both the caller+delegate contract storage

b) explicitly pass in the caller contract's storage reference addresses as arguments to use in the function's call frame

your storage pointers are left up to the Delegate's standard function context.

Any correction/insight on this front is appreciated. Thank you.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.