COOPENOMICS  v1
Кооперативная Экономика
marketplace.hpp
См. документацию.
1#include <eosio/asset.hpp>
2#include <eosio/contract.hpp>
3#include <eosio/crypto.hpp>
4#include <eosio/eosio.hpp>
5#include <eosio/multi_index.hpp>
6#include <eosio/system.hpp>
7#include <eosio/time.hpp>
8
9#include "../lib/index.hpp"
10
11using namespace Marketplace;
12
44
45public:
46 marketplace(eosio::name receiver, eosio::name code,
47 eosio::datastream<const char *> ds)
48 : eosio::contract(receiver, code, ds) {}
49
50 void apply(uint64_t receiver, uint64_t code, uint64_t action);
51 [[eosio::action]] void migrate();
52
53 // Действия для создания заявок
54 [[eosio::action]] void orderoffer(eosio::name coopname, eosio::name receiver_braname, eosio::name username, checksum256 hash, uint64_t units, eosio::asset unit_cost, uint32_t product_lifecycle_secs, uint32_t warranty_period_secs, eosio::asset membership_fee_amount, eosio::asset cancellation_fee_amount, document2 convert_in, eosio::name delivery_type, eosio::name contribution_type, std::string meta);
55
56 static void cancel_request(eosio::name coopname, eosio::name username, checksum256 request_hash);
57
58 // Статические методы для отклонения заявок
59 static void decline_request(eosio::name coopname, const request& change);
60
61 // Методы для направления заявок
62 [[eosio::action]] void accept(eosio::name coopname, eosio::name supplier_braname, eosio::name username, checksum256 request_hash, document2 convert_out, document2 return_document);
63 [[eosio::action]] void authcontrib(eosio::name coopname, checksum256 request_hash, document2 authorization);
64 [[eosio::action]] void authreturn(eosio::name coopname, checksum256 request_hash, document2 authorization);
65 [[eosio::action]] void declineacc(eosio::name coopname, checksum256 hash, std::string reason);
66 [[eosio::action]] void supply(eosio::name coopname, eosio::name username, checksum256 request_hash, document2 act);
67 [[eosio::action]] void supplcnf(eosio::name coopname, eosio::name username, checksum256 request_hash, document2 act);
68
69 // Новая система перевозок
70 [[eosio::action]] void createship(eosio::name coopname, checksum256 hash, eosio::name driver_username, eosio::name source_braname, eosio::name destination_braname, std::vector<checksum256> request_hashes, document2 transport_act_sender);
71 [[eosio::action]] void signbydriver(eosio::name coopname, checksum256 hash, document2 transport_act_driver);
72 [[eosio::action]] void arrived(eosio::name coopname, checksum256 hash, document2 transport_act_delivery);
73 [[eosio::action]] void receiveshipm(eosio::name coopname, checksum256 hash, document2 warehouse_receipt_act);
74 [[eosio::action]] void retransport(eosio::name coopname, checksum256 completed_hash, eosio::name new_driver_username, eosio::name source_braname, eosio::name new_destination_braname, std::vector<checksum256> request_hashes, document2 transport_act_sender);
75
76 // ORDER→OFFER direction (заказчик публикует → поставщики откликаются)
77 [[eosio::action]] void createorder(eosio::name coopname, eosio::name receiver_braname, eosio::name username, checksum256 hash, uint64_t units, eosio::asset unit_cost, uint32_t product_lifecycle_secs, uint32_t warranty_period_secs, eosio::asset membership_fee_amount, eosio::asset cancellation_fee_amount, document2 convert_in, eosio::name delivery_type, std::string meta);
78 [[eosio::action]] void respondoffer(eosio::name coopname, eosio::name supplier_braname, eosio::name username, checksum256 order_hash, checksum256 offer_hash, uint64_t units, uint32_t product_lifecycle_secs, document2 contribution_statement, document2 convert_out);
79
80 // Имущество из запасов кооператива
81 [[eosio::action]] void coopstock(eosio::name coopname, eosio::name braname, checksum256 hash, uint64_t units, eosio::asset unit_cost, uint32_t product_lifecycle_secs, uint32_t warranty_period_secs, eosio::asset membership_fee_amount, std::string meta);
82 [[eosio::action]] void acceptstock(eosio::name coopname, eosio::name username, checksum256 request_hash, document2 convert_in, document2 return_statement);
83
84 // Запрос возврата перед получением
85 [[eosio::action]] void reqreturn(eosio::name coopname, eosio::name username, checksum256 request_hash, document2 return_statement);
86
87 // Доставка заказчику
88 [[eosio::action]] void delivered(eosio::name coopname, eosio::name username, checksum256 request_hash);
89 [[eosio::action]] void receive(eosio::name coopname, eosio::name username, checksum256 request_hash, document2 document);
90 [[eosio::action]] void receivecnf(eosio::name coopname, eosio::name username, checksum256 request_hash, document2 document);
91 [[eosio::action]] void complete(eosio::name coopname, eosio::name username, checksum256 request_hash);
92 [[eosio::action]] void decline(eosio::name coopname, eosio::name username, checksum256 request_hash, std::string meta);
93 [[eosio::action]] void cancel(eosio::name coopname, eosio::name username, checksum256 request_hash);
94
95 // Уничтожение и перепредложение
96 [[eosio::action]] void destroy(eosio::name coopname, checksum256 request_hash, document2 destruction_act);
97 [[eosio::action]] void reoffer(eosio::name coopname, checksum256 request_hash, checksum256 new_hash, eosio::asset new_unit_cost, std::string new_meta);
98
99 // Методы для работы с диспутом (гарантийный возврат)
100 [[eosio::action]] void dispute(eosio::name coopname, eosio::name username, checksum256 request_hash, document2 document);
101 [[eosio::action]] void wauthorize(eosio::name coopname, checksum256 request_hash, uint64_t wreturn_decision_id, document2 wreturn_authorization, uint64_t wsupply_decision_id, document2 wsupply_authorization);
102 [[eosio::action]] void wreturn(eosio::name coopname, eosio::name username, checksum256 request_hash, document2 document);
103 [[eosio::action]] void woffer(eosio::name coopname, eosio::name username, checksum256 request_hash, document2 document);
104 [[eosio::action]] void waccept(eosio::name coopname, eosio::name username, checksum256 request_hash, bool accept, document2 document);
105
106 struct [[eosio::table, eosio::contract("marketplace")]] balances : balances_base {};
107 struct [[eosio::table, eosio::contract("marketplace")]] counts : counts_base {};
108};
Класс marketplace предоставляет функционал кооперативного маркетплейса, позволяя пользователям создав...
Definition: marketplace.hpp:43
void apply(uint64_t receiver, uint64_t code, uint64_t action)
static void cancel_request(eosio::name coopname, eosio::name username, checksum256 request_hash)
marketplace(eosio::name receiver, eosio::name code, eosio::datastream< const char * > ds)
Definition: marketplace.hpp:46
#define MARKETPLACE
Definition: consts.hpp:130
contract
Definition: eosio.msig_tests.cpp:977
action act
Definition: eosio.msig_tests.cpp:974
supply
Definition: eosio.token_tests.cpp:150
Definition: marketplace.hpp:17
Definition: eosio.msig.hpp:34
action(permission_level{ _gateway, "active"_n}, _gateway, "adduser"_n, std::make_tuple(coopname, deposit->username, to_spread, to_circulation, eosio::current_time_point(), true)).send()
Definition: table_marketplace_requests.hpp:18
Definition: table_balances_balances.hpp:12
Definition: table_counts.hpp:7
Definition: document_core.hpp:27
Definition: document_core.hpp:10
Definition: marketplace.hpp:106
Definition: marketplace.hpp:107