MM has a number of inconsistencies with other providers when implementing the JSON RPC interface. This subprovider wraps those nuances so they do not leak into the rest of our code
* Added Test "Should transfer correct amounts when left order is fully filled and values pass isRoundingErrorCeil but fail isRoundingErrorFloor"
* Added RoundingError exception to reference function for getPartialAmount
* Added RoundingError exception to reference function for getPartialAmount
* Added isRoundingErrorCeil to getPartialAmountCeil reference funtion
* Computed new values for "Should give right maker a better buy price when correct price is not integral" that does not have a rounding error
* Almost all tests for match orders are passing after adding isRoundingErrorCeil check
* WIP commit: Added rounding error checks to getPartialAmount
* WIP commit: Added rounding error checks to getPartialAmount
* Use safe versions of getPartialAmount
* Update Exchange internals tests
* Run linter
* Found new values for "Should transfer correct amounts when right order fill amount deviates from amount derived by `Exchange.fillOrder`"
* Fixed merge conflicts
* Run all tests
* Cleaned up some comments on match Orders tests
* Fix tests for geth
Previously our min fillable calculation would throw a rounding error
when encountering a valid order (with a small maker amount). This was
inconsistent with the on-chain logic which allowed this order to be
filled.
This allows the developer to indicate the nuanced signer provider. Some have different implementations (trezor, ledger) and others have different implementations (metamask). Breaking the abstraction of eth_sign. EthSign assumes a spec compliant implementation and can be used as a default