Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Volt System Oracle (volt-protocol#82)
* Volt System Oracle * remove reference to scaling price oracle, and instead set start price in the constructor * add helper method to fuzz tests to avoid duplicate logic in tests * add new fuzz tests * fix failing tests from merge with develop * fix failing integration test * add fuzz test for multiple sequential compounding periods * fix fuzz test for multiple sequential compounding periods * add oracle integration tests * add integration tests for PSM swaps * fix PR feedback review * fix nits * remove cycles terminology * make period max 6,193 in fuzz test * remove duplicate contract calls in unit test * remove fuzz test and instead test all 6,192 states instead * add redeem flow for integration test * VIP-2, deploy new Oracle Pass Through, Volt System Oracle, and set PSM Oracle to point to new Oracle Pass Through * add arbitrum integration tests * Add newlines in VoltOracle doc, remove whitespace in config.yml * fix unit tests, add additional test coverage around oracle end time, update test run script in package.json * Update VoltOracle.md Co-authored-by: Kyle <kyletrusler@gmail.com> * remove word minified from VoltOracle * Update to use LaTex * update LaTeX to include original formula, and left justify content * LaTeX * remove non LaTeX from github formula * add arbitrum simulation framework * add linear interpolation formula and unit tests to verify algorithm * streamline tests * test lerp across each day in a whole year * vip 2 additions to add eoa guardian on arbitrum, cleanup revoked role on arbitrum proposer, add new eoa1 proposer to timelock * grant eoa 2 guardian on mainnet * Governance Docs * Move Volt System Oracle to monthly compounding * Update name in package.json * Docs on known contract limitations * set mint fee basis points to 0 on L1, and 5 basis points on L2 * Add integration tests to lower mint fee on L1 to 0 and L2 to 5 bps * fix Russel's feedback on PR, corrected vip_2 typo, updated arbitrum integration test to pass after upgrade, removed magic address and switched to ArbitrumAddresses * remove unneeded override in VoltSystemOracle.sol state variables * fix arbitrum test comments and variable names * remove all references to previous 1 year compounding period * update docs to use the month instead of year for period, renamed variable in unit test * add todo in config * update governance actions to not add or revoke system roles * New Volt System Oracle, Oracle Pass Through all owned by Timelock on mainnet and arbitrum. Oracle will go live August 2nd * vip_2 validation in solidity, matching ts and solidity timelock proposal data * Add simulation framework into integration tests, extend timelock simulation framework to optionally log calldata to make integration tests not log unnecessary data * remove unused variables in integration tests * update to allow only 1 basis point of deviation in mainnet tests * assert oracle is correctly updated by governance proposal, bump deviation back up to 5 bips in mainnet validation * add fuzzing to integration testing for get mint and redeem amount out on both mainnet and arbitrum * add command to generate arbitrum calldata to package.json * fix integration tests to have correct end time based on actual proposal * fix timelock simulation framework to not schedule already executed proposals * remove assertion that price is greater after upgrade Co-authored-by: Kyle <kyletrusler@gmail.com>
- Loading branch information