Skip to content

Commit

Permalink
Merge pull request #241 from balancer/silo-boosted
Browse files Browse the repository at this point in the history
Silo boosted
  • Loading branch information
danielmkm authored Jan 28, 2025
2 parents d588aee + a1ee655 commit 68f497b
Show file tree
Hide file tree
Showing 4 changed files with 113 additions and 0 deletions.
38 changes: 38 additions & 0 deletions erc4626/SiloV2Review.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# ERC4626 Vault: `Silo V2`

## Details
- Reviewed by: @franzns
- Checked by:
- Deployed at:
- [sonic:0x52Fc9E0a68b6a4C9b57b9D1d99fB71449A99DCd8](https://sonicscan.org/address/0x52Fc9E0a68b6a4C9b57b9D1d99fB71449A99DCd8#code)
- [sonic:0x87178fe8698C7eDa8aA207083C3d66aEa569aB98](https://sonicscan.org/address/0x87178fe8698C7eDa8aA207083C3d66aEa569aB98#code)
- Audits:
- [Silo V2 audits](https://docs.silo.finance/audits-and-tests)


## Context
All Silo V2 markets are ERC4626 vaults be default.

## Review Checklist: Bare Minimum Compatibility
Each of the items below represents an absolute requirement for the ERC4626. If any of these is unchecked, the the ERC4626 is unfit to use.

- [x] Tests based on the [balancer-v3-monorepo](https://github.com/balancer/balancer-v3-monorepo/tree/main/pkg/vault/test/foundry/fork) pass for the given ERC4626 vaults, which can be found [here](https://github.com/balancer/balancer-v3-erc4626-tests/blob/main/test/sonic/).
- [x] The required Vault implements the required operational ERC4626 Interface

## Review Checklist: Common Findings
Each of the items below represents a common red flag found in ERC4626 contracts.

If none of these is checked, then this might be a pretty great ERC4626! If any of these is checked, we must thoroughly elaborate on the conditions that lead to the potential issue. Decision points are not binary; a ERC4626 can be safe despite these boxes being checked. A check simply indicates that thorough vetting is required in a specific area, and this vetting should be used to inform a holistic analysis of the ERC4626.

### Administrative Privileges
- [ ] The ERC4626 Vault is upgradeable.

### Common Manipulation Vectors
- [ ] The ERC4626 Vault is susceptible to donation attacks.

## Additional Findings

## Conclusion
**Summary judgment: USABLE**

The outlined ERC4626 Vaults should work well with Balancer pools. The underlying contracts have been audited. Computation of totalAssets do not rely on `balanceOf()` calls and also their audits do not indicate any risk of a donation attack vector.
14 changes: 14 additions & 0 deletions erc4626/registry.json
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,20 @@
"summary": "safe",
"review": "./BeefyWrapperReview.md",
"warnings": []
},
"0x52Fc9E0a68b6a4C9b57b9D1d99fB71449A99DCd8": {
"asset": "0xCC0966D8418d412c599A6421b760a847eB169A8c",
"name": "SiloV2 solvBTC.bbn ID 13",
"summary": "safe",
"review": "./SiloV2Review.md",
"warnings": []
},
"0x87178fe8698C7eDa8aA207083C3d66aEa569aB98": {
"asset": "0x541FD749419CA806a8bc7da8ac23D346f2dF8B77",
"name": "SiloV2 solvBTC ID 13",
"summary": "safe",
"review": "./SiloV2Review.md",
"warnings": []
}
},
"sepolia": {
Expand Down
43 changes: 43 additions & 0 deletions rate-providers/SiloWrappedRateprovider.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Rate Provider: `ERC4626RateProvider`

## Details
- Reviewed by: @franzns
- Checked by:
- Deployed at:
- [sonic:0x78557d8a83fe7c6d9f9983d00e5c0e08cc3335e6](https://sonicscan.org/address/0x78557d8a83fe7c6d9f9983d00e5c0e08cc3335e6#code)
- [sonic:0x9d2d4351c1b3718d7a65ef21f54c86c665964670](https://sonicscan.org/address/0x9d2d4351c1b3718d7a65ef21f54c86c665964670#code)
- Audits:
- [Silo V2 audits](https://docs.silo.finance/audits-and-tests)

## Context
The ERC4626 Rate Provider fetches the rate of the Silo V2 Market. The rate provider was created using the ERC4626 Rateprovider factory which calls convertToAssets on the ERC4626 to expose the rate.

## Review Checklist: Bare Minimum Compatibility
Each of the items below represents an absolute requirement for the Rate Provider. If any of these is unchecked, the Rate Provider is unfit to use.

- [x] Implements the [`IRateProvider`](https://github.com/balancer/balancer-v2-monorepo/blob/bc3b3fee6e13e01d2efe610ed8118fdb74dfc1f2/pkg/interfaces/contracts/pool-utils/IRateProvider.sol) interface.
- [x] `getRate` returns an 18-decimal fixed point number (i.e., 1 == 1e18) regardless of underlying token decimals.

## Review Checklist: Common Findings
Each of the items below represents a common red flag found in Rate Provider contracts.

If none of these is checked, then this might be a pretty great Rate Provider! If any of these is checked, we must thoroughly elaborate on the conditions that lead to the potential issue. Decision points are not binary; a Rate Provider can be safe despite these boxes being checked. A check simply indicates that thorough vetting is required in a specific area, and this vetting should be used to inform a holistic analysis of the Rate Provider.

### Administrative Privileges
- [ ] The Rate Provider is upgradeable (e.g., via a proxy architecture or an `onlyOwner` function that updates the price source address).

- [ ] Some other portion of the price pipeline is upgradeable (e.g., the token itself, an oracle, or some piece of a larger system that tracks the price).


### Oracles
- [ ] Price data is provided by an off-chain source (e.g., a Chainlink oracle, a multisig, or a network of nodes).

- [ ] Price data is expected to be volatile (e.g., because it represents an open market price instead of a (mostly) monotonically increasing price).

### Common Manipulation Vectors
- [ ] The Rate Provider is susceptible to donation attacks.

## Conclusion
**Summary judgment: SAFE**

The Rate Providers should work well with Balancer pools. The underlying contracts have been audited. Computation of totalAssets do not rely on `balanceOf()` calls and also their audits do not indicate any risk of a donation attack vector.
18 changes: 18 additions & 0 deletions rate-providers/registry.json
Original file line number Diff line number Diff line change
Expand Up @@ -2954,6 +2954,24 @@
"warnings": [""],
"factory": "0x00de97829d01815346e58372be55aefd84ca2457",
"upgradeableComponents": []
},
"0x78557d8a83fe7c6d9f9983d00e5c0e08cc3335e6": {
"asset": "0x52Fc9E0a68b6a4C9b57b9D1d99fB71449A99DCd8",
"name": "Silo bSolvBTC.bbn Rateprovider",
"summary": "safe",
"review": "./SiloWrappedRateprovider.md",
"warnings": [""],
"factory": "0x00de97829d01815346e58372be55aefd84ca2457",
"upgradeableComponents": []
},
"0x9d2d4351c1b3718d7a65ef21f54c86c665964670": {
"asset": "0x87178fe8698C7eDa8aA207083C3d66aEa569aB98",
"name": "Silo bSolvBTC Rateprovider",
"summary": "safe",
"review": "./SiloWrappedRateprovider.md",
"warnings": [""],
"factory": "0x00de97829d01815346e58372be55aefd84ca2457",
"upgradeableComponents": []
}
}
}

0 comments on commit 68f497b

Please sign in to comment.