From dfe9343a9396ee32b53e878890aa7997a1fd5b2d Mon Sep 17 00:00:00 2001 From: terzim Date: Sat, 27 Jun 2015 10:32:50 +0100 Subject: [PATCH] Create provenance.sol Provenance concept contract created by M.ElBoudi, A.Blackwell, M.Terzi et al during Ethereum development workshop in London --- provenance/provenance.sol | 55 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 provenance/provenance.sol diff --git a/provenance/provenance.sol b/provenance/provenance.sol new file mode 100644 index 0000000..0a3a386 --- /dev/null +++ b/provenance/provenance.sol @@ -0,0 +1,55 @@ +// provenance concept contract created by M.ElBoudi, A.Blackwell, M.Terzi et al during Ethereum development workshop in London + +contract Certifiers { + mapping (address => bool) certifier; + address provenance; + + //initialiser is run the first time the contract is uploaded to the network. Launched by Provenance and reads provenance "public key" + function Certifiers () { + provenance = msg.sender; + } + + function createNewCertifier() returns (bool completed) { + certifier[msg.sender] = false; + return true; + } + + //if Provenance is launching the contract, then the entity becomes certified + function certify(address targetCertifier) returns (bool completed) { + if (provenance == msg.sender) { + certifier[targetCertifier] = true; + return true; + } else { + return false; + } + } +} + +contract Producers{ + struct meta{ + bytes32 description; + uint phoneNumber; + bytes32 name; + bool certified; + } + mapping (address => meta) producer; + + function createProducer(bytes32 desc, uint phone, bytes32 name) returns (bool created) { + producer[msg.sender].description = desc; + producer[msg.sender].phoneNumber = phone; + producer[msg.sender].name = name; + producer[msg.sender].certified = false; + return true; + } +} + +contract producerList{ + + mapping (address => bytes32) producerList; + + function addProducer(bytes32 desc, uint phone, byte name) returns (bool completed) { + var producers = new Producers(); + return producers.createProducer(desc, phone, name); + + } +}