COOPENOMICS  v1
Кооперативная Экономика
Класс eosiosystem::system_contract

#include <eosio.system.hpp>

Граф наследования:eosiosystem::system_contract:
eosiosystem::native

Открытые типы

using init_action = eosio::action_wrapper<"init"_n, &system_contract::init >
 
using setcode_action = eosio::action_wrapper<"setcode"_n, &system_contract::setcode >
 
using initemission_action = eosio::action_wrapper<"initemission"_n, &system_contract::initemission >
 
using setacctram_action = eosio::action_wrapper<"setacctram"_n, &system_contract::setacctram >
 
using setacctnet_action = eosio::action_wrapper<"setacctnet"_n, &system_contract::setacctnet >
 
using setacctcpu_action = eosio::action_wrapper<"setacctcpu"_n, &system_contract::setacctcpu >
 
using activate_action = eosio::action_wrapper<"activate"_n, &system_contract::activate >
 
using delegatebw_action = eosio::action_wrapper<"delegatebw"_n, &system_contract::delegatebw >
 
using undelegatebw_action = eosio::action_wrapper<"undelegatebw"_n, &system_contract::undelegatebw >
 
using buyram_action = eosio::action_wrapper<"buyram"_n, &system_contract::buyram >
 
using buyrambytes_action = eosio::action_wrapper<"buyrambytes"_n, &system_contract::buyrambytes >
 
using refund_action = eosio::action_wrapper<"refund"_n, &system_contract::refund >
 
using regproducer_action = eosio::action_wrapper<"regproducer"_n, &system_contract::regproducer >
 
using regproducer2_action = eosio::action_wrapper<"regproducer2"_n, &system_contract::regproducer2 >
 
using unregprod_action = eosio::action_wrapper<"unregprod"_n, &system_contract::unregprod >
 
using setram_action = eosio::action_wrapper<"setram"_n, &system_contract::setram >
 
using setramrate_action = eosio::action_wrapper<"setramrate"_n, &system_contract::setramrate >
 
using voteproducer_action = eosio::action_wrapper<"voteproducer"_n, &system_contract::voteproducer >
 
using voteupdate_action = eosio::action_wrapper<"voteupdate"_n, &system_contract::voteupdate >
 
using regproxy_action = eosio::action_wrapper<"regproxy"_n, &system_contract::regproxy >
 
using resultrewards_action = eosio::action_wrapper<"claimrewards"_n, &system_contract::claimrewards >
 
using rmvproducer_action = eosio::action_wrapper<"rmvproducer"_n, &system_contract::rmvproducer >
 
using updtrevision_action = eosio::action_wrapper<"updtrevision"_n, &system_contract::updtrevision >
 
using bidname_action = eosio::action_wrapper<"bidname"_n, &system_contract::bidname >
 
using bidrefund_action = eosio::action_wrapper<"bidrefund"_n, &system_contract::bidrefund >
 
using setpriv_action = eosio::action_wrapper<"setpriv"_n, &system_contract::setpriv >
 
using setalimits_action = eosio::action_wrapper<"setalimits"_n, &system_contract::setalimits >
 
using setparams_action = eosio::action_wrapper<"setparams"_n, &system_contract::setparams >
 
using cfgpowerup_action = eosio::action_wrapper<"cfgpowerup"_n, &system_contract::cfgpowerup >
 
using powerupexec_action = eosio::action_wrapper<"powerupexec"_n, &system_contract::powerupexec >
 
using powerup_action = eosio::action_wrapper<"powerup"_n, &system_contract::powerup >
 
- Открытые типы унаследованные от eosiosystem::native
using newaccount_action = eosio::action_wrapper<"newaccount"_n, &native::newaccount >
 
using updateauth_action = eosio::action_wrapper<"updateauth"_n, &native::updateauth >
 
using deleteauth_action = eosio::action_wrapper<"deleteauth"_n, &native::deleteauth >
 
using linkauth_action = eosio::action_wrapper<"linkauth"_n, &native::linkauth >
 
using unlinkauth_action = eosio::action_wrapper<"unlinkauth"_n, &native::unlinkauth >
 
using canceldelay_action = eosio::action_wrapper<"canceldelay"_n, &native::canceldelay >
 
using setabi_action = eosio::action_wrapper<"setabi"_n, &native::setabi >
 

Открытые члены

 system_contract (name s, name code, datastream< const char * > ds)
 
 ~system_contract ()
 
void init (uint64_t version, const symbol &core)
 Инициализирует системный контракт для версии и символа. Действие выполняется успешно только когда: Подробнее...
 
void migrate ()
 Метод миграции вызывается после деплоя для внесения моментальных изменений Подробнее...
 
void changekey (name account, name permission, name parent, authority auth)
 Метод обновления активного ключа пользователя кооперативами. Подробнее...
 
void setcode (const name &account, uint8_t vmtype, uint8_t vmversion, const std::vector< char > &code, const binary_extension< std::string > &memo)
 
void initemission (eosio::asset init_supply, uint64_t tact_duration, double emission_factor)
 
void onblock (ignore< block_header > header)
 Действие при блоке. Это специальное действие срабатывает при применении блока данным продюсером и не может быть сгенерировано из любого другого источника. Используется для оплаты продюсеров и расчета пропущенных блоков других продюсеров. Оплата продюсера депонируется в баланс ставки продюсера и может быть выведена со временем. Раз в минуту может обновлять активную конфигурацию продюсера из голосов продюсеров. Действие также заполняет таблицу blockinfo. Подробнее...
 
void setalimits (const name &account, int64_t ram_bytes, int64_t net_weight, int64_t cpu_weight)
 Устанавливает лимиты ресурсов для аккаунта. Устанавливает абсолютные лимиты RAM, NET и CPU для указанного аккаунта. Поддерживает только аккаунты с неограниченными ресурсами. Подробнее...
 
void setacctram (const name &account, const std::optional< int64_t > &ram_bytes)
 Устанавливает лимиты RAM для аккаунта. Устанавливает лимит RAM в абсолютных байтах для указанного аккаунта. Подробнее...
 
void setacctnet (const name &account, const std::optional< int64_t > &net_weight)
 Устанавливает лимиты NET для аккаунта. Устанавливает пропорциональный лимит NET для указанного аккаунта. Подробнее...
 
void setacctcpu (const name &account, const std::optional< int64_t > &cpu_weight)
 Устанавливает лимиты CPU для аккаунта. Устанавливает пропорциональный лимит CPU для указанного аккаунта. Подробнее...
 
void activate (const eosio::checksum256 &feature_digest)
 Активирует протокольную функцию. Активирует протокольную функцию по хешу перед деплоем системного контракта с большим количеством функций. Подробнее...
 
void delegatebw (const name &from, const name &receiver, const asset &stake_net_quantity, const asset &stake_cpu_quantity, bool transfer)
 Делегирует пропускную способность сети и CPU другому аккаунту. Позволяет аккаунту застейкать токены для предоставления ресурсов сети и CPU другому аккаунту. Подробнее...
 
void undelegatebw (const name &from, const name &receiver, const asset &unstake_net_quantity, const asset &unstake_cpu_quantity)
 Отменяет делегирование пропускной способности сети и CPU. Позволяет аккаунту отменить стейкинг токенов для ресурсов сети и CPU. Подробнее...
 
void buyram (const name &payer, const name &receiver, const asset &quant)
 Покупает RAM для указанного аккаунта. При покупке RAM плательщик безвозвратно передает токены системному контракту, и только получатель может вернуть токены через действие sellram. Получатель оплачивает хранение всех записей базы данных, связанных с этим действием. RAM - это ограниченный ресурс, предложение которого определяется глобальным свойством max_ram_size. RAM оценивается с использованием алгоритма Bancor с постоянным резервным соотношением 100:1. Подробнее...
 
void sellram (const name &account, int64_t bytes)
 Продает RAM обратно в систему. Позволяет аккаунту продать свои байты RAM обратно в систему и получить токены. Подробнее...
 
void buyrambytes (const name &payer, const name &receiver, uint32_t bytes)
 Покупает точное количество RAM в байтах. Покупает точное количество байт RAM и выставляет счет плательщику по текущей рыночной цене. Подробнее...
 
void refund (const name &owner)
 Возвращает застейканные токены после истечения периода задержки. Позволяет аккаунту получить обратно свои токены после отмены делегирования. Подробнее...
 
void regproducer (const name &producer, const public_key &producer_key, const std::string &url, uint16_t location)
 Регистрирует блок-продюсера в системе. Создает или обновляет запись продюсера с публичным ключом, URL и локацией. Подробнее...
 
void regproducer2 (const name &producer, const eosio::block_signing_authority &producer_authority, const std::string &url, uint16_t location)
 Регистрирует блок-продюсера с расширенной авторизацией подписи блоков. Создает или обновляет запись продюсера с блок-подписывающей авторизацией, URL и локацией. Подробнее...
 
void unregprod (const name &producer)
 Отменяет регистрацию блок-продюсера. Деактивирует продюсера, делая его неактивным в системе. Подробнее...
 
void setram (uint64_t max_ram_size)
 Устанавливает максимальный размер RAM в системе. Увеличивает количество RAM доступного для продажи на основе изменения максимального размера RAM. Подробнее...
 
void setramrate (uint16_t bytes_per_block)
 Устанавливает скорость увеличения RAM в байтах за блок. Подробнее...
 
void voteproducer (const name &voter, const name &proxy, const std::vector< name > &producers)
 Голосует за продюсеров или делегирует голос прокси. Позволяет пользователю голосовать за до 30 продюсеров или делегировать свой голос прокси. Подробнее...
 
void voteupdate (const name &voter_name)
 Обновляет голоса пользователя на основе текущих застейканных токенов. Пересчитывает вес голоса пользователя и обновляет его голоса за продюсеров. Подробнее...
 
void regproxy (const name &proxy, bool isproxy)
 
void setparams (const blockchain_parameters_t &params)
 Устанавливает параметры блокчейна. Обновляет глобальные параметры блокчейна, включая лимиты блоков, транзакций и авторизаций. Подробнее...
 
void claimrewards (const name &owner)
 Получает награды за производство блоков и голосование. Позволяет продюсеру получить награды за производство блоков и голосование. Награды можно получать не чаще одного раза в день. Подробнее...
 
void setpriv (const name &account, uint8_t is_priv)
 Устанавливает привилегированный статус для аккаунта. Позволяет включить или выключить привилегированный статус для аккаунта. Подробнее...
 
void rmvproducer (const name &producer)
 Удаляет продюсера по имени. Деактивирует продюсера по имени, если не найден - вызывает ошибку. Подробнее...
 
void updtrevision (uint8_t revision)
 Обновляет текущую ревизию. Обновляет текущую ревизию. Ревизия должна быть увеличена на 1 по сравнению с текущей. Текущая ревизия не может быть выше 254 и должна быть меньше или равна 1. Подробнее...
 
void bidname (const name &bidder, const name &newname, const asset &bid)
 Размещает ставку на премиум имя. Позволяет аккаунту разместить ставку на премиум имя. Ставки можно размещать только на имена длиной не более 5 символов без точек. Ставка должна быть больше текущей на 10%. Подробнее...
 
void bidrefund (const name &bidder, const name &newname)
 Возвращает ставку на имя. Позволяет аккаунту получить обратно сумму своей ставки на имя, если она была перебита. Подробнее...
 
void cfgpowerup (powerup_config &args)
 Конфигурирует систему аренды ресурсов. Настраивает параметры рынка ресурсов powerup, включая количество дней и минимальную комиссию. Рынок становится доступным при первом вызове этого действия. Подробнее...
 
void powerupexec (const name &user, uint16_t max)
 Обрабатывает очередь powerup и обновляет состояние. Действие не выполняет ничего связанного с конкретным пользователем, а обрабатывает очередь заказов powerup и обновляет состояние рынка ресурсов. Подробнее...
 
void powerup (const name &payer, const name &receiver, uint32_t days, const asset &payment, const bool transfer=false)
 Аренда ресурсов NET и CPU через систему powerup. Позволяет аккаунту арендовать ресурсы сети и CPU на определенное количество дней. Ресурсы предоставляются получателю, а плательщик оплачивает их стоимость. Подробнее...
 
void limitauthchg (const name &account, const std::vector< name > &allow_perms, const std::vector< name > &disallow_perms)
 Ограничивает или отменяет ограничения на изменение авторизации. Позволяет аккаунту включиться в ограничения или выйти из них для действий updateauth, deleteauth, linkauth и unlinkauth. Если allow_perms не пуст, то authorized_by должен быть в векторе. Если disallow_perms не пуст, то authorized_by не должен быть в векторе. Если оба вектора пусты, то аккаунт выходит из ограничений. Подробнее...
 
void createaccnt (const name coopname, const name new_account_name, authority owner, authority active)
 Создает новый аккаунт через кооператив. Позволяет кооперативу создать новый аккаунт с указанными владельцем и активными разрешениями. Подробнее...
 
- Открытые члены унаследованные от eosiosystem::native
void newaccount (const name &creator, const name &name, ignore< authority > owner, ignore< authority > active)
 
void updateauth (name account, name permission, name parent, authority auth, binary_extension< name > authorized_by)
 
void deleteauth (name account, name permission, binary_extension< name > authorized_by)
 
void linkauth (name account, name code, name type, name requirement, binary_extension< name > authorized_by)
 
void unlinkauth (name account, name code, name type, binary_extension< name > authorized_by)
 
void canceldelay (ignore< permission_level > canceling_auth, ignore< checksum256 > trx_id)
 
void onerror (ignore< uint128_t > sender_id, ignore< std::vector< char > > sent_trx)
 
void setabi (const name &account, const std::vector< char > &abi, const binary_extension< std::string > &memo)
 

Открытые статические члены

static symbol get_core_symbol (name system_account="eosio"_n)
 

Статические открытые данные

static constexpr eosio::name active_permission {"active"_n}
 
static constexpr eosio::name token_account {"eosio.token"_n}
 
static constexpr eosio::name ram_account {"eosio.ram"_n}
 
static constexpr eosio::name ramfee_account {"eosio.ramfee"_n}
 
static constexpr eosio::name stake_account {"eosio.stake"_n}
 
static constexpr eosio::name bpay_account {"eosio.bpay"_n}
 
static constexpr eosio::name vpay_account {"eosio.vpay"_n}
 
static constexpr eosio::name names_account {"eosio.names"_n}
 
static constexpr eosio::name null_account {"eosio.null"_n}
 
static constexpr symbol ramcore_symbol = symbol(symbol_code("RAMCORE"), 4)
 
static constexpr symbol ram_symbol = symbol(symbol_code("RAM"), 0)
 

Закрытые члены

int64_t update_ram_debt_table (name payer, name account, int64_t ram_bytes)
 
void emit (eosio::asset new_emission)
 Выпускает новые токены в фонд. Выпускает указанное количество новых токенов и передает их в сберегательный фонд. Подробнее...
 
symbol core_symbol () const
 
void update_ram_supply ()
 Обновляет предложение RAM на основе времени с последнего увеличения. Увеличивает количество RAM доступного для продажи на основе времени блоков. Подробнее...
 
void changebw (name from, const name &receiver, const asset &stake_net_quantity, const asset &stake_cpu_quantity, bool transfer)
 
void update_voting_power (const name &voter, const asset &total_update)
 
void register_producer (const name &producer, const eosio::block_signing_authority &producer_authority, const std::string &url, uint16_t location)
 
void update_elected_producers (const block_timestamp &timestamp)
 
void update_votes (const name &voter, const name &proxy, const std::vector< name > &producers, bool voting)
 
void propagate_weight_change (const voter_info &voter)
 
void fill_tact (eosio::name payer, eosio::asset payment)
 
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)
 
void process_powerup_queue (time_point_sec now, symbol core_symbol, powerup_state &state, powerup_order_table &orders, uint32_t max_items, int64_t &net_delta_available, int64_t &cpu_delta_available, int64_t &ram_delta_available)
 
emission_state update_tact (emission_state state)
 
void change_weights (eosio::name payer, eosio::asset new_emission)
 
void add_to_blockinfo_table (const eosio::checksum256 &previous_block_id, const eosio::block_timestamp timestamp) const
 

Закрытые статические члены

static symbol get_core_symbol (const rammarket &rm)
 
static eosio_global_state get_default_parameters ()
 

Закрытые данные

voters_table _voters
 
producers_table _producers
 
global_state_singleton _global
 
eosio_global_state _gstate
 
rammarket _rammarket
 

Подробное описание

The eosio.system smart contract is provided by block.one as a sample system contract, and it defines the structures and actions needed for blockchain's core functionality.

Just like in the eosio.bios sample contract implementation, there are a few actions which are not implemented at the contract level (newaccount, updateauth, deleteauth, linkauth, unlinkauth, canceldelay, onerror, setabi, setcode), they are just declared in the contract so they will show in the contract's ABI and users will be able to push those actions to the chain via the account holding the eosio.system contract, but the implementation is at the EOSIO core level. They are referred to as EOSIO native actions.

  • Users can stake tokens for CPU and Network bandwidth, and then vote for producers or delegate their vote to a proxy.
  • Producers register in order to be voted for, and can result per-block and per-vote rewards.
  • Users can buy and sell RAM at a market-determined price.
  • Users can bid on premium names.

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

◆ activate_action

using eosiosystem::system_contract::activate_action = eosio::action_wrapper<"activate"_n, &system_contract::activate>

◆ bidname_action

using eosiosystem::system_contract::bidname_action = eosio::action_wrapper<"bidname"_n, &system_contract::bidname>

◆ bidrefund_action

using eosiosystem::system_contract::bidrefund_action = eosio::action_wrapper<"bidrefund"_n, &system_contract::bidrefund>

◆ buyram_action

using eosiosystem::system_contract::buyram_action = eosio::action_wrapper<"buyram"_n, &system_contract::buyram>

◆ buyrambytes_action

using eosiosystem::system_contract::buyrambytes_action = eosio::action_wrapper<"buyrambytes"_n, &system_contract::buyrambytes>

◆ cfgpowerup_action

using eosiosystem::system_contract::cfgpowerup_action = eosio::action_wrapper<"cfgpowerup"_n, &system_contract::cfgpowerup>

◆ delegatebw_action

using eosiosystem::system_contract::delegatebw_action = eosio::action_wrapper<"delegatebw"_n, &system_contract::delegatebw>

◆ init_action

using eosiosystem::system_contract::init_action = eosio::action_wrapper<"init"_n, &system_contract::init>

◆ initemission_action

using eosiosystem::system_contract::initemission_action = eosio::action_wrapper<"initemission"_n, &system_contract::initemission>

◆ powerup_action

using eosiosystem::system_contract::powerup_action = eosio::action_wrapper<"powerup"_n, &system_contract::powerup>

◆ powerupexec_action

using eosiosystem::system_contract::powerupexec_action = eosio::action_wrapper<"powerupexec"_n, &system_contract::powerupexec>

◆ refund_action

using eosiosystem::system_contract::refund_action = eosio::action_wrapper<"refund"_n, &system_contract::refund>

◆ regproducer2_action

using eosiosystem::system_contract::regproducer2_action = eosio::action_wrapper<"regproducer2"_n, &system_contract::regproducer2>

◆ regproducer_action

using eosiosystem::system_contract::regproducer_action = eosio::action_wrapper<"regproducer"_n, &system_contract::regproducer>

◆ regproxy_action

using eosiosystem::system_contract::regproxy_action = eosio::action_wrapper<"regproxy"_n, &system_contract::regproxy>

◆ resultrewards_action

using eosiosystem::system_contract::resultrewards_action = eosio::action_wrapper<"claimrewards"_n, &system_contract::claimrewards>

◆ rmvproducer_action

using eosiosystem::system_contract::rmvproducer_action = eosio::action_wrapper<"rmvproducer"_n, &system_contract::rmvproducer>

◆ setacctcpu_action

using eosiosystem::system_contract::setacctcpu_action = eosio::action_wrapper<"setacctcpu"_n, &system_contract::setacctcpu>

◆ setacctnet_action

using eosiosystem::system_contract::setacctnet_action = eosio::action_wrapper<"setacctnet"_n, &system_contract::setacctnet>

◆ setacctram_action

using eosiosystem::system_contract::setacctram_action = eosio::action_wrapper<"setacctram"_n, &system_contract::setacctram>

◆ setalimits_action

using eosiosystem::system_contract::setalimits_action = eosio::action_wrapper<"setalimits"_n, &system_contract::setalimits>

◆ setcode_action

using eosiosystem::system_contract::setcode_action = eosio::action_wrapper<"setcode"_n, &system_contract::setcode>

◆ setparams_action

using eosiosystem::system_contract::setparams_action = eosio::action_wrapper<"setparams"_n, &system_contract::setparams>

◆ setpriv_action

using eosiosystem::system_contract::setpriv_action = eosio::action_wrapper<"setpriv"_n, &system_contract::setpriv>

◆ setram_action

using eosiosystem::system_contract::setram_action = eosio::action_wrapper<"setram"_n, &system_contract::setram>

◆ setramrate_action

using eosiosystem::system_contract::setramrate_action = eosio::action_wrapper<"setramrate"_n, &system_contract::setramrate>

◆ undelegatebw_action

using eosiosystem::system_contract::undelegatebw_action = eosio::action_wrapper<"undelegatebw"_n, &system_contract::undelegatebw>

◆ unregprod_action

using eosiosystem::system_contract::unregprod_action = eosio::action_wrapper<"unregprod"_n, &system_contract::unregprod>

◆ updtrevision_action

using eosiosystem::system_contract::updtrevision_action = eosio::action_wrapper<"updtrevision"_n, &system_contract::updtrevision>

◆ voteproducer_action

using eosiosystem::system_contract::voteproducer_action = eosio::action_wrapper<"voteproducer"_n, &system_contract::voteproducer>

◆ voteupdate_action

using eosiosystem::system_contract::voteupdate_action = eosio::action_wrapper<"voteupdate"_n, &system_contract::voteupdate>

Конструктор(ы)

◆ system_contract()

eosiosystem::system_contract::system_contract ( name  s,
name  code,
datastream< const char * >  ds 
)

◆ ~system_contract()

eosiosystem::system_contract::~system_contract ( )

Методы

◆ add_to_blockinfo_table()

void eosiosystem::system_contract::add_to_blockinfo_table ( const eosio::checksum256 &  previous_block_id,
const eosio::block_timestamp  timestamp 
) const
private

◆ adjust_resources()

void eosiosystem::system_contract::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 
)
private

◆ change_weights()

void eosiosystem::system_contract::change_weights ( eosio::name  payer,
eosio::asset  new_emission 
)
private

◆ changebw()

void eosiosystem::system_contract::changebw ( name  from,
const name &  receiver,
const asset &  stake_net_quantity,
const asset &  stake_cpu_quantity,
bool  transfer 
)
private

end if is_delegating_to_self || is_undelegating

◆ changekey()

void eosiosystem::system_contract::changekey ( name  account,
name  permission,
name  parent,
authority  auth 
)

Метод обновления активного ключа пользователя кооперативами.

Аргументы
[in]accountАккаунт
[in]permissionРазрешение
[in]parentРодительское разрешение
[in]authАвторизация

◆ core_symbol()

symbol eosiosystem::system_contract::core_symbol ( ) const
private

◆ fill_tact()

void eosiosystem::system_contract::fill_tact ( eosio::name  payer,
eosio::asset  payment 
)
private

◆ get_core_symbol() [1/2]

static symbol eosiosystem::system_contract::get_core_symbol ( const rammarket rm)
inlinestaticprivate

◆ get_core_symbol() [2/2]

static symbol eosiosystem::system_contract::get_core_symbol ( name  system_account = "eosio"_n)
inlinestatic

◆ get_default_parameters()

eosio_global_state eosiosystem::system_contract::get_default_parameters ( )
staticprivate

◆ initemission()

void eosiosystem::system_contract::initemission ( eosio::asset  init_supply,
uint64_t  tact_duration,
double  emission_factor 
)

Инициализация тактовой эмиссии

Аргументы
tact_duration- продолжительность такта в секундах,
emission_factor- множитель эмиссии от 0 до 2.618.

◆ migrate()

void eosiosystem::system_contract::migrate ( )

Метод миграции вызывается после деплоя для внесения моментальных изменений

◆ process_powerup_queue()

void eosiosystem::system_contract::process_powerup_queue ( time_point_sec  now,
symbol  core_symbol,
powerup_state state,
powerup_order_table orders,
uint32_t  max_items,
int64_t &  net_delta_available,
int64_t &  cpu_delta_available,
int64_t &  ram_delta_available 
)
private

◆ propagate_weight_change()

void eosiosystem::system_contract::propagate_weight_change ( const voter_info voter)
private

don't propagate small changes (1 ~= epsilon)

◆ register_producer()

void eosiosystem::system_contract::register_producer ( const name &  producer,
const eosio::block_signing_authority &  producer_authority,
const std::string &  url,
uint16_t  location 
)
private

◆ regproxy()

void eosiosystem::system_contract::regproxy ( const name &  proxy,
bool  isproxy 
)

◆ setcode()

void eosiosystem::system_contract::setcode ( const name &  account,
uint8_t  vmtype,
uint8_t  vmversion,
const std::vector< char > &  code,
const binary_extension< std::string > &  memo 
)

◆ update_elected_producers()

void eosiosystem::system_contract::update_elected_producers ( const block_timestamp &  timestamp)
private

◆ update_ram_debt_table()

int64_t eosiosystem::system_contract::update_ram_debt_table ( name  payer,
name  account,
int64_t  ram_bytes 
)
private

◆ update_tact()

emission_state eosiosystem::system_contract::update_tact ( emission_state  state)
private

◆ update_votes()

void eosiosystem::system_contract::update_votes ( const name &  voter,
const name &  proxy,
const std::vector< name > &  producers,
bool  voting 
)
private

staking creates voter object

The first time someone votes we calculate and set last_vote_weight. Since they cannot unstake until after the chain has been activated, we can use last_vote_weight to determine that this is their first vote and should consider their stake activated.

◆ update_voting_power()

void eosiosystem::system_contract::update_voting_power ( const name &  voter,
const asset &  total_update 
)
private

Данные класса

◆ _global

global_state_singleton eosiosystem::system_contract::_global
private

◆ _gstate

eosio_global_state eosiosystem::system_contract::_gstate
private

◆ _producers

producers_table eosiosystem::system_contract::_producers
private

◆ _rammarket

rammarket eosiosystem::system_contract::_rammarket
private

◆ _voters

voters_table eosiosystem::system_contract::_voters
private

◆ active_permission

constexpr eosio::name eosiosystem::system_contract::active_permission {"active"_n}
staticconstexpr

◆ bpay_account

constexpr eosio::name eosiosystem::system_contract::bpay_account {"eosio.bpay"_n}
staticconstexpr

◆ names_account

constexpr eosio::name eosiosystem::system_contract::names_account {"eosio.names"_n}
staticconstexpr

◆ null_account

constexpr eosio::name eosiosystem::system_contract::null_account {"eosio.null"_n}
staticconstexpr

◆ ram_account

constexpr eosio::name eosiosystem::system_contract::ram_account {"eosio.ram"_n}
staticconstexpr

◆ ram_symbol

constexpr symbol eosiosystem::system_contract::ram_symbol = symbol(symbol_code("RAM"), 0)
staticconstexpr

◆ ramcore_symbol

constexpr symbol eosiosystem::system_contract::ramcore_symbol = symbol(symbol_code("RAMCORE"), 4)
staticconstexpr

◆ ramfee_account

constexpr eosio::name eosiosystem::system_contract::ramfee_account {"eosio.ramfee"_n}
staticconstexpr

◆ stake_account

constexpr eosio::name eosiosystem::system_contract::stake_account {"eosio.stake"_n}
staticconstexpr

◆ token_account

constexpr eosio::name eosiosystem::system_contract::token_account {"eosio.token"_n}
staticconstexpr

◆ vpay_account

constexpr eosio::name eosiosystem::system_contract::vpay_account {"eosio.vpay"_n}
staticconstexpr

Объявления и описания членов классов находятся в файлах: