1

my contract bytecode which is generated by go-ethereum abigen has something like

0x60806040523480156200001157600080fd5b5060026000620000266200015d60201b60201c565b905060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c53....

what does it means??

miketsui3a
  • 83
  • 3
  • You can use a smart contract disassembler to figure out what those sections are. Without having the smart contract source code and compiling it ourselves, we cannot tell. – Mikko Ohtamaa Apr 30 '21 at 09:00

1 Answers1

1

All of those FF... sequences are the same length - 40 hex characters, which is 20 bytes:

ffffffffffffffffffffffffffffffffffffffff
^                                      ^
+-------------- 20 bytes --------------+

What else is 20 bytes? Ethereum addresses. (Background: How are ethereum addresses generated?)

What these sequences of bytes represent are bitmasks which are used to extract 20-byte addresses from the 32-byte storage slots used by the EVM.

See my answer to this previous question to understand more: Why in some contracts I see: If (condition_1 & 0xfffffffffffffff...)?

Richard Horrocks
  • 37,835
  • 13
  • 87
  • 144