More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 14,509 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Remove_liquidity... | 21842485 | 3 days ago | IN | 0 ETH | 0.00054451 | ||||
Remove_liquidity... | 21822383 | 5 days ago | IN | 0 ETH | 0.00055659 | ||||
Remove_liquidity... | 21803713 | 8 days ago | IN | 0 ETH | 0.0004866 | ||||
Remove_liquidity... | 21794687 | 9 days ago | IN | 0 ETH | 0.00064368 | ||||
Remove_liquidity... | 21792042 | 10 days ago | IN | 0 ETH | 0.00054493 | ||||
Remove_liquidity... | 21791314 | 10 days ago | IN | 0 ETH | 0.00049255 | ||||
Remove_liquidity... | 21754770 | 15 days ago | IN | 0 ETH | 0.00114891 | ||||
Remove_liquidity... | 21751004 | 15 days ago | IN | 0 ETH | 0.00137852 | ||||
Remove_liquidity... | 21724991 | 19 days ago | IN | 0 ETH | 0.0027698 | ||||
Remove_liquidity... | 21654410 | 29 days ago | IN | 0 ETH | 0.00415175 | ||||
Remove_liquidity... | 21622994 | 33 days ago | IN | 0 ETH | 0.00391636 | ||||
Remove_liquidity... | 21607660 | 35 days ago | IN | 0 ETH | 0.00105403 | ||||
Remove_liquidity... | 21607291 | 36 days ago | IN | 0 ETH | 0.00087355 | ||||
Remove_liquidity... | 21601187 | 36 days ago | IN | 0 ETH | 0.00125286 | ||||
Remove_liquidity... | 21577802 | 40 days ago | IN | 0 ETH | 0.00169886 | ||||
Remove_liquidity... | 21568792 | 41 days ago | IN | 0 ETH | 0.00380722 | ||||
Remove_liquidity... | 21517758 | 48 days ago | IN | 0 ETH | 0.00297568 | ||||
Remove_liquidity... | 21512441 | 49 days ago | IN | 0 ETH | 0.00136472 | ||||
Remove_liquidity... | 21497097 | 51 days ago | IN | 0 ETH | 0.00168076 | ||||
Remove_liquidity... | 21496995 | 51 days ago | IN | 0 ETH | 0.00180309 | ||||
Remove_liquidity... | 21496870 | 51 days ago | IN | 0 ETH | 0.0018573 | ||||
Remove_liquidity... | 21489499 | 52 days ago | IN | 0 ETH | 0.00240349 | ||||
Remove_liquidity... | 21404430 | 64 days ago | IN | 0 ETH | 0.00300949 | ||||
Remove_liquidity... | 21291005 | 80 days ago | IN | 0 ETH | 0.00213195 | ||||
Remove_liquidity... | 21259396 | 84 days ago | IN | 0 ETH | 0.00381127 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Vyper_contract
Compiler Version
vyper:0.1.0b17
Contract Source Code (Vyper language format)
# A "zap" to deposit/withdraw Curve contract without too many transactions # (c) Curve.Fi, 2020 from vyper.interfaces import ERC20 # External Contracts contract cERC20: def totalSupply() -> uint256: constant def allowance(_owner: address, _spender: address) -> uint256: constant def transfer(_to: address, _value: uint256) -> bool: modifying def transferFrom(_from: address, _to: address, _value: uint256) -> bool: modifying def approve(_spender: address, _value: uint256) -> bool: modifying def burn(_value: uint256): modifying def burnFrom(_to: address, _value: uint256): modifying def name() -> string[64]: constant def symbol() -> string[32]: constant def decimals() -> uint256: constant def balanceOf(arg0: address) -> uint256: constant def mint(mintAmount: uint256) -> uint256: modifying def redeem(redeemTokens: uint256) -> uint256: modifying def redeemUnderlying(redeemAmount: uint256) -> uint256: modifying def exchangeRateStored() -> uint256: constant def exchangeRateCurrent() -> uint256: modifying def supplyRatePerBlock() -> uint256: constant def accrualBlockNumber() -> uint256: constant # Tether transfer-only ABI contract USDT: def transfer(_to: address, _value: uint256): modifying def transferFrom(_from: address, _to: address, _value: uint256): modifying contract Curve: def add_liquidity(amounts: uint256[N_COINS], min_mint_amount: uint256): modifying def remove_liquidity(_amount: uint256, min_amounts: uint256[N_COINS]): modifying def remove_liquidity_imbalance(amounts: uint256[N_COINS], max_burn_amount: uint256): modifying def balances(i: int128) -> uint256: constant def A() -> uint256: constant def fee() -> uint256: constant def owner() -> address: constant N_COINS: constant(int128) = 4 TETHERED: constant(bool[N_COINS]) = [False, False, True, False] USE_LENDING: constant(bool[N_COINS]) = [False, False, False, False] ZERO256: constant(uint256) = 0 # This hack is really bad XXX ZEROS: constant(uint256[N_COINS]) = [ZERO256, ZERO256, ZERO256, ZERO256] # <- change LENDING_PRECISION: constant(uint256) = 10 ** 18 PRECISION: constant(uint256) = 10 ** 18 PRECISION_MUL: constant(uint256[N_COINS]) = [convert(1, uint256), convert(1000000000000, uint256), convert(1000000000000, uint256), convert(1, uint256)] FEE_DENOMINATOR: constant(uint256) = 10 ** 10 FEE_IMPRECISION: constant(uint256) = 25 * 10 ** 8 # % of the fee coins: public(address[N_COINS]) underlying_coins: public(address[N_COINS]) curve: public(address) token: public(address) @public def __init__(_coins: address[N_COINS], _underlying_coins: address[N_COINS], _curve: address, _token: address): self.coins = _coins self.underlying_coins = _underlying_coins self.curve = _curve self.token = _token @public @nonreentrant('lock') def add_liquidity(uamounts: uint256[N_COINS], min_mint_amount: uint256): use_lending: bool[N_COINS] = USE_LENDING tethered: bool[N_COINS] = TETHERED amounts: uint256[N_COINS] = ZEROS for i in range(N_COINS): uamount: uint256 = uamounts[i] if uamount > 0: # Transfer the underlying coin from owner if tethered[i]: USDT(self.underlying_coins[i]).transferFrom( msg.sender, self, uamount) else: assert_modifiable(ERC20(self.underlying_coins[i])\ .transferFrom(msg.sender, self, uamount)) # Mint if needed if use_lending[i]: ERC20(self.underlying_coins[i]).approve(self.coins[i], uamount) ok: uint256 = cERC20(self.coins[i]).mint(uamount) if ok > 0: raise "Could not mint coin" amounts[i] = cERC20(self.coins[i]).balanceOf(self) ERC20(self.coins[i]).approve(self.curve, amounts[i]) else: amounts[i] = uamount ERC20(self.underlying_coins[i]).approve(self.curve, uamount) Curve(self.curve).add_liquidity(amounts, min_mint_amount) tokens: uint256 = ERC20(self.token).balanceOf(self) assert_modifiable(ERC20(self.token).transfer(msg.sender, tokens)) @private def _send_all(_addr: address, min_uamounts: uint256[N_COINS], one: int128): use_lending: bool[N_COINS] = USE_LENDING tethered: bool[N_COINS] = TETHERED for i in range(N_COINS): if (one < 0) or (i == one): if use_lending[i]: _coin: address = self.coins[i] _balance: uint256 = cERC20(_coin).balanceOf(self) if _balance == 0: # Do nothing if there are 0 coins continue ok: uint256 = cERC20(_coin).redeem(_balance) if ok > 0: raise "Could not redeem coin" _ucoin: address = self.underlying_coins[i] _uamount: uint256 = ERC20(_ucoin).balanceOf(self) assert _uamount >= min_uamounts[i], "Not enough coins withdrawn" # Send only if we have something to send if _uamount >= 0: if tethered[i]: USDT(_ucoin).transfer(_addr, _uamount) else: assert_modifiable(ERC20(_ucoin).transfer(_addr, _uamount)) @public @nonreentrant('lock') def remove_liquidity(_amount: uint256, min_uamounts: uint256[N_COINS]): zeros: uint256[N_COINS] = ZEROS assert_modifiable(ERC20(self.token).transferFrom(msg.sender, self, _amount)) Curve(self.curve).remove_liquidity(_amount, zeros) self._send_all(msg.sender, min_uamounts, -1) @public @nonreentrant('lock') def remove_liquidity_imbalance(uamounts: uint256[N_COINS], max_burn_amount: uint256): """ Get max_burn_amount in, remove requested liquidity and transfer back what is left """ use_lending: bool[N_COINS] = USE_LENDING tethered: bool[N_COINS] = TETHERED _token: address = self.token amounts: uint256[N_COINS] = uamounts for i in range(N_COINS): if use_lending[i] and amounts[i] > 0: rate: uint256 = cERC20(self.coins[i]).exchangeRateCurrent() amounts[i] = amounts[i] * LENDING_PRECISION / rate # if not use_lending - all good already # Transfrer max tokens in _tokens: uint256 = ERC20(_token).balanceOf(msg.sender) if _tokens > max_burn_amount: _tokens = max_burn_amount assert_modifiable(ERC20(_token).transferFrom(msg.sender, self, _tokens)) Curve(self.curve).remove_liquidity_imbalance(amounts, max_burn_amount) # Transfer unused tokens back _tokens = ERC20(_token).balanceOf(self) assert_modifiable(ERC20(_token).transfer(msg.sender, _tokens)) # Unwrap and transfer all the coins we've got self._send_all(msg.sender, ZEROS, -1) @private @constant def _xp_mem(rates: uint256[N_COINS], _balances: uint256[N_COINS]) -> uint256[N_COINS]: result: uint256[N_COINS] = rates for i in range(N_COINS): result[i] = result[i] * _balances[i] / PRECISION return result @private @constant def get_D(A: uint256, xp: uint256[N_COINS]) -> uint256: S: uint256 = 0 for _x in xp: S += _x if S == 0: return 0 Dprev: uint256 = 0 D: uint256 = S Ann: uint256 = A * N_COINS for _i in range(255): D_P: uint256 = D for _x in xp: D_P = D_P * D / (_x * N_COINS + 1) # +1 is to prevent /0 Dprev = D D = (Ann * S + D_P * N_COINS) * D / ((Ann - 1) * D + (N_COINS + 1) * D_P) # Equality with the precision of 1 if D > Dprev: if D - Dprev <= 1: break else: if Dprev - D <= 1: break return D @private @constant def get_y(A: uint256, i: int128, _xp: uint256[N_COINS], D: uint256) -> uint256: """ Calculate x[i] if one reduces D from being calculated for _xp to D Done by solving quadratic equation iteratively. x_1**2 + x1 * (sum' - (A*n**n - 1) * D / (A * n**n)) = D ** (n + 1) / (n ** (2 * n) * prod' * A) x_1**2 + b*x_1 = c x_1 = (x_1**2 + c) / (2*x_1 + b) """ # x in the input is converted to the same price/precision assert (i >= 0) and (i < N_COINS) c: uint256 = D S_: uint256 = 0 Ann: uint256 = A * N_COINS _x: uint256 = 0 for _i in range(N_COINS): if _i != i: _x = _xp[_i] else: continue S_ += _x c = c * D / (_x * N_COINS) c = c * D / (Ann * N_COINS) b: uint256 = S_ + D / Ann y_prev: uint256 = 0 y: uint256 = D for _i in range(255): y_prev = y y = (y*y + c) / (2 * y + b - D) # Equality with the precision of 1 if y > y_prev: if y - y_prev <= 1: break else: if y_prev - y <= 1: break return y @private @constant def _calc_withdraw_one_coin(_token_amount: uint256, i: int128, rates: uint256[N_COINS]) -> uint256: # First, need to calculate # * Get current D # * Solve Eqn against y_i for D - _token_amount use_lending: bool[N_COINS] = USE_LENDING # tethered: bool[N_COINS] = TETHERED crv: address = self.curve A: uint256 = Curve(crv).A() fee: uint256 = Curve(crv).fee() * N_COINS / (4 * (N_COINS - 1)) fee += fee * FEE_IMPRECISION / FEE_DENOMINATOR # Overcharge to account for imprecision precisions: uint256[N_COINS] = PRECISION_MUL total_supply: uint256 = ERC20(self.token).totalSupply() xp: uint256[N_COINS] = PRECISION_MUL S: uint256 = 0 for j in range(N_COINS): xp[j] *= Curve(crv).balances(j) if use_lending[j]: # Use stored rate b/c we have imprecision anyway xp[j] = xp[j] * rates[j] / LENDING_PRECISION S += xp[j] # if not use_lending - all good already D0: uint256 = self.get_D(A, xp) D1: uint256 = D0 - _token_amount * D0 / total_supply xp_reduced: uint256[N_COINS] = xp # xp = xp - fee * | xp * D1 / D0 - (xp - S * dD / D0 * (0, ... 1, ..0))| for j in range(N_COINS): dx_expected: uint256 = 0 b_ideal: uint256 = xp[j] * D1 / D0 b_expected: uint256 = xp[j] if j == i: b_expected -= S * (D0 - D1) / D0 if b_ideal >= b_expected: dx_expected = (b_ideal - b_expected) else: dx_expected = (b_expected - b_ideal) xp_reduced[j] -= fee * dx_expected / FEE_DENOMINATOR dy: uint256 = xp_reduced[i] - self.get_y(A, i, xp_reduced, D1) dy = dy / precisions[i] return dy @public @constant def calc_withdraw_one_coin(_token_amount: uint256, i: int128) -> uint256: rates: uint256[N_COINS] = ZEROS use_lending: bool[N_COINS] = USE_LENDING for j in range(N_COINS): if use_lending[j]: rates[j] = cERC20(self.coins[j]).exchangeRateStored() else: rates[j] = 10 ** 18 return self._calc_withdraw_one_coin(_token_amount, i, rates) @public @nonreentrant('lock') def remove_liquidity_one_coin(_token_amount: uint256, i: int128, min_uamount: uint256, donate_dust: bool = False): """ Remove _amount of liquidity all in a form of coin i """ use_lending: bool[N_COINS] = USE_LENDING rates: uint256[N_COINS] = ZEROS _token: address = self.token for j in range(N_COINS): if use_lending[j]: rates[j] = cERC20(self.coins[j]).exchangeRateCurrent() else: rates[j] = LENDING_PRECISION dy: uint256 = self._calc_withdraw_one_coin(_token_amount, i, rates) assert dy >= min_uamount, "Not enough coins removed" assert_modifiable( ERC20(self.token).transferFrom(msg.sender, self, _token_amount)) amounts: uint256[N_COINS] = ZEROS amounts[i] = dy * LENDING_PRECISION / rates[i] token_amount_before: uint256 = ERC20(_token).balanceOf(self) Curve(self.curve).remove_liquidity_imbalance(amounts, _token_amount) # Unwrap and transfer all the coins we've got self._send_all(msg.sender, ZEROS, i) if not donate_dust: # Transfer unused tokens back token_amount_after: uint256 = ERC20(_token).balanceOf(self) if token_amount_after > token_amount_before: assert_modifiable(ERC20(_token).transfer( msg.sender, token_amount_after - token_amount_before) ) @public @nonreentrant('lock') def withdraw_donated_dust(): owner: address = Curve(self.curve).owner() assert msg.sender == owner _token: address = self.token assert_modifiable( ERC20(_token).transfer(owner, ERC20(_token).balanceOf(self)))
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"outputs":[],"inputs":[{"type":"address[4]","name":"_coins"},{"type":"address[4]","name":"_underlying_coins"},{"type":"address","name":"_curve"},{"type":"address","name":"_token"}],"constant":false,"payable":false,"type":"constructor"},{"name":"add_liquidity","outputs":[],"inputs":[{"type":"uint256[4]","name":"uamounts"},{"type":"uint256","name":"min_mint_amount"}],"constant":false,"payable":false,"type":"function","gas":166032},{"name":"remove_liquidity","outputs":[],"inputs":[{"type":"uint256","name":"_amount"},{"type":"uint256[4]","name":"min_uamounts"}],"constant":false,"payable":false,"type":"function","gas":101481},{"name":"remove_liquidity_imbalance","outputs":[],"inputs":[{"type":"uint256[4]","name":"uamounts"},{"type":"uint256","name":"max_burn_amount"}],"constant":false,"payable":false,"type":"function","gas":125088},{"name":"calc_withdraw_one_coin","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"uint256","name":"_token_amount"},{"type":"int128","name":"i"}],"constant":true,"payable":false,"type":"function","gas":3881771},{"name":"remove_liquidity_one_coin","outputs":[],"inputs":[{"type":"uint256","name":"_token_amount"},{"type":"int128","name":"i"},{"type":"uint256","name":"min_uamount"}],"constant":false,"payable":false,"type":"function"},{"name":"remove_liquidity_one_coin","outputs":[],"inputs":[{"type":"uint256","name":"_token_amount"},{"type":"int128","name":"i"},{"type":"uint256","name":"min_uamount"},{"type":"bool","name":"donate_dust"}],"constant":false,"payable":false,"type":"function"},{"name":"withdraw_donated_dust","outputs":[],"inputs":[],"constant":false,"payable":false,"type":"function","gas":63973},{"name":"coins","outputs":[{"type":"address","name":""}],"inputs":[{"type":"int128","name":"arg0"}],"constant":true,"payable":false,"type":"function","gas":1680},{"name":"underlying_coins","outputs":[{"type":"address","name":""}],"inputs":[{"type":"int128","name":"arg0"}],"constant":true,"payable":false,"type":"function","gas":1710},{"name":"curve","outputs":[{"type":"address","name":""}],"inputs":[],"constant":true,"payable":false,"type":"function","gas":1541},{"name":"token","outputs":[{"type":"address","name":""}],"inputs":[],"constant":true,"payable":false,"type":"function","gas":1571}]
Contract Creation Code
740100000000000000000000000000000000000000006020526f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060605274012a05f1fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffed5fa0e000000000000000000000000000000000060a052610140612e776101403934156100a257600080fd5b6020612e7760c03960c05160205181106100bb57600080fd5b5060206020612e770160c03960c05160205181106100d857600080fd5b5060206040612e770160c03960c05160205181106100f557600080fd5b5060206060612e770160c03960c051602051811061011257600080fd5b5060206080612e770160c03960c051602051811061012f57600080fd5b50602060a0612e770160c03960c051602051811061014c57600080fd5b50602060c0612e770160c03960c051602051811061016957600080fd5b50602060e0612e770160c03960c051602051811061018657600080fd5b506020610100612e770160c03960c05160205181106101a457600080fd5b506020610120612e770160c03960c05160205181106101c257600080fd5b50600060c052602060c020610140805182558060200151600183015580604001516002830155806060015160038301555050600160c052602060c0206101c08051825580602001516001830155806040015160028301558060600151600383015550506102405160025561026051600355612e5f56600436101561000d57612c21565b600035601c52740100000000000000000000000000000000000000006020526f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060605274012a05f1fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffed5fa0e000000000000000000000000000000000060a05263029b2f3460005114156107f85762ffffff54156100be57600080fd5b600162ffffff5534156100d057600080fd5b61014060008152600081602001526000816040015260008160600152506101c0600081526000816020015260018160400152600081606001525061024060008152600081602001526000816040015260008160600152506102c060006004818352015b60046102c0516004811061014657600080fd5b60200201356102e05260006102e05111156106c7576101c06102c0516004811061016f57600080fd5b60200201511561021b576102c0516004811061018a57600080fd5b600160c052602060c02001543b6101a057600080fd5b6102c051600481106101b157600080fd5b600160c052602060c020015430186101c857600080fd5b6000600060646323b872dd6103e052336104005230610420526102e051610440526103fc60006102c051600481106101ff57600080fd5b600160c052602060c02001545af161021657600080fd5b6102ca565b6102c0516004811061022c57600080fd5b600160c052602060c02001543b61024257600080fd5b6102c0516004811061025357600080fd5b600160c052602060c0200154301861026a57600080fd5b60206103c060646323b872dd61030052336103205230610340526102e0516103605261031c60006102c051600481106102a257600080fd5b600160c052602060c02001545af16102b957600080fd5b6000506103c0516102c957600080fd5b5b6101406102c051600481106102de57600080fd5b602002015115610606576102c051600481106102f957600080fd5b600160c052602060c02001543b61030f57600080fd5b6102c0516004811061032057600080fd5b600160c052602060c0200154301861033757600080fd5b6020610600604463095ea7b3610560526102c0516004811061035857600080fd5b600060c052602060c0200154610580526102e0516105a05261057c60006102c0516004811061038657600080fd5b600160c052602060c02001545af161039d57600080fd5b600050610600506102c051600481106103b557600080fd5b600060c052602060c02001543b6103cb57600080fd5b6102c051600481106103dc57600080fd5b600060c052602060c020015430186103f357600080fd5b60206106c0602463a0712d68610640526102e0516106605261065c60006102c0516004811061042157600080fd5b600060c052602060c02001545af161043857600080fd5b6000506106c05161062052600061062051111561049b576308c379a06106e0526020610700526013610720527f436f756c64206e6f74206d696e7420636f696e000000000000000000000000006107405261072050600061049a5760846106fcfd5b5b6102c051600481106104ac57600080fd5b600060c052602060c02001543b6104c257600080fd5b6102c051600481106104d357600080fd5b600060c052602060c020015430186104ea57600080fd5b602061080060246370a0823161078052306107a05261079c6102c0516004811061051357600080fd5b600060c052602060c02001545afa61052a57600080fd5b600050610800516102406102c0516004811061054557600080fd5b60200201526102c0516004811061055b57600080fd5b600060c052602060c02001543b61057157600080fd5b6102c0516004811061058257600080fd5b600060c052602060c0200154301861059957600080fd5b60206108c0604463095ea7b361082052600254610840526102406102c051600481106105c457600080fd5b60200201516108605261083c60006102c051600481106105e357600080fd5b600060c052602060c02001545af16105fa57600080fd5b6000506108c0506106c6565b6102e0516102406102c0516004811061061e57600080fd5b60200201526102c0516004811061063457600080fd5b600160c052602060c02001543b61064a57600080fd5b6102c0516004811061065b57600080fd5b600160c052602060c0200154301861067257600080fd5b6020610540604463095ea7b36104a0526002546104c0526102e0516104e0526104bc60006102c051600481106106a757600080fd5b600160c052602060c02001545af16106be57600080fd5b600050610540505b5b5b8151600101808352811415610133575b50506002543b6106e757600080fd5b60025430186106f557600080fd5b6000600060a463029b2f346108e052610900610240805182528060200151826020015280604001518260400152806060015182606001525050608435610980526108fc60006002545af161074857600080fd5b6003543b61075557600080fd5b600354301861076357600080fd5b6020610a8060246370a08231610a005230610a2052610a1c6003545afa61078957600080fd5b600050610a80516109e0526003543b6107a157600080fd5b60035430186107af57600080fd5b6020610b40604463a9059cbb610aa05233610ac0526109e051610ae052610abc60006003545af16107df57600080fd5b600050610b40516107ef57600080fd5b600062ffffff55005b600015610b97575b610200526101405261016052610180526101a0526101c0526101e05261022060008152600081602001526000816040015260008160600152506102a0600081526000816020015260018160400152600081606001525061032060006004818352015b6101e051610320511460006101e051121715610b7e57610220610320516004811061088c57600080fd5b6020020151156109c25761032051600481106108a757600080fd5b600060c052602060c020015461034052610340513b6108c557600080fd5b6103405130186108d457600080fd5b602061040060246370a0823161038052306103a05261039c610340515afa6108fb57600080fd5b600050610400516103605261036051151561091557610b7f565b610340513b61092357600080fd5b61034051301861093257600080fd5b60206104c0602463db006a7561044052610360516104605261045c6000610340515af161095e57600080fd5b6000506104c0516104205260006104205111156109c1576308c379a06104e0526020610500526015610520527f436f756c64206e6f742072656465656d20636f696e0000000000000000000000610540526105205060006109c05760846104fcfd5b5b5b61032051600481106109d357600080fd5b600160c052602060c020015461058052610580513b6109f157600080fd5b610580513018610a0057600080fd5b602061064060246370a082316105c052306105e0526105dc610580515afa610a2757600080fd5b600050610640516105a0526308c379a061066052602061068052601a6106a0527f4e6f7420656e6f75676820636f696e732077697468647261776e0000000000006106c0526106a0506101606103205160048110610a8457600080fd5b60200201516105a0511015610a9a57608461067cfd5b60006105a051101515610b7d576102a06103205160048110610abb57600080fd5b602002015115610b1a57610580513b610ad357600080fd5b610580513018610ae257600080fd5b60006000604463a9059cbb6107c052610140516107e0526105a051610800526107dc6000610580515af1610b1557600080fd5b610b7c565b610580513b610b2857600080fd5b610580513018610b3757600080fd5b60206107a0604463a9059cbb6107005261014051610720526105a0516107405261071c6000610580515af1610b6b57600080fd5b6000506107a051610b7b57600080fd5b5b5b5b5b8151600101808352811415610862575b505061020051565b637d49d8756000511415610d8e5762ffffff5415610bb457600080fd5b600162ffffff553415610bc657600080fd5b61014060008152600081602001526000816040015260008160600152506003543b610bf057600080fd5b6003543018610bfe57600080fd5b602061028060646323b872dd6101c052336101e0523061020052600435610220526101dc60006003545af1610c3257600080fd5b60005061028051610c4257600080fd5b6002543b610c4f57600080fd5b6002543018610c5d57600080fd5b6000600060a4637d49d8756102a0526004356102c0526102e06101408051825280602001518260200152806040015182604001528060600151826060015250506102bc60006002545af1610cb057600080fd5b6101406103a0525b6103a0515160206103a051016103a0526103a06103a0511015610cda57610cb8565b63eb9ec6916103c052336103e05261040060248035825280602001358260200152806040013582604001528060600135826060015250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6104805261048051610460516104405161042051610400516103e05160065801610800565b6103806103a0525b6103a0515260206103a051036103a0526101406103a051101515610d8257610d5f565b600050600062ffffff55005b6318a7bd7660005114156112385762ffffff5415610dab57600080fd5b600162ffffff553415610dbd57600080fd5b61014060008152600081602001526000816040015260008160600152506101c060008152600081602001526001816040015260008160600152506003546102405261026060048035825280602001358260200152806040013582604001528060600135826060015250506102e060006004818352015b60006102606102e05160048110610e4957600080fd5b6020020151116101406102e05160048110610e6357600080fd5b60200201511615610f71576102e05160048110610e7f57600080fd5b600060c052602060c02001543b610e9557600080fd5b6102e05160048110610ea657600080fd5b600060c052602060c02001543018610ebd57600080fd5b6020610380600463bd6d894d6103205261033c60006102e05160048110610ee357600080fd5b600060c052602060c02001545af1610efa57600080fd5b60005061038051610300526102606102e05160048110610f1957600080fd5b6020020151670de0b6b3a76400008082028215828483041417610f3b57600080fd5b80905090509050610300518080610f5157600080fd5b8204905090506102606102e05160048110610f6b57600080fd5b60200201525b5b8151600101808352811415610e33575b5050610240513b610f9257600080fd5b610240513018610fa157600080fd5b602061044060246370a082316103c052336103e0526103dc610240515afa610fc857600080fd5b600050610440516103a0526084356103a0511115610fe8576084356103a0525b610240513b610ff657600080fd5b61024051301861100557600080fd5b602061052060646323b872dd610460523361048052306104a0526103a0516104c05261047c6000610240515af161103b57600080fd5b6000506105205161104b57600080fd5b6002543b61105857600080fd5b600254301861106657600080fd5b6000600060a46318a7bd76610540526105606102608051825280602001518260200152806040015182604001528060600151826060015250506084356105e05261055c60006002545af16110b957600080fd5b610240513b6110c757600080fd5b6102405130186110d657600080fd5b60206106c060246370a0823161064052306106605261065c610240515afa6110fd57600080fd5b6000506106c0516103a052610240513b61111657600080fd5b61024051301861112557600080fd5b6020610780604463a9059cbb6106e05233610700526103a051610720526106fc6000610240515af161115657600080fd5b6000506107805161116657600080fd5b6101406107a0525b6107a0515160206107a051016107a0526107a06107a05110156111905761116e565b63eb9ec6916107c052336107e05261080060008152600081602001526000816040015260008160600152507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108805261088051610860516108405161082051610800516107e05160065801610800565b6107806107a0525b6107a0515260206107a051036107a0526101406107a05110151561122c57611209565b600050600062ffffff55005b600015611369575b610240526101405261016052610180526101a0526101c0526101e05261020052610220526102606101408051825280602001518260200152806040015182604001528060600151826060015250506102e060006004818352015b6102606102e051600481106112ae57600080fd5b60200201516101c06102e051600481106112c757600080fd5b602002015180820282158284830414176112e057600080fd5b80905090509050670de0b6b3a764000080806112fb57600080fd5b8204905090506102606102e0516004811061131557600080fd5b60200201525b815160010180835281141561129a575b50506080610300525b60006103005111151561134657611362565b6020610300510361026001516020610300510361030052611334565b6102405156005b600015611673575b6101e0526101405261016052610180526101a0526101c05260006102005261024060006004818352015b602061024051026101600151610220526102008051610220518181830110156113c357600080fd5b808201905090508152505b815160010180835281141561139b575b50506102005115156113f95760006000526000516101e05156505b600061028052610200516102a052610140516004808202821582848304141761142157600080fd5b809050905090506102c0526102e0600060ff818352015b6102a0516103005261034060006004818352015b60206103405102610160015161032052610300516102a051808202821582848304141761147857600080fd5b80905090509050610320516004808202821582848304141761149957600080fd5b8090509050905060018181830110156114b157600080fd5b8082019050905080806114c357600080fd5b820490509050610300525b815160010180835281141561144c575b50506102a051610280526102c05161020051808202821582848304141761150457600080fd5b80905090509050610300516004808202821582848304141761152557600080fd5b8090509050905081818301101561153b57600080fd5b808201905090506102a051808202821582848304141761155a57600080fd5b809050905090506102c05160018082101561157457600080fd5b808203905090506102a051808202821582848304141761159357600080fd5b8090509050905060056103005180820282158284830414176115b457600080fd5b809050905090508181830110156115ca57600080fd5b8082019050905080806115dc57600080fd5b8204905090506102a052610280516102a05111156116235760016102a051610280518082101561160b57600080fd5b8082039050905011151561161e5761165f565b61164e565b6001610280516102a0518082101561163a57600080fd5b8082039050905011151561164d5761165f565b5b5b8151600101808352811415611438575b50506102a0516000526000516101e0515650005b6000156119a0575b610220526101405261016052610180526101a0526101c0526101e05261020052600461016051126000610160511215166116b457600080fd5b610200516102405260006102605261014051600480820282158284830414176116dc57600080fd5b809050905090506102805260006102a0526102c060006004818352015b610160516102c0511815611729576101806102c0516004811061171b57600080fd5b60200201516102a05261172e565b6117aa565b61026080516102a05181818301101561174657600080fd5b808201905090508152506102405161020051808202821582848304141761176c57600080fd5b809050905090506102a0516004808202821582848304141761178d57600080fd5b80905090509050808061179f57600080fd5b820490509050610240525b81516001018083528114156116f9575b5050610240516102005180820282158284830414176117d857600080fd5b8090509050905061028051600480820282158284830414176117f957600080fd5b80905090509050808061180b57600080fd5b82049050905061024052610260516102005161028051808061182c57600080fd5b82049050905081818301101561184157600080fd5b808201905090506102e0526000610300526102005161032052610340600060ff818352015b61032051610300526103205161032051808202821582848304141761188a57600080fd5b80905090509050610240518181830110156118a457600080fd5b8082019050905060026103205180820282158284830414176118c557600080fd5b809050905090506102e0518181830110156118df57600080fd5b8082019050905061020051808210156118f757600080fd5b80820390509050808061190957600080fd5b820490509050610320526103005161032051111561195057600161032051610300518082101561193857600080fd5b8082039050905011151561194b5761198c565b61197b565b600161030051610320518082101561196757600080fd5b8082039050905011151561197a5761198c565b5b5b8151600101808352811415611866575b505061032051600052600051610220515650005b60001561215e575b610200526101405261016052610180526101a0526101c0526101e05261022060008152600081602001526000816040015260008160600152506002546102a0526102a0513b6119f657600080fd5b6102a0513018611a0557600080fd5b6020610340600463f446c1d06102e0526102fc6102a0515afa611a2757600080fd5b600050610340516102c0526102a0513b611a4057600080fd5b6102a0513018611a4f57600080fd5b60206103e0600463ddca3f436103805261039c6102a0515afa611a7157600080fd5b6000506103e05160048082028215828483041417611a8e57600080fd5b80905090509050600c8080611aa257600080fd5b82049050905061036052610360805161036051639502f9008082028215828483041417611ace57600080fd5b809050905090506402540be4008080611ae657600080fd5b820490509050818183011015611afb57600080fd5b808201905090508152506104006001815264e8d4a51000816020015264e8d4a51000816040015260018160600152506003543b611b3757600080fd5b6003543018611b4557600080fd5b602061050060046318160ddd6104a0526104bc6003545afa611b6657600080fd5b60005061050051610480526105206001815264e8d4a51000816020015264e8d4a510008160400152600181606001525060006105a0526105c060006004818352015b6105206105c05160048110611bbc57600080fd5b6020020180516102a0513b611bd057600080fd5b6102a0513018611bdf57600080fd5b6020610660602463065a80d86105e0526105c051610600526105fc6102a0515afa611c0957600080fd5b600050610660518082028215828483041417611c2457600080fd5b809050905090508152506102206105c05160048110611c4257600080fd5b602002015115611ccd576105206105c05160048110611c6057600080fd5b60200201516101806105c05160048110611c7957600080fd5b60200201518082028215828483041417611c9257600080fd5b80905090509050670de0b6b3a76400008080611cad57600080fd5b8204905090506105206105c05160048110611cc757600080fd5b60200201525b6105a080516105206105c05160048110611ce657600080fd5b6020020151818183011015611cfa57600080fd5b808201905090508152505b8151600101808352811415611ba8575b50506101406106a0525b6106a0515160206106a051016106a0526106a06106a0511015611d4157611d1f565b637b7241516106c0526102c0516106e052610700610520805182528060200151826020015280604001518260400152806060015182606001525050610760516107405161072051610700516106e05160065801611371565b6107c0526106806106a0525b6106a0515260206106a051036106a0526101406106a051101515611dc857611da5565b6107c051610680526106805161014051610680518082028215828483041417611df057600080fd5b80905090509050610480518080611e0657600080fd5b82049050905080821015611e1957600080fd5b808203905090506107e05261080061052080518252806020015182602001528060400151826040015280606001518260600152505061088060006004818352015b60006108a0526105206108805160048110611e7457600080fd5b60200201516107e0518082028215828483041417611e9157600080fd5b80905090509050610680518080611ea757600080fd5b8204905090506108c0526105206108805160048110611ec557600080fd5b60200201516108e05261016051610880511415611f49576108e080516105a051610680516107e05180821015611efa57600080fd5b808203905090508082028215828483041417611f1557600080fd5b80905090509050610680518080611f2b57600080fd5b82049050905080821015611f3e57600080fd5b808203905090508152505b6108e0516108c051101515611f7d576108c0516108e05180821015611f6d57600080fd5b808203905090506108a052611f9e565b6108e0516108c05180821015611f9257600080fd5b808203905090506108a0525b6108006108805160048110611fb257600080fd5b602002018051610360516108a0518082028215828483041417611fd457600080fd5b809050905090506402540be4008080611fec57600080fd5b82049050905080821015611fff57600080fd5b808203905090508152505b8151600101808352811415611e5a575b5050610800610160516004811061203057600080fd5b6020020151610140610920525b6109205151602061092051016109205261092061092051101561205f5761203d565b638643731f610940526102c0516109605261016051610980526109a06108008051825280602001518260200152806040015182604001528060600151826060015250506107e051610a2052610a2051610a00516109e0516109c0516109a05161098051610960516006580161167b565b610a8052610900610920525b61092051526020610920510361092052610140610920511015156120fe576120db565b610a80518082101561210f57600080fd5b808203905090506109005261090051610400610160516004811061213257600080fd5b6020020151808061214257600080fd5b8204905090506109005261090051600052600051610200515650005b63cc2b27d7600051141561239a57341561217757600080fd5b6060516024358060405190131561218d57600080fd5b809190121561219b57600080fd5b5061014060008152600081602001526000816040015260008160600152506101c0600081526000816020015260008160400152600081606001525061024060006004818352015b6101c061024051600481106121f657600080fd5b6020020151156122af57610240516004811061221157600080fd5b600060c052602060c02001543b61222757600080fd5b610240516004811061223857600080fd5b600060c052602060c0200154301861224f57600080fd5b60206102c0600463182df0f56102605261027c610240516004811061227357600080fd5b600060c052602060c02001545afa61228a57600080fd5b6000506102c05161014061024051600481106122a557600080fd5b60200201526122d2565b670de0b6b3a764000061014061024051600481106122cc57600080fd5b60200201525b5b81516001018083528114156121e2575b50506101405161016051610180516101a0516101c0516101e051610200516102205163800c1cbc6103005260043561032052602435610340526103606101408051825280602001518260200152806040015182604001528060600151826060015250506103c0516103a05161038051610360516103405161032051600658016119a8565b6104205261022052610200526101e0526101c0526101a0526101805261016052610140526104205160005260206000f350005b631a4d01d260005114156123b3576000610140526123e9565b63517a55a360005114156123e157606435600281106123d157600080fd5b60206064610140376000506123e9565b6000156129cb575b62ffffff54156123f857600080fd5b600162ffffff55341561240a57600080fd5b6060516024358060405190131561242057600080fd5b809190121561242e57600080fd5b5061016060008152600081602001526000816040015260008160600152506101e060008152600081602001526000816040015260008160600152506003546102605261028060006004818352015b610160610280516004811061249057600080fd5b60200201511561254b5761028051600481106124ab57600080fd5b600060c052602060c02001543b6124c157600080fd5b61028051600481106124d257600080fd5b600060c052602060c020015430186124e957600080fd5b6020610300600463bd6d894d6102a0526102bc6000610280516004811061250f57600080fd5b600060c052602060c02001545af161252657600080fd5b600050610300516101e0610280516004811061254157600080fd5b602002015261256e565b670de0b6b3a76400006101e0610280516004811061256857600080fd5b60200201525b5b815160010180835281141561247c575b5050610140610340525b610340515160206103405101610340526103406103405110156125ab57612589565b63800c1cbc61036052600435610380526024356103a0526103c06101e080518252806020015182602001528060400151826040015280606001518260600152505061042051610400516103e0516103c0516103a05161038051600658016119a8565b61048052610320610340525b610340515260206103405103610340526101406103405110151561263c57612619565b61048051610320526308c379a06104a05260206104c05260186104e0527f4e6f7420656e6f75676820636f696e732072656d6f7665640000000000000000610500526104e0506044356103205110156126965760846104bcfd5b6003543b6126a357600080fd5b60035430186126b157600080fd5b602061060060646323b872dd61054052336105605230610580526004356105a05261055c60006003545af16126e557600080fd5b600050610600516126f557600080fd5b610620600081526000816020015260008160400152600081606001525061032051670de0b6b3a7640000808202821582848304141761273357600080fd5b809050905090506101e06024356004811061274d57600080fd5b6020020151808061275d57600080fd5b8204905090506106206024356004811061277657600080fd5b6020020152610260513b61278957600080fd5b61026051301861279857600080fd5b602061074060246370a082316106c052306106e0526106dc610260515afa6127bf57600080fd5b600050610740516106a0526002543b6127d757600080fd5b60025430186127e557600080fd5b6000600060a46318a7bd76610760526107806106208051825280602001518260200152806040015182604001528060600151826060015250506004356108005261077c60006002545af161283857600080fd5b610140610860525b6108605151602061086051016108605261086061086051101561286257612840565b63eb9ec69161088052336108a0526108c06000815260008160200152600081604001526000816060015250602435610940526109405161092051610900516108e0516108c0516108a05160065801610800565b610840610860525b61086051526020610860510361086052610140610860511015156128e0576128bd565b6000506101405115156129c257610260513b6128fb57600080fd5b61026051301861290a57600080fd5b6020610a4060246370a082316109c052306109e0526109dc610260515afa61293157600080fd5b600050610a40516109a0526106a0516109a05111156129c157610260513b61295857600080fd5b61026051301861296757600080fd5b6020610b00604463a9059cbb610a605233610a80526109a0516106a0518082101561299157600080fd5b80820390509050610aa052610a7c6000610260515af16129b057600080fd5b600050610b00516129c057600080fd5b5b5b600062ffffff55005b636c956a546000511415612b085762ffffff54156129e857600080fd5b600162ffffff5534156129fa57600080fd5b6002543b612a0757600080fd5b6002543018612a1557600080fd5b60206101c06004638da5cb5b6101605261017c6002545afa612a3657600080fd5b6000506101c05161014052610140513314612a5057600080fd5b6003546101e0526101e0513b612a6557600080fd5b6101e0513018612a7457600080fd5b6020610340604463a9059cbb6102a052610140516102c0526101e0513b612a9a57600080fd5b6101e0513018612aa957600080fd5b602061028060246370a0823161020052306102205261021c6101e0515afa612ad057600080fd5b600050610280516102e0526102bc60006101e0515af1612aef57600080fd5b60005061034051612aff57600080fd5b600062ffffff55005b6323746eb86000511415612b6d573415612b2157600080fd5b60605160043580604051901315612b3757600080fd5b8091901215612b4557600080fd5b5060043560048110612b5657600080fd5b600060c052602060c020015460005260206000f350005b63b739953e6000511415612bd2573415612b8657600080fd5b60605160043580604051901315612b9c57600080fd5b8091901215612baa57600080fd5b5060043560048110612bbb57600080fd5b600160c052602060c020015460005260206000f350005b637165485d6000511415612bf9573415612beb57600080fd5b60025460005260206000f350005b63fc0c546a6000511415612c20573415612c1257600080fd5b60035460005260206000f350005b5b60006000fd5b610238612e5f03610238600039610238612e5f036000f30000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000057ab1ec28d129707052df4df418d58a2d46d5f510000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000057ab1ec28d129707052df4df418d58a2d46d5f51000000000000000000000000a5407eae9ba41422680e2e00537571bcc53efbfd000000000000000000000000c25a3a3b969415c80451098fa907ec722572917f
Deployed Bytecode
0x600436101561000d57612c21565b600035601c52740100000000000000000000000000000000000000006020526f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060605274012a05f1fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffed5fa0e000000000000000000000000000000000060a05263029b2f3460005114156107f85762ffffff54156100be57600080fd5b600162ffffff5534156100d057600080fd5b61014060008152600081602001526000816040015260008160600152506101c0600081526000816020015260018160400152600081606001525061024060008152600081602001526000816040015260008160600152506102c060006004818352015b60046102c0516004811061014657600080fd5b60200201356102e05260006102e05111156106c7576101c06102c0516004811061016f57600080fd5b60200201511561021b576102c0516004811061018a57600080fd5b600160c052602060c02001543b6101a057600080fd5b6102c051600481106101b157600080fd5b600160c052602060c020015430186101c857600080fd5b6000600060646323b872dd6103e052336104005230610420526102e051610440526103fc60006102c051600481106101ff57600080fd5b600160c052602060c02001545af161021657600080fd5b6102ca565b6102c0516004811061022c57600080fd5b600160c052602060c02001543b61024257600080fd5b6102c0516004811061025357600080fd5b600160c052602060c0200154301861026a57600080fd5b60206103c060646323b872dd61030052336103205230610340526102e0516103605261031c60006102c051600481106102a257600080fd5b600160c052602060c02001545af16102b957600080fd5b6000506103c0516102c957600080fd5b5b6101406102c051600481106102de57600080fd5b602002015115610606576102c051600481106102f957600080fd5b600160c052602060c02001543b61030f57600080fd5b6102c0516004811061032057600080fd5b600160c052602060c0200154301861033757600080fd5b6020610600604463095ea7b3610560526102c0516004811061035857600080fd5b600060c052602060c0200154610580526102e0516105a05261057c60006102c0516004811061038657600080fd5b600160c052602060c02001545af161039d57600080fd5b600050610600506102c051600481106103b557600080fd5b600060c052602060c02001543b6103cb57600080fd5b6102c051600481106103dc57600080fd5b600060c052602060c020015430186103f357600080fd5b60206106c0602463a0712d68610640526102e0516106605261065c60006102c0516004811061042157600080fd5b600060c052602060c02001545af161043857600080fd5b6000506106c05161062052600061062051111561049b576308c379a06106e0526020610700526013610720527f436f756c64206e6f74206d696e7420636f696e000000000000000000000000006107405261072050600061049a5760846106fcfd5b5b6102c051600481106104ac57600080fd5b600060c052602060c02001543b6104c257600080fd5b6102c051600481106104d357600080fd5b600060c052602060c020015430186104ea57600080fd5b602061080060246370a0823161078052306107a05261079c6102c0516004811061051357600080fd5b600060c052602060c02001545afa61052a57600080fd5b600050610800516102406102c0516004811061054557600080fd5b60200201526102c0516004811061055b57600080fd5b600060c052602060c02001543b61057157600080fd5b6102c0516004811061058257600080fd5b600060c052602060c0200154301861059957600080fd5b60206108c0604463095ea7b361082052600254610840526102406102c051600481106105c457600080fd5b60200201516108605261083c60006102c051600481106105e357600080fd5b600060c052602060c02001545af16105fa57600080fd5b6000506108c0506106c6565b6102e0516102406102c0516004811061061e57600080fd5b60200201526102c0516004811061063457600080fd5b600160c052602060c02001543b61064a57600080fd5b6102c0516004811061065b57600080fd5b600160c052602060c0200154301861067257600080fd5b6020610540604463095ea7b36104a0526002546104c0526102e0516104e0526104bc60006102c051600481106106a757600080fd5b600160c052602060c02001545af16106be57600080fd5b600050610540505b5b5b8151600101808352811415610133575b50506002543b6106e757600080fd5b60025430186106f557600080fd5b6000600060a463029b2f346108e052610900610240805182528060200151826020015280604001518260400152806060015182606001525050608435610980526108fc60006002545af161074857600080fd5b6003543b61075557600080fd5b600354301861076357600080fd5b6020610a8060246370a08231610a005230610a2052610a1c6003545afa61078957600080fd5b600050610a80516109e0526003543b6107a157600080fd5b60035430186107af57600080fd5b6020610b40604463a9059cbb610aa05233610ac0526109e051610ae052610abc60006003545af16107df57600080fd5b600050610b40516107ef57600080fd5b600062ffffff55005b600015610b97575b610200526101405261016052610180526101a0526101c0526101e05261022060008152600081602001526000816040015260008160600152506102a0600081526000816020015260018160400152600081606001525061032060006004818352015b6101e051610320511460006101e051121715610b7e57610220610320516004811061088c57600080fd5b6020020151156109c25761032051600481106108a757600080fd5b600060c052602060c020015461034052610340513b6108c557600080fd5b6103405130186108d457600080fd5b602061040060246370a0823161038052306103a05261039c610340515afa6108fb57600080fd5b600050610400516103605261036051151561091557610b7f565b610340513b61092357600080fd5b61034051301861093257600080fd5b60206104c0602463db006a7561044052610360516104605261045c6000610340515af161095e57600080fd5b6000506104c0516104205260006104205111156109c1576308c379a06104e0526020610500526015610520527f436f756c64206e6f742072656465656d20636f696e0000000000000000000000610540526105205060006109c05760846104fcfd5b5b5b61032051600481106109d357600080fd5b600160c052602060c020015461058052610580513b6109f157600080fd5b610580513018610a0057600080fd5b602061064060246370a082316105c052306105e0526105dc610580515afa610a2757600080fd5b600050610640516105a0526308c379a061066052602061068052601a6106a0527f4e6f7420656e6f75676820636f696e732077697468647261776e0000000000006106c0526106a0506101606103205160048110610a8457600080fd5b60200201516105a0511015610a9a57608461067cfd5b60006105a051101515610b7d576102a06103205160048110610abb57600080fd5b602002015115610b1a57610580513b610ad357600080fd5b610580513018610ae257600080fd5b60006000604463a9059cbb6107c052610140516107e0526105a051610800526107dc6000610580515af1610b1557600080fd5b610b7c565b610580513b610b2857600080fd5b610580513018610b3757600080fd5b60206107a0604463a9059cbb6107005261014051610720526105a0516107405261071c6000610580515af1610b6b57600080fd5b6000506107a051610b7b57600080fd5b5b5b5b5b8151600101808352811415610862575b505061020051565b637d49d8756000511415610d8e5762ffffff5415610bb457600080fd5b600162ffffff553415610bc657600080fd5b61014060008152600081602001526000816040015260008160600152506003543b610bf057600080fd5b6003543018610bfe57600080fd5b602061028060646323b872dd6101c052336101e0523061020052600435610220526101dc60006003545af1610c3257600080fd5b60005061028051610c4257600080fd5b6002543b610c4f57600080fd5b6002543018610c5d57600080fd5b6000600060a4637d49d8756102a0526004356102c0526102e06101408051825280602001518260200152806040015182604001528060600151826060015250506102bc60006002545af1610cb057600080fd5b6101406103a0525b6103a0515160206103a051016103a0526103a06103a0511015610cda57610cb8565b63eb9ec6916103c052336103e05261040060248035825280602001358260200152806040013582604001528060600135826060015250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6104805261048051610460516104405161042051610400516103e05160065801610800565b6103806103a0525b6103a0515260206103a051036103a0526101406103a051101515610d8257610d5f565b600050600062ffffff55005b6318a7bd7660005114156112385762ffffff5415610dab57600080fd5b600162ffffff553415610dbd57600080fd5b61014060008152600081602001526000816040015260008160600152506101c060008152600081602001526001816040015260008160600152506003546102405261026060048035825280602001358260200152806040013582604001528060600135826060015250506102e060006004818352015b60006102606102e05160048110610e4957600080fd5b6020020151116101406102e05160048110610e6357600080fd5b60200201511615610f71576102e05160048110610e7f57600080fd5b600060c052602060c02001543b610e9557600080fd5b6102e05160048110610ea657600080fd5b600060c052602060c02001543018610ebd57600080fd5b6020610380600463bd6d894d6103205261033c60006102e05160048110610ee357600080fd5b600060c052602060c02001545af1610efa57600080fd5b60005061038051610300526102606102e05160048110610f1957600080fd5b6020020151670de0b6b3a76400008082028215828483041417610f3b57600080fd5b80905090509050610300518080610f5157600080fd5b8204905090506102606102e05160048110610f6b57600080fd5b60200201525b5b8151600101808352811415610e33575b5050610240513b610f9257600080fd5b610240513018610fa157600080fd5b602061044060246370a082316103c052336103e0526103dc610240515afa610fc857600080fd5b600050610440516103a0526084356103a0511115610fe8576084356103a0525b610240513b610ff657600080fd5b61024051301861100557600080fd5b602061052060646323b872dd610460523361048052306104a0526103a0516104c05261047c6000610240515af161103b57600080fd5b6000506105205161104b57600080fd5b6002543b61105857600080fd5b600254301861106657600080fd5b6000600060a46318a7bd76610540526105606102608051825280602001518260200152806040015182604001528060600151826060015250506084356105e05261055c60006002545af16110b957600080fd5b610240513b6110c757600080fd5b6102405130186110d657600080fd5b60206106c060246370a0823161064052306106605261065c610240515afa6110fd57600080fd5b6000506106c0516103a052610240513b61111657600080fd5b61024051301861112557600080fd5b6020610780604463a9059cbb6106e05233610700526103a051610720526106fc6000610240515af161115657600080fd5b6000506107805161116657600080fd5b6101406107a0525b6107a0515160206107a051016107a0526107a06107a05110156111905761116e565b63eb9ec6916107c052336107e05261080060008152600081602001526000816040015260008160600152507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108805261088051610860516108405161082051610800516107e05160065801610800565b6107806107a0525b6107a0515260206107a051036107a0526101406107a05110151561122c57611209565b600050600062ffffff55005b600015611369575b610240526101405261016052610180526101a0526101c0526101e05261020052610220526102606101408051825280602001518260200152806040015182604001528060600151826060015250506102e060006004818352015b6102606102e051600481106112ae57600080fd5b60200201516101c06102e051600481106112c757600080fd5b602002015180820282158284830414176112e057600080fd5b80905090509050670de0b6b3a764000080806112fb57600080fd5b8204905090506102606102e0516004811061131557600080fd5b60200201525b815160010180835281141561129a575b50506080610300525b60006103005111151561134657611362565b6020610300510361026001516020610300510361030052611334565b6102405156005b600015611673575b6101e0526101405261016052610180526101a0526101c05260006102005261024060006004818352015b602061024051026101600151610220526102008051610220518181830110156113c357600080fd5b808201905090508152505b815160010180835281141561139b575b50506102005115156113f95760006000526000516101e05156505b600061028052610200516102a052610140516004808202821582848304141761142157600080fd5b809050905090506102c0526102e0600060ff818352015b6102a0516103005261034060006004818352015b60206103405102610160015161032052610300516102a051808202821582848304141761147857600080fd5b80905090509050610320516004808202821582848304141761149957600080fd5b8090509050905060018181830110156114b157600080fd5b8082019050905080806114c357600080fd5b820490509050610300525b815160010180835281141561144c575b50506102a051610280526102c05161020051808202821582848304141761150457600080fd5b80905090509050610300516004808202821582848304141761152557600080fd5b8090509050905081818301101561153b57600080fd5b808201905090506102a051808202821582848304141761155a57600080fd5b809050905090506102c05160018082101561157457600080fd5b808203905090506102a051808202821582848304141761159357600080fd5b8090509050905060056103005180820282158284830414176115b457600080fd5b809050905090508181830110156115ca57600080fd5b8082019050905080806115dc57600080fd5b8204905090506102a052610280516102a05111156116235760016102a051610280518082101561160b57600080fd5b8082039050905011151561161e5761165f565b61164e565b6001610280516102a0518082101561163a57600080fd5b8082039050905011151561164d5761165f565b5b5b8151600101808352811415611438575b50506102a0516000526000516101e0515650005b6000156119a0575b610220526101405261016052610180526101a0526101c0526101e05261020052600461016051126000610160511215166116b457600080fd5b610200516102405260006102605261014051600480820282158284830414176116dc57600080fd5b809050905090506102805260006102a0526102c060006004818352015b610160516102c0511815611729576101806102c0516004811061171b57600080fd5b60200201516102a05261172e565b6117aa565b61026080516102a05181818301101561174657600080fd5b808201905090508152506102405161020051808202821582848304141761176c57600080fd5b809050905090506102a0516004808202821582848304141761178d57600080fd5b80905090509050808061179f57600080fd5b820490509050610240525b81516001018083528114156116f9575b5050610240516102005180820282158284830414176117d857600080fd5b8090509050905061028051600480820282158284830414176117f957600080fd5b80905090509050808061180b57600080fd5b82049050905061024052610260516102005161028051808061182c57600080fd5b82049050905081818301101561184157600080fd5b808201905090506102e0526000610300526102005161032052610340600060ff818352015b61032051610300526103205161032051808202821582848304141761188a57600080fd5b80905090509050610240518181830110156118a457600080fd5b8082019050905060026103205180820282158284830414176118c557600080fd5b809050905090506102e0518181830110156118df57600080fd5b8082019050905061020051808210156118f757600080fd5b80820390509050808061190957600080fd5b820490509050610320526103005161032051111561195057600161032051610300518082101561193857600080fd5b8082039050905011151561194b5761198c565b61197b565b600161030051610320518082101561196757600080fd5b8082039050905011151561197a5761198c565b5b5b8151600101808352811415611866575b505061032051600052600051610220515650005b60001561215e575b610200526101405261016052610180526101a0526101c0526101e05261022060008152600081602001526000816040015260008160600152506002546102a0526102a0513b6119f657600080fd5b6102a0513018611a0557600080fd5b6020610340600463f446c1d06102e0526102fc6102a0515afa611a2757600080fd5b600050610340516102c0526102a0513b611a4057600080fd5b6102a0513018611a4f57600080fd5b60206103e0600463ddca3f436103805261039c6102a0515afa611a7157600080fd5b6000506103e05160048082028215828483041417611a8e57600080fd5b80905090509050600c8080611aa257600080fd5b82049050905061036052610360805161036051639502f9008082028215828483041417611ace57600080fd5b809050905090506402540be4008080611ae657600080fd5b820490509050818183011015611afb57600080fd5b808201905090508152506104006001815264e8d4a51000816020015264e8d4a51000816040015260018160600152506003543b611b3757600080fd5b6003543018611b4557600080fd5b602061050060046318160ddd6104a0526104bc6003545afa611b6657600080fd5b60005061050051610480526105206001815264e8d4a51000816020015264e8d4a510008160400152600181606001525060006105a0526105c060006004818352015b6105206105c05160048110611bbc57600080fd5b6020020180516102a0513b611bd057600080fd5b6102a0513018611bdf57600080fd5b6020610660602463065a80d86105e0526105c051610600526105fc6102a0515afa611c0957600080fd5b600050610660518082028215828483041417611c2457600080fd5b809050905090508152506102206105c05160048110611c4257600080fd5b602002015115611ccd576105206105c05160048110611c6057600080fd5b60200201516101806105c05160048110611c7957600080fd5b60200201518082028215828483041417611c9257600080fd5b80905090509050670de0b6b3a76400008080611cad57600080fd5b8204905090506105206105c05160048110611cc757600080fd5b60200201525b6105a080516105206105c05160048110611ce657600080fd5b6020020151818183011015611cfa57600080fd5b808201905090508152505b8151600101808352811415611ba8575b50506101406106a0525b6106a0515160206106a051016106a0526106a06106a0511015611d4157611d1f565b637b7241516106c0526102c0516106e052610700610520805182528060200151826020015280604001518260400152806060015182606001525050610760516107405161072051610700516106e05160065801611371565b6107c0526106806106a0525b6106a0515260206106a051036106a0526101406106a051101515611dc857611da5565b6107c051610680526106805161014051610680518082028215828483041417611df057600080fd5b80905090509050610480518080611e0657600080fd5b82049050905080821015611e1957600080fd5b808203905090506107e05261080061052080518252806020015182602001528060400151826040015280606001518260600152505061088060006004818352015b60006108a0526105206108805160048110611e7457600080fd5b60200201516107e0518082028215828483041417611e9157600080fd5b80905090509050610680518080611ea757600080fd5b8204905090506108c0526105206108805160048110611ec557600080fd5b60200201516108e05261016051610880511415611f49576108e080516105a051610680516107e05180821015611efa57600080fd5b808203905090508082028215828483041417611f1557600080fd5b80905090509050610680518080611f2b57600080fd5b82049050905080821015611f3e57600080fd5b808203905090508152505b6108e0516108c051101515611f7d576108c0516108e05180821015611f6d57600080fd5b808203905090506108a052611f9e565b6108e0516108c05180821015611f9257600080fd5b808203905090506108a0525b6108006108805160048110611fb257600080fd5b602002018051610360516108a0518082028215828483041417611fd457600080fd5b809050905090506402540be4008080611fec57600080fd5b82049050905080821015611fff57600080fd5b808203905090508152505b8151600101808352811415611e5a575b5050610800610160516004811061203057600080fd5b6020020151610140610920525b6109205151602061092051016109205261092061092051101561205f5761203d565b638643731f610940526102c0516109605261016051610980526109a06108008051825280602001518260200152806040015182604001528060600151826060015250506107e051610a2052610a2051610a00516109e0516109c0516109a05161098051610960516006580161167b565b610a8052610900610920525b61092051526020610920510361092052610140610920511015156120fe576120db565b610a80518082101561210f57600080fd5b808203905090506109005261090051610400610160516004811061213257600080fd5b6020020151808061214257600080fd5b8204905090506109005261090051600052600051610200515650005b63cc2b27d7600051141561239a57341561217757600080fd5b6060516024358060405190131561218d57600080fd5b809190121561219b57600080fd5b5061014060008152600081602001526000816040015260008160600152506101c0600081526000816020015260008160400152600081606001525061024060006004818352015b6101c061024051600481106121f657600080fd5b6020020151156122af57610240516004811061221157600080fd5b600060c052602060c02001543b61222757600080fd5b610240516004811061223857600080fd5b600060c052602060c0200154301861224f57600080fd5b60206102c0600463182df0f56102605261027c610240516004811061227357600080fd5b600060c052602060c02001545afa61228a57600080fd5b6000506102c05161014061024051600481106122a557600080fd5b60200201526122d2565b670de0b6b3a764000061014061024051600481106122cc57600080fd5b60200201525b5b81516001018083528114156121e2575b50506101405161016051610180516101a0516101c0516101e051610200516102205163800c1cbc6103005260043561032052602435610340526103606101408051825280602001518260200152806040015182604001528060600151826060015250506103c0516103a05161038051610360516103405161032051600658016119a8565b6104205261022052610200526101e0526101c0526101a0526101805261016052610140526104205160005260206000f350005b631a4d01d260005114156123b3576000610140526123e9565b63517a55a360005114156123e157606435600281106123d157600080fd5b60206064610140376000506123e9565b6000156129cb575b62ffffff54156123f857600080fd5b600162ffffff55341561240a57600080fd5b6060516024358060405190131561242057600080fd5b809190121561242e57600080fd5b5061016060008152600081602001526000816040015260008160600152506101e060008152600081602001526000816040015260008160600152506003546102605261028060006004818352015b610160610280516004811061249057600080fd5b60200201511561254b5761028051600481106124ab57600080fd5b600060c052602060c02001543b6124c157600080fd5b61028051600481106124d257600080fd5b600060c052602060c020015430186124e957600080fd5b6020610300600463bd6d894d6102a0526102bc6000610280516004811061250f57600080fd5b600060c052602060c02001545af161252657600080fd5b600050610300516101e0610280516004811061254157600080fd5b602002015261256e565b670de0b6b3a76400006101e0610280516004811061256857600080fd5b60200201525b5b815160010180835281141561247c575b5050610140610340525b610340515160206103405101610340526103406103405110156125ab57612589565b63800c1cbc61036052600435610380526024356103a0526103c06101e080518252806020015182602001528060400151826040015280606001518260600152505061042051610400516103e0516103c0516103a05161038051600658016119a8565b61048052610320610340525b610340515260206103405103610340526101406103405110151561263c57612619565b61048051610320526308c379a06104a05260206104c05260186104e0527f4e6f7420656e6f75676820636f696e732072656d6f7665640000000000000000610500526104e0506044356103205110156126965760846104bcfd5b6003543b6126a357600080fd5b60035430186126b157600080fd5b602061060060646323b872dd61054052336105605230610580526004356105a05261055c60006003545af16126e557600080fd5b600050610600516126f557600080fd5b610620600081526000816020015260008160400152600081606001525061032051670de0b6b3a7640000808202821582848304141761273357600080fd5b809050905090506101e06024356004811061274d57600080fd5b6020020151808061275d57600080fd5b8204905090506106206024356004811061277657600080fd5b6020020152610260513b61278957600080fd5b61026051301861279857600080fd5b602061074060246370a082316106c052306106e0526106dc610260515afa6127bf57600080fd5b600050610740516106a0526002543b6127d757600080fd5b60025430186127e557600080fd5b6000600060a46318a7bd76610760526107806106208051825280602001518260200152806040015182604001528060600151826060015250506004356108005261077c60006002545af161283857600080fd5b610140610860525b6108605151602061086051016108605261086061086051101561286257612840565b63eb9ec69161088052336108a0526108c06000815260008160200152600081604001526000816060015250602435610940526109405161092051610900516108e0516108c0516108a05160065801610800565b610840610860525b61086051526020610860510361086052610140610860511015156128e0576128bd565b6000506101405115156129c257610260513b6128fb57600080fd5b61026051301861290a57600080fd5b6020610a4060246370a082316109c052306109e0526109dc610260515afa61293157600080fd5b600050610a40516109a0526106a0516109a05111156129c157610260513b61295857600080fd5b61026051301861296757600080fd5b6020610b00604463a9059cbb610a605233610a80526109a0516106a0518082101561299157600080fd5b80820390509050610aa052610a7c6000610260515af16129b057600080fd5b600050610b00516129c057600080fd5b5b5b600062ffffff55005b636c956a546000511415612b085762ffffff54156129e857600080fd5b600162ffffff5534156129fa57600080fd5b6002543b612a0757600080fd5b6002543018612a1557600080fd5b60206101c06004638da5cb5b6101605261017c6002545afa612a3657600080fd5b6000506101c05161014052610140513314612a5057600080fd5b6003546101e0526101e0513b612a6557600080fd5b6101e0513018612a7457600080fd5b6020610340604463a9059cbb6102a052610140516102c0526101e0513b612a9a57600080fd5b6101e0513018612aa957600080fd5b602061028060246370a0823161020052306102205261021c6101e0515afa612ad057600080fd5b600050610280516102e0526102bc60006101e0515af1612aef57600080fd5b60005061034051612aff57600080fd5b600062ffffff55005b6323746eb86000511415612b6d573415612b2157600080fd5b60605160043580604051901315612b3757600080fd5b8091901215612b4557600080fd5b5060043560048110612b5657600080fd5b600060c052602060c020015460005260206000f350005b63b739953e6000511415612bd2573415612b8657600080fd5b60605160043580604051901315612b9c57600080fd5b8091901215612baa57600080fd5b5060043560048110612bbb57600080fd5b600160c052602060c020015460005260206000f350005b637165485d6000511415612bf9573415612beb57600080fd5b60025460005260206000f350005b63fc0c546a6000511415612c20573415612c1257600080fd5b60035460005260206000f350005b5b60006000fd
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000057ab1ec28d129707052df4df418d58a2d46d5f510000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000057ab1ec28d129707052df4df418d58a2d46d5f51000000000000000000000000a5407eae9ba41422680e2e00537571bcc53efbfd000000000000000000000000c25a3a3b969415c80451098fa907ec722572917f
-----Decoded View---------------
Arg [0] : _coins (address[4]): 0x6B175474E89094C44Da98b954EedeAC495271d0F,0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48,0xdAC17F958D2ee523a2206206994597C13D831ec7,0x57Ab1ec28D129707052df4dF418D58a2D46d5f51
Arg [1] : _underlying_coins (address[4]): 0x6B175474E89094C44Da98b954EedeAC495271d0F,0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48,0xdAC17F958D2ee523a2206206994597C13D831ec7,0x57Ab1ec28D129707052df4dF418D58a2D46d5f51
Arg [2] : _curve (address): 0xA5407eAE9Ba41422680e2e00537571bcC53efBfD
Arg [3] : _token (address): 0xC25a3A3b969415c80451098fa907EC722572917F
-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f
Arg [1] : 000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
Arg [2] : 000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7
Arg [3] : 00000000000000000000000057ab1ec28d129707052df4df418d58a2d46d5f51
Arg [4] : 0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f
Arg [5] : 000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
Arg [6] : 000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7
Arg [7] : 00000000000000000000000057ab1ec28d129707052df4df418d58a2d46d5f51
Arg [8] : 000000000000000000000000a5407eae9ba41422680e2e00537571bcc53efbfd
Arg [9] : 000000000000000000000000c25a3a3b969415c80451098fa907ec722572917f
Loading...
Loading
Loading...
Loading
OVERVIEW
Curve.fi's sUSD v2 deposit address.Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $1.07 | 9.1078 | $9.78 |
Loading...
Loading
[ 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.