Back to HomeDeployer Piper Merriam(0xd3CdA9...293601) Deployment Block 81,603 Deployment Date Aug 13, 2015, 10:22 PM Code Size Unknown Gas at Deploy 1,000,000
Key Facts
Deployment Transaction: 0x7725b1734b63765c...9be8c9212388ee03
Description
Owner-controlled dynamic-array member registry. Functions include MemberRegistry(), add/remove/lookup members, kill(). Verified with soljson-v0.1.1+commit.6ff4cd6 and optimizer OFF.
Source Verified
SolidityExact bytecode match0
Compiler: soljson
Backfilled from awesome-ethereum-proofs PR #43.
Heuristic Analysis
The following characteristics were detected through bytecode analysis and may not be accurate.
Detected Type: Unknown
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
Opcodes0
Unique Opcodes0
Jump Instructions0
Storage Operations0
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 MemberRegistry is owned {
address[] members;
uint numMembers = 0;
uint activeMemberCount = 0;
mapping(address => bool) isMember;
mapping(address => uint) memberIndex;
modifier onlyMember() {
if (isMember[msg.sender] == true) _
}
function MemberRegistry() {
isMember[msg.sender] = true;
members[numMembers] = msg.sender;
memberIndex[msg.sender] = numMembers;
activeMemberCount++;
numMembers++;
}
function kill() {
if (msg.sender == owner) {
suicide(owner);
}
}
function addMember(address member) onlyMember returns (bool) {
if (isMember[member]) {
return false;
}
isMember[member] = true;
members[numMembers] = member;
memberIndex[member] = numMembers;
activeMemberCount++;
numMembers++;
return true;
}
function removeMember(address member) onlyMember returns (bool) {
if (!isMember[member]) {
return false;
}
isMember[member] = false;
members[memberIndex[member]] = address(0);
activeMemberCount--;
return true;
}
function checkMembership(address member) returns (bool) {
return isMember[member];
}
}