Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.98 KB | None | 0 0
  1. pragma solidity ^0.4.6;
  2.  
  3. contract owned {
  4. address public owner;
  5.  
  6. function owned() {
  7. owner = msg.sender;
  8. }
  9.  
  10. modifier onlyOwner {
  11. if (msg.sender != owner) throw;
  12. _;
  13. }
  14.  
  15. function transferOwnership(address newOwner) onlyOwner {
  16. owner = newOwner;
  17. }
  18. }
  19.  
  20.  
  21. contract ownedReg is owned {
  22.  
  23. mapping(uint => address) public beneficiary;
  24.  
  25. mapping(address =>
  26. mapping(uint =>
  27. mapping(address => bool))) public approvals;
  28.  
  29. mapping(uint => mapping(bytes32=>uint)) public iData;
  30. mapping(uint => mapping(bytes32=>string)) public sData;
  31.  
  32. uint public lastID;
  33.  
  34. function nextID() returns (uint) {
  35. return ++lastID;
  36. }
  37.  
  38. function createId(address _beneficiary) onlyOwner returns (uint) {
  39. var id = nextID();
  40. beneficiary[lastID] = _beneficiary;
  41. }
  42.  
  43. function setString(uint id, bytes32 name, string str) onlyOwner {
  44. sData[id][name] = str;
  45. }
  46.  
  47. function setInt(uint id, bytes32 name, uint str) onlyOwner {
  48. iData[id][name] = str;
  49. }
  50.  
  51. function transfer(uint id, address to)
  52. {
  53. if(beneficiary[id] != msg.sender) throw;
  54. beneficiary[id] = to;
  55. }
  56.  
  57. function approve(uint id, address to, bool allowed) returns (bool ok)
  58. {
  59. approvals[msg.sender][id][to] = allowed;
  60. return true;
  61. }
  62.  
  63. function transferFrom(uint id, address to) returns (bool ok)
  64. {
  65. var targetBeneficiary = beneficiary[id];
  66.  
  67. if(approvals[targetBeneficiary][id][msg.sender] != true) throw;
  68.  
  69. beneficiary[id] = to;
  70. approvals[targetBeneficiary][id][msg.sender] = false;
  71.  
  72. return true;
  73. }
  74. }
  75.  
  76. contract carRegistry is ownedReg {
  77.  
  78. string public name = "CarRegistry";
  79.  
  80. bytes32 public descriptionHash = sha3("carDescription"); // replace with constants
  81. bytes32 public serialNumberHash = sha3("serialNumber");
  82. bytes32 public dateIssuedHash = sha3("dateIssued");
  83.  
  84. function NewToken(address receiver, string carDescription, string serialNumber) onlyOwner returns (uint carTokenID) {
  85.  
  86. carTokenID = createId(receiver);
  87.  
  88. setString(carTokenID, descriptionHash, carDescription);
  89. setString(carTokenID, serialNumberHash, serialNumber);
  90. setInt(carTokenID,dateIssuedHash,block.timestamp);
  91. }
  92.  
  93. function getCarDetails(uint carTokenID) constant returns (
  94. address _beneficiary,
  95. string carDescription,
  96. string serialNumber,
  97. uint dateIssued)
  98. {
  99. _beneficiary = beneficiary[carTokenID];
  100. carDescription = sData[carTokenID][descriptionHash];
  101. serialNumber = sData[carTokenID][serialNumberHash];
  102. dateIssued = iData[carTokenID][dateIssuedHash];
  103. }
  104.  
  105.  
  106. function changeContractName(string newName) onlyOwner {
  107. name = newName;
  108. }
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement