Adding API call: get_potential_signatures
This call allows wallets to filter the set of keys that may potentially sign a transaction prior to calling get_required_signatures to get the minimum subset.
This commit is contained in:
parent
0295f10387
commit
b6385e2117
3 changed files with 29 additions and 1 deletions
|
|
@ -1129,6 +1129,26 @@ namespace graphene { namespace app {
|
||||||
[&]( account_id_type id ){ return &id(_db).owner; },
|
[&]( account_id_type id ){ return &id(_db).owner; },
|
||||||
_db.get_global_properties().parameters.max_authority_depth );
|
_db.get_global_properties().parameters.max_authority_depth );
|
||||||
}
|
}
|
||||||
|
set<public_key_type> database_api::get_potential_signatures( const signed_transaction& trx )const
|
||||||
|
{
|
||||||
|
set<public_key_type> result;
|
||||||
|
trx.get_required_signatures( _db.get_chain_id(),
|
||||||
|
flat_set<public_key_type>(),
|
||||||
|
[&]( account_id_type id ){
|
||||||
|
const auto& auth = &id(_db).active
|
||||||
|
for( const auto& k : auth.get_keys() )
|
||||||
|
result.insert(k)
|
||||||
|
return &auth; },
|
||||||
|
[&]( account_id_type id ){
|
||||||
|
const auto& auth = &id(_db).owner
|
||||||
|
for( const auto& k : auth.get_keys() )
|
||||||
|
result.insert(k)
|
||||||
|
return &auth; },
|
||||||
|
},
|
||||||
|
_db.get_global_properties().parameters.max_authority_depth );
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
bool database_api::verify_authority( const signed_transaction& trx )const
|
bool database_api::verify_authority( const signed_transaction& trx )const
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -331,6 +331,13 @@ namespace graphene { namespace app {
|
||||||
*/
|
*/
|
||||||
set<public_key_type> get_required_signatures( const signed_transaction& trx, const flat_set<public_key_type>& available_keys )const;
|
set<public_key_type> get_required_signatures( const signed_transaction& trx, const flat_set<public_key_type>& available_keys )const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method will return the set of all public keys that could possibly sign for a given transaction. This call can
|
||||||
|
* be used by wallets to filter their set of public keys to just the relevant subset prior to calling @ref get_required_signatures
|
||||||
|
* to get the minimum subset.
|
||||||
|
*/
|
||||||
|
set<public_key_type> get_potential_signatures( const signed_transaction& trx )const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return true of the @ref trx has all of the required signatures, otherwise throws an exception
|
* @return true of the @ref trx has all of the required signatures, otherwise throws an exception
|
||||||
*/
|
*/
|
||||||
|
|
@ -562,6 +569,7 @@ FC_API(graphene::app::database_api,
|
||||||
(get_balance_objects)
|
(get_balance_objects)
|
||||||
(get_vested_balances)
|
(get_vested_balances)
|
||||||
(get_required_signatures)
|
(get_required_signatures)
|
||||||
|
(get_potential_signatures)
|
||||||
(verify_authority)
|
(verify_authority)
|
||||||
(get_blinded_balances)
|
(get_blinded_balances)
|
||||||
(get_required_fees)
|
(get_required_fees)
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
Subproject commit 088dadd12481e75829b83c098f3bc36b7e296ca0
|
Subproject commit d11b48a015e0c339cc20f739ef1f8a5b3c57b913
|
||||||
Loading…
Reference in a new issue