COOPENOMICS  v1
Кооперативная Экономика
table_registrator_accounts.hpp
См. документацию.
1#pragma once
2
3
4#include "../core/ram_payer.hpp"
5#include <eosio/binary_extension.hpp>
6#include <eosio/eosio.hpp>
7#include <string>
8#include <vector>
9
10#include "../consts.hpp"
12
16struct [[eosio::table, eosio::contract(REGISTRATOR)]] account {
17 eosio::name username;
18 eosio::name referer;
19 eosio::name registrator;
20 eosio::name type;
21 eosio::name status;
22 std::string meta;
23
24 std::vector<eosio::name> storages;
25 std::vector<verification> verifications;
26
27 eosio::time_point_sec registered_at;
28
29 uint64_t primary_key() const { return username.value; }
30
31 uint64_t by_referer() const { return referer.value; }
32
33 uint64_t by_type() const { return type.value; }
34
35 uint64_t by_status() const { return status.value; }
36
37 uint64_t by_registr() const { return registrator.value; }
38
39 bool is_active() const { return status == "active"_n; }
40
41 uint64_t by_registered_at() const { return registered_at.sec_since_epoch(); }
42
43 bool is_verified() const {
44 for (const auto &v : verifications) {
45 if (v.is_verified) {
46 return true;
47 }
48 }
49 return false;
50 }
51
52 uint64_t is_verified_index() const {
53 for (const auto &v : verifications) {
54 if (v.is_verified) {
55 return 1;
56 }
57 }
58 return 0;
59 }
60};
61
62typedef eosio::multi_index<
63 "accounts"_n, account,
64 eosio::indexed_by<"byreferer"_n, eosio::const_mem_fun<account, uint64_t, &account::by_referer>>,
65 eosio::indexed_by<"bytype"_n, eosio::const_mem_fun<account, uint64_t, &account::by_type>>,
66 eosio::indexed_by<"bystatus"_n, eosio::const_mem_fun<account, uint64_t, &account::by_status>>,
67 eosio::indexed_by<"byregistr"_n, eosio::const_mem_fun<account, uint64_t, &account::by_registr>>,
68 eosio::indexed_by<"byregistred"_n, eosio::const_mem_fun<account, uint64_t, &account::by_registered_at>>,
69 eosio::indexed_by<"byverif"_n, eosio::const_mem_fun<account, uint64_t, &account::is_verified_index>>>
71
72// Плательщик за оперативную память строк таблицы — правило в lib/core/ram_payer.hpp.
Класс registrator служит воротами в блокчейн-систему для новых участников, позволяя регистрировать ак...
Definition: registrator.hpp:54
contract
Definition: eosio.msig_tests.cpp:977
Definition: eosio.msig.hpp:34
Definition: table_registrator_accounts.hpp:16
bool is_verified() const
Definition: table_registrator_accounts.hpp:43
eosio::name type
Definition: table_registrator_accounts.hpp:20
eosio::time_point_sec registered_at
Definition: table_registrator_accounts.hpp:27
bool is_active() const
Definition: table_registrator_accounts.hpp:39
uint64_t by_registered_at() const
Definition: table_registrator_accounts.hpp:41
uint64_t primary_key() const
Definition: table_registrator_accounts.hpp:29
eosio::name username
Definition: table_registrator_accounts.hpp:17
eosio::name registrator
Definition: table_registrator_accounts.hpp:19
uint64_t by_status() const
Definition: table_registrator_accounts.hpp:35
uint64_t is_verified_index() const
Definition: table_registrator_accounts.hpp:52
eosio::name status
Definition: table_registrator_accounts.hpp:21
std::vector< eosio::name > storages
Definition: table_registrator_accounts.hpp:24
uint64_t by_type() const
Definition: table_registrator_accounts.hpp:33
std::string meta
Definition: table_registrator_accounts.hpp:22
uint64_t by_registr() const
Definition: table_registrator_accounts.hpp:37
eosio::name referer
Definition: table_registrator_accounts.hpp:18
std::vector< verification > verifications
Definition: table_registrator_accounts.hpp:25
uint64_t by_referer() const
Definition: table_registrator_accounts.hpp:31
eosio::multi_index< "accounts"_n, account, eosio::indexed_by<"byreferer"_n, eosio::const_mem_fun< account, uint64_t, &account::by_referer > >, eosio::indexed_by<"bytype"_n, eosio::const_mem_fun< account, uint64_t, &account::by_type > >, eosio::indexed_by<"bystatus"_n, eosio::const_mem_fun< account, uint64_t, &account::by_status > >, eosio::indexed_by<"byregistr"_n, eosio::const_mem_fun< account, uint64_t, &account::by_registr > >, eosio::indexed_by<"byregistred"_n, eosio::const_mem_fun< account, uint64_t, &account::by_registered_at > >, eosio::indexed_by<"byverif"_n, eosio::const_mem_fun< account, uint64_t, &account::is_verified_index > > > accounts_index
Definition: table_registrator_accounts.hpp:70
RAM_PAYER_CLASS(account, contract)