1

Lately I am coming across different deployment tx data patterns. I am already familiar with how the free memory pointer is shifted from the usual 80 when there are immutables in the code (great explanation here).

However, I have seen a new one in this contract deployment:

https://bscscan.com/tx/0xe7842e9c9edc0591239fda6b006d11dc0ccbddba9ad2a8bfbc6d53502bed5338

The data starts with 0x61088480. Reading through the opcodes I have not been able to figure what it is really doing. Does anyone have a clue?

1
  • This is not a short answer. Rather an external link to a series of 6 articles from OpenZeppelin explaining the deconstruction of a Solidity Smart Contract into its assembly bytecode and how deployment and runtime code works.
    – BonisTech
    Commented Aug 8, 2023 at 7:28

1 Answer 1

1

Hi Developer advocate from Chainstack here.

Basically 0x61088480 means

61-0884: PUSH2 0884

80: DUP 0884 from the first stack

You can find the reference here.

1
  • 1
    Yes, I understand the opcodes being used here and the data that is being pushed onto the stack by them, and the subsequent operations. My question is WHY is this pattern being used and what changes does it mean versus the usual 0x60806040, that points the free memory pointerto 80 in order to start loading the contract bytecode there. I don not see the meaning of this new deployment pattern I am asking about. Commented Feb 7, 2023 at 10:18

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.