The calculate_open_short was written at a different time from calculate_open_long; I updated it so that they follow the same process.
edit: this caused trouble for reasons I can't explain but probably have to do with share/base conversions. I reverted it, but left some new error stuff.
I also added some better error checking in calculate_targeted_long so that it can safely return in what was previously considered an error state.
I added a new random test variable, the target rate itself, in the calculate_targeted_long tests.
Review Checklists
Please check each item before approving the pull request. While going
through the checklist, it is recommended to leave comments on items that are
referenced in the checklist to make sure that they are reviewed. If there are
multiple reviewers, copy the checklists into sections titled ## [Reviewer Name].
If the PR doesn't touch Solidity and/or Rust, the corresponding checklist can
be removed.
[[Reviewer Name]]
Rust
[ ] Testing
[ ] Are there new or updated unit or integration tests?
[ ] Do the tests cover the happy paths?
[ ] Do the tests cover the unhappy paths?
[ ] Are there an adequate number of fuzz tests to ensure that we are
covering the full input space?
[ ] If matching Solidity behavior, are there differential fuzz tests that
ensure that Rust matches Solidity?
Resolved Issues
partially addresses https://github.com/delvtech/hyperdrive-rs/issues/40
Description
The
calculate_open_short
was written at a different time fromcalculate_open_long
; I updated it so that they follow the same process. edit: this caused trouble for reasons I can't explain but probably have to do with share/base conversions. I reverted it, but left some new error stuff.I also added some better error checking in
calculate_targeted_long
so that it can safely return in what was previously considered an error state.I added a new random test variable, the target rate itself, in the
calculate_targeted_long
tests.Review Checklists
Please check each item before approving the pull request. While going through the checklist, it is recommended to leave comments on items that are referenced in the checklist to make sure that they are reviewed. If there are multiple reviewers, copy the checklists into sections titled
## [Reviewer Name]
. If the PR doesn't touch Solidity and/or Rust, the corresponding checklist can be removed.[[Reviewer Name]]
Rust