Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- pragma solidity ^0.4.0;
- contract Ballot {
- pragma solidity ^0.4.23;
- contract shop {
- struct user {
- int balance;
- address ip;
- }
- struct tovar {
- string name;
- int cost;
- address seller;
- }
- address kap;
- user[] users;
- tovar[] tovars;
- function check_costumer(address _ip) private returns(bool){
- bool flag = 0;
- for (i := 0; i < users.length; i++) {
- if (usres[i].ip == _ip) {
- flag = 1;
- }
- }
- return flag;
- }
- function init_user() public {
- bool flag = check_costumer(msg.sender);
- if (!flag) {
- users.length = users.length + 1;
- users[users.length - 1].ip = msg.sender;
- users[users.length - 1].balance = 10000;
- }
- else {
- //пользователь зареган - обработать
- }
- }
- function add_tovar(string _name, int _cost) public {
- bool flag = check_costumer(msg.sender);
- if (flag) {
- tovars.length = tovars.length + 1;
- tovars[tovars.length - 1].name = _name;
- tovars[tovars.length - 1].cost = _cost;
- tovars[tovars.length - 1].seller = msg.sender;
- }
- else {
- //пользователь не зареган - обработать
- }
- }
- function bye_tovar(string _id) public {
- _id--;
- bool flag = check_costumer(msg.sender);
- if (flag) {
- address buy = msg.sender;
- int m_id = 0;
- while (users[m_id].ip != buy) {
- m_id++;
- }
- if (users[m_id].balance < tovars[_id].cost) {
- //недостаточно денег - обработать
- }
- else {
- users[m_id].balance -= tovars[_id].cost;
- address sell = tovars[_id].seller;
- int s_id = 0;
- while (users[s_id].ip != sell) {
- s_id++;
- }
- users[s_id].balance += tovars[_id].cost;
- for (i := _id + 1; i < tovars.length; i++) {
- tovars[i - 1] = tovars[i];
- }
- tovars.length--;
- }
- }
- else {
- //пользователь не зареган - обработать
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement