- Get the current implementation contract address from the upgrade beacon via
STATICCALL
- Then, put calldata in memory to supply as argument in
DELEGATECALL
to implementation - Finally, return or revert based on
DELEGATECALL
status, supplying return buffer in either case - 48 bytes long when using an upgrade beacon with a compact address (starts with 5 zero bytes)
0x59595959365960205959596e<upgrade_beacon_last_15_bytes>5afa1551368280375af43d3d93803e602e57fd5bf3
pc op name [stack] <memory> {return_buffer} *return* ~revert~