BitShares-Core  7.0.2
BitShares blockchain node software and command-line wallet software
Public Member Functions | Public Attributes | List of all members
graphene::chain::withdraw_permission_object Class Reference

Grants another account authority to withdraw a limited amount of funds per interval. More...

#include <withdraw_permission_object.hpp>

Inheritance diagram for graphene::chain::withdraw_permission_object:
graphene::db::abstract_object< withdraw_permission_object, protocol_ids, withdraw_permission_object_type > graphene::db::base_abstract_object< withdraw_permission_object > graphene::db::object

Public Member Functions

asset available_this_period (fc::time_point_sec current_time) const
 
- Public Member Functions inherited from graphene::db::abstract_object< withdraw_permission_object, protocol_ids, withdraw_permission_object_type >
 abstract_object ()
 
object_id< SpaceID, TypeID > get_id () const
 
- Public Member Functions inherited from graphene::db::base_abstract_object< withdraw_permission_object >
std::unique_ptr< objectclone () const override
 
void move_from (object &obj) override
 
fc::variant to_variant () const override
 
std::vector< char > pack () const override
 
 object ()=default
 
 object (uint8_t space_id, uint8_t type_id)
 
- Public Member Functions inherited from graphene::db::object
 object ()=default
 
 object (uint8_t space_id, uint8_t type_id)
 
virtual ~object ()=default
 
virtual std::unique_ptr< objectclone () const =0
 
virtual fc::variant to_variant () const =0
 
virtual std::vector< char > pack () const =0
 

Public Attributes

account_id_type withdraw_from_account
 The account authorizing authorized_account to withdraw from it. More...
 
account_id_type authorized_account
 The account authorized to make withdrawals from withdraw_from_account. More...
 
asset withdrawal_limit
 The maximum amount which may be withdrawn per period. All withdrawals must be of this asset type. More...
 
uint32_t withdrawal_period_sec = 0
 The duration of a withdrawal period in seconds. More...
 
time_point_sec period_start_time
 
time_point_sec expiration
 The time at which this withdraw permission expires. More...
 
share_type claimed_this_period
 
- Public Attributes inherited from graphene::db::object
object_id_type id
 

Additional Inherited Members

- Static Public Attributes inherited from graphene::db::abstract_object< withdraw_permission_object, protocol_ids, withdraw_permission_object_type >
static constexpr uint8_t space_id
 
static constexpr uint8_t type_id
 

Detailed Description

Grants another account authority to withdraw a limited amount of funds per interval.

The primary purpose of this object is to enable recurring payments on the blockchain. An account which wishes to process a recurring payment may use a graphene::protocol::withdraw_permission_claim_operation to reference an object of this type and withdraw up to withdrawal_limit from withdraw_from_account. Only authorized_account may do this. Any number of withdrawals may be made so long as the total amount withdrawn per period does not exceed the limit for any given period.

Definition at line 45 of file withdraw_permission_object.hpp.

Member Function Documentation

◆ available_this_period()

asset graphene::chain::withdraw_permission_object::available_this_period ( fc::time_point_sec  current_time) const
inline

Definition at line 81 of file withdraw_permission_object.hpp.

Member Data Documentation

◆ authorized_account

account_id_type graphene::chain::withdraw_permission_object::authorized_account

The account authorized to make withdrawals from withdraw_from_account.

Definition at line 52 of file withdraw_permission_object.hpp.

◆ claimed_this_period

share_type graphene::chain::withdraw_permission_object::claimed_this_period

Tracks the total amount WARNING: Due to caching, this value does not always represent the total amount claimed during the current period, it may represent what was claimed during the last claimed period, because it is only updated after a withdrawal operation such as claim. For the latest current period, use current_period().

Definition at line 74 of file withdraw_permission_object.hpp.

◆ expiration

time_point_sec graphene::chain::withdraw_permission_object::expiration

The time at which this withdraw permission expires.

Definition at line 65 of file withdraw_permission_object.hpp.

◆ period_start_time

time_point_sec graphene::chain::withdraw_permission_object::period_start_time

The beginning of the next withdrawal period. WARNING: Due to caching, this value does not always represent the start of the next or current period, because it is only updated after a withdrawal operation such as claim. For the latest current period, use current_period().

Definition at line 63 of file withdraw_permission_object.hpp.

◆ withdraw_from_account

account_id_type graphene::chain::withdraw_permission_object::withdraw_from_account

The account authorizing authorized_account to withdraw from it.

Definition at line 50 of file withdraw_permission_object.hpp.

◆ withdrawal_limit

asset graphene::chain::withdraw_permission_object::withdrawal_limit

The maximum amount which may be withdrawn per period. All withdrawals must be of this asset type.

Definition at line 54 of file withdraw_permission_object.hpp.

◆ withdrawal_period_sec

uint32_t graphene::chain::withdraw_permission_object::withdrawal_period_sec = 0

The duration of a withdrawal period in seconds.

Definition at line 56 of file withdraw_permission_object.hpp.


The documentation for this class was generated from the following file: