Historical Significance
Pool is an early example of the deposit-and-distribute pattern that would later appear in ICOs, staking contracts, and DeFi protocols. The admin-gated payout with a fixed multiplier (5x) and per-address deposit limit shows experimentation with economic incentive structures on Ethereum during its first weeks of operation.
Context
Deployed during the Frontier era, seven weeks after Ethereum mainnet launch. Solidity v0.1.1 was the current compiler. Thomas Bertani and the Oraclize team were among the most active deployers in this period, experimenting with contract-to-contract call patterns, access control, and payable functions. This contract is part of a cluster of interconnected Bertani test contracts deployed on September 17, 2015.
Key Facts
Description
Verified with soljson-v0.1.1+commit.6ff4cd6 and optimizer ON.
Source Verified
Backfilled from awesome-ethereum-proofs PR #47.
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)
contract Pool {
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;
balances[msg.sender] = msg.value;
}
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
Related contracts
Target
Same deployerTarget contract.
0x9e0ae8...c9428eSeptember 17, 2015GetSet
Same deployerA minimal getter/setter proxy from the Oraclize team. set() forwards calls to a hardcoded target contract, get() returns constant 255.
0x77beac...7e96c2September 17, 2015Controller
Same deployerController contract.
0x3c9492...e332e5September 17, 2015Pool
Same deployerRevised Pool5x lottery prototype by Bertani (Oraclize), deployed 17 blocks after v1. Stores 5x msg.value and emits debug log events.
0xbb5cda...c483f9September 17, 2015Insurance
Same deployerBertani's pre-hackathon prototype of InsurETH, deployed twelve hours before Hack The Block London opened.
0x38ac81...22049bSeptember 18, 2015EthXbt
Same deployerAn Oraclize price ticker that fetches the ETH/Bitcoin (ETH/XBT) rate from Kraken, deployed at DEVCON1 in November 2015.
0x3c025c...dd3142November 19, 2015