More Info
Private Name Tags
ContractCreator
Multi Chain
Multichain Addresses
9 addresses found via
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
0x60206116 | 14054863 | 610 days 8 hrs ago | IN | Create: Vyper_contract | 0 ETH | 0.33798489 |
Latest 25 internal transactions (View All)
Parent Txn Hash | Block | From | To | Value | ||
---|---|---|---|---|---|---|
18205630 | 6 hrs 22 mins ago | 0.26197876 ETH | ||||
18205630 | 6 hrs 22 mins ago | 0.26197876 ETH | ||||
18198521 | 1 day 6 hrs ago | 0.25819787 ETH | ||||
18198521 | 1 day 6 hrs ago | 0.25819787 ETH | ||||
18191377 | 2 days 6 hrs ago | 0.27600545 ETH | ||||
18191377 | 2 days 6 hrs ago | 0.27600545 ETH | ||||
18184233 | 3 days 6 hrs ago | 0.28691114 ETH | ||||
18184233 | 3 days 6 hrs ago | 0.28691114 ETH | ||||
18177073 | 4 days 6 hrs ago | 0.28934429 ETH | ||||
18177073 | 4 days 6 hrs ago | 0.28934429 ETH | ||||
18169927 | 5 days 6 hrs ago | 0.2848815 ETH | ||||
18169927 | 5 days 6 hrs ago | 0.2848815 ETH | ||||
18162796 | 6 days 6 hrs ago | 0.26628018 ETH | ||||
18162796 | 6 days 6 hrs ago | 0.26628018 ETH | ||||
18155729 | 7 days 6 hrs ago | 0.25368587 ETH | ||||
18155729 | 7 days 6 hrs ago | 0.25368587 ETH | ||||
18148694 | 8 days 6 hrs ago | 0.26936703 ETH | ||||
18148694 | 8 days 6 hrs ago | 0.26936703 ETH | ||||
18141597 | 9 days 6 hrs ago | 0.28033185 ETH | ||||
18141597 | 9 days 6 hrs ago | 0.28033185 ETH | ||||
18134501 | 10 days 6 hrs ago | 0.26767655 ETH | ||||
18134501 | 10 days 6 hrs ago | 0.26767655 ETH | ||||
18127360 | 11 days 6 hrs ago | 0.28724522 ETH | ||||
18127360 | 11 days 6 hrs ago | 0.28724522 ETH | ||||
18120234 | 12 days 6 hrs ago | 0.3217613 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Vyper_contract
Compiler Version
vyper:0.3.1
Contract Source Code (Vyper language format)
# @version 0.3.1 # @author skozin, krogla <[email protected]> # @licence MIT from vyper.interfaces import ERC20 interface ERC20Decimals: def decimals() -> uint256: view interface ChainlinkAggregatorV3Interface: def decimals() -> uint256: view # (roundId: uint80, answer: int256, startedAt: uint256, updatedAt: uint256, answeredInRound: uint80) def latestRoundData() -> (uint256, int256, uint256, uint256, uint256): view interface CurvePool: def exchange(i: int128, j: int128, dx: uint256, min_dy: uint256) -> uint256: payable interface CurveMetaPool: def exchange_underlying(i: int128, j: int128, dx: uint256, min_dy: uint256) -> uint256: nonpayable event SoldStethToUST: steth_amount: uint256 eth_amount: uint256 usdc_amount: uint256 ust_amount: uint256 steth_eth_price: uint256 eth_usdc_price: uint256 usdc_ust_price: uint256 event AdminChanged: new_admin: address event PriceDifferenceChanged: max_steth_eth_price_difference_percent: uint256 max_eth_usdc_price_difference_percent: uint256 max_usdc_ust_price_difference_percent: uint256 max_steth_ust_price_difference_percent: uint256 event UniswapUSDCPoolFeeChanged: fee: uint256 UST_TOKEN: constant(address) = 0xa693B19d2931d498c5B318dF961919BB4aee87a5 UST_TOKEN_DECIMALS: constant(uint256) = 6 USDC_TOKEN: constant(address) = 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 USDC_TOKEN_DECIMALS: constant(uint256) = 6 STETH_TOKEN: constant(address) = 0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84 STETH_TOKEN_DECIMALS: constant(uint256) = 18 WETH_TOKEN: constant(address) = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 WETH_TOKEN_DECIMALS: constant(uint256) = 18 CHAINLINK_STETH_ETH_FEED: constant(address) = 0x86392dC19c0b719886221c78AB11eb8Cf5c52812 CHAINLINK_UST_ETH_FEED: constant(address) = 0xa20623070413d42a5C01Db2c8111640DD7A5A03a CHAINLINK_USDC_ETH_FEED: constant(address) = 0x986b5E1e1755e3C2440e960477f25201B0a8bbD4 CURVE_STETH_POOL: constant(address) = 0xDC24316b9AE028F1497c275EB9192a3Ea0f67022 CURVE_UST_POOL: constant(address) = 0xCEAF7747579696A2F0bb206a14210e3c9e6fB269 UNISWAP_ROUTER_V3: constant(address) = 0xE592427A0AEce92De3Edee1F18E0157C05861564 CURVE_ETH_INDEX: constant(uint256) = 0 CURVE_STETH_INDEX: constant(uint256) = 1 CURVE_USDC_UNDERLYING_INDEX: constant(uint256) = 2 CURVE_UST_UNDERLYING_INDEX: constant(uint256) = 0 # An address that is allowed to configure the liquidator settings. admin: public(address) # An address that is allowed to sell. vault: public(address) # Maximum difference (in percents multiplied by 10**18) between the resulting # stETH/ETH price and the stETH/ETH anchor price obtained from the feed. max_steth_eth_price_difference_percent: public(uint256) # Maximum difference (in percents multiplied by 10**18) between the resulting # ETH/USDC price and the ETH/USDC anchor price obtained from the feed. max_eth_usdc_price_difference_percent: public(uint256) # Maximum difference (in percents multiplied by 10**18) between the resulting # USDC/UST price and the USDC/USD anchor price obtained from the feed. max_usdc_ust_price_difference_percent: public(uint256) # Maximum difference (in percents multiplied by 10**18) between the resulting # stETH/UST price and the stETH/USD anchor price obtained from the feed. max_steth_ust_price_difference_percent: public(uint256) # Uniswap pool fee (required for pool selection) uniswap_usdc_pool_fee: public(uint256) @external def __init__( vault: address, admin: address, max_steth_eth_price_difference_percent: uint256, max_eth_usdc_price_difference_percent: uint256, max_usdc_ust_price_difference_percent: uint256, max_steth_ust_price_difference_percent: uint256 ): assert ERC20Decimals(USDC_TOKEN).decimals() == USDC_TOKEN_DECIMALS assert ERC20Decimals(UST_TOKEN).decimals() == UST_TOKEN_DECIMALS assert ERC20Decimals(STETH_TOKEN).decimals() == STETH_TOKEN_DECIMALS self.vault = vault self.admin = admin log AdminChanged(self.admin) self.uniswap_usdc_pool_fee = 3000 # initially we use a pool with a commission of 0.3% log UniswapUSDCPoolFeeChanged(self.uniswap_usdc_pool_fee) assert max_steth_eth_price_difference_percent <= 10**18, "invalid percentage" assert max_eth_usdc_price_difference_percent <= 10**18, "invalid percentage" assert max_usdc_ust_price_difference_percent <= 10**18, "invalid percentage" assert max_steth_ust_price_difference_percent <= 10**18, "invalid percentage" self.max_steth_eth_price_difference_percent = max_steth_eth_price_difference_percent self.max_eth_usdc_price_difference_percent = max_eth_usdc_price_difference_percent self.max_usdc_ust_price_difference_percent = max_usdc_ust_price_difference_percent self.max_steth_ust_price_difference_percent = max_steth_ust_price_difference_percent log PriceDifferenceChanged( self.max_steth_eth_price_difference_percent, self.max_eth_usdc_price_difference_percent, self.max_usdc_ust_price_difference_percent, self.max_steth_ust_price_difference_percent ) @external @payable def __default__(): pass @external def change_admin(new_admin: address): assert msg.sender == self.admin, "unauthorized" self.admin = new_admin log AdminChanged(self.admin) @external def set_uniswap_usdc_pool_fee( fee: uint256 ): assert msg.sender == self.admin, "unauthorized" assert fee > 0, "invalid uniswap_usdc_pool_fee" self.uniswap_usdc_pool_fee = fee log UniswapUSDCPoolFeeChanged(self.uniswap_usdc_pool_fee) @external def configure( max_steth_eth_price_difference_percent: uint256, max_eth_usdc_price_difference_percent: uint256, max_usdc_ust_price_difference_percent: uint256, max_steth_ust_price_difference_percent: uint256 ): assert msg.sender == self.admin, "unauthorized" assert max_steth_eth_price_difference_percent <= 10**18, "invalid percentage" assert max_eth_usdc_price_difference_percent <= 10**18, "invalid percentage" assert max_usdc_ust_price_difference_percent <= 10**18, "invalid percentage" assert max_steth_ust_price_difference_percent <= 10**18, "invalid percentage" self.max_steth_eth_price_difference_percent = max_steth_eth_price_difference_percent self.max_eth_usdc_price_difference_percent = max_eth_usdc_price_difference_percent self.max_usdc_ust_price_difference_percent = max_usdc_ust_price_difference_percent self.max_steth_ust_price_difference_percent = max_steth_ust_price_difference_percent log PriceDifferenceChanged( self.max_steth_eth_price_difference_percent, self.max_eth_usdc_price_difference_percent, self.max_usdc_ust_price_difference_percent, self.max_steth_ust_price_difference_percent ) @internal @view def _get_chainlink_price(chainlink_price_feed: address) -> uint256: price_decimals: uint256 = ChainlinkAggregatorV3Interface(chainlink_price_feed).decimals() assert 0 < price_decimals and price_decimals <= 18 round_id: uint256 = 0 answer: int256 = 0 started_at: uint256 = 0 updated_at: uint256 = 0 answered_in_round: uint256 = 0 (round_id, answer, started_at, updated_at, answered_in_round) = \ ChainlinkAggregatorV3Interface(chainlink_price_feed).latestRoundData() assert updated_at != 0 # forced conversion to 18 decimal places return convert(answer, uint256) * (10 ** (18 - price_decimals)) @internal @view def _get_inverse_rate(price: uint256) -> uint256: return (10 ** 36) / price @internal @view def _get_chainlink_cross_price(priceA: uint256, priceB: uint256) -> uint256: return (priceA * priceB) / (10 ** 18) @internal def _uniswap_v3_sell_eth_to_usdc( eth_amount_in: uint256, usdc_amount_out_min: uint256, usdc_recipient: address ) -> uint256: result: Bytes[32] = raw_call( UNISWAP_ROUTER_V3, concat( method_id("exactInputSingle((address,address,uint24,address,uint256,uint256,uint256,uint160))"), convert(WETH_TOKEN, bytes32), convert(USDC_TOKEN, bytes32), convert(self.uniswap_usdc_pool_fee, bytes32), #pool fee convert(usdc_recipient, bytes32), #recipient convert(block.timestamp, bytes32), #deadline convert(eth_amount_in, bytes32), convert(usdc_amount_out_min, bytes32), convert(0, bytes32), #sqrtPriceLimitX96 ), value=eth_amount_in, max_outsize=32 ) return convert(result, uint256) @internal @pure def _get_min_amount_out( amount: uint256, price: uint256, max_diff_percent: uint256, decimal_token_in: uint256, decimal_token_out: uint256 ) -> uint256: # = (amount * (10 ** (18 - decimal_token_in)) * price) / 10 ** 18 amount_out: uint256 = (amount * price) / (10 ** decimal_token_in) min_mult: uint256 = 10**18 - max_diff_percent # = ((amount_out * min_mult) / 10**18) / (10 ** (18 - decimal_token_out)) return (amount_out * min_mult) / (10 ** (36 - decimal_token_out)) # 1) stETH -> ETH (Curve) # 2) ETH -> USDC (Uniswap v3) # 3) USDC -> UST (Curve) @external def liquidate(ust_recipient: address) -> uint256: assert msg.sender == self.vault, "unauthorized" steth_amount: uint256 = ERC20(STETH_TOKEN).balanceOf(self) assert steth_amount > 0, "zero stETH balance" # steth -> eth steth_eth_price: uint256 = self._get_chainlink_price(CHAINLINK_STETH_ETH_FEED) min_eth_amount: uint256 = self._get_min_amount_out( steth_amount, steth_eth_price, self.max_steth_eth_price_difference_percent, STETH_TOKEN_DECIMALS, WETH_TOKEN_DECIMALS ) ERC20(STETH_TOKEN).approve(CURVE_STETH_POOL, steth_amount) CurvePool(CURVE_STETH_POOL).exchange( CURVE_STETH_INDEX, CURVE_ETH_INDEX, steth_amount, 0 # do not require a minimum amount ) eth_amount: uint256 = self.balance assert eth_amount >= min_eth_amount, "insuff. ETH return" # eth -> usdc usdc_eth_price: uint256 = self._get_chainlink_price(CHAINLINK_USDC_ETH_FEED) eth_usdc_price: uint256 = self._get_inverse_rate(usdc_eth_price) min_usdc_amount: uint256 = self._get_min_amount_out( eth_amount, eth_usdc_price, self.max_eth_usdc_price_difference_percent, WETH_TOKEN_DECIMALS, USDC_TOKEN_DECIMALS ) self._uniswap_v3_sell_eth_to_usdc( eth_amount, 0, # do not require a minimum amount self ) usdc_amount: uint256 = ERC20(USDC_TOKEN).balanceOf(self) assert usdc_amount >= min_usdc_amount, "insuff. USDC return" # usdc -> ust eth_ust_price: uint256 = self._get_inverse_rate(self._get_chainlink_price(CHAINLINK_UST_ETH_FEED)) usdc_ust_price: uint256 = self._get_chainlink_cross_price(usdc_eth_price, eth_ust_price) min_ust_amount: uint256 = self._get_min_amount_out( usdc_amount, usdc_ust_price, self.max_usdc_ust_price_difference_percent, USDC_TOKEN_DECIMALS, UST_TOKEN_DECIMALS ) ERC20(USDC_TOKEN).approve(CURVE_UST_POOL, usdc_amount) CurveMetaPool(CURVE_UST_POOL).exchange_underlying( CURVE_USDC_UNDERLYING_INDEX, CURVE_UST_UNDERLYING_INDEX, usdc_amount, 0 # do not require a minimum amount ) ust_amount: uint256 = ERC20(UST_TOKEN).balanceOf(self) assert ust_amount >= min_ust_amount, "insuff. UST return" # final overall check steth_ust_price: uint256 = self._get_chainlink_cross_price(steth_eth_price, eth_ust_price) min_ust_amount = self._get_min_amount_out( steth_amount, steth_ust_price, self.max_steth_ust_price_difference_percent, STETH_TOKEN_DECIMALS, UST_TOKEN_DECIMALS ) assert ust_amount >= min_ust_amount, "insuff. overall UST return" ERC20(UST_TOKEN).transfer(ust_recipient, ust_amount) log SoldStethToUST( steth_amount, eth_amount, usdc_amount, ust_amount, steth_eth_price, eth_usdc_price, usdc_ust_price ) return ust_amount
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"name":"SoldStethToUST","inputs":[{"name":"steth_amount","type":"uint256","indexed":false},{"name":"eth_amount","type":"uint256","indexed":false},{"name":"usdc_amount","type":"uint256","indexed":false},{"name":"ust_amount","type":"uint256","indexed":false},{"name":"steth_eth_price","type":"uint256","indexed":false},{"name":"eth_usdc_price","type":"uint256","indexed":false},{"name":"usdc_ust_price","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"AdminChanged","inputs":[{"name":"new_admin","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"PriceDifferenceChanged","inputs":[{"name":"max_steth_eth_price_difference_percent","type":"uint256","indexed":false},{"name":"max_eth_usdc_price_difference_percent","type":"uint256","indexed":false},{"name":"max_usdc_ust_price_difference_percent","type":"uint256","indexed":false},{"name":"max_steth_ust_price_difference_percent","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"UniswapUSDCPoolFeeChanged","inputs":[{"name":"fee","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"vault","type":"address"},{"name":"admin","type":"address"},{"name":"max_steth_eth_price_difference_percent","type":"uint256"},{"name":"max_eth_usdc_price_difference_percent","type":"uint256"},{"name":"max_usdc_ust_price_difference_percent","type":"uint256"},{"name":"max_steth_ust_price_difference_percent","type":"uint256"}],"outputs":[]},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"nonpayable","type":"function","name":"change_admin","inputs":[{"name":"new_admin","type":"address"}],"outputs":[],"gas":44958},{"stateMutability":"nonpayable","type":"function","name":"set_uniswap_usdc_pool_fee","inputs":[{"name":"fee","type":"uint256"}],"outputs":[],"gas":48260},{"stateMutability":"nonpayable","type":"function","name":"configure","inputs":[{"name":"max_steth_eth_price_difference_percent","type":"uint256"},{"name":"max_eth_usdc_price_difference_percent","type":"uint256"},{"name":"max_usdc_ust_price_difference_percent","type":"uint256"},{"name":"max_steth_ust_price_difference_percent","type":"uint256"}],"outputs":[],"gas":170715},{"stateMutability":"nonpayable","type":"function","name":"liquidate","inputs":[{"name":"ust_recipient","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":125312},{"stateMutability":"view","type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2670},{"stateMutability":"view","type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2700},{"stateMutability":"view","type":"function","name":"max_steth_eth_price_difference_percent","inputs":[],"outputs":[{"name":"","type":"uint256"}],"gas":2730},{"stateMutability":"view","type":"function","name":"max_eth_usdc_price_difference_percent","inputs":[],"outputs":[{"name":"","type":"uint256"}],"gas":2760},{"stateMutability":"view","type":"function","name":"max_usdc_ust_price_difference_percent","inputs":[],"outputs":[{"name":"","type":"uint256"}],"gas":2790},{"stateMutability":"view","type":"function","name":"max_steth_ust_price_difference_percent","inputs":[],"outputs":[{"name":"","type":"uint256"}],"gas":2820},{"stateMutability":"view","type":"function","name":"uniswap_usdc_pool_fee","inputs":[],"outputs":[{"name":"","type":"uint256"}],"gas":2850}]
Contract Creation Code
602061167a6080396080518060a01c6116755760e0526020602061167a016080396080518060a01c6116755761010052600663313ce567610120526020610120600461013c73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb485afa61006a573d600060003e3d6000fd5b601f3d111561167557610120511861167557600663313ce567610120526020610120600461013c73a693b19d2931d498c5b318df961919bb4aee87a55afa6100b7573d600060003e3d6000fd5b601f3d111561167557610120511861167557601263313ce567610120526020610120600461013c73ae7ab96520de3a18e5e111b5eaab095312d7fe845afa610104573d600060003e3d6000fd5b601f3d11156116755761012051186116755760e051600155610100516000557f7ce7ec0b50378fb6c0186ffb5f48325f6593fcb4ca4386f21861af3129188f5c600054610120526020610120a1610bb86006557f1f813fb780c47fcb66639dd51006f6c427a0a8ef9a704388afd756973e9406ed600654610120526020610120a1670de0b6b3a76400006020604061167a016080396080511115610217576012610120527f696e76616c69642070657263656e7461676500000000000000000000000000006101405261012050610120518061014001818260206001820306601f82010390500336823750506308c379a060e0526020610100526101205160206001820306601f820103905060440160fcfd5b670de0b6b3a76400006020606061167a0160803960805111156102a9576012610120527f696e76616c69642070657263656e7461676500000000000000000000000000006101405261012050610120518061014001818260206001820306601f82010390500336823750506308c379a060e0526020610100526101205160206001820306601f820103905060440160fcfd5b670de0b6b3a76400006020608061167a01608039608051111561033b576012610120527f696e76616c69642070657263656e7461676500000000000000000000000000006101405261012050610120518061014001818260206001820306601f82010390500336823750506308c379a060e0526020610100526101205160206001820306601f820103905060440160fcfd5b670de0b6b3a7640000602060a061167a0160803960805111156103cd576012610120527f696e76616c69642070657263656e7461676500000000000000000000000000006101405261012050610120518061014001818260206001820306601f82010390500336823750506308c379a060e0526020610100526101205160206001820306601f820103905060440160fcfd5b6020604061167a016080396080516002556020606061167a016080396080516003556020608061167a01608039608051600455602060a061167a016080396080516005557f1cab61ebc671d9aef529fce39532aed3d80e17be7c9d2077701a6700aaa9c8c2600254610120526003546101405260045461016052600554610180526080610120a161165d56600436101561000d57610e42565b60046000601c3760005163158686b581186100e8576004358060a01c6111ff5760e052346111ff5760005433146100b257600c610100527f756e617574686f72697a656400000000000000000000000000000000000000006101205261010050610100518061012001818260206001820306601f82010390500336823750506308c379a060c052602060e0526101005160206001820306601f820103905060440160dcfd5b60e0516000557f7ce7ec0b50378fb6c0186ffb5f48325f6593fcb4ca4386f21861af3129188f5c600054610100526020610100a1005b6364f48335811861021f57346111ff57600054331461017157600c60e0527f756e617574686f72697a656400000000000000000000000000000000000000006101005260e05060e0518061010001818260206001820306601f82010390500336823750506308c379a060a052602060c05260e05160206001820306601f820103905060440160bcfd5b6000600435116101eb57601d60e0527f696e76616c696420756e69737761705f757364635f706f6f6c5f6665650000006101005260e05060e0518061010001818260206001820306601f82010390500336823750506308c379a060a052602060c05260e05160206001820306601f820103905060440160bcfd5b6004356006557f1f813fb780c47fcb66639dd51006f6c427a0a8ef9a704388afd756973e9406ed60065460e052602060e0a1005b63022fc225811861050b57346111ff5760005433146102a857600c60e0527f756e617574686f72697a656400000000000000000000000000000000000000006101005260e05060e0518061010001818260206001820306601f82010390500336823750506308c379a060a052602060c05260e05160206001820306601f820103905060440160bcfd5b670de0b6b3a7640000600435111561032a57601260e0527f696e76616c69642070657263656e7461676500000000000000000000000000006101005260e05060e0518061010001818260206001820306601f82010390500336823750506308c379a060a052602060c05260e05160206001820306601f820103905060440160bcfd5b670de0b6b3a764000060243511156103ac57601260e0527f696e76616c69642070657263656e7461676500000000000000000000000000006101005260e05060e0518061010001818260206001820306601f82010390500336823750506308c379a060a052602060c05260e05160206001820306601f820103905060440160bcfd5b670de0b6b3a7640000604435111561042e57601260e0527f696e76616c69642070657263656e7461676500000000000000000000000000006101005260e05060e0518061010001818260206001820306601f82010390500336823750506308c379a060a052602060c05260e05160206001820306601f820103905060440160bcfd5b670de0b6b3a764000060643511156104b057601260e0527f696e76616c69642070657263656e7461676500000000000000000000000000006101005260e05060e0518061010001818260206001820306601f82010390500336823750506308c379a060a052602060c05260e05160206001820306601f820103905060440160bcfd5b6004356002556024356003556044356004556064356005557f1cab61ebc671d9aef529fce39532aed3d80e17be7c9d2077701a6700aaa9c8c260025460e052600354610100526004546101205260055461014052608060e0a1005b632f8655688118610d7c576004358060a01c6111ff5761034052346111ff5760015433146105aa57600c610360527f756e617574686f72697a656400000000000000000000000000000000000000006103805261036050610360518061038001818260206001820306601f82010390500336823750506308c379a0610320526020610340526103605160206001820306601f820103905060440161033cfd5b6370a0823161038052306103a0526020610380602461039c73ae7ab96520de3a18e5e111b5eaab095312d7fe845afa6105e8573d600060003e3d6000fd5b601f3d11156111ff5761038051610360526000610360511161067b576012610380527f7a65726f2073744554482062616c616e636500000000000000000000000000006103a0526103805061038051806103a001818260206001820306601f82010390500336823750506308c379a0610340526020610360526103805160206001820306601f820103905060440161035cfd5b7386392dc19c0b719886221c78ab11eb8cf5c5281260e05261069e6103a0610e44565b6103a051610380526103605160e0526103805161010052600254610120526012610140526012610160526106d36103c0611140565b6103c0516103a05263095ea7b36103c05273dc24316b9ae028f1497c275eb9192a3ea0f670226103e052610360516104005260206103c060446103dc600073ae7ab96520de3a18e5e111b5eaab095312d7fe845af1610737573d600060003e3d6000fd5b601f3d11156111ff576103c050633df021246103c05260016103e052600061040052610360516104205260006104405260206103c060846103dc600073dc24316b9ae028f1497c275eb9192a3ea0f670225af1610799573d600060003e3d6000fd5b601f3d11156111ff576103c050476103c0526103a0516103c05110156108305760126103e0527f696e737566662e204554482072657475726e0000000000000000000000000000610400526103e0506103e0518061040001818260206001820306601f82010390500336823750506308c379a06103a05260206103c0526103e05160206001820306601f82010390506044016103bcfd5b73986b5e1e1755e3c2440e960477f25201b0a8bbd460e052610853610400610e44565b610400516103e0526103e05160e05261086d610420610f64565b61042051610400526103c05160e0526104005161010052600354610120526012610140526006610160526108a2610440611140565b61044051610420526103c05160e05260006101005230610120526108c7610440610fb9565b610440506370a082316104605230610480526020610460602461047c73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb485afa610909573d600060003e3d6000fd5b601f3d11156111ff5761046051610440526104205161044051101561099f576013610460527f696e737566662e20555344432072657475726e000000000000000000000000006104805261046050610460518061048001818260206001820306601f82010390500336823750506308c379a0610420526020610440526104605160206001820306601f820103905060440161043cfd5b73a20623070413d42a5c01db2c8111640dd7a5a03a60e0526109c2610480610e44565b610480516104c0526104c05160e0526109dc6104a0610f64565b6104a051610460526103e05160e05261046051610100526109fe6104a0610f89565b6104a051610480526104405160e052610480516101005260045461012052600661014052600661016052610a336104c0611140565b6104c0516104a05263095ea7b36104c05273ceaf7747579696a2f0bb206a14210e3c9e6fb2696104e052610440516105005260206104c060446104dc600073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb485af1610a97573d600060003e3d6000fd5b601f3d11156111ff576104c05063a6417ed66104c05260026104e052600061050052610440516105205260006105405260206104c060846104dc600073ceaf7747579696a2f0bb206a14210e3c9e6fb2695af1610af9573d600060003e3d6000fd5b601f3d11156111ff576104c0506370a082316104e052306105005260206104e060246104fc73a693b19d2931d498c5b318df961919bb4aee87a55afa610b44573d600060003e3d6000fd5b601f3d11156111ff576104e0516104c0526104a0516104c0511015610bda5760126104e0527f696e737566662e205553542072657475726e0000000000000000000000000000610500526104e0506104e0518061050001818260206001820306601f82010390500336823750506308c379a06104a05260206104c0526104e05160206001820306601f82010390506044016104bcfd5b6103805160e0526104605161010052610bf4610500610f89565b610500516104e0526103605160e0526104e0516101005260055461012052601261014052600661016052610c29610500611140565b610500516104a0526104a0516104c0511015610cb657601a610500527f696e737566662e206f766572616c6c205553542072657475726e0000000000006105205261050050610500518061052001818260206001820306601f82010390500336823750506308c379a06104c05260206104e0526105005160206001820306601f82010390506044016104dcfd5b63a9059cbb6105005261034051610520526104c051610540526020610500604461051c600073a693b19d2931d498c5b318df961919bb4aee87a55af1610d01573d600060003e3d6000fd5b601f3d11156111ff57610500507f6884419c4d6f6863629def79bd30677825c116f246918bfd1ae673a7ed511c3b61036051610500526103c0516105205261044051610540526104c051610560526103805161058052610400516105a052610480516105c05260e0610500a16104c051610500526020610500f35b63f851a4408118610d9857346111ff5760005460e052602060e0f35b63fbfa77cf8118610db457346111ff5760015460e052602060e0f35b637b19812f8118610dd057346111ff5760025460e052602060e0f35b6310a052658118610dec57346111ff5760035460e052602060e0f35b63bec54b0e8118610e0857346111ff5760045460e052602060e0f35b63d48135ad8118610e2457346111ff5760055460e052602060e0f35b6301a517368118610e4057346111ff5760065460e052602060e0f35b505b005b63313ce567610120526020610120600461013c60e0515afa610e6b573d600060003e3d6000fd5b601f3d11156111ff57610120516101005261010051600010610e8e576000610e97565b60126101005111155b156111ff5760a0366101203763feaf968c6101c05260a06101c060046101dc60e0515afa610eca573d600060003e3d6000fd5b609f3d11156111ff576101c080516101205260208101516101405260408101516101605260608101516101805260808101516101a05250600061018051146111ff5761014051600081126111ff57604e6012610100518082106111ff578082039050905010156111ff576012610100518082106111ff5780820390509050600a0a8082028215828483041417156111ff5790509050815250565b6ec097ce7bc90715b34b9f100000000060e0518080156111ff57820490509050815250565b60e051610100518082028215828483041417156111ff5790509050670de0b6b3a764000080820490509050815250565b60006004610180527f414bf389000000000000000000000000000000000000000000000000000000006101a0526101806004806020846101c00101826020850160045afa50508051820191505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26020826101c001015260208101905073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb486020826101c00101526020810190506006546020826101c0010152602081019050610120516020826101c0010152602081019050426020826101c001015260208101905060e0516020826101c0010152602081019050610100516020826101c001015260208101905060006020826101c0010152602081019050806101c0526101c0505060206103206101c0516101e060e05173e592427a0aece92de3edee1f18e0157c058615645af16110f8573d600060003e3d6000fd5b61030060203d80821161110b578161110d565b805b905090508152805160200180610140828460045afa90505050610160516101405181816020036008021c90509050815250565b60e051610100518082028215828483041417156111ff5790509050604e6101405110156111ff5761014051600a0a8080156111ff5782049050905061018052670de0b6b3a7640000610120518082106111ff57808203905090506101a052610180516101a0518082028215828483041417156111ff5790509050604e6024610160518082106111ff578082039050905010156111ff576024610160518082106111ff5780820390509050600a0a8080156111ff57820490509050815250565b600080fd5b61045961165d0361045960003961045961165d036000f35b600080fd000000000000000000000000a2f987a546d4cd1c607ee8141276876c26b72bdf0000000000000000000000003cd9f71f80ab08ea5a7dca348b5e94bc595f26a000000000000000000000000000000000000000000000000000354a6ba7a18000000000000000000000000000000000000000000000000000006a94d74f430000000000000000000000000000000000000000000000000000006a94d74f43000000000000000000000000000000000000000000000000000000b1a2bc2ec50000
Deployed Bytecode
0x600436101561000d57610e42565b60046000601c3760005163158686b581186100e8576004358060a01c6111ff5760e052346111ff5760005433146100b257600c610100527f756e617574686f72697a656400000000000000000000000000000000000000006101205261010050610100518061012001818260206001820306601f82010390500336823750506308c379a060c052602060e0526101005160206001820306601f820103905060440160dcfd5b60e0516000557f7ce7ec0b50378fb6c0186ffb5f48325f6593fcb4ca4386f21861af3129188f5c600054610100526020610100a1005b6364f48335811861021f57346111ff57600054331461017157600c60e0527f756e617574686f72697a656400000000000000000000000000000000000000006101005260e05060e0518061010001818260206001820306601f82010390500336823750506308c379a060a052602060c05260e05160206001820306601f820103905060440160bcfd5b6000600435116101eb57601d60e0527f696e76616c696420756e69737761705f757364635f706f6f6c5f6665650000006101005260e05060e0518061010001818260206001820306601f82010390500336823750506308c379a060a052602060c05260e05160206001820306601f820103905060440160bcfd5b6004356006557f1f813fb780c47fcb66639dd51006f6c427a0a8ef9a704388afd756973e9406ed60065460e052602060e0a1005b63022fc225811861050b57346111ff5760005433146102a857600c60e0527f756e617574686f72697a656400000000000000000000000000000000000000006101005260e05060e0518061010001818260206001820306601f82010390500336823750506308c379a060a052602060c05260e05160206001820306601f820103905060440160bcfd5b670de0b6b3a7640000600435111561032a57601260e0527f696e76616c69642070657263656e7461676500000000000000000000000000006101005260e05060e0518061010001818260206001820306601f82010390500336823750506308c379a060a052602060c05260e05160206001820306601f820103905060440160bcfd5b670de0b6b3a764000060243511156103ac57601260e0527f696e76616c69642070657263656e7461676500000000000000000000000000006101005260e05060e0518061010001818260206001820306601f82010390500336823750506308c379a060a052602060c05260e05160206001820306601f820103905060440160bcfd5b670de0b6b3a7640000604435111561042e57601260e0527f696e76616c69642070657263656e7461676500000000000000000000000000006101005260e05060e0518061010001818260206001820306601f82010390500336823750506308c379a060a052602060c05260e05160206001820306601f820103905060440160bcfd5b670de0b6b3a764000060643511156104b057601260e0527f696e76616c69642070657263656e7461676500000000000000000000000000006101005260e05060e0518061010001818260206001820306601f82010390500336823750506308c379a060a052602060c05260e05160206001820306601f820103905060440160bcfd5b6004356002556024356003556044356004556064356005557f1cab61ebc671d9aef529fce39532aed3d80e17be7c9d2077701a6700aaa9c8c260025460e052600354610100526004546101205260055461014052608060e0a1005b632f8655688118610d7c576004358060a01c6111ff5761034052346111ff5760015433146105aa57600c610360527f756e617574686f72697a656400000000000000000000000000000000000000006103805261036050610360518061038001818260206001820306601f82010390500336823750506308c379a0610320526020610340526103605160206001820306601f820103905060440161033cfd5b6370a0823161038052306103a0526020610380602461039c73ae7ab96520de3a18e5e111b5eaab095312d7fe845afa6105e8573d600060003e3d6000fd5b601f3d11156111ff5761038051610360526000610360511161067b576012610380527f7a65726f2073744554482062616c616e636500000000000000000000000000006103a0526103805061038051806103a001818260206001820306601f82010390500336823750506308c379a0610340526020610360526103805160206001820306601f820103905060440161035cfd5b7386392dc19c0b719886221c78ab11eb8cf5c5281260e05261069e6103a0610e44565b6103a051610380526103605160e0526103805161010052600254610120526012610140526012610160526106d36103c0611140565b6103c0516103a05263095ea7b36103c05273dc24316b9ae028f1497c275eb9192a3ea0f670226103e052610360516104005260206103c060446103dc600073ae7ab96520de3a18e5e111b5eaab095312d7fe845af1610737573d600060003e3d6000fd5b601f3d11156111ff576103c050633df021246103c05260016103e052600061040052610360516104205260006104405260206103c060846103dc600073dc24316b9ae028f1497c275eb9192a3ea0f670225af1610799573d600060003e3d6000fd5b601f3d11156111ff576103c050476103c0526103a0516103c05110156108305760126103e0527f696e737566662e204554482072657475726e0000000000000000000000000000610400526103e0506103e0518061040001818260206001820306601f82010390500336823750506308c379a06103a05260206103c0526103e05160206001820306601f82010390506044016103bcfd5b73986b5e1e1755e3c2440e960477f25201b0a8bbd460e052610853610400610e44565b610400516103e0526103e05160e05261086d610420610f64565b61042051610400526103c05160e0526104005161010052600354610120526012610140526006610160526108a2610440611140565b61044051610420526103c05160e05260006101005230610120526108c7610440610fb9565b610440506370a082316104605230610480526020610460602461047c73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb485afa610909573d600060003e3d6000fd5b601f3d11156111ff5761046051610440526104205161044051101561099f576013610460527f696e737566662e20555344432072657475726e000000000000000000000000006104805261046050610460518061048001818260206001820306601f82010390500336823750506308c379a0610420526020610440526104605160206001820306601f820103905060440161043cfd5b73a20623070413d42a5c01db2c8111640dd7a5a03a60e0526109c2610480610e44565b610480516104c0526104c05160e0526109dc6104a0610f64565b6104a051610460526103e05160e05261046051610100526109fe6104a0610f89565b6104a051610480526104405160e052610480516101005260045461012052600661014052600661016052610a336104c0611140565b6104c0516104a05263095ea7b36104c05273ceaf7747579696a2f0bb206a14210e3c9e6fb2696104e052610440516105005260206104c060446104dc600073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb485af1610a97573d600060003e3d6000fd5b601f3d11156111ff576104c05063a6417ed66104c05260026104e052600061050052610440516105205260006105405260206104c060846104dc600073ceaf7747579696a2f0bb206a14210e3c9e6fb2695af1610af9573d600060003e3d6000fd5b601f3d11156111ff576104c0506370a082316104e052306105005260206104e060246104fc73a693b19d2931d498c5b318df961919bb4aee87a55afa610b44573d600060003e3d6000fd5b601f3d11156111ff576104e0516104c0526104a0516104c0511015610bda5760126104e0527f696e737566662e205553542072657475726e0000000000000000000000000000610500526104e0506104e0518061050001818260206001820306601f82010390500336823750506308c379a06104a05260206104c0526104e05160206001820306601f82010390506044016104bcfd5b6103805160e0526104605161010052610bf4610500610f89565b610500516104e0526103605160e0526104e0516101005260055461012052601261014052600661016052610c29610500611140565b610500516104a0526104a0516104c0511015610cb657601a610500527f696e737566662e206f766572616c6c205553542072657475726e0000000000006105205261050050610500518061052001818260206001820306601f82010390500336823750506308c379a06104c05260206104e0526105005160206001820306601f82010390506044016104dcfd5b63a9059cbb6105005261034051610520526104c051610540526020610500604461051c600073a693b19d2931d498c5b318df961919bb4aee87a55af1610d01573d600060003e3d6000fd5b601f3d11156111ff57610500507f6884419c4d6f6863629def79bd30677825c116f246918bfd1ae673a7ed511c3b61036051610500526103c0516105205261044051610540526104c051610560526103805161058052610400516105a052610480516105c05260e0610500a16104c051610500526020610500f35b63f851a4408118610d9857346111ff5760005460e052602060e0f35b63fbfa77cf8118610db457346111ff5760015460e052602060e0f35b637b19812f8118610dd057346111ff5760025460e052602060e0f35b6310a052658118610dec57346111ff5760035460e052602060e0f35b63bec54b0e8118610e0857346111ff5760045460e052602060e0f35b63d48135ad8118610e2457346111ff5760055460e052602060e0f35b6301a517368118610e4057346111ff5760065460e052602060e0f35b505b005b63313ce567610120526020610120600461013c60e0515afa610e6b573d600060003e3d6000fd5b601f3d11156111ff57610120516101005261010051600010610e8e576000610e97565b60126101005111155b156111ff5760a0366101203763feaf968c6101c05260a06101c060046101dc60e0515afa610eca573d600060003e3d6000fd5b609f3d11156111ff576101c080516101205260208101516101405260408101516101605260608101516101805260808101516101a05250600061018051146111ff5761014051600081126111ff57604e6012610100518082106111ff578082039050905010156111ff576012610100518082106111ff5780820390509050600a0a8082028215828483041417156111ff5790509050815250565b6ec097ce7bc90715b34b9f100000000060e0518080156111ff57820490509050815250565b60e051610100518082028215828483041417156111ff5790509050670de0b6b3a764000080820490509050815250565b60006004610180527f414bf389000000000000000000000000000000000000000000000000000000006101a0526101806004806020846101c00101826020850160045afa50508051820191505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26020826101c001015260208101905073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb486020826101c00101526020810190506006546020826101c0010152602081019050610120516020826101c0010152602081019050426020826101c001015260208101905060e0516020826101c0010152602081019050610100516020826101c001015260208101905060006020826101c0010152602081019050806101c0526101c0505060206103206101c0516101e060e05173e592427a0aece92de3edee1f18e0157c058615645af16110f8573d600060003e3d6000fd5b61030060203d80821161110b578161110d565b805b905090508152805160200180610140828460045afa90505050610160516101405181816020036008021c90509050815250565b60e051610100518082028215828483041417156111ff5790509050604e6101405110156111ff5761014051600a0a8080156111ff5782049050905061018052670de0b6b3a7640000610120518082106111ff57808203905090506101a052610180516101a0518082028215828483041417156111ff5790509050604e6024610160518082106111ff578082039050905010156111ff576024610160518082106111ff5780820390509050600a0a8080156111ff57820490509050815250565b600080fd
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000a2f987a546d4cd1c607ee8141276876c26b72bdf0000000000000000000000003cd9f71f80ab08ea5a7dca348b5e94bc595f26a000000000000000000000000000000000000000000000000000354a6ba7a18000000000000000000000000000000000000000000000000000006a94d74f430000000000000000000000000000000000000000000000000000006a94d74f43000000000000000000000000000000000000000000000000000000b1a2bc2ec50000
-----Decoded View---------------
Arg [0] : vault (address): 0xA2F987A546D4CD1c607Ee8141276876C26b72Bdf
Arg [1] : admin (address): 0x3cd9F71F80AB08ea5a7Dca348B5e94BC595f26A0
Arg [2] : max_steth_eth_price_difference_percent (uint256): 15000000000000000
Arg [3] : max_eth_usdc_price_difference_percent (uint256): 30000000000000000
Arg [4] : max_usdc_ust_price_difference_percent (uint256): 30000000000000000
Arg [5] : max_steth_ust_price_difference_percent (uint256): 50000000000000000
-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 000000000000000000000000a2f987a546d4cd1c607ee8141276876c26b72bdf
Arg [1] : 0000000000000000000000003cd9f71f80ab08ea5a7dca348b5e94bc595f26a0
Arg [2] : 00000000000000000000000000000000000000000000000000354a6ba7a18000
Arg [3] : 000000000000000000000000000000000000000000000000006a94d74f430000
Arg [4] : 000000000000000000000000000000000000000000000000006a94d74f430000
Arg [5] : 00000000000000000000000000000000000000000000000000b1a2bc2ec50000
Loading...
Loading
Loading...
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.