COOPENOMICS  v1
Кооперативная Экономика
apps.hpp
См. документацию.
1#pragma once
2
3#include <eosio/asset.hpp>
4#include <eosio/contract.hpp>
5#include <eosio/crypto.hpp>
6#include <eosio/eosio.hpp>
7#include <eosio/multi_index.hpp>
8#include <eosio/system.hpp>
9#include <eosio/time.hpp>
10#include <optional>
11
12#include "../lib/index.hpp"
13
14using namespace Apps;
15
73namespace Apps {
80static constexpr uint64_t RELEASE_RETENTION_SECS = 90 * 86400;
81
87static constexpr uint64_t CLEANUP_BUDGET_PER_CALL = 50;
88} // namespace Apps
89
91
92public:
93 apps(eosio::name receiver, eosio::name code,
94 eosio::datastream<const char *> ds)
95 : eosio::contract(receiver, code, ds) {}
96
97 [[eosio::action]] void migrate();
98
99 // ─── packages ───────────────────────────────────────────────────────
100
112 [[eosio::action]] void regpackage(eosio::name coopname,
113 eosio::name package_id,
114 std::string package_name,
115 eosio::name owner,
116 std::vector<eosio::name> compatible_subnets);
117
122 [[eosio::action]] void transferpkg(eosio::name coopname,
123 eosio::name package_id,
124 eosio::name new_owner);
125
126 // ─── releases ───────────────────────────────────────────────────────
127
142 [[eosio::action]] void setrelease(eosio::name coopname,
143 eosio::name package_id,
144 std::string version,
145 Apps::scope_t scope,
146 eosio::checksum256 tarball_sha256,
147 eosio::name moderated_by,
148 std::string meta);
149
158 [[eosio::action]] void reactivate(eosio::name coopname,
159 eosio::name package_id,
160 std::string version);
161
169 [[eosio::action]] void withdraw(eosio::name coopname,
170 eosio::name package_id,
171 std::string version,
172 std::string reason);
173
182 [[eosio::action]] void cleanup(eosio::name package_id);
183
184 // ─── subscriptions ──────────────────────────────────────────────────
185
198 [[eosio::action]] void regsub(eosio::name coopname,
199 eosio::name subscriber,
200 eosio::name package_id,
201 eosio::checksum256 chain_id,
202 eosio::name plan,
203 eosio::time_point_sec start_at,
204 eosio::time_point_sec end_at);
205
211 [[eosio::action]] void expsub(eosio::name coopname,
212 eosio::name subscriber,
213 eosio::name package_id);
214
215 // ─── coops ──────────────────────────────────────────────────────────
216
230 [[eosio::action]] void regcoop(eosio::name coopname,
231 eosio::checksum256 chain_id,
232 eosio::name subnet_label,
233 eosio::public_key signing_key);
234
244 [[eosio::action]] void setcoop(eosio::name coopname,
245 std::optional<eosio::checksum256> chain_id,
246 std::optional<eosio::name> subnet_label,
247 std::optional<eosio::public_key> signing_key,
248 std::optional<bool> active);
249
250 // ─── pricing & globals (v2.1) ───────────────────────────────────────
251
272 [[eosio::action]] void setpricing(eosio::name package_id,
273 eosio::name plan,
274 eosio::asset hourly_rate);
275
286 [[eosio::action]] void setglobals(uint32_t min_payment_period_seconds,
287 uint32_t free_trial_period_seconds,
288 uint32_t lead_time_seconds,
289 uint8_t retry_max);
290
291 // ─── clients (multi-tenant onboarding, v2.4) ────────────────────────
292
304 [[eosio::action]] void regclient(eosio::name catalog_operator,
305 eosio::name client_coopname);
306
316 [[eosio::action]] void delclient(eosio::name catalog_operator,
317 eosio::name client_coopname);
318
319 // ─── subscription extend / retry-counter (D4, v2.5/v2.6) ────────────
320
346 [[eosio::action]] void extendsub(eosio::name catalog_operator,
347 eosio::name subscriber,
348 eosio::name package_id,
349 uint32_t period_seconds,
350 eosio::checksum256 charge_intent_id);
351
368 [[eosio::action]] void setattempt(eosio::name catalog_operator,
369 eosio::name subscriber,
370 eosio::name package_id,
371 uint8_t attempt);
372
373 // ─── service tables ─────────────────────────────────────────────────
374
375 struct [[eosio::table, eosio::contract(APPS)]] counts : counts_base {};
376};
Definition: apps.hpp:90
apps(eosio::name receiver, eosio::name code, eosio::datastream< const char * > ds)
Definition: apps.hpp:93
#define APPS
Definition: consts.hpp:156
const auto active
Definition: eosio.limitauth_tests.cpp:17
const auto owner
Definition: eosio.limitauth_tests.cpp:16
contract
Definition: eosio.msig_tests.cpp:977
Definition: apps.hpp:73
static constexpr uint64_t CLEANUP_BUDGET_PER_CALL
Definition: apps.hpp:87
static constexpr uint64_t RELEASE_RETENTION_SECS
Definition: apps.hpp:80
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_apps_releases.hpp:30
Definition: apps.hpp:375
Definition: table_counts.hpp:7