Back to Home

Counter

Experimental
0xfef1f3d23055...4ccf5b92cad3
FrontierContract #559Exact Bytecode MatchEdit this contract
Deployed August 27, 2015 (11 years ago)Block 152,862

An 89-byte contract with a public uint8 that any plain transfer increments, but only once: the guard permits the step only while the value is still zero.

Frontier EraVerified Source

Historical Significance

A one-shot latch rather than a counter, and a compact demonstration of storage packing: the uint8 is masked into the low byte of a full 32-byte slot, so the increment compiles into a read, a mask, an add and a write rather than a single store. That packing behaviour was one of the details early developers had to see in bytecode to believe.

Context

Deployed 2015-08-27 by 0xfd2605a2bf58fdbb90db1da55df61628b47f9e8c. One instance of this runtime is known. Source recovered by exact runtime bytecode match, verified on Sourcify and Etherscan.

Key Facts
Deployment Block
152,862
Deployment Date
Aug 27, 2015, 10:31 PM
Code Size
106.0 B
Gas at Deploy
45,541
Transactions by Year
20155

Description

The contract holds a single public uint8 named a in storage slot 0, exposed by the automatic getter at selector 0x0dbe671f. Every call that is not that getter falls through to the fallback, which checks whether a is zero and increments it if so. Because the guard requires a == 0, the counter can only ever move from 0 to 1 and then stops. Nothing can reset it, and the contract holds no other state and accepts no arguments.

Source Verified

SolidityExact bytecode match(106 bytes)
Compiler: v0.1.3+
Heuristic Analysis

The following characteristics were detected through bytecode analysis and may not be accurate.

Detected Type: Experimental

Bytecode Overview

Opcodes106
Unique Opcodes40
Jump Instructions7
Storage Operations4

External Links

Related contracts