BitShares-Core
7.0.2
BitShares blockchain node software and command-line wallet software
libraries
chain
buyback.cpp
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2015 Cryptonomex, Inc., and contributors.
3
*
4
* The MIT License
5
*
6
* Permission is hereby granted, free of charge, to any person obtaining a copy
7
* of this software and associated documentation files (the "Software"), to deal
8
* in the Software without restriction, including without limitation the rights
9
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
* copies of the Software, and to permit persons to whom the Software is
11
* furnished to do so, subject to the following conditions:
12
*
13
* The above copyright notice and this permission notice shall be included in
14
* all copies or substantial portions of the Software.
15
*
16
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
* THE SOFTWARE.
23
*/
24
25
#include <
graphene/protocol/buyback.hpp
>
26
#include <
graphene/chain/database.hpp
>
27
#include <
graphene/chain/exceptions.hpp
>
28
#include <graphene/chain/hardfork.hpp>
29
30
namespace
graphene
{
namespace
chain {
31
32
void
evaluate_buyback_account_options
(
const
database
& db,
const
buyback_account_options
& bbo )
33
{
34
const
asset_object
& a = bbo.
asset_to_buy
(db);
35
GRAPHENE_ASSERT
( a.
issuer
== bbo.
asset_to_buy_issuer
,
36
account_create_buyback_incorrect_issuer,
"Incorrect asset issuer specified in buyback_account_options"
, (
"asset"
, a)(
"bbo"
, bbo) );
37
GRAPHENE_ASSERT
( !a.
buyback_account
.
valid
(),
38
account_create_buyback_already_exists,
"Cannot create buyback for asset which already has buyback"
, (
"asset"
, a)(
"bbo"
, bbo) );
39
// TODO: Replace with chain parameter #554
40
GRAPHENE_ASSERT
( bbo.
markets
.size() <
GRAPHENE_DEFAULT_MAX_BUYBACK_MARKETS
,
41
account_create_buyback_too_many_markets,
"Too many buyback markets"
, (
"asset"
, a)(
"bbo"
, bbo) );
42
}
43
44
} }
graphene::chain::database
tracks the blockchain state in an extensible manner
Definition:
database.hpp:70
database.hpp
graphene::chain::asset_object
tracks the parameters of an asset
Definition:
asset_object.hpp:75
fc::optional::valid
bool valid() const
Definition:
optional.hpp:186
graphene::protocol::buyback_account_options
Definition:
buyback.hpp:30
graphene::protocol::buyback_account_options::asset_to_buy_issuer
account_id_type asset_to_buy_issuer
Definition:
buyback.hpp:41
GRAPHENE_DEFAULT_MAX_BUYBACK_MARKETS
#define GRAPHENE_DEFAULT_MAX_BUYBACK_MARKETS
Definition:
config.hpp:92
graphene::chain::asset_object::issuer
account_id_type issuer
ID of the account which issued this asset.
Definition:
asset_object.hpp:135
graphene::protocol::buyback_account_options::asset_to_buy
asset_id_type asset_to_buy
Definition:
buyback.hpp:35
graphene::chain::evaluate_buyback_account_options
void evaluate_buyback_account_options(const database &db, const buyback_account_options &bbo)
Definition:
buyback.cpp:32
buyback.hpp
GRAPHENE_ASSERT
#define GRAPHENE_ASSERT(expr, exc_type, FORMAT,...)
Definition:
exceptions.hpp:28
graphene::chain::asset_object::buyback_account
optional< account_id_type > buyback_account
Definition:
asset_object.hpp:144
graphene
Definition:
api.cpp:48
exceptions.hpp
graphene::protocol::buyback_account_options::markets
flat_set< asset_id_type > markets
Definition:
buyback.hpp:47
Generated on Fri Dec 15 2023 06:12:42 for BitShares-Core by
1.8.17