Skip to content

Deployable bytecode attempts to access calldata #1399

@Pet3ris

Description

@Pet3ris

Hi There,

I'm trying to understand vyper constructor usage patterns. When compiling the example Vyper erc20 contract, the output (deployed) bytecode looks like this:

0x600035...000f3

The second opcode 0x35 is CALLDATALOAD. Given that in the EVM specification, contract creation calls assume calldata == [], how is calldata used in this case?

In Solidity, a comparable example would not include CALLDATALOAD in the executable part of deployed bytecode, reserving it instead for the runtime bytecode portion.

Let me know if I'm misunderstanding!

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugBug that shouldn't change language semantics when fixed.enhancement

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions