FinancialsVoteDocsDAO GraphExplore
← All proposals
    ←Previous#60#62Next→

    #61 Update Uni v3/v2 Deployment Process (March 2024)

    executed

    Payment Status

    Description

    Update Uni v3/v2 Deployment Process (March 2024)

    Authors: Uniswap Accountability Committee

    TLDR:

    • Today, Uniswap governance, via the timelock address, has the ability to declare a new v3/v2 deployment as official/canonical
    • The DAO has set a precedent for approving EVM-based deployments over the past 2 years
    • This proposal seeks to give the Uniswap Accountability Committee multisig agency over altering the v3-deployments.uniswap.eth & v2deployments.uniswap.eth subdomains
    • This will allow the Committee to edit these text records whenever a new v3/v2 deployment is complete without having to go through an onchain vote
    • To accommodate for this change, we are also proposing an alteration to the current deployment governance process (see “New Proposed Deployment Process” below) to increase efficiency
    • The DAO will retain the right to assign incentive distributions from the treasury to these deployments via an onchain vote
    • The DAO will maintain ownership of the primary domain, uniswap.eth, and thus have the ability to revoke the Committee's subdomain permissions through a governance vote–this assures proper checks and balances

    Background:

    Over the past two years, the DAO has approved numerous EVM-based deployments for Uniswap v3. There has only been one instance of a deployment proposal that did not pass the off-chain stage due to not meeting quorum: Fantom. We believe that this sets a precedent for optimistically acknowledging incoming EVM-based deployments as canonical. The same precedent can be set for v2 since there was a recent proposal to deploy v2 across all target chains with v3 in one fell swoop.

    The v3-deployments.uniswap.eth & v2deployments.uniswap.eth ENS subdomains act simply as records of the v3/v2 deployments that the DAO has “blessed”. From a legal as well as technical perspective, alterations to the subdomain don’t hold any weight–it’s merely a place onchain that the DAO can recognize v3/v2 deployments across various EVM chains. This way, there’s a public place to keep track of which deployments are official. Such recognition is important because it allows users and developers to ensure that the contracts they’re interacting with are representative of the real Uniswap (i.e. the Uniswap fork that has been approved by the DAO), thereby ensuring security and consistency across each fork.

    When the DAO currently approves deployments onchain, only the v3-deployments.uniswap.eth & v2deployments.uniswap.eth text records are being altered. The actual contract deployment is completed by a third party, like @GFXlabs. In fact, the deployment has to be completed prior to the onchain vote since the text record alterations requires the

    • The destination chain’s network number
    • Bridge sender contract address on mainnet associated with the deployment
    • UniswapV3Factory/UniswapV2Factory address on the destination chain

    Current Deployment Process:

    • If a chain wants to deploy Uniswap, they typically connect with either the Foundation, the Accountability Committee, a delegate, or any adjacent party
    • Anyone is able to author an RFC, whether it be a delegate, the destination chain themselves, or whoever else. That RFC is posted on the forum for a minimum of seven days to allow a discussion to transpire
    • A temperature check takes place, allowing the DAO to either approve or deny the deployment of Uni v3/v2 on the given chain
    • Once passed, the v3/v2 contracts are deployed on the destination chain–the deployer collaborates with an approved bridge provider if the EVM chain is not an L2 (i.e. doesn’t already have a canonical bridge)
    • The onchain vote takes place, recognizing the deployed contracts as official on the subdomain

    Our Proposal

    We are proposing to enable the Uniswap Accountability Committee multisig to alter the subdomains as soon as a deployment’s RFC passes the 7-day discussion period–given there are no major points of contention during the RFC phase. The RFC should give ample time to the DAO to make a decision regarding the deployment without having to partake in a 4+ week governance ordeal. And to make sure voters have a say in this process, we are including a 5-day challenge period that will be a part of the onboarding package temperature check–this will allow voters to voice their dissenting opinion regarding a deployment.

    Currently, the Uniswap DAO, more specifically the timelock address (0x1a9C8182C09F50C8318d769245beA52c32BE35BC) owns AND manages both subdomains. This proposal would make the Accountability Committee the manager of the subdomains. If at any time the DAO would like to alter the manager again or regain control, this can be done via an onchain vote since the timelock still owns the subdomains.

    New Proposed Deployment Process:

    Step 1

    • If a chain wants to deploy Uniswap, they typically connect with either the Foundation, the Accountability Committee, a delegate, or any adjacent party
    • Anyone is able to author an RFC, whether it be a delegate, the destination chain themselves, or whoever else. That RFC is posted on the forum for a minimum of seven days to allow a discussion to transpire
    • The deployer can either have the contracts deployed at this point or not–if the deployment is complete, then include the contracts in the RFC
    • If no issues arise in the RFC, then the deployment will be viewed as approved, and a 5-day challenge period will be rolled into the onboarding package snapshot vote

    Step 2 (Work for the Deployer and Accountability Committee)

    • If deployment hasn’t already been completed, then it must be done after the RFC phase
    • As soon as contracts are deployed and verified, ensuring that the bytecode of the deployed contracts matches the bytecode of the mainnet contracts, the Committee will comment on the RFC confirming that the contracts have been verified
    • The Committee will then hold a temperature check to see if there’s interest in deploying incentives on the new fork–this vote also acts as the challenge period
    • Once the snapshot is completed, and the vote is not subject to a majority veto, the Committee has the authority to write the relevant text to the subdomain
    • The Committee will comment on the RFC confirming that the subdomain has been properly updated
    • An onchain vote will then take place to send the selected amount of capital to the Committee multisig for distribution on the target chain

    Technical Implementation:

    The onchain proposal needs to include the function calls below to grant the Accountability Committee write permissions to the subdomains. The DAO will maintain ownership of the primary domain, uniswap.eth, and thus have the ability to revoke the Committee's permissions through a governance vote and establish checks and balances.

    For Uniswap v3 Subdomain:

    setOwner(

    node = 0x0b9638d2c5bd4528d603562a1fa1e734fe1b88e680f448d779531e9bc2b55f12,

    owner = 0x3B59C6d0034490093460787566dc5D6cE17F2f9C

    )

    For Uniswap v2 Subdomain:

    setOwner(

    node = 0x30e9fa72b4d7d40be0f8809d748497121d5f38ebf8700a7d2e303074e9ccf1a5,

    owner = 0x3B59C6d0034490093460787566dc5D6cE17F2f9C

    )

    Next Steps:

    The Accountability Committee will retroactively alter the subdomain text record for any deployments that are approved and haven't been included in the subdomains after the approval of this proposal. The Committee will also add the text for deployments that did not go through the formal governance process from the Uniswap Revitalization and Growth proposal.

    For42,808,435 100%
    Against17 0%
    Abstain2 0%
    Quorumreached

    Timeline

    1. Pending
    2. Active
       
      block 19,719,041 → 19,759,361
    3. Succeeded
       
    4. Queued
       
    5. Executed
       

    Votes (1,063)

    0x683a…6C02For · 5,252,257 UNI
    0x553F…2Ac2For · 5,000,195 UNI
    0x13BD…8548For · 3,877,026 UNI
    0x067b…4A76For · 3,101,452 UNI
    0x0703…961bFor · 3,001,010 UNI
    0xB933…8Dd1For · 2,504,181 UNI
    0x3FB1…4C8AFor · 2,501,101 UNI
    0xECC2…6AC9For · 2,501,022 UNI
    0xB49f…7948For · 2,500,509 UNI
    0xdC1F…E432For · 2,500,010 UNI
    0xE93D…E2b5For · 2,500,007 UNI
    0x212B…6DB5For · 2,500,000 UNI
    0xa6e8…Eef6For · 2,494,303 UNI
    0x8787…ea52For · 836,300 UNI
    0x1855…98baFor · 504,025 UNI
    0xAac3…0bcDFor · 412,959 UNI
    0xA5dF…d9b0For · 250,324 UNI
    0x1B68…eeaDFor · 250,021 UNI

    https://gov.uniswap.org/t/update-uni-v3-v2-deployment-process-march-2024/23468/7

    0xf955…c99aFor · 250,000 UNI
    0x0A0F…c2F6For · 46,241 UNI
    0x9F16…C8CFFor · 8,657 UNI
    0x801a…c7c1For · 7,016 UNI
    0x6f9B…8A1dFor · 3,270 UNI

    Vote for effective deployment management

    0x4032…945fFor · 2,572 UNI
    0x30FE…8cb0For · 949 UNI
    0x1106…9FdaFor · 402 UNI
    0xfb9b…489AFor · 280 UNI
    0x8C21…a717For · 167 UNI
    0xC208…dbc9For · 116 UNI
    0xED4A…150dFor · 106 UNI
    0xC34a…68C2For · 100 UNI
    0x0579…CA09For · 99 UNI
    0x0579…4048For · 97 UNI
    0x45eD…5C18For · 93 UNI
    0x2762…9406For · 77 UNI
    0xe3d2…7464For · 48 UNI
    0x1654…B4dAFor · 43 UNI
    0x035B…5830For · 37 UNI
    0x4F85…fB91For · 29 UNI
    0x71e2…0D9AFor · 28 UNI
    0xa829…4153For · 28 UNI
    0xc58D…FB2cFor · 27 UNI
    0xcD01…d4d7For · 25 UNI
    0x9cEA…EE3cFor · 20 UNI
    0xd6e9…3432For · 20 UNI
    0xdaab…eC98For · 20 UNI
    0xA84C…7821For · 20 UNI

    lfg

    0xD8de…aE41For · 17 UNI
    0xAfBC…D38DFor · 15 UNI
    0xb44a…9507For · 13 UNI

    Voting timeline

    Proposal actions

    Caller
    Timelock
    0x1a9C…35BC
    →
    setOwner→
    ENSRegistry
    0x0000…2e1e
    owner→
    uac.eth
    0x3B59…2f9C
    ▶node
    nodebytes32
    0x0b9638d2c5bd4528d603562a1fa1e734fe1b88e680f448d779531e9bc2b55f12
    setOwner→
    ENSRegistry
    0x0000…2e1e
    owner→
    uac.eth
    0x3B59…2f9C
    ▶node
    nodebytes32
    0x30e9fa72b4d7d40be0f8809d748497121d5f38ebf8700a7d2e303074e9ccf1a5