Externalized serialization in protocol library

This commit is contained in:
Peter Conrad 2019-05-19 11:38:40 +02:00 committed by Nathan Hourt
parent 841c6319f9
commit 9ae796c0a2
No known key found for this signature in database
GPG key ID: B4344309A110851E
48 changed files with 154 additions and 88 deletions

View file

@ -26,8 +26,8 @@
#include <graphene/chain/get_config.hpp>
#include <graphene/chain/tournament_object.hpp>
#include <graphene/chain/account_object.hpp>
#include <graphene/chain/protocol/address.hpp>
#include <graphene/chain/pts_address.hpp>
#include <graphene/protocol/address.hpp>
#include <graphene/protocol/pts_address.hpp>
#include <fc/bloom_filter.hpp>

View file

@ -22,7 +22,7 @@
* THE SOFTWARE.
*/
#include <graphene/chain/balance_evaluator.hpp>
#include <graphene/chain/pts_address.hpp>
#include <graphene/protocol/pts_address.hpp>
namespace graphene { namespace chain {

View file

@ -23,6 +23,7 @@
*/
#pragma once
#include <graphene/protocol/address.hpp>
#include <graphene/protocol/chain_parameters.hpp>
#include <graphene/chain/types.hpp>
#include <graphene/chain/immutable_chain_parameters.hpp>

View file

@ -21,6 +21,7 @@ list(APPEND SOURCES account.cpp
market.cpp
operations.cpp
pts_address.cpp
small_ops.cpp
transaction.cpp
types.cpp
withdraw_permission.cpp

View file

@ -21,12 +21,13 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include <graphene/protocol/types.hpp>
#include <graphene/protocol/address.hpp>
#include <fc/crypto/elliptic.hpp>
#include <graphene/protocol/pts_address.hpp>
#include <fc/crypto/base58.hpp>
#include <algorithm>
#include <fc/io/raw.hpp>
namespace graphene { namespace protocol {
address::address( const std::string& base58str )
{
@ -109,4 +110,4 @@ namespace fc
}
}
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::chain::address )
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::protocol::address )

View file

@ -21,7 +21,11 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include <graphene/protocol/fee_schedule.hpp>
#include <graphene/protocol/account.hpp>
#include <graphene/protocol/asset_ops.hpp>
#include <graphene/protocol/assert.hpp>
#include <fc/io/raw.hpp>
namespace graphene { namespace protocol {

View file

@ -27,6 +27,8 @@
#include <fc/io/raw.hpp>
#include <fc/uint128.hpp>
#include <fc/io/raw.hpp>
namespace graphene { namespace protocol {
typedef boost::multiprecision::uint128_t uint128_t;
typedef boost::multiprecision::int128_t int128_t;

View file

@ -24,6 +24,8 @@
#include <graphene/protocol/authority.hpp>
#include <fc/io/raw.hpp>
namespace graphene { namespace protocol {
void add_authority_accounts(

View file

@ -1,8 +1,11 @@
#include <graphene/protocol/chain_parameters.hpp>
#include <graphene/protocol/fee_schedule.hpp>
#include <fc/io/raw.hpp>
namespace graphene { namespace protocol {
chain_parameters::chain_parameters() {
current_fees = std::make_shared<fee_schedule>();
}
}}
}}

View file

@ -22,6 +22,9 @@
* THE SOFTWARE.
*/
#include <graphene/protocol/committee_member.hpp>
#include <graphene/protocol/fee_schedule.hpp>
#include <fc/io/raw.hpp>
namespace graphene { namespace protocol {

View file

@ -162,4 +162,3 @@ GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::protocol::blind_trans
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::protocol::transfer_to_blind_operation )
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::protocol::transfer_from_blind_operation )
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::protocol::blind_transfer_operation )

View file

@ -36,5 +36,5 @@ share_type custom_operation::calculate_fee(const fee_parameters_type& k)const
} }
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::chain::custom_operation::fee_parameters_type )
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::chain::custom_operation )
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::protocol::custom_operation::fee_parameters_type )
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::protocol::custom_operation )

View file

@ -22,11 +22,12 @@
* THE SOFTWARE.
*/
#pragma once
#include <graphene/protocol/base.hpp>
#include <graphene/protocol/asset.hpp>
#include <graphene/protocol/authority.hpp>
#include <graphene/protocol/buyback.hpp>
#include <graphene/protocol/ext.hpp>
#include <graphene/protocol/special_authority.hpp>
#include <graphene/protocol/types.hpp>
#include <graphene/protocol/vote.hpp>
namespace graphene { namespace protocol {

View file

@ -23,15 +23,14 @@
*/
#pragma once
#include <graphene/protocol/config.hpp>
#include <graphene/protocol/pts_address.hpp>
#include <graphene/protocol/types.hpp>
#include <fc/crypto/elliptic.hpp>
#include <fc/crypto/ripemd160.hpp>
#include <fc/reflect/typename.hpp>
namespace graphene { namespace protocol {
struct public_key_type;
struct pts_address;
/**
* @brief a 160 bit hash of a public key
@ -77,20 +76,6 @@ namespace fc
void from_variant( const fc::variant& var, graphene::protocol::address& vo, uint32_t max_depth = 1 );
}
namespace std
{
template<>
struct hash<graphene::protocol::address>
{
public:
size_t operator()(const graphene::protocol::address &a) const
{
return (uint64_t(a.addr._hash[0])<<32) | uint64_t( a.addr._hash[0] );
}
};
}
#include <fc/reflect/reflect.hpp>
FC_REFLECT( graphene::protocol::address, (addr) )
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::protocol::address )

View file

@ -22,7 +22,9 @@
* THE SOFTWARE.
*/
#pragma once
#include <graphene/protocol/base.hpp>
#include <graphene/protocol/asset.hpp>
namespace graphene { namespace protocol {
@ -112,5 +114,5 @@ FC_REFLECT( graphene::protocol::block_id_predicate, (id) )
FC_REFLECT_TYPENAME( graphene::protocol::predicate )
FC_REFLECT( graphene::protocol::assert_operation, (fee)(fee_paying_account)(predicates)(required_auths)(extensions) )
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::chain::assert_operation::fee_parameters_type )
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::chain::assert_operation )
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::protocol::assert_operation::fee_parameters_type )
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::protocol::assert_operation )

View file

@ -22,7 +22,6 @@
* THE SOFTWARE.
*/
#pragma once
#include <graphene/protocol/config.hpp>
#include <graphene/protocol/types.hpp>
namespace graphene { namespace protocol {

View file

@ -23,6 +23,7 @@
*/
#pragma once
#include <graphene/protocol/base.hpp>
#include <graphene/protocol/asset.hpp>
#include <graphene/protocol/memo.hpp>
namespace graphene { namespace protocol {

View file

@ -23,6 +23,7 @@
*/
#pragma once
#include <graphene/protocol/types.hpp>
#include <graphene/protocol/address.hpp>
namespace graphene { namespace protocol {

View file

@ -23,6 +23,8 @@
*/
#pragma once
#include <graphene/protocol/base.hpp>
#include <graphene/protocol/asset.hpp>
#include <graphene/protocol/authority.hpp>
namespace graphene { namespace protocol {
@ -58,4 +60,4 @@ FC_REFLECT( graphene::protocol::balance_claim_operation::fee_parameters_type, )
FC_REFLECT( graphene::protocol::balance_claim_operation,
(fee)(deposit_to_account)(balance_to_claim)(balance_owner_key)(total_claimed) )
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::chain::balance_claim_operation )
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::protocol::balance_claim_operation )

View file

@ -23,13 +23,14 @@
*/
#pragma once
#include <graphene/protocol/ext.hpp>
#include <graphene/protocol/types.hpp>
#include <graphene/protocol/asset.hpp>
#include <graphene/protocol/authority.hpp>
#include <fc/thread/future.hpp>
namespace graphene { namespace protocol {
struct asset;
struct authority;
struct asset;
struct authority;

View file

@ -27,7 +27,6 @@
#include <../hardfork.d/GPOS.hf>
#include <memory>
#include <graphene/protocol/base.hpp>
#include <graphene/protocol/types.hpp>
namespace graphene { namespace protocol {
struct fee_schedule;
@ -218,4 +217,4 @@ FC_REFLECT( graphene::protocol::chain_parameters,
(extensions)
)
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::chain::chain_parameters )
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::protocol::chain_parameters )

View file

@ -23,6 +23,7 @@
*/
#pragma once
#include <graphene/protocol/base.hpp>
#include <graphene/protocol/asset.hpp>
#include <graphene/protocol/chain_parameters.hpp>
namespace graphene { namespace protocol {
@ -94,11 +95,11 @@ namespace graphene { namespace protocol {
/// TODO: committee_member_resign_operation : public base_operation
} } // graphene::protocol
FC_REFLECT( graphene::protocol::committee_member_create_operation::fee_parameters_type, (fee) )
FC_REFLECT( graphene::protocol::committee_member_update_operation::fee_parameters_type, (fee) )
FC_REFLECT( graphene::protocol::committee_member_update_global_parameters_operation::fee_parameters_type, (fee) )
FC_REFLECT( graphene::protocol::committee_member_create_operation,
(fee)(committee_member_account)(url) )
FC_REFLECT( graphene::protocol::committee_member_update_operation,

View file

@ -24,6 +24,8 @@
#pragma once
#include <graphene/protocol/base.hpp>
#include <graphene/protocol/asset.hpp>
#include <graphene/protocol/authority.hpp>
namespace graphene { namespace protocol {
@ -281,7 +283,6 @@ FC_REFLECT( graphene::protocol::blind_transfer_operation,
FC_REFLECT( graphene::protocol::transfer_to_blind_operation::fee_parameters_type, (fee)(price_per_output) )
FC_REFLECT( graphene::protocol::transfer_from_blind_operation::fee_parameters_type, (fee) )
FC_REFLECT( graphene::protocol::blind_transfer_operation::fee_parameters_type, (fee)(price_per_output) )
FC_REFLECT( graphene::chain::blind_transfer_operation::fee_parameters_type, (fee)(price_per_output) )
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::protocol::transfer_to_blind_operation::fee_parameters_type )
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::protocol::transfer_from_blind_operation::fee_parameters_type )

View file

@ -24,6 +24,7 @@
#pragma once
#include <graphene/protocol/base.hpp>
#include <graphene/protocol/asset.hpp>
namespace graphene { namespace protocol {

View file

@ -23,6 +23,7 @@
*/
#pragma once
#include <graphene/protocol/base.hpp>
#include <graphene/protocol/asset.hpp>
namespace graphene { namespace protocol {

View file

@ -23,7 +23,7 @@
*/
#pragma once
#include <graphene/protocol/base.hpp>
#include <graphene/protocol/ext.hpp>
#include <graphene/protocol/asset.hpp>
namespace graphene { namespace protocol {
@ -177,4 +177,3 @@ GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::protocol::limit_order_create_
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::protocol::limit_order_cancel_operation )
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::protocol::call_order_update_operation )
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::protocol::fill_order_operation )

View file

@ -23,6 +23,7 @@
*/
#pragma once
#include <graphene/protocol/base.hpp>
#include <graphene/protocol/asset.hpp>
namespace graphene { namespace protocol {
/**

View file

@ -25,6 +25,8 @@
#include <array>
#include <cstring>
#include <fc/io/datastream.hpp>
#include <fc/io/raw_fwd.hpp>
#include <string>
#include <fc/io/datastream.hpp>
@ -80,6 +82,7 @@ namespace fc
{
void to_variant( const graphene::protocol::pts_address& var, fc::variant& vo, uint32_t max_depth = 1 );
void from_variant( const fc::variant& var, graphene::protocol::pts_address& vo, uint32_t max_depth = 1 );
namespace raw {
extern template void pack( datastream<size_t>& s, const graphene::protocol::pts_address& tx,
uint32_t _max_depth=FC_PACK_MAX_DEPTH );

View file

@ -24,7 +24,6 @@
#pragma once
#include <graphene/protocol/types.hpp>
#include <fc/reflect/reflect.hpp>
namespace graphene { namespace protocol {

View file

@ -23,9 +23,6 @@
*/
#pragma once
#include <graphene/protocol/operations.hpp>
#include <graphene/protocol/types.hpp>
#include <numeric>
namespace graphene { namespace protocol {

View file

@ -23,6 +23,7 @@
*/
#pragma once
#include <graphene/protocol/base.hpp>
#include <graphene/protocol/asset.hpp>
#include <graphene/protocol/memo.hpp>
namespace graphene { namespace protocol {

View file

@ -23,6 +23,11 @@
*/
#pragma once
#include <memory>
#include <vector>
#include <deque>
#include <cstdint>
#include <boost/preprocessor/seq/for_each.hpp>
#include <boost/preprocessor/seq/transform.hpp>
#include <boost/preprocessor/seq/elem.hpp>
@ -30,11 +35,15 @@
#include <boost/preprocessor/tuple/elem.hpp>
#include <boost/preprocessor/cat.hpp>
#include <boost/rational.hpp>
#include <fc/container/flat_fwd.hpp>
#include <fc/io/varint.hpp>
#include <fc/io/enum_type.hpp>
#include <fc/crypto/ripemd160.hpp>
#include <fc/crypto/sha1.hpp>
#include <fc/crypto/sha224.hpp>
#include <fc/crypto/sha256.hpp>
#include <fc/crypto/elliptic.hpp>
#include <fc/reflect/reflect.hpp>
#include <fc/reflect/variant.hpp>
@ -46,19 +55,26 @@
#include <graphene/protocol/ext.hpp>
#include <fc/io/raw.hpp>
#include <fc/io/datastream.hpp>
#include <fc/uint128.hpp>
#include <fc/static_variant.hpp>
#include <memory>
#include <vector>
#include <deque>
#include <cstdint>
#include <graphene/protocol/address.hpp>
#include <graphene/protocol/object_id.hpp>
#include <graphene/protocol/config.hpp>
#include <boost/rational.hpp>
#define GRAPHENE_EXTERNAL_SERIALIZATION(ext, type) \
namespace fc { \
ext template void from_variant( const variant& v, type& vo, uint32_t max_depth ); \
ext template void to_variant( const type& v, variant& vo, uint32_t max_depth ); \
namespace raw { \
ext template void pack< datastream<size_t>, type >( datastream<size_t>& s, const type& tx, uint32_t _max_depth=FC_PACK_MAX_DEPTH ); \
ext template void pack< sha256::encoder, type >( sha256::encoder& s, const type& tx, uint32_t _max_depth=FC_PACK_MAX_DEPTH ); \
ext template void pack< datastream<char*>, type >( datastream<char*>& s, const type& tx, uint32_t _max_depth=FC_PACK_MAX_DEPTH ); \
ext template void unpack< datastream<const char*>, type >( datastream<const char*>& s, type& tx, uint32_t _max_depth=FC_PACK_MAX_DEPTH ); \
} } // fc::raw
#define GRAPHENE_NAME_TO_OBJECT_TYPE(x, prefix, name) BOOST_PP_CAT(prefix, BOOST_PP_CAT(name, _object_type))
#define GRAPHENE_NAME_TO_ID_TYPE(x, y, name) BOOST_PP_CAT(name, _id_type)
#define GRAPHENE_DECLARE_ID(x, space_prefix_seq, name) \
@ -206,7 +222,8 @@ struct get_typename<std::shared_ptr<graphene::protocol::fee_schedule>> { static
} };
void from_variant( const fc::variant& var, std::shared_ptr<const graphene::protocol::fee_schedule>& vo,
uint32_t max_depth = 2 );
}
} // fc::raw
GRAPHENE_DEFINE_IDS(protocol, protocol_ids, /*protocol objects are not prefixed*/,
(null)
@ -258,3 +275,12 @@ FC_REFLECT_ENUM(graphene::protocol::asset_issuer_permission_flags,
(disable_confidential)
(witness_fed_asset)
(committee_fed_asset))
namespace fc { namespace raw {
extern template void pack( datastream<size_t>& s, const graphene::protocol::public_key_type& tx,
uint32_t _max_depth=FC_PACK_MAX_DEPTH );
extern template void pack( datastream<char*>& s, const graphene::protocol::public_key_type& tx,
uint32_t _max_depth=FC_PACK_MAX_DEPTH );
extern template void unpack( datastream<const char*>& s, graphene::protocol::public_key_type& tx,
uint32_t _max_depth=FC_PACK_MAX_DEPTH );
} } // fc::raw

View file

@ -24,6 +24,7 @@
#pragma once
#include <graphene/protocol/base.hpp>
#include <graphene/protocol/asset.hpp>
namespace graphene { namespace protocol {

View file

@ -24,7 +24,7 @@
#pragma once
#include <graphene/chain/protocol/types.hpp>
#include <graphene/protocol/types.hpp>
namespace graphene { namespace protocol {

View file

@ -23,6 +23,7 @@
*/
#pragma once
#include <graphene/protocol/base.hpp>
#include <graphene/protocol/asset.hpp>
#include <graphene/protocol/memo.hpp>
namespace graphene { namespace protocol {
@ -180,11 +181,11 @@ FC_REFLECT( graphene::protocol::withdraw_permission_claim_operation, (fee)(withd
FC_REFLECT( graphene::protocol::withdraw_permission_delete_operation, (fee)(withdraw_from_account)(authorized_account)
(withdrawal_permission) )
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::chain::withdraw_permission_create_operation::fee_parameters_type )
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::chain::withdraw_permission_update_operation::fee_parameters_type )
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::chain::withdraw_permission_claim_operation::fee_parameters_type )
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::chain::withdraw_permission_delete_operation::fee_parameters_type )
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::chain::withdraw_permission_create_operation )
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::chain::withdraw_permission_update_operation )
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::chain::withdraw_permission_claim_operation )
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::chain::withdraw_permission_delete_operation )
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::protocol::withdraw_permission_create_operation::fee_parameters_type )
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::protocol::withdraw_permission_update_operation::fee_parameters_type )
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::protocol::withdraw_permission_claim_operation::fee_parameters_type )
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::protocol::withdraw_permission_delete_operation::fee_parameters_type )
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::protocol::withdraw_permission_create_operation )
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::protocol::withdraw_permission_update_operation )
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::protocol::withdraw_permission_claim_operation )
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::protocol::withdraw_permission_delete_operation )

View file

@ -23,6 +23,7 @@
*/
#pragma once
#include <graphene/protocol/base.hpp>
#include <graphene/protocol/asset.hpp>
namespace graphene { namespace protocol {

View file

@ -23,6 +23,7 @@
*/
#pragma once
#include <graphene/protocol/base.hpp>
#include <graphene/protocol/asset.hpp>
namespace graphene { namespace protocol {
@ -104,5 +105,5 @@ FC_REFLECT( graphene::protocol::worker_create_operation::fee_parameters_type, (f
FC_REFLECT( graphene::protocol::worker_create_operation,
(fee)(owner)(work_begin_date)(work_end_date)(daily_pay)(name)(url)(initializer) )
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::chain::worker_create_operation::fee_parameters_type )
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::chain::worker_create_operation )
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::protocol::worker_create_operation::fee_parameters_type )
GRAPHENE_EXTERNAL_SERIALIZATION( extern, graphene::protocol::worker_create_operation )

View file

@ -24,6 +24,8 @@
#include <fc/io/raw.hpp>
#include <graphene/protocol/market.hpp>
#include <fc/io/raw.hpp>
namespace graphene { namespace protocol {
void limit_order_create_operation::validate()const
@ -55,3 +57,4 @@ GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::protocol::limit_order
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::protocol::limit_order_cancel_operation )
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::protocol::call_order_update_operation )
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::protocol::fill_order_operation )

View file

@ -25,6 +25,8 @@
#include <fc/uint128.hpp>
#include <graphene/protocol/operations.hpp>
#include <fc/io/raw.hpp>
namespace graphene { namespace protocol {
uint64_t base_operation::calculate_data_fee( uint64_t bytes, uint64_t price_per_kbyte )

View file

@ -96,10 +96,10 @@ namespace fc
}
namespace raw {
template void pack( datastream<size_t>& s, const graphene::chain::pts_address& tx,
template void pack( datastream<size_t>& s, const graphene::protocol::pts_address& tx,
uint32_t _max_depth=FC_PACK_MAX_DEPTH );
template void pack( datastream<char*>& s, const graphene::chain::pts_address& tx,
template void pack( datastream<char*>& s, const graphene::protocol::pts_address& tx,
uint32_t _max_depth=FC_PACK_MAX_DEPTH );
template void unpack( datastream<const char*>& s, graphene::chain::pts_address& tx,
template void unpack( datastream<const char*>& s, graphene::protocol::pts_address& tx,
uint32_t _max_depth=FC_PACK_MAX_DEPTH );
} } // fc::raw

View file

@ -22,12 +22,12 @@
* THE SOFTWARE.
*/
#include <graphene/chain/protocol/balance.hpp>
#include <graphene/chain/protocol/buyback.hpp>
#include <graphene/chain/protocol/fba.hpp>
#include <graphene/chain/protocol/fee_schedule.hpp>
#include <graphene/chain/protocol/vesting.hpp>
#include <graphene/chain/protocol/chain_parameters.hpp>
#include <graphene/protocol/balance.hpp>
#include <graphene/protocol/buyback.hpp>
#include <graphene/protocol/fba.hpp>
#include <graphene/protocol/fee_schedule.hpp>
#include <graphene/protocol/vesting.hpp>
#include <graphene/protocol/chain_parameters.hpp>
#include <fc/io/raw.hpp>
@ -54,13 +54,14 @@ FC_IMPLEMENT_DERIVED_EXCEPTION( insufficient_fee, transaction_exceptio
} } // graphene::protocol
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::chain::balance_claim_operation )
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::chain::buyback_account_options )
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::chain::fba_distribute_operation )
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::protocol::balance_claim_operation )
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::protocol::buyback_account_options )
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::protocol::fba_distribute_operation )
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::chain::vesting_balance_create_operation::fee_parameters_type )
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::chain::vesting_balance_withdraw_operation::fee_parameters_type )
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::chain::vesting_balance_create_operation )
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::chain::vesting_balance_withdraw_operation )
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::protocol::vesting_balance_create_operation::fee_parameters_type )
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::protocol::vesting_balance_withdraw_operation::fee_parameters_type )
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::protocol::vesting_balance_create_operation )
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::protocol::vesting_balance_withdraw_operation )
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::protocol::chain_parameters )
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::chain::chain_parameters )

View file

@ -24,6 +24,8 @@
#include <graphene/protocol/special_authority.hpp>
#include <fc/io/raw.hpp>
namespace graphene { namespace protocol {
struct special_authority_validate_visitor
@ -45,3 +47,5 @@ void validate_special_authority( const special_authority& a )
}
} } // graphene::protocol
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::protocol::top_holders_special_authority )

View file

@ -22,9 +22,12 @@
* THE SOFTWARE.
*/
#include <graphene/protocol/fee_schedule.hpp>
#include <graphene/protocol/transaction.hpp>
#include <graphene/protocol/block.hpp>
#include <graphene/protocol/exceptions.hpp>
#include <graphene/protocol/fee_schedule.hpp>
#include <graphene/protocol/pts_address.hpp>
#include <fc/io/raw.hpp>
#include <fc/bitutil.hpp>
#include <algorithm>

View file

@ -21,7 +21,7 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include <graphene/protocol/config.hpp>
#include <graphene/protocol/types.hpp>
#include <graphene/protocol/fee_schedule.hpp>
@ -160,4 +160,11 @@ namespace fc
from_variant(var, const_cast<graphene::protocol::fee_schedule&>(*vo), max_depth);
}
} // fc
namespace raw {
template void pack( datastream<size_t>& s, const graphene::protocol::public_key_type& tx,
uint32_t _max_depth=FC_PACK_MAX_DEPTH );
template void pack( datastream<char*>& s, const graphene::protocol::public_key_type& tx,
uint32_t _max_depth=FC_PACK_MAX_DEPTH );
template void unpack( datastream<const char*>& s, graphene::protocol::public_key_type& tx,
uint32_t _max_depth=FC_PACK_MAX_DEPTH );
} } // fc::raw

View file

@ -23,8 +23,6 @@
*/
#include <graphene/protocol/vote.hpp>
#include <fc/variant.hpp>
#include <string>
namespace fc
{
@ -40,3 +38,5 @@ void from_variant( const variant& var, graphene::protocol::vote_id_type& vo, uin
}
} // fc
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::protocol::vote_id_type )

View file

@ -24,6 +24,8 @@
#include <fc/io/raw.hpp>
#include <graphene/protocol/witness.hpp>
#include <fc/io/raw.hpp>
namespace graphene { namespace protocol {
void witness_create_operation::validate() const

View file

@ -24,6 +24,8 @@
#include <fc/io/raw.hpp>
#include <graphene/protocol/worker.hpp>
#include <fc/io/raw.hpp>
namespace graphene { namespace protocol {
void worker_create_operation::validate() const
@ -38,5 +40,5 @@ void worker_create_operation::validate() const
} }
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::chain::worker_create_operation::fee_parameters_type )
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::chain::worker_create_operation )
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::protocol::worker_create_operation::fee_parameters_type )
GRAPHENE_EXTERNAL_SERIALIZATION( /*not extern*/, graphene::protocol::worker_create_operation )

View file

@ -80,6 +80,7 @@
#include <graphene/bookie/bookie_api.hpp>
#include <graphene/protocol/fee_schedule.hpp>
#include <graphene/protocol/pts_address.hpp>
#include <graphene/chain/hardfork.hpp>
#include <graphene/utilities/git_revision.hpp>
#include <graphene/utilities/key_conversion.hpp>