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.
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, 2015EthereumAlarmClock
Same deployerThe second contract deployed by Piper Merriam on September 22, 2015, within hours of the Ethereum Alarm Clock v1, representing the first same-day iteration of t
0x223294...6036c2September 22, 2015