激活 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 ); }