Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- pragma solidity ^0.5.4;
- pragma experimental ABIEncoderV2;
- contract Contract {
- struct item {
- string item_description;
- string item_status;
- uint item_price;
- string item_owner;
- }
- struct user {
- string username;
- string password;
- uint balance;
- string first_name;
- string last_name;
- }
- mapping (address => user) users;
- address[] public userTable;
- mapping (address => item) items;
- address[] public itemTable;
- constructor() public {
- }
- function getAllItems() public view returns(address[] memory) {
- return itemTable;
- }
- function getItemByAddress(address addr) public view returns (string memory ownerId, string memory descr, string memory status, uint price) {
- return(items[addr].item_owner, items[addr].item_description, items[addr].item_status, items[addr].item_price);
- }
- function getItemStructByAddress(address addr) public view returns (item memory _item) {
- return items[addr];
- }
- //Put req item
- function sellItem(address addr, string memory ownerId, string memory descr, string memory status, uint price) public {
- item storage table = items[addr];
- table.item_owner = ownerId;
- table.item_description = descr;
- table.item_status = status;
- table.item_price = price;
- itemTable.push(addr) -1;
- }
- function buyItem(address itemAddr, address userAddr) public {
- item memory lookup = getItemStructByAddress(itemAddr);
- users[userAddr].balance -= lookup.item_price;
- delete items[itemAddr];
- }
- function settlePayment() public {
- //Not sure what this entails yet
- }
- function addDeposit(address addr, uint deposit) public {
- users[addr].balance += deposit;
- }
- function register(address addr, string memory username, string memory password, uint balance, string memory first_name, string memory last_name) public {
- user storage table = users[addr];
- table.username = username;
- table.password = password;
- table.balance = balance;
- table.first_name = first_name;
- table.last_name = last_name;
- userTable.push(addr) -1;
- }
- function unregister(address addr) public {
- delete users[addr];
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement