COOPENOMICS  v1
Кооперативная Экономика
ledger2.hpp
См. документацию.
1#pragma once
2
3#include <string>
4
5#include <eosio/action.hpp>
6#include <eosio/asset.hpp>
7#include <eosio/crypto.hpp>
8#include <eosio/eosio.hpp>
9
10#include "../../consts.hpp"
11#include "accounts.hpp"
12#include "operations.hpp"
13#include "wallets.hpp"
14
28class Ledger2 {
29public:
42 static inline void apply(eosio::name actor,
43 eosio::name coopname,
44 eosio::name operation_code,
45 eosio::name process_type,
46 eosio::asset amount,
47 eosio::name username,
48 eosio::checksum256 process_hash,
49 std::string memo) {
51 eosio::permission_level{actor, "active"_n},
53 "apply"_n,
54 std::make_tuple(coopname, actor, operation_code, process_type, amount, username, process_hash, memo)
55 ).send();
56 }
57
64 static inline eosio::asset get_user_available(eosio::name coopname,
65 eosio::name wallet_name,
66 eosio::name username) {
67 userwallets_index user_wallets(_ledger2, coopname.value);
68 auto idx = user_wallets.get_index<"byuserwallet"_n>();
69 auto it = idx.find(combine_ids(wallet_name.value, username.value));
70 return it == idx.end() ? eosio::asset(0, _root_govern_symbol) : it->available;
71 }
72};
Хелпер для вызова ledger2::apply из контрактов-инициаторов.
Definition: ledger2.hpp:28
static eosio::asset get_user_available(eosio::name coopname, eosio::name wallet_name, eosio::name username)
Доступный остаток на USER_SHARED-кошельке по пайщику (или по участку — у w.brn.common разрез по brana...
Definition: ledger2.hpp:64
static void apply(eosio::name actor, eosio::name coopname, eosio::name operation_code, eosio::name process_type, eosio::asset amount, eosio::name username, eosio::checksum256 process_hash, std::string memo)
Отправить inline action ledger2::apply.
Definition: ledger2.hpp:42
static constexpr eosio::symbol _root_govern_symbol
Definition: consts.hpp:236
static constexpr eosio::name _ledger2
Definition: consts.hpp:185
permission_level
Definition: eosio.msig_tests.cpp:896
share_type amount
Definition: eosio.token_tests.cpp:174
void send(name contract, name action_name, name actor, Args &&... args)
Definition: actions.hpp:10
action(permission_level{ _gateway, "active"_n}, _gateway, "adduser"_n, std::make_tuple(coopname, deposit->username, to_spread, to_circulation, eosio::current_time_point(), true)).send()
eosio::multi_index< "userwallets"_n, userwallet, eosio::indexed_by<"byuserwallet"_n, eosio::const_mem_fun< userwallet, uint128_t, &userwallet::by_userwallet > >, eosio::indexed_by<"byuser"_n, eosio::const_mem_fun< userwallet, uint64_t, &userwallet::by_user > >, eosio::indexed_by<"bywallet"_n, eosio::const_mem_fun< userwallet, uint64_t, &userwallet::by_wallet > > > userwallets_index
Definition: table_ledger2_userwallets.hpp:48
static uint128_t combine_ids(const uint64_t &x, const uint64_t &y)
Definition: utils.hpp:7