Overview
ETH Balance
0 ETH
Eth Value
$0.00Token Holdings
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 4,729 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set_approve_depo... | 20618947 | 77 days ago | IN | 0 ETH | 0.00003841 | ||||
Set_approve_depo... | 20419865 | 105 days ago | IN | 0 ETH | 0.00049278 | ||||
Withdraw | 19628632 | 216 days ago | IN | 0 ETH | 0.0048004 | ||||
Set_approve_depo... | 19541043 | 228 days ago | IN | 0 ETH | 0.0017648 | ||||
Withdraw | 19417436 | 246 days ago | IN | 0 ETH | 0.02004325 | ||||
Withdraw | 18897500 | 318 days ago | IN | 0 ETH | 0.00544222 | ||||
Withdraw | 18557270 | 366 days ago | IN | 0 ETH | 0.01336293 | ||||
Withdraw | 18475752 | 378 days ago | IN | 0 ETH | 0.00456708 | ||||
Withdraw | 18431411 | 384 days ago | IN | 0 ETH | 0.0095259 | ||||
Set_approve_depo... | 18283362 | 404 days ago | IN | 0 ETH | 0.00031642 | ||||
Deposit | 18222932 | 413 days ago | IN | 0 ETH | 0.00506696 | ||||
Set_approve_depo... | 18203455 | 416 days ago | IN | 0 ETH | 0.0002838 | ||||
Set_approve_depo... | 18149211 | 423 days ago | IN | 0 ETH | 0.00047459 | ||||
Withdraw | 18110737 | 429 days ago | IN | 0 ETH | 0.0032206 | ||||
Apply_transfer_o... | 17987457 | 446 days ago | IN | 0 ETH | 0.00081129 | ||||
Commit_transfer_... | 17987448 | 446 days ago | IN | 0 ETH | 0.00077418 | ||||
Commit_transfer_... | 17987420 | 446 days ago | IN | 0 ETH | 0.00099375 | ||||
Withdraw | 17830986 | 468 days ago | IN | 0 ETH | 0.00748233 | ||||
Withdraw | 17808256 | 471 days ago | IN | 0 ETH | 0.01291549 | ||||
Withdraw | 17595777 | 501 days ago | IN | 0 ETH | 0.00611943 | ||||
Withdraw | 17589766 | 502 days ago | IN | 0 ETH | 0.00857127 | ||||
Withdraw | 17528768 | 510 days ago | IN | 0 ETH | 0.00764511 | ||||
Withdraw | 17106840 | 570 days ago | IN | 0 ETH | 0.01206453 | ||||
Withdraw | 16899353 | 599 days ago | IN | 0 ETH | 0.00868886 | ||||
Deposit | 16875772 | 602 days ago | IN | 0 ETH | 0.0058158 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Source Code Verified (Exact Match)
Contract Name:
Vyper_contract
Compiler Version
vyper:0.2.5
Contract Source Code (Vyper language format)
# @version 0.2.5 """ @title Liquidity Gauge @author Curve Finance @license MIT @notice Used for measuring liquidity and insurance """ from vyper.interfaces import ERC20 interface CRV20: def future_epoch_time_write() -> uint256: nonpayable def rate() -> uint256: view interface Controller: def period() -> int128: view def period_write() -> int128: nonpayable def period_timestamp(p: int128) -> uint256: view def gauge_relative_weight(addr: address, time: uint256) -> uint256: view def voting_escrow() -> address: view def checkpoint(): nonpayable def checkpoint_gauge(addr: address): nonpayable interface Minter: def token() -> address: view def controller() -> address: view def minted(user: address, gauge: address) -> uint256: view interface VotingEscrow: def user_point_epoch(addr: address) -> uint256: view def user_point_history__ts(addr: address, epoch: uint256) -> uint256: view event Deposit: provider: indexed(address) value: uint256 event Withdraw: provider: indexed(address) value: uint256 event UpdateLiquidityLimit: user: address original_balance: uint256 original_supply: uint256 working_balance: uint256 working_supply: uint256 event CommitOwnership: admin: address event ApplyOwnership: admin: address TOKENLESS_PRODUCTION: constant(uint256) = 40 BOOST_WARMUP: constant(uint256) = 2 * 7 * 86400 WEEK: constant(uint256) = 604800 minter: public(address) crv_token: public(address) lp_token: public(address) controller: public(address) voting_escrow: public(address) balanceOf: public(HashMap[address, uint256]) totalSupply: public(uint256) future_epoch_time: public(uint256) # caller -> recipient -> can deposit? approved_to_deposit: public(HashMap[address, HashMap[address, bool]]) working_balances: public(HashMap[address, uint256]) working_supply: public(uint256) # The goal is to be able to calculate ∫(rate * balance / totalSupply dt) from 0 till checkpoint # All values are kept in units of being multiplied by 1e18 period: public(int128) period_timestamp: public(uint256[100000000000000000000000000000]) # 1e18 * ∫(rate(t) / totalSupply(t) dt) from 0 till checkpoint integrate_inv_supply: public(uint256[100000000000000000000000000000]) # bump epoch when rate() changes # 1e18 * ∫(rate(t) / totalSupply(t) dt) from (last_action) till checkpoint integrate_inv_supply_of: public(HashMap[address, uint256]) integrate_checkpoint_of: public(HashMap[address, uint256]) # ∫(balance * rate(t) / totalSupply(t) dt) from 0 till checkpoint # Units: rate * t = already number of coins per address to issue integrate_fraction: public(HashMap[address, uint256]) inflation_rate: public(uint256) admin: public(address) future_admin: public(address) # Can and will be a smart contract is_killed: public(bool) @external def __init__(lp_addr: address, _minter: address, _admin: address): """ @notice Contract constructor @param lp_addr Liquidity Pool contract address @param _minter Minter contract address @param _admin Admin who can kill the gauge """ assert lp_addr != ZERO_ADDRESS assert _minter != ZERO_ADDRESS self.lp_token = lp_addr self.minter = _minter crv_addr: address = Minter(_minter).token() self.crv_token = crv_addr controller_addr: address = Minter(_minter).controller() self.controller = controller_addr self.voting_escrow = Controller(controller_addr).voting_escrow() self.period_timestamp[0] = block.timestamp self.inflation_rate = CRV20(crv_addr).rate() self.future_epoch_time = CRV20(crv_addr).future_epoch_time_write() self.admin = _admin @internal def _update_liquidity_limit(addr: address, l: uint256, L: uint256): """ @notice Calculate limits which depend on the amount of CRV token per-user. Effectively it calculates working balances to apply amplification of CRV production by CRV @param addr User address @param l User's amount of liquidity (LP tokens) @param L Total amount of liquidity (LP tokens) """ # To be called after totalSupply is updated _voting_escrow: address = self.voting_escrow voting_balance: uint256 = ERC20(_voting_escrow).balanceOf(addr) voting_total: uint256 = ERC20(_voting_escrow).totalSupply() lim: uint256 = l * TOKENLESS_PRODUCTION / 100 if (voting_total > 0) and (block.timestamp > self.period_timestamp[0] + BOOST_WARMUP): lim += L * voting_balance / voting_total * (100 - TOKENLESS_PRODUCTION) / 100 lim = min(l, lim) old_bal: uint256 = self.working_balances[addr] self.working_balances[addr] = lim _working_supply: uint256 = self.working_supply + lim - old_bal self.working_supply = _working_supply log UpdateLiquidityLimit(addr, l, L, lim, _working_supply) @internal def _checkpoint(addr: address): """ @notice Checkpoint for a user @param addr User address """ _token: address = self.crv_token _controller: address = self.controller _period: int128 = self.period _period_time: uint256 = self.period_timestamp[_period] _integrate_inv_supply: uint256 = self.integrate_inv_supply[_period] rate: uint256 = self.inflation_rate new_rate: uint256 = rate prev_future_epoch: uint256 = self.future_epoch_time if prev_future_epoch >= _period_time: self.future_epoch_time = CRV20(_token).future_epoch_time_write() new_rate = CRV20(_token).rate() self.inflation_rate = new_rate Controller(_controller).checkpoint_gauge(self) _working_balance: uint256 = self.working_balances[addr] _working_supply: uint256 = self.working_supply if self.is_killed: # Stop distributing inflation as soon as killed rate = 0 # Update integral of 1/supply if block.timestamp > _period_time: prev_week_time: uint256 = _period_time week_time: uint256 = min((_period_time + WEEK) / WEEK * WEEK, block.timestamp) for i in range(500): dt: uint256 = week_time - prev_week_time w: uint256 = Controller(_controller).gauge_relative_weight(self, prev_week_time / WEEK * WEEK) if _working_supply > 0: if prev_future_epoch >= prev_week_time and prev_future_epoch < week_time: # If we went across one or multiple epochs, apply the rate # of the first epoch until it ends, and then the rate of # the last epoch. # If more than one epoch is crossed - the gauge gets less, # but that'd meen it wasn't called for more than 1 year _integrate_inv_supply += rate * w * (prev_future_epoch - prev_week_time) / _working_supply rate = new_rate _integrate_inv_supply += rate * w * (week_time - prev_future_epoch) / _working_supply else: _integrate_inv_supply += rate * w * dt / _working_supply # On precisions of the calculation # rate ~= 10e18 # last_weight > 0.01 * 1e18 = 1e16 (if pool weight is 1%) # _working_supply ~= TVL * 1e18 ~= 1e26 ($100M for example) # The largest loss is at dt = 1 # Loss is 1e-9 - acceptable if week_time == block.timestamp: break prev_week_time = week_time week_time = min(week_time + WEEK, block.timestamp) _period += 1 self.period = _period self.period_timestamp[_period] = block.timestamp self.integrate_inv_supply[_period] = _integrate_inv_supply # Update user-specific integrals self.integrate_fraction[addr] += _working_balance * (_integrate_inv_supply - self.integrate_inv_supply_of[addr]) / 10 ** 18 self.integrate_inv_supply_of[addr] = _integrate_inv_supply self.integrate_checkpoint_of[addr] = block.timestamp @external def user_checkpoint(addr: address) -> bool: """ @notice Record a checkpoint for `addr` @param addr User address @return bool success """ assert (msg.sender == addr) or (msg.sender == self.minter) # dev: unauthorized self._checkpoint(addr) self._update_liquidity_limit(addr, self.balanceOf[addr], self.totalSupply) return True @external def claimable_tokens(addr: address) -> uint256: """ @notice Get the number of claimable tokens per user @dev This function should be manually changed to "view" in the ABI @return uint256 number of claimable tokens per user """ self._checkpoint(addr) return self.integrate_fraction[addr] - Minter(self.minter).minted(addr, self) @external def kick(addr: address): """ @notice Kick `addr` for abusing their boost @dev Only if either they had another voting event, or their voting escrow lock expired @param addr Address to kick """ _voting_escrow: address = self.voting_escrow t_last: uint256 = self.integrate_checkpoint_of[addr] t_ve: uint256 = VotingEscrow(_voting_escrow).user_point_history__ts( addr, VotingEscrow(_voting_escrow).user_point_epoch(addr) ) _balance: uint256 = self.balanceOf[addr] assert ERC20(self.voting_escrow).balanceOf(addr) == 0 or t_ve > t_last # dev: kick not allowed assert self.working_balances[addr] > _balance * TOKENLESS_PRODUCTION / 100 # dev: kick not needed self._checkpoint(addr) self._update_liquidity_limit(addr, self.balanceOf[addr], self.totalSupply) @external def set_approve_deposit(addr: address, can_deposit: bool): """ @notice Set whether `addr` can deposit tokens for `msg.sender` @param addr Address to set approval on @param can_deposit bool - can this account deposit for `msg.sender`? """ self.approved_to_deposit[addr][msg.sender] = can_deposit @external @nonreentrant('lock') def deposit(_value: uint256, addr: address = msg.sender): """ @notice Deposit `_value` LP tokens @param _value Number of tokens to deposit @param addr Address to deposit for """ if addr != msg.sender: assert self.approved_to_deposit[msg.sender][addr], "Not approved" self._checkpoint(addr) if _value != 0: _balance: uint256 = self.balanceOf[addr] + _value _supply: uint256 = self.totalSupply + _value self.balanceOf[addr] = _balance self.totalSupply = _supply self._update_liquidity_limit(addr, _balance, _supply) assert ERC20(self.lp_token).transferFrom(msg.sender, self, _value) log Deposit(addr, _value) @external @nonreentrant('lock') def withdraw(_value: uint256): """ @notice Withdraw `_value` LP tokens @param _value Number of tokens to withdraw """ self._checkpoint(msg.sender) _balance: uint256 = self.balanceOf[msg.sender] - _value _supply: uint256 = self.totalSupply - _value self.balanceOf[msg.sender] = _balance self.totalSupply = _supply self._update_liquidity_limit(msg.sender, _balance, _supply) assert ERC20(self.lp_token).transfer(msg.sender, _value) log Withdraw(msg.sender, _value) @external @view def integrate_checkpoint() -> uint256: return self.period_timestamp[self.period] @external def kill_me(): assert msg.sender == self.admin self.is_killed = not self.is_killed @external def commit_transfer_ownership(addr: address): """ @notice Transfer ownership of GaugeController to `addr` @param addr Address to have ownership transferred to """ assert msg.sender == self.admin # dev: admin only self.future_admin = addr log CommitOwnership(addr) @external def apply_transfer_ownership(): """ @notice Apply pending ownership transfer """ assert msg.sender == self.admin # dev: admin only _admin: address = self.future_admin assert _admin != ZERO_ADDRESS # dev: admin not set self.admin = _admin log ApplyOwnership(_admin)
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"name":"Deposit","inputs":[{"type":"address","name":"provider","indexed":true},{"type":"uint256","name":"value","indexed":false}],"anonymous":false,"type":"event"},{"name":"Withdraw","inputs":[{"type":"address","name":"provider","indexed":true},{"type":"uint256","name":"value","indexed":false}],"anonymous":false,"type":"event"},{"name":"UpdateLiquidityLimit","inputs":[{"type":"address","name":"user","indexed":false},{"type":"uint256","name":"original_balance","indexed":false},{"type":"uint256","name":"original_supply","indexed":false},{"type":"uint256","name":"working_balance","indexed":false},{"type":"uint256","name":"working_supply","indexed":false}],"anonymous":false,"type":"event"},{"name":"CommitOwnership","inputs":[{"type":"address","name":"admin","indexed":false}],"anonymous":false,"type":"event"},{"name":"ApplyOwnership","inputs":[{"type":"address","name":"admin","indexed":false}],"anonymous":false,"type":"event"},{"outputs":[],"inputs":[{"type":"address","name":"lp_addr"},{"type":"address","name":"_minter"},{"type":"address","name":"_admin"}],"stateMutability":"nonpayable","type":"constructor"},{"name":"user_checkpoint","outputs":[{"type":"bool","name":""}],"inputs":[{"type":"address","name":"addr"}],"stateMutability":"nonpayable","type":"function","gas":2070408},{"name":"claimable_tokens","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"addr"}],"stateMutability":"nonpayable","type":"function","gas":1989612},{"name":"kick","outputs":[],"inputs":[{"type":"address","name":"addr"}],"stateMutability":"nonpayable","type":"function","gas":2075769},{"name":"set_approve_deposit","outputs":[],"inputs":[{"type":"address","name":"addr"},{"type":"bool","name":"can_deposit"}],"stateMutability":"nonpayable","type":"function","gas":35801},{"name":"deposit","outputs":[],"inputs":[{"type":"uint256","name":"_value"}],"stateMutability":"nonpayable","type":"function"},{"name":"deposit","outputs":[],"inputs":[{"type":"uint256","name":"_value"},{"type":"address","name":"addr"}],"stateMutability":"nonpayable","type":"function"},{"name":"withdraw","outputs":[],"inputs":[{"type":"uint256","name":"_value"}],"stateMutability":"nonpayable","type":"function","gas":2199513},{"name":"integrate_checkpoint","outputs":[{"type":"uint256","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":2207},{"name":"kill_me","outputs":[],"inputs":[],"stateMutability":"nonpayable","type":"function","gas":37188},{"name":"commit_transfer_ownership","outputs":[],"inputs":[{"type":"address","name":"addr"}],"stateMutability":"nonpayable","type":"function","gas":37868},{"name":"apply_transfer_ownership","outputs":[],"inputs":[],"stateMutability":"nonpayable","type":"function","gas":38707},{"name":"minter","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1421},{"name":"crv_token","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1451},{"name":"lp_token","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1481},{"name":"controller","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1511},{"name":"voting_escrow","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1541},{"name":"balanceOf","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"arg0"}],"stateMutability":"view","type":"function","gas":1786},{"name":"totalSupply","outputs":[{"type":"uint256","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1601},{"name":"future_epoch_time","outputs":[{"type":"uint256","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1631},{"name":"approved_to_deposit","outputs":[{"type":"bool","name":""}],"inputs":[{"type":"address","name":"arg0"},{"type":"address","name":"arg1"}],"stateMutability":"view","type":"function","gas":2091},{"name":"working_balances","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"arg0"}],"stateMutability":"view","type":"function","gas":1906},{"name":"working_supply","outputs":[{"type":"uint256","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1721},{"name":"period","outputs":[{"type":"int128","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1751},{"name":"period_timestamp","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"uint256","name":"arg0"}],"stateMutability":"view","type":"function","gas":1890},{"name":"integrate_inv_supply","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"uint256","name":"arg0"}],"stateMutability":"view","type":"function","gas":1920},{"name":"integrate_inv_supply_of","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"arg0"}],"stateMutability":"view","type":"function","gas":2056},{"name":"integrate_checkpoint_of","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"arg0"}],"stateMutability":"view","type":"function","gas":2086},{"name":"integrate_fraction","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"arg0"}],"stateMutability":"view","type":"function","gas":2116},{"name":"inflation_rate","outputs":[{"type":"uint256","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1931},{"name":"admin","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1961},{"name":"future_admin","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1991},{"name":"is_killed","outputs":[{"type":"bool","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":2021}]
Contract Creation Code
6f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff80000000000000000000000000000000606052606061179661014039602061179660c03960c05160a01c1561005857600080fd5b602060206117960160c03960c05160a01c1561007357600080fd5b602060406117960160c03960c05160a01c1561008e57600080fd5b6000610140511861009e57600080fd5b600061016051186100ae57600080fd5b61014051600255610160516000556020610220600463fc0c546a6101c0526101dc610160515afa6100de57600080fd5b601f3d116100eb57600080fd5b600050610220516101a0526101a05160015560206102c0600463f77c47916102605261027c610160515afa61011f57600080fd5b601f3d1161012c57600080fd5b6000506102c05161024052610240516003556020610340600463dfe050316102e0526102fc610240515afa61016057600080fd5b601f3d1161016d57600080fd5b6000506103405160045542600c60c052602060c0205560206103c06004632c4e722e6103605261037c6101a0515afa6101a557600080fd5b601f3d116101b257600080fd5b6000506103c0516011556020610440600463b26b238e6103e0526103fc60006101a0515af16101e057600080fd5b601f3d116101ed57600080fd5b600050610440516007556101805160125561177e56341561000a57600080fd5b600436101561001857611575565b600035601c526f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff800000000000000000000000000000006060526000156102bd575b6101a0526101405261016052610180526004546101c052602061028060246370a0823161020052610140516102205261021c6101c0515afa61009f57600080fd5b601f3d116100ac57600080fd5b600050610280516101e052602061032060046318160ddd6102c0526102dc6101c0515afa6100d957600080fd5b601f3d116100e657600080fd5b600050610320516102a052610160516028808202821582848304141761010b57600080fd5b809050905090506064808204905090506103405260006102a051111561015757600c60c052602060c020546212750081818301101561014957600080fd5b80820190509050421161015a565b60005b156101dc576103408051610180516101e051808202821582848304141761018057600080fd5b809050905090506102a051808061019657600080fd5b820490509050603c80820282158284830414176101b257600080fd5b809050905090506064808204905090508181830110156101d157600080fd5b808201905090508152505b6101605161034051808211156101f257806101f4565b815b905090506103405260096101405160e05260c052604060c02054610360526103405160096101405160e05260c052604060c02055600a546103405181818301101561023e57600080fd5b80820190509050610360518082101561025657600080fd5b808203905090506103805261038051600a55610140516103a052610160516103c052610180516103e052610340516104005261038051610420527f7ecd84343f76a23d2227290e0288da3251b045541698e575a5515af4f04197a360a06103a0a16101a051565b6000156108c8575b6101605261014052600154610180526003546101a052600b546101c0526101c0516c01431e0fae6d7217caa000000081106102ff57600080fd5b600c60c052602060c02001546101e0526101c0516c01431e0fae6d7217caa0000000811061032c57600080fd5b600d60c052602060c020015461020052601154610220526102205161024052600754610260526101e051610260511015156103de5760206102e0600463b26b238e6102805261029c6000610180515af161038557600080fd5b601f3d1161039257600080fd5b6000506102e05160075560206103606004632c4e722e6103005261031c610180515afa6103be57600080fd5b601f3d116103cb57600080fd5b6000506103605161024052610240516011555b6101a0513b6103ec57600080fd5b60006000602463615e523761038052306103a05261039c60006101a0515af161041457600080fd5b60096101405160e05260c052604060c0205461040052600a546104205260145415610440576000610220525b6101e051421115610784576101e051610440526101e05162093a8081818301101561046a57600080fd5b8082019050905062093a808082049050905062093a80808202821582848304141761049457600080fd5b8090509050905042808211156104aa57806104ac565b815b905090506104605261048060006101f4818352015b6104605161044051808210156104d657600080fd5b808203905090506104a0526020610580604463d3078c946104e05230610500526104405162093a808082049050905062093a80808202821582848304141761051d57600080fd5b80905090509050610520526104fc6101a0515afa61053a57600080fd5b601f3d1161054757600080fd5b600050610580516104c052600061042051111561072157610440516102605110151561057b5761046051610260511061057e565b60005b156106aa576102008051610220516104c05180820282158284830414176105a457600080fd5b809050905090506102605161044051808210156105c057600080fd5b8082039050905080820282158284830414176105db57600080fd5b809050905090506104205180806105f157600080fd5b82049050905081818301101561060657600080fd5b8082019050905081525061024051610220526102008051610220516104c051808202821582848304141761063957600080fd5b8090509050905061046051610260518082101561065557600080fd5b80820390509050808202821582848304141761067057600080fd5b8090509050905061042051808061068657600080fd5b82049050905081818301101561069b57600080fd5b80820190509050815250610720565b6102008051610220516104c05180820282158284830414176106cb57600080fd5b809050905090506104a05180820282158284830414176106ea57600080fd5b8090509050905061042051808061070057600080fd5b82049050905081818301101561071557600080fd5b808201905090508152505b5b4261046051141561073157610781565b61046051610440526104605162093a8081818301101561075057600080fd5b8082019050905042808211156107665780610768565b815b90509050610460525b81516001018083528114156104c1575b50505b6101c080516001606051818301806040519013156107a157600080fd5b80919012156107af57600080fd5b905090508152506101c051600b55426101c0516c01431e0fae6d7217caa000000081106107db57600080fd5b600c60c052602060c0200155610200516101c0516c01431e0fae6d7217caa0000000811061080857600080fd5b600d60c052602060c020015560106101405160e05260c052604060c02080546104005161020051600e6101405160e05260c052604060c020548082101561084e57600080fd5b80820390509050808202821582848304141761086957600080fd5b80905090509050670de0b6b3a76400008082049050905081818301101561088f57600080fd5b8082019050905081555061020051600e6101405160e05260c052604060c0205542600f6101405160e05260c052604060c0205561016051565b634b820093600051141561097e5760043560a01c156108e657600080fd5b6004353314156108f75760016108fd565b60005433145b5b61090757600080fd5b6004356101405261014051600658016102c5565b6000506101405161016051610180516004356101c052600560043560e05260c052604060c020546101e05260065461020052610200516101e0516101c0516006580161005e565b610180526101605261014052600050600160005260206000f350005b63331345836000511415610a245760043560a01c1561099c57600080fd5b6004356101405261014051600658016102c5565b600050601060043560e05260c052604060c0205460206102406044638b752bb06101a0526004356101c052306101e0526101bc6000545afa6109f157600080fd5b601f3d116109fe57600080fd5b6000506102405180821015610a1257600080fd5b8082039050905060005260206000f350005b6396c551756000511415610c955760043560a01c15610a4257600080fd5b60045461014052600f60043560e05260c052604060c020546101605260206102e0604463da020a1861024052600435610260526020610220602463010ae7576101a0526004356101c0526101bc610140515afa610a9e57600080fd5b601f3d11610aab57600080fd5b600050610220516102805261025c610140515afa610ac857600080fd5b601f3d11610ad557600080fd5b6000506102e05161018052600560043560e05260c052604060c0205461030052602061044060246370a082316103c0526004356103e0526103dc6004545afa610b1d57600080fd5b601f3d11610b2a57600080fd5b600050610440511515610b3e576001610b48565b6101605161018051115b5b610b5257600080fd5b6103005160288082028215828483041417610b6c57600080fd5b80905090509050606480820490509050600960043560e05260c052604060c0205411610b9757600080fd5b610140610460525b61046051516020610460510161046052610460610460511015610bc157610b9f565b6004356104805261048051600658016102c5565b610440610460525b6104605152602061046051036104605261014061046051101515610c0057610bdd565b6000506101406104e0525b6104e0515160206104e051016104e0526104e06104e0511015610c2d57610c0b565b60043561050052600560043560e05260c052604060c0205461052052600654610540526105405161052051610500516006580161005e565b6104c06104e0525b6104e0515260206104e051036104e0526101406104e051101515610c9057610c6d565b600050005b631d2747d46000511415610ce55760043560a01c15610cb357600080fd5b60243560011c15610cc357600080fd5b602435600860043560e05260c052604060c0203360e05260c052604060c02055005b63b6b55f256000511415610cfd573361014052610d33565b636e553f656000511415610d2b5760243560a01c15610d1b57600080fd5b6020602461014037600050610d33565b600015610f65575b62ffffff5415610d4257600080fd5b600162ffffff5533610140511815610dbc576308c379a061016052602061018052600c6101a0527f4e6f7420617070726f76656400000000000000000000000000000000000000006101c0526101a05060083360e05260c052604060c0206101405160e05260c052604060c02054610dbb57606461017cfd5b5b61014051610140516102205261022051600658016102c5565b6101405260005060006004351815610f2a5760056101405160e05260c052604060c02054600435818183011015610e0b57600080fd5b8082019050905061028052600654600435818183011015610e2b57600080fd5b808201905090506102a0526102805160056101405160e05260c052604060c020556102a0516006556101406102c0525b6102c0515160206102c051016102c0526102c06102c0511015610e7d57610e5b565b610140516102e05261028051610300526102a0516103205261032051610300516102e0516006580161005e565b6102a06102c0525b6102c0515260206102c051036102c0526101406102c051101515610ed557610eb2565b600050602061044060646323b872dd61038052336103a052306103c0526004356103e05261039c60006002545af1610f0c57600080fd5b601f3d11610f1957600080fd5b60005061044051610f2957600080fd5b5b60043561046052610140517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c6020610460a2600062ffffff55005b632e1a7d4d60005114156110d95762ffffff5415610f8257600080fd5b600162ffffff55336101405261014051600658016102c5565b60005060053360e05260c052604060c0205460043580821015610fbd57600080fd5b808203905090506101a05260065460043580821015610fdb57600080fd5b808203905090506101c0526101a05160053360e05260c052604060c020556101c0516006556101405161016051610180516101a0516101c05133610200526101a051610220526101c051610240526102405161022051610200516006580161005e565b6101c0526101a0526101805261016052610140526000506020610340604463a9059cbb6102a052336102c0526004356102e0526102bc60006002545af161108457600080fd5b601f3d1161109157600080fd5b600050610340516110a157600080fd5b60043561036052337f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243646020610360a2600062ffffff55005b63d31f3f6d600051141561111a57600b546c01431e0fae6d7217caa0000000811061110357600080fd5b600c60c052602060c020015460005260206000f350005b63e3698853600051141561113f57601254331461113657600080fd5b60145415601455005b636b441a4060005114156111a15760043560a01c1561115d57600080fd5b601254331461116b57600080fd5b600435601355600435610140527f2f56810a6bf40af059b96d3aea4db54081f378029a518390491093a7b67032e96020610140a1005b636a1c05ae600051141561120c5760125433146111bd57600080fd5b60135461014052600061014051186111d457600080fd5b6101405160125561014051610160527febee2d5739011062cb4f14113f3b36bf0ffe3da5c0568f64189d1012a11891056020610160a1005b630754617260005114156112285760005460005260206000f350005b6376d8b11760005114156112445760015460005260206000f350005b6382c6306660005114156112605760025460005260206000f350005b63f77c4791600051141561127c5760035460005260206000f350005b63dfe0503160005114156112985760045460005260206000f350005b6370a0823160005114156112d25760043560a01c156112b657600080fd5b600560043560e05260c052604060c0205460005260206000f350005b6318160ddd60005114156112ee5760065460005260206000f350005b63be5d1be9600051141561130a5760075460005260206000f350005b63e152253660005114156113625760043560a01c1561132857600080fd5b60243560a01c1561133857600080fd5b600860043560e05260c052604060c02060243560e05260c052604060c0205460005260206000f350005b6313ecb1ca600051141561139c5760043560a01c1561138057600080fd5b600960043560e05260c052604060c0205460005260206000f350005b6317e2808960005114156113b857600a5460005260206000f350005b63ef78d4fd60005114156113d457600b5460005260206000f350005b637598108c6000511415611415576004356c01431e0fae6d7217caa000000081106113fe57600080fd5b600c60c052602060c020015460005260206000f350005b63fec8ee0c6000511415611456576004356c01431e0fae6d7217caa0000000811061143f57600080fd5b600d60c052602060c020015460005260206000f350005b63de263bfa60005114156114905760043560a01c1561147457600080fd5b600e60043560e05260c052604060c0205460005260206000f350005b639bd324f260005114156114ca5760043560a01c156114ae57600080fd5b600f60043560e05260c052604060c0205460005260206000f350005b630940070760005114156115045760043560a01c156114e857600080fd5b601060043560e05260c052604060c0205460005260206000f350005b63180692d060005114156115205760115460005260206000f350005b63f851a440600051141561153c5760125460005260206000f350005b6317f7182a60005114156115585760135460005260206000f350005b639c868ac060005114156115745760145460005260206000f350005b5b60006000fd5b61020361177e0361020360003961020361177e036000f3000000000000000000000000d2967f45c4f384deea880f807be904762a3dea07000000000000000000000000d061d61a4d941c39e5453435b6345dc261c2fce00000000000000000000000007eeac6cddbd1d0b8af061742d41877d7f707289a
Deployed Bytecode
0x341561000a57600080fd5b600436101561001857611575565b600035601c526f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff800000000000000000000000000000006060526000156102bd575b6101a0526101405261016052610180526004546101c052602061028060246370a0823161020052610140516102205261021c6101c0515afa61009f57600080fd5b601f3d116100ac57600080fd5b600050610280516101e052602061032060046318160ddd6102c0526102dc6101c0515afa6100d957600080fd5b601f3d116100e657600080fd5b600050610320516102a052610160516028808202821582848304141761010b57600080fd5b809050905090506064808204905090506103405260006102a051111561015757600c60c052602060c020546212750081818301101561014957600080fd5b80820190509050421161015a565b60005b156101dc576103408051610180516101e051808202821582848304141761018057600080fd5b809050905090506102a051808061019657600080fd5b820490509050603c80820282158284830414176101b257600080fd5b809050905090506064808204905090508181830110156101d157600080fd5b808201905090508152505b6101605161034051808211156101f257806101f4565b815b905090506103405260096101405160e05260c052604060c02054610360526103405160096101405160e05260c052604060c02055600a546103405181818301101561023e57600080fd5b80820190509050610360518082101561025657600080fd5b808203905090506103805261038051600a55610140516103a052610160516103c052610180516103e052610340516104005261038051610420527f7ecd84343f76a23d2227290e0288da3251b045541698e575a5515af4f04197a360a06103a0a16101a051565b6000156108c8575b6101605261014052600154610180526003546101a052600b546101c0526101c0516c01431e0fae6d7217caa000000081106102ff57600080fd5b600c60c052602060c02001546101e0526101c0516c01431e0fae6d7217caa0000000811061032c57600080fd5b600d60c052602060c020015461020052601154610220526102205161024052600754610260526101e051610260511015156103de5760206102e0600463b26b238e6102805261029c6000610180515af161038557600080fd5b601f3d1161039257600080fd5b6000506102e05160075560206103606004632c4e722e6103005261031c610180515afa6103be57600080fd5b601f3d116103cb57600080fd5b6000506103605161024052610240516011555b6101a0513b6103ec57600080fd5b60006000602463615e523761038052306103a05261039c60006101a0515af161041457600080fd5b60096101405160e05260c052604060c0205461040052600a546104205260145415610440576000610220525b6101e051421115610784576101e051610440526101e05162093a8081818301101561046a57600080fd5b8082019050905062093a808082049050905062093a80808202821582848304141761049457600080fd5b8090509050905042808211156104aa57806104ac565b815b905090506104605261048060006101f4818352015b6104605161044051808210156104d657600080fd5b808203905090506104a0526020610580604463d3078c946104e05230610500526104405162093a808082049050905062093a80808202821582848304141761051d57600080fd5b80905090509050610520526104fc6101a0515afa61053a57600080fd5b601f3d1161054757600080fd5b600050610580516104c052600061042051111561072157610440516102605110151561057b5761046051610260511061057e565b60005b156106aa576102008051610220516104c05180820282158284830414176105a457600080fd5b809050905090506102605161044051808210156105c057600080fd5b8082039050905080820282158284830414176105db57600080fd5b809050905090506104205180806105f157600080fd5b82049050905081818301101561060657600080fd5b8082019050905081525061024051610220526102008051610220516104c051808202821582848304141761063957600080fd5b8090509050905061046051610260518082101561065557600080fd5b80820390509050808202821582848304141761067057600080fd5b8090509050905061042051808061068657600080fd5b82049050905081818301101561069b57600080fd5b80820190509050815250610720565b6102008051610220516104c05180820282158284830414176106cb57600080fd5b809050905090506104a05180820282158284830414176106ea57600080fd5b8090509050905061042051808061070057600080fd5b82049050905081818301101561071557600080fd5b808201905090508152505b5b4261046051141561073157610781565b61046051610440526104605162093a8081818301101561075057600080fd5b8082019050905042808211156107665780610768565b815b90509050610460525b81516001018083528114156104c1575b50505b6101c080516001606051818301806040519013156107a157600080fd5b80919012156107af57600080fd5b905090508152506101c051600b55426101c0516c01431e0fae6d7217caa000000081106107db57600080fd5b600c60c052602060c0200155610200516101c0516c01431e0fae6d7217caa0000000811061080857600080fd5b600d60c052602060c020015560106101405160e05260c052604060c02080546104005161020051600e6101405160e05260c052604060c020548082101561084e57600080fd5b80820390509050808202821582848304141761086957600080fd5b80905090509050670de0b6b3a76400008082049050905081818301101561088f57600080fd5b8082019050905081555061020051600e6101405160e05260c052604060c0205542600f6101405160e05260c052604060c0205561016051565b634b820093600051141561097e5760043560a01c156108e657600080fd5b6004353314156108f75760016108fd565b60005433145b5b61090757600080fd5b6004356101405261014051600658016102c5565b6000506101405161016051610180516004356101c052600560043560e05260c052604060c020546101e05260065461020052610200516101e0516101c0516006580161005e565b610180526101605261014052600050600160005260206000f350005b63331345836000511415610a245760043560a01c1561099c57600080fd5b6004356101405261014051600658016102c5565b600050601060043560e05260c052604060c0205460206102406044638b752bb06101a0526004356101c052306101e0526101bc6000545afa6109f157600080fd5b601f3d116109fe57600080fd5b6000506102405180821015610a1257600080fd5b8082039050905060005260206000f350005b6396c551756000511415610c955760043560a01c15610a4257600080fd5b60045461014052600f60043560e05260c052604060c020546101605260206102e0604463da020a1861024052600435610260526020610220602463010ae7576101a0526004356101c0526101bc610140515afa610a9e57600080fd5b601f3d11610aab57600080fd5b600050610220516102805261025c610140515afa610ac857600080fd5b601f3d11610ad557600080fd5b6000506102e05161018052600560043560e05260c052604060c0205461030052602061044060246370a082316103c0526004356103e0526103dc6004545afa610b1d57600080fd5b601f3d11610b2a57600080fd5b600050610440511515610b3e576001610b48565b6101605161018051115b5b610b5257600080fd5b6103005160288082028215828483041417610b6c57600080fd5b80905090509050606480820490509050600960043560e05260c052604060c0205411610b9757600080fd5b610140610460525b61046051516020610460510161046052610460610460511015610bc157610b9f565b6004356104805261048051600658016102c5565b610440610460525b6104605152602061046051036104605261014061046051101515610c0057610bdd565b6000506101406104e0525b6104e0515160206104e051016104e0526104e06104e0511015610c2d57610c0b565b60043561050052600560043560e05260c052604060c0205461052052600654610540526105405161052051610500516006580161005e565b6104c06104e0525b6104e0515260206104e051036104e0526101406104e051101515610c9057610c6d565b600050005b631d2747d46000511415610ce55760043560a01c15610cb357600080fd5b60243560011c15610cc357600080fd5b602435600860043560e05260c052604060c0203360e05260c052604060c02055005b63b6b55f256000511415610cfd573361014052610d33565b636e553f656000511415610d2b5760243560a01c15610d1b57600080fd5b6020602461014037600050610d33565b600015610f65575b62ffffff5415610d4257600080fd5b600162ffffff5533610140511815610dbc576308c379a061016052602061018052600c6101a0527f4e6f7420617070726f76656400000000000000000000000000000000000000006101c0526101a05060083360e05260c052604060c0206101405160e05260c052604060c02054610dbb57606461017cfd5b5b61014051610140516102205261022051600658016102c5565b6101405260005060006004351815610f2a5760056101405160e05260c052604060c02054600435818183011015610e0b57600080fd5b8082019050905061028052600654600435818183011015610e2b57600080fd5b808201905090506102a0526102805160056101405160e05260c052604060c020556102a0516006556101406102c0525b6102c0515160206102c051016102c0526102c06102c0511015610e7d57610e5b565b610140516102e05261028051610300526102a0516103205261032051610300516102e0516006580161005e565b6102a06102c0525b6102c0515260206102c051036102c0526101406102c051101515610ed557610eb2565b600050602061044060646323b872dd61038052336103a052306103c0526004356103e05261039c60006002545af1610f0c57600080fd5b601f3d11610f1957600080fd5b60005061044051610f2957600080fd5b5b60043561046052610140517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c6020610460a2600062ffffff55005b632e1a7d4d60005114156110d95762ffffff5415610f8257600080fd5b600162ffffff55336101405261014051600658016102c5565b60005060053360e05260c052604060c0205460043580821015610fbd57600080fd5b808203905090506101a05260065460043580821015610fdb57600080fd5b808203905090506101c0526101a05160053360e05260c052604060c020556101c0516006556101405161016051610180516101a0516101c05133610200526101a051610220526101c051610240526102405161022051610200516006580161005e565b6101c0526101a0526101805261016052610140526000506020610340604463a9059cbb6102a052336102c0526004356102e0526102bc60006002545af161108457600080fd5b601f3d1161109157600080fd5b600050610340516110a157600080fd5b60043561036052337f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243646020610360a2600062ffffff55005b63d31f3f6d600051141561111a57600b546c01431e0fae6d7217caa0000000811061110357600080fd5b600c60c052602060c020015460005260206000f350005b63e3698853600051141561113f57601254331461113657600080fd5b60145415601455005b636b441a4060005114156111a15760043560a01c1561115d57600080fd5b601254331461116b57600080fd5b600435601355600435610140527f2f56810a6bf40af059b96d3aea4db54081f378029a518390491093a7b67032e96020610140a1005b636a1c05ae600051141561120c5760125433146111bd57600080fd5b60135461014052600061014051186111d457600080fd5b6101405160125561014051610160527febee2d5739011062cb4f14113f3b36bf0ffe3da5c0568f64189d1012a11891056020610160a1005b630754617260005114156112285760005460005260206000f350005b6376d8b11760005114156112445760015460005260206000f350005b6382c6306660005114156112605760025460005260206000f350005b63f77c4791600051141561127c5760035460005260206000f350005b63dfe0503160005114156112985760045460005260206000f350005b6370a0823160005114156112d25760043560a01c156112b657600080fd5b600560043560e05260c052604060c0205460005260206000f350005b6318160ddd60005114156112ee5760065460005260206000f350005b63be5d1be9600051141561130a5760075460005260206000f350005b63e152253660005114156113625760043560a01c1561132857600080fd5b60243560a01c1561133857600080fd5b600860043560e05260c052604060c02060243560e05260c052604060c0205460005260206000f350005b6313ecb1ca600051141561139c5760043560a01c1561138057600080fd5b600960043560e05260c052604060c0205460005260206000f350005b6317e2808960005114156113b857600a5460005260206000f350005b63ef78d4fd60005114156113d457600b5460005260206000f350005b637598108c6000511415611415576004356c01431e0fae6d7217caa000000081106113fe57600080fd5b600c60c052602060c020015460005260206000f350005b63fec8ee0c6000511415611456576004356c01431e0fae6d7217caa0000000811061143f57600080fd5b600d60c052602060c020015460005260206000f350005b63de263bfa60005114156114905760043560a01c1561147457600080fd5b600e60043560e05260c052604060c0205460005260206000f350005b639bd324f260005114156114ca5760043560a01c156114ae57600080fd5b600f60043560e05260c052604060c0205460005260206000f350005b630940070760005114156115045760043560a01c156114e857600080fd5b601060043560e05260c052604060c0205460005260206000f350005b63180692d060005114156115205760115460005260206000f350005b63f851a440600051141561153c5760125460005260206000f350005b6317f7182a60005114156115585760135460005260206000f350005b639c868ac060005114156115745760145460005260206000f350005b5b60006000fd
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000d2967f45c4f384deea880f807be904762a3dea07000000000000000000000000d061d61a4d941c39e5453435b6345dc261c2fce00000000000000000000000007eeac6cddbd1d0b8af061742d41877d7f707289a
-----Decoded View---------------
Arg [0] : lp_addr (address): 0xD2967f45c4f384DEEa880F807Be904762a3DeA07
Arg [1] : _minter (address): 0xd061D61a4d941c39E5453435B6345Dc261C2fcE0
Arg [2] : _admin (address): 0x7EeAC6CDdbd1D0B8aF061742D41877D7F707289a
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000d2967f45c4f384deea880f807be904762a3dea07
Arg [1] : 000000000000000000000000d061d61a4d941c39e5453435b6345dc261c2fce0
Arg [2] : 0000000000000000000000007eeac6cddbd1d0b8af061742d41877d7f707289a
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.