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 dev I would like to coverage testing to work! ;)
### Why Is this Needed?
[comment]: # (Describe the problem and why this task is needed. Provide description of the current state, what you would like to happen, and what actually happen)
*Summary*: Currently after upgrading solidity past 0.4.20 our coverage tests have broken due to
> Since 0.4.20, in response to Parity's wallet being deleted, solc has added protections (at the bytecode level) that prevent non-view library methods from being called directly. TLDR, the pure library functions are being compiled as non-view functions and this triggers the error.
The solution is to create mock contracts to wrap the library calls in to avoid the issues!
[comment]: # (Feature or Bug? i.e Type: Bug)
*Type*: Feature / Bug
See these previous issues
and a quick example of the bug
We need to wrap all of our library functions inside a contract and change all of the .js tests to use the contract wrapper instead of the library.
### Current Behavior
[comment]: # (Describe what actually happened.)
All calls to library functions fail in the solidity-coverage environment
### Expected Behavior
[comment]: # (Describe what you expected to happen.)
coverage produces reasonable results.
### Definition of Done
[comment]: # (Any other information that would be useful, bullets are helpful.)
- [ ] Create contract mocks for all libraries in contracts/mocks/
- [ ] Modify all .js tests to use new mock contracts.
- [ ] using .solcover.js skip these files from coverage
- [ ] add mocks folder to .npmignore
- [ ] restore coverage to it previous ~90% range