Back to HomeDeployer Piper Merriam(0xd3CdA9...293601) Deployment Block 85,942 Deployment Date Aug 14, 2015, 04:52 PM Code Size 1.5 KB Gas at Deploy 466,348
Deployed August 14, 2015 (10 years ago)Block 85,942
Owner-controlled member registry using sequential id + mapping storage.
Key Facts
Deployment Transaction: 0x40492550cc56a066...cc1f1d37cc9deee5
Description
Owner-controlled member registry using sequential id + mapping storage. Functions include Members(), addMember(address), removeMember(address), isMember(address), kill(). Verified with soljson-v0.1.1+commit.6ff4cd6 and optimizer OFF.
Source Verified
SolidityExact bytecode match(1,496 bytes)
Compiler: soljson
Backfilled from awesome-ethereum-proofs PR #40.
Heuristic Analysis
The following characteristics were detected through bytecode analysis and may not be accurate.
Detected Type: Unknown
Contains SELFDESTRUCT opcode
Frontier Era
The initial release of Ethereum. A bare-bones implementation for technical users.
Block span: 0 — 1,149,999
July 30, 2015 — March 14, 2016
Bytecode Overview
Opcodes1,496
Unique Opcodes70
Jump Instructions35
Storage Operations41
Verified Source Available
Source verified through compiler archaeology and exact bytecode matching.
View Verification ProofShow source code (Solidity)
contract owned {
address owner;
function owned() {
owner = msg.sender;
}
modifier onlyOwner { if (msg.sender == owner) _ }
}
contract Members is owned {
uint nextId = 0;
uint count = 0;
mapping(uint => address) members;
mapping(address => bool) isMember;
mapping(address => uint) memberId;
modifier onlyMembers() {
if (isMember[msg.sender] == true) _
}
function Members() {
isMember[msg.sender] = true;
members[nextId] = msg.sender;
memberId[msg.sender] = nextId;
count++;
nextId++;
}
function kill() {
if (msg.sender == owner) {
suicide(owner);
}
}
function addMember(address account) onlyMembers returns (bool) {
if (isMember[account]) {
return false;
}
isMember[account] = true;
members[nextId] = account;
memberId[account] = nextId;
count++;
nextId++;
return true;
}
function removeMember(address account) onlyMembers returns (bool) {
if (!isMember[account]) {
return false;
}
isMember[account] = false;
members[memberId[account]] = 0;
count--;
return true;
}
function checkMembership(address account) returns (bool) {
return isMember[account];
}
}