热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

EOS智能合约源代码解读(9)boot合约

1.作用激活protocolfeatures性质activatingdesiredprotocolfeaturespriortodeployingasystemcontract*e



1. 作用

激活 protocol features 性质
activating desired protocol features prior to deploying a system contract

* eossys.boot is a extremely minimalistic system contract that only supports the native actions and an
* activate action that allows activating desired protocol features prior to deploying a system contract
* with more features such as eossys.bios or eossys.system.
struct permission_level_weight {
permission_level permission;
uint16_t weight;
// explicit serialization macro is not necessary, used here only to improve compilation time
eosLIB_SERIALIZE( permission_level_weight, (permission)(weight) )
};
/**
* Weighted key.
*
* @details A weighted key is defined by a public key and an associated weight.
*/
struct key_weight {
eossys::public_key key;
uint16_t weight;
// explicit serialization macro is not necessary, used here only to improve compilation time
eosLIB_SERIALIZE( key_weight, (key)(weight) )
};
/**
* Wait weight.
*
* @details A wait weight is defined by a number of seconds to wait for and a weight.
*/
struct wait_weight {
uint32_t wait_sec;
uint16_t weight;
// explicit serialization macro is not necessary, used here only to improve compilation time
eosLIB_SERIALIZE( wait_weight, (wait_sec)(weight) )
};
/**
* Blockchain authority.
*
* @details An authority is defined by:
* - a vector of key_weights (a key_weight is a public key plus a weight),
* - a vector of permission_level_weights, (a permission_level is an account name plus a permission name)
* - a vector of wait_weights (a wait_weight is defined by a number of seconds to wait and a weight)
* - a threshold value
*/
struct authority {
uint32_t threshold = 0;
std::vector keys;
std::vector

accounts;
std::vector waits;
// explicit serialization macro is not necessary, used here only to improve compilation time
eosLIB_SERIALIZE( authority, (threshold)(keys)(accounts)(waits) )
};
/**
* @defgroup eossysboot eossys.boot
* @ingroup eossyscontracts
*
* eossys.boot is a extremely minimalistic system contract that only supports the native actions and an
* activate action that allows activating desired protocol features prior to deploying a system contract
* with more features such as eossys.bios or eossys.system.
*
* @{
*/
class [[eossys::contract("eossys.boot")]] boot : public eossys::contract {
public:
using contract::contract;
/**
* On error action.
*
* @details Notification of this action is delivered to the sender of a deferred transaction
* when an objective error occurs while executing the deferred transaction.
* This action is not meant to be called directly.
*
* @param sender_id - the id for the deferred transaction chosen by the sender,
* @param sent_trx - the deferred transaction that failed.
*/
[[eossys::action]]
void one rror( ignore sender_id, ignore> sent_trx );
/**
* Activates a protocol feature.
*
* @details Activates a protocol feature
*
* @param feature_digest - hash of the protocol feature to activate.
*/
[[eossys::action]]
void activate( const eossys::checksum256& feature_digest );
/**
* Asserts that a protocol feature has been activated.
*
* @details Asserts that a protocol feature has been activated
*
* @param feature_digest - hash of the protocol feature to check for activation.
*/
[[eossys::action]]
void reqactivated( const eossys::checksum256& feature_digest );
}


推荐阅读
author-avatar
phperint
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有