Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ This is a linear rate limit that increases over time with a maximum limit. This
Below are all stated trust assumptions for using this contract in production:
- The `DEFAULT_ADMIN_ROLE` is fully trusted, to be run by governance.
- The `RELAYER` role is assumed to be able to be fully compromised by a malicious actor. **This should be a major consideration during auditing engagements.**
- The logic in the smart contracts must prevent the movement of value anywhere outside of the ALM system of contracts.
- The logic in the smart contracts must prevent the movement of value anywhere outside of the ALM system of contracts. The exception for this is in asynchronous style integrations such as BUIDL, where `transferAsset` can be used to send funds to a whitelisted address. LP tokens are then asynchronously minted into the ALMProxy in a separate transaction.
- Any action must be limited to "reasonable" slippage/losses/opportunity cost by rate limits.
- The `FREEZER` must be able to stop the compromised `RELAYER` from performing more harmful actions within the max rate limits by using the `removeRelayer` function.
- A compromised `RELAYER` can perform DOS attacks. These attacks along with their respective recovery procedures are outlined in the `Attacks.t.sol` test files.
Expand Down
Binary file added audits/20250225-chainsecurity-audit.pdf
Binary file not shown.
Binary file added audits/20250227-cantina-audit.pdf
Binary file not shown.
6 changes: 5 additions & 1 deletion foundry.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ out = "out"
libs = ["lib"]
solc_version = '0.8.25'
optimizer = true
optimizer_runs = 200
optimizer_runs = 1
fs_permissions = [
{ access = "read", path = "./script/input/"},
{ access = "read-write", path = "./script/output/"}
Expand All @@ -14,6 +14,10 @@ evm_version = 'cancun'
[fuzz]
runs = 1000

[invariant]
runs = 1
depth = 100

[etherscan]
mainnet = { key = "${ETHERSCAN_API_KEY}" }
optimism = { key = "${OPTIMISMSCAN_API_KEY}" }
Expand Down
Loading
Loading