def main(): deployer = accounts.at('0xB593d82d53e2c187dc49673709a6E9f806cdC835', force=True) # deployer = accounts.load('gh') werc20 = WERC20.at('0xe28D9dF7718b0b5Ba69E01073fE82254a9eD2F98') wmas = WMasterChef.at('0x373ae78a14577682591E088F2E78EF1417612c68') wliq = WLiquidityGauge.at('0xfdB4f97953150e47C8606758C13e70b5a789a7ec') wsindex = WStakingRewards.at('0x713df2DDDA9C7d7bDa98A9f8fCd82c06c50fbd90') wsperp = WStakingRewards.at('0xC4635854480ffF80F742645da0310e9e59795c63') uni_kp3r_oracle = ERC20KP3ROracle.at( '0x8E2A3777AB22e1c5f6d1fF2BcC6C4aA6aB1DeA14') sushi_kp3r_oracle = ERC20KP3ROracle.at( '0xC331687FD71bb1D7f2e237091F8888dDcaD50C9a') core_oracle = CoreOracle.at('0x1E5BDdd0cDF8839d6b27b34927869eF0AD7bf692') uni_oracle = UniswapV2Oracle.at( '0x910aD02D355c2966e8dD8E32C890cD50DB29C3B9') bal_oracle = BalancerPairOracle.at( '0x8F93B0AA2643bf74ab38d6a5910fA82D2da02134') crv_oracle = CurveOracle.at('0x04DE0E42B3b0483248deafE86C4F5428613b76Ff') proxy_oracle = ProxyOracle.at('0x43c425fB2b00a991A51b18c217D749E393bF1AB2') # pair token with oracle from .tokens import Tokens # re-set oracles oracle_params = [ # lp tokens [Tokens.bal_perp_usdc, [14886, 6718, 10250]], ] token_list_2, param_list = zip(*oracle_params) proxy_oracle.setOracles(token_list_2, param_list, {'from': deployer}) proxy_oracle.unsetOracles([Tokens.bal_dai_weth], {'from': deployer}) print('DONE') ########################################################### # test spells (UNCOMMENT TO TEST) for token in [ Tokens.weth, Tokens.dai, Tokens.usdc, Tokens.usdt, Tokens.dpi, Tokens.yfi, Tokens.snx, Tokens.susd ]: token = interface.IERC20Ex(token) deposit_safebox(token) bank = HomoraBank.at('0x5f5Cd91070960D13ee549C9CC47e7a4Cd00457bb') uniswap_spell = UniswapV2SpellV1.at( '0xc671B7251a789de0835a2fa33c83c8D4afB39092') sushiswap_spell = SushiswapSpellV1.at( '0x21Fa95485f4571A3a0d0c396561cF4D8D13D445d') balancer_spell = BalancerSpellV1.at( '0x15B79c184A6a8E19a4CA1F637081270343E4D15D') curve_spell = CurveSpellV1.at('0x42C750024E02816eE32EB2eB4DA79ff5BF343D30')
def main(): deployer = accounts.at('0xB593d82d53e2c187dc49673709a6E9f806cdC835', force=True) # deployer = accounts.load('gh') weth = interface.IAny('0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2') dai = interface.IAny('0x6B175474E89094C44Da98b954EedeAC495271d0F') usdc = interface.IAny('0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48') usdt = interface.IAny('0xdAC17F958D2ee523a2206206994597C13D831ec7') werc20 = WERC20.at('0xe28D9dF7718b0b5Ba69E01073fE82254a9eD2F98') wmas = WMasterChef.at('0x373ae78a14577682591E088F2E78EF1417612c68') wliq = WLiquidityGauge.at('0xfdB4f97953150e47C8606758C13e70b5a789a7ec') wsindex = WStakingRewards.at('0x713df2DDDA9C7d7bDa98A9f8fCd82c06c50fbd90') wsperp = WStakingRewards.at('0xC4635854480ffF80F742645da0310e9e59795c63') # upgrade bank's implementation bank_impl = HomoraBank.deploy({'from': deployer}) proxy_admin = Contract.from_explorer( '0x090eCE252cEc5998Db765073D07fac77b8e60CB2') bank = HomoraBank.at('0x5f5Cd91070960D13ee549C9CC47e7a4Cd00457bb') proxy_admin.upgrade(bank, bank_impl, {'from': deployer}) # re-deploy spells uniswap_spell = UniswapV2SpellV1.deploy( bank, werc20, '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D', {'from': deployer}) sushiswap_spell = SushiswapSpellV1.deploy( bank, werc20, '0xd9e1cE17f2641f24aE83637ab66a2cca9C378B9F', wmas, {'from': deployer}) balancer_spell = BalancerSpellV1.deploy(bank, werc20, weth, {'from': deployer}) curve_spell = CurveSpellV1.deploy(bank, werc20, weth, wliq, {'from': deployer}) # set whitelist spells in bank bank.setWhitelistSpells( [uniswap_spell, sushiswap_spell, balancer_spell, curve_spell], [True] * 4, {'from': deployer}) # set whitelist tokens in bank bank.setWhitelistTokens([weth, dai, usdc, usdt], [True] * 4, {'from': deployer}) # set whitelist lp tokens in spells uniswap_spell.setWhitelistLPTokens( ['0xd3d2E2692501A5c9Ca623199D38826e513033a17'], [True], {'from': deployer}) sushiswap_spell.setWhitelistLPTokens( ['0x795065dCc9f64b5614C407a6EFDC400DA6221FB0'], [True], {'from': deployer}) balancer_spell.setWhitelistLPTokens( ['0xF54025aF2dc86809Be1153c1F20D77ADB7e8ecF4'], [True], {'from': deployer}) curve_spell.setWhitelistLPTokens( ['0x6c3F90f043a72FA612cbac8115EE7e52BDe6E490'], [True], {'from': deployer})
def main(): deployer = accounts.at('0xB593d82d53e2c187dc49673709a6E9f806cdC835', force=True) # deployer = accounts.load('gh') werc20 = WERC20.at('0xe28D9dF7718b0b5Ba69E01073fE82254a9eD2F98') wmas = WMasterChef.at('0x373ae78a14577682591E088F2E78EF1417612c68') wliq = WLiquidityGauge.at('0xfdB4f97953150e47C8606758C13e70b5a789a7ec') wsindex = WStakingRewards.at('0x713df2DDDA9C7d7bDa98A9f8fCd82c06c50fbd90') wsperp = WStakingRewards.at('0xC4635854480ffF80F742645da0310e9e59795c63') kp3r_oracle = ERC20KP3ROracle.at( '0x8E2A3777AB22e1c5f6d1fF2BcC6C4aA6aB1DeA14') core_oracle = CoreOracle.at('0x1E5BDdd0cDF8839d6b27b34927869eF0AD7bf692') uni_oracle = UniswapV2Oracle.at( '0x910aD02D355c2966e8dD8E32C890cD50DB29C3B9') bal_oracle = BalancerPairOracle.at( '0x8F93B0AA2643bf74ab38d6a5910fA82D2da02134') crv_oracle = CurveOracle.at('0x04DE0E42B3b0483248deafE86C4F5428613b76Ff') proxy_oracle = ProxyOracle.at('0x43c425fB2b00a991A51b18c217D749E393bF1AB2') bank_impl = HomoraBank.at('0x95ab3Ca8133b47f16f47F6A79410680fE87a6139') proxy_admin = Contract.from_explorer( '0x090eCE252cEc5998Db765073D07fac77b8e60CB2') bank = HomoraBank.at('0x5f5Cd91070960D13ee549C9CC47e7a4Cd00457bb') proxy_admin.upgrade(bank, bank_impl, {'from': deployer}) bank.setOracle(proxy_oracle, {'from': deployer}) uniswap_spell = UniswapV2SpellV1.deploy( bank, werc20, '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D', {'from': deployer}, ) sushiswap_spell = SushiswapSpellV1.deploy( bank, werc20, '0xd9e1cE17f2641f24aE83637ab66a2cca9C378B9F', wmas, {'from': deployer}, ) balancer_spell = BalancerSpellV1.at( '0x15B79c184A6a8E19a4CA1F637081270343E4D15D') curve_spell = CurveSpellV1.deploy( bank, werc20, '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', wliq, {'from': deployer}, ) print('DONE')
def main(): deployer = accounts.at('0xB593d82d53e2c187dc49673709a6E9f806cdC835', force=True) # deployer = accounts.load('gh') werc20 = WERC20.at('0xe28D9dF7718b0b5Ba69E01073fE82254a9eD2F98') wmas = WMasterChef.at('0x373ae78a14577682591E088F2E78EF1417612c68') wliq = WLiquidityGauge.at('0xfdB4f97953150e47C8606758C13e70b5a789a7ec') wsindex = WStakingRewards.at('0x713df2DDDA9C7d7bDa98A9f8fCd82c06c50fbd90') wsperp = WStakingRewards.at('0xC4635854480ffF80F742645da0310e9e59795c63') uni_kp3r_oracle = ERC20KP3ROracle.at( '0x8E2A3777AB22e1c5f6d1fF2BcC6C4aA6aB1DeA14') sushi_kp3r_oracle = ERC20KP3ROracle.at( '0xC331687FD71bb1D7f2e237091F8888dDcaD50C9a') core_oracle = CoreOracle.at('0x1E5BDdd0cDF8839d6b27b34927869eF0AD7bf692') uni_oracle = UniswapV2Oracle.at( '0x910aD02D355c2966e8dD8E32C890cD50DB29C3B9') bal_oracle = BalancerPairOracle.at( '0x8F93B0AA2643bf74ab38d6a5910fA82D2da02134') crv_oracle = CurveOracle.at('0x04DE0E42B3b0483248deafE86C4F5428613b76Ff') proxy_oracle = ProxyOracle.at('0x43c425fB2b00a991A51b18c217D749E393bF1AB2') # pair token with oracle from .tokens import Tokens # re-set oracles oracle_params = [ # lp tokens [Tokens.bal_dai_weth, [12616, 7927, 10250]], ] token_list_2, param_list = zip(*oracle_params) proxy_oracle.setOracles(token_list_2, param_list, {'from': deployer}) print('DONE')
def main(): deployer = accounts.at('0xB593d82d53e2c187dc49673709a6E9f806cdC835', force=True) # deployer = accounts.load('gh') werc20 = WERC20.at('0xe28D9dF7718b0b5Ba69E01073fE82254a9eD2F98') wmas = WMasterChef.at('0x373ae78a14577682591E088F2E78EF1417612c68') wliq = WLiquidityGauge.at('0xfdB4f97953150e47C8606758C13e70b5a789a7ec') wsindex = WStakingRewards.at('0x713df2DDDA9C7d7bDa98A9f8fCd82c06c50fbd90') wsperp = WStakingRewards.at('0xC4635854480ffF80F742645da0310e9e59795c63') kp3r_oracle = ERC20KP3ROracle.at('0x8E2A3777AB22e1c5f6d1fF2BcC6C4aA6aB1DeA14') core_oracle = CoreOracle.at('0x1E5BDdd0cDF8839d6b27b34927869eF0AD7bf692') uni_oracle = UniswapV2Oracle.deploy(core_oracle, {'from': deployer}) bal_oracle = BalancerPairOracle.at('0x8F93B0AA2643bf74ab38d6a5910fA82D2da02134') crv_oracle = CurveOracle.at('0x04DE0E42B3b0483248deafE86C4F5428613b76Ff') proxy_oracle = ProxyOracle.deploy(core_oracle, {'from': deployer}) # re-route to new uniswap oracle core_oracle.setRoute([ '0x0bc529c00C6401aEF6D220BE8C6Ea1667F6Ad93e', # YFI '0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11', # UNI DAI-WETH '0x0d4a11d5EEaaC28EC3F61d100daF4d40471f1852', # UNI WETH-USDT '0xB4e16d0168e52d35CaCD2c6185b44281Ec28C9Dc', # UNI USDC-WETH '0xBb2b8038a1640196FbE3e38816F3e67Cba72D940', # UNI WBTC-WETH '0x2fDbAdf3C4D5A8666Bc06645B8358ab803996E28', # UNI WETH-YFI '0x4d5ef58aAc27d99935E5b6B4A6778ff292059991', # UNI DPI-WETH '0x06da0fd433C1A5d7a4faa01111c044910A184553', # SUSHI WETH-USDT '0x088ee5007C98a9677165D78dD2109AE4a3D04d0C', # SUSHI WETH-YFI '0x34b13F8CD184F55d0Bd4Dd1fe6C07D46f245c7eD', # SUSHI DPI-WETH ], [ kp3r_oracle, uni_oracle, uni_oracle, uni_oracle, uni_oracle, uni_oracle, uni_oracle, uni_oracle, uni_oracle, uni_oracle, ], {'from': deployer}) # re-set oracles proxy_oracle.setOracles([ '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', # WETH '0x6B175474E89094C44Da98b954EedeAC495271d0F', # DAI '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', # USDC '0xdAC17F958D2ee523a2206206994597C13D831ec7', # USDT '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599', # WBTC '0x1494CA1F11D487c2bBe4543E90080AeBa4BA3C2b', # DPI '0x0bc529c00C6401aEF6D220BE8C6Ea1667F6Ad93e', # YFI '0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11', # UNI DAI-WETH '0x0d4a11d5EEaaC28EC3F61d100daF4d40471f1852', # UNI WETH-USDT '0xB4e16d0168e52d35CaCD2c6185b44281Ec28C9Dc', # UNI USDC-WETH '0xBb2b8038a1640196FbE3e38816F3e67Cba72D940', # UNI WBTC-WETH '0x2fDbAdf3C4D5A8666Bc06645B8358ab803996E28', # UNI WETH-YFI '0x4d5ef58aAc27d99935E5b6B4A6778ff292059991', # UNI DPI-WETH '0x06da0fd433C1A5d7a4faa01111c044910A184553', # SUSHI WETH-USDT '0x088ee5007C98a9677165D78dD2109AE4a3D04d0C', # SUSHI WETH-YFI '0x34b13F8CD184F55d0Bd4Dd1fe6C07D46f245c7eD', # SUSHI DPI-WETH '0x8b6e6E7B5b3801FEd2CaFD4b22b8A16c2F2Db21a', # BAL WETH-DAI 80-20 '0xF54025aF2dc86809Be1153c1F20D77ADB7e8ecF4', # BAL PERP-USDC 80-20 '0x6c3F90f043a72FA612cbac8115EE7e52BDe6E490', # CRV 3-POOL ], [ [14350, 6970, 10250], # WETH [10840, 9230, 10250], # DAI [10840, 9230, 10250], # USDC [10840, 9230, 10250], # USDT [14350, 6970, 10250], # WBTC [50000, 0, 10250], # DPI [50000, 0, 10250], # YFI [50000, 6970, 10250], # UNI DAI-WETH [50000, 6970, 10250], # UNI WETH-USDT [50000, 6970, 10250], # UNI USDC-WETH [50000, 6970, 10250], # UNI WBTC-WETH [50000, 6970, 10250], # UNI WETH-YFI [50000, 6970, 10250], # UNI DPI-WETH [50000, 6970, 10250], # SUSHI WETH-USDT [50000, 6970, 10250], # SUSHI WETH-YFI [50000, 6970, 10250], # SUSHI DPI-WETH [50000, 6970, 10250], # BAL WETH-DAI 80-20 [50000, 0, 10250], # BAL PERP-USDC 80-20 [50000, 9230, 10250], # CRV 3-POOL ], {'from': deployer}) proxy_oracle.setWhitelistERC1155( [werc20, wmas, wliq, wsindex, wsperp], True, {'from': deployer}, ) bank_impl = HomoraBank.deploy({'from': deployer}) proxy_admin = Contract.from_explorer('0x090eCE252cEc5998Db765073D07fac77b8e60CB2') bank = Contract.from_explorer('0x5f5Cd91070960D13ee549C9CC47e7a4Cd00457bb') proxy_admin.upgrade(bank, bank_impl, {'from': deployer}) bank.setOracle(proxy_oracle, {'from': deployer}) uniswap_spell = UniswapV2SpellV1.deploy( bank, werc20, '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D', {'from': deployer}, ) sushiswap_spell = SushiswapSpellV1.deploy( bank, werc20, '0xd9e1cE17f2641f24aE83637ab66a2cca9C378B9F', wmas, {'from': deployer}, ) balancer_spell = BalancerSpellV1.at('0x15B79c184A6a8E19a4CA1F637081270343E4D15D') curve_spell = CurveSpellV1.deploy( bank, werc20, '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', wliq, {'from': deployer}, ) print('DONE')
def main(): deployer = accounts.at('0xB593d82d53e2c187dc49673709a6E9f806cdC835', force=True) # deployer = accounts.load('gh') werc20 = WERC20.at('0xe28D9dF7718b0b5Ba69E01073fE82254a9eD2F98') wmas = WMasterChef.at('0x373ae78a14577682591E088F2E78EF1417612c68') wliq = WLiquidityGauge.at('0xfdB4f97953150e47C8606758C13e70b5a789a7ec') wsindex = WStakingRewards.at('0x713df2DDDA9C7d7bDa98A9f8fCd82c06c50fbd90') wsperp = WStakingRewards.at('0xC4635854480ffF80F742645da0310e9e59795c63') uni_kp3r_oracle = ERC20KP3ROracle.at('0x8E2A3777AB22e1c5f6d1fF2BcC6C4aA6aB1DeA14') sushi_kp3r_oracle = ERC20KP3ROracle.deploy( '0xf67Ab1c914deE06Ba0F264031885Ea7B276a7cDa', {'from': deployer}) core_oracle = CoreOracle.at('0x1E5BDdd0cDF8839d6b27b34927869eF0AD7bf692') uni_oracle = UniswapV2Oracle.at('0x910aD02D355c2966e8dD8E32C890cD50DB29C3B9') bal_oracle = BalancerPairOracle.at('0x8F93B0AA2643bf74ab38d6a5910fA82D2da02134') crv_oracle = CurveOracle.at('0x04DE0E42B3b0483248deafE86C4F5428613b76Ff') proxy_oracle = ProxyOracle.at('0x43c425fB2b00a991A51b18c217D749E393bF1AB2') # pair token with oracle from .tokens import Tokens token_oracle_settings = [ # base tokens [Tokens.weth, uni_kp3r_oracle], [Tokens.dai, uni_kp3r_oracle], [Tokens.usdc, uni_kp3r_oracle], [Tokens.usdt, uni_kp3r_oracle], [Tokens.dpi, uni_kp3r_oracle], [Tokens.yfi, sushi_kp3r_oracle], [Tokens.perp, uni_kp3r_oracle], [Tokens.snx, sushi_kp3r_oracle], [Tokens.susd, sushi_kp3r_oracle], [Tokens.uni, uni_kp3r_oracle], [Tokens.sushi, sushi_kp3r_oracle], # lp tokens [Tokens.uni_eth_yfi, uni_oracle], [Tokens.sushi_eth_yfi, uni_oracle], [Tokens.uni_eth_dpi, uni_oracle], [Tokens.crv_3pool, crv_oracle], [Tokens.sushi_eth_dpi, uni_oracle], [Tokens.uni_eth_snx, uni_oracle], [Tokens.uni_eth_susd, uni_oracle], [Tokens.sushi_eth_susd, uni_oracle], [Tokens.sushi_eth_snx, uni_oracle], [Tokens.crv_susd, crv_oracle], [Tokens.sushi_eth_sushi, uni_oracle], [Tokens.uni_eth_uni, uni_oracle], [Tokens.bal_perp_usdc, bal_oracle], ] token_list, oracle_list = zip(*token_oracle_settings) # re-route to new uniswap oracle core_oracle.setRoute(token_list, oracle_list, {'from': deployer}) # re-set oracles oracle_params = [ # base tokens [Tokens.weth, [17158, 5828, 12500]], [Tokens.dai, [10790, 9268, 12500]], [Tokens.usdc, [10651, 9389, 12500]], [Tokens.usdt, [10743, 9308, 12500]], [Tokens.dpi, [16195, 6175, 12500]], [Tokens.yfi, [29155, 3430, 12500]], [Tokens.perp, [20042, 4989, 12500]], [Tokens.snx, [18162, 5506, 12500]], [Tokens.susd, [12129, 8245, 12500]], [Tokens.uni, [16022, 6241, 12500]], [Tokens.sushi, [19418, 5150, 12500]], # lp tokens [Tokens.uni_eth_dpi, [17158, 5828, 12500]], [Tokens.uni_eth_yfi, [29155, 3430, 12500]], [Tokens.uni_eth_snx, [18162, 5506, 12500]], [Tokens.uni_eth_susd, [17158, 5828, 12500]], [Tokens.uni_eth_uni, [17158, 5828, 12500]], [Tokens.sushi_eth_dpi, [17158, 5828, 12500]], [Tokens.sushi_eth_yfi, [29155, 3430, 12500]], [Tokens.sushi_eth_snx, [18162, 5506, 12500]], [Tokens.sushi_eth_susd, [17158, 5828, 12500]], [Tokens.sushi_eth_sushi, [19418, 5150, 12500]], [Tokens.bal_perp_usdc, [20042, 4989, 12500]], [Tokens.crv_3pool, [10790, 9268, 12500]], [Tokens.crv_susd, [12129, 8245, 12500]], ] token_list_2, param_list = zip(*oracle_params) proxy_oracle.setOracles(token_list_2, param_list, {'from': deployer}) print('DONE') ########################################################### # test spells (UNCOMMENT TO TEST) bank = HomoraBank.at('0x5f5Cd91070960D13ee549C9CC47e7a4Cd00457bb') uniswap_spell = UniswapV2SpellV1.at('0xc671B7251a789de0835a2fa33c83c8D4afB39092') sushiswap_spell = SushiswapSpellV1.at('0x21Fa95485f4571A3a0d0c396561cF4D8D13D445d') balancer_spell = BalancerSpellV1.at('0x15B79c184A6a8E19a4CA1F637081270343E4D15D') curve_spell = CurveSpellV1.at('0x42C750024E02816eE32EB2eB4DA79ff5BF343D30')