Check out the Issue Explorer
Looking to fund some work? You can submit a new Funded Issue here.
## Before you `start work`
Please read our contribution [guidelines](https://docs.marketprotocol.io/#contributing) and if there is a bounty involved please also see [here](https://docs.marketprotocol.io/#gitcoin-and-bounties)
If you have ongoing work from other bounties with us where funding has not been released, please do not pick up a new issue. We would like to involve as many contributors as possible and parallelize the work flow as much as possible.
Please make sure to comment in the issue here immediately after starting work so we know your plans for implementation and a timeline.
Please also note that in order for work to be accepted, all code must be accompanied by test cases as well.
### User Story
As a user I would like to be able to easily determine if an order is valid and the qty remaining available to be filled.
### Why Is this Needed?
*Summary*: In order for a better order book maintenance and pruning
[comment]: # (Provide a summary of the solution and a task list on what needs to be fixed.)
*Summary*: Implement a RemainingFillableCalculator using [this](https://github.com/0xProject/0x-monorepo/blob/master/packages/0x.js/src/order_watcher/remaining_fillable_calculator.ts) as an example.
Ourimplementation differs from the example, so here are the factors that affect a MARKET Protocol order and its "fillability" -
- Remaining un-allocated balance in the correct `CollateralPool` contract. See `getUserAccountBalanceAsync` in the codebase.
- Ability for fees to be paid by the maker, if applicable. (same as in the above example)
- Previously filled qty and previously cancelled qty (handled elsewhere, same as in example)
### Definition of Done
- [ ] Create new `RemainingFillableCalculator` class
- [ ] Create needed test to support all code generated (this may take more time than the actual implementation)
- [ ] Ensure code is well documented
#### This task will probably need for whomever picks it up to do a little research into our whitepaper and our [solidity repo](https://github.com/MARKETProtocol/MARKETProtocol) as well. Please only pick this issue up if your willing to put in the work and get the tests running. We are adding some extra ETH here for the bounty to facilitate the needed research and time spent. Some experience with TypeScript is helpful, and even more helpful would be experience with 0x or financial markets and orders.
#### We will accept bounty hunters who explain why the believe they are able to successfully complete this task and a timeline to do so.