BitShares-Core
7.0.2
BitShares blockchain node software and command-line wallet software
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
y
z
Functions
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
y
z
Variables
a
c
d
e
g
h
l
n
o
t
w
Typedefs
a
b
c
d
e
f
h
i
k
l
m
n
o
p
r
s
t
u
v
w
z
Enumerations
Enumerator
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
w
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
z
Typedefs
a
b
c
d
e
f
h
i
l
m
n
o
p
r
s
t
v
Enumerations
Enumerator
a
b
c
d
e
f
g
i
k
l
m
n
o
p
r
s
t
u
v
w
Related Functions
a
b
c
d
e
f
g
h
m
n
o
p
s
t
u
v
w
y
Files
File List
File Members
All
_
a
b
c
d
e
f
g
i
l
m
n
p
r
s
t
u
v
w
Functions
Variables
Typedefs
Macros
_
a
b
c
d
e
f
g
i
l
m
n
p
r
s
t
u
v
w
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
libraries
protocol
include
graphene
protocol
assert.hpp
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
#pragma once
25
26
#include <
graphene/protocol/base.hpp
>
27
#include <
graphene/protocol/asset.hpp
>
28
29
namespace
graphene
{
namespace
protocol {
30
34
struct
account_name_eq_lit_predicate
35
{
36
account_id_type
account_id
;
37
string
name
;
38
43
bool
validate
()
const
;
44
};
45
49
struct
asset_symbol_eq_lit_predicate
50
{
51
asset_id_type
asset_id
;
52
string
symbol
;
53
58
bool
validate
()
const
;
59
60
};
61
69
struct
block_id_predicate
70
{
71
block_id_type
id
;
72
bool
validate
()
const
{
return
true
; }
73
};
74
79
typedef
static_variant<
80
account_name_eq_lit_predicate,
81
asset_symbol_eq_lit_predicate,
82
block_id_predicate
83
>
predicate
;
84
85
93
struct
assert_operation
:
public
base_operation
94
{
95
struct
fee_params_t
{ uint64_t
fee
=
GRAPHENE_BLOCKCHAIN_PRECISION
; };
96
97
asset
fee
;
98
account_id_type
fee_paying_account
;
99
vector<predicate>
predicates
;
100
flat_set<account_id_type>
required_auths
;
101
extensions_type
extensions
;
102
103
account_id_type
fee_payer
()
const
{
return
fee_paying_account
; }
104
void
validate
()
const
;
105
share_type
calculate_fee
(
const
fee_params_t& k)
const
;
106
};
107
108
} }
// graphene::protocol
109
110
FC_REFLECT
(
graphene::protocol::assert_operation::fee_params_t
, (fee) )
111
FC_REFLECT
(
graphene::protocol::account_name_eq_lit_predicate
, (account_id)(name) )
112
FC_REFLECT
(
graphene::protocol::asset_symbol_eq_lit_predicate
, (asset_id)(symbol) )
113
FC_REFLECT
(
graphene::protocol::block_id_predicate
, (
id
) )
114
FC_REFLECT_TYPENAME
(
graphene::protocol::predicate
)
115
FC_REFLECT
(
graphene::protocol::assert_operation
, (fee)(fee_paying_account)(predicates)(required_auths)(extensions) )
116
117
GRAPHENE_DECLARE_EXTERNAL_SERIALIZATION
(
graphene::protocol::assert_operation::fee_params_t
)
118
GRAPHENE_DECLARE_EXTERNAL_SERIALIZATION
(
graphene::protocol::assert_operation
)
graphene::protocol::block_id_predicate::id
block_id_type id
Definition:
assert.hpp:71
graphene::protocol::assert_operation::predicates
vector< predicate > predicates
Definition:
assert.hpp:99
graphene::protocol::account_name_eq_lit_predicate::name
string name
Definition:
assert.hpp:37
fc::static_variant
Definition:
raw_fwd.hpp:27
FC_REFLECT_TYPENAME
FC_REFLECT_TYPENAME(fc::log_message)
graphene::protocol::asset_symbol_eq_lit_predicate::symbol
string symbol
Definition:
assert.hpp:52
graphene::protocol::assert_operation::required_auths
flat_set< account_id_type > required_auths
Definition:
assert.hpp:100
graphene::protocol::account_name_eq_lit_predicate::account_id
account_id_type account_id
Definition:
assert.hpp:36
graphene::protocol::assert_operation::fee_params_t::fee
uint64_t fee
Definition:
assert.hpp:95
graphene::protocol::base_operation
Definition:
base.hpp:124
graphene::protocol::assert_operation
assert that some conditions are true.
Definition:
assert.hpp:93
graphene::protocol::account_name_eq_lit_predicate::validate
bool validate() const
Definition:
assert.cpp:32
graphene::protocol::predicate
static_variant< account_name_eq_lit_predicate, asset_symbol_eq_lit_predicate, block_id_predicate > predicate
Definition:
assert.hpp:83
GRAPHENE_BLOCKCHAIN_PRECISION
#define GRAPHENE_BLOCKCHAIN_PRECISION
Definition:
config.hpp:29
graphene::protocol::assert_operation::validate
void validate() const
Definition:
assert.cpp:53
fc::ripemd160
Definition:
ripemd160.hpp:11
graphene::protocol::assert_operation::fee_paying_account
account_id_type fee_paying_account
Definition:
assert.hpp:98
graphene::protocol::account_name_eq_lit_predicate
Definition:
assert.hpp:34
graphene::protocol::asset_symbol_eq_lit_predicate::asset_id
asset_id_type asset_id
Definition:
assert.hpp:51
GRAPHENE_DECLARE_EXTERNAL_SERIALIZATION
#define GRAPHENE_DECLARE_EXTERNAL_SERIALIZATION(type)
Definition:
types.hpp:85
graphene::protocol::asset_symbol_eq_lit_predicate::validate
bool validate() const
Definition:
assert.cpp:37
graphene::protocol::assert_operation::fee
asset fee
Definition:
assert.hpp:97
graphene::protocol::assert_operation::calculate_fee
share_type calculate_fee(const fee_params_t &k) const
Definition:
assert.cpp:64
base.hpp
graphene::protocol::block_id_predicate::validate
bool validate() const
Definition:
assert.hpp:72
FC_REFLECT
#define FC_REFLECT(TYPE, MEMBERS)
Specializes fc::reflector for TYPE.
Definition:
reflect.hpp:388
graphene::protocol::assert_operation::extensions
extensions_type extensions
Definition:
assert.hpp:101
graphene::protocol::asset
Definition:
asset.hpp:31
graphene::protocol::block_id_predicate
Definition:
assert.hpp:69
asset.hpp
graphene::protocol::asset_symbol_eq_lit_predicate
Definition:
assert.hpp:49
graphene
Definition:
api.cpp:48
graphene::protocol::assert_operation::fee_payer
account_id_type fee_payer() const
Definition:
assert.hpp:103
graphene::protocol::extensions_type
future_extensions::flat_set_type extensions_type
Definition:
base.hpp:156
graphene::protocol::assert_operation::fee_params_t
Definition:
assert.hpp:95
fc::safe
Definition:
safe.hpp:26
Generated on Fri Dec 15 2023 06:12:43 for BitShares-Core by
1.8.17