27#include <eosio/asset.hpp>
28#include <eosio/binary_extension.hpp>
29#include <eosio/privileged.hpp>
30#include <eosio/producer_schedule.hpp>
31#include <eosio/singleton.hpp>
32#include <eosio/system.hpp>
33#include <eosio/time.hpp>
42#include "../../../../../lib/consts.hpp"
45#define CHANNEL_RAM_AND_NAMEBID_FEES_TO_REX 0
50 using eosio::binary_extension;
51 using eosio::block_timestamp;
53 using eosio::const_mem_fun;
54 using eosio::datastream;
55 using eosio::indexed_by;
57 using eosio::same_payer;
59 using eosio::symbol_code;
61 using eosio::time_point_sec;
62 using eosio::unsigned_int;
67 template<
typename E,
typename F>
69 -> std::enable_if_t< std::is_integral_v<F> && std::is_unsigned_v<F> &&
70 std::is_enum_v<E> && std::is_same_v< F, std::underlying_type_t<E> >,
bool>
72 return ( (flags &
static_cast<F
>(field)) != 0 );
75 template<
typename E,
typename F>
76 static inline auto set_field( F flags, E field,
bool value =
true )
77 -> std::enable_if_t< std::is_integral_v<F> && std::is_unsigned_v<F> &&
78 std::is_enum_v<E> && std::is_same_v< F, std::underlying_type_t<E> >, F >
81 return ( flags |
static_cast<F
>(field) );
83 return ( flags & ~
static_cast<F
>(field) );
111#ifdef SYSTEM_BLOCKCHAIN_PARAMETERS
112 struct blockchain_parameters_v1 : eosio::blockchain_parameters
114 eosio::binary_extension<uint32_t> max_action_return_value_size;
115 EOSLIB_SERIALIZE_DERIVED( blockchain_parameters_v1, eosio::blockchain_parameters,
116 (max_action_return_value_size) )
136 int64_t high_bid = 0;
140 uint64_t
by_high_bid()
const {
return static_cast<uint64_t
>(-high_bid); }
157 typedef eosio::multi_index<
"namebids"_n, name_bid,
158 indexed_by<
"highbid"_n, const_mem_fun<name_bid, uint64_t, &name_bid::by_high_bid> >
172 uint64_t
free_ram()
const {
return max_ram_size - total_ram_bytes_reserved; }
174 uint64_t max_ram_size = 8ll*1024 * 1024 * 1024;
175 uint64_t total_ram_bytes_reserved = 0;
176 int64_t total_ram_stake = 0;
180 int64_t pervote_bucket = 0;
181 int64_t perblock_bucket = 0;
182 uint32_t total_unpaid_blocks = 0;
183 int64_t total_activated_stake = 0;
185 uint16_t last_producer_schedule_size = 0;
186 double total_producer_vote_weight = 0;
187 uint16_t new_ram_per_block = 0;
189 uint8_t revision = 0;
195 (max_ram_size)(total_ram_bytes_reserved)(total_ram_stake)
196 (last_producer_schedule_update)(last_pervote_bucket_fill)
197 (pervote_bucket)(perblock_bucket)(total_unpaid_blocks)(total_activated_stake)(thresh_activated_stake_time)
198 (last_producer_schedule_size)(total_producer_vote_weight)
199 (new_ram_per_block)(last_ram_increase)(revision)
205 return eosio::block_signing_authority_v0{ .threshold = 1, .keys = {{producer_key, 1}} };
218 double total_votes = 0;
220 bool is_active =
true;
222 uint32_t unpaid_blocks = 0;
224 uint16_t location = 0;
228 double by_votes()
const {
return is_active ? -total_votes : total_votes; }
230 void deactivate() { producer_key = public_key(); producer_authority.reset(); is_active =
false; }
233 if( producer_authority.has_value() ) {
234 bool zero_threshold = std::visit( [](
auto&& auth ) ->
bool {
235 return (auth.threshold == 0);
236 }, *producer_authority );
240 if( !zero_threshold )
return *producer_authority;
254 template<
typename DataStream>
270 template<
typename DataStream>
301 double last_vote_weight = 0;
304 double proxied_vote_weight= 0;
308 uint32_t reserved2 = 0;
320 EOSLIB_SERIALIZE(
voter_info, (
owner)(
proxy)(producers)(staked)(last_vote_weight)(proxied_vote_weight)(is_proxy)(flags1)(reserved2)(reserved3) )
327 indexed_by<
"prototalvote"_n, const_mem_fun<producer_info, double, &producer_info::by_votes> >
344 int64_t ram_bytes = 0;
346 bool is_empty()
const {
return net_weight.amount == 0 && cpu_weight.amount == 0 && ram_bytes == 0; }
368 bool is_empty()
const {
return net_weight.amount == 0 && cpu_weight.amount == 0; }
390 bool is_empty()
const {
return net_amount.amount == 0 && cpu_amount.amount == 0; }
445 static constexpr uint32_t default_powerup_days = 30;
450 uint32_t powerup_days = default_powerup_days;
451 asset min_powerup_fee = {};
469 uint64_t tact_number = 1;
470 uint64_t tact_duration = 86400;
471 double emission_factor = double(0.618);
509 typedef eosio::multi_index<
"powup.order"_n, powerup_order,
510 indexed_by<
"byowner"_n, const_mem_fun<powerup_order, uint64_t, &powerup_order::by_owner>>,
511 indexed_by<
"byexpires"_n, const_mem_fun<powerup_order, uint64_t, &powerup_order::by_expires>>
535 static constexpr eosio::name active_permission{
"active"_n};
536 static constexpr eosio::name token_account{
"eosio.token"_n};
537 static constexpr eosio::name ram_account{
"eosio.ram"_n};
538 static constexpr eosio::name ramfee_account{
"eosio.ramfee"_n};
539 static constexpr eosio::name stake_account{
"eosio.stake"_n};
540 static constexpr eosio::name bpay_account{
"eosio.bpay"_n};
541 static constexpr eosio::name vpay_account{
"eosio.vpay"_n};
542 static constexpr eosio::name names_account{
"eosio.names"_n};
543 static constexpr eosio::name null_account{
"eosio.null"_n};
544 static constexpr symbol ramcore_symbol = symbol(symbol_code(
"RAMCORE"), 4);
545 static constexpr symbol ram_symbol = symbol(symbol_code(
"RAM"), 0);
553 rammarket rm(system_account, system_account.value);
554 const static auto sym = get_core_symbol( rm );
567 void init( uint64_t version,
const symbol& core );
593 void setcode(
const name&
account, uint8_t vmtype, uint8_t vmversion,
const std::vector<char>& code,
const binary_extension<std::string>& memo );
602 void initemission(eosio::asset init_supply, uint64_t tact_duration,
double emission_factor);
607 void onblock( ignore<block_header> header );
611 void setalimits(
const name&
account, int64_t ram_bytes, int64_t net_weight, int64_t cpu_weight );
615 void setacctram(
const name&
account,
const std::optional<int64_t>& ram_bytes );
619 void setacctnet(
const name&
account,
const std::optional<int64_t>& net_weight );
623 void setacctcpu(
const name&
account,
const std::optional<int64_t>& cpu_weight );
628 void activate(
const eosio::checksum256& feature_digest );
634 void delegatebw(
const name& from,
const name& receiver,
635 const asset& stake_net_quantity,
const asset& stake_cpu_quantity,
bool transfer );
640 void undelegatebw(
const name& from,
const name& receiver,
641 const asset& unstake_net_quantity,
const asset& unstake_cpu_quantity );
645 void buyram(
const name& payer,
const name& receiver,
const asset& quant );
649 void sellram(
const name&
account, int64_t bytes );
654 void buyrambytes(
const name& payer,
const name& receiver, uint32_t bytes );
658 void refund(
const name&
owner );
664 void regproducer(
const name& producer,
const public_key& producer_key,
const std::string& url, uint16_t location );
668 void regproducer2(
const name& producer,
const eosio::block_signing_authority& producer_authority,
const std::string& url, uint16_t location );
672 void unregprod(
const name& producer );
676 void setram( uint64_t max_ram_size );
680 void setramrate( uint16_t bytes_per_block );
684 void voteproducer(
const name&
voter,
const name&
proxy,
const std::vector<name>& producers );
688 void voteupdate(
const name& voter_name );
692 void regproxy(
const name&
proxy,
bool isproxy );
698#ifdef SYSTEM_CONFIGURABLE_WASM_LIMITS
701 void wasmcfg(
const name& settings );
706 void claimrewards(
const name&
owner );
710 void setpriv(
const name&
account, uint8_t is_priv );
714 void rmvproducer(
const name& producer );
718 void updtrevision( uint8_t revision );
722 void bidname(
const name& bidder,
const name& newname,
const asset& bid );
726 void bidrefund(
const name& bidder,
const name& newname );
734 void powerupexec(
const name& user, uint16_t
max );
738 void powerup(
const name& payer,
const name& receiver, uint32_t days,
const asset& payment,
const bool transfer =
false);
742 void limitauthchg(
const name&
account,
const std::vector<name>& allow_perms,
const std::vector<name>& disallow_perms );
800 auto itr = rm.find(ramcore_symbol.raw());
801 check(itr != rm.end(),
"system contract must first be initialized");
802 return itr->quote.balance.symbol;
807 int64_t update_ram_debt_table(name payer, name
account, int64_t ram_bytes);
809 void emit(eosio::asset new_emission);
811 symbol core_symbol()
const;
812 void update_ram_supply();
815 void changebw( name from,
const name& receiver,
816 const asset& stake_net_quantity,
const asset& stake_cpu_quantity,
bool transfer );
817 void update_voting_power(
const name&
voter,
const asset& total_update );
820 void register_producer(
const name& producer,
const eosio::block_signing_authority& producer_authority,
const std::string& url, uint16_t location );
821 void update_elected_producers(
const block_timestamp& timestamp );
822 void update_votes(
const name&
voter,
const name&
proxy,
const std::vector<name>& producers,
bool voting );
826 void fill_tact(eosio::name payer, eosio::asset payment);
827 void adjust_resources(name payer, name
account, symbol core_symbol, int64_t net_delta, int64_t cpu_delta, int64_t ram_delta,
bool must_not_be_managed =
false);
828 void process_powerup_queue(
829 time_point_sec now, symbol core_symbol,
powerup_state& state,
831 int64_t& cpu_delta_available, int64_t& ram_delta_available);
833 void change_weights(eosio::name payer, eosio::asset new_emission);
835 void add_to_blockinfo_table(
const eosio::checksum256& previous_block_id,
const eosio::block_timestamp timestamp)
const;
Definition: native.hpp:128
Definition: eosio.system.hpp:525
eosio::action_wrapper<"activate"_n, &system_contract::activate > activate_action
Definition: eosio.system.hpp:755
eosio::action_wrapper<"delegatebw"_n, &system_contract::delegatebw > delegatebw_action
Definition: eosio.system.hpp:756
rammarket _rammarket
Definition: eosio.system.hpp:532
eosio::action_wrapper<"unregprod"_n, &system_contract::unregprod > unregprod_action
Definition: eosio.system.hpp:767
eosio::action_wrapper<"buyram"_n, &system_contract::buyram > buyram_action
Definition: eosio.system.hpp:759
eosio::action_wrapper<"claimrewards"_n, &system_contract::claimrewards > resultrewards_action
Definition: eosio.system.hpp:778
eosio::action_wrapper<"setacctram"_n, &system_contract::setacctram > setacctram_action
Definition: eosio.system.hpp:751
eosio::action_wrapper<"bidname"_n, &system_contract::bidname > bidname_action
Definition: eosio.system.hpp:784
eosio_global_state _gstate
Definition: eosio.system.hpp:531
voters_table _voters
Definition: eosio.system.hpp:528
eosio::action_wrapper<"setram"_n, &system_contract::setram > setram_action
Definition: eosio.system.hpp:769
static symbol get_core_symbol(name system_account="eosio"_n)
Definition: eosio.system.hpp:552
eosio::action_wrapper<"setalimits"_n, &system_contract::setalimits > setalimits_action
Definition: eosio.system.hpp:788
eosio::action_wrapper<"updtrevision"_n, &system_contract::updtrevision > updtrevision_action
Definition: eosio.system.hpp:782
void setcode(const name &account, uint8_t vmtype, uint8_t vmversion, const std::vector< char > &code, const binary_extension< std::string > &memo)
Definition: eosio.system.cpp:723
eosio::action_wrapper<"undelegatebw"_n, &system_contract::undelegatebw > undelegatebw_action
Definition: eosio.system.hpp:757
eosio::action_wrapper<"refund"_n, &system_contract::refund > refund_action
Definition: eosio.system.hpp:762
producers_table _producers
Definition: eosio.system.hpp:529
eosio::action_wrapper<"bidrefund"_n, &system_contract::bidrefund > bidrefund_action
Definition: eosio.system.hpp:785
void regproxy(const name &proxy, bool isproxy)
Definition: voting.cpp:325
eosio::action_wrapper<"cfgpowerup"_n, &system_contract::cfgpowerup > cfgpowerup_action
Definition: eosio.system.hpp:792
eosio::action_wrapper<"setacctcpu"_n, &system_contract::setacctcpu > setacctcpu_action
Definition: eosio.system.hpp:753
eosio::action_wrapper<"setpriv"_n, &system_contract::setpriv > setpriv_action
Definition: eosio.system.hpp:787
eosio::action_wrapper<"regproxy"_n, &system_contract::regproxy > regproxy_action
Definition: eosio.system.hpp:776
static symbol get_core_symbol(const rammarket &rm)
Definition: eosio.system.hpp:799
eosio::action_wrapper<"rmvproducer"_n, &system_contract::rmvproducer > rmvproducer_action
Definition: eosio.system.hpp:780
eosio::action_wrapper<"setcode"_n, &system_contract::setcode > setcode_action
Definition: eosio.system.hpp:748
eosio::action_wrapper<"voteproducer"_n, &system_contract::voteproducer > voteproducer_action
Definition: eosio.system.hpp:773
eosio::action_wrapper<"voteupdate"_n, &system_contract::voteupdate > voteupdate_action
Definition: eosio.system.hpp:774
eosio::action_wrapper<"setramrate"_n, &system_contract::setramrate > setramrate_action
Definition: eosio.system.hpp:770
eosio::action_wrapper<"regproducer"_n, &system_contract::regproducer > regproducer_action
Definition: eosio.system.hpp:764
eosio::action_wrapper<"init"_n, &system_contract::init > init_action
Definition: eosio.system.hpp:747
eosio::action_wrapper<"initemission"_n, &system_contract::initemission > initemission_action
Definition: eosio.system.hpp:749
eosio::action_wrapper<"powerup"_n, &system_contract::powerup > powerup_action
Definition: eosio.system.hpp:794
eosio::action_wrapper<"powerupexec"_n, &system_contract::powerupexec > powerupexec_action
Definition: eosio.system.hpp:793
eosio::action_wrapper<"setacctnet"_n, &system_contract::setacctnet > setacctnet_action
Definition: eosio.system.hpp:752
eosio::action_wrapper<"setparams"_n, &system_contract::setparams > setparams_action
Definition: eosio.system.hpp:790
global_state_singleton _global
Definition: eosio.system.hpp:530
eosio::action_wrapper<"regproducer2"_n, &system_contract::regproducer2 > regproducer2_action
Definition: eosio.system.hpp:765
void initemission(eosio::asset init_supply, uint64_t tact_duration, double emission_factor)
Definition: powerup.cpp:323
eosio::action_wrapper<"buyrambytes"_n, &system_contract::buyrambytes > buyrambytes_action
Definition: eosio.system.hpp:760
const auto active
Definition: eosio.limitauth_tests.cpp:17
const auto owner
Definition: eosio.limitauth_tests.cpp:16
contract
Definition: eosio.msig_tests.cpp:977
transfer("alice"_n, "bob"_n, asset::from_string("300 CERO"), "hola")
asset max(10, symbol(SY(0, NKT)))
void buyram(const name &payer, const name &receiver, const asset &quant)
Покупает RAM для указанного аккаунта. При покупке RAM плательщик безвозвратно передает токены системн...
Definition: delegate_bandwidth.cpp:58
void updtrevision(uint8_t revision)
Обновляет текущую ревизию. Обновляет текущую ревизию. Ревизия должна быть увеличена на 1 по сравнению...
Definition: eosio.system.cpp:499
void unregprod(const name &producer)
Отменяет регистрацию блок-продюсера. Деактивирует продюсера, делая его неактивным в системе.
Definition: voting.cpp:117
void refund(const name &owner)
Возвращает застейканные токены после истечения периода задержки. Позволяет аккаунту получить обратно ...
Definition: delegate_bandwidth.cpp:447
void activate(const eosio::checksum256 &feature_digest)
Активирует протокольную функцию. Активирует протокольную функцию по хешу перед деплоем системного кон...
Definition: eosio.system.cpp:466
void voteproducer(const name &voter, const name &proxy, const std::vector< name > &producers)
Голосует за продюсеров или делегирует голос прокси. Позволяет пользователю голосовать за до 30 продюс...
Definition: voting.cpp:180
void bidrefund(const name &bidder, const name &newname)
Возвращает ставку на имя. Позволяет аккаунту получить обратно сумму своей ставки на имя,...
Definition: name_bidding.cpp:97
void regproducer(const name &producer, const public_key &producer_key, const std::string &url, uint16_t location)
Регистрирует блок-продюсера в системе. Создает или обновляет запись продюсера с публичным ключом,...
Definition: voting.cpp:78
void rmvproducer(const name &producer)
Удаляет продюсера по имени. Деактивирует продюсера по имени, если не найден - вызывает ошибку.
Definition: eosio.system.cpp:480
void init(uint64_t version, const symbol &core)
Инициализирует системный контракт для версии и символа. Действие выполняется успешно только когда:
Definition: eosio.system.cpp:685
void claimrewards(const name &owner)
Получает награды за производство блоков и голосование. Позволяет продюсеру получить награды за произв...
Definition: producer_pay.cpp:121
void undelegatebw(const name &from, const name &receiver, const asset &unstake_net_quantity, const asset &unstake_cpu_quantity)
Отменяет делегирование пропускной способности сети и CPU. Позволяет аккаунту отменить стейкинг токено...
Definition: delegate_bandwidth.cpp:418
void setpriv(const name &account, uint8_t is_priv)
Устанавливает привилегированный статус для аккаунта. Позволяет включить или выключить привилегированн...
Definition: eosio.system.cpp:258
void regproducer2(const name &producer, const eosio::block_signing_authority &producer_authority, const std::string &url, uint16_t location)
Регистрирует блок-продюсера с расширенной авторизацией подписи блоков. Создает или обновляет запись п...
Definition: voting.cpp:97
void setramrate(uint16_t bytes_per_block)
Устанавливает скорость увеличения RAM в байтах за блок.
Definition: eosio.system.cpp:102
void buyrambytes(const name &payer, const name &receiver, uint32_t bytes)
Покупает точное количество RAM в байтах. Покупает точное количество байт RAM и выставляет счет плател...
Definition: delegate_bandwidth.cpp:33
void setacctcpu(const name &account, const std::optional< int64_t > &cpu_weight)
Устанавливает лимиты CPU для аккаунта. Устанавливает пропорциональный лимит CPU для указанного аккаун...
Definition: eosio.system.cpp:413
void setacctnet(const name &account, const std::optional< int64_t > &net_weight)
Устанавливает лимиты NET для аккаунта. Устанавливает пропорциональный лимит NET для указанного аккаун...
Definition: eosio.system.cpp:359
void setparams(const blockchain_parameters_t ¶ms)
Устанавливает параметры блокчейна. Обновляет глобальные параметры блокчейна, включая лимиты блоков,...
Definition: eosio.system.cpp:122
void delegatebw(const name &from, const name &receiver, const asset &stake_net_quantity, const asset &stake_cpu_quantity, bool transfer)
Делегирует пропускную способность сети и CPU другому аккаунту. Позволяет аккаунту застейкать токены д...
Definition: delegate_bandwidth.cpp:387
void powerupexec(const name &user, uint16_t max)
Обрабатывает очередь powerup и обновляет состояние. Действие не выполняет ничего связанного с конкрет...
Definition: powerup.cpp:172
void powerup(const name &payer, const name &receiver, uint32_t days, const asset &payment, const bool transfer=false)
Аренда ресурсов NET и CPU через систему powerup. Позволяет аккаунту арендовать ресурсы сети и CPU на ...
Definition: powerup.cpp:204
void setacctram(const name &account, const std::optional< int64_t > &ram_bytes)
Устанавливает лимиты RAM для аккаунта. Устанавливает лимит RAM в абсолютных байтах для указанного акк...
Definition: eosio.system.cpp:304
void setalimits(const name &account, int64_t ram_bytes, int64_t net_weight, int64_t cpu_weight)
Устанавливает лимиты ресурсов для аккаунта. Устанавливает абсолютные лимиты RAM, NET и CPU для указан...
Definition: eosio.system.cpp:276
void setram(uint64_t max_ram_size)
Устанавливает максимальный размер RAM в системе. Увеличивает количество RAM доступного для продажи на...
Definition: eosio.system.cpp:49
void cfgpowerup(powerup_config &args)
Конфигурирует систему аренды ресурсов. Настраивает параметры рынка ресурсов powerup,...
Definition: powerup.cpp:108
void bidname(const name &bidder, const name &newname, const asset &bid)
Размещает ставку на премиум имя. Позволяет аккаунту разместить ставку на премиум имя....
Definition: name_bidding.cpp:24
void voteupdate(const name &voter_name)
Обновляет голоса пользователя на основе текущих застейканных токенов. Пересчитывает вес голоса пользо...
Definition: voting.cpp:196
static constexpr int64_t ram_gift_bytes
Подарочные байты RAM (1400)
Definition: eosio.system.hpp:104
static constexpr uint32_t blocks_per_day
Количество блоков в дне (половина секунды на блок)
Definition: eosio.system.hpp:99
static constexpr uint32_t seconds_per_day
Количество секунд в дне
Definition: eosio.system.hpp:89
static constexpr uint32_t seconds_per_hour
Количество секунд в часе
Definition: eosio.system.hpp:91
static constexpr int64_t useconds_per_hour
Количество микросекунд в часе
Definition: eosio.system.hpp:97
static constexpr int64_t useconds_per_year
Количество микросекунд в году
Definition: eosio.system.hpp:93
static constexpr int64_t min_activated_stake
Минимальная активированная ставка
Definition: eosio.system.hpp:102
static constexpr int64_t useconds_per_day
Количество микросекунд в дне
Definition: eosio.system.hpp:95
static constexpr int64_t min_pervote_daily_pay
Минимальная ежедневная оплата за голос
Definition: eosio.system.hpp:106
static constexpr uint32_t refund_delay_sec
Задержка возврата в секундах
Definition: eosio.system.hpp:108
constexpr int64_t powerup_frac
Definition: eosio.system.hpp:65
static constexpr uint32_t seconds_per_year
Количество секунд в году
Definition: eosio.system.hpp:87
fc::mutable_variant_object voter(account_name acct)
Definition: eosio.system_tester.hpp:1183
fc::mutable_variant_object proxy(account_name acct)
Definition: eosio.system_tester.hpp:1212
Definition: eosio.msig.hpp:34
Definition: rammarket.hpp:7
eosio::multi_index<"rammarket"_n, exchange_state > rammarket
Definition: rammarket.hpp:111
eosio::multi_index< "voters"_n, voter_info > voters_table
Definition: eosio.system.hpp:324
eosio::singleton< "global"_n, eosio_global_state > global_state_singleton
Definition: eosio.system.hpp:330
eosio::multi_index< "userres"_n, user_resources > user_resources_table
Definition: eosio.system.hpp:415
eosio::singleton<"powerstate"_n, powerup_state > powerup_state_singleton
Definition: eosio.system.hpp:456
eosio::multi_index< "delband"_n, delegated_bandwidth > del_bandwidth_table
Definition: eosio.system.hpp:416
eosio::multi_index<"ramdebts"_n, ram_debt_record > ram_debts_table
Definition: eosio.system.hpp:412
static auto set_field(F flags, E field, bool value=true) -> std::enable_if_t< std::is_integral_v< F > &&std::is_unsigned_v< F > &&std::is_enum_v< E > &&std::is_same_v< F, std::underlying_type_t< E > >, F >
Definition: eosio.system.hpp:76
eosio::blockchain_parameters blockchain_parameters_t
Definition: eosio.system.hpp:120
static auto has_field(F flags, E field) -> std::enable_if_t< std::is_integral_v< F > &&std::is_unsigned_v< F > &&std::is_enum_v< E > &&std::is_same_v< F, std::underlying_type_t< E > >, bool >
Definition: eosio.system.hpp:68
eosio::multi_index< "namebids"_n, name_bid, indexed_by<"highbid"_n, const_mem_fun< name_bid, uint64_t, &name_bid::by_high_bid > > > name_bid_table
Definition: eosio.system.hpp:159
eosio::multi_index< "bidrefunds"_n, bid_refund > bid_refund_table
Definition: eosio.system.hpp:161
eosio::multi_index< "refunds"_n, refund_request > refunds_table
Definition: eosio.system.hpp:417
eosio::multi_index< "powup.order"_n, powerup_order, indexed_by<"byowner"_n, const_mem_fun< powerup_order, uint64_t, &powerup_order::by_owner > >, indexed_by<"byexpires"_n, const_mem_fun< powerup_order, uint64_t, &powerup_order::by_expires > > > powerup_order_table
Definition: eosio.system.hpp:512
eosio::block_signing_authority convert_to_block_signing_authority(const eosio::public_key &producer_key)
Definition: eosio.system.hpp:204
eosio::singleton<"emission"_n, emission_state > emission_state_singleton
Definition: eosio.system.hpp:482
eosio::multi_index< "producers"_n, producer_info, indexed_by<"prototalvote"_n, const_mem_fun< producer_info, double, &producer_info::by_votes > > > producers_table
Definition: eosio.system.hpp:328
eosio::time_point time_point
Definition: blockinfo_tester.hpp:30
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()
Структура, представляющая учетные записи аккаунтов.
Definition: accounts.hpp:60
Definition: native.hpp:71
Таблица возвратов ставок хранит информацию о возвратах средств от неудачных ставок на имена.
Definition: eosio.system.hpp:151
uint64_t primary_key() const
Первичный ключ (1)
Definition: eosio.system.hpp:155
name bidder
Аккаунт, которому принадлежит возврат
Definition: eosio.system.hpp:152
asset amount
Сумма к возврату
Definition: eosio.system.hpp:153
Таблица делегированной пропускной способности хранит информацию о делегированных ресурсах между польз...
Definition: eosio.system.hpp:362
name from
Отправитель делегирования
Definition: eosio.system.hpp:363
bool is_empty() const
Проверяет, пусто ли делегирование
Definition: eosio.system.hpp:368
name to
Получатель делегирования
Definition: eosio.system.hpp:364
asset cpu_weight
Вес CPU.
Definition: eosio.system.hpp:366
uint64_t primary_key() const
Первичный ключ (1)
Definition: eosio.system.hpp:369
asset net_weight
Вес сети
Definition: eosio.system.hpp:365
Таблица состояния эмиссии хранит информацию о текущем такте эмиссии токенов.
Definition: eosio.system.hpp:468
asset back_from_producers
Вернулось в фонд от делегатских комиссий
Definition: eosio.system.hpp:476
eosio::time_point_sec tact_open_at
Дата открытия такта
Definition: eosio.system.hpp:473
uint64_t primary_key() const
Первичный ключ (1)
Definition: eosio.system.hpp:479
eosio::time_point_sec tact_close_at
Дата закрытия такта
Definition: eosio.system.hpp:474
asset tact_fees
Накопленные комиссии такта
Definition: eosio.system.hpp:475
asset current_supply
Объем токенов в системе
Definition: eosio.system.hpp:472
asset emission_start
Подвижная граница начала эмиссии в такте
Definition: eosio.system.hpp:478
asset tact_emission
Накопленная эмиссия такта
Definition: eosio.system.hpp:477
Глобальное состояние системы хранит основные параметры блокчейна и статистику.
Definition: eosio.system.hpp:171
block_timestamp last_producer_schedule_update
Время последнего обновления расписания продюсеров
Definition: eosio.system.hpp:178
time_point thresh_activated_stake_time
Время достижения порога активированной ставки
Definition: eosio.system.hpp:184
block_timestamp last_name_close
Время последнего закрытия имени
Definition: eosio.system.hpp:191
uint64_t free_ram() const
Возвращает количество свободной RAM.
Definition: eosio.system.hpp:172
time_point last_pervote_bucket_fill
Время последнего заполнения корзины за голос
Definition: eosio.system.hpp:179
block_timestamp last_ram_increase
Время последнего увеличения RAM.
Definition: eosio.system.hpp:188
Таблица ставок на имена хранит информацию о аукционах на премиум имена.
Definition: eosio.system.hpp:133
name newname
Имя, на которое делается ставка
Definition: eosio.system.hpp:134
uint64_t by_high_bid() const
Индекс по наивысшей ставке (2)
Definition: eosio.system.hpp:140
name high_bidder
Аккаунт с наивысшей ставкой
Definition: eosio.system.hpp:135
time_point last_bid_time
Время последней ставки
Definition: eosio.system.hpp:137
uint64_t primary_key() const
Первичный ключ (1)
Definition: eosio.system.hpp:139
Definition: eosio.system.hpp:419
std::optional< uint32_t > powerup_days
Definition: eosio.system.hpp:420
std::optional< asset > min_powerup_fee
Definition: eosio.system.hpp:422
Таблица заказов powerup хранит информацию о заказах на покупку ресурсов через powerup.
Definition: eosio.system.hpp:495
uint64_t id
ID заказа
Definition: eosio.system.hpp:497
time_point_sec expires
Время истечения заказа
Definition: eosio.system.hpp:502
int64_t net_weight
Вес сети
Definition: eosio.system.hpp:499
name owner
Владелец заказа
Definition: eosio.system.hpp:498
uint64_t primary_key() const
Первичный ключ (1)
Definition: eosio.system.hpp:504
uint64_t by_expires() const
Индекс по времени истечения (3)
Definition: eosio.system.hpp:506
int64_t ram_bytes
Количество байт RAM.
Definition: eosio.system.hpp:501
uint64_t by_owner() const
Индекс по владельцу (2)
Definition: eosio.system.hpp:505
int64_t cpu_weight
Вес CPU.
Definition: eosio.system.hpp:500
Definition: eosio.system.hpp:428
int64_t utilization
Definition: eosio.system.hpp:432
int64_t weight
Definition: eosio.system.hpp:429
Таблица состояния powerup хранит состояние рынка ресурсов для powerup.
Definition: eosio.system.hpp:444
uint64_t primary_key() const
Первичный ключ (1)
Definition: eosio.system.hpp:453
Таблица информации о продюсерах хранит данные о зарегистрированных блок-продюсерах.
Definition: eosio.system.hpp:216
bool is_active
Активен ли продюсер
Definition: eosio.system.hpp:220
eosio::block_signing_authority get_producer_authority() const
Definition: eosio.system.hpp:232
uint32_t unpaid_blocks
Количество неоплаченных блоков
Definition: eosio.system.hpp:222
double by_votes() const
Definition: eosio.system.hpp:228
uint16_t location
Локация продюсера
Definition: eosio.system.hpp:224
name owner
Владелец аккаунта продюсера
Definition: eosio.system.hpp:217
uint64_t primary_key() const
Definition: eosio.system.hpp:227
time_point last_result_time
Время последнего результата
Definition: eosio.system.hpp:223
void deactivate()
Definition: eosio.system.hpp:230
double total_votes
Общее количество голосов
Definition: eosio.system.hpp:218
bool active() const
Definition: eosio.system.hpp:229
eosio::binary_extension< eosio::block_signing_authority > producer_authority
Авторизация подписи блоков (добавлено в версии 1.9.0)
Definition: eosio.system.hpp:225
eosio::public_key producer_key
Публичный ключ продюсера
Definition: eosio.system.hpp:219
std::string url
URL продюсера
Definition: eosio.system.hpp:221
Таблица записей о долгах по RAM хранит информацию о долгах аккаунтов по RAM.
Definition: eosio.system.hpp:405
name account
Аккаунт
Definition: eosio.system.hpp:406
uint64_t primary_key() const
Первичный ключ (1)
Definition: eosio.system.hpp:409
int64_t ram_debt
Долг по RAM.
Definition: eosio.system.hpp:407
Таблица запросов на возврат хранит информацию о запросах на возврат делегированных ресурсов.
Definition: eosio.system.hpp:384
name owner
Владелец запроса на возврат
Definition: eosio.system.hpp:385
bool is_empty() const
Проверяет, пуст ли запрос на возврат
Definition: eosio.system.hpp:390
uint64_t primary_key() const
Первичный ключ (1)
Definition: eosio.system.hpp:391
eosio::asset net_amount
Сумма сети для возврата
Definition: eosio.system.hpp:387
eosio::asset cpu_amount
Сумма CPU для возврата
Definition: eosio.system.hpp:388
time_point_sec request_time
Время запроса
Definition: eosio.system.hpp:386
Таблица ресурсов пользователя хранит информацию о ресурсах, принадлежащих пользователю.
Definition: eosio.system.hpp:340
bool is_empty() const
Проверяет, пусты ли ресурсы
Definition: eosio.system.hpp:346
name owner
Владелец ресурсов
Definition: eosio.system.hpp:341
uint64_t primary_key() const
Первичный ключ (1)
Definition: eosio.system.hpp:347
asset cpu_weight
Вес CPU.
Definition: eosio.system.hpp:343
asset net_weight
Вес сети
Definition: eosio.system.hpp:342
Таблица информации о голосующих хранит данные о голосующих и их голосах.
Definition: eosio.system.hpp:292
name owner
Голосующий
Definition: eosio.system.hpp:293
uint64_t primary_key() const
Definition: eosio.system.hpp:311
name proxy
Прокси, установленный голосующим
Definition: eosio.system.hpp:294
flags1_fields
Definition: eosio.system.hpp:313
std::vector< name > producers
Продюсеры, одобренные этим голосующим, если прокси не установлен
Definition: eosio.system.hpp:295
eosio::asset reserved3
Зарезервированное поле 3.
Definition: eosio.system.hpp:309