Bytecode verified via sibling
This contract shares identical runtime bytecode with Pinger (0x128561d2...) which has been verified through compiler archaeology.
A November 2015 test harness that calls move(uint8) back on whoever pings it, cycling through four directions.
Historical Significance
ping() counts how many times it has been called and calls move(uint8) on msg.sender with that count modulo four, so a contract that pings it repeatedly is driven through directions 0, 1, 2, 3 and round again. times_called() reads the counter and reset() puts it back to zero, both unguarded. The call is made blind: nothing checks that the caller has a move function, and the return value is discarded. Source recovered by exact bytecode match: solc v0.1.6+commit.d41f8b7c with the optimizer on reproduces all 206 bytes of the creation transaction.
Context
Deployed in 2015 on the Ethereum Frontier network.
Key Facts
Description
ping() counts how many times it has been called and calls move(uint8) on msg.sender with that count modulo four, so a contract that pings it repeatedly is driven through directions 0, 1, 2, 3 and round again. times_called() reads the counter and reset() puts it back to zero, both unguarded. The call is made blind: nothing checks that the caller has a move function, and the return value is discarded. Source recovered by exact bytecode match: solc v0.1.6+commit.d41f8b7c with the optimizer on reproduces all 206 bytes of the creation transaction.
Source Verified
Heuristic Analysis
The following characteristics were detected through bytecode analysis and may not be accurate.
Frontier Era
The initial release of Ethereum. A bare-bones implementation for technical users.
Bytecode Overview
Verified Source Available
Source verified through compiler archaeology and exact bytecode matching.
View Verification ProofShow source code (Solidity)
// Submitted by EthereumHistory (ethereumhistory.com)
contract Player {
function move(uint8 direction) {}
}
contract Pinger {
uint public times_called;
function ping() {
Player(msg.sender).move(uint8(times_called % 4));
times_called += 1;
}
function reset() {
times_called = 0;
}
}External Links
Related contracts
Pinger
Same deployerA November 2015 test harness that calls move(uint8) back on whoever pings it, cycling through four directions.
0x128561...4128bcNovember 7, 2015Contract 0x700bb6...851902
Same deployerA November 2015 test harness that calls move(uint8) back on whoever pings it, cycling through four directions.
0x700bb6...851902November 8, 2015Contract 0xaf364b...c83412
Same deployerA November 2015 test harness that calls move(uint8) back on whoever pings it, cycling through four directions.
0xaf364b...c83412November 8, 2015Contract 0xb7ec9c...5d17d9
Same deployerA November 2015 test harness that calls move(uint8) back on whoever pings it, cycling through four directions.
0xb7ec9c...5d17d9November 9, 2015Contract 0x58e5bd...1b7b42
Same deployerA November 2015 test harness that calls move(uint8) back on whoever pings it, cycling through four directions.
0x58e5bd...1b7b42November 10, 2015