Key Facts
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
Backfilled from awesome-ethereum-proofs PR #43.
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 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];
}
}External Links
Related contracts
Members
Same deployerOwner-controlled member registry with array + mapping tracking.
0xaeb2ac...a5fd37August 14, 2015MembershipRoster
Same deployerAn Ethereum Public Trust roster contract for adding, removing, and checking members.
0xf1d327...aa0455August 14, 2015KillMul
Same deployerTest/utility contract with `suicide(address)` kill switch and a `multiply2` helper.
0x3e5e1f...7c78cdAugust 14, 2015Members
Same deployerOwner-controlled member registry using sequential id + mapping storage.
0xc6810e...db4e6fAugust 14, 2015EthereumAlarmClock
Same deployerThe first deployment of Piper Merriam's Ethereum Alarm Clock, a smart contract protocol for scheduling transactions at future block numbers, launched on Septemb
0xb0059e...cc0cc1September 22, 2015CallerPool
Same deployerThe bonded caller pool of the Ethereum Alarm Clock: callers post a bond, take turns being the designated executor, and forfeit it if they miss.
0x329219...fc3e8bSeptember 22, 2015