diff --git a/networks/mainnet-abi.json b/networks/mainnet-abi.json index 71e9dfc1e..dc70ad188 100755 --- a/networks/mainnet-abi.json +++ b/networks/mainnet-abi.json @@ -57745,6 +57745,2941 @@ ], "stateMutability": "view", "type": "function" + } + ], + "FRAX": [ + { + "inputs":[ + { + "internalType":"string", + "name":"_name", + "type":"string" + }, + { + "internalType":"string", + "name":"_symbol", + "type":"string" + }, + { + "internalType":"address", + "name":"_creator_address", + "type":"address" + }, + { + "internalType":"address", + "name":"_timelock_address", + "type":"address" + } + ], + "stateMutability":"nonpayable", + "type":"constructor" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"address", + "name":"owner", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"spender", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"value", + "type":"uint256" + } + ], + "name":"Approval", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"address", + "name":"from", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"to", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"amount", + "type":"uint256" + } + ], + "name":"FRAXBurned", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"address", + "name":"from", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"to", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"amount", + "type":"uint256" + } + ], + "name":"FRAXMinted", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"bytes32", + "name":"role", + "type":"bytes32" + }, + { + "indexed":true, + "internalType":"bytes32", + "name":"previousAdminRole", + "type":"bytes32" + }, + { + "indexed":true, + "internalType":"bytes32", + "name":"newAdminRole", + "type":"bytes32" + } + ], + "name":"RoleAdminChanged", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"bytes32", + "name":"role", + "type":"bytes32" + }, + { + "indexed":true, + "internalType":"address", + "name":"account", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"sender", + "type":"address" + } + ], + "name":"RoleGranted", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"bytes32", + "name":"role", + "type":"bytes32" + }, + { + "indexed":true, + "internalType":"address", + "name":"account", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"sender", + "type":"address" + } + ], + "name":"RoleRevoked", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"address", + "name":"from", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"to", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"value", + "type":"uint256" + } + ], + "name":"Transfer", + "type":"event" + }, + { + "inputs":[ + + ], + "name":"COLLATERAL_RATIO_PAUSER", + "outputs":[ + { + "internalType":"bytes32", + "name":"", + "type":"bytes32" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"DEFAULT_ADMIN_ADDRESS", + "outputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"DEFAULT_ADMIN_ROLE", + "outputs":[ + { + "internalType":"bytes32", + "name":"", + "type":"bytes32" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"pool_address", + "type":"address" + } + ], + "name":"addPool", + "outputs":[ + + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"owner", + "type":"address" + }, + { + "internalType":"address", + "name":"spender", + "type":"address" + } + ], + "name":"allowance", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"spender", + "type":"address" + }, + { + "internalType":"uint256", + "name":"amount", + "type":"uint256" + } + ], + "name":"approve", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"account", + "type":"address" + } + ], + "name":"balanceOf", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"uint256", + "name":"amount", + "type":"uint256" + } + ], + "name":"burn", + "outputs":[ + + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"account", + "type":"address" + }, + { + "internalType":"uint256", + "name":"amount", + "type":"uint256" + } + ], + "name":"burnFrom", + "outputs":[ + + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"collateral_ratio_paused", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"controller_address", + "outputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"creator_address", + "outputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"decimals", + "outputs":[ + { + "internalType":"uint8", + "name":"", + "type":"uint8" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"spender", + "type":"address" + }, + { + "internalType":"uint256", + "name":"subtractedValue", + "type":"uint256" + } + ], + "name":"decreaseAllowance", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"eth_usd_consumer_address", + "outputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"eth_usd_price", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"frax_eth_oracle_address", + "outputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"frax_info", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + }, + { + "internalType":"uint256", + "name":"", + "type":"uint256" + }, + { + "internalType":"uint256", + "name":"", + "type":"uint256" + }, + { + "internalType":"uint256", + "name":"", + "type":"uint256" + }, + { + "internalType":"uint256", + "name":"", + "type":"uint256" + }, + { + "internalType":"uint256", + "name":"", + "type":"uint256" + }, + { + "internalType":"uint256", + "name":"", + "type":"uint256" + }, + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "name":"frax_pools", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "name":"frax_pools_array", + "outputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"frax_price", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"frax_step", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"fxs_address", + "outputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"fxs_eth_oracle_address", + "outputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"fxs_price", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"genesis_supply", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"bytes32", + "name":"role", + "type":"bytes32" + } + ], + "name":"getRoleAdmin", + "outputs":[ + { + "internalType":"bytes32", + "name":"", + "type":"bytes32" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"bytes32", + "name":"role", + "type":"bytes32" + }, + { + "internalType":"uint256", + "name":"index", + "type":"uint256" + } + ], + "name":"getRoleMember", + "outputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"bytes32", + "name":"role", + "type":"bytes32" + } + ], + "name":"getRoleMemberCount", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"globalCollateralValue", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"global_collateral_ratio", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"bytes32", + "name":"role", + "type":"bytes32" + }, + { + "internalType":"address", + "name":"account", + "type":"address" + } + ], + "name":"grantRole", + "outputs":[ + + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"bytes32", + "name":"role", + "type":"bytes32" + }, + { + "internalType":"address", + "name":"account", + "type":"address" + } + ], + "name":"hasRole", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"spender", + "type":"address" + }, + { + "internalType":"uint256", + "name":"addedValue", + "type":"uint256" + } + ], + "name":"increaseAllowance", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"last_call_time", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"minting_fee", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"name", + "outputs":[ + { + "internalType":"string", + "name":"", + "type":"string" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"owner_address", + "outputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"b_address", + "type":"address" + }, + { + "internalType":"uint256", + "name":"b_amount", + "type":"uint256" + } + ], + "name":"pool_burn_from", + "outputs":[ + + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"m_address", + "type":"address" + }, + { + "internalType":"uint256", + "name":"m_amount", + "type":"uint256" + } + ], + "name":"pool_mint", + "outputs":[ + + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"price_band", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"price_target", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"redemption_fee", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"refreshCollateralRatio", + "outputs":[ + + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"refresh_cooldown", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"pool_address", + "type":"address" + } + ], + "name":"removePool", + "outputs":[ + + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"bytes32", + "name":"role", + "type":"bytes32" + }, + { + "internalType":"address", + "name":"account", + "type":"address" + } + ], + "name":"renounceRole", + "outputs":[ + + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"bytes32", + "name":"role", + "type":"bytes32" + }, + { + "internalType":"address", + "name":"account", + "type":"address" + } + ], + "name":"revokeRole", + "outputs":[ + + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"_controller_address", + "type":"address" + } + ], + "name":"setController", + "outputs":[ + + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"_eth_usd_consumer_address", + "type":"address" + } + ], + "name":"setETHUSDOracle", + "outputs":[ + + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"_frax_oracle_addr", + "type":"address" + }, + { + "internalType":"address", + "name":"_weth_address", + "type":"address" + } + ], + "name":"setFRAXEthOracle", + "outputs":[ + + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"_fxs_address", + "type":"address" + } + ], + "name":"setFXSAddress", + "outputs":[ + + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"_fxs_oracle_addr", + "type":"address" + }, + { + "internalType":"address", + "name":"_weth_address", + "type":"address" + } + ], + "name":"setFXSEthOracle", + "outputs":[ + + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"uint256", + "name":"_new_step", + "type":"uint256" + } + ], + "name":"setFraxStep", + "outputs":[ + + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"uint256", + "name":"min_fee", + "type":"uint256" + } + ], + "name":"setMintingFee", + "outputs":[ + + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"_owner_address", + "type":"address" + } + ], + "name":"setOwner", + "outputs":[ + + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"uint256", + "name":"_price_band", + "type":"uint256" + } + ], + "name":"setPriceBand", + "outputs":[ + + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"uint256", + "name":"_new_price_target", + "type":"uint256" + } + ], + "name":"setPriceTarget", + "outputs":[ + + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"uint256", + "name":"red_fee", + "type":"uint256" + } + ], + "name":"setRedemptionFee", + "outputs":[ + + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"uint256", + "name":"_new_cooldown", + "type":"uint256" + } + ], + "name":"setRefreshCooldown", + "outputs":[ + + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"new_timelock", + "type":"address" + } + ], + "name":"setTimelock", + "outputs":[ + + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"symbol", + "outputs":[ + { + "internalType":"string", + "name":"", + "type":"string" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"timelock_address", + "outputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"toggleCollateralRatio", + "outputs":[ + + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"totalSupply", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"recipient", + "type":"address" + }, + { + "internalType":"uint256", + "name":"amount", + "type":"uint256" + } + ], + "name":"transfer", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"sender", + "type":"address" + }, + { + "internalType":"address", + "name":"recipient", + "type":"address" + }, + { + "internalType":"uint256", + "name":"amount", + "type":"uint256" + } + ], + "name":"transferFrom", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"weth_address", + "outputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "stateMutability":"view", + "type":"function" + } + ], + "cFRAX": [ + { + "inputs":[ + { + "internalType":"address", + "name":"underlying_", + "type":"address" + }, + { + "internalType":"contract ComptrollerInterface", + "name":"comptroller_", + "type":"address" + }, + { + "internalType":"contract InterestRateModel", + "name":"interestRateModel_", + "type":"address" + }, + { + "internalType":"uint256", + "name":"initialExchangeRateMantissa_", + "type":"uint256" + }, + { + "internalType":"string", + "name":"name_", + "type":"string" + }, + { + "internalType":"string", + "name":"symbol_", + "type":"string" + }, + { + "internalType":"uint8", + "name":"decimals_", + "type":"uint8" + }, + { + "internalType":"address payable", + "name":"admin_", + "type":"address" + }, + { + "internalType":"address", + "name":"implementation_", + "type":"address" + }, + { + "internalType":"bytes", + "name":"becomeImplementationData", + "type":"bytes" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"constructor" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"uint256", + "name":"cashPrior", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"interestAccumulated", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"borrowIndex", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"totalBorrows", + "type":"uint256" + } + ], + "name":"AccrueInterest", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"address", + "name":"owner", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"spender", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"amount", + "type":"uint256" + } + ], + "name":"Approval", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"address", + "name":"borrower", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"borrowAmount", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"accountBorrows", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"totalBorrows", + "type":"uint256" + } + ], + "name":"Borrow", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"uint256", + "name":"error", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"info", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"detail", + "type":"uint256" + } + ], + "name":"Failure", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"address", + "name":"liquidator", + "type":"address" + }, + { + "indexed":false, + "internalType":"address", + "name":"borrower", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"repayAmount", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"address", + "name":"cTokenCollateral", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"seizeTokens", + "type":"uint256" + } + ], + "name":"LiquidateBorrow", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"address", + "name":"minter", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"mintAmount", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"mintTokens", + "type":"uint256" + } + ], + "name":"Mint", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"address", + "name":"oldAdmin", + "type":"address" + }, + { + "indexed":false, + "internalType":"address", + "name":"newAdmin", + "type":"address" + } + ], + "name":"NewAdmin", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"contract ComptrollerInterface", + "name":"oldComptroller", + "type":"address" + }, + { + "indexed":false, + "internalType":"contract ComptrollerInterface", + "name":"newComptroller", + "type":"address" + } + ], + "name":"NewComptroller", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"address", + "name":"oldImplementation", + "type":"address" + }, + { + "indexed":false, + "internalType":"address", + "name":"newImplementation", + "type":"address" + } + ], + "name":"NewImplementation", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"contract InterestRateModel", + "name":"oldInterestRateModel", + "type":"address" + }, + { + "indexed":false, + "internalType":"contract InterestRateModel", + "name":"newInterestRateModel", + "type":"address" + } + ], + "name":"NewMarketInterestRateModel", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"address", + "name":"oldPendingAdmin", + "type":"address" + }, + { + "indexed":false, + "internalType":"address", + "name":"newPendingAdmin", + "type":"address" + } + ], + "name":"NewPendingAdmin", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"uint256", + "name":"oldReserveFactorMantissa", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"newReserveFactorMantissa", + "type":"uint256" + } + ], + "name":"NewReserveFactor", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"address", + "name":"redeemer", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"redeemAmount", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"redeemTokens", + "type":"uint256" + } + ], + "name":"Redeem", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"address", + "name":"payer", + "type":"address" + }, + { + "indexed":false, + "internalType":"address", + "name":"borrower", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"repayAmount", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"accountBorrows", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"totalBorrows", + "type":"uint256" + } + ], + "name":"RepayBorrow", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"address", + "name":"benefactor", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"addAmount", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"newTotalReserves", + "type":"uint256" + } + ], + "name":"ReservesAdded", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":false, + "internalType":"address", + "name":"admin", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"reduceAmount", + "type":"uint256" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"newTotalReserves", + "type":"uint256" + } + ], + "name":"ReservesReduced", + "type":"event" + }, + { + "anonymous":false, + "inputs":[ + { + "indexed":true, + "internalType":"address", + "name":"from", + "type":"address" + }, + { + "indexed":true, + "internalType":"address", + "name":"to", + "type":"address" + }, + { + "indexed":false, + "internalType":"uint256", + "name":"amount", + "type":"uint256" + } + ], + "name":"Transfer", + "type":"event" + }, + { + "payable":true, + "stateMutability":"payable", + "type":"fallback" + }, + { + "constant":false, + "inputs":[ + + ], + "name":"_acceptAdmin", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"uint256", + "name":"addAmount", + "type":"uint256" + } + ], + "name":"_addReserves", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"uint256", + "name":"reduceAmount", + "type":"uint256" + } + ], + "name":"_reduceReserves", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"contract ComptrollerInterface", + "name":"newComptroller", + "type":"address" + } + ], + "name":"_setComptroller", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"implementation_", + "type":"address" + }, + { + "internalType":"bool", + "name":"allowResign", + "type":"bool" + }, + { + "internalType":"bytes", + "name":"becomeImplementationData", + "type":"bytes" + } + ], + "name":"_setImplementation", + "outputs":[ + + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"contract InterestRateModel", + "name":"newInterestRateModel", + "type":"address" + } + ], + "name":"_setInterestRateModel", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address payable", + "name":"newPendingAdmin", + "type":"address" + } + ], + "name":"_setPendingAdmin", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"uint256", + "name":"newReserveFactorMantissa", + "type":"uint256" + } + ], + "name":"_setReserveFactor", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[ + + ], + "name":"accrualBlockNumber", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + + ], + "name":"accrueInterest", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[ + + ], + "name":"admin", + "outputs":[ + { + "internalType":"address payable", + "name":"", + "type":"address" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"owner", + "type":"address" + }, + { + "internalType":"address", + "name":"spender", + "type":"address" + } + ], + "name":"allowance", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"spender", + "type":"address" + }, + { + "internalType":"uint256", + "name":"amount", + "type":"uint256" + } + ], + "name":"approve", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"owner", + "type":"address" + } + ], + "name":"balanceOf", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"owner", + "type":"address" + } + ], + "name":"balanceOfUnderlying", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"uint256", + "name":"borrowAmount", + "type":"uint256" + } + ], + "name":"borrow", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"account", + "type":"address" + } + ], + "name":"borrowBalanceCurrent", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"account", + "type":"address" + } + ], + "name":"borrowBalanceStored", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + + ], + "name":"borrowIndex", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + + ], + "name":"borrowRatePerBlock", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + + ], + "name":"comptroller", + "outputs":[ + { + "internalType":"contract ComptrollerInterface", + "name":"", + "type":"address" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + + ], + "name":"decimals", + "outputs":[ + { + "internalType":"uint8", + "name":"", + "type":"uint8" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"bytes", + "name":"data", + "type":"bytes" + } + ], + "name":"delegateToImplementation", + "outputs":[ + { + "internalType":"bytes", + "name":"", + "type":"bytes" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"bytes", + "name":"data", + "type":"bytes" + } + ], + "name":"delegateToViewImplementation", + "outputs":[ + { + "internalType":"bytes", + "name":"", + "type":"bytes" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + + ], + "name":"exchangeRateCurrent", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[ + + ], + "name":"exchangeRateStored", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + { + "internalType":"address", + "name":"account", + "type":"address" + } + ], + "name":"getAccountSnapshot", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + }, + { + "internalType":"uint256", + "name":"", + "type":"uint256" + }, + { + "internalType":"uint256", + "name":"", + "type":"uint256" + }, + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + + ], + "name":"getCash", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + + ], + "name":"implementation", + "outputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + + ], + "name":"interestRateModel", + "outputs":[ + { + "internalType":"contract InterestRateModel", + "name":"", + "type":"address" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + + ], + "name":"isCToken", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"borrower", + "type":"address" + }, + { + "internalType":"uint256", + "name":"repayAmount", + "type":"uint256" + }, + { + "internalType":"contract CTokenInterface", + "name":"cTokenCollateral", + "type":"address" + } + ], + "name":"liquidateBorrow", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"uint256", + "name":"mintAmount", + "type":"uint256" + } + ], + "name":"mint", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[ + + ], + "name":"name", + "outputs":[ + { + "internalType":"string", + "name":"", + "type":"string" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + + ], + "name":"pendingAdmin", + "outputs":[ + { + "internalType":"address payable", + "name":"", + "type":"address" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + + ], + "name":"protocolSeizeShareMantissa", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"uint256", + "name":"redeemTokens", + "type":"uint256" + } + ], + "name":"redeem", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"uint256", + "name":"redeemAmount", + "type":"uint256" + } + ], + "name":"redeemUnderlying", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"uint256", + "name":"repayAmount", + "type":"uint256" + } + ], + "name":"repayBorrow", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"borrower", + "type":"address" + }, + { + "internalType":"uint256", + "name":"repayAmount", + "type":"uint256" + } + ], + "name":"repayBorrowBehalf", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[ + + ], + "name":"reserveFactorMantissa", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"liquidator", + "type":"address" + }, + { + "internalType":"address", + "name":"borrower", + "type":"address" + }, + { + "internalType":"uint256", + "name":"seizeTokens", + "type":"uint256" + } + ], + "name":"seize", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[ + + ], + "name":"supplyRatePerBlock", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"contract EIP20NonStandardInterface", + "name":"token", + "type":"address" + } + ], + "name":"sweepToken", + "outputs":[ + + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[ + + ], + "name":"symbol", + "outputs":[ + { + "internalType":"string", + "name":"", + "type":"string" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + + ], + "name":"totalBorrows", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + + ], + "name":"totalBorrowsCurrent", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[ + + ], + "name":"totalReserves", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":true, + "inputs":[ + + ], + "name":"totalSupply", + "outputs":[ + { + "internalType":"uint256", + "name":"", + "type":"uint256" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"dst", + "type":"address" + }, + { + "internalType":"uint256", + "name":"amount", + "type":"uint256" + } + ], + "name":"transfer", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":false, + "inputs":[ + { + "internalType":"address", + "name":"src", + "type":"address" + }, + { + "internalType":"address", + "name":"dst", + "type":"address" + }, + { + "internalType":"uint256", + "name":"amount", + "type":"uint256" + } + ], + "name":"transferFrom", + "outputs":[ + { + "internalType":"bool", + "name":"", + "type":"bool" + } + ], + "payable":false, + "stateMutability":"nonpayable", + "type":"function" + }, + { + "constant":true, + "inputs":[ + + ], + "name":"underlying", + "outputs":[ + { + "internalType":"address", + "name":"", + "type":"address" + } + ], + "payable":false, + "stateMutability":"view", + "type":"function" } ] } \ No newline at end of file diff --git a/networks/mainnet.json b/networks/mainnet.json index d0aafd5b9..ad54e7ac8 100755 --- a/networks/mainnet.json +++ b/networks/mainnet.json @@ -94,7 +94,11 @@ "IRM_UNI_Updateable": "0xd88b94128ff2b8cf2d7886cd1c1e46757418ca2a", "GovernorBravoDelegator": "0xc0da02939e1441f497fd74f78ce7decb17b66529", "GovernorBravoDelegateG1": "0xAAAaaAAAaaaa8FdB04F544F4EEe52939CddCe378", - "GovernorBravoDelegate": "0x563a63d650a5d259abae9248dddc6867813d3f87" + "GovernorBravoDelegate": "0x563a63d650a5d259abae9248dddc6867813d3f87", + "FRAX": "0x853d955acef822db058eb8505911ed77f175b99e", + "cFRAX": "0xe7373A0D692F60400AF4A5ac6dfB927840414F86", + "cFRAXDelegate": "0xa035b9e130f2b1aedc733eefb1c67ba4c503491f", + "Proposal84PriceFeed": "0xA469ddB19F903F4de66FdAE32Eb0d5a87C3826b3" }, "Blocks": { "cAAVEDelegate": 12654137, @@ -161,7 +165,10 @@ "IRM_UNI_Updateable": 11015612, "GovernorBravoDelegator": 12006099, "GovernorBravoDelegateG1": 12005518, - "GovernorBravoDelegate": 13170179 + "GovernorBravoDelegate": 13170179, + "cFRAX": 14137842, + "cFRAXDelegate": 12654137, + "Proposal84PriceFeed": 14138152 }, "PriceData": { "description": "Open Oracle Price Data", @@ -326,7 +333,8 @@ "IRM_UNI_Updateable": "?", "GovernorBravoDelegate": "0x", "GovernorBravoDelegateG1": "0x", - "GovernorBravoDelegator": "0x0000000000000000000000006d903f6003cca6255d85cca4d3b5e5146dc33925000000000000000000000000c00e94cb662c3520282e6f5717214004a7f268880000000000000000000000006d903f6003cca6255d85cca4d3b5e5146dc33925000000000000000000000000aaaaaaaaaaaa8fdb04f544f4eee52939cddce3780000000000000000000000000000000000000000000000000000000000004380000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000152d02c7e14af6800000" + "GovernorBravoDelegator": "0x0000000000000000000000006d903f6003cca6255d85cca4d3b5e5146dc33925000000000000000000000000c00e94cb662c3520282e6f5717214004a7f268880000000000000000000000006d903f6003cca6255d85cca4d3b5e5146dc33925000000000000000000000000aaaaaaaaaaaa8fdb04f544f4eee52939cddce3780000000000000000000000000000000000000000000000000000000000004380000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000152d02c7e14af6800000", + "cFRAX": "000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000080000000000000000000000006d903f6003cca6255d85cca4d3b5e5146dc3392500000000000000000000000024aa720906378bb8364228bddb8cabbc1f6fe1ba00000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000d436f6d706f756e64204672617800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000563465241580000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, "Tokens": { "AAVE": { @@ -452,6 +460,13 @@ "decimals": 18, "address": "0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2", "contract": "Maker" + }, + "FRAX": { + "name":"Frax", + "symbol":"FRAX", + "decimals": 18, + "address": "0x853d955acef822db058eb8505911ed77f175b99e", + "contract:": "Frax" } }, "CTokenDelegate": { @@ -509,6 +524,11 @@ "address": "0xa035b9e130f2b1aedc733eefb1c67ba4c503491f", "contract": "CErc20Delegate", "description": "Standard CErc20 Delegate" + }, + "cFRAXDelegate": { + "address": "0xa035b9e130f2b1aedc733eefb1c67ba4c503491f", + "contract": "CErc20Delegate", + "description": "Standard CErc20 Delegate" } }, "cTokens": { @@ -675,6 +695,15 @@ "contract": "CErc20Delegator", "initial_exchange_rate_mantissa": "200000000000000000000000000", "address": "0x95b4eF2869eBD94BEb4eEE400a99824BF5DC325b" + }, + "cFRAX": { + "name": "Compound Frax", + "symbol": "cFRAX", + "decimals": 8, + "underlying": "0x853d955acef822db058eb8505911ed77f175b99e", + "contract": "CErc20Delegator", + "initial_exchange_rate_mantissa": "200000000000000000000000000", + "address": "0xe7373A0D692F60400AF4A5ac6dfB927840414F86" } }, "InterestRateModel": { diff --git a/spec/sim/0084-add-market-frax/hypothetical_proposal.sim b/spec/sim/0084-add-market-frax/hypothetical_proposal.sim new file mode 100755 index 000000000..8d82c9d6a --- /dev/null +++ b/spec/sim/0084-add-market-frax/hypothetical_proposal.sim @@ -0,0 +1,79 @@ +#!/usr/bin/env -S yarn repl -s + +-- Adapted from TylerEther's USDP & FEI tests -- + +PrintTransactionLogs + +-- Token holder addresses for mocking +Alias CompHolder "0x7587caefc8096f5f40acb83a09df031a018c66ec" -- Compound Team 2 +Alias CompHolder2 "0x5608169973d639649196A84EE4085a708bcBf397" -- Compound Team 3 +Alias TokenHolder "0xC564EE9f21Ed8A2d8E7e76c085740d5e4c5FaFbE" -- AnySwap Fantom Bridge +Alias CUSDCHolder "0xBE0eB53F46cd790Cd13851d5EFf43D12404d33E8" -- Binance 7 + +-- New oracle address +Alias NewOracle "0xA469ddB19F903F4de66FdAE32Eb0d5a87C3826b3" + +Web3Fork "https://mainnet-eth.compound.finance/@14138248" (CompHolder CompHolder2 TokenHolder CUSDCHolder) +UseConfigs mainnet + +-------------------------------------------------------------------- +-- Governance proposal +-------------------------------------------------------------------- +-- Delegate and propose +From CompHolder (Comp Delegate CompHolder) +From CompHolder2 (Comp Delegate CompHolder) +From CompHolder (GovernorBravo GovernorBravo Propose "Add FRAX Market" [(Address Comptroller) (Address Comptroller) (Address cFRAX)] [0 0 0] ["_setPriceOracle(address)" "_supportMarket(address)" "_setReserveFactor(uint256)"] [[(Address NewOracle)] [(Address cFRAX)] [250000000000000000]]) + +-- Fast forward, vote, queue, execute +MineBlock +AdvanceBlocks 14000 +From CompHolder (GovernorBravo GovernorBravo Proposal LastProposal Vote For) +AdvanceBlocks 20000 +GovernorBravo GovernorBravo Proposal LastProposal Queue +IncreaseTime 604910 +GovernorBravo GovernorBravo Proposal LastProposal Execute + +-------------------------------------------------------------------- +-- Market supported test +-------------------------------------------------------------------- +Assert True (Comptroller CheckListed cFRAX) + +-------------------------------------------------------------------- +-- Accrue interest test +-------------------------------------------------------------------- +CToken cFRAX AccrueInterest + +-------------------------------------------------------------------- +-- Mint test +-------------------------------------------------------------------- +From TokenHolder (Erc20 FRAX Approve (Address cFRAX) 10e18) +Expect Changes (Erc20 FRAX TokenBalance TokenHolder) -10e18 +Expect Changes (Erc20 FRAX TokenBalance cFRAX) +10e18 +From TokenHolder (CToken cFRAX Mint 10e18) + +-------------------------------------------------------------------- +-- Borrow test +-------------------------------------------------------------------- +-- Deposit collateral +From CUSDCHolder (Erc20 USDC Approve (Address cUSDC) 10000e6) +From CUSDCHolder (CToken cUSDC Mint 1000e6) +From CUSDCHolder (Comptroller EnterMarkets (cUSDC)) +-- Borrow the new token +Expect Changes (Erc20 FRAX TokenBalance CUSDCHolder) +1e18 +Expect Changes (Erc20 FRAX TokenBalance cFRAX) -1e18 +From CUSDCHolder (CToken cFRAX Borrow 1e18) + +-------------------------------------------------------------------- +-- Repay borrow test +-------------------------------------------------------------------- +From CUSDCHolder (Erc20 FRAX Approve (Address cFRAX) 1e18) +Expect Changes (Erc20 FRAX TokenBalance CUSDCHolder) -1e18 +Expect Changes (Erc20 FRAX TokenBalance cFRAX) +1e18 +From CUSDCHolder (CToken cFRAX RepayBorrow 1e18) + +-------------------------------------------------------------------- +-- Redeem test (note: 50 cToken == 1 Token initially) +-------------------------------------------------------------------- +From TokenHolder (CToken cFRAX Redeem 50e8) + +Print "Integration ok" \ No newline at end of file