Back to Home

Members

Unknown
0xc6810e1f97ba...393ab6db4e6f
FrontierContract #252Exact Bytecode MatchEdit this contract
Deployed August 14, 2015 (10 years ago)Block 85,942

Owner-controlled member registry using sequential id + mapping storage.

Key Facts

Deployer
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

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: 01,149,999
July 30, 2015March 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 Proof
Show 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];
    }

}

External Links