COOPENOMICS  v1
Кооперативная Экономика
table_ledger2_account.hpp
См. документацию.
1#pragma once
2
3
4#include "../core/ram_payer.hpp"
5#include <eosio/asset.hpp>
6#include <eosio/eosio.hpp>
7#include <string>
8
9#include "../consts.hpp"
10
45struct [[eosio::table, eosio::contract(LEDGER2)]] account2 {
46 uint64_t id;
47 std::string name;
48 uint8_t account_type;
49 eosio::asset debit_balance;
50 eosio::asset credit_balance;
51 eosio::asset balance;
52
53 uint64_t primary_key() const { return id; }
54
55 bool is_empty() const {
56 return debit_balance.amount == 0 && credit_balance.amount == 0 && balance.amount == 0;
57 }
58
64 static eosio::asset compute_balance(uint8_t type,
65 const eosio::asset& dr,
66 const eosio::asset& cr) {
67 // 1 == PASSIVE — кредитовый остаток; для ACTIVE и ACTIVE_PASSIVE возвращаем Dr − Cr
68 if (type == 1) return cr - dr;
69 return dr - cr;
70 }
71};
72
73typedef eosio::multi_index<"accounts"_n, account2> accounts2_index;
74
75// Плательщик за оперативную память строк таблицы — правило в lib/core/ram_payer.hpp.
contract
Definition: eosio.msig_tests.cpp:977
balance
Definition: eosio.token_tests.cpp:226
Definition: eosio.msig.hpp:34
Бухгалтерский счёт ledger2 (двойная запись).
Definition: table_ledger2_account.hpp:45
eosio::asset credit_balance
Definition: table_ledger2_account.hpp:50
uint8_t account_type
AccountType: 0=ACTIVE, 1=PASSIVE, 2=ACTIVE_PASSIVE.
Definition: table_ledger2_account.hpp:48
eosio::asset debit_balance
Definition: table_ledger2_account.hpp:49
static eosio::asset compute_balance(uint8_t type, const eosio::asset &dr, const eosio::asset &cr)
Пересчёт сальдо по обороту с учётом активности/пассивности счёта.
Definition: table_ledger2_account.hpp:64
std::string name
Definition: table_ledger2_account.hpp:47
eosio::asset balance
Текущее сальдо счёта (с учётом типа)
Definition: table_ledger2_account.hpp:51
bool is_empty() const
Definition: table_ledger2_account.hpp:55
uint64_t id
Definition: table_ledger2_account.hpp:46
uint64_t primary_key() const
Definition: table_ledger2_account.hpp:53
RAM_PAYER_CLASS(account2, contract)
eosio::multi_index<"accounts"_n, account2 > accounts2_index
Definition: table_ledger2_account.hpp:73