* Remove proposals for creating deposit and withdrawal objects, strenghten evaluator checks * Only active SON can create the object * Only expected SON can confirm the transaction * Transaction must be initiated (paid) by SON account owner (SON account given in operation) * Transaction confirmation must contain exactly the same data as existing object * Mirror SON owner account weights from son-account.active.account_auths to active SONs * Fix duplicated typedef, peerplays_sidechain::sidechain_type to chain::sidechain_type * Add missing serialized field
39 lines
1 KiB
C++
39 lines
1 KiB
C++
#pragma once
|
|
#include <graphene/chain/protocol/types.hpp>
|
|
#include <graphene/chain/sidechain_defs.hpp>
|
|
|
|
namespace graphene { namespace chain {
|
|
using namespace graphene::db;
|
|
|
|
/**
|
|
* @class son_info
|
|
* @brief tracks information about a SON info required to re/create primary wallet
|
|
* @ingroup object
|
|
*/
|
|
struct son_info {
|
|
son_id_type son_id;
|
|
weight_type weight = 0;
|
|
public_key_type signing_key;
|
|
flat_map<sidechain_type, string> sidechain_public_keys;
|
|
|
|
bool operator==(const son_info& rhs) {
|
|
bool son_sets_equal =
|
|
(son_id == rhs.son_id) &&
|
|
(weight == rhs.weight) &&
|
|
(signing_key == rhs.signing_key) &&
|
|
(sidechain_public_keys.size() == rhs.sidechain_public_keys.size());
|
|
|
|
if (son_sets_equal) {
|
|
// Compare sidechain public keys
|
|
}
|
|
return son_sets_equal;
|
|
}
|
|
};
|
|
|
|
} }
|
|
|
|
FC_REFLECT( graphene::chain::son_info,
|
|
(son_id)
|
|
(weight)
|
|
(signing_key)
|
|
(sidechain_public_keys) )
|