TL;DR
This proposal is to optimize LEGO’s multisig funding operations. It describes a new version of the Easy Track top-up setup of contracts. This version is an upgrade of the existing Easy Track factories with limits , which allows working with a list of tokens instead of a predetermined one.
Context
Currently, Lido DAO uses Easy Track motion setups with limits to make budgeted transfers to LEGO’s multisig. The Easy Track factory allow topping up the committee’s multisig in LDO and DAI:
- LDO TopUpAllowedRecipients (no changes proposed):
0x00caAeF11EC545B192f16313F53912E453c91458
- DAI TopUpAllowedRecipients (see proposed solution section):
0x0535a67ea2D6d46f85fE568B7EaA91Ca16824FEC
Problem Statement
For convenience, the Committee plans its budget in USD.
USD- and stablecoin-nominated operations of Lido DAO used to be set up and maintained in DAI.
With the Treasury Management Committee set up , the portfolio of stablecoins held in Lido DAO Treasury may change. Thus the Committee may require from the Treasury other stablecoins (eg. USDT, USDC, depending on the portfolio state). The problem is that this is only possible by deploying separate Easy Track setups separately for each token. But in this case, counting actual expenses made in various stablecoins towards the single limit becomes impossible.
Proposed solution
To maintain the steady flow of operations, Lido Contributors improved the existing Easy Track top-up setup to make stablecoin-nominated payments under the single onchain-maintained limit.
This setup of contracts works with a registry of tokens. The registry is defined during deployment and can only be changed through an on-chain vote in the future. The initial list of tokens will consist of DAI 0x6b175474e89094c44da98b954eedeac495271d0f, USDT 0xdac17f958d2ee523a2206206994597c13d831ec7, and USDC 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48.
The mechanism for checking limits remains the same: before creating and executing each motion, the contracts check whether expenses for the current period do not exceed the established limit. However, the new setup has an improvement: it checks whether the payout token is allowed (pre-placed in the registry) and normalizes the amount (converts it to eighteen digits in decimals).
Next steps
The new contract has been successfully deployed and audited by Oxorio.
The address of the new contract is:
- AllowedTokensRegistry:
0x4AC40c34f8992bb1e5E856A448792158022551ca
This contract contains a list of allowed tokens for withdrawal from the DAO Treasury to the multisig.
The new stablecoin-nominated setups will use AllowedRecipientsRegistry
contracts from the DAI setups. These contracts hold all limit and recipient parameters (limit, limit period, spent amount in the current period, allowed recipients registry). Thus, the transition will be seamless.
Addresses of new contracts will be shared in the comments under the post when they are deployed.
In the upcoming on-chain vote, new factories will replace the Easy Track DAI factory for LEGO multisig.