Back to Home

Pool

program
0xbb5cdae9cc52...e1f718c483f9
FrontierContract #1,210Exact Bytecode MatchEdit this contract
Deployed September 17, 2015 (10 years ago)Block 249,420

Revised Pool5x lottery prototype by Bertani (Oraclize), deployed 17 blocks after v1. Stores 5x msg.value and emits debug log events.

Key Facts

Deployment Block
249,420
Deployment Date
Sep 17, 2015, 08:38 PM
Code Size
666.0 B
Gas at Deploy
194,561
Transactions by Year
20151

Description

Pool5x v2 is a 647-byte revision of the original Pool5x contract (0x246b342b0fd5a8ad8d267e02ae860c71fba8eebe), deployed by Thomas Bertani and the Oraclize team about 5 minutes after the original at block 249,420 on September 17, 2015. The structure and admin gate (0x3c94923400ccc528e8ab0f849edafca06fe332e5, the Controller proxy) are identical to v1, with two functional changes:

  1. Stores 5x msg.value on register: depositors receive 5x credit immediately upon registering, rather than just being credited their deposit amount. The finalize() function then pays 5x of the stored balance, effectively a 25x multiplier overall (likely a bug or experiment -- v1 paid 5x of the actual deposit).

  2. Emits log events: register() now emits log(uint256) events with constants 11 and 12 around the storage write, presumably for off-chain monitoring or debugging during testing.

The source uses an unnamed event parameter (event log(uint256);). A named-parameter version (event log(uint256 x);) compiles to bytecode with 233 byte differences -- the unnamed form generates a different memory layout for the LOG opcode setup despite both producing the same total size.

This contract is part of the Bertani Sept 17, 2015 cluster. Full deployment chain:

  • Block 247,409: Target (0x9e0ae8ffd946d12d1d393c6f3bca0eecadc9428e) -- bare storage cell
  • Block 247,715: GetSet (0x77beac0aed3b9e75ee2aba60b3dec66ff47e96c2) -- proxy forwarding to Target
  • Block 247,976: Controller (0x3c94923400ccc528e8ab0f849edafca06fe332e5) -- another proxy forwarding to Target
  • Block 249,403: Pool5x v1 (0x246b342b0fd5a8ad8d267e02ae860c71fba8eebe) -- lottery prototype using Controller as admin
  • Block 249,420: Pool5x v2 (this contract) -- revised lottery with events and 5x deposit credit

Source Verified

SolidityExact bytecode match(666 bytes)
Compiler: soljson

Exact bytecode match (init + runtime). Runtime: 647 bytes. Creation: 666 bytes (19 bytes init). Revised Pool5x with log events and 5x deposit credit. Uses unnamed event parameter (named version produces different bytecode).

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

Opcodes666
Unique Opcodes105
Jump Instructions24
Storage Operations8

Verified Source Available

Source verified through compiler archaeology and exact bytecode matching.

View Verification Proof
Show source code (Solidity)
contract Pool {
    event log(uint256);

    address constant admin = 0x3c94923400ccc528e8ab0f849edafca06fe332e5;
    mapping(address => uint) public balances;

    function register(string a, string b, string c, uint d) returns (uint) {
        if (balances[msg.sender] > 0) return;
        log(11);
        balances[msg.sender] = 5 * msg.value;
        log(12);
    }

    function get() returns (uint) {
        return balances[msg.sender];
    }

    function finalize(address beneficiary, uint fixPoolSupply) {
        if (admin != msg.sender) return;
        if (fixPoolSupply > 0) {
            beneficiary.send(5 * balances[beneficiary]);
        }
        balances[beneficiary] = 0;
    }
}

External Links