memoscan
← all memos

Memo 0xa821a2f5…13c582 on Ethereum

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