5865f6fc14
Контракт `apps` (координационная плоскость для apps-catalog): - 4 таблицы: packages, releases, subs, coops; ABI 21 KB, WASM 70 KB - 11 actions: regpackage, transferpkg, setrelease, reactivate, withdraw, cleanup, regsub, expsub, regcoop, setcoop, migrate - subs.chain_id и coops.chain_id — каноническая идентификация подсети - coops.signing_key — отдельный subnet-signing-key (не active), ротация через setcoop без потери ранее выпущенных JWT - releases с TTL retention 90 дней + inline cleanup до 50 записей - atomic supersede в setrelease — выполняет FR8 «approve → ACTIVE» на стороне blockchain'а CI контейнер `dicoop/contracts`: - упаковывает все 21 контракт (15 user + 6 system eosio.*) в alpine 10.8 MB - список контрактов берётся из CMakeLists (single source of truth) - триггер push на dev/testnet/main + workflow_dispatch - маппинг ветка→tag: dev/testnet/main + sha-pinned tag для воспроизводимости - manifest.json с sha256 каждого артефакта внутри образа - entrypoint: copy [name] | manifest | sha256 | list | ls - multi-stage потребление в ke-bootstrap = 0 MB на VPS Закрывает блокер Story 6.x (KE bootstrap) для apps-catalog.
25 lines
802 B
C++
25 lines
802 B
C++
#include "apps.hpp"
|
|
#include <eosio/transaction.hpp>
|
|
|
|
#include "src/regpackage.cpp"
|
|
#include "src/transferpkg.cpp"
|
|
#include "src/setrelease.cpp"
|
|
#include "src/reactivate.cpp"
|
|
#include "src/withdraw.cpp"
|
|
#include "src/cleanup.cpp"
|
|
#include "src/regsub.cpp"
|
|
#include "src/expsub.cpp"
|
|
#include "src/regcoop.cpp"
|
|
#include "src/setcoop.cpp"
|
|
|
|
/**
|
|
* \brief Миграция контракта.
|
|
* \details Пустышка для CDT-апгрейдов. Реальные миграции состояния
|
|
* выполняются через `eosio.msig`-предложение с конкретным
|
|
* планом (drop таблиц, переезд данных).
|
|
* \note Авторизация: @ apps @ active.
|
|
*/
|
|
[[eosio::action]] void apps::migrate() {
|
|
require_auth(_apps);
|
|
}
|