# Transfer UDT and ETH to Base
This proposal will bridge the UDT and native ETH owned by the DAO
and transfer them to the new Unlock DAO Governor on Base.
These tokens have been bridged from Arbitrum to Mainnet in a previous proposal.
# Bring back ARB and UDT on Arbitrum to Mainnet
This proposal goal is to bring back ARB tokens and UDT on Arbitrum to mainnet. To do this it 1) swaps ARB for ETH 2) bridges ETH and UDT back to the timelock on mainnet.
To prevent splitting the tasks into multiple proposals, it relies on the `UnlockDAOArbitrumBridge` contract deployed on Arbitrum at the address 0x3b26D06Ea8252a73742d2125D1ACEb594ECEE5c6.
The proposal contains three separate calls to the Arbitrum Delayed Inbox Contract's `createRetryableTicket` function. Each call creates a `Retryable Ticket` (L1->L2 message) that will execute the corresponding transaction on Arbitrum:
1. First message: Transfer ARB tokens from the DAO's Arbitrum alias to the UnlockDAOArbitrumBridge contract
2. Second message: Transfer UDT tokens from the DAO's Arbitrum alias to the UnlockDAOArbitrumBridge contract
3. Third message: Execute a multicall on the UnlockDAOArbitrumBridge contract (0x3b26D06Ea8252a73742d2125D1ACEb594ECEE5c6) to:
- Call `swapAndBridgeArb`: Swap ARB tokens for ETH (with 2% slippage protection from historical values) and bridge ETH back to the timelock on mainnet
- Call `bridgeUdt`: Bridge UDT tokens back to mainnet timelock
### Current situation of DAO's Assets on Arbitrum
- ARB Balance: 17439.000000000000000003 ARB
- UDT Balance: 1553.388186908279503048 UDT
- DAO ALIAS Address (On Arbitrum): [0x28ffDfB0A6e6E06E95B3A1f928Dc4024240bD87c](https://arbiscan.io/address/0x28ffDfB0A6e6E06E95B3A1f928Dc4024240bD87c)
# Transfer USDC and ETH to Base
This proposal will bridge the USDC and Wrapped ETH owned by the DAO to Base and transfer them to the new UP Governor. In the process, the WETH will be unwrapped and send as native tokens.
# Exit UDT Uniswap positions
There are currently 3 positions owned by the DAO in the Uniswap UDT / WETH pool on mainnet. Liquidity for these positions is provided by the DAO treasury.
This proposal will result in exiting these positions by:
1) decreasing liquidity to zero on all these positions
2) collecting the UDT and WETH from the pools and transferring to the DAO timelock
3) burning the Uniswap position NFT
As noted in Step 2, once executed, all UDT and WETH tokens currently held in pools will be transferred back to the DAO's timelock.
You can check the current positions here: [638761](https://app.uniswap.org/nfts/asset/0xC36442b4a4522E871399CD717aBDD847Ab11FE88/638761), [663230](https://app.uniswap.org/nfts/asset/0xC36442b4a4522E871399CD717aBDD847Ab11FE88/663230), [694069](https://app.uniswap.org/nfts/asset/0xC36442b4a4522E871399CD717aBDD847Ab11FE88/694069) ).
Transfer cross-chain governance to the Base DAO
This proposal transfers the control of the cross-chain governance to the DAO on Base.
It contains two main actions:
1. transfer ownership of Unlock contract + proxy admin on mainnet to a relay multisig (that can recevie instructions from Base)
2. set the “authority source” of all multisig on destination chains to the DAO timelock on Base
After executing this proposal, the DAO on mainnet will have transferred control of the main Unlock contracts to the DAO on Base. Going forward, any cross-chain governance proposals will need to originate from the DAO on Base.
# Activate UDT/UP Swap Contract
This proposal will activate the swap contract that lets anyone swap between UDT and the upcoming UP Token.
As a reminder, every UDT can be swapped for 1,000 UP, and vice versa.
In technical terms, the goal of the proposal is to set the correct implementation of the UPSwap contract
to the existing proxy. We are using [OpenZeppelin's Transparent Upgradable Proxy pattern](https://docs.openzeppelin.com/upgrades).
This upgrade can only be triggered by the Unlock DAO.
The `UPSwap` contract ([source code](https://github.com/unlock-protocol/unlock/blob/master/smart-contracts/contracts/tokens/UP/UPSwap.sol)) has been reviewed by [Code4rena](https://code4rena.com/).
The contracts on Base::
- [UDT address on Base: 0xD7eA82D19f1f59FF1aE95F1945Ee6E6d86A25B96](https://basescan.org/address/0xD7eA82D19f1f59FF1aE95F1945Ee6E6d86A25B96)
- [The UPToken contract will be deployed at 0xaC27fa800955849d6D17cC8952Ba9dD6EAA66187](https://basescan.org/address/0xaC27fa800955849d6D17cC8952Ba9dD6EAA66187). This is empty for now, as the UP Token has not yet been deployed.
- [The UPSwap contract proxy is deployed at 0x12be7322070cFA75E2f001C6B3d6Ac8C2efEF5Ea](https://basescan.org/address/0x12be7322070cFA75E2f001C6B3d6Ac8C2efEF5Ea)
- [The UPSwap implementation 0x59DD472b1b6f4D777DbbeE1592D12C7BF85edc51](https://basescan.org/address/0x59DD472b1b6f4D777DbbeE1592D12C7BF85edc51)
Set UDT and SwapBurner in Unlock contract on Arbitrum, Base and Optimism
## Goal of the proposal
This proposal sets 1) the UDT address and 2) the Swap Burner contract address in the main Unlock factory contract on the following chains: Arbitrum,Base,Optimism.
## About this proposal
Now that UDT has been bridged to Arbitrum, Base and Optimism, the new address has to be set in the main Unlock contract for the tokens to be distributed or swap/burned. For that, we call the `configUnlock` function with the bridge UDT address as parameter (keeping other parameters untouched).
A `SwapBurner` helper contract has been deployed on all three chains and will be added as setting to the main Unlock contract. This will enable the “swap and burn” feature of fees collected by the protocol on these chains, following the deployment of bridged versions of UDT there.
## How it works
The proposal uses a cross-chain proposal pattern that, once passed, will send the calls to multiple chains at once. This pattern has been introduced and tested in a [previous proposal](https://www.tally.xyz/gov/unlock/proposal/1926572528290918174819693611122933562560576845671089759587616947457423587439).
## The calls
This DAO proposal contains 3 calls:
### Arbitrum (42161) 1 call
Changes sent to the Unlock contract at 0x1FF7e338d5E582138C46044dc238543Ce555C963
1. call `configUnlock` with the following parameters
- _udt: 0xd5d3aA404D7562d09a848F96a8a8d5D65977bF90
- _weth: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1
- _estimatedGasForPurchase: 200000
- _symbol: KEY
- _URI: https://locksmith.unlock-protocol.com/api/key/42161/
- _chainId: 42161
2. call `setSwapBurner(0x316A4650e70594FA3D947a43A237bEF427Bd80d6)` and set the [SwapBurner](https://arbiscan.io/address/0x316A4650e70594FA3D947a43A237bEF427Bd80d6) contract
### Base (8453) 1 call
Changes sent to the Unlock contract at 0xd0b14797b9D08493392865647384974470202A78
1. call `configUnlock` with the following parameters
- _udt: 0xD7eA82D19f1f59FF1aE95F1945Ee6E6d86A25B96
- _weth: 0x4200000000000000000000000000000000000006
- _estimatedGasForPurchase: 200000
- _symbol: KEY
- _URI: https://locksmith.unlock-protocol.com/api/key/8453/
- _chainId: 8453
2. call `setSwapBurner(0x440d9D4E66d39bb28FB58729Cb4D3ead2A595591)` and set the [SwapBurner](https://basescan.org/address/0x440d9D4E66d39bb28FB58729Cb4D3ead2A595591) contract
### Optimism (10) 1 call
Changes sent to the Unlock contract at 0x99b1348a9129ac49c6de7F11245773dE2f51fB0c
1. call `configUnlock` with the following parameters
- _udt: 0xc709c9116dBf29Da9c25041b13a07A0e68aC5d2D
- _weth: 0x4200000000000000000000000000000000000006
- _estimatedGasForPurchase: 200000
- _symbol: KEY
- _URI: https://locksmith.unlock-protocol.com/api/key/10/
- _chainId: 10
2. call `setSwapBurner(0xd8250925527e769d90C6F2Fc55384B9110f26b62)` and set the [SwapBurner](https://optimistic.etherscan.io/address/0xd8250925527e769d90C6F2Fc55384B9110f26b62) contract
The Unlock Protocol Team
Set Uniswap oracles for UDT and most used ERC20 tokens
## Goal of the proposal
This proposal sets Uniswap oracle in Unlock factory contracts across the following chains: Optimism,Polygon,Base,Arbitrum.
The goal is twofold: 1) enable the distribution of UDT for referrers when buying keys and 2) better calculation of the Gross Network Product (GNP) by taking into accounts the most commonly used tokens.
## About this proposal
On each chain, wrappers for Uniswap oracle contracts have been deployed. An oracle is used to guess the current exchange rate of a specific token pair (for instance ETH/USDC).
The same oracle contract can be used for any pairs, with the limitation that there needs to be an existing / active Uniswap pool for that pair. Three different contracts are used to query the rate for the three tiers of [Uniswap pool fees](https://docs.uniswap.org/concepts/protocol/fees). Fee amounts are hundredths of the basis point so 100 fee unit is 0.01%, 500 is 0.05%, and 3000 is 0.3%.
For each token, the working oracle is selected and added to the Unlock contract
using the `setOracle` function.
## How it works
The proposal uses a cross-chain proposal pattern that, once passed, will send the calls to multiple chains at once. This pattern has been introduced and tested in a [previous proposal](https://www.tally.xyz/gov/unlock/proposal/1926572528290918174819693611122933562560576845671089759587616947457423587439).
Here, the calls for each chain have been packed with Gnosis Multicall contract to be executed at once on the destination chain.
## The calls
This DAO proposal contains 11 calls:
### Ethereum Mainnet (1) 7 calls
- Oracle for BAT (0x0D8775F648430679A709E98d2b0Cb6250d2887EF)
`setOracle(0x0D8775F648430679A709E98d2b0Cb6250d2887EF,0x584c5af22DB79a13F4Fb45c66E0ff2311D58d9B2)` (fee: 3000)
- Oracle for POINTS (0xd7C1EB0fe4A30d3B2a846C04aa6300888f087A5F)
`setOracle(0xd7C1EB0fe4A30d3B2a846C04aa6300888f087A5F,0x584c5af22DB79a13F4Fb45c66E0ff2311D58d9B2)` (fee: 3000)
- Oracle for LPT (0x58b6A8A3302369DAEc383334672404Ee733aB239)
`setOracle(0x58b6A8A3302369DAEc383334672404Ee733aB239,0x584c5af22DB79a13F4Fb45c66E0ff2311D58d9B2)` (fee: 3000)
- Oracle for SHIB (0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE)
`setOracle(0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE,0x2e5F6B31d100C527B782e26953D9509C591aC41d)` (fee: 500)
- Oracle for LINK (0x514910771AF9Ca656af840dff83E8264EcF986CA)
`setOracle(0x514910771AF9Ca656af840dff83E8264EcF986CA,0x2e5F6B31d100C527B782e26953D9509C591aC41d)` (fee: 500)
- Oracle for UNI (0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984)
`setOracle(0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984,0x2e5F6B31d100C527B782e26953D9509C591aC41d)` (fee: 500)
- Oracle for BNB (0xB8c77482e45F1F44dE1745F52C74426C631bDD52)
`setOracle(0xB8c77482e45F1F44dE1745F52C74426C631bDD52,0x584c5af22DB79a13F4Fb45c66E0ff2311D58d9B2)` (fee: 3000)
### Optimism (10) 8 calls (packed in a single multicall)
- Oracle for USDC (0x7F5c764cBc14f9669B88837ca1490cCa17c31607)
`setOracle(0x7F5c764cBc14f9669B88837ca1490cCa17c31607,0xa55F8Ba16C5Bb580967f7dD94f927B21d0acF86c)` (fee: 100)
- Oracle for USDC (0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85)
`setOracle(0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85,0xa55F8Ba16C5Bb580967f7dD94f927B21d0acF86c)` (fee: 100)
- Oracle for USDT (0x94b008aA00579c1307B0EF2c499aD98a8ce58e58)
`setOracle(0x94b008aA00579c1307B0EF2c499aD98a8ce58e58,0xa55F8Ba16C5Bb580967f7dD94f927B21d0acF86c)` (fee: 100)
- Oracle for DAI (0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1)
`setOracle(0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1,0xa55F8Ba16C5Bb580967f7dD94f927B21d0acF86c)` (fee: 100)
- Oracle for WLD (0xdC6fF44d5d932Cbd77B52E5612Ba0529DC6226F1)
`setOracle(0xdC6fF44d5d932Cbd77B52E5612Ba0529DC6226F1,0xafF14D23630d5A4BF5e36e52847bE593F0f87672)` (fee: 500)
- Oracle for OP (0x4200000000000000000000000000000000000042)
`setOracle(0x4200000000000000000000000000000000000042,0xafF14D23630d5A4BF5e36e52847bE593F0f87672)` (fee: 500)
- Oracle for WBTC (0x68f180fcCe6836688e9084f035309E29Bf0A2095)
`setOracle(0x68f180fcCe6836688e9084f035309E29Bf0A2095,0xa55F8Ba16C5Bb580967f7dD94f927B21d0acF86c)` (fee: 100)
- Oracle for UDT (0xc709c9116dBf29Da9c25041b13a07A0e68aC5d2D)
`setOracle(0xc709c9116dBf29Da9c25041b13a07A0e68aC5d2D,0x1dA6c13515362B42ACb1Ad24a713f74f925F3AEB)` (fee: 3000)
### Polygon (137) 6 calls (packed in a single multicall)
- Oracle for WETH (0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619)
`setOracle(0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619,0xfA3F427d2691ce680f96E6916a9Dac6c9042CBd2)` (fee: 500)
- Oracle for DAI (0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063)
`setOracle(0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063,0x8c0AC149FabEeC9b759a43fC7d301B1a1D8DE0d0)` (fee: 100)
- Oracle for USDT (0xc2132D05D31c914a87C6611C10748AEb04B58e8F)
`setOracle(0xc2132D05D31c914a87C6611C10748AEb04B58e8F,0xfA3F427d2691ce680f96E6916a9Dac6c9042CBd2)` (fee: 500)
- Oracle for USDC (0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359)
`setOracle(0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359,0xfA3F427d2691ce680f96E6916a9Dac6c9042CBd2)` (fee: 500)
- Oracle for USDC (0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174)
`setOracle(0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174,0xfA3F427d2691ce680f96E6916a9Dac6c9042CBd2)` (fee: 500)
- Oracle for IXT (0xE06Bd4F5aAc8D0aA337D13eC88dB6defC6eAEefE)
`setOracle(0xE06Bd4F5aAc8D0aA337D13eC88dB6defC6eAEefE,0x86399725a83bB14C47bB5ce8311Ed25378BAa162)` (fee: 3000)
### Base (8453) 4 calls (packed in a single multicall)
- Oracle for USDbC (0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA)
`setOracle(0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA,0xA8BB5AF09B599794136B14B112e137FAf83Acf1f)` (fee: 500)
- Oracle for USDC (0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913)
`setOracle(0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x2411336105D4451713d23B5156038A48569EcE3a)` (fee: 100)
- Oracle for DEGEN (0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed)
`setOracle(0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed,0xA8BB5AF09B599794136B14B112e137FAf83Acf1f)` (fee: 500)
- Oracle for UDT (0xD7eA82D19f1f59FF1aE95F1945Ee6E6d86A25B96)
`setOracle(0xD7eA82D19f1f59FF1aE95F1945Ee6E6d86A25B96,0xfa7AC1c24339f629826C419eC95961Df58563438)` (fee: 3000)
### Arbitrum (42161) 5 calls (packed in a single multicall)
- Oracle for USDC (0xaf88d065e77c8cC2239327C5EDb3A432268e5831)
`setOracle(0xaf88d065e77c8cC2239327C5EDb3A432268e5831,0x2D11eEf659801cc13ADAde21667af332E77ca9AD)` (fee: 500)
- Oracle for USDT (0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9)
`setOracle(0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9,0x1dA6c13515362B42ACb1Ad24a713f74f925F3AEB)` (fee: 100)
- Oracle for WBTC (0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f)
`setOracle(0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f,0x2D11eEf659801cc13ADAde21667af332E77ca9AD)` (fee: 500)
- Oracle for ARB (0x912CE59144191C1204E64559FE8253a0e49E6548)
`setOracle(0x912CE59144191C1204E64559FE8253a0e49E6548,0x1dA6c13515362B42ACb1Ad24a713f74f925F3AEB)` (fee: 100)
- Oracle for UDT (0xd5d3aA404D7562d09a848F96a8a8d5D65977bF90)
`setOracle(0xd5d3aA404D7562d09a848F96a8a8d5D65977bF90,0xa55F8Ba16C5Bb580967f7dD94f927B21d0acF86c)` (fee: 3000)
Onwards !
The Unlock Protocol Team
Upgrade protocol: switch to Unlock v13 and PublicLock v14
## Goal of the proposal
This is a proposal for an upgrade of the core Unlock Protocol smart contracts - with the new Unlock Version (v13) and PublicLock version (v14).
## About the upgrade
This upgrade includes improved mechanics for UDT token governance, several improvements in existing features, gas optimisations and bug fixes. The main novelty is the new “swap and burn” feature that will allow fees collected by the protocol to directly decrease the supply of UDT in circulation. A `SwapBurner` helper contract has been deployed on mainnet and polygon and will added as setting to the main Unlock contract on both chains.
## A cross-chain proposal
The proposal uses a cross-chain proposal pattern that, once passed, will deploy the upgrade on multiple chains at once. This pattern has been introduced and tested in a [previous proposal](https://www.tally.xyz/gov/unlock/proposal/1926572528290918174819693611122933562560576845671089759587616947457423587439).
## The calls
There are 20 contract calls in this proposals. All calls are sent to the Connext bridge at 0x8898B472C54c31894e3B9bb83cEA802a5d0e63C6 on mainnet, except the 3 mainnet ones that are directly targeted at the Unlock factory contract. The Connext bridge will dispatch the relevant calls to each destination chain.
### Ethereum (chain 1)
- `upgrade(0xe79B93f8E22676774F2A8dAd469175ebd00029FA,0xd8250925527e769d90C6F2Fc55384B9110f26b62)` - ProxyAdmin at 0xA2D9BC1ffc560Cc6F21aC09E317A3186AC1B1db8
- `addLockTemplate(0xc9577b38ADA2B1b251EE99e54cC399027d547B68,14)` - Unlock at 0xe79B93f8E22676774F2A8dAd469175ebd00029FA
- `setLockTemplate(0xc9577b38ADA2B1b251EE99e54cC399027d547B68)` - Unlock at 0xe79B93f8E22676774F2A8dAd469175ebd00029FA
- `setSwapBurner(0x316A4650e70594FA3D947a43A237bEF427Bd80d6)` - Unlock at 0xe79B93f8E22676774F2A8dAd469175ebd00029FA
### Optimism (chain 10)
- `upgrade(0x99b1348a9129ac49c6de7F11245773dE2f51fB0c,0x508619074f542b6544c5835f260CC704E988cf65)` - ProxyAdmin at 0x225a86073C75f704bFfC177d6D71CB2df5648393
- `addLockTemplate(0x530Ff2dAED410cA7D70C25f18dc770f106201151,14)` - Unlock at 0x99b1348a9129ac49c6de7F11245773dE2f51fB0c
- `setLockTemplate(0x530Ff2dAED410cA7D70C25f18dc770f106201151)` - Unlock at 0x99b1348a9129ac49c6de7F11245773dE2f51fB0c
### BNB Chain (chain 56)
- `upgrade(0xeC83410DbC48C7797D2f2AFe624881674c65c856,0xfe9fD6af67E48D9f05Aa88679Ac294E3f28532eE)` - ProxyAdmin at 0xff5694b15bB25A577c139b4a5089856D9F89c065
- `addLockTemplate(0xA8BB5AF09B599794136B14B112e137FAf83Acf1f,14)` - Unlock at 0xeC83410DbC48C7797D2f2AFe624881674c65c856
- `setLockTemplate(0xA8BB5AF09B599794136B14B112e137FAf83Acf1f)` - Unlock at 0xeC83410DbC48C7797D2f2AFe624881674c65c856
### Gnosis Chain (chain 100)
- `upgrade(0x1bc53f4303c711cc693F6Ec3477B83703DcB317f,0x24BF5517Ecc83caB64478Ab3D69950aA1567eB89)` - ProxyAdmin at 0x621a54927D54423826A9f6dc756146EcFCd5aca7
- `addLockTemplate(0xeAd6d1877452383ab5F74c689b6C3d0538Fd3008,14)` - Unlock at 0x1bc53f4303c711cc693F6Ec3477B83703DcB317f
- `setLockTemplate(0xeAd6d1877452383ab5F74c689b6C3d0538Fd3008)` - Unlock at 0x1bc53f4303c711cc693F6Ec3477B83703DcB317f
### Polygon (chain 137)
- `upgrade(0xE8E5cd156f89F7bdB267EabD5C43Af3d5AF2A78f,0x4132f269168375DBf7DcDb2cfEA348F453FD4B40)` - ProxyAdmin at 0x016c3134d7760004F6552605a68763723Fe15cD8
- `addLockTemplate(0x8231d6fD0221C01FCAc5827EdD20D1aeC28EeBe3,14)` - Unlock at 0xE8E5cd156f89F7bdB267EabD5C43Af3d5AF2A78f
- `setLockTemplate(0x8231d6fD0221C01FCAc5827EdD20D1aeC28EeBe3)` - Unlock at 0xE8E5cd156f89F7bdB267EabD5C43Af3d5AF2A78f
- `setSwapBurner(0x9B538FE47e7BE0F5D10F9dD277F63B27b5a9c69f)` - Unlock at 0xE8E5cd156f89F7bdB267EabD5C43Af3d5AF2A78f
### Arbitrum (chain 42161)
- `upgrade(0x1FF7e338d5E582138C46044dc238543Ce555C963,0xe49f5FD63cD7ec130B07dad30f068CC08F201e1e)` - ProxyAdmin at 0x604fA8712E61fe65db326F97905Efcb087C631Cc
- `addLockTemplate(0x04664b4290fa1F4001ED25d9576f7C2d980aC64d,14)` - Unlock at 0x1FF7e338d5E582138C46044dc238543Ce555C963
- `setLockTemplate(0x04664b4290fa1F4001ED25d9576f7C2d980aC64d)` - Unlock at 0x1FF7e338d5E582138C46044dc238543Ce555C963
Onwards !
The Unlock Protocol Team
Migrating the remaining amount of UDT/WETH Liquidity Position from Uniswap v2 pool
### Goal of the proposal
This proposal aims at moving the remaining amount (100%) of the liquidity tokens currently owned by the DAO in [Uniswap V2 UDT/WETH pool](https://etherscan.io/address/0x9cA8AEf2372c705d6848fddA3C1267a7F51267C1) to a [multisig](https://etherscan.io/address/0xc3F2bcBE6fB42faC83dd8a42893C6c0B3809e070) owned by trustees . This transfer is a necessary step towards the end goal: migrate the current V2 liquidty position to the UDT/WETH Uniswap v3 pool (without risking a sandwich attack during the migration).
### Current situation of the UDT/WETH V2 pool
Address: 0x9cA8AEf2372c705d6848fddA3C1267a7F51267C1
#### DAO's liquidity tokens in V2 pool
- total : 85116245781832601704
- **to transfer:85116245781832601704**
For reference, the total DAO's liquidity in V2 pool is 2117.913872974150943852 UDT and 18.76683586595037034 WETH.
### About the proposal
The proposal contains a single call to the v2 pool `transfer` function that will transfer half of that liquidity tokens to the multisig - `transfer(0xc3F2bcBE6fB42faC83dd8a42893C6c0B3809e070,85116245781832601704)`.
Once approved and executed, the tokens will be transferred. The 5 signers of the multisig will take care of migrating the v2 position to the v3 pool.
Thank you!
The Unlock Team
Migrating 50% of UDT/WETH Liquidity Position from Uniswap v2 pool
### Goal of the proposal
This proposal aims at moving 50% of the liquidity tokens owned by the DAO in [Uniswap V2 UDT/WETH pool](https://etherscan.io/address/0x9ca8aef2372c705d6848fdda3c1267a7f51267c1) to a [multisig](https://etherscan.io/address/0xc3F2bcBE6fB42faC83dd8a42893C6c0B3809e070) owned by trustees . This transfer is a necessary step towards the end goal: migrate the current V2 liquidty position to the UDT/WETH Uniswap v3 pool (without risking a sandwich attack during the migration).
### Current situation of the UDT/WETH V2 pool
Address: 0x9ca8aef2372c705d6848fdda3c1267a7f51267c1
#### DAO's liquidity tokens in V2 pool
- total : 170232491563665203407
- **to transfer:85116245781832601703**
For reference, the total DAO's liquidity in V2 pool is 5469.923439376863397507 UDT and 28.71409951822553882 WETH.
### About the proposal
The proposal contains a single call to the v2 pool `transfer` function that will transfer half of that liquidity tokens to the multisig - `transfer(0xc3F2bcBE6fB42faC83dd8a42893C6c0B3809e070,85116245781832601703)`.
Once approved and executed, the tokens will be transferred. The 5 signers of the multisig will take care of migrating the v2 position to the v3 pool.
Thank you!
The Unlock Team
Testing the new cross-chain governance workflow
This DAO proposal aims at testing the new cross-chain governance process of Unlock Protocol's DAO. This new governance
protocol allow proposals to propagate directly from the main DAO contract to protocol contracts on other chains.
# How it works
To reach another chain, all calls go though the [Connext bridge](https://www.connext.network/) and are
executed on the other side of the bridge, after a period of cooldown.
The workflow is as follows
1. A DAO proposal is created, containing 1 call per chain.
2. If the vote succeeds, the DAO proposal is executed. All calls are sent to the bridge.
3. Each call crosses the bridge seperately towards its destination on a specific chain.
4. The call is received on the destination chain by the Unlock multisig.
5. Once received, the call is held in the multisig for a period of X days, during which it can be cancelled.
6. Once the cooldown period ends, the call is executed.
NB: The cooldown period is useful to prevent malicious or errored calls from being executed.
# This proposal
The goal of this proposal is to test this new cross-chain workflow. Here, we are sending instructions
from this DAO to the Unlock core contract on other chains. This is a common case used in protocol upgrades
or protocol settings changes.
Here we don't do anything out of the ordinary, just a simple transfer of native tokens on each chain to the zero
address. By burning a small amount of tokens, we just aim at proving that the process is sound
and actually works in practice.
# The calls
All calls are sent to the Connext bridge at 0x8898B472C54c31894e3B9bb83cEA802a5d0e63C6 on chain 1:
- `transferTokens(1000000000135)` to 0x99b1348a9129ac49c6de7F11245773dE2f51fB0c on chain Optimism (10)
- `transferTokens(1000000000135)` to 0xeC83410DbC48C7797D2f2AFe624881674c65c856 on chain BNB Chain (56)
- `transferTokens(1000000000135)` to 0x1bc53f4303c711cc693F6Ec3477B83703DcB317f on chain Gnosis Chain (100)
- `transferTokens(1000000000135)` to 0xE8E5cd156f89F7bdB267EabD5C43Af3d5AF2A78f on chain Polygon (137)
- `transferTokens(1000000000135)` to 0x1FF7e338d5E582138C46044dc238543Ce555C963 on chain Arbitrum (42161)
Onwards !
The Unlock Protocol Team