    BSIP: 0027
    Title: Asset Issuer Reclaim Fee Pool Funds
    Authors: Abit More <https://github.com/abitmore>
             Fabian Schuh <Fabian@BitShares.eu>
    Status: Accepted
    Type: Protocol
    Created: 2017-11-02
    Discussion: https://github.com/bitshares/bitshares-core/issues/188
    Worker: 1.14.70

# Abstract

Asset issuers need a way to get out some CORE assets (BTS) from their assets' fee pool, for example when accidentally filled too much BTS into the pool. As of writing, this can be done by crafting a special limit order then cancel it, the process is a bit complicated. In addition, this approach will no longer work if [BSIP #26 (Refund Order Creation Fee in Originally Paid Asset on Cancel)](https://github.com/bitshares/bsips/blob/master/bsip-0026.md) is implemented. This BSIP proposes a protocol change to meet the demand.

# Motivation

Make the asset system easier to use.

# Rational

Asset issuer should have full and easy control over the funds in the fee pool.

# Specifications

## Current Design and Implementation

Asset issuers can fill the fee pool with the `asset_fund_fee_pool_operation` operation, which has a structure as follows:
```
   struct asset_fund_fee_pool_operation : public base_operation
   {
      asset           fee; ///< core asset
      account_id_type from_account;
      asset_id_type   asset_id;
      share_type      amount; ///< core asset
      extensions_type extensions;
   };
```

The `amount` in the structure can only be positive, which means the `from_account` can only add some CORE asset (BTS) into an asset's fee pool.

## Proposed Changes

We propose to add a new operation `asset_claim_pool_operation` that allows to claim CORE asset (BTS) from the fee pool.

```
   struct asset_claim_pool_operation : public base_operation
   {
      asset           fee;
      account_id_type issuer;
      asset_id_type   asset_id;        /// fee.asset_id must != asset_id
      asset           amount_to_claim; /// core asset
      extensions_type extensions;
   };
```

We've decided to add a new operation in order to no modify existing behavior.

# Discussion

The operation fee for `asset_claim_pool_operation ` should be no less than `transfer_operation`.

# Summary for Shareholders

We here propose the addition of a new operation that allows to claim fees from the fee pool. Since the fee pools are pre-filled with an initial amount from the asset creation fee, this feature is useful for those that do not desire to use the fee pool.

# Copyright

This document is placed in the public domain.

# See Also

* https://github.com/bitshares/bitshares-core/issues/188
* [BSIP #2](https://github.com/bitshares/bsips/blob/master/bsip-0002.md)
* [BSIP #26](https://github.com/bitshares/bsips/blob/master/bsip-0026.md)
