31 namespace graphene {
namespace protocol {
35 auto result = (fc::uint128_t(bytes) * price_per_kbyte) / 1024;
37 return static_cast<uint64_t
>(result);
67 flat_set<account_id_type>&
owner;
73 flat_set<account_id_type>& own,
74 vector<authority>& oth,
75 bool ignore_custom_operation_required_auths )
76 : active( a ), owner( own ), other( oth ),
77 ignore_custom_op_reqd_auths( ignore_custom_operation_required_auths )
82 active.insert( v.fee_payer() );
83 v.get_required_active_authorities( active );
84 v.get_required_owner_authorities( owner );
85 v.get_required_authorities( other );
90 if( !ignore_custom_op_reqd_auths ) {
104 flat_set<account_id_type>& active,
105 flat_set<account_id_type>& owner,
106 vector<authority>& other,
107 bool ignore_custom_operation_required_auths )
account_id_type fee_payer() const
void operator()(const T &v) const
Used to validate operations in a polymorphic manner.
necessary to support nested operations inside the proposal_create_operation
fc::optional< fc::future< void > > validate_parallel(uint32_t skip) const
void get_required_active_authorities(flat_set< account_id_type > &auths) const
flat_set< account_id_type > & active
bool ignore_custom_op_reqd_auths
fc::static_variant< transfer_operation, limit_order_create_operation, limit_order_cancel_operation, call_order_update_operation, fill_order_operation, account_create_operation, account_update_operation, account_whitelist_operation, account_upgrade_operation, account_transfer_operation, asset_create_operation, asset_update_operation, asset_update_bitasset_operation, asset_update_feed_producers_operation, asset_issue_operation, asset_reserve_operation, asset_fund_fee_pool_operation, asset_settle_operation, asset_global_settle_operation, asset_publish_feed_operation, witness_create_operation, witness_update_operation, proposal_create_operation, proposal_update_operation, proposal_delete_operation, withdraw_permission_create_operation, withdraw_permission_update_operation, withdraw_permission_claim_operation, withdraw_permission_delete_operation, committee_member_create_operation, committee_member_update_operation, committee_member_update_global_parameters_operation, vesting_balance_create_operation, vesting_balance_withdraw_operation, worker_create_operation, custom_operation, assert_operation, balance_claim_operation, override_transfer_operation, transfer_to_blind_operation, blind_transfer_operation, transfer_from_blind_operation, asset_settle_cancel_operation, asset_claim_fees_operation, fba_distribute_operation, bid_collateral_operation, execute_bid_operation, asset_claim_pool_operation, asset_update_issuer_operation, htlc_create_operation, htlc_redeem_operation, htlc_redeemed_operation, htlc_extend_operation, htlc_refund_operation, custom_authority_create_operation, custom_authority_update_operation, custom_authority_delete_operation, ticket_create_operation, ticket_update_operation, liquidity_pool_create_operation, liquidity_pool_delete_operation, liquidity_pool_deposit_operation, liquidity_pool_withdraw_operation, liquidity_pool_exchange_operation, samet_fund_create_operation, samet_fund_delete_operation, samet_fund_update_operation, samet_fund_borrow_operation, samet_fund_repay_operation, credit_offer_create_operation, credit_offer_delete_operation, credit_offer_update_operation, credit_offer_accept_operation, credit_deal_repay_operation, credit_deal_expired_operation >
virtual void get_required_authorities(vector< authority > &) const
virtual void validate() const
visitor::result_type visit(visitor &v)
provides a generic way to add higher level protocols on top of witness consensusThere is no validatio...
operation_get_required_auth(flat_set< account_id_type > &a, flat_set< account_id_type > &own, vector< authority > &oth, bool ignore_custom_operation_required_auths)
provides stack-based nullable value similar to boost::optional
flat_set< account_id_type > & owner
void operation_validate(const operation &op)
#define FC_ASSERT(TEST,...)
Checks a condition and throws an assert_exception if the test is FALSE.
#define GRAPHENE_IMPLEMENT_EXTERNAL_SERIALIZATION(type)
void operator()(const custom_operation &op) const
virtual void get_required_owner_authorities(flat_set< account_id_type > &) const
static uint64_t calculate_data_fee(uint64_t bytes, uint64_t price_per_kbyte)
constexpr int64_t GRAPHENE_MAX_SHARE_SUPPLY(1000000000000000LL)
vector< authority > & other
void operator()(const T &v) const
void operation_get_required_authorities(const operation &op, flat_set< account_id_type > &active, flat_set< account_id_type > &owner, vector< authority > &other, bool ignore_custom_operation_required_auths)