7f01908a84
Резолв конфликтов:
- ledger2/operations.hpp: оставлен CONVERT_TO_MEMBER (marketplace2) +
принята новая логика withdraw из dev (WITHDRAW_PENDING вместо BLOCK).
- ledger2/wallets.hpp: реестр расширен до 16 кошельков
(USER_SHARED=6 с MARKETPLACE_ORDER_LOCK + COOPERATIVE=10 с WITHDRAW_PENDING).
- WalletProgramWidget.vue / WalletWidget.vue: убраны неиспользуемые helper'ы из marketplace2,
принят рефактор dev.
- schema.gql + zeus/* (controller + sdk): полная регенерация после merge.
Сопутствующие правки:
- Восстановлен marketplace-branch-ownership.service.ts (отсутствовал в origin/marketplace2,
но был импортирован из marketplace-return-claim.resolver.ts — взят из ветки
chore/trustees-ownership 46f5269b89).
- Исправлена опечатка MARKETPLACE_KU_CHAIRMEN_SERVICE → MARKETPLACE_KU_CHAIRMAN_SERVICE
в marketplace-desktop-grants.provider.ts.
- orderSelector.ts: blocked_amount → locked_amount, удалены did_convert/did_assign
(привести selector к новой схеме MarketplaceOrderCreateTxSnapshot).
- Пересобраны cooptypes и inter (stale dist после merge).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
251 lines
12 KiB
C++
251 lines
12 KiB
C++
#pragma once
|
|
|
|
using namespace eosio;
|
|
|
|
// /**
|
|
// \defgroup public_contracts Контракты
|
|
// \brief Контракты Кооперативной Экономики
|
|
// *
|
|
// * Группа содержит контракты, предназначенные для кооперативной экономики. Контракты описывают основные логические
|
|
// * единицы и функциональность для управления и взаимодействия в рамках кооперативной экосистемы. От регистрации
|
|
// * участников до обменных операций - все аспекты кооперативной деятельности регулируются этими контрактами.
|
|
// */
|
|
|
|
// /**
|
|
// \defgroup public_consts Константы
|
|
// \brief Константы контрактов
|
|
// *
|
|
// * В этой группе представлены основные константы, используемые в контрактах кооперативной экономики.
|
|
// * Константы обеспечивают стабильность и предсказуемость поведения контрактов, а также упрощают
|
|
// * процесс чтения и понимания кода.
|
|
// */
|
|
|
|
// /**
|
|
// \defgroup public_actions Действия
|
|
// \brief Методы действий контрактов
|
|
// *
|
|
// * Действия представляют собой методы, которые можно вызывать в контрактах. Они отвечают за
|
|
// * выполнение определенных задач, таких как создание аккаунта, обновление информации или
|
|
// * осуществление транзакции. Эта группа описывает все доступные действия, которые предоставляют
|
|
// * контракты кооперативной экономики.
|
|
// */
|
|
|
|
// /**
|
|
// \defgroup public_tables Таблицы
|
|
// \brief Структуры таблиц контрактов
|
|
// *
|
|
// * Таблицы в контрактах EOSIO используются для хранения состояния контракта на блокчейне. В этой группе
|
|
// * представлены основные структуры данных, которые используются в таблицах контрактов кооперативной экономики.
|
|
// * От сведений о участниках до деталей транзакций - все это сохраняется в таблицах.
|
|
// */
|
|
|
|
|
|
// /**
|
|
// \defgroup public_structures Структуры
|
|
// \brief Структуры контрактов
|
|
// *
|
|
// * Структуры - это фундаментальные блоки данных, используемые для описания и хранения информации в контрактах.
|
|
// * Эта группа содержит описание основных структур, используемых в контрактах кооперативной экономики.
|
|
// * Они обеспечивают четкую организацию данных и упрощают взаимодействие с контрактом.
|
|
// */
|
|
|
|
//registrator
|
|
static constexpr eosio::name _regaccount_action = "joincoop"_n;
|
|
|
|
//wallet
|
|
static constexpr eosio::name _deposit_action = "deposit"_n;
|
|
static constexpr eosio::name _withdraw_action = "withdraw"_n;
|
|
|
|
//funds
|
|
static constexpr eosio::name _afund_withdraw_action = "subaccum"_n;
|
|
static constexpr eosio::name _efund_withdraw_action = "subexp"_n;
|
|
|
|
//freedecision
|
|
static constexpr eosio::name _free_decision_action = "freedecision"_n;
|
|
|
|
// marketplace linked actions
|
|
static constexpr eosio::name _change_action = "change"_n;
|
|
static constexpr eosio::name _product_contribution_action = "productcntr"_n;
|
|
static constexpr eosio::name _product_return_action = "productrtrn"_n;
|
|
static constexpr eosio::name _marketplace_writeoff_action = "mktwroff"_n; ///< Списание скоропорта по решению совета (p.mkt.wroff)
|
|
|
|
// capitalization linked actions
|
|
|
|
|
|
//capital::debts
|
|
|
|
static constexpr eosio::name _result_action = "result"_n;
|
|
|
|
//program_types
|
|
static constexpr eosio::name _wallet_program = "wallet"_n; ///< Главный Кошелёк
|
|
static constexpr eosio::name _marketplace_program = "marketplace"_n; ///< Кошелёк программы "Маркетплейс"
|
|
|
|
static constexpr eosio::name _source_program = "generator"_n; ///< Кошелёк для генерации по договору УХД
|
|
static constexpr eosio::name _capital_program = "blagorost"_n; ///< Кошелёк программы "Благорост"
|
|
|
|
|
|
static const std::set<eosio::name> soviet_actions = {
|
|
"joincoop"_n, //регистрация пайщика
|
|
|
|
//MEET
|
|
"creategm"_n,//предложение повестки планового общего собрание
|
|
"completegm"_n, //решение общего собрания пайщиков
|
|
"ballot"_n, //бюллетень участника общего собрания пайщиков
|
|
"gmnotify"_n, //уведомление участника общего собрания пайщиков
|
|
//CAPITAL
|
|
"capitalinvst"_n, //заявление на инвестиции по договору УХД
|
|
"createresult"_n, //клайм прироста благороста из задания
|
|
"createdebt"_n, //взять ссуду под залог будущего задания
|
|
"capresexpns"_n, //произвести выплату по расходам задания
|
|
"capwthdrprog"_n, //произвести возврат накопленных членских взносов по программе на капиталиста
|
|
"capwthdrproj"_n, //произвести возврат накопленных членских взносов по проекту на актора
|
|
"capwthdrres"_n, //произвести возврат из задания
|
|
|
|
//WALLET
|
|
"createwthd"_n, //создать заявление на возврат паевого взноса
|
|
|
|
//LEDGER
|
|
"ledgerwthd"_n, //заявление на списание со счета через ledger
|
|
|
|
//MARKETPLACE
|
|
"authoffs2c"_n, //заявление на взнос имуществом
|
|
"authoffc2r"_n, //заявление на возврат паевого взноса имуществом
|
|
"mktwroff"_n, //проект списания скоропорта на повестку совета (p.mkt.wroff)
|
|
};
|
|
|
|
//program_ids
|
|
static constexpr uint64_t _wallet_program_id = 1;
|
|
static constexpr uint64_t _marketplace_program_id = 2;
|
|
static constexpr uint64_t _source_program_id = 3;
|
|
static constexpr uint64_t _capital_program_id = 4;
|
|
|
|
|
|
|
|
#define HUNDR_PERCENTS 1000000
|
|
#define ONE_PERCENT 10000
|
|
|
|
|
|
// Дефайны для основной сети
|
|
#define ANO "ano"
|
|
#define GATEWAY "gateway"
|
|
#define DRAFT "draft"
|
|
#define MARKETPLACE "marketplace"
|
|
#define SOVIET "soviet"
|
|
#define REGISTRATOR "registrator"
|
|
#define SYSTEM "eosio"
|
|
#define FUND "fund"
|
|
#define BRANCH "branch"
|
|
#define CAPITAL "capital"
|
|
#define WALLET "wallet"
|
|
#define LOAN "loan"
|
|
#define MEET "meet"
|
|
#define LEDGER "ledger"
|
|
#define LEDGER2 "ledger2"
|
|
#define APPS "apps"
|
|
|
|
|
|
/**
|
|
* @ingroup public_consts
|
|
* @{
|
|
*/
|
|
static constexpr eosio::name _provider = "voskhod"_n;
|
|
static constexpr eosio::name _provider_chairman = "ant"_n;
|
|
|
|
static constexpr eosio::name _capital = "capital"_n;
|
|
static constexpr eosio::name _ano = "ano"_n;
|
|
static constexpr eosio::name _gateway = "gateway"_n;
|
|
static constexpr eosio::name _wallet = "wallet"_n;
|
|
static constexpr eosio::name _draft = "draft"_n;
|
|
static constexpr eosio::name _marketplace = "marketplace"_n;
|
|
static constexpr eosio::name _soviet = "soviet"_n;
|
|
static constexpr eosio::name _registrator = "registrator"_n;
|
|
static constexpr eosio::name _system = "eosio"_n;
|
|
static constexpr eosio::name _fund = "fund"_n;
|
|
static constexpr eosio::name _branch = "branch"_n;
|
|
static constexpr eosio::name _loan = "loan"_n;
|
|
static constexpr eosio::name _meet = "meet"_n;
|
|
static constexpr eosio::name _ledger = "ledger"_n;
|
|
static constexpr eosio::name _ledger2 = "ledger2"_n;
|
|
static constexpr eosio::name _apps = "apps"_n;
|
|
static constexpr eosio::name _power_account = "eosio.power"_n;
|
|
static constexpr eosio::name _saving_account = "eosio.saving"_n;
|
|
|
|
|
|
|
|
static std::vector<name> contracts_whitelist = {
|
|
"ano"_n,
|
|
"gateway"_n,
|
|
"draft"_n,
|
|
"marketplace"_n,
|
|
"soviet"_n,
|
|
"registrator"_n,
|
|
"eosio"_n,
|
|
"fund"_n,
|
|
"branch"_n,
|
|
"wallet"_n,
|
|
"meet"_n,
|
|
"loan"_n,
|
|
"test"_n,
|
|
"contributor"_n,
|
|
"eosio.token"_n,
|
|
"eosio.msig"_n,
|
|
"eosio.wrap"_n,
|
|
"eosio.power"_n,
|
|
"eosio.saving"_n,
|
|
"ledger"_n,
|
|
"ledger2"_n,
|
|
"capital"_n,
|
|
"apps"_n
|
|
// Добавьте остальные стандартные или пользовательские контракты по необходимости
|
|
};
|
|
|
|
static std::vector<name> token_whitelist = {
|
|
"eosio"_n,
|
|
"eosio.vpay"_n,
|
|
"eosio.saving"_n,
|
|
"eosio.bpay"_n,
|
|
"eosio.saving"_n,
|
|
"eosio.power"_n,
|
|
"eosio.ram"_n,
|
|
"eosio.stake"_n,
|
|
_provider
|
|
// Добавьте другие аккаунты в список по мере необходимости
|
|
};
|
|
|
|
|
|
static constexpr eosio::symbol _root_symbol = eosio::symbol(eosio::symbol_code("AXON"), 4); /*!< системный токен */
|
|
static constexpr eosio::symbol _root_govern_symbol = eosio::symbol(eosio::symbol_code("RUB"), 4);
|
|
static const eosio::asset _provider_initial = eosio::asset(1000000, _root_govern_symbol);
|
|
static const eosio::asset _provider_minimum = eosio::asset(3000000, _root_govern_symbol);
|
|
|
|
static const eosio::asset _provider_org_initial = eosio::asset(10000000, _root_govern_symbol);
|
|
static const eosio::asset _provider_org_minimum = eosio::asset(30000000, _root_govern_symbol);
|
|
|
|
static constexpr eosio::name _root_contract = "eosio.token"_n; /*!< системный контракт */
|
|
static constexpr eosio::symbol RAM_symbol{"RAM", 0}; /*!< токен рынка оперативной памяти */
|
|
static constexpr eosio::symbol _ramcore_symbol = eosio::symbol(eosio::symbol_code("RAMCORE"),4); /*!< идентификационный токен рынка оперативной памяти */
|
|
static constexpr uint64_t _ram_price_per_byte = 1; /*!< стоимость 1 байта в эпсилон AXON (0.0001) */
|
|
|
|
static constexpr uint64_t _register_amount = 10000; /*!< стоимость регистрации нового аккаунта */
|
|
|
|
static constexpr uint64_t _signature_expiration = 86400 * 365 * 2;
|
|
static constexpr uint64_t _auction_name_length_limit = 12;
|
|
|
|
static constexpr uint64_t _deposit_expiration_seconds = 3600;
|
|
|
|
static constexpr uint64_t _decision_expiration = 30 * 86400;
|
|
|
|
static constexpr uint64_t _producers_percent = 900000; // 90%
|
|
static constexpr uint64_t _fund_percent = 100000; // 10%
|
|
|
|
#ifdef IS_TESTNET
|
|
static constexpr uint64_t MIN_SOVIET_MEMBERS_COUNT = 1; /*!< минимальное количество членов совета (тест) */
|
|
#else
|
|
static constexpr uint64_t MIN_SOVIET_MEMBERS_COUNT = 3; /*!< минимальное количество членов совета (прод) */
|
|
#endif
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|