Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
ff43de1
add optimistic governance upgrade spell
tbrent Apr 28, 2026
86c30cf
explicitly document new stake requirement
tbrent May 6, 2026
d3d35e2
lock down optimistic selector data
tbrent May 6, 2026
9d685b7
ensure StakingVault is already setup to handout revenue after upgrade…
tbrent May 6, 2026
8456ff6
propagate caller through to deploySuccessorStakingVault deploymentNonce
tbrent May 6, 2026
9d6cdc0
Revert "ensure StakingVault is already setup to handout revenue after…
tbrent May 6, 2026
4d8969e
document revenue token limitation instead
tbrent May 6, 2026
987d3dc
compatibility with reserve-governor
tbrent May 6, 2026
a9b45b2
remove successor staking vault optimistic proposers
tbrent May 7, 2026
5489aa6
test BED/SMEL shared case
tbrent May 15, 2026
dad9642
hardcode proposal threshold / quorum
tbrent May 16, 2026
48c52f0
latest block; remove non-upgradeable DTFs
tbrent May 16, 2026
96c42fb
fork test ABX/MVTT10F
tbrent May 16, 2026
dad21b9
comments
tbrent May 16, 2026
7db1a6d
restrict upgrades to 4.0.0 and 5.0.0
tbrent May 16, 2026
3af3c07
check there is only 1 REBALANCE_MANAGER
tbrent May 16, 2026
f679e22
check old timelock is not BRAND_MANAGER/AUCTION_LAUNCHER
tbrent May 16, 2026
14f9d2f
check fee recipients excludes old governor/timelock
tbrent May 16, 2026
01b0a8c
hardcode v4 start rebalance selector
tbrent May 16, 2026
7df500b
require Folio is registered as reward token
tbrent May 16, 2026
929b758
add trading timelock checks
tbrent May 18, 2026
4695436
AUCTION_APPROVER -> AUCTION_LAUNCHER
tbrent May 18, 2026
c16d107
spell cast preconditions
tbrent May 19, 2026
b3e4bd5
upgradeFolio() assumptions
tbrent May 19, 2026
ce7c14a
retireOldStakingVault() assumptions
tbrent May 19, 2026
1bc933c
add optional fee intermediary
tbrent May 20, 2026
ec11346
reward half life to 1 week
tbrent May 20, 2026
e20c294
generic token jar checks
tbrent May 21, 2026
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
1 change: 1 addition & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ jobs:
env:
FORK_RPC_MAINNET: "https://eth-mainnet.g.alchemy.com/v2/${{ secrets.ALCHEMY_MAINNET_KEY }}"
FORK_RPC_BASE: "https://base-mainnet.g.alchemy.com/v2/${{ secrets.ALCHEMY_BASE_KEY }}"
FORK_RPC_BSC: "https://bnb-mainnet.g.alchemy.com/v2/${{ secrets.ALCHEMY_MAINNET_KEY }}"

extreme:
runs-on: ubuntu-latest
Expand Down
434 changes: 434 additions & 0 deletions contracts/spells/GovernanceSpell_04_17_2026.sol

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion foundry.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ memory_limit = 1073741824 # 1 GB

# Compiler Options
bytecode_hash = "none"
evm_version = "paris"
evm_version = "cancun"
optimizer = true
optimizer_runs = 200
solc_version = "0.8.28"
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"@openzeppelin/contracts-upgradeable": "5.1.0",
"@prb/math": "4.1.0",
"@reserve-protocol/trusted-fillers": "github:reserve-protocol/trusted-fillers#eabd9dbd60e8aaaec2c50db43742991e4cb55208",
"@reserve-protocol/reserve-governor": "github:reserve-protocol/reserve-governor#c2b17012567bafcb99b03d20f31d516fd5482f93",
"@reserve-protocol/reserve-governor": "github:reserve-protocol/reserve-governor#dc27a68463cec356ff18bbdd3d8edfe9b2534372",
"forge-std": "github:foundry-rs/forge-std#v1.14.0"
},
"devDependencies": {
Expand Down
42 changes: 5 additions & 37 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion remappings.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
forge-std/=node_modules/forge-std/src/
@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/
@reserve-protocol/trusted-fillers/=node_modules/@reserve-protocol/trusted-fillers/
@reserve-protocol/reserve-governor/=node_modules/@reserve-protocol/reserve-governor/
@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/
@prb/math/=node_modules/@prb/math/
utils/=test/utils/
Expand All @@ -14,4 +15,4 @@ utils/=test/utils/
@staking/=contracts/staking/
@deployer/=contracts/deployer/
@spells/=contracts/spells/
@periphery/=contracts/periphery/
@periphery/=contracts/periphery/
5 changes: 4 additions & 1 deletion test/base/BaseTest.sol
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,8 @@ abstract contract BaseTest is Script, Test {

enum ForkNetwork {
ETHEREUM,
BASE
BASE,
BSC
}

struct DeploymentData {
Expand Down Expand Up @@ -163,6 +164,8 @@ abstract contract BaseTest is Script, Test {
forkRpc = vm.envString("FORK_RPC_MAINNET");
} else if (target == ForkNetwork.BASE) {
forkRpc = vm.envString("FORK_RPC_BASE");
} else if (target == ForkNetwork.BSC) {
forkRpc = vm.envString("FORK_RPC_BSC");
}
}

Expand Down
Loading