Updating the Easy Track setups to allow DAI USDT USDC payments for Lido Contributors Group

TL;DR

This proposal is to optimize Lido Contributors Group’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, but it 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 payments to Lido Contributors Group committees (PML, ATC, RCC). Three Easy Track factories allow topping up the committees’ multisigs in DAI:

Problem Statement

For convenience, the Committees plan their budgets in USD.

USD- and stablecoin-nominated operations of Lido DAO used to be set up and maintained in DAI.

At the moment of writing, Aragon Agent holds 1,397,826 DAI, 2,245,134 USDT, and 366 USDC. With the Treasury Management Committee set up, the portfolio of stablecoins held in Lido DAO Treasury could change. The Committees will need to request from the Treasury not only DAI but also other stablecoins. 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 setup is currently going through an audit. The audit report by Oxorio will be shared in the comments section. On-chain voting will start after receiving the final report.

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 factories for PML, ATC, and RCC multisigs.

Single transfer permissions

And a few more words about the required changes for transfers in new tokens.

Easy Track uses EVMScriptExecutor contract to enact motions. The EVMScripExecutor was granted the Aragon ACL permissions to make token transfers through Aragon Finance app.
The current single transfer limits for the EVMScripExecutor are (forum post):

  • 1,000 ETH
  • 1,000 stETH
  • 5,000,000 LDO
  • 2,000,000 DAI

Since the new setups will transfer USDT and USDC, the subsequent on-chain voting will also have items intended to add permissions to transfer up to 2,000,000 USDT and 2,000,000 USDC to the existing limits.

6 Likes

New contracts have been successfully deployed and audited by Oxorio.

The addresses of the new contracts are:

  • AllowedTokensRegistry: 0x4AC40c34f8992bb1e5E856A448792158022551ca
    This contract contains a list of allowed tokens for withdrawal from the DAO Treasury to multisig.
    All three setups (PML, ATC, RCC) will use this contract for their operations.

image

[ getAllowedTokens method Response ]
address[] :
[[0x6B175474E89094C44Da98b954EedeAC495271d0F] # DAI
[0xdAC17F958D2ee523a2206206994597C13D831ec7] # USDT
[0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48] # USDC ]

3 Likes

Currently, there is an on-chain omnibus vote taking place.
Points 14-19 are dedicated to Upgrading the Easy Track setups for Lido Contributors group.

https://vote.lido.fi/vote/168

In case the vote is supported by the DAO:

  1. EVMScripExecutor will receive additional permission to transfer 2M USDT and 2M USDC in addition to existing limits per single transfer.

  2. Old DAI-only TopUpAllowedRecipients factories for PML, ATC, RCC will be removed from Easy Track.

  1. New contracts operating with multiple tokens (namely DAI, USDC, USDT) will be added to Easy Track.

The main phase will last until Dec 14, 2023 14:55 UTC.

Please, cast your vote. It will greatly help in optimizing operations for the Lido Contributors Group.

2 Likes

The previous vote did not reach quorum, so we have restarted it.
Points 14-19 are dedicated to Upgrading the Easy Track setups for Lido Contributors group.
https://vote.lido.fi/vote/169.
The main phase will last until Dec 20, 2023 15:36 UTC.

Don’t miss the opportunity to vote!

1 Like

The on-chain vote was restarted once again.
Points 13-20 are dedicated to replacing top-up factories for PML, ATC, RCC with stablecoins instead of DAI.
https://vote.lido.fi/vote/170
The main phase will last until January 18th, 4:24 PM UTC!
Please make sure to vote! :pray:

1 Like

The voting has been restarted one more time.
The main phase will last until January 25th, Thursday, 14:01.
Please vote! Lido DAO Voting UI

The on-chain vote achieved quorum and was executed! Thank you for taking part and casting your votes!

2 Likes