A ledger of kidney donor and recipient pairs from the kidner project, with health details, a doctor's signature and contact information per certificate.
Key Facts
Description
Each certificate pairs a donor and a recipient, records both parties' health data and a doctor's signature, and can be edited, checked or removed by its owner.
Source Verified
Exact runtime and creation bytecode match with soljson v0.1.6+commit.d41f8b7c, optimizer on. Source: github.com/sajz/kidner-project CertificateLedger/certificateLedger.sol, revision with blob 9aee4c1f46 (author original, verbatim). Verified on Etherscan. Not submitted to Sourcify: its oldest supported compiler is v0.1.7.
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)
// Submitted by EthereumHistory (ethereumhistory.com)
contract CertificateLedger
{
struct Certificate
{
uint CertificateID;
uint RecipientID;
uint RecipientHealth;
uint DonorID;
uint DonorHealth;
address DoctorSig;
uint Contact;
uint TimeStamp;
bool ValidPair;
}
uint CertificateCount=0;
mapping(uint => Certificate) CertificateList;
address Owner;
function CertificateLedger()
{
Owner = msg.sender;
}
function createNewPair(uint Rid, uint RHealth, uint Did, uint DHealth, uint contact, uint Date)
{
CertificateCount++;
CertificateList[CertificateCount] = (Certificate(CertificateCount, Rid, RHealth, Did, DHealth, msg.sender, contact, Date, true));
}
function getrandomnr() constant returns (uint)
{
return 205;
}
function GetRecipientID(uint ID) constant returns (uint)
{
if(ID-1 >= 0)
{
return CertificateList[ID-1].RecipientID;
}
return 100;
}
function EditCert(uint ID, uint RHealth, uint DHealth, uint Date, bool stillValid)
{
Certificate ChangedCert = CertificateList[ID-1];
if(ChangedCert.DoctorSig != msg.sender) return;
if(RHealth != 0) ChangedCert.RecipientHealth = RHealth;
if(DHealth != 0) ChangedCert.DonorHealth=DHealth;
if(Date != 0) ChangedCert.TimeStamp=Date;
ChangedCert.ValidPair=stillValid;
}
function checkCert(uint ID) constant returns (uint)
{
Certificate cert1 = CertificateList[ID-1];
for(uint i=0; i < CertificateCount; ++i)
{
Certificate cert2 = CertificateList[i];
if(cert1.ValidPair == false) return 0;
if(cert2.ValidPair == false) return 0;
if((cert1.DonorHealth - cert2.RecipientHealth) > 5) return 0;
if((cert2.DonorHealth- cert1.RecipientHealth) > 5) return 0;
return CertificateList[i].Contact;
}
}
function remove()
{
if(msg.sender == Owner) suicide(msg.sender);
}
function wave() constant returns (string)
{
return "Yay yay yay, a kidney cert ledger!";
}
}External Links
Related contracts
CertificateLedger
Same deployerA ledger of kidney donor and recipient pairs from the kidner project, with health details, a doctor's signature and contact information per certificate.
0x4915f5...a6750fNovember 8, 2015Greeter
Same eraA HelloWorld greeter deployed at block 51,909 on 8 August 2015, one of a run of contracts from the same account that week.
0x412fda...7267edAugust 8, 2015Greeter
Same eraA Greeter with the message 'Ethereum will change the world smarter' - deployed Aug 8, 2015 by a developer connected to the Tokyo Smart Contract meetup.
0xda0c1c...7a68ebAugust 8, 2015MessageStore
Same eraA 6-line contract storing a single public string, deployed Day 9 of Ethereum by a prolific early experimenter who shipped 18 contracts in one week.
0xd2eccd...ff3d6bAugust 8, 2015Greeter
Same eraThe go-ethereum Contract Tutorial greeter, deployed with the greeting: Hello World!
0x506f4b...466983August 8, 2015Contract 0xd4eae4...a2c77a
Same eraThe ethereum.org crowdsale tutorial, deployed on the ninth day of the public chain, with the funding goal, deadline and price fixed at construction.
0xd4eae4...a2c77aAugust 8, 2015