|
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 > |
|
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 ¶ms) |
| Устанавливает параметры блокчейна. Обновляет глобальные параметры блокчейна, включая лимиты блоков, транзакций и авторизаций. Подробнее...
|
|
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) |
| Создает новый аккаунт через кооператив. Позволяет кооперативу создать новый аккаунт с указанными владельцем и активными разрешениями. Подробнее...
|
|
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) |
|
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.