0x246a1335…ac6csent to0x440d9d4e…5591·#19,789,355·view on Etherscan
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