Back to HomeDeployer Piper Merriam(0xd3CdA9...293601) Deployment Block 85,716 Deployment Date Aug 14, 2015, 03:54 PM Code Size Unknown Gas at Deploy 3,141,592
Deployed August 14, 2015 (10 years ago)Block 85,716
An Ethereum Public Trust roster contract for adding, removing, and checking members.
Key Facts
Deployment Transaction: 0xc62827c6bc4057d7...ce861be7f0f9f2c0
Description
A Piper Merriam contract for the Ethereum Public Trust that maintains a mutable member list under owner control. It combines early ownership, mortal, and membership-management patterns in a single August 2015 deployment.
Source Verified
SolidityExact bytecode match0
Compiler: soljson
Merged into awesome-ethereum-proofs and backfilled from proof repo.
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 {
function owned() { owner = msg.sender; }
address owner;
modifier onlyowner { if (msg.sender == owner) _ }
}
contract mortal is owned {
function kill() onlyowner {
suicide(owner);
}
}
contract MembershipRoster is mortal {
address[] members;
uint currentIndex = 0;
uint memberCount = 0;
mapping (address => bool) isMember;
mapping (address => uint) memberIndex;
modifier onlymember { if (isMember[msg.sender] == true) _ }
function MembershipRoster() {
isMember[msg.sender] = true;
members[currentIndex] = msg.sender;
memberIndex[msg.sender] = currentIndex;
memberCount++;
currentIndex++;
}
function addMember(address _address) onlymember public returns (bool successful) {
if ( isMember[_address] ) {
return false;
}
isMember[_address] = true;
members[currentIndex] = _address;
memberIndex[_address] = currentIndex;
memberCount++;
currentIndex++;
return true;
}
function removeMember(address _address) onlymember public returns (bool successful) {
if ( !isMember[_address] ) {
return false;
}
isMember[_address] = false;
members[memberIndex[_address]] = 0x0;
memberCount--;
return true;
}
function checkMembership(address _address) public returns (bool addressIsMember) {
return isMember[_address];
}
}
contract EthereumPublicTrust is mortal{
address membershipRoster;
function setMembershipRoster(address _address) onlyowner public {
membershipRoster = _address;
}
}