transaction_builder& transaction_builder::update_signing_key( const string& authorizing_account_name, const string& delegate_name, const public_key_type& signing_key ) { try { const owallet_account_record authorizing_account_record = _wimpl->_wallet_db.lookup_account( authorizing_account_name ); if( !authorizing_account_record.valid() ) FC_THROW_EXCEPTION( unknown_account, "Unknown authorizing account name!" ); const oaccount_record delegate_record = _wimpl->_blockchain->get_account_record( delegate_name ); if( !delegate_record.valid() ) FC_THROW_EXCEPTION( unknown_account, "Unknown delegate account name!" ); trx.update_signing_key( delegate_record->id, signing_key ); deduct_balance( authorizing_account_record->owner_address(), asset() ); ledger_entry entry; entry.from_account = authorizing_account_record->active_key(); entry.to_account = delegate_record->owner_key; entry.memo = "update block signing key"; transaction_record.ledger_entries.push_back( entry ); required_signatures.insert( authorizing_account_record->active_key() ); return *this; } FC_CAPTURE_AND_RETHROW( (authorizing_account_name)(delegate_name)(signing_key) ) }