Committed: June 2, 2024
Beanstalk Community Multisig
LibGerminate
functionality from EBIP-15.Per the process outlined in the BCM Emergency Response Procedures, the BCM can take swift action to protect Beanstalk in the event of a bug or security vulnerability.
Since EBIP-15, when Earned Bean Deposits were Withdrawn or Transferred <2 gm
calls after being Planted, the user's Stalk and the system's total Deposited BDV were not properly decremented. This allowed users to retain the Stalk associated with Earned Bean Deposits post-Withdrawal.
The Convert and Enroot facets were not redeployed as part of EBIP-15, meaning that the balanceOfRoots
functions in those facets would continue to unintentionally revert when the product of the user's Stalk and Roots exceeded uint128
.
In TokenSilo._withdrawGerminating
, burn the Stalk associated with the Earned Bean Deposit and decrement the total Deposited BDV accordingly.
In LibSilo.transferStalkAndGerminatingStalk
, update checkForEarnedBeans
to return both the Germinating and Earned Beans portion of Stalk. This is done in order to fix the issue in TokenSilo._withdrawGerminating
.
Redeploy the Convert and Enroot facets with the updated balanceOfRoots
functions.
All changes were reviewed by Cyfrin prior to deployment.
The following SiloFacet
is removed from Beanstalk:
The following SiloFacet
is added to Beanstalk:
SiloFacet
Function ChangesName | Selector | Action | Type | New Functionality |
---|---|---|---|---|
claimPlenty |
0x45947ba9 |
Replace | Call | |
deposit |
0xf19ed6be |
Replace | Call | |
mow |
0x150d5173 |
Replace | Call | |
mowMultiple |
0x7d44f5bb |
Replace | Call | |
plant |
0x779b3c5c |
Replace | Call | |
safeBatchTransferFrom |
0x2eb2c2d6 |
Replace | Call | ✓ |
safeTransferFrom |
0xf242432a |
Replace | Call | ✓ |
transferDeposit |
0x081d77ba |
Replace | Call | ✓ |
transferDeposits |
0xc56411f6 |
Replace | Call | ✓ |
withdrawDeposit |
0xe348f82b |
Replace | Call | ✓ |
withdrawDeposits |
0x27e047f1 |
Replace | Call | ✓ |
The following SiloGettersFacet
is removed from Beanstalk:
The following SiloGettersFacet
is added to Beanstalk:
SiloGettersFacet
Function ChangesName | Selector | Action | Type | New Functionality |
---|---|---|---|---|
balanceOf |
0x00fdd58e |
Replace | View | |
balanceOfBatch |
0x4e1273f4 |
Replace | View | |
balanceOfDepositedBDV |
0xbc8514cf |
Replace | View | |
balanceOfEarnedBeans |
0x3e465a2e |
Replace | View | ✓ |
balanceOfEarnedStalk |
0x341b94d5 |
Replace | View | |
balanceOfFinishedGerminatingStalkAndRoots |
0xc063989e |
Replace | View | |
balanceOfGerminatingStalk |
0x838082b5 |
Replace | View | |
balanceOfGrownStalk |
0x8915ba24 |
Replace | View | |
balanceOfPlenty |
0x896651e8 |
Replace | View | |
balanceOfRainRoots |
0x69fbad94 |
Replace | View | |
balanceOfRoots |
0xba39dc02 |
Replace | View | ✓ |
balanceOfSop |
0xa7bf680f |
Replace | View | |
balanceOfStalk |
0x8eeae310 |
Replace | View | |
balanceOfYoungAndMatureGerminatingStalk |
0x0fb01e05 |
Replace | View | |
bdv |
0x8c1e6f22 |
Replace | View | |
getDeposit |
0x61449212 |
Replace | View | |
getDepositId |
0x98f2b8ad |
Replace | View | |
getEvenGerminating |
0x1ca5f625 |
Replace | View | |
getGerminatingRootsForSeason |
0x96e7f21e |
Replace | View | |
getGerminatingStalkAndRootsForSeason |
0x4118140a |
Replace | View | |
getGerminatingStalkForSeason |
0x9256dccd |
Replace | View | |
getGerminatingStem |
0xa953f06d |
Replace | View | |
getGerminatingStems |
0xe5b17f2a |
Replace | View | |
getGerminatingTotalDeposited |
0xc25a156c |
Replace | View | |
getGerminatingTotalDepositedBdv |
0x9b3ec513 |
Replace | View | |
getLastMowedStem |
0x7fc06e12 |
Replace | View | |
getLegacySeedsPerToken |
0xf5cb9097 |
Replace | View | |
getMowStatus |
0xdc25a650 |
Replace | View | |
getOddGerminating |
0x85167e51 |
Replace | View | |
getTotalDeposited |
0x0c9c31bd |
Replace | View | |
getTotalDepositedBDV |
0x9d6a924e |
Replace | View | |
getTotalGerminatingAmount |
0xb45ef2eb |
Replace | View | |
getTotalGerminatingBdv |
0x9dcf67f0 |
Replace | View | |
getTotalGerminatingStalk |
0x7d4a51cb |
Replace | View | |
getYoungAndMatureGerminatingTotalStalk |
0x5a8e63e3 |
Replace | View | |
grownStalkForDeposit |
0x3a1b0606 |
Replace | View | |
lastSeasonOfPlenty |
0xbe6547d2 |
Replace | View | |
lastUpdate |
0xcb03fb1e |
Replace | View | |
migrationNeeded |
0xc38b3c18 |
Replace | View | |
seasonToStem |
0x896ab1c6 |
Replace | View | |
stemStartSeason |
0xbc771977 |
Replace | View | |
stemTipForToken |
0xabed2d41 |
Replace | View | |
tokenSettings |
0xe923e8d4 |
Replace | View | |
totalEarnedBeans |
0xfd9de166 |
Replace | View | |
totalRoots |
0x46544166 |
Replace | View | |
totalStalk |
0x7b52fadf |
Replace | View |
The following ConvertFacet
is removed from Beanstalk:
The following ConvertFacet
is added to Beanstalk:
ConvertFacet
Function ChangesName | Selector | Action | Type | New Functionality |
---|---|---|---|---|
convert |
0xb362a6e8 |
Replace | Call | ✓ |
The following EnrootFacet
is removed from Beanstalk:
The following EnrootFacet
is added to Beanstalk:
EnrootFacet
Function ChangesName | Selector | Action | Type | New Functionality |
---|---|---|---|---|
enrootDeposit |
0x0b58f073 |
Replace | Call | ✓ |
enrootDeposits |
0x88fcd169 |
Replace | Call | ✓ |
None.
None.
Effective immediately upon commitment by the BCM, which has already happened.