Latest 25 from a total of 8,923 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Withdraw | 23713818 | 3 days ago | IN | 0 ETH | 0.00003692 | ||||
| Set_approve_depo... | 23339044 | 55 days ago | IN | 0 ETH | 0.00005343 | ||||
| Withdraw | 23105484 | 88 days ago | IN | 0 ETH | 0.00030068 | ||||
| Set_approve_depo... | 23105263 | 88 days ago | IN | 0 ETH | 0.00007036 | ||||
| Withdraw | 23083830 | 91 days ago | IN | 0 ETH | 0.0002285 | ||||
| Set_approve_depo... | 22969162 | 107 days ago | IN | 0 ETH | 0.00008722 | ||||
| Deposit | 22732959 | 140 days ago | IN | 0 ETH | 0.00101993 | ||||
| Withdraw | 22407224 | 186 days ago | IN | 0 ETH | 0.00031933 | ||||
| Withdraw | 22406479 | 186 days ago | IN | 0 ETH | 0.00032766 | ||||
| Withdraw | 22394005 | 188 days ago | IN | 0 ETH | 0.0004901 | ||||
| Withdraw | 22015810 | 240 days ago | IN | 0 ETH | 0.00031663 | ||||
| Withdraw | 21804704 | 270 days ago | IN | 0 ETH | 0.0003638 | ||||
| Withdraw | 21478042 | 315 days ago | IN | 0 ETH | 0.00161421 | ||||
| Withdraw | 21469684 | 317 days ago | IN | 0 ETH | 0.00219907 | ||||
| Withdraw | 21342513 | 334 days ago | IN | 0 ETH | 0.00656615 | ||||
| Withdraw | 21335067 | 335 days ago | IN | 0 ETH | 0.00653414 | ||||
| Withdraw | 20661906 | 429 days ago | IN | 0 ETH | 0.00085733 | ||||
| Withdraw | 20114772 | 506 days ago | IN | 0 ETH | 0.00176638 | ||||
| Deposit | 19893159 | 537 days ago | IN | 0 ETH | 0.00134133 | ||||
| Withdraw | 19887776 | 537 days ago | IN | 0 ETH | 0.00150355 | ||||
| Withdraw | 19884000 | 538 days ago | IN | 0 ETH | 0.00301468 | ||||
| Withdraw | 19830843 | 545 days ago | IN | 0 ETH | 0.00203552 | ||||
| Withdraw | 19746246 | 557 days ago | IN | 0 ETH | 0.00256794 | ||||
| Withdraw | 19525509 | 588 days ago | IN | 0 ETH | 0.01025225 | ||||
| Withdraw | 19496347 | 592 days ago | IN | 0 ETH | 0.00781838 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Cross-Chain Transactions
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.
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x64E3C23b...1c1ac041d The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
Vyper_contract
Compiler Version
vyper:0.2.4
Contract Source Code (Vyper language format)
# @version 0.2.4
"""
@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
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)
@external
def __init__(lp_addr: address, _minter: address):
"""
@notice Contract constructor
@param lp_addr Liquidity Pool contract address
@param _minter Minter contract address
"""
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()
@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
# 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]Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"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"},{"outputs":[],"inputs":[{"type":"address","name":"lp_addr"},{"type":"address","name":"_minter"}],"stateMutability":"nonpayable","type":"constructor"},{"name":"user_checkpoint","outputs":[{"type":"bool","name":""}],"inputs":[{"type":"address","name":"addr"}],"stateMutability":"nonpayable","type":"function","gas":2079152},{"name":"claimable_tokens","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"addr"}],"stateMutability":"nonpayable","type":"function","gas":1998318},{"name":"kick","outputs":[],"inputs":[{"type":"address","name":"addr"}],"stateMutability":"nonpayable","type":"function","gas":2084532},{"name":"set_approve_deposit","outputs":[],"inputs":[{"type":"address","name":"addr"},{"type":"bool","name":"can_deposit"}],"stateMutability":"nonpayable","type":"function","gas":35766},{"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":2208318},{"name":"integrate_checkpoint","outputs":[{"type":"uint256","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":2297},{"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":1725},{"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":1969},{"name":"working_balances","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"arg0"}],"stateMutability":"view","type":"function","gas":1845},{"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":1995},{"name":"integrate_checkpoint_of","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"arg0"}],"stateMutability":"view","type":"function","gas":2025},{"name":"integrate_fraction","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"arg0"}],"stateMutability":"view","type":"function","gas":2055},{"name":"inflation_rate","outputs":[{"type":"uint256","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1931}]Contract Creation Code
0x740100000000000000000000000000000000000000006020526f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060605274012a05f1fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffed5fa0e000000000000000000000000000000000060a05260406118366101403934156100a157600080fd5b602061183660c03960c05160205181106100ba57600080fd5b50602060206118360160c03960c05160205181106100d757600080fd5b50600061014051186100e857600080fd5b600061016051186100f857600080fd5b61014051600255610160516000556020610200600463fc0c546a6101a0526101bc610160515afa61012857600080fd5b601f3d1161013557600080fd5b60005061020051610180526101805160015560206102a0600463f77c47916102405261025c610160515afa61016957600080fd5b601f3d1161017657600080fd5b6000506102a05161022052610220516003556020610320600463dfe050316102c0526102dc610220515afa6101aa57600080fd5b601f3d116101b757600080fd5b6000506103205160045542600c60c052602060c0205560206103a06004632c4e722e6103405261035c610180515afa6101ef57600080fd5b601f3d116101fc57600080fd5b6000506103a0516011556020610420600463b26b238e6103c0526103dc6000610180515af161022a57600080fd5b601f3d1161023757600080fd5b6000506104205160075561181e56600436101561000d576115d2565b600035601c52740100000000000000000000000000000000000000006020526f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060605274012a05f1fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffed5fa0e000000000000000000000000000000000060a05260001561031c575b6101a0526101405261016052610180526004546101c052602061028060246370a0823161020052610140516102205261021c6101c0515afa6100ea57600080fd5b601f3d116100f757600080fd5b600050610280516101e052602061032060046318160ddd6102c0526102dc6101c0515afa61012457600080fd5b601f3d1161013157600080fd5b600050610320516102a052610160516028808202821582848304141761015657600080fd5b809050905090506064808061016a57600080fd5b8204905090506103405260006102a05111156101ac57600c60c052602060c020546212750081818301101561019e57600080fd5b8082019050905042116101af565b60005b1561023b576103408051610180516101e05180820282158284830414176101d557600080fd5b809050905090506102a05180806101eb57600080fd5b820490509050603c808202821582848304141761020757600080fd5b809050905090506064808061021b57600080fd5b82049050905081818301101561023057600080fd5b808201905090508152505b6101605161034051808211156102515780610253565b815b905090506103405260096101405160e05260c052604060c02054610360526103405160096101405160e05260c052604060c02055600a546103405181818301101561029d57600080fd5b8082019050905061036051808210156102b557600080fd5b808203905090506103805261038051600a55610140516103a052610160516103c052610180516103e052610340516104005261038051610420527f7ecd84343f76a23d2227290e0288da3251b045541698e575a5515af4f04197a360a06103a0a16101a051565b600015610936575b6101605261014052600154610180526003546101a052600b546101c0526101c0516c01431e0fae6d7217caa0000000811061035e57600080fd5b600c60c052602060c02001546101e0526101c0516c01431e0fae6d7217caa0000000811061038b57600080fd5b600d60c052602060c020015461020052601154610220526102205161024052600754610260526101e0516102605110151561043d5760206102e0600463b26b238e6102805261029c6000610180515af16103e457600080fd5b601f3d116103f157600080fd5b6000506102e05160075560206103606004632c4e722e6103005261031c610180515afa61041d57600080fd5b601f3d1161042a57600080fd5b6000506103605161024052610240516011555b6101a0513b61044b57600080fd5b60006000602463615e523761038052306103a05261039c60006101a0515af161047357600080fd5b60096101405160e05260c052604060c0205461040052600a54610420526101e0514211156107e8576101e051610440526101e05162093a808181830110156104ba57600080fd5b8082019050905062093a8080806104d057600080fd5b82049050905062093a8080820282158284830414176104ee57600080fd5b8090509050905042808211156105045780610506565b815b905090506104605261048060006101f4818352015b61046051610440518082101561053057600080fd5b808203905090506104a0526020610580604463d3078c946104e05230610500526104405162093a80808061056357600080fd5b82049050905062093a80808202821582848304141761058157600080fd5b80905090509050610520526104fc6101a0515afa61059e57600080fd5b601f3d116105ab57600080fd5b600050610580516104c05260006104205111156107855761044051610260511015156105df576104605161026051106105e2565b60005b1561070e576102008051610220516104c051808202821582848304141761060857600080fd5b8090509050905061026051610440518082101561062457600080fd5b80820390509050808202821582848304141761063f57600080fd5b8090509050905061042051808061065557600080fd5b82049050905081818301101561066a57600080fd5b8082019050905081525061024051610220526102008051610220516104c051808202821582848304141761069d57600080fd5b809050905090506104605161026051808210156106b957600080fd5b8082039050905080820282158284830414176106d457600080fd5b809050905090506104205180806106ea57600080fd5b8204905090508181830110156106ff57600080fd5b80820190509050815250610784565b6102008051610220516104c051808202821582848304141761072f57600080fd5b809050905090506104a051808202821582848304141761074e57600080fd5b8090509050905061042051808061076457600080fd5b82049050905081818301101561077957600080fd5b808201905090508152505b5b42610460511415610795576107e5565b61046051610440526104605162093a808181830110156107b457600080fd5b8082019050905042808211156107ca57806107cc565b815b90509050610460525b815160010180835281141561051b575b50505b6101c0805160016060518183018060405190131561080557600080fd5b809190121561081357600080fd5b905090508152506101c051600b55426101c0516c01431e0fae6d7217caa0000000811061083f57600080fd5b600c60c052602060c0200155610200516101c0516c01431e0fae6d7217caa0000000811061086c57600080fd5b600d60c052602060c020015560106101405160e05260c052604060c02080546104005161020051600e6101405160e05260c052604060c02054808210156108b257600080fd5b8082039050905080820282158284830414176108cd57600080fd5b80905090509050670de0b6b3a764000080806108e857600080fd5b8204905090508181830110156108fd57600080fd5b8082019050905081555061020051600e6101405160e05260c052604060c0205542600f6101405160e05260c052604060c0205561016051565b634b82009360005114156109f957341561094f57600080fd5b600435602051811061096057600080fd5b50600435331415610972576001610978565b60005433145b5b61098257600080fd5b600435610140526101405160065801610324565b6000506101405161016051610180516004356101c052600560043560e05260c052604060c020546101e05260065461020052610200516101e0516101c051600658016100a9565b610180526101605261014052600050600160005260206000f350005b63331345836000511415610aac573415610a1257600080fd5b6004356020518110610a2357600080fd5b50600435610140526101405160065801610324565b600050601060043560e05260c052604060c0205460206102406044638b752bb06101a0526004356101c052306101e0526101bc6000545afa610a7957600080fd5b601f3d11610a8657600080fd5b6000506102405180821015610a9a57600080fd5b8082039050905060005260206000f350005b6396c551756000511415610d34573415610ac557600080fd5b6004356020518110610ad657600080fd5b5060045461014052600f60043560e05260c052604060c020546101605260206102e0604463da020a1861024052600435610260526020610220602463010ae7576101a0526004356101c0526101bc610140515afa610b3357600080fd5b601f3d11610b4057600080fd5b600050610220516102805261025c610140515afa610b5d57600080fd5b601f3d11610b6a57600080fd5b6000506102e05161018052600560043560e05260c052604060c0205461030052602061044060246370a082316103c0526004356103e0526103dc6004545afa610bb257600080fd5b601f3d11610bbf57600080fd5b600050610440511515610bd3576001610bdd565b6101605161018051115b5b610be757600080fd5b6103005160288082028215828483041417610c0157600080fd5b8090509050905060648080610c1557600080fd5b820490509050600960043560e05260c052604060c0205411610c3657600080fd5b610140610460525b61046051516020610460510161046052610460610460511015610c6057610c3e565b600435610480526104805160065801610324565b610440610460525b6104605152602061046051036104605261014061046051101515610c9f57610c7c565b6000506101406104e0525b6104e0515160206104e051016104e0526104e06104e0511015610ccc57610caa565b60043561050052600560043560e05260c052604060c020546105205260065461054052610540516105205161050051600658016100a9565b6104c06104e0525b6104e0515260206104e051036104e0526101406104e051101515610d2f57610d0c565b600050005b631d2747d46000511415610d92573415610d4d57600080fd5b6004356020518110610d5e57600080fd5b5060243560028110610d6f57600080fd5b50602435600860043560e05260c052604060c0203360e05260c052604060c02055005b63b6b55f256000511415610daa573361014052610de1565b636e553f656000511415610dd9576024356020518110610dc957600080fd5b6020602461014037600050610de1565b60001561101e575b62ffffff5415610df057600080fd5b600162ffffff553415610e0257600080fd5b33610140511815610e75576308c379a061016052602061018052600c6101a0527f4e6f7420617070726f76656400000000000000000000000000000000000000006101c0526101a05060083360e05260c052604060c0206101405160e05260c052604060c02054610e7457606461017cfd5b5b6101405161014051610220526102205160065801610324565b6101405260005060006004351815610fe35760056101405160e05260c052604060c02054600435818183011015610ec457600080fd5b8082019050905061028052600654600435818183011015610ee457600080fd5b808201905090506102a0526102805160056101405160e05260c052604060c020556102a0516006556101406102c0525b6102c0515160206102c051016102c0526102c06102c0511015610f3657610f14565b610140516102e05261028051610300526102a0516103205261032051610300516102e051600658016100a9565b6102a06102c0525b6102c0515260206102c051036102c0526101406102c051101515610f8e57610f6b565b600050602061044060646323b872dd61038052336103a052306103c0526004356103e05261039c60006002545af1610fc557600080fd5b601f3d11610fd257600080fd5b60005061044051610fe257600080fd5b5b60043561046052610140517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c6020610460a2600062ffffff55005b632e1a7d4d600051141561119d5762ffffff541561103b57600080fd5b600162ffffff55341561104d57600080fd5b33610140526101405160065801610324565b60005060053360e05260c052604060c020546004358082101561108157600080fd5b808203905090506101a0526006546004358082101561109f57600080fd5b808203905090506101c0526101a05160053360e05260c052604060c020556101c0516006556101405161016051610180516101a0516101c05133610200526101a051610220526101c05161024052610240516102205161020051600658016100a9565b6101c0526101a0526101805261016052610140526000506020610340604463a9059cbb6102a052336102c0526004356102e0526102bc60006002545af161114857600080fd5b601f3d1161115557600080fd5b6000506103405161116557600080fd5b60043561036052337f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243646020610360a2600062ffffff55005b63d31f3f6d60005114156111e95734156111b657600080fd5b600b546c01431e0fae6d7217caa000000081106111d257600080fd5b600c60c052602060c020015460005260206000f350005b6307546172600051141561121057341561120257600080fd5b60005460005260206000f350005b6376d8b117600051141561123757341561122957600080fd5b60015460005260206000f350005b6382c63066600051141561125e57341561125057600080fd5b60025460005260206000f350005b63f77c4791600051141561128557341561127757600080fd5b60035460005260206000f350005b63dfe0503160005114156112ac57341561129e57600080fd5b60045460005260206000f350005b6370a0823160005114156112f35734156112c557600080fd5b60043560205181106112d657600080fd5b50600560043560e05260c052604060c0205460005260206000f350005b6318160ddd600051141561131a57341561130c57600080fd5b60065460005260206000f350005b63be5d1be9600051141561134157341561133357600080fd5b60075460005260206000f350005b63e152253660005114156113a857341561135a57600080fd5b600435602051811061136b57600080fd5b50602435602051811061137d57600080fd5b50600860043560e05260c052604060c02060243560e05260c052604060c0205460005260206000f350005b6313ecb1ca60005114156113ef5734156113c157600080fd5b60043560205181106113d257600080fd5b50600960043560e05260c052604060c0205460005260206000f350005b6317e28089600051141561141657341561140857600080fd5b600a5460005260206000f350005b63ef78d4fd600051141561143d57341561142f57600080fd5b600b5460005260206000f350005b637598108c600051141561148957341561145657600080fd5b6004356c01431e0fae6d7217caa0000000811061147257600080fd5b600c60c052602060c020015460005260206000f350005b63fec8ee0c60005114156114d55734156114a257600080fd5b6004356c01431e0fae6d7217caa000000081106114be57600080fd5b600d60c052602060c020015460005260206000f350005b63de263bfa600051141561151c5734156114ee57600080fd5b60043560205181106114ff57600080fd5b50600e60043560e05260c052604060c0205460005260206000f350005b639bd324f2600051141561156357341561153557600080fd5b600435602051811061154657600080fd5b50600f60043560e05260c052604060c0205460005260206000f350005b630940070760005114156115aa57341561157c57600080fd5b600435602051811061158d57600080fd5b50601060043560e05260c052604060c0205460005260206000f350005b63180692d060005114156115d15734156115c357600080fd5b60115460005260206000f350005b5b60006000fd5b61024661181e0361024660003961024661181e036000f3000000000000000000000000845838df265dcd2c412a1dc9e959c7d08537f8a2000000000000000000000000d061d61a4d941c39e5453435b6345dc261c2fce0
Deployed Bytecode
0x600436101561000d576115d2565b600035601c52740100000000000000000000000000000000000000006020526f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060605274012a05f1fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffed5fa0e000000000000000000000000000000000060a05260001561031c575b6101a0526101405261016052610180526004546101c052602061028060246370a0823161020052610140516102205261021c6101c0515afa6100ea57600080fd5b601f3d116100f757600080fd5b600050610280516101e052602061032060046318160ddd6102c0526102dc6101c0515afa61012457600080fd5b601f3d1161013157600080fd5b600050610320516102a052610160516028808202821582848304141761015657600080fd5b809050905090506064808061016a57600080fd5b8204905090506103405260006102a05111156101ac57600c60c052602060c020546212750081818301101561019e57600080fd5b8082019050905042116101af565b60005b1561023b576103408051610180516101e05180820282158284830414176101d557600080fd5b809050905090506102a05180806101eb57600080fd5b820490509050603c808202821582848304141761020757600080fd5b809050905090506064808061021b57600080fd5b82049050905081818301101561023057600080fd5b808201905090508152505b6101605161034051808211156102515780610253565b815b905090506103405260096101405160e05260c052604060c02054610360526103405160096101405160e05260c052604060c02055600a546103405181818301101561029d57600080fd5b8082019050905061036051808210156102b557600080fd5b808203905090506103805261038051600a55610140516103a052610160516103c052610180516103e052610340516104005261038051610420527f7ecd84343f76a23d2227290e0288da3251b045541698e575a5515af4f04197a360a06103a0a16101a051565b600015610936575b6101605261014052600154610180526003546101a052600b546101c0526101c0516c01431e0fae6d7217caa0000000811061035e57600080fd5b600c60c052602060c02001546101e0526101c0516c01431e0fae6d7217caa0000000811061038b57600080fd5b600d60c052602060c020015461020052601154610220526102205161024052600754610260526101e0516102605110151561043d5760206102e0600463b26b238e6102805261029c6000610180515af16103e457600080fd5b601f3d116103f157600080fd5b6000506102e05160075560206103606004632c4e722e6103005261031c610180515afa61041d57600080fd5b601f3d1161042a57600080fd5b6000506103605161024052610240516011555b6101a0513b61044b57600080fd5b60006000602463615e523761038052306103a05261039c60006101a0515af161047357600080fd5b60096101405160e05260c052604060c0205461040052600a54610420526101e0514211156107e8576101e051610440526101e05162093a808181830110156104ba57600080fd5b8082019050905062093a8080806104d057600080fd5b82049050905062093a8080820282158284830414176104ee57600080fd5b8090509050905042808211156105045780610506565b815b905090506104605261048060006101f4818352015b61046051610440518082101561053057600080fd5b808203905090506104a0526020610580604463d3078c946104e05230610500526104405162093a80808061056357600080fd5b82049050905062093a80808202821582848304141761058157600080fd5b80905090509050610520526104fc6101a0515afa61059e57600080fd5b601f3d116105ab57600080fd5b600050610580516104c05260006104205111156107855761044051610260511015156105df576104605161026051106105e2565b60005b1561070e576102008051610220516104c051808202821582848304141761060857600080fd5b8090509050905061026051610440518082101561062457600080fd5b80820390509050808202821582848304141761063f57600080fd5b8090509050905061042051808061065557600080fd5b82049050905081818301101561066a57600080fd5b8082019050905081525061024051610220526102008051610220516104c051808202821582848304141761069d57600080fd5b809050905090506104605161026051808210156106b957600080fd5b8082039050905080820282158284830414176106d457600080fd5b809050905090506104205180806106ea57600080fd5b8204905090508181830110156106ff57600080fd5b80820190509050815250610784565b6102008051610220516104c051808202821582848304141761072f57600080fd5b809050905090506104a051808202821582848304141761074e57600080fd5b8090509050905061042051808061076457600080fd5b82049050905081818301101561077957600080fd5b808201905090508152505b5b42610460511415610795576107e5565b61046051610440526104605162093a808181830110156107b457600080fd5b8082019050905042808211156107ca57806107cc565b815b90509050610460525b815160010180835281141561051b575b50505b6101c0805160016060518183018060405190131561080557600080fd5b809190121561081357600080fd5b905090508152506101c051600b55426101c0516c01431e0fae6d7217caa0000000811061083f57600080fd5b600c60c052602060c0200155610200516101c0516c01431e0fae6d7217caa0000000811061086c57600080fd5b600d60c052602060c020015560106101405160e05260c052604060c02080546104005161020051600e6101405160e05260c052604060c02054808210156108b257600080fd5b8082039050905080820282158284830414176108cd57600080fd5b80905090509050670de0b6b3a764000080806108e857600080fd5b8204905090508181830110156108fd57600080fd5b8082019050905081555061020051600e6101405160e05260c052604060c0205542600f6101405160e05260c052604060c0205561016051565b634b82009360005114156109f957341561094f57600080fd5b600435602051811061096057600080fd5b50600435331415610972576001610978565b60005433145b5b61098257600080fd5b600435610140526101405160065801610324565b6000506101405161016051610180516004356101c052600560043560e05260c052604060c020546101e05260065461020052610200516101e0516101c051600658016100a9565b610180526101605261014052600050600160005260206000f350005b63331345836000511415610aac573415610a1257600080fd5b6004356020518110610a2357600080fd5b50600435610140526101405160065801610324565b600050601060043560e05260c052604060c0205460206102406044638b752bb06101a0526004356101c052306101e0526101bc6000545afa610a7957600080fd5b601f3d11610a8657600080fd5b6000506102405180821015610a9a57600080fd5b8082039050905060005260206000f350005b6396c551756000511415610d34573415610ac557600080fd5b6004356020518110610ad657600080fd5b5060045461014052600f60043560e05260c052604060c020546101605260206102e0604463da020a1861024052600435610260526020610220602463010ae7576101a0526004356101c0526101bc610140515afa610b3357600080fd5b601f3d11610b4057600080fd5b600050610220516102805261025c610140515afa610b5d57600080fd5b601f3d11610b6a57600080fd5b6000506102e05161018052600560043560e05260c052604060c0205461030052602061044060246370a082316103c0526004356103e0526103dc6004545afa610bb257600080fd5b601f3d11610bbf57600080fd5b600050610440511515610bd3576001610bdd565b6101605161018051115b5b610be757600080fd5b6103005160288082028215828483041417610c0157600080fd5b8090509050905060648080610c1557600080fd5b820490509050600960043560e05260c052604060c0205411610c3657600080fd5b610140610460525b61046051516020610460510161046052610460610460511015610c6057610c3e565b600435610480526104805160065801610324565b610440610460525b6104605152602061046051036104605261014061046051101515610c9f57610c7c565b6000506101406104e0525b6104e0515160206104e051016104e0526104e06104e0511015610ccc57610caa565b60043561050052600560043560e05260c052604060c020546105205260065461054052610540516105205161050051600658016100a9565b6104c06104e0525b6104e0515260206104e051036104e0526101406104e051101515610d2f57610d0c565b600050005b631d2747d46000511415610d92573415610d4d57600080fd5b6004356020518110610d5e57600080fd5b5060243560028110610d6f57600080fd5b50602435600860043560e05260c052604060c0203360e05260c052604060c02055005b63b6b55f256000511415610daa573361014052610de1565b636e553f656000511415610dd9576024356020518110610dc957600080fd5b6020602461014037600050610de1565b60001561101e575b62ffffff5415610df057600080fd5b600162ffffff553415610e0257600080fd5b33610140511815610e75576308c379a061016052602061018052600c6101a0527f4e6f7420617070726f76656400000000000000000000000000000000000000006101c0526101a05060083360e05260c052604060c0206101405160e05260c052604060c02054610e7457606461017cfd5b5b6101405161014051610220526102205160065801610324565b6101405260005060006004351815610fe35760056101405160e05260c052604060c02054600435818183011015610ec457600080fd5b8082019050905061028052600654600435818183011015610ee457600080fd5b808201905090506102a0526102805160056101405160e05260c052604060c020556102a0516006556101406102c0525b6102c0515160206102c051016102c0526102c06102c0511015610f3657610f14565b610140516102e05261028051610300526102a0516103205261032051610300516102e051600658016100a9565b6102a06102c0525b6102c0515260206102c051036102c0526101406102c051101515610f8e57610f6b565b600050602061044060646323b872dd61038052336103a052306103c0526004356103e05261039c60006002545af1610fc557600080fd5b601f3d11610fd257600080fd5b60005061044051610fe257600080fd5b5b60043561046052610140517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c6020610460a2600062ffffff55005b632e1a7d4d600051141561119d5762ffffff541561103b57600080fd5b600162ffffff55341561104d57600080fd5b33610140526101405160065801610324565b60005060053360e05260c052604060c020546004358082101561108157600080fd5b808203905090506101a0526006546004358082101561109f57600080fd5b808203905090506101c0526101a05160053360e05260c052604060c020556101c0516006556101405161016051610180516101a0516101c05133610200526101a051610220526101c05161024052610240516102205161020051600658016100a9565b6101c0526101a0526101805261016052610140526000506020610340604463a9059cbb6102a052336102c0526004356102e0526102bc60006002545af161114857600080fd5b601f3d1161115557600080fd5b6000506103405161116557600080fd5b60043561036052337f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243646020610360a2600062ffffff55005b63d31f3f6d60005114156111e95734156111b657600080fd5b600b546c01431e0fae6d7217caa000000081106111d257600080fd5b600c60c052602060c020015460005260206000f350005b6307546172600051141561121057341561120257600080fd5b60005460005260206000f350005b6376d8b117600051141561123757341561122957600080fd5b60015460005260206000f350005b6382c63066600051141561125e57341561125057600080fd5b60025460005260206000f350005b63f77c4791600051141561128557341561127757600080fd5b60035460005260206000f350005b63dfe0503160005114156112ac57341561129e57600080fd5b60045460005260206000f350005b6370a0823160005114156112f35734156112c557600080fd5b60043560205181106112d657600080fd5b50600560043560e05260c052604060c0205460005260206000f350005b6318160ddd600051141561131a57341561130c57600080fd5b60065460005260206000f350005b63be5d1be9600051141561134157341561133357600080fd5b60075460005260206000f350005b63e152253660005114156113a857341561135a57600080fd5b600435602051811061136b57600080fd5b50602435602051811061137d57600080fd5b50600860043560e05260c052604060c02060243560e05260c052604060c0205460005260206000f350005b6313ecb1ca60005114156113ef5734156113c157600080fd5b60043560205181106113d257600080fd5b50600960043560e05260c052604060c0205460005260206000f350005b6317e28089600051141561141657341561140857600080fd5b600a5460005260206000f350005b63ef78d4fd600051141561143d57341561142f57600080fd5b600b5460005260206000f350005b637598108c600051141561148957341561145657600080fd5b6004356c01431e0fae6d7217caa0000000811061147257600080fd5b600c60c052602060c020015460005260206000f350005b63fec8ee0c60005114156114d55734156114a257600080fd5b6004356c01431e0fae6d7217caa000000081106114be57600080fd5b600d60c052602060c020015460005260206000f350005b63de263bfa600051141561151c5734156114ee57600080fd5b60043560205181106114ff57600080fd5b50600e60043560e05260c052604060c0205460005260206000f350005b639bd324f2600051141561156357341561153557600080fd5b600435602051811061154657600080fd5b50600f60043560e05260c052604060c0205460005260206000f350005b630940070760005114156115aa57341561157c57600080fd5b600435602051811061158d57600080fd5b50601060043560e05260c052604060c0205460005260206000f350005b63180692d060005114156115d15734156115c357600080fd5b60115460005260206000f350005b5b60006000fd
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
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.