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.
Historian Categories
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, 2015SimpleStorage
Same deployerThe storage example rewired to send a wei and return a constant
0x7aa73b...46473bSeptember 17, 2015Controller
Same deployerController contract.
0x3c9492...e332e5September 17, 2015GetSet
Same deployerA 57-byte test contract: set() stores the transaction's ether value into storage slot 0, and get() reads it back.
0xe595e8...423530September 17, 2015GetSet
Same deployerA 57-byte test contract: set() stores the transaction's ether value into storage slot 0, and get() reads it back.
0xd17e9b...03b76aSeptember 17, 2015