Skip to content

Pre release fixes#199

Merged
aalavandhan merged 15 commits intodevfrom
code-cleanup
Mar 27, 2024
Merged

Pre release fixes#199
aalavandhan merged 15 commits intodevfrom
code-cleanup

Conversation

@aalavandhan
Copy link
Copy Markdown
Member

@aalavandhan aalavandhan commented Mar 7, 2024

  • Moving back to fixed-percentage fees instead of stepfn for mint/redeem operations
  • Removed vault's deployment fee
  • PeckShield audit fixes
  • OZ bot issue fix wrt msg.sender usage
  • Minor cleanup

@aalavandhan aalavandhan marked this pull request as draft March 7, 2024 17:29
@openzeppelin-code
Copy link
Copy Markdown

openzeppelin-code bot commented Mar 7, 2024

Pre release fixes

Generated at commit: be62bd95558dadcd76ecdbf567285bfaa977b669

🚨 Report Summary

Severity Level Results
Contracts Critical
High
Medium
Low
Note
Total
0
0
0
3
17
20
Dependencies Critical
High
Medium
Low
Note
Total
0
0
0
0
0
0

For more details view the full report in OpenZeppelin Code Inspector

@aalavandhan aalavandhan marked this pull request as ready for review March 10, 2024 20:39
@aalavandhan aalavandhan force-pushed the code-cleanup branch 2 times, most recently from 96fe66e to e667e97 Compare March 10, 2024 22:48
perp.updateState();
}

if (bond != perp.getDepositBond()) {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we're doing a read anyway, seems there's no need to pass it in as a parameter.

WDYT about removing the bond parameter, then setting the function var to perp.getDepositBond()? Then we wouldn't need the revert condition either.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The reason we pass in the parameter is to ensure the user know which bond he is depositing into (since the deposit bond can diverge between the time the user reads and the user executes).

This check here is redundant as perp would revert if you try to mint using a non-deposit tranche.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is an expensive read (updates state) to have since redundant

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, we can keep as-is

Copy link
Copy Markdown
Member

@brandoniles brandoniles left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@aalavandhan aalavandhan merged commit b51d044 into dev Mar 27, 2024
@aalavandhan aalavandhan deleted the code-cleanup branch March 27, 2024 18:04
aalavandhan added a commit that referenced this pull request Apr 16, 2024
* using fixed perc fees for ops

* removed some unreachable code

* added test case to check for dust recovery

* removed vault deployment fee

* pve002 router validation

* pve004 preview deposit mature bond handling

* Removed from paramters from asset transfer wrapper functions and using msg.sender directly, also using msg.sender instead of _msgSender

* ran linter

* updated unit tests

* pve001 updating constructors

* pve002-3 bond issuer tranche granularity check

* Removed redundant computeDeviationRatio method from fee policy

* openzeppelin defender report informational issues

* Reverted pve002

* deployed to sepolia testnet (#201)

Signed-off-by: aalavandhann <[email protected]>
aalavandhan added a commit that referenced this pull request Apr 16, 2024
* using fixed perc fees for ops

* removed some unreachable code

* added test case to check for dust recovery

* removed vault deployment fee

* pve002 router validation

* pve004 preview deposit mature bond handling

* Removed from paramters from asset transfer wrapper functions and using msg.sender directly, also using msg.sender instead of _msgSender

* ran linter

* updated unit tests

* pve001 updating constructors

* pve002-3 bond issuer tranche granularity check

* Removed redundant computeDeviationRatio method from fee policy

* openzeppelin defender report informational issues

* Reverted pve002

* deployed to sepolia testnet (#201)

Signed-off-by: aalavandhann <[email protected]>
aalavandhan added a commit that referenced this pull request Apr 16, 2024
* Added perp redemption to vault recovery flow (#159)

* added perp redemption to vault recovery flow

* perp external functions returning ops data

* added natspec comments and renamed rollover preview struct

* refactors bond and tranche helpers, added a new method to compute proportional tranche balances

Signed-off-by: aalavandhann <[email protected]>

* meld method on rollover vault

Signed-off-by: aalavandhann <[email protected]>

* added todos

Signed-off-by: aalavandhann <[email protected]>

* Apply suggestions from code review

Co-authored-by: Brandon Iles <[email protected]>
Signed-off-by: aalavandhann <[email protected]>

* removed duplicate implementation

Signed-off-by: aalavandhann <[email protected]>

* unit tests for meld

Signed-off-by: aalavandhann <[email protected]>

* moved unused contracts to  folder

Signed-off-by: aalavandhann <[email protected]>

* imported sigmoid utility

Signed-off-by: aalavandhann <[email protected]>

* Fee strategy 2.0

Signed-off-by: aalavandhann <[email protected]>

* perp changes for fee strategy 2.0

Signed-off-by: aalavandhann <[email protected]>

* updated unit tests with the new fee scheme

Signed-off-by: aalavandhann <[email protected]>

* Apply suggestions from code review

Co-authored-by: Brandon Iles <[email protected]>
Co-authored-by: nms-7 <[email protected]>
Signed-off-by: aalavandhann <[email protected]>

* updated fee strategy

Signed-off-by: aalavandhann <[email protected]>

* using a normalized factor to compute sigmoid, rather than using a different target

Signed-off-by: aalavandhann <[email protected]>

* Update spot-contracts/contracts/strategies/FeeStrategy.sol

Signed-off-by: aalavandhann <[email protected]>

* using explicit cast instead of abs

Signed-off-by: aalavandhann <[email protected]>

* removed holding pen and discount math from perp

Signed-off-by: aalavandhann <[email protected]>

* perp cleanups, removed unused revert paramters

Signed-off-by: aalavandhann <[email protected]>

* updated peripheral contracts with the new fee mechanism and rollover scheme

Signed-off-by: aalavandhann <[email protected]>

* updated fee strategy to compute tranche ratios based on senior most tranche, rather than using discount adjusted ratios

Signed-off-by: aalavandhann <[email protected]>

* updated unit test suite

Signed-off-by: aalavandhann <[email protected]>

* removed deprecated fee strategy interface functions

Signed-off-by: aalavandhann <[email protected]>

* deleted deprecated contracts

Signed-off-by: aalavandhann <[email protected]>

* Apply suggestions from code review

Co-authored-by: Brandon Iles <[email protected]>
Signed-off-by: aalavandhann <[email protected]>

* updated rollover math condition

Signed-off-by: aalavandhann <[email protected]>

* removed dirty diff from rebase

Signed-off-by: aalavandhann <[email protected]>

* deleted unused contracts

Signed-off-by: aalavandhann <[email protected]>

* updated sigmoid utility, imported two pow code

Signed-off-by: aalavandhann <[email protected]>

* replaced == 0 conditions with <= 0

Signed-off-by: aalavandhann <[email protected]>

* reverted exp val snapping

Signed-off-by: aalavandhann <[email protected]>

* imported two pow tests

Signed-off-by: aalavandhann <[email protected]>

* handling zero vault deposit/redeem

Signed-off-by: aalavandhann <[email protected]>

* cleaned up error codes

Signed-off-by: aalavandhann <[email protected]>

* updated fee (monetary) policy for spot

Signed-off-by: aalavandhann <[email protected]>

* updated bond issuer

Signed-off-by: aalavandhann <[email protected]>

* updated perp

Signed-off-by: aalavandhann <[email protected]>

* removed meld from rollover vault

Signed-off-by: aalavandhann <[email protected]>

* vault code cleanup and private fn refactor

Signed-off-by: aalavandhann <[email protected]>

* vault v2 storage update, mint redeem and deployment fees

Signed-off-by: aalavandhann <[email protected]>

* moved rollover vault to parent dir

Signed-off-by: aalavandhann <[email protected]>

* Apply suggestions from code review

Co-authored-by: Brandon Iles <[email protected]>
Signed-off-by: aalavandhann <[email protected]>

* fee policy terminology updates and review fixes

Signed-off-by: aalavandhann <[email protected]>

* review pass, removed annualized rollover fees, comment and naming updates

Signed-off-by: aalavandhann <[email protected]>

* code review updates

Signed-off-by: aalavandhann <[email protected]>

* vault allows 2-way swap between perps and underlying

Signed-off-by: aalavandhann <[email protected]>

* subscription aware fee policy for swapping, using minting bond as the source of truth for tranche ratios

Signed-off-by: aalavandhann <[email protected]>

* removed unused interface fn from bond issuer

Signed-off-by: aalavandhann <[email protected]>

* fee policy updates for perp, skipping fees when used by vault, reverting to only one authorized roller ie vault

Signed-off-by: aalavandhann <[email protected]>

* utility to calculate ampl required to create x perps

Signed-off-by: aalavandhann <[email protected]>

* error and comment cleanup

Signed-off-by: aalavandhann <[email protected]>

* updated swap fee logic

Signed-off-by: aalavandhann <[email protected]>

* code review fixes

Signed-off-by: aalavandhann <[email protected]>

* Apply suggestions from code review

Co-authored-by: Brandon Iles <[email protected]>
Signed-off-by: aalavandhann <[email protected]>

* code review fixes

Signed-off-by: aalavandhann <[email protected]>

* removed perp as a vault asset, and redeeming perps only on swaps

Signed-off-by: aalavandhann <[email protected]>

* simplified fee policy interface, accepts sr instead of computing it

Signed-off-by: aalavandhann <[email protected]>

* Perp removed external pricing strategy and optimized tranche value computation

Signed-off-by: aalavandhann <[email protected]>

* Vault clean up, function reorg and optimized tvl comp

Signed-off-by: aalavandhann <[email protected]>

* Assuming that incoming tranches withold no fees, thus removing all bw fee related math

Signed-off-by: aalavandhann <[email protected]>

* interface cleanup

Signed-off-by: aalavandhann <[email protected]>

* fee policy: code review fixes

Signed-off-by: aalavandhann <[email protected]>

* perp: code review fixes

Signed-off-by: aalavandhann <[email protected]>

* vault: code review fixes

Signed-off-by: aalavandhann <[email protected]>

* interface: code review fixes

Signed-off-by: aalavandhann <[email protected]>

* removed string require errors infavor of custom errors

Signed-off-by: aalavandhann <[email protected]>

* feePolicy: updated fee policy interface

Signed-off-by: aalavandhann <[email protected]>

* perp: new fee policy interface, view methods regorg, skipping update state when paused, optimized cdr

Signed-off-by: aalavandhann <[email protected]>

* vault: handling dust

Signed-off-by: aalavandhann <[email protected]>

* vault: new fee policy interface, variable caching and tvl optimization, recoverAndRedeem and view methods reorg

Signed-off-by: aalavandhann <[email protected]>

* unit tests

Signed-off-by: aalavandhann <[email protected]>

* fee policy: code review fix

Signed-off-by: aalavandhann <[email protected]>

* perp: code review fix

Signed-off-by: aalavandhann <[email protected]>

* fee policy: updated dr condition

Signed-off-by: aalavandhann <[email protected]>

* vault : code review fix

Signed-off-by: aalavandhann <[email protected]>

* code review fix: unit-tests, perp expects valid vault

Signed-off-by: aalavandhann <[email protected]>

* reorg return data

Signed-off-by: aalavandhann <[email protected]>

* redemption amt calc optimization, assuming bond has only 2 tranches

Signed-off-by: aalavandhann <[email protected]>

* code review fix for commit 1&2

Signed-off-by: aalavandhann <[email protected]>

* updated lisc

Signed-off-by: aalavandhann <[email protected]>

* Renamed fee variable

Signed-off-by: aalavandhann <[email protected]>

* moved keeper only methods to its own section

Signed-off-by: aalavandhann <[email protected]>

* moved rollover vault

Signed-off-by: aalavandhann <[email protected]>

* ran linter

Signed-off-by: aalavandhann <[email protected]>

* bumped up solidity version to 0.8.20

Signed-off-by: aalavandhann <[email protected]>

* updated hyper-param methods, removed logs & zero checks

Signed-off-by: aalavandhann <[email protected]>

* comment fix

Signed-off-by: aalavandhann <[email protected]>

* nonReentrant updateState

Signed-off-by: aalavandhann <[email protected]>

* set keeper in init method

Signed-off-by: aalavandhann <[email protected]>

* comment update

Signed-off-by: aalavandhann <[email protected]>

* made transfer fn nonReentrant

Signed-off-by: aalavandhann <[email protected]>

* returning instead of reverting in deposit,redeem and rollover

Signed-off-by: aalavandhann <[email protected]>

* moved value fn into perp

Signed-off-by: aalavandhann <[email protected]>

* removed perp supply zero check on burn computation

Signed-off-by: aalavandhann <[email protected]>

* Removed reserve count method

Signed-off-by: aalavandhann <[email protected]>

* removed multiple reads

Signed-off-by: aalavandhann <[email protected]>

* refactored rollover condition

Signed-off-by: aalavandhann <[email protected]>

* removed paramter from rollover amt

Signed-off-by: aalavandhann <[email protected]>

* removed one time use variable

Signed-off-by: aalavandhann <[email protected]>

* removed zero price check

Signed-off-by: aalavandhann <[email protected]>

* added comment

Signed-off-by: aalavandhann <[email protected]>

* removed zero check

Signed-off-by: aalavandhann <[email protected]>

* added else if

Signed-off-by: aalavandhann <[email protected]>

* flipped rollover condition

Signed-off-by: aalavandhann <[email protected]>

* moved perp supply call into compute redemption amt method

Signed-off-by: aalavandhann <[email protected]>

* Renamed fee policy variable

Signed-off-by: aalavandhann <[email protected]>

* added fee initiailzier

Signed-off-by: aalavandhann <[email protected]>

* router preview deposit update return struct

Signed-off-by: aalavandhann <[email protected]>

* removed approve 0

Signed-off-by: aalavandhann <[email protected]>

* added back perp rollover zero price check for safety

Signed-off-by: aalavandhann <[email protected]>

* router assumming bond has only 2 tranches

Signed-off-by: aalavandhann <[email protected]>

* fee policy update, dr bounds

Signed-off-by: aalavandhann <[email protected]>

* moved rollover vault

Signed-off-by: aalavandhann <[email protected]>

* vault init cleanup

Signed-off-by: aalavandhann <[email protected]>

* minUnderlyingBal check

Signed-off-by: aalavandhann <[email protected]>

* removed address(0) check in updateFeePolicy

Signed-off-by: aalavandhann <[email protected]>

* non-reentrant transferERC20

Signed-off-by: aalavandhann <[email protected]>

* removed virtual updateKeeper

Signed-off-by: aalavandhann <[email protected]>

* removed deployedAmt from deploy

Signed-off-by: aalavandhann <[email protected]>

* rollover typo fix

Signed-off-by: aalavandhann <[email protected]>

* vault sync refactor

Signed-off-by: aalavandhann <[email protected]>

* rollover gas optimizaiton, removed storage read for

Signed-off-by: aalavandhann <[email protected]>

* rollover performs tranche cleanup

Signed-off-by: aalavandhann <[email protected]>

* made MAX_DEPLOYED_COUNT uint8

Signed-off-by: aalavandhann <[email protected]>

* recover comment fix

Signed-off-by: aalavandhann <[email protected]>

* vault deposit/redeem return zero instead of reverting

Signed-off-by: aalavandhann <[email protected]>

* renamed totalSupply_ to noteSupply

Signed-off-by: aalavandhann <[email protected]>

* removed whenNotPaused from recover and redeem

Signed-off-by: aalavandhann <[email protected]>

* using safeTransfer for transfer

Signed-off-by: aalavandhann <[email protected]>

* removed _enforceVaultComposition

Signed-off-by: aalavandhann <[email protected]>

* removed MIN_SWAP_UNITS check

Signed-off-by: aalavandhann <[email protected]>

* min underlying perc in vault

Signed-off-by: aalavandhann <[email protected]>

* renamed perp and vault share fee variables

Signed-off-by: aalavandhann <[email protected]>

* vault get tvl cleanup

Signed-off-by: aalavandhann <[email protected]>

* tranche helpers cleanup

Signed-off-by: aalavandhann <[email protected]>

* removed deployed count and deployed at

Signed-off-by: aalavandhann <[email protected]>

* comment update

Signed-off-by: aalavandhann <[email protected]>

* assuming bond has only two tranches, thus bond-tranches data structure has fixed len arrays

Signed-off-by: aalavandhann <[email protected]>

* increased vault's dust amt

Signed-off-by: aalavandhann <[email protected]>

* meld perps style change

Signed-off-by: aalavandhann <[email protected]>

* vault comment fix

Signed-off-by: aalavandhann <[email protected]>

* removed comment vault

n

Signed-off-by: aalavandhann <[email protected]>

* vault using cached variable

Signed-off-by: aalavandhann <[email protected]>

* cleaned up perp mint estimation, added comments

Signed-off-by: aalavandhann <[email protected]>

* sync asset made into online fn

Signed-off-by: aalavandhann <[email protected]>

* removed bond duration method

Signed-off-by: aalavandhann <[email protected]>

* bond helpers using return val for getSeniorTranche

Signed-off-by: aalavandhann <[email protected]>

* fixed sigmoid condition

Signed-off-by: aalavandhann <[email protected]>

* Ran linter

Signed-off-by: aalavandhann <[email protected]>

* removed bond/tranche double check in favor of one check for bond validity

Signed-off-by: aalavandhann <[email protected]>

* fixed bug, with underlying perc calc after swap

Signed-off-by: aalavandhann <[email protected]>

* using cached value of reserve count

Signed-off-by: aalavandhann <[email protected]>

* perp: renamed rollout condition and fixed order of checks in

Signed-off-by: aalavandhann <[email protected]>

* removed duplicate comment in bond helpers

Signed-off-by: aalavandhann <[email protected]>

* perp enforcing max len for reserve and using uint8 for reserve len,  returning only tokens up for rollover

Signed-off-by: aalavandhann <[email protected]>

* fee policy cleanup

Signed-off-by: aalavandhann <[email protected]>

* perp defensive check on rollover

Signed-off-by: aalavandhann <[email protected]>

* vault enforcing liquidity constraints on both swap functions

Signed-off-by: aalavandhann <[email protected]>

* bond helper minor style fix

Signed-off-by: aalavandhann <[email protected]>

* updated testcases, back to full coverage

Signed-off-by: aalavandhann <[email protected]>

* vault: removed redundant sync with redeem tranches on meld and rollover

Signed-off-by: aalavandhann <[email protected]>

* fixed router bug, with undeployed bonds

Signed-off-by: aalavandhann <[email protected]>

* removed returns in bond helper

Signed-off-by: aalavandhann <[email protected]>

* Fee delta update

Signed-off-by: aalavandhann <[email protected]>

* updated variable name

Signed-off-by: aalavandhann <[email protected]>

* updated tasks with the new interface

Signed-off-by: aalavandhann <[email protected]>

* testnet deployment

Signed-off-by: aalavandhann <[email protected]>

* Pre release fixes (#199)

* using fixed perc fees for ops

* removed some unreachable code

* added test case to check for dust recovery

* removed vault deployment fee

* pve002 router validation

* pve004 preview deposit mature bond handling

* Removed from paramters from asset transfer wrapper functions and using msg.sender directly, also using msg.sender instead of _msgSender

* ran linter

* updated unit tests

* pve001 updating constructors

* pve002-3 bond issuer tranche granularity check

* Removed redundant computeDeviationRatio method from fee policy

* openzeppelin defender report informational issues

* Reverted pve002

* deployed to sepolia testnet (#201)

Signed-off-by: aalavandhann <[email protected]>

* fixed liner issue

Signed-off-by: aalavandhann <[email protected]>

* V2 final updates (#204)

* updated sigmoid bound for 20% yearly rollover rate

* updated LICENSE

Signed-off-by: aalavandhann <[email protected]>

* natspec comment updates for variable reanmes

Signed-off-by: aalavandhann <[email protected]>

* moved hyper paramter controls to keeper

Signed-off-by: aalavandhann <[email protected]>

* a few more unit tests to improve coverage

Signed-off-by: aalavandhann <[email protected]>

* upgrade tasks

Signed-off-by: aalavandhann <[email protected]>

* v2 deployment

Signed-off-by: aalavandhann <[email protected]>

---------

Signed-off-by: aalavandhann <[email protected]>
Co-authored-by: Brandon Iles <[email protected]>
Co-authored-by: nms-7 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants