Open dimpar opened 3 years ago
Some remarks:
Regarding vault names, Yearn has a naming convention. For Curve vault, the name should be: Curve tBTCv2 Pool yVault
and for Saddle vault: Saddle tBTCv2 Pool yVault
.
In section Deploy smart contracts
:
CurveVoterProxyStrategy
in _vault
parameter we should pass the crvTBTCv2
vault addressConvexStrategy
in _vault
parameter we should pass the crvTBTCv2
vault addressSaddleStrategy
in _vault
parameter we should pass the saddleTBTCv2
vault addressAt the end of Deploy smart contracts
section we should add strategies to their vaults using addStrategy
method.
In Post-deploy actions
section we should add a point about running our own keeper bot or adding our strategies to the Keep3r network.
I see Technical Wallet Team and Community Multisig are mentioned in the issue description but I am not sure what would be their responsibilities. From the task list I see:
- determine our governance address (0x..). This address can be probably used as a guardian and rewards puller
- determine our governance address (0x..). This address can be probably used as a guardian and rewards puller
What governance responsibilities should be covered?
I see Technical Wallet Team and Community Multisig are mentioned in the issue description but I am not sure what would be their responsibilities.
This table was copied from the Coverage Pool v1.0.0 deployment scenario and I assumed that's a standard process of how we deploy to mainnet
and left TBD to determine actual addresses if we need it. I wasn't sure of the purpose of each wallet and was hoping you can shed some light on it.
What governance responsibilities should be covered?
Governance would be able to call functions defined in our strategy contracts:
But all contracts that are implemented by us inherit from the BaseStrategy.sol which is a part of Yearn project and is in their repo. There are multiple functions there that can be called by governance like setting a strategiest, setting a keeper, doing a health check etc.
I made a closer look at the governance addresses we need to use and here are the conclusions:
Vaults
According to that doc we need to deploy the vault using Yearn's Brownie script. Regarding addresses we should:
The current tBTC v1 vault has the same roles assignment.
Strategies
In this case we can first deploy the strategies using our Deployment account. Once we are ready we can transfer roles to the following addresses (it doesn't have to be done immediately):
Refs: https://github.com/keep-network/tbtc-v2/issues/7
Prerequisites
tBTC v2
0x..
)Curve pool
crvTBTCv2 vault
) (0x..
)0x..
). This address can be probably used as aguardian
andrewards puller
Curve tBTCv2 Pool yVault
crvTBTCv2
0
for newest Vault's versiontbtcCurvePoolDepositor
)tbtcCurvePoolGauge
)tbtcCurvePoolGaugeReward
optional)tbtcConvexRewardPoolId
)Saddle pool
0x..
)saddleTBTCv2 vault
) (0x..
)guardian
andrewards puller
Saddle tBTCv2 Pool yVault
saddleTBTCv2
0
for newest Vault's versiontbtcSaddlePoolSwap
) (0x..
)tbtcSaddleLPRewards
) (0x..
)setGated(false)
. Otherwise only externally-owned accounts can callstake()
on it.Code
Deploy smart contracts
All steps done by Deployment Team
yearn/v1.0.0
in `keep-network/tbtc-v2yearn/v1.0.0
commit hashCurveVoterProxyStrategy
contract (address:0x...
) with the following parameters:_vault
:crvTBTCv2 vault
address_tbtcCurvePoolDepositor
:tbtcCurvePoolDepositor
address_tbtcCurvePoolGauge
:tbtcCurvePoolGauge
address_tbtcCurvePoolGaugeReward
:tbtcCurvePoolGaugeReward
address (optional, zero is valid value)addStrategy(CurveVoterProxyStrategy)
to thecrvTBTCv2
vault.ConvexStrategy
(address:0x...
) with the following parameters:_vault
:crvTBTCv2 vault
address_tbtcCurvePoolDepositor
:tbtcCurvePoolDepositor
address_tbtcConvexRewardPoolId
:tbtcConvexRewardPoolId
idaddStrategy(ConvexStrategy)
to thecrvTBTCv2
vault.SaddleStrategy
(address:0x...
) with the following parameters:_vault
:saddleTBTCv2 vault
address_tbtcSaddlePoolSwap
:_tbtcSaddlePoolSwap
address_tbtcSaddleLPRewards
:_tbtcSaddleLPRewards
addressaddStrategy(SaddleStrategy)
to thesaddleTBTCv2
vault.[ ] Vault and strategy Health check
Etherscan verification
All steps done by Deployment Team
CurveVoterProxyStrategy
contractConvexStrategy
contractSaddleStrategy
contractPost-deploy actions
saddleTBTCv2
?)Package publication
Done by Deployment Team
Release notes
Done by Deployment Team
yearn/v1.0.0
release notes inkeep-network/tbtc-v2