Back to Home

Controller

program
0x3c94923400cc...fca06fe332e5
FrontierContract #1,196Exact Bytecode MatchEdit this contract
Deployed September 17, 2015 (10 years ago)Block 247,976

A forwarding proxy contract by Thomas Bertani (Oraclize team) that relays set(uint256) calls to a hardcoded target contract and serves as the admin gate for the

Key Facts

Deployment Block
247,976
Deployment Date
Sep 17, 2015, 01:36 PM
Code Size
214.0 B
Gas at Deploy
85,142
Transactions by Year
20151

Description

Controller is a 158-byte proxy contract deployed on September 17, 2015 (block 247,976). It forwards set(uint256) calls to a hardcoded target at 0x9e0ae8ffd946d12d1d393c6f3bca0eecadc9428e (the same target used by the sibling GetSet contract at 0x77beac0aed3b9e75ee2aba60b3dec66ff47e96c2). The get() function returns the constant 0xff (255) without touching storage.

The contract sits in the middle of a three-contract network deployed the same day: Pool5x (0x246b342b0fd5a8ad8d267e02ae860c71fba8eebe) calls Controller's address for admin authorization in its finalize() function, Controller forwards to the target at 0x9e0ae8ffd946d12d1d393c6f3bca0eecadc9428e. This layered forwarding structure is typical of early Oraclize experiments with upgradable contract routing patterns.

The CALL forwarding uses a typed contract interface with gas = GAS - 25050 (enough for a standard set-and-event-emit pattern) and require(success) via the v0.1.x throw pattern. The contract was called exactly once after deployment: a test call with value 21 from the deployer at block 247,980.

Source Verified

SolidityExact bytecode match(214 bytes)
Compiler: soljson

Exact bytecode match (init + runtime). Runtime: 158 bytes. Creation: 214 bytes (56 bytes init). Typed contract call with local variable assignment. Called once (test set call with value 21).

Heuristic Analysis

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

Detected Type: program

Frontier Era

The initial release of Ethereum. A bare-bones implementation for technical users.

Block span: 01,149,999
July 30, 2015March 14, 2016

Bytecode Overview

Opcodes214
Unique Opcodes70
Jump Instructions7
Storage Operations3

Verified Source Available

Source verified through compiler archaeology and exact bytecode matching.

View Verification Proof
Show source code (Solidity)
contract T {
    function set(uint256 x);
}

contract Controller {
    T target = T(0x9e0ae8ffd946d12d1d393c6f3bca0eecadc9428e);

    function set(uint256 x) {
        T t = target;
        t.set(x);
    }

    function get() returns (uint8) {
        return 0xff;
    }
}

External Links