EOS_ASSERT(trx.max_kcpu_usage.value<UINT32_MAX/1024UL,transaction_exception,"declared max_kcpu_usage overflows when expanded to max cpu usage");
EOS_ASSERT(trx.max_net_usage_words.value<UINT32_MAX/8UL,transaction_exception,"declared max_net_usage_words overflows when expanded to max net usage");
FC_DECLARE_DERIVED_EXCEPTION(block_tx_output_exception,eosio::chain::block_validate_exception,3020001,"transaction outputs in block do not match transaction outputs from applying block")
FC_DECLARE_DERIVED_EXCEPTION(block_concurrency_exception,eosio::chain::block_validate_exception,3020002,"block does not guarantee concurrent exection without conflicts")
FC_DECLARE_DERIVED_EXCEPTION(block_lock_exception,eosio::chain::block_validate_exception,3020003,"shard locks in block are incorrect or mal-formed")
FC_DECLARE_DERIVED_EXCEPTION(tx_msgs_auth_exceeded,eosio::chain::transaction_exception,3030018,"Number of transaction messages per authorized account has been exceeded")
FC_DECLARE_DERIVED_EXCEPTION(tx_msgs_code_exceeded,eosio::chain::transaction_exception,3030019,"Number of transaction messages per code account has been exceeded")
FC_DECLARE_DERIVED_EXCEPTION(tx_empty_region,eosio::chain::transaction_exception,3030027,"Transaction contains an empty region")
FC_DECLARE_DERIVED_EXCEPTION(tx_empty_cycle,eosio::chain::transaction_exception,3030028,"Transaction contains an empty cycle")
FC_DECLARE_DERIVED_EXCEPTION(tx_empty_shard,eosio::chain::transaction_exception,3030029,"Transaction contains an empty shard")
FC_DECLARE_DERIVED_EXCEPTION(tx_receipt_inconsistent_status,eosio::chain::transaction_exception,3030030,"Transaction receipt applied status does not match received status")
FC_DECLARE_DERIVED_EXCEPTION(cfa_irrelevant_auth,eosio::chain::transaction_exception,3030031,"context-free action should have no required authority")
FC_DECLARE_DERIVED_EXCEPTION(tx_no_action,eosio::chain::transaction_exception,3030032,"transaction should have at least one normal action")
FC_DECLARE_DERIVED_EXCEPTION(tx_no_auths,eosio::chain::transaction_exception,3030033,"transaction should have at least one required authority")
FC_DECLARE_DERIVED_EXCEPTION(tx_receipt_inconsistent_cpu,eosio::chain::transaction_exception,3030034,"Transaction receipt applied kcpu_usage does not match received kcpu_usage")
FC_DECLARE_DERIVED_EXCEPTION(tx_receipt_inconsistent_net,eosio::chain::transaction_exception,3030035,"Transaction receipt applied net_usage_words does not match received net_usage_words")
FC_DECLARE_DERIVED_EXCEPTION(account_name_exists_exception,eosio::chain::action_validate_exception,3040001,"account name already exists")
FC_DECLARE_DERIVED_EXCEPTION(missing_chain_api_plugin_exception,eosio::chain::missing_plugin_exception,3130001,"Missing Chain API Plugin")
FC_DECLARE_DERIVED_EXCEPTION(missing_wallet_api_plugin_exception,eosio::chain::missing_plugin_exception,3130002,"Missing Wallet API Plugin")
FC_DECLARE_DERIVED_EXCEPTION(missing_account_history_api_plugin_exception,eosio::chain::missing_plugin_exception,3130003,"Missing Account History API Plugin")
FC_DECLARE_DERIVED_EXCEPTION(missing_net_api_plugin_exception,eosio::chain::missing_plugin_exception,3130004,"Missing Net API Plugin")
FC_DECLARE_DERIVED_EXCEPTION(rate_limiting_state_inconsistent,eosio::chain::rate_limiting_invariant_exception,3150001,"internal state is no longer consistent")
FC_DECLARE_DERIVED_EXCEPTION(rate_limiting_overcommitment,eosio::chain::rate_limiting_invariant_exception,3150002,"chain resource limits are overcommitted")