| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| 0x3be8ae636e88646dc6bb0117eb0a5c4ac149c335946cf6250a8865099e84e788 | Claim | (pending) | 23 hrs ago | IN | 0 ETH | (Pending) | |||
| 0x0999cc0923b8cb26aa0e88d7ebc3f04a9aac83a17d32557fab130403ff982611 | Claim_and_stake | (pending) | 3 days ago | IN | 0 ETH | (Pending) | |||
| Claim_and_stake | 24510415 | 15 mins ago | IN | 0 ETH | 0.00001171 | ||||
| Claim | 24510364 | 25 mins ago | IN | 0 ETH | 0.00033313 | ||||
| Claim | 24510325 | 33 mins ago | IN | 0 ETH | 0.00000351 | ||||
| Claim | 24510315 | 35 mins ago | IN | 0 ETH | 0.00001133 | ||||
| Claim_and_stake | 24510269 | 44 mins ago | IN | 0 ETH | 0.00001084 | ||||
| Set_auto_claim | 24510216 | 55 mins ago | IN | 0 ETH | 0.0000014 | ||||
| Claim_and_stake | 24510167 | 1 hr ago | IN | 0 ETH | 0.00001334 | ||||
| Claim | 24509867 | 2 hrs ago | IN | 0 ETH | 0.00000967 | ||||
| Claim_and_stake | 24509840 | 2 hrs ago | IN | 0 ETH | 0.00001485 | ||||
| Claim_and_stake | 24509649 | 2 hrs ago | IN | 0 ETH | 0.00001222 | ||||
| Claim | 24509598 | 2 hrs ago | IN | 0 ETH | 0.00000476 | ||||
| Claim | 24509347 | 3 hrs ago | IN | 0 ETH | 0.00000498 | ||||
| Claim | 24509206 | 4 hrs ago | IN | 0 ETH | 0.00000499 | ||||
| Claim | 24509198 | 4 hrs ago | IN | 0 ETH | 0.00000767 | ||||
| Claim | 24509109 | 4 hrs ago | IN | 0 ETH | 0.00033322 | ||||
| Claim | 24508663 | 6 hrs ago | IN | 0 ETH | 0.00000509 | ||||
| Claim | 24508022 | 8 hrs ago | IN | 0 ETH | 0.00000588 | ||||
| Claim | 24507974 | 8 hrs ago | IN | 0 ETH | 0.00033314 | ||||
| Claim | 24507947 | 8 hrs ago | IN | 0 ETH | 0.00000386 | ||||
| Claim_and_stake | 24507836 | 8 hrs ago | IN | 0 ETH | 0.00004683 | ||||
| Claim_and_stake | 24507758 | 9 hrs ago | IN | 0 ETH | 0.00001782 | ||||
| Claim | 24507706 | 9 hrs ago | IN | 0 ETH | 0.00016929 | ||||
| Claim | 24507635 | 9 hrs ago | IN | 0 ETH | 0.00000322 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Staking Reward Distribution
Compiler Version
vyper:0.3.7
Contract Source Code (Vyper language format)
# @version 0.3.7
"""
@title Staking Reward Distribution
@author Curve Finance
@license MIT
@dev forked from https://etherscan.io/address/0xD16d5eC345Dd86Fb63C6a9C43c517210F1027914#code
"""
from vyper.interfaces import ERC20
interface VotingEscrow:
def user_point_epoch(addr: address) -> uint256: view
def epoch() -> uint256: view
def user_point_history(addr: address, loc: uint256) -> Point: view
def point_history(loc: uint256) -> Point: view
def locked(user: address) -> LockedBalance: view
def checkpoint(): nonpayable
def increase_amount_for(addr: address, _value: uint256): nonpayable
def create_lock_for(addr: address, _value: uint256, unlock_time: uint256): nonpayable
event CommitAdmin:
admin: address
event ApplyAdmin:
admin: address
event ToggleAllowCheckpointToken:
toggle_flag: bool
event CheckpointToken:
time: uint256
tokens: uint256
event Claimed:
recipient: indexed(address)
amount: uint256
claim_epoch: uint256
max_epoch: uint256
event WhitelistClaimer:
claimer: address
is_whitelist: bool
event SetAutoClaim:
user: address
is_auto_claim: bool
struct Point:
bias: int128
slope: int128 # - dweight / dt
ts: uint256
blk: uint256 # block
struct LockedBalance:
amount: int128
end: uint256
WEEK: constant(uint256) = 7 * 86400
TOKEN_CHECKPOINT_DEADLINE: constant(uint256) = 86400
start_time: public(uint256)
time_cursor: public(uint256)
time_cursor_of: public(HashMap[address, uint256])
user_epoch_of: public(HashMap[address, uint256])
last_token_time: public(uint256)
tokens_per_week: public(uint256[1000000000000000])
voting_escrow: public(address)
token: public(address)
total_received: public(uint256)
token_last_balance: public(uint256)
ve_supply: public(uint256[1000000000000000]) # VE total supply at week bounds
is_auto_claim: public(HashMap[address, bool])
whitelisted_claimer: public(HashMap[address, bool])
admin: public(address)
future_admin: public(address)
can_checkpoint_token: public(bool)
emergency_return: public(address)
is_killed: public(bool)
@external
def __init__(
_voting_escrow: address,
_start_time: uint256,
_token: address,
_admin: address,
_emergency_return: address
):
"""
@notice Contract constructor
@param _voting_escrow VotingEscrow contract address
@param _start_time Epoch time for fee distribution to start
@param _token Fee token address (GWEI)
@param _admin Admin address
@param _emergency_return Address to transfer `_token` balance to
if this contract is killed
"""
t: uint256 = _start_time / WEEK * WEEK
self.start_time = t
self.last_token_time = t
self.time_cursor = t
self.token = _token
self.voting_escrow = _voting_escrow
self.admin = _admin
self.emergency_return = _emergency_return
@internal
def _checkpoint_token():
token_balance: uint256 = ERC20(self.token).balanceOf(self)
to_distribute: uint256 = token_balance - self.token_last_balance
self.token_last_balance = token_balance
t: uint256 = self.last_token_time
since_last: uint256 = block.timestamp - t
self.last_token_time = block.timestamp
this_week: uint256 = t / WEEK * WEEK
next_week: uint256 = 0
for i in range(20):
next_week = this_week + WEEK
if block.timestamp < next_week:
if since_last == 0 and block.timestamp == t:
self.tokens_per_week[this_week] += to_distribute
else:
self.tokens_per_week[this_week] += to_distribute * (block.timestamp - t) / since_last
break
else:
if since_last == 0 and next_week == t:
self.tokens_per_week[this_week] += to_distribute
else:
self.tokens_per_week[this_week] += to_distribute * (next_week - t) / since_last
t = next_week
this_week = next_week
log CheckpointToken(block.timestamp, to_distribute)
@external
def checkpoint_token():
"""
@notice Update the token checkpoint
@dev Calculates the total number of tokens to be distributed in a given week.
During setup for the initial distribution this function is only callable
by the contract owner. Beyond initial distro, it can be enabled for anyone
to call.
"""
assert (msg.sender == self.admin) or (self.whitelisted_claimer[msg.sender]) or\
(self.can_checkpoint_token and (block.timestamp > self.last_token_time + TOKEN_CHECKPOINT_DEADLINE))
self._checkpoint_token()
@internal
def _find_timestamp_epoch(ve: address, _timestamp: uint256) -> uint256:
_min: uint256 = 0
_max: uint256 = VotingEscrow(ve).epoch()
for i in range(128):
if _min >= _max:
break
_mid: uint256 = (_min + _max + 2) / 2
pt: Point = VotingEscrow(ve).point_history(_mid)
if pt.ts <= _timestamp:
_min = _mid
else:
_max = _mid - 1
return _min
@view
@internal
def _find_timestamp_user_epoch(ve: address, user: address, _timestamp: uint256, max_user_epoch: uint256) -> uint256:
_min: uint256 = 0
_max: uint256 = max_user_epoch
for i in range(128):
if _min >= _max:
break
_mid: uint256 = (_min + _max + 2) / 2
pt: Point = VotingEscrow(ve).user_point_history(user, _mid)
if pt.ts <= _timestamp:
_min = _mid
else:
_max = _mid - 1
return _min
@view
@external
def ve_for_at(_user: address, _timestamp: uint256) -> uint256:
"""
@notice Get the veGWEI balance for `_user` at `_timestamp`
@param _user Address to query balance for
@param _timestamp Epoch time
@return uint256 veGWEI balance
"""
ve: address = self.voting_escrow
max_user_epoch: uint256 = VotingEscrow(ve).user_point_epoch(_user)
epoch: uint256 = self._find_timestamp_user_epoch(ve, _user, _timestamp, max_user_epoch)
pt: Point = VotingEscrow(ve).user_point_history(_user, epoch)
return convert(max(pt.bias - pt.slope * convert(_timestamp - pt.ts, int128), 0), uint256)
@internal
def _checkpoint_total_supply():
ve: address = self.voting_escrow
t: uint256 = self.time_cursor
rounded_timestamp: uint256 = (block.timestamp - 1) / WEEK * WEEK
VotingEscrow(ve).checkpoint()
for i in range(20):
if t > rounded_timestamp:
break
else:
epoch: uint256 = self._find_timestamp_epoch(ve, t)
pt: Point = VotingEscrow(ve).point_history(epoch)
dt: int128 = 0
if t > pt.ts:
# If the point is at 0 epoch, it can actually be earlier than the first deposit
# Then make dt 0
dt = convert(t - pt.ts, int128)
self.ve_supply[t] = convert(max(pt.bias - pt.slope * dt, 0), uint256)
t += WEEK
self.time_cursor = t
@external
def checkpoint_total_supply():
"""
@notice Update the veGWEI total supply checkpoint
@dev The checkpoint is also updated by the first claimant each
new epoch week. This function may be called independently
of a claim, to reduce claiming gas costs.
"""
self._checkpoint_total_supply()
@internal
def _claim(addr: address, ve: address, _last_token_time: uint256) -> uint256:
# Minimal user_epoch is 0 (if user had no point)
user_epoch: uint256 = 0
to_distribute: uint256 = 0
max_user_epoch: uint256 = VotingEscrow(ve).user_point_epoch(addr)
_start_time: uint256 = self.start_time
if max_user_epoch == 0:
# No lock = no fees
return 0
week_cursor: uint256 = self.time_cursor_of[addr]
if week_cursor == 0:
# Need to do the initial binary search
user_epoch = self._find_timestamp_user_epoch(ve, addr, _start_time, max_user_epoch)
else:
user_epoch = self.user_epoch_of[addr]
if user_epoch == 0:
user_epoch = 1
user_point: Point = VotingEscrow(ve).user_point_history(addr, user_epoch)
if week_cursor == 0:
week_cursor = (user_point.ts + WEEK - 1) / WEEK * WEEK
if week_cursor >= _last_token_time:
return 0
if week_cursor < _start_time:
week_cursor = _start_time
old_user_point: Point = empty(Point)
# Iterate over weeks
for i in range(50):
if week_cursor >= _last_token_time:
break
if week_cursor >= user_point.ts and user_epoch <= max_user_epoch:
user_epoch += 1
old_user_point = user_point
if user_epoch > max_user_epoch:
user_point = empty(Point)
else:
user_point = VotingEscrow(ve).user_point_history(addr, user_epoch)
else:
# Calc
# + i * 2 is for rounding errors
dt: int128 = convert(week_cursor - old_user_point.ts, int128)
balance_of: uint256 = convert(max(old_user_point.bias - dt * old_user_point.slope, 0), uint256)
if balance_of == 0 and user_epoch > max_user_epoch:
break
if balance_of > 0:
to_distribute += balance_of * self.tokens_per_week[week_cursor] / self.ve_supply[week_cursor]
week_cursor += WEEK
user_epoch = min(max_user_epoch, user_epoch - 1)
self.user_epoch_of[addr] = user_epoch
self.time_cursor_of[addr] = week_cursor
log Claimed(addr, to_distribute, user_epoch, max_user_epoch)
return to_distribute
@external
@nonreentrant('lock')
def claim(_addr: address = msg.sender) -> uint256:
"""
@notice Claim fees for msg.sender
@dev Each call to claim look at a maximum of 50 user veGWEI points.
For accounts with many veGWEI related actions, this function
may need to be called more than once to claim all available
fees. In the `Claimed` event that fires, if `claim_epoch` is
less than `max_epoch`, the account may claim again.
@param _addr Address to claim fees for
@return uint256 Amount of fees claimed in the call
"""
assert _addr == msg.sender
assert not self.is_killed
if block.timestamp >= self.time_cursor:
self._checkpoint_total_supply()
last_token_time: uint256 = self.last_token_time
if self.can_checkpoint_token and (block.timestamp > last_token_time + TOKEN_CHECKPOINT_DEADLINE):
self._checkpoint_token()
last_token_time = block.timestamp
last_token_time = last_token_time / WEEK * WEEK
amount: uint256 = self._claim(_addr, self.voting_escrow, last_token_time)
if amount != 0:
token: address = self.token
assert ERC20(token).transfer(_addr, amount)
self.token_last_balance -= amount
return amount
@external
@nonreentrant('lock')
def claim_and_stake(_addr: address = msg.sender, _unlock_time: uint256 = 0) -> uint256:
"""
@notice similar as claim function above but with staking
"""
assert _addr == msg.sender
assert not self.is_killed
if block.timestamp >= self.time_cursor:
self._checkpoint_total_supply()
last_token_time: uint256 = self.last_token_time
if self.can_checkpoint_token and (block.timestamp > last_token_time + TOKEN_CHECKPOINT_DEADLINE):
self._checkpoint_token()
last_token_time = block.timestamp
last_token_time = last_token_time / WEEK * WEEK
amount: uint256 = self._claim(_addr, self.voting_escrow, last_token_time)
if amount != 0:
ve: address = self.voting_escrow
locked: LockedBalance = VotingEscrow(ve).locked(_addr)
ERC20(self.token).approve(ve, amount)
if locked.end > block.timestamp:
VotingEscrow(ve).increase_amount_for(_addr, amount)
elif locked.amount == 0:
VotingEscrow(ve).create_lock_for(_addr, amount, _unlock_time)
else:
raise "Withdraw old tokens first"
self.token_last_balance -= amount
return amount
@external
@nonreentrant('lock')
def claim_many(_receivers: address[20]) -> bool:
"""
@notice Make multiple fee claims in a single call
@dev Used to make multiple claims for the msg.sender address when that address
has significant veGWEI history
@param _receivers List of addresses to claim for. Claiming
terminates at the first `ZERO_ADDRESS`.
@return bool success
"""
assert not self.is_killed
if block.timestamp >= self.time_cursor:
self._checkpoint_total_supply()
last_token_time: uint256 = self.last_token_time
if self.can_checkpoint_token and (block.timestamp > last_token_time + TOKEN_CHECKPOINT_DEADLINE):
self._checkpoint_token()
last_token_time = block.timestamp
last_token_time = last_token_time / WEEK * WEEK
voting_escrow: address = self.voting_escrow
token: address = self.token
total: uint256 = 0
for addr in _receivers:
if addr == ZERO_ADDRESS:
break
assert addr == msg.sender
amount: uint256 = self._claim(addr, voting_escrow, last_token_time)
if amount != 0:
assert ERC20(token).transfer(addr, amount)
total += amount
if total != 0:
self.token_last_balance -= total
return True
@external
@nonreentrant('lock')
def claim_many_and_stake(_receivers: address[20], _unlock_times: uint256[20]) -> bool:
"""
@notice Help multiple existing stakers to make multiple fee claims and stake them in a single call
@param _receivers List of addresses to claim for. Claiming
terminates at the first `ZERO_ADDRESS`.
@return bool success
"""
assert not self.is_killed
if block.timestamp >= self.time_cursor:
self._checkpoint_total_supply()
last_token_time: uint256 = self.last_token_time
if self.can_checkpoint_token and (block.timestamp > last_token_time + TOKEN_CHECKPOINT_DEADLINE):
self._checkpoint_token()
last_token_time = block.timestamp
last_token_time = last_token_time / WEEK * WEEK
voting_escrow: address = self.voting_escrow
token: address = self.token
total: uint256 = 0
for i in range(20):
addr: address = _receivers[i]
if addr == ZERO_ADDRESS:
break
if addr != msg.sender:
assert self.whitelisted_claimer[msg.sender] and self.is_auto_claim[addr]
amount: uint256 = self._claim(addr, voting_escrow, last_token_time)
if amount != 0:
ve: address = self.voting_escrow
locked: LockedBalance = VotingEscrow(ve).locked(addr)
ERC20(self.token).approve(ve, amount)
if locked.end > block.timestamp:
VotingEscrow(ve).increase_amount_for(addr, amount)
elif locked.amount == 0:
VotingEscrow(ve).create_lock_for(addr, amount, _unlock_times[i])
else:
raise "Withdraw old tokens first"
total += amount
if total != 0:
self.token_last_balance -= total
return True
@external
def burn(_coin: address) -> bool:
"""
@notice Receive GWEI into the contract and trigger a token checkpoint
@param _coin Address of the coin being received (must be GWEI)
@return bool success
"""
assert _coin == self.token
assert not self.is_killed
amount: uint256 = ERC20(_coin).balanceOf(msg.sender)
if amount != 0:
ERC20(_coin).transferFrom(msg.sender, self, amount)
if self.can_checkpoint_token and (block.timestamp > self.last_token_time + TOKEN_CHECKPOINT_DEADLINE):
self._checkpoint_token()
return True
@external
def commit_admin(_addr: address):
"""
@notice Commit transfer of ownership
@param _addr New admin address
"""
assert msg.sender == self.admin # dev: access denied
self.future_admin = _addr
log CommitAdmin(_addr)
@external
def apply_admin():
"""
@notice Apply transfer of ownership
"""
assert msg.sender == self.admin
assert self.future_admin != ZERO_ADDRESS
future_admin: address = self.future_admin
self.admin = future_admin
log ApplyAdmin(future_admin)
@external
def whitelist_claimer(claimer: address, is_whitelist: bool):
"""
@notice whitelist contracts for calling claim_many_and_stake
@param claimer authorized address to claim rewards on behalf of others
"""
assert msg.sender == self.admin # dev: admin only
assert claimer != ZERO_ADDRESS
self.whitelisted_claimer[claimer] = is_whitelist
log WhitelistClaimer(claimer, is_whitelist)
@external
def set_auto_claim(_is_auto_claim: bool):
"""
@notice by setting true can allow other addr to claim and stake the reward
"""
self.is_auto_claim[msg.sender] = _is_auto_claim
log SetAutoClaim(msg.sender, _is_auto_claim)
@external
def toggle_allow_checkpoint_token():
"""
@notice Toggle permission for checkpointing by any account
"""
assert msg.sender == self.admin
flag: bool = not self.can_checkpoint_token
self.can_checkpoint_token = flag
log ToggleAllowCheckpointToken(flag)
@external
def kill_me():
"""
@notice Kill the contract
@dev Killing transfers the entire GWEI balance to the emergency return address
and blocks the ability to claim or burn. The contract cannot be unkilled.
"""
assert msg.sender == self.admin
self.is_killed = True
token: address = self.token
assert ERC20(token).transfer(self.emergency_return, ERC20(token).balanceOf(self))
@external
def recover_balance(_coin: address) -> bool:
"""
@notice Recover ERC20 tokens from this contract
@dev Tokens are sent to the emergency return address.
@param _coin Token address
@return bool success
"""
assert msg.sender == self.admin
assert _coin != self.token
amount: uint256 = ERC20(_coin).balanceOf(self)
response: Bytes[32] = raw_call(
_coin,
concat(
method_id("transfer(address,uint256)"),
convert(self.emergency_return, bytes32),
convert(amount, bytes32),
),
max_outsize=32,
)
if len(response) != 0:
assert convert(response, bool)
return TrueContract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"name":"CommitAdmin","inputs":[{"name":"admin","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"ApplyAdmin","inputs":[{"name":"admin","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"ToggleAllowCheckpointToken","inputs":[{"name":"toggle_flag","type":"bool","indexed":false}],"anonymous":false,"type":"event"},{"name":"CheckpointToken","inputs":[{"name":"time","type":"uint256","indexed":false},{"name":"tokens","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"Claimed","inputs":[{"name":"recipient","type":"address","indexed":true},{"name":"amount","type":"uint256","indexed":false},{"name":"claim_epoch","type":"uint256","indexed":false},{"name":"max_epoch","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"WhitelistClaimer","inputs":[{"name":"claimer","type":"address","indexed":false},{"name":"is_whitelist","type":"bool","indexed":false}],"anonymous":false,"type":"event"},{"name":"SetAutoClaim","inputs":[{"name":"user","type":"address","indexed":false},{"name":"is_auto_claim","type":"bool","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_voting_escrow","type":"address"},{"name":"_start_time","type":"uint256"},{"name":"_token","type":"address"},{"name":"_admin","type":"address"},{"name":"_emergency_return","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"checkpoint_token","inputs":[],"outputs":[]},{"stateMutability":"view","type":"function","name":"ve_for_at","inputs":[{"name":"_user","type":"address"},{"name":"_timestamp","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"checkpoint_total_supply","inputs":[],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"claim","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"claim","inputs":[{"name":"_addr","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"claim_and_stake","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"claim_and_stake","inputs":[{"name":"_addr","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"claim_and_stake","inputs":[{"name":"_addr","type":"address"},{"name":"_unlock_time","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"claim_many","inputs":[{"name":"_receivers","type":"address[20]"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"claim_many_and_stake","inputs":[{"name":"_receivers","type":"address[20]"},{"name":"_unlock_times","type":"uint256[20]"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"burn","inputs":[{"name":"_coin","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"commit_admin","inputs":[{"name":"_addr","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"apply_admin","inputs":[],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"whitelist_claimer","inputs":[{"name":"claimer","type":"address"},{"name":"is_whitelist","type":"bool"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_auto_claim","inputs":[{"name":"_is_auto_claim","type":"bool"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"toggle_allow_checkpoint_token","inputs":[],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"kill_me","inputs":[],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"recover_balance","inputs":[{"name":"_coin","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"start_time","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"time_cursor","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"time_cursor_of","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"user_epoch_of","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"last_token_time","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"tokens_per_week","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"voting_escrow","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"token","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"total_received","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"token_last_balance","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"ve_supply","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"is_auto_claim","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"whitelisted_claimer","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"future_admin","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"can_checkpoint_token","inputs":[],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"emergency_return","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"is_killed","inputs":[],"outputs":[{"name":"","type":"bool"}]}]Contract Creation Code
602061252f6000396000518060a01c61252a57604052602061256f6000396000518060a01c61252a57606052602061258f6000396000518060a01c61252a5760805260206125af6000396000518060a01c61252a5760a0523461252a57602061254f60003960005162093a808104905062093a8081028162093a8082041861252a57905060c05260c05160015560c05160055560c05160025560605166038d7ea4c680075560405166038d7ea4c680065560805166071afd498d000c5560a05166071afd498d000f5561244f6100da6100003961244f610000f36003361161000c5761183b565b60003560e01c3461243d5763811a40fe8118610098576004361061243d5766071afd498d000c543318610040576001610089565b66071afd498d000b336020526000526040600020546100865766071afd498d000e5461006d576000610089565b60055462015180810181811061243d5790504211610089565b60015b1561243d57610096611841565b005b63ace296fb811861023b576044361061243d576004358060a01c61243d576102e05266038d7ea4c6800654610300526103005163010ae757610340526102e051610360526020610340602461035c845afa6100f8573d600060003e3d6000fd5b60203d1061243d5761034090505161032052610300516040526102e0516060526024356080526103205160a052610130610360611c15565b6103605161034052610300516328d09d476103e0526102e05161040052610340516104205260806103e060446103fc845afa610171573d600060003e3d6000fd5b60803d1061243d576103e05180600f0b811861243d57610480526104005180600f0b811861243d576104a052610420516104c052610440516104e052610480905080516103605260208101516103805260408101516103a05260608101516103c0525061036051610380516024356103a05180820382811161243d579050905080607f1c61243d5780820280600f0b811861243d579050905080820380600f0b811861243d5790509050600081811860008313021890506000811261243d576103e05260206103e0f35b63b21ed5028118610258576004361061243d57610256611d43565b005b634e71d92d8118610275576004361061243d573361062052610298565b631e83409a811861040c576024361061243d576004358060a01c61243d57610620525b60005460021461243d57600260005533610620511861243d5766071afd498d00105461243d5760025442106102cf576102cf611d43565b6005546106405266071afd498d000e546102ea576000610300565b6106405162015180810181811061243d57905042115b156103135761030d611841565b42610640525b6106405162093a808104905062093a8081028162093a8082041861243d57905061064052610620516102e05266038d7ea4c680065461030052610640516103205261035f610680611f51565b610680516106605261066051156104005766038d7ea4c6800754610680526106805163a9059cbb6106a052610620516106c052610660516106e05260206106a060446106bc6000855af16103b8573d600060003e3d6000fd5b60203d1061243d576106a0518060011c61243d57610700526107009050511561243d5766038d7ea4c68009546106605180820382811161243d579050905066038d7ea4c68009555b60206106606003600055f35b634f5a8ff6811861042f576004361061243d573361062052600061064052610486565b63c49e6c0e811861045c576024361061243d576004358060a01c61243d5761062052600061064052610486565b63dc5b3e048118610771576044361061243d576004358060a01c61243d5761062052602435610640525b60005460021461243d57600260005533610620511861243d5766071afd498d00105461243d5760025442106104bd576104bd611d43565b6005546106605266071afd498d000e546104d85760006104ee565b6106605162015180810181811061243d57905042115b15610501576104fb611841565b42610660525b6106605162093a808104905062093a8081028162093a8082041861243d57905061066052610620516102e05266038d7ea4c680065461030052610660516103205261054d6106a0611f51565b6106a0516106805261068051156107655766038d7ea4c68006546106a0526106a05163cbf9fe5f6107005261062051610720526040610700602461071c845afa61059c573d600060003e3d6000fd5b60403d1061243d576107005180600f0b811861243d57610760526107205161078052610760905080516106c05260208101516106e0525066038d7ea4c680075463095ea7b3610700526106a0516107205261068051610740526020610700604461071c6000855af1610613573d600060003e3d6000fd5b60203d1061243d57610700518060011c61243d57610760526107605050426106e051116106fc576106c051610692576106a051633e173b2961070052610620516107205261068051610740526106405161076052803b1561243d576000610700606461071c6000855af161068c573d600060003e3d6000fd5b50610740565b6019610700527f5769746864726177206f6c6420746f6b656e73206669727374000000000000006107205261070050610700518061072001601f826000031636823750506308c379a06106c05260206106e052601f19601f6107005101166044016106dcfd610740565b6106a05163e86483766107005261062051610720526106805161074052803b1561243d576000610700604461071c6000855af161073e573d600060003e3d6000fd5b505b66038d7ea4c68009546106805180820382811161243d579050905066038d7ea4c68009555b60206106806003600055f35b637b935a238118610a9657610284361061243d576004358060a01c61243d57610620526024358060a01c61243d57610640526044358060a01c61243d57610660526064358060a01c61243d57610680526084358060a01c61243d576106a05260a4358060a01c61243d576106c05260c4358060a01c61243d576106e05260e4358060a01c61243d5761070052610104358060a01c61243d5761072052610124358060a01c61243d5761074052610144358060a01c61243d5761076052610164358060a01c61243d5761078052610184358060a01c61243d576107a0526101a4358060a01c61243d576107c0526101c4358060a01c61243d576107e0526101e4358060a01c61243d5761080052610204358060a01c61243d5761082052610224358060a01c61243d5761084052610244358060a01c61243d5761086052610264358060a01c61243d576108805260005460021461243d57600260005566071afd498d00105461243d5760025442106108ea576108ea611d43565b6005546108a05266071afd498d000e5461090557600061091b565b6108a05162015180810181811061243d57905042115b1561092e57610928611841565b426108a0525b6108a05162093a808104905062093a8081028162093a8082041861243d5790506108a05266038d7ea4c68006546108c05266038d7ea4c68007546108e05260006109005260006014905b8060051b6106200151610920526109205161099257610a54565b33610920511861243d57610920516102e0526108c051610300526108a051610320526109bf610960611f51565b61096051610940526109405115610a49576108e05163a9059cbb610960526109205161098052610940516109a0526020610960604461097c6000855af1610a0b573d600060003e3d6000fd5b60203d1061243d57610960518060011c61243d576109c0526109c09050511561243d57610900516109405180820182811061243d5790509050610900525b600101818118610978575b50506109005115610a845766038d7ea4c68009546109005180820382811161243d579050905066038d7ea4c68009555b60016109205260206109206003600055f35b637e7f6c408118610f9e57610504361061243d576004358060a01c61243d57610620526024358060a01c61243d57610640526044358060a01c61243d57610660526064358060a01c61243d57610680526084358060a01c61243d576106a05260a4358060a01c61243d576106c05260c4358060a01c61243d576106e05260e4358060a01c61243d5761070052610104358060a01c61243d5761072052610124358060a01c61243d5761074052610144358060a01c61243d5761076052610164358060a01c61243d5761078052610184358060a01c61243d576107a0526101a4358060a01c61243d576107c0526101c4358060a01c61243d576107e0526101e4358060a01c61243d5761080052610204358060a01c61243d5761082052610224358060a01c61243d5761084052610244358060a01c61243d5761086052610264358060a01c61243d576108805260005460021461243d57600260005566071afd498d00105461243d576002544210610c0f57610c0f611d43565b6005546108a05266071afd498d000e54610c2a576000610c40565b6108a05162015180810181811061243d57905042115b15610c5357610c4d611841565b426108a0525b6108a05162093a808104905062093a8081028162093a8082041861243d5790506108a05266038d7ea4c68006546108c05266038d7ea4c68007546108e05260006109005260006014905b8061092052610920516013811161243d5760051b61062001516109405261094051610cc757610f5c565b336109405114610d105766071afd498d000b33602052600052604060002054610cf1576000610d0a565b66071afd498d000a610940516020526000526040600020545b1561243d575b610940516102e0526108c051610300526108a05161032052610d33610980611f51565b61098051610960526109605115610f515766038d7ea4c6800654610980526109805163cbf9fe5f6109e05261094051610a005260406109e060246109fc845afa610d82573d600060003e3d6000fd5b60403d1061243d576109e05180600f0b811861243d57610a4052610a0051610a6052610a40905080516109a05260208101516109c0525066038d7ea4c680075463095ea7b36109e05261098051610a005261096051610a205260206109e060446109fc6000855af1610df9573d600060003e3d6000fd5b60203d1061243d576109e0518060011c61243d57610a4052610a405050426109c05111610ef2576109a051610e885761098051633e173b296109e05261094051610a005261096051610a2052610920516013811161243d5760051b6102840135610a4052803b1561243d5760006109e060646109fc6000855af1610e82573d600060003e3d6000fd5b50610f36565b60196109e0527f5769746864726177206f6c6420746f6b656e7320666972737400000000000000610a00526109e0506109e05180610a0001601f826000031636823750506308c379a06109a05260206109c052601f19601f6109e05101166044016109bcfd610f36565b6109805163e86483766109e05261094051610a005261096051610a2052803b1561243d5760006109e060446109fc6000855af1610f34573d600060003e3d6000fd5b505b610900516109605180820182811061243d5790509050610900525b600101818118610c9d575b50506109005115610f8c5766038d7ea4c68009546109005180820382811161243d579050905066038d7ea4c68009555b60016109205260206109206003600055f35b6389afcb4481186110c5576024361061243d576004358060a01c61243d576101405266038d7ea4c6800754610140511861243d5766071afd498d00105461243d57610140516370a0823161018052336101a0526020610180602461019c845afa61100d573d600060003e3d6000fd5b60203d1061243d576101809050516101605261016051156110b857610140516323b872dd61018052336101a052306101c052610160516101e0526020610180606461019c6000855af1611065573d600060003e3d6000fd5b60203d1061243d57610180518060011c61243d5761020052610200505066071afd498d000e546110965760006110ab565b60055462015180810181811061243d57905042115b156110b8576110b8611841565b6001610180526020610180f35b63b1d3db75811861112f576024361061243d576004358060a01c61243d5760405266071afd498d000c54331861243d5760405166071afd498d000d557f59a407284ae6e2986675fa1400d6498af928ed01f4fd2dd6be4a2a8b4fc35b3460405160605260206060a1005b63c0e991a681186111a5576004361061243d5766071afd498d000c54331861243d5766071afd498d000d541561243d5766071afd498d000d5460405260405166071afd498d000c557f756f845176805c8ebf249854e909627308157f63c96e470e44a9e8549ba6fb1e60405160605260206060a1005b6374d89f368118611239576044361061243d576004358060a01c61243d576040526024358060011c61243d5760605266071afd498d000c54331861243d576040511561243d5760605166071afd498d000b6040516020526000526040600020557f1590bf51511d8cb50fc8ccb4da81ce427f040ee4828e3fd35313d4b8b8e3b9e960405160805260605160a05260406080a1005b63fdf8d0f181186112a4576024361061243d576004358060011c61243d5760405260405166071afd498d000a336020526000526040600020557f6b2054c86680f036298c72e26cd7a1dafd9f9dbb08b94feda8c8457e09b2831f3360605260405160805260406060a1005b632121bfc3811861130d576004361061243d5766071afd498d000c54331861243d5766071afd498d000e541560405260405166071afd498d000e557fdbe6ac1081ebd8e648718341126659456f4009fcadfe1c23f66f5e61522610b260405160605260206060a1005b63e369885381186113d6576004361061243d5766071afd498d000c54331861243d57600166071afd498d00105566038d7ea4c680075460405260405163a9059cbb60a05266071afd498d000f5460c0526040516370a0823160605230608052602060606024607c845afa611386573d600060003e3d6000fd5b60203d1061243d57606090505160e052602060a0604460bc6000855af16113b2573d600060003e3d6000fd5b60203d1061243d5760a0518060011c61243d57610100526101009050511561243d57005b63db2f5f79811861152f576024361061243d576004358060a01c61243d5760405266071afd498d000c54331861243d5766038d7ea4c68007546040511461243d576040516370a082316080523060a052602060806024609c845afa611440573d600060003e3d6000fd5b60203d1061243d5760809050516060526000600460c0527fa9059cbb0000000000000000000000000000000000000000000000000000000060e05260c080516020820183610120018151815250508083019250505066071afd498d000f548161012001526020810190506060518161012001526020810190508061010052610100505060206101a06101005161012060006040515af16114e5573d600060003e3d6000fd5b3d602081183d60201002186101805261018080518060805260208201805160a052505050608051156115245760a05160805160200360031b1c1561243d575b600160c052602060c0f35b63834ee417811861154e576004361061243d5760015460405260206040f35b63127dcbd3811861156d576004361061243d5760025460405260206040f35b632a2a314b81186115a8576024361061243d576004358060a01c61243d57604052600360405160205260005260406000205460605260206060f35b63d5d46e8881186115e3576024361061243d576004358060a01c61243d57604052600460405160205260005260406000205460605260206060f35b637f58e8f88118611602576004361061243d5760055460405260206040f35b63edf599978118611633576024361061243d5760043566038d7ea4c67fff811161243d576006015460405260206040f35b63dfe050318118611658576004361061243d5766038d7ea4c680065460405260206040f35b63fc0c546a811861167d576004361061243d5766038d7ea4c680075460405260206040f35b632f0c222e81186116a2576004361061243d5766038d7ea4c680085460405260206040f35b6322b04bfc81186116c7576004361061243d5766038d7ea4c680095460405260206040f35b63d4dafba881186116fe576024361061243d5760043566038d7ea4c67fff811161243d5766038d7ea4c6800a015460405260206040f35b638923d89f811861173f576024361061243d576004358060a01c61243d5760405266071afd498d000a60405160205260005260406000205460605260206060f35b63cd79cee38118611780576024361061243d576004358060a01c61243d5760405266071afd498d000b60405160205260005260406000205460605260206060f35b63f851a44081186117a5576004361061243d5766071afd498d000c5460405260206040f35b6317f7182a81186117ca576004361061243d5766071afd498d000d5460405260206040f35b63aeba473781186117ef576004361061243d5766071afd498d000e5460405260206040f35b632c3f531e8118611814576004361061243d5766071afd498d000f5460405260206040f35b639c868ac08118611839576004361061243d5766071afd498d00105460405260206040f35b505b60006000fd5b66038d7ea4c68007546370a0823160605230608052602060606024607c845afa611870573d600060003e3d6000fd5b60203d1061243d57606090505160405260405166038d7ea4c680095480820382811161243d579050905060605260405166038d7ea4c68009556005546080524260805180820382811161243d579050905060a0524260055560805162093a808104905062093a8081028162093a8082041861243d57905060c052600060e05260006014905b806101005260c05162093a80810181811061243d57905060e05260e05142106119c95760a05161192c5760805160e051181561192f565b60005b61199a5760c05166038d7ea4c67fff811161243d57600601805460605160e05160805180820382811161243d579050905080820281158383830414171561243d579050905060a051801561243d578082049050905080820182811061243d5790509050815550611a76565b60c05166038d7ea4c67fff811161243d57600601805460605180820182811061243d5790509050815550611a76565b60a0516119db576080514218156119de565b60005b611a475760c05166038d7ea4c67fff811161243d5760060180546060514260805180820382811161243d579050905080820281158383830414171561243d579050905060a051801561243d578082049050905080820182811061243d5790509050815550611a8d565b60c05166038d7ea4c67fff811161243d57600601805460605180820182811061243d5790509050815550611a8d565b60e05160805260e05160c0526001018181186118f5575b50507fce749457b74e10f393f2c6b1ce4261b78791376db5a3f501477a809f03f500d64261010052606051610120526040610100a1565b600060805260405163900cf0cf60c052602060c0600460dc845afa611aee573d600060003e3d6000fd5b60203d1061243d5760c090505160a05260006080905b8060c05260a05160805110611b1857611c0b565b60805160a05180820182811061243d57905090506002810181811061243d5790508060011c905060e05260405163d1febfb96101805260e0516101a0526080610180602461019c845afa611b71573d600060003e3d6000fd5b60803d1061243d576101805180600f0b811861243d57610220526101a05180600f0b811861243d57610240526101c051610260526101e05161028052610220905080516101005260208101516101205260408101516101405260608101516101605250606051610140511115611bf95760e0516001810381811161243d57905060a052611c00565b60e0516080525b600101818118611b04575b5050608051815250565b600060c05260a05160e05260006080905b806101005260e05160c05110611c3b57611d39565b60c05160e05180820182811061243d57905090506002810181811061243d5790508060011c9050610120526040516328d09d476101c0526060516101e052610120516102005260806101c060446101dc845afa611c9d573d600060003e3d6000fd5b60803d1061243d576101c05180600f0b811861243d57610260526101e05180600f0b811861243d5761028052610200516102a052610220516102c052610260905080516101405260208101516101605260408101516101805260608101516101a05250608051610180511115611d2657610120516001810381811161243d57905060e052611d2e565b6101205160c0525b600101818118611c26575b505060c051815250565b66038d7ea4c68006546102a0526002546102c052426001810381811161243d57905062093a808104905062093a8081028162093a8082041861243d5790506102e0526102a05163c2c4c5c161030052803b1561243d576000610300600461031c6000855af1611db7573d600060003e3d6000fd5b5060006014905b80610300526102e0516102c05111611f46576102a0516040526102c051606052611de9610340611ac4565b61034051610320526102a05163d1febfb96103c052610320516103e05260806103c060246103dc845afa611e22573d600060003e3d6000fd5b60803d1061243d576103c05180600f0b811861243d57610460526103e05180600f0b811861243d5761048052610400516104a052610420516104c052610460905080516103405260208101516103605260408101516103805260608101516103a0525060006103c052610380516102c0511115611ebc576102c0516103805180820382811161243d579050905080607f1c61243d576103c0525b61034051610360516103c05180820280600f0b811861243d579050905080820380600f0b811861243d5790509050600081811860008313021890506000811261243d576102c05166038d7ea4c67fff811161243d5766038d7ea4c6800a0155611f2456611f46565b6102c05162093a80810181811061243d5790506102c052600101818118611dbe575b50506102c051600255565b604036610340376103005163010ae7576103a0526102e0516103c05260206103a060246103bc845afa611f89573d600060003e3d6000fd5b60203d1061243d576103a0905051610380526001546103a05261038051611fb457600081525061243b565b60036102e0516020526000526040600020546103c0526103c05161200657610300516040526102e0516060526103a0516080526103805160a052611ff96103e0611c15565b6103e0516103405261201d565b60046102e051602052600052604060002054610340525b6103405161202c576001610340525b610300516328d09d47610460526102e05161048052610340516104a0526080610460604461047c845afa612065573d600060003e3d6000fd5b60803d1061243d576104605180600f0b811861243d57610500526104805180600f0b811861243d57610520526104a051610540526104c05161056052610500905080516103e052602081015161040052604081015161042052606081015161044052506103c051612111576104205162093a80810181811061243d5790506001810381811161243d57905062093a808104905062093a8081028162093a8082041861243d5790506103c0525b610320516103c0511061212857600081525061243b565b6103a0516103c051101561213f576103a0516103c0525b6080366104603760006032905b806104e052610320516103c051106121635761239c565b610420516103c0511015612178576000612183565b610380516103405111155b6122a6576103c0516104a05180820382811161243d579050905080607f1c61243d576105005261046051610500516104805180820280600f0b811861243d579050905080820380600f0b811861243d5790509050600081811860008313021890506000811261243d57610520526105205161220657610380516103405111612209565b60005b156122135761239c565b610520511561228a5761036051610520516103c05166038d7ea4c67fff811161243d576006015480820281158383830414171561243d57905090506103c05166038d7ea4c67fff811161243d5766038d7ea4c6800a0154801561243d578082049050905080820182811061243d5790509050610360525b6103c05162093a80810181811061243d5790506103c052612391565b610340516001810181811061243d579050610340526103e051610460526104005161048052610420516104a052610440516104c05261038051610340511161238957610300516328d09d47610500526102e0516105205261034051610540526080610500604461051c845afa612321573d600060003e3d6000fd5b60803d1061243d576105005180600f0b811861243d576105a0526105205180600f0b811861243d576105c052610540516105e05261056051610600526105a0905080516103e05260208101516104005260408101516104205260608101516104405250612391565b6080366103e0375b60010181811861214c575b505061038051610340516001810381811161243d57905080828118828410021890509050610340526103405160046102e0516020526000526040600020556103c05160036102e0516020526000526040600020556102e0517f9cdcf2f7714cca3508c7f0110b04a90a80a3a8dd0e35de99689db74d28c5383e610360516104e0526103405161050052610380516105205260606104e0a2610360518152505b565b600080fda165767970657283000307000b005b600080fd00000000000000000000000013ab49189ebc2287e941a82d9af154130f96eb2100000000000000000000000000000000000000000000000000000000697168800000000000000000000000002798b1cc5a993085e8a9d46e80499f1b63f42204000000000000000000000000f1357d45671cb16de055752809c8d2e3ab4afe2e000000000000000000000000deaee0d252f83313199da4964951372c7422e7ed
Deployed Bytecode
0x6003361161000c5761183b565b60003560e01c3461243d5763811a40fe8118610098576004361061243d5766071afd498d000c543318610040576001610089565b66071afd498d000b336020526000526040600020546100865766071afd498d000e5461006d576000610089565b60055462015180810181811061243d5790504211610089565b60015b1561243d57610096611841565b005b63ace296fb811861023b576044361061243d576004358060a01c61243d576102e05266038d7ea4c6800654610300526103005163010ae757610340526102e051610360526020610340602461035c845afa6100f8573d600060003e3d6000fd5b60203d1061243d5761034090505161032052610300516040526102e0516060526024356080526103205160a052610130610360611c15565b6103605161034052610300516328d09d476103e0526102e05161040052610340516104205260806103e060446103fc845afa610171573d600060003e3d6000fd5b60803d1061243d576103e05180600f0b811861243d57610480526104005180600f0b811861243d576104a052610420516104c052610440516104e052610480905080516103605260208101516103805260408101516103a05260608101516103c0525061036051610380516024356103a05180820382811161243d579050905080607f1c61243d5780820280600f0b811861243d579050905080820380600f0b811861243d5790509050600081811860008313021890506000811261243d576103e05260206103e0f35b63b21ed5028118610258576004361061243d57610256611d43565b005b634e71d92d8118610275576004361061243d573361062052610298565b631e83409a811861040c576024361061243d576004358060a01c61243d57610620525b60005460021461243d57600260005533610620511861243d5766071afd498d00105461243d5760025442106102cf576102cf611d43565b6005546106405266071afd498d000e546102ea576000610300565b6106405162015180810181811061243d57905042115b156103135761030d611841565b42610640525b6106405162093a808104905062093a8081028162093a8082041861243d57905061064052610620516102e05266038d7ea4c680065461030052610640516103205261035f610680611f51565b610680516106605261066051156104005766038d7ea4c6800754610680526106805163a9059cbb6106a052610620516106c052610660516106e05260206106a060446106bc6000855af16103b8573d600060003e3d6000fd5b60203d1061243d576106a0518060011c61243d57610700526107009050511561243d5766038d7ea4c68009546106605180820382811161243d579050905066038d7ea4c68009555b60206106606003600055f35b634f5a8ff6811861042f576004361061243d573361062052600061064052610486565b63c49e6c0e811861045c576024361061243d576004358060a01c61243d5761062052600061064052610486565b63dc5b3e048118610771576044361061243d576004358060a01c61243d5761062052602435610640525b60005460021461243d57600260005533610620511861243d5766071afd498d00105461243d5760025442106104bd576104bd611d43565b6005546106605266071afd498d000e546104d85760006104ee565b6106605162015180810181811061243d57905042115b15610501576104fb611841565b42610660525b6106605162093a808104905062093a8081028162093a8082041861243d57905061066052610620516102e05266038d7ea4c680065461030052610660516103205261054d6106a0611f51565b6106a0516106805261068051156107655766038d7ea4c68006546106a0526106a05163cbf9fe5f6107005261062051610720526040610700602461071c845afa61059c573d600060003e3d6000fd5b60403d1061243d576107005180600f0b811861243d57610760526107205161078052610760905080516106c05260208101516106e0525066038d7ea4c680075463095ea7b3610700526106a0516107205261068051610740526020610700604461071c6000855af1610613573d600060003e3d6000fd5b60203d1061243d57610700518060011c61243d57610760526107605050426106e051116106fc576106c051610692576106a051633e173b2961070052610620516107205261068051610740526106405161076052803b1561243d576000610700606461071c6000855af161068c573d600060003e3d6000fd5b50610740565b6019610700527f5769746864726177206f6c6420746f6b656e73206669727374000000000000006107205261070050610700518061072001601f826000031636823750506308c379a06106c05260206106e052601f19601f6107005101166044016106dcfd610740565b6106a05163e86483766107005261062051610720526106805161074052803b1561243d576000610700604461071c6000855af161073e573d600060003e3d6000fd5b505b66038d7ea4c68009546106805180820382811161243d579050905066038d7ea4c68009555b60206106806003600055f35b637b935a238118610a9657610284361061243d576004358060a01c61243d57610620526024358060a01c61243d57610640526044358060a01c61243d57610660526064358060a01c61243d57610680526084358060a01c61243d576106a05260a4358060a01c61243d576106c05260c4358060a01c61243d576106e05260e4358060a01c61243d5761070052610104358060a01c61243d5761072052610124358060a01c61243d5761074052610144358060a01c61243d5761076052610164358060a01c61243d5761078052610184358060a01c61243d576107a0526101a4358060a01c61243d576107c0526101c4358060a01c61243d576107e0526101e4358060a01c61243d5761080052610204358060a01c61243d5761082052610224358060a01c61243d5761084052610244358060a01c61243d5761086052610264358060a01c61243d576108805260005460021461243d57600260005566071afd498d00105461243d5760025442106108ea576108ea611d43565b6005546108a05266071afd498d000e5461090557600061091b565b6108a05162015180810181811061243d57905042115b1561092e57610928611841565b426108a0525b6108a05162093a808104905062093a8081028162093a8082041861243d5790506108a05266038d7ea4c68006546108c05266038d7ea4c68007546108e05260006109005260006014905b8060051b6106200151610920526109205161099257610a54565b33610920511861243d57610920516102e0526108c051610300526108a051610320526109bf610960611f51565b61096051610940526109405115610a49576108e05163a9059cbb610960526109205161098052610940516109a0526020610960604461097c6000855af1610a0b573d600060003e3d6000fd5b60203d1061243d57610960518060011c61243d576109c0526109c09050511561243d57610900516109405180820182811061243d5790509050610900525b600101818118610978575b50506109005115610a845766038d7ea4c68009546109005180820382811161243d579050905066038d7ea4c68009555b60016109205260206109206003600055f35b637e7f6c408118610f9e57610504361061243d576004358060a01c61243d57610620526024358060a01c61243d57610640526044358060a01c61243d57610660526064358060a01c61243d57610680526084358060a01c61243d576106a05260a4358060a01c61243d576106c05260c4358060a01c61243d576106e05260e4358060a01c61243d5761070052610104358060a01c61243d5761072052610124358060a01c61243d5761074052610144358060a01c61243d5761076052610164358060a01c61243d5761078052610184358060a01c61243d576107a0526101a4358060a01c61243d576107c0526101c4358060a01c61243d576107e0526101e4358060a01c61243d5761080052610204358060a01c61243d5761082052610224358060a01c61243d5761084052610244358060a01c61243d5761086052610264358060a01c61243d576108805260005460021461243d57600260005566071afd498d00105461243d576002544210610c0f57610c0f611d43565b6005546108a05266071afd498d000e54610c2a576000610c40565b6108a05162015180810181811061243d57905042115b15610c5357610c4d611841565b426108a0525b6108a05162093a808104905062093a8081028162093a8082041861243d5790506108a05266038d7ea4c68006546108c05266038d7ea4c68007546108e05260006109005260006014905b8061092052610920516013811161243d5760051b61062001516109405261094051610cc757610f5c565b336109405114610d105766071afd498d000b33602052600052604060002054610cf1576000610d0a565b66071afd498d000a610940516020526000526040600020545b1561243d575b610940516102e0526108c051610300526108a05161032052610d33610980611f51565b61098051610960526109605115610f515766038d7ea4c6800654610980526109805163cbf9fe5f6109e05261094051610a005260406109e060246109fc845afa610d82573d600060003e3d6000fd5b60403d1061243d576109e05180600f0b811861243d57610a4052610a0051610a6052610a40905080516109a05260208101516109c0525066038d7ea4c680075463095ea7b36109e05261098051610a005261096051610a205260206109e060446109fc6000855af1610df9573d600060003e3d6000fd5b60203d1061243d576109e0518060011c61243d57610a4052610a405050426109c05111610ef2576109a051610e885761098051633e173b296109e05261094051610a005261096051610a2052610920516013811161243d5760051b6102840135610a4052803b1561243d5760006109e060646109fc6000855af1610e82573d600060003e3d6000fd5b50610f36565b60196109e0527f5769746864726177206f6c6420746f6b656e7320666972737400000000000000610a00526109e0506109e05180610a0001601f826000031636823750506308c379a06109a05260206109c052601f19601f6109e05101166044016109bcfd610f36565b6109805163e86483766109e05261094051610a005261096051610a2052803b1561243d5760006109e060446109fc6000855af1610f34573d600060003e3d6000fd5b505b610900516109605180820182811061243d5790509050610900525b600101818118610c9d575b50506109005115610f8c5766038d7ea4c68009546109005180820382811161243d579050905066038d7ea4c68009555b60016109205260206109206003600055f35b6389afcb4481186110c5576024361061243d576004358060a01c61243d576101405266038d7ea4c6800754610140511861243d5766071afd498d00105461243d57610140516370a0823161018052336101a0526020610180602461019c845afa61100d573d600060003e3d6000fd5b60203d1061243d576101809050516101605261016051156110b857610140516323b872dd61018052336101a052306101c052610160516101e0526020610180606461019c6000855af1611065573d600060003e3d6000fd5b60203d1061243d57610180518060011c61243d5761020052610200505066071afd498d000e546110965760006110ab565b60055462015180810181811061243d57905042115b156110b8576110b8611841565b6001610180526020610180f35b63b1d3db75811861112f576024361061243d576004358060a01c61243d5760405266071afd498d000c54331861243d5760405166071afd498d000d557f59a407284ae6e2986675fa1400d6498af928ed01f4fd2dd6be4a2a8b4fc35b3460405160605260206060a1005b63c0e991a681186111a5576004361061243d5766071afd498d000c54331861243d5766071afd498d000d541561243d5766071afd498d000d5460405260405166071afd498d000c557f756f845176805c8ebf249854e909627308157f63c96e470e44a9e8549ba6fb1e60405160605260206060a1005b6374d89f368118611239576044361061243d576004358060a01c61243d576040526024358060011c61243d5760605266071afd498d000c54331861243d576040511561243d5760605166071afd498d000b6040516020526000526040600020557f1590bf51511d8cb50fc8ccb4da81ce427f040ee4828e3fd35313d4b8b8e3b9e960405160805260605160a05260406080a1005b63fdf8d0f181186112a4576024361061243d576004358060011c61243d5760405260405166071afd498d000a336020526000526040600020557f6b2054c86680f036298c72e26cd7a1dafd9f9dbb08b94feda8c8457e09b2831f3360605260405160805260406060a1005b632121bfc3811861130d576004361061243d5766071afd498d000c54331861243d5766071afd498d000e541560405260405166071afd498d000e557fdbe6ac1081ebd8e648718341126659456f4009fcadfe1c23f66f5e61522610b260405160605260206060a1005b63e369885381186113d6576004361061243d5766071afd498d000c54331861243d57600166071afd498d00105566038d7ea4c680075460405260405163a9059cbb60a05266071afd498d000f5460c0526040516370a0823160605230608052602060606024607c845afa611386573d600060003e3d6000fd5b60203d1061243d57606090505160e052602060a0604460bc6000855af16113b2573d600060003e3d6000fd5b60203d1061243d5760a0518060011c61243d57610100526101009050511561243d57005b63db2f5f79811861152f576024361061243d576004358060a01c61243d5760405266071afd498d000c54331861243d5766038d7ea4c68007546040511461243d576040516370a082316080523060a052602060806024609c845afa611440573d600060003e3d6000fd5b60203d1061243d5760809050516060526000600460c0527fa9059cbb0000000000000000000000000000000000000000000000000000000060e05260c080516020820183610120018151815250508083019250505066071afd498d000f548161012001526020810190506060518161012001526020810190508061010052610100505060206101a06101005161012060006040515af16114e5573d600060003e3d6000fd5b3d602081183d60201002186101805261018080518060805260208201805160a052505050608051156115245760a05160805160200360031b1c1561243d575b600160c052602060c0f35b63834ee417811861154e576004361061243d5760015460405260206040f35b63127dcbd3811861156d576004361061243d5760025460405260206040f35b632a2a314b81186115a8576024361061243d576004358060a01c61243d57604052600360405160205260005260406000205460605260206060f35b63d5d46e8881186115e3576024361061243d576004358060a01c61243d57604052600460405160205260005260406000205460605260206060f35b637f58e8f88118611602576004361061243d5760055460405260206040f35b63edf599978118611633576024361061243d5760043566038d7ea4c67fff811161243d576006015460405260206040f35b63dfe050318118611658576004361061243d5766038d7ea4c680065460405260206040f35b63fc0c546a811861167d576004361061243d5766038d7ea4c680075460405260206040f35b632f0c222e81186116a2576004361061243d5766038d7ea4c680085460405260206040f35b6322b04bfc81186116c7576004361061243d5766038d7ea4c680095460405260206040f35b63d4dafba881186116fe576024361061243d5760043566038d7ea4c67fff811161243d5766038d7ea4c6800a015460405260206040f35b638923d89f811861173f576024361061243d576004358060a01c61243d5760405266071afd498d000a60405160205260005260406000205460605260206060f35b63cd79cee38118611780576024361061243d576004358060a01c61243d5760405266071afd498d000b60405160205260005260406000205460605260206060f35b63f851a44081186117a5576004361061243d5766071afd498d000c5460405260206040f35b6317f7182a81186117ca576004361061243d5766071afd498d000d5460405260206040f35b63aeba473781186117ef576004361061243d5766071afd498d000e5460405260206040f35b632c3f531e8118611814576004361061243d5766071afd498d000f5460405260206040f35b639c868ac08118611839576004361061243d5766071afd498d00105460405260206040f35b505b60006000fd5b66038d7ea4c68007546370a0823160605230608052602060606024607c845afa611870573d600060003e3d6000fd5b60203d1061243d57606090505160405260405166038d7ea4c680095480820382811161243d579050905060605260405166038d7ea4c68009556005546080524260805180820382811161243d579050905060a0524260055560805162093a808104905062093a8081028162093a8082041861243d57905060c052600060e05260006014905b806101005260c05162093a80810181811061243d57905060e05260e05142106119c95760a05161192c5760805160e051181561192f565b60005b61199a5760c05166038d7ea4c67fff811161243d57600601805460605160e05160805180820382811161243d579050905080820281158383830414171561243d579050905060a051801561243d578082049050905080820182811061243d5790509050815550611a76565b60c05166038d7ea4c67fff811161243d57600601805460605180820182811061243d5790509050815550611a76565b60a0516119db576080514218156119de565b60005b611a475760c05166038d7ea4c67fff811161243d5760060180546060514260805180820382811161243d579050905080820281158383830414171561243d579050905060a051801561243d578082049050905080820182811061243d5790509050815550611a8d565b60c05166038d7ea4c67fff811161243d57600601805460605180820182811061243d5790509050815550611a8d565b60e05160805260e05160c0526001018181186118f5575b50507fce749457b74e10f393f2c6b1ce4261b78791376db5a3f501477a809f03f500d64261010052606051610120526040610100a1565b600060805260405163900cf0cf60c052602060c0600460dc845afa611aee573d600060003e3d6000fd5b60203d1061243d5760c090505160a05260006080905b8060c05260a05160805110611b1857611c0b565b60805160a05180820182811061243d57905090506002810181811061243d5790508060011c905060e05260405163d1febfb96101805260e0516101a0526080610180602461019c845afa611b71573d600060003e3d6000fd5b60803d1061243d576101805180600f0b811861243d57610220526101a05180600f0b811861243d57610240526101c051610260526101e05161028052610220905080516101005260208101516101205260408101516101405260608101516101605250606051610140511115611bf95760e0516001810381811161243d57905060a052611c00565b60e0516080525b600101818118611b04575b5050608051815250565b600060c05260a05160e05260006080905b806101005260e05160c05110611c3b57611d39565b60c05160e05180820182811061243d57905090506002810181811061243d5790508060011c9050610120526040516328d09d476101c0526060516101e052610120516102005260806101c060446101dc845afa611c9d573d600060003e3d6000fd5b60803d1061243d576101c05180600f0b811861243d57610260526101e05180600f0b811861243d5761028052610200516102a052610220516102c052610260905080516101405260208101516101605260408101516101805260608101516101a05250608051610180511115611d2657610120516001810381811161243d57905060e052611d2e565b6101205160c0525b600101818118611c26575b505060c051815250565b66038d7ea4c68006546102a0526002546102c052426001810381811161243d57905062093a808104905062093a8081028162093a8082041861243d5790506102e0526102a05163c2c4c5c161030052803b1561243d576000610300600461031c6000855af1611db7573d600060003e3d6000fd5b5060006014905b80610300526102e0516102c05111611f46576102a0516040526102c051606052611de9610340611ac4565b61034051610320526102a05163d1febfb96103c052610320516103e05260806103c060246103dc845afa611e22573d600060003e3d6000fd5b60803d1061243d576103c05180600f0b811861243d57610460526103e05180600f0b811861243d5761048052610400516104a052610420516104c052610460905080516103405260208101516103605260408101516103805260608101516103a0525060006103c052610380516102c0511115611ebc576102c0516103805180820382811161243d579050905080607f1c61243d576103c0525b61034051610360516103c05180820280600f0b811861243d579050905080820380600f0b811861243d5790509050600081811860008313021890506000811261243d576102c05166038d7ea4c67fff811161243d5766038d7ea4c6800a0155611f2456611f46565b6102c05162093a80810181811061243d5790506102c052600101818118611dbe575b50506102c051600255565b604036610340376103005163010ae7576103a0526102e0516103c05260206103a060246103bc845afa611f89573d600060003e3d6000fd5b60203d1061243d576103a0905051610380526001546103a05261038051611fb457600081525061243b565b60036102e0516020526000526040600020546103c0526103c05161200657610300516040526102e0516060526103a0516080526103805160a052611ff96103e0611c15565b6103e0516103405261201d565b60046102e051602052600052604060002054610340525b6103405161202c576001610340525b610300516328d09d47610460526102e05161048052610340516104a0526080610460604461047c845afa612065573d600060003e3d6000fd5b60803d1061243d576104605180600f0b811861243d57610500526104805180600f0b811861243d57610520526104a051610540526104c05161056052610500905080516103e052602081015161040052604081015161042052606081015161044052506103c051612111576104205162093a80810181811061243d5790506001810381811161243d57905062093a808104905062093a8081028162093a8082041861243d5790506103c0525b610320516103c0511061212857600081525061243b565b6103a0516103c051101561213f576103a0516103c0525b6080366104603760006032905b806104e052610320516103c051106121635761239c565b610420516103c0511015612178576000612183565b610380516103405111155b6122a6576103c0516104a05180820382811161243d579050905080607f1c61243d576105005261046051610500516104805180820280600f0b811861243d579050905080820380600f0b811861243d5790509050600081811860008313021890506000811261243d57610520526105205161220657610380516103405111612209565b60005b156122135761239c565b610520511561228a5761036051610520516103c05166038d7ea4c67fff811161243d576006015480820281158383830414171561243d57905090506103c05166038d7ea4c67fff811161243d5766038d7ea4c6800a0154801561243d578082049050905080820182811061243d5790509050610360525b6103c05162093a80810181811061243d5790506103c052612391565b610340516001810181811061243d579050610340526103e051610460526104005161048052610420516104a052610440516104c05261038051610340511161238957610300516328d09d47610500526102e0516105205261034051610540526080610500604461051c845afa612321573d600060003e3d6000fd5b60803d1061243d576105005180600f0b811861243d576105a0526105205180600f0b811861243d576105c052610540516105e05261056051610600526105a0905080516103e05260208101516104005260408101516104205260608101516104405250612391565b6080366103e0375b60010181811861214c575b505061038051610340516001810381811161243d57905080828118828410021890509050610340526103405160046102e0516020526000526040600020556103c05160036102e0516020526000526040600020556102e0517f9cdcf2f7714cca3508c7f0110b04a90a80a3a8dd0e35de99689db74d28c5383e610360516104e0526103405161050052610380516105205260606104e0a2610360518152505b565b600080fda165767970657283000307000b
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000013ab49189ebc2287e941a82d9af154130f96eb2100000000000000000000000000000000000000000000000000000000697168800000000000000000000000002798b1cc5a993085e8a9d46e80499f1b63f42204000000000000000000000000f1357d45671cb16de055752809c8d2e3ab4afe2e000000000000000000000000deaee0d252f83313199da4964951372c7422e7ed
-----Decoded View---------------
Arg [0] : _voting_escrow (address): 0x13aB49189EBC2287E941a82D9Af154130f96Eb21
Arg [1] : _start_time (uint256): 1769040000
Arg [2] : _token (address): 0x2798b1cC5A993085E8A9D46e80499F1B63f42204
Arg [3] : _admin (address): 0xf1357d45671CB16dE055752809C8d2e3aB4AfE2e
Arg [4] : _emergency_return (address): 0xDEAEe0d252F83313199DA4964951372c7422E7Ed
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 00000000000000000000000013ab49189ebc2287e941a82d9af154130f96eb21
Arg [1] : 0000000000000000000000000000000000000000000000000000000069716880
Arg [2] : 0000000000000000000000002798b1cc5a993085e8a9d46e80499f1b63f42204
Arg [3] : 000000000000000000000000f1357d45671cb16de055752809c8d2e3ab4afe2e
Arg [4] : 000000000000000000000000deaee0d252f83313199da4964951372c7422e7ed
Loading...
Loading
Loading...
Loading
OVERVIEW
ETHGas (GWEI), a Realtime Ethereum infrastructure protocol that introduces blockspace commoditization, enabling an instant, gasless user experience and improved validator yieldNet Worth in USD
$0.00
Net Worth in ETH
0
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.