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 // ─── service tables ─────────────────────────────────────────────────
251
252 struct [[eosio::table, eosio::contract(APPS)]] counts : counts_base {};
253};
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:142
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:252
Definition: table_counts.hpp:7