You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, the StagedContractUpdates contract requires a block update boundary value on deployment. The block height boundary for coordinated updates will be known up to a week in advance; however, waiting until that value is known to deploy limits the amount of time developers have to stage their updates.
Suggested Solution
The contract should be refactored to support unknown block update (blockUpdateBoundary: UInt64?) value on deployment and current logic around that value should handle the optional.
Additionally, to better support delegated updates on Updaters configured before that value was known, the Delegatee.blockUpdateBoundary value should override the Updater.blockUpdateBoundary value on Delegatee.delegate. A setter will also need to be added for the Delegatee.blockUpdateBoundary so the value can be updated.
Any refactor should also consider that since the Delegatee holds a Capability on the Updater, the underlying Updater can be replaced, thus potentially breaking any assumptions about the the Updater.blockUpdateBoundary overridden on delegation. In short, attempting to execute Updater.update from the Delegatee should not result in a panic which would interrupt iteration on Delegatee.update
The text was updated successfully, but these errors were encountered:
Description
Currently, the
StagedContractUpdates
contract requires a block update boundary value on deployment. The block height boundary for coordinated updates will be known up to a week in advance; however, waiting until that value is known to deploy limits the amount of time developers have to stage their updates.Suggested Solution
The contract should be refactored to support unknown block update (
blockUpdateBoundary: UInt64?
) value on deployment and current logic around that value should handle the optional.Additionally, to better support delegated updates on Updaters configured before that value was known, the
Delegatee.blockUpdateBoundary
value should override theUpdater.blockUpdateBoundary
value onDelegatee.delegate
. A setter will also need to be added for theDelegatee.blockUpdateBoundary
so the value can be updated.Any refactor should also consider that since the
Delegatee
holds a Capability on theUpdater
, the underlyingUpdater
can be replaced, thus potentially breaking any assumptions about the theUpdater.blockUpdateBoundary
overridden on delegation. In short, attempting to executeUpdater.update
from theDelegatee
should not result in a panic which would interrupt iteration onDelegatee.update
The text was updated successfully, but these errors were encountered: