Advertisement
Guest User

Untitled

a guest
Feb 26th, 2019
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.39 KB | None | 0 0
  1. pragma solidity ^0.5.4;
  2. pragma experimental ABIEncoderV2;
  3.  
  4. contract Contract {
  5.  
  6. struct item {
  7. string item_description;
  8. string item_status;
  9. uint item_price;
  10. string item_owner;
  11. }
  12.  
  13. struct user {
  14. string username;
  15. string password;
  16. uint balance;
  17. string first_name;
  18. string last_name;
  19. }
  20.  
  21. mapping (address => user) users;
  22. address[] public userTable;
  23.  
  24. mapping (address => item) items;
  25. address[] public itemTable;
  26.  
  27. constructor() public {
  28.  
  29. }
  30.  
  31. function getAllItems() public view returns(address[] memory) {
  32. return itemTable;
  33. }
  34.  
  35. function getItemByAddress(address addr) public view returns (string memory ownerId, string memory descr, string memory status, uint price) {
  36. return(items[addr].item_owner, items[addr].item_description, items[addr].item_status, items[addr].item_price);
  37. }
  38.  
  39. function getItemStructByAddress(address addr) public view returns (item memory _item) {
  40. return items[addr];
  41. }
  42.  
  43. //Put req item
  44. function sellItem(address addr, string memory ownerId, string memory descr, string memory status, uint price) public {
  45. item storage table = items[addr];
  46.  
  47. table.item_owner = ownerId;
  48. table.item_description = descr;
  49. table.item_status = status;
  50. table.item_price = price;
  51.  
  52. itemTable.push(addr) -1;
  53. }
  54.  
  55. function buyItem(address itemAddr, address userAddr) public {
  56. item memory lookup = getItemStructByAddress(itemAddr);
  57.  
  58. users[userAddr].balance -= lookup.item_price;
  59.  
  60. delete items[itemAddr];
  61. }
  62.  
  63. function settlePayment() public {
  64. //Not sure what this entails yet
  65. }
  66.  
  67. function addDeposit(address addr, uint deposit) public {
  68. users[addr].balance += deposit;
  69.  
  70. }
  71.  
  72. function register(address addr, string memory username, string memory password, uint balance, string memory first_name, string memory last_name) public {
  73. user storage table = users[addr];
  74.  
  75. table.username = username;
  76. table.password = password;
  77. table.balance = balance;
  78. table.first_name = first_name;
  79. table.last_name = last_name;
  80.  
  81. userTable.push(addr) -1;
  82. }
  83.  
  84. function unregister(address addr) public {
  85. delete users[addr];
  86. }
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement