Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- pragma solidity ^0.4.6;
- contract owned {
- address public owner;
- function owned() {
- owner = msg.sender;
- }
- modifier onlyOwner {
- if (msg.sender != owner) throw;
- _;
- }
- function transferOwnership(address newOwner) onlyOwner {
- owner = newOwner;
- }
- }
- contract ownedReg is owned {
- mapping(uint => address) public beneficiary;
- mapping(address =>
- mapping(uint =>
- mapping(address => bool))) public approvals;
- mapping(uint => mapping(bytes32=>uint)) public iData;
- mapping(uint => mapping(bytes32=>string)) public sData;
- uint public lastID;
- function nextID() returns (uint) {
- return ++lastID;
- }
- function createId(address _beneficiary) onlyOwner returns (uint) {
- var id = nextID();
- beneficiary[lastID] = _beneficiary;
- }
- function setString(uint id, bytes32 name, string str) onlyOwner {
- sData[id][name] = str;
- }
- function setInt(uint id, bytes32 name, uint str) onlyOwner {
- iData[id][name] = str;
- }
- function transfer(uint id, address to)
- {
- if(beneficiary[id] != msg.sender) throw;
- beneficiary[id] = to;
- }
- function approve(uint id, address to, bool allowed) returns (bool ok)
- {
- approvals[msg.sender][id][to] = allowed;
- return true;
- }
- function transferFrom(uint id, address to) returns (bool ok)
- {
- var targetBeneficiary = beneficiary[id];
- if(approvals[targetBeneficiary][id][msg.sender] != true) throw;
- beneficiary[id] = to;
- approvals[targetBeneficiary][id][msg.sender] = false;
- return true;
- }
- }
- contract carRegistry is ownedReg {
- string public name = "CarRegistry";
- bytes32 public descriptionHash = sha3("carDescription"); // replace with constants
- bytes32 public serialNumberHash = sha3("serialNumber");
- bytes32 public dateIssuedHash = sha3("dateIssued");
- function NewToken(address receiver, string carDescription, string serialNumber) onlyOwner returns (uint carTokenID) {
- carTokenID = createId(receiver);
- setString(carTokenID, descriptionHash, carDescription);
- setString(carTokenID, serialNumberHash, serialNumber);
- setInt(carTokenID,dateIssuedHash,block.timestamp);
- }
- function getCarDetails(uint carTokenID) constant returns (
- address _beneficiary,
- string carDescription,
- string serialNumber,
- uint dateIssued)
- {
- _beneficiary = beneficiary[carTokenID];
- carDescription = sData[carTokenID][descriptionHash];
- serialNumber = sData[carTokenID][serialNumberHash];
- dateIssued = iData[carTokenID][dateIssuedHash];
- }
- function changeContractName(string newName) onlyOwner {
- name = newName;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement