COOPENOMICS  v1
Кооперативная Экономика
Файл role_requests.hpp
#include "../../../lib/core/ram_payer.hpp"
#include <eosio/eosio.hpp>
#include <eosio/asset.hpp>

См. исходные тексты.

Классы

struct  Capital::RoleRequests::role_request
 Очередь заявок на L2-допуск/инвайт и на обновление approved-ставки. Подробнее...
 

Пространства имен

namespace  Capital
 
namespace  Capital::RoleRequests
 
namespace  Capital::RoleRequests::Status
 Статусы заявки на роль / обновление approved-ставки.
 
namespace  Capital::RoleRequests::Direction
 Направление: пайщик просит сам (REQUEST) или мастер инвайтит кандидата (INVITE).
 
namespace  Capital::RoleRequests::RequestType
 Тип заявки: «дай мне роль/допуск L2» или «обнови мне approved-ставку».
 
namespace  Capital::RoleRequests::Role
 Допустимые роли заявки на L2-допуск. Контрибьюторы и инвесторы — L1, через role_requests не идут.
 

Определения типов

typedef eosio::multi_index< "rolerequests"_n, role_request, indexed_by<"byhash"_n, const_mem_fun< role_request, checksum256, &role_request::by_request_hash > >, indexed_by<"byprojuser"_n, const_mem_fun< role_request, uint128_t, &role_request::by_project_user > > > Capital::RoleRequests::role_requests_index
 

Функции

std::optional< role_request > Capital::RoleRequests::get_role_request (eosio::name coopname, const checksum256 &request_hash)
 
role_request Capital::RoleRequests::get_role_request_or_fail (eosio::name coopname, const checksum256 &request_hash)
 
void Capital::RoleRequests::create (eosio::name coopname, const checksum256 &request_hash, const checksum256 &project_hash, eosio::name username, eosio::name master, eosio::name role, const eosio::asset &rate_per_hour, uint64_t hours_per_day, eosio::name direction, eosio::name request_type, const std::string &description)
 
void Capital::RoleRequests::validate_role_or_fail (eosio::name role)
 Проверяет, что role входит в допустимый набор Role::{CREATOR, AUTHOR, MASTER}. Контрибьюторы и инвесторы — это L1-роли и через role_requests не идут. Не применяется к заявкам RequestType::RATE_UPDATE (там role = Role::NONE). Подробнее...
 
void Capital::RoleRequests::apply_role_to_project (eosio::name coopname, const checksum256 &project_hash, eosio::name username, eosio::name role)
 Применяет заявленную роль к проекту через inline action: Role::AUTHOR → addauthor, Role::MASTER → setmaster, Role::CREATOR → no-op (creator фиксируется фактически при первом createcmmt). Подробнее...
 
void Capital::RoleRequests::approve (eosio::name coopname, uint64_t request_id, const eosio::asset &approved_rate, uint64_t approved_hours)
 
void Capital::RoleRequests::decline (eosio::name coopname, uint64_t request_id, const std::string &reason)
 
 RAM_PAYER_CLASS (Capital::RoleRequests::role_request, cooperative)
 

Переменные

constexpr name Capital::RoleRequests::Status::PENDING = "pending"_n
 
constexpr name Capital::RoleRequests::Status::APPROVED = "approved"_n
 
constexpr name Capital::RoleRequests::Status::DECLINED = "declined"_n
 
constexpr name Capital::RoleRequests::Direction::REQUEST = "request"_n
 
constexpr name Capital::RoleRequests::Direction::INVITE = "invite"_n
 
constexpr name Capital::RoleRequests::RequestType::ROLE = "role"_n
 
constexpr name Capital::RoleRequests::RequestType::RATE_UPDATE = "rateupdate"_n
 
constexpr name Capital::RoleRequests::Role::CREATOR = "creator"_n
 
constexpr name Capital::RoleRequests::Role::AUTHOR = "author"_n
 
constexpr name Capital::RoleRequests::Role::MASTER = "master"_n
 
constexpr name Capital::RoleRequests::Role::NONE = name{}
 Для RATE_UPDATE: поле role не значимо Подробнее...
 

Функции

◆ RAM_PAYER_CLASS()

RAM_PAYER_CLASS ( Capital::RoleRequests::role_request  ,
cooperative   
)