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[0] oracle = ERC20KP3ROracle.deploy( '0x73353801921417F465377c8d898c6f4C0270282C', {'from': deployer}, ) lp_oracle = UniswapV2LPKP3ROracle.deploy( '0x73353801921417F465377c8d898c6f4C0270282C', {'from': deployer}, ) # usdt data = oracle.getETHPx('0xdac17f958d2ee523a2206206994597c13d831ec7') print(data) print(1 / (data / (2**112))) # usdc data = oracle.getETHPx('0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48') print(data) print(1 / (data / (2**112))) # usdt-usdc data = lp_oracle.getETHPx('0x3041cbd36888becc7bbcbc0045e3b1f144466f5f') print(data) print(data / (2**112))
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(): admin = accounts[0] alice = accounts[1] usdt = interface.IERC20Ex('0xdAC17F958D2ee523a2206206994597C13D831ec7') lpusdt = interface.IERC20Ex('0x0d4a11d5EEaaC28EC3F61d100daF4d40471f1852') crusdt = interface.ICErc20('0x797AAB1ce7c01eB727ab980762bA88e7133d2157') router = interface.IUniswapV2Router02( '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D') erc20_oracle = ERC20KP3ROracle.deploy(KP3R_ADDRESS, {'from': admin}) lp_oracle = UniswapV2LPKP3ROracle.deploy(KP3R_ADDRESS, {'from': admin}) core_oracle = CoreOracle.deploy({'from': admin}) oracle = ProxyOracle.deploy(core_oracle, {'from': admin}) core_oracle.setRoute( [ '0xdAC17F958D2ee523a2206206994597C13D831ec7', # USDT '0x0d4a11d5EEaaC28EC3F61d100daF4d40471f1852', # USDT-ETH ], [erc20_oracle, lp_oracle], {'from': admin}, ) oracle.setOracles( [ '0xdAC17F958D2ee523a2206206994597C13D831ec7', # USDT '0x0d4a11d5EEaaC28EC3F61d100daF4d40471f1852', # USDT-ETH ], [ [10000, 10000, 10000], [10000, 10000, 10000], ], {'from': admin}, ) homora = HomoraBank.deploy({'from': admin}) homora.initialize(oracle, 1000, {'from': admin}) # 10% fee setup_bank_hack(homora) homora.addBank(usdt, crusdt, {'from': admin}) # lpusdt.approve(homora, 2**256-1, {'from': alice}) # Steal some LP from the staking pool lpusdt.transfer( alice, 1 * 10**17, { 'from': accounts.at('0x6C3e4cb2E96B01F4b866965A91ed4437839A121a', force=True) }) household_spell = HouseHoldSpell.deploy(homora, WETH_ADDRESS, {'from': admin}) tx = homora.execute( 0, # position id household_spell, household_spell.putCollateral.encode_input( '0x0d4a11d5EEaaC28EC3F61d100daF4d40471f1852', # USDT '0.00001 ether', # valued at approximately $600 ), {'from': alice}, ) print('put collateral gas', tx.gas_used) position_id = tx.return_value print(homora.getCollateralETHValue(position_id), homora.getBorrowETHValue(position_id)) tx = homora.execute( position_id, # position id household_spell, household_spell.borrow.encode_input( '0xdAC17F958D2ee523a2206206994597C13D831ec7', # USDT '500000000', # $500 ), {'from': alice}, ) print('bal', usdt.balanceOf(alice)) print('put collateral gas', tx.gas_used) _, _, _, totalDebt, totalShare = homora.getBankInfo(usdt) print('bank usdt totalDebt', totalDebt) print('bank usdt totalShare', totalShare) usdt.approve(homora, 2**256 - 1, {'from': alice}) usdt.approve(crusdt, 2**256 - 1, {'from': accounts.at(homora, force=True)}) tx = homora.execute( position_id, # position id household_spell, household_spell.repay.encode_input( '0xdAC17F958D2ee523a2206206994597C13D831ec7', # USDT '300000000', # $300 ), {'from': alice}, ) print('bal', usdt.balanceOf(alice)) print('repay gas', tx.gas_used)
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.deploy({'from': deployer}) wmas = WMasterChef.deploy(MASTERCHEF, {'from': deployer}) wliq = WLiquidityGauge.deploy(CRV_REGISTRY, CRV_TOKEN, {'from': deployer}) wsindex = WStakingRewards.deploy( '0xB93b505Ed567982E2b6756177ddD23ab5745f309', '0x4d5ef58aAc27d99935E5b6B4A6778ff292059991', # UNI DPI-WETH '0x0954906da0Bf32d5479e25f46056d22f08464cab', # INDEX {'from': deployer}, ) wsperp = WStakingRewards.deploy( '0xb9840a4a8a671f79de3df3b812feeb38047ce552', '0xF54025aF2dc86809Be1153c1F20D77ADB7e8ecF4', # BAL PERP-USDC 80-20 '0xbC396689893D065F41bc2C6EcbeE5e0085233447', # PERP {'from': deployer}, ) kp3r_oracle = ERC20KP3ROracle.deploy(KP3R_NETWORK, {'from': deployer}) core_oracle = CoreOracle.deploy({'from': deployer}) uni_oracle = UniswapV2Oracle.deploy(core_oracle, {'from': deployer}) bal_oracle = BalancerPairOracle.deploy(core_oracle, {'from': deployer}) crv_oracle = CurveOracle.deploy(core_oracle, CRV_REGISTRY, {'from': deployer}) proxy_oracle = ProxyOracle.deploy(core_oracle, {'from': deployer}) core_oracle.setRoute([ '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE', # ETH '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', # WETH '0x6b175474e89094c44da98b954eedeac495271d0f', # DAI '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', # USDC '0xdac17f958d2ee523a2206206994597c13d831ec7', # USDT '0x2260fac5e5542a773aa44fbcfedf7c193bc2c599', # WBTC '0x1494ca1f11d487c2bbe4543e90080aeba4ba3c2b', # DPI '0xbC396689893D065F41bc2C6EcbeE5e0085233447', # PERP '0xc011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f', # SNX '0xa478c2975ab1ea89e8196811f51a7b7ade33eb11', # UNI DAI-WETH '0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852', # UNI WETH-USDT '0xb4e16d0168e52d35cacd2c6185b44281ec28c9dc', # UNI USDC-WETH '0xbb2b8038a1640196fbe3e38816f3e67cba72d940', # UNI WBTC-WETH '0x4d5ef58aac27d99935e5b6b4a6778ff292059991', # UNI DPI-WETH '0x06da0fd433c1a5d7a4faa01111c044910a184553', # SUSHI WETH-USDT '0x8b6e6e7b5b3801fed2cafd4b22b8a16c2f2db21a', # BAL WETH-DAI 80-20 '0xf54025af2dc86809be1153c1f20d77adb7e8ecf4', # BAL PERP-USDC 80-20 '0x6c3f90f043a72fa612cbac8115ee7e52bde6e490', # CRV 3-POOL ], [ kp3r_oracle, kp3r_oracle, kp3r_oracle, kp3r_oracle, kp3r_oracle, kp3r_oracle, kp3r_oracle, kp3r_oracle, kp3r_oracle, uni_oracle, uni_oracle, uni_oracle, uni_oracle, uni_oracle, uni_oracle, bal_oracle, bal_oracle, crv_oracle, ], {'from': deployer}) proxy_oracle.setOracles([ '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', # WETH '0x6b175474e89094c44da98b954eedeac495271d0f', # DAI '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', # USDC '0xdac17f958d2ee523a2206206994597c13d831ec7', # USDT '0x2260fac5e5542a773aa44fbcfedf7c193bc2c599', # WBTC '0x1494ca1f11d487c2bbe4543e90080aeba4ba3c2b', # DPI '0xbC396689893D065F41bc2C6EcbeE5e0085233447', # PERP '0xc011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f', # SNX '0xa478c2975ab1ea89e8196811f51a7b7ade33eb11', # UNI DAI-WETH '0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852', # UNI WETH-USDT '0xb4e16d0168e52d35cacd2c6185b44281ec28c9dc', # UNI USDC-WETH '0xbb2b8038a1640196fbe3e38816f3e67cba72d940', # UNI WBTC-WETH '0x4d5ef58aac27d99935e5b6b4a6778ff292059991', # UNI DPI-WETH '0x06da0fd433c1a5d7a4faa01111c044910a184553', # SUSHI WETH-USDT '0x8b6e6e7b5b3801fed2cafd4b22b8a16c2f2db21a', # BAL WETH-DAI 80-20 '0xf54025af2dc86809be1153c1f20d77adb7e8ecf4', # BAL PERP-USDC 80-20 '0x6c3f90f043a72fa612cbac8115ee7e52bde6e490', # CRV 3-POOL ], [ [12500, 8000, 10250], [10500, 9500, 10250], [10500, 9500, 10250], [10500, 9500, 10250], [12500, 8000, 10250], [50000, 0, 10250], [50000, 0, 10250], [50000, 0, 10250], [50000, 8000, 10250], [50000, 8000, 10250], [50000, 8000, 10250], [50000, 8000, 10250], [50000, 6000, 10250], [50000, 8000, 10250], [50000, 8000, 10250], [50000, 0, 10250], [50000, 9500, 10250], ], {'from': deployer}) proxy_oracle.setWhitelistERC1155( [werc20, wmas, wliq, wsindex, wsperp], True, {'from': deployer}, ) bank = HomoraBank.at('0x5f5Cd91070960D13ee549C9CC47e7a4Cd00457bb') bank.setOracle(proxy_oracle, {'from': deployer}) wliq.registerGauge(0, 0, {'from': deployer}) 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, '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', {'from': deployer}, ) curve_spell = CurveSpellV1.deploy( bank, werc20, '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', wliq, {'from': deployer}, ) # register 3pool crv_oracle.registerPool('0x6c3f90f043a72fa612cbac8115ee7e52bde6e490') 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')