Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 9 from a total of 9 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Apply_transfer_o... | 14292712 | 983 days ago | IN | 0 ETH | 0.00151255 | ||||
Commit_transfer_... | 14285692 | 985 days ago | IN | 0 ETH | 0.00155692 | ||||
Add_gauge | 14285679 | 985 days ago | IN | 0 ETH | 0.00438742 | ||||
Add_gauge | 14285673 | 985 days ago | IN | 0 ETH | 0.00550241 | ||||
Add_gauge | 14285672 | 985 days ago | IN | 0 ETH | 0.00547767 | ||||
Add_gauge | 14285672 | 985 days ago | IN | 0 ETH | 0.00547723 | ||||
Add_gauge | 14285671 | 985 days ago | IN | 0 ETH | 0.00712622 | ||||
Add_type | 14285369 | 985 days ago | IN | 0 ETH | 0.00515131 | ||||
0x60206123 | 14285271 | 985 days ago | IN | 0 ETH | 0.08903644 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Vyper_contract
Compiler Version
vyper:0.3.1
Contract Source Code (Vyper language format)
# @version 0.3.1 """ @title Gauge Controller @author Curve Finance @license MIT @notice Controls liquidity gauges and the issuance of coins through the gauges """ # 7 * 86400 seconds - all future times are rounded by week WEEK: constant(uint256) = 604800 # Cannot change weight votes more often than once in 10 days WEIGHT_VOTE_DELAY: constant(uint256) = 10 * 86400 struct Point: bias: uint256 slope: uint256 struct VotedSlope: slope: uint256 power: uint256 end: uint256 interface VotingEscrow: def get_last_user_slope(addr: address) -> int128: view def locked__end(addr: address) -> uint256: view event CommitOwnership: admin: address event ApplyOwnership: admin: address event VotingEnabled: voting_enabled: bool event AddType: name: String[64] type_id: int128 event NewTypeWeight: type_id: int128 time: uint256 weight: uint256 total_weight: uint256 event NewGaugeWeight: gauge_address: address time: uint256 weight: uint256 total_weight: uint256 event VoteForGauge: time: uint256 user: address gauge_addr: address weight: uint256 event NewGauge: addr: address gauge_type: int128 weight: uint256 MULTIPLIER: constant(uint256) = 10 ** 18 admin: public(address) # Can and will be a smart contract future_admin: public(address) # Can and will be a smart contract token: public(address) # CRV token voting_escrow: public(address) # Voting escrow veboost_proxy: public(address) # Boosting delegation # Gauge parameters # All numbers are "fixed point" on the basis of 1e18 n_gauge_types: public(int128) n_gauges: public(int128) gauge_type_names: public(HashMap[int128, String[64]]) # Needed for enumeration gauges: public(address[1000000000]) # we increment values by 1 prior to storing them here so we can rely on a value # of zero as meaning the gauge has not been set gauge_types_: HashMap[address, int128] vote_user_slopes: public(HashMap[address, HashMap[address, VotedSlope]]) # user -> gauge_addr -> VotedSlope vote_user_power: public(HashMap[address, uint256]) # Total vote power used by user last_user_vote: public(HashMap[address, HashMap[address, uint256]]) # Last user vote's timestamp for each gauge address # Past and scheduled points for gauge weight, sum of weights per type, total weight # Point is for bias+slope # changes_* are for changes in slope # time_* are for the last change timestamp # timestamps are rounded to whole weeks points_weight: public(HashMap[address, HashMap[uint256, Point]]) # gauge_addr -> time -> Point changes_weight: HashMap[address, HashMap[uint256, uint256]] # gauge_addr -> time -> slope time_weight: public(HashMap[address, uint256]) # gauge_addr -> last scheduled time (next week) points_sum: public(HashMap[int128, HashMap[uint256, Point]]) # type_id -> time -> Point changes_sum: HashMap[int128, HashMap[uint256, uint256]] # type_id -> time -> slope time_sum: public(uint256[1000000000]) # type_id -> last scheduled time (next week) points_total: public(HashMap[uint256, uint256]) # time -> total weight time_total: public(uint256) # last scheduled time points_type_weight: public(HashMap[int128, HashMap[uint256, uint256]]) # type_id -> time -> type weight time_type_weight: public(uint256[1000000000]) # type_id -> last scheduled time (next week) voting_enabled: public(bool) # whether veRBN holders can currently vote on gauge weights @external def __init__(_token: address, _voting_escrow: address, _veboost_proxy: address, _admin: address): """ @notice Contract constructor @param _token `ERC20CRV` contract address @param _voting_escrow `VotingEscrow` contract address @param _admin Admin of contract """ assert _token != ZERO_ADDRESS assert _voting_escrow != ZERO_ADDRESS assert _veboost_proxy != ZERO_ADDRESS assert _admin != ZERO_ADDRESS self.admin = _admin self.token = _token self.voting_escrow = _voting_escrow self.veboost_proxy = _veboost_proxy self.time_total = block.timestamp / WEEK * WEEK @external def commit_transfer_ownership(addr: address): """ @notice Transfer ownership of GaugeController to `addr` @param addr Address to have ownership transferred to """ assert msg.sender == self.admin # dev: admin only self.future_admin = addr log CommitOwnership(addr) @external def apply_transfer_ownership(): """ @notice Apply pending ownership transfer """ assert msg.sender == self.admin # dev: admin only _admin: address = self.future_admin assert _admin != ZERO_ADDRESS # dev: admin not set self.admin = _admin log ApplyOwnership(_admin) @external def set_voting_enabled(_voting_enabled: bool): """ @notice Toggle voting enabled """ assert msg.sender == self.admin # dev: admin only self.voting_enabled = _voting_enabled log VotingEnabled(_voting_enabled) @external @view def gauge_types(_addr: address) -> int128: """ @notice Get gauge type for address @param _addr Gauge address @return Gauge type id """ gauge_type: int128 = self.gauge_types_[_addr] assert gauge_type != 0 return gauge_type - 1 @internal def _get_type_weight(gauge_type: int128) -> uint256: """ @notice Fill historic type weights week-over-week for missed checkins and return the type weight for the future week @param gauge_type Gauge type id @return Type weight """ t: uint256 = self.time_type_weight[gauge_type] if t > 0: w: uint256 = self.points_type_weight[gauge_type][t] for i in range(500): if t > block.timestamp: break t += WEEK self.points_type_weight[gauge_type][t] = w if t > block.timestamp: self.time_type_weight[gauge_type] = t return w else: return 0 @internal def _get_sum(gauge_type: int128) -> uint256: """ @notice Fill sum of gauge weights for the same type week-over-week for missed checkins and return the sum for the future week @param gauge_type Gauge type id @return Sum of weights """ t: uint256 = self.time_sum[gauge_type] if t > 0: pt: Point = self.points_sum[gauge_type][t] for i in range(500): if t > block.timestamp: break t += WEEK d_bias: uint256 = pt.slope * WEEK if pt.bias > d_bias: pt.bias -= d_bias d_slope: uint256 = self.changes_sum[gauge_type][t] pt.slope -= d_slope else: pt.bias = 0 pt.slope = 0 self.points_sum[gauge_type][t] = pt if t > block.timestamp: self.time_sum[gauge_type] = t return pt.bias else: return 0 @internal def _get_total() -> uint256: """ @notice Fill historic total weights week-over-week for missed checkins and return the total for the future week @return Total weight """ t: uint256 = self.time_total _n_gauge_types: int128 = self.n_gauge_types if t > block.timestamp: # If we have already checkpointed - still need to change the value t -= WEEK pt: uint256 = self.points_total[t] for gauge_type in range(100): if gauge_type == _n_gauge_types: break self._get_sum(gauge_type) self._get_type_weight(gauge_type) for i in range(500): if t > block.timestamp: break t += WEEK pt = 0 # Scales as n_types * n_unchecked_weeks (hopefully 1 at most) for gauge_type in range(100): if gauge_type == _n_gauge_types: break type_sum: uint256 = self.points_sum[gauge_type][t].bias type_weight: uint256 = self.points_type_weight[gauge_type][t] pt += type_sum * type_weight self.points_total[t] = pt if t > block.timestamp: self.time_total = t return pt @internal def _get_weight(gauge_addr: address) -> uint256: """ @notice Fill historic gauge weights week-over-week for missed checkins and return the total for the future week @param gauge_addr Address of the gauge @return Gauge weight """ t: uint256 = self.time_weight[gauge_addr] if t > 0: pt: Point = self.points_weight[gauge_addr][t] for i in range(500): if t > block.timestamp: break t += WEEK d_bias: uint256 = pt.slope * WEEK if pt.bias > d_bias: pt.bias -= d_bias d_slope: uint256 = self.changes_weight[gauge_addr][t] pt.slope -= d_slope else: pt.bias = 0 pt.slope = 0 self.points_weight[gauge_addr][t] = pt if t > block.timestamp: self.time_weight[gauge_addr] = t return pt.bias else: return 0 @external def add_gauge(addr: address, gauge_type: int128, weight: uint256 = 0): """ @notice Add gauge `addr` of type `gauge_type` with weight `weight` @param addr Gauge address @param gauge_type Gauge type @param weight Gauge weight """ assert msg.sender == self.admin assert (gauge_type >= 0) and (gauge_type < self.n_gauge_types) assert self.gauge_types_[addr] == 0 # dev: cannot add the same gauge twice n: int128 = self.n_gauges self.n_gauges = n + 1 self.gauges[n] = addr self.gauge_types_[addr] = gauge_type + 1 next_time: uint256 = (block.timestamp + WEEK) / WEEK * WEEK if weight > 0: _type_weight: uint256 = self._get_type_weight(gauge_type) _old_sum: uint256 = self._get_sum(gauge_type) _old_total: uint256 = self._get_total() self.points_sum[gauge_type][next_time].bias = weight + _old_sum self.time_sum[gauge_type] = next_time self.points_total[next_time] = _old_total + _type_weight * weight self.time_total = next_time self.points_weight[addr][next_time].bias = weight if self.time_sum[gauge_type] == 0: self.time_sum[gauge_type] = next_time self.time_weight[addr] = next_time log NewGauge(addr, gauge_type, weight) @external def checkpoint(): """ @notice Checkpoint to fill data common for all gauges """ self._get_total() @external def checkpoint_gauge(addr: address): """ @notice Checkpoint to fill data for both a specific gauge and common for all gauges @param addr Gauge address """ self._get_weight(addr) self._get_total() @internal @view def _gauge_relative_weight(addr: address, time: uint256) -> uint256: """ @notice Get Gauge relative weight (not more than 1.0) normalized to 1e18 (e.g. 1.0 == 1e18). Inflation which will be received by it is inflation_rate * relative_weight / 1e18 @param addr Gauge address @param time Relative weight at the specified timestamp in the past or present @return Value of relative weight normalized to 1e18 """ t: uint256 = time / WEEK * WEEK _total_weight: uint256 = self.points_total[t] if _total_weight > 0: gauge_type: int128 = self.gauge_types_[addr] - 1 _type_weight: uint256 = self.points_type_weight[gauge_type][t] _gauge_weight: uint256 = self.points_weight[addr][t].bias return MULTIPLIER * _type_weight * _gauge_weight / _total_weight else: return 0 @external @view def gauge_relative_weight(addr: address, time: uint256 = block.timestamp) -> uint256: """ @notice Get Gauge relative weight (not more than 1.0) normalized to 1e18 (e.g. 1.0 == 1e18). Inflation which will be received by it is inflation_rate * relative_weight / 1e18 @param addr Gauge address @param time Relative weight at the specified timestamp in the past or present @return Value of relative weight normalized to 1e18 """ return self._gauge_relative_weight(addr, time) @external def gauge_relative_weight_write(addr: address, time: uint256 = block.timestamp) -> uint256: """ @notice Get gauge weight normalized to 1e18 and also fill all the unfilled values for type and gauge records @dev Any address can call, however nothing is recorded if the values are filled already @param addr Gauge address @param time Relative weight at the specified timestamp in the past or present @return Value of relative weight normalized to 1e18 """ self._get_weight(addr) self._get_total() # Also calculates get_sum return self._gauge_relative_weight(addr, time) @internal def _change_type_weight(type_id: int128, weight: uint256): """ @notice Change type weight @param type_id Type id @param weight New type weight """ old_weight: uint256 = self._get_type_weight(type_id) old_sum: uint256 = self._get_sum(type_id) _total_weight: uint256 = self._get_total() next_time: uint256 = (block.timestamp + WEEK) / WEEK * WEEK _total_weight = _total_weight + old_sum * weight - old_sum * old_weight self.points_total[next_time] = _total_weight self.points_type_weight[type_id][next_time] = weight self.time_total = next_time self.time_type_weight[type_id] = next_time log NewTypeWeight(type_id, next_time, weight, _total_weight) @external def add_type(_name: String[64], weight: uint256 = 0): """ @notice Add gauge type with name `_name` and weight `weight` @param _name Name of gauge type @param weight Weight of gauge type """ assert msg.sender == self.admin type_id: int128 = self.n_gauge_types self.gauge_type_names[type_id] = _name self.n_gauge_types = type_id + 1 if weight != 0: self._change_type_weight(type_id, weight) log AddType(_name, type_id) @external def change_type_weight(type_id: int128, weight: uint256): """ @notice Change gauge type `type_id` weight to `weight` @param type_id Gauge type id @param weight New Gauge weight """ assert msg.sender == self.admin self._change_type_weight(type_id, weight) @internal def _change_gauge_weight(addr: address, weight: uint256): # Change gauge weight # Only needed when testing in reality gauge_type: int128 = self.gauge_types_[addr] - 1 old_gauge_weight: uint256 = self._get_weight(addr) type_weight: uint256 = self._get_type_weight(gauge_type) old_sum: uint256 = self._get_sum(gauge_type) _total_weight: uint256 = self._get_total() next_time: uint256 = (block.timestamp + WEEK) / WEEK * WEEK self.points_weight[addr][next_time].bias = weight self.time_weight[addr] = next_time new_sum: uint256 = old_sum + weight - old_gauge_weight self.points_sum[gauge_type][next_time].bias = new_sum self.time_sum[gauge_type] = next_time _total_weight = _total_weight + new_sum * type_weight - old_sum * type_weight self.points_total[next_time] = _total_weight self.time_total = next_time log NewGaugeWeight(addr, block.timestamp, weight, _total_weight) @external def change_gauge_weight(addr: address, weight: uint256): """ @notice Change weight of gauge `addr` to `weight` @param addr `GaugeController` contract address @param weight New Gauge weight """ assert msg.sender == self.admin self._change_gauge_weight(addr, weight) @external def vote_for_gauge_weights(_gauge_addr: address, _user_weight: uint256): """ @notice Allocate voting power for changing pool weights @param _gauge_addr Gauge which `msg.sender` votes for @param _user_weight Weight for a gauge in bps (units of 0.01%). Minimal is 0.01%. Ignored if 0 """ assert self.voting_enabled, "Voting disabled" escrow: address = self.voting_escrow slope: uint256 = convert(VotingEscrow(escrow).get_last_user_slope(msg.sender), uint256) lock_end: uint256 = VotingEscrow(escrow).locked__end(msg.sender) _n_gauges: int128 = self.n_gauges next_time: uint256 = (block.timestamp + WEEK) / WEEK * WEEK assert lock_end > next_time, "Your token lock expires too soon" assert (_user_weight >= 0) and (_user_weight <= 10000), "You used all your voting power" assert block.timestamp >= self.last_user_vote[msg.sender][_gauge_addr] + WEIGHT_VOTE_DELAY, "Cannot vote so often" gauge_type: int128 = self.gauge_types_[_gauge_addr] - 1 assert gauge_type >= 0, "Gauge not added" # Prepare slopes and biases in memory old_slope: VotedSlope = self.vote_user_slopes[msg.sender][_gauge_addr] old_dt: uint256 = 0 if old_slope.end > next_time: old_dt = old_slope.end - next_time old_bias: uint256 = old_slope.slope * old_dt new_slope: VotedSlope = VotedSlope({ slope: slope * _user_weight / 10000, end: lock_end, power: _user_weight }) new_dt: uint256 = lock_end - next_time # dev: raises when expired new_bias: uint256 = new_slope.slope * new_dt # Check and update powers (weights) used power_used: uint256 = self.vote_user_power[msg.sender] power_used = power_used + new_slope.power - old_slope.power self.vote_user_power[msg.sender] = power_used assert (power_used >= 0) and (power_used <= 10000), 'Used too much power' ## Remove old and schedule new slope changes # Remove slope changes for old slopes # Schedule recording of initial slope for next_time old_weight_bias: uint256 = self._get_weight(_gauge_addr) old_weight_slope: uint256 = self.points_weight[_gauge_addr][next_time].slope old_sum_bias: uint256 = self._get_sum(gauge_type) old_sum_slope: uint256 = self.points_sum[gauge_type][next_time].slope self.points_weight[_gauge_addr][next_time].bias = max(old_weight_bias + new_bias, old_bias) - old_bias self.points_sum[gauge_type][next_time].bias = max(old_sum_bias + new_bias, old_bias) - old_bias if old_slope.end > next_time: self.points_weight[_gauge_addr][next_time].slope = max(old_weight_slope + new_slope.slope, old_slope.slope) - old_slope.slope self.points_sum[gauge_type][next_time].slope = max(old_sum_slope + new_slope.slope, old_slope.slope) - old_slope.slope else: self.points_weight[_gauge_addr][next_time].slope += new_slope.slope self.points_sum[gauge_type][next_time].slope += new_slope.slope if old_slope.end > block.timestamp: # Cancel old slope changes if they still didn't happen self.changes_weight[_gauge_addr][old_slope.end] -= old_slope.slope self.changes_sum[gauge_type][old_slope.end] -= old_slope.slope # Add slope changes for new slopes self.changes_weight[_gauge_addr][new_slope.end] += new_slope.slope self.changes_sum[gauge_type][new_slope.end] += new_slope.slope self._get_total() self.vote_user_slopes[msg.sender][_gauge_addr] = new_slope # Record last action time self.last_user_vote[msg.sender][_gauge_addr] = block.timestamp log VoteForGauge(block.timestamp, msg.sender, _gauge_addr, _user_weight) @external @view def get_gauge_weight(addr: address) -> uint256: """ @notice Get current gauge weight @param addr Gauge address @return Gauge weight """ return self.points_weight[addr][self.time_weight[addr]].bias @external @view def get_type_weight(type_id: int128) -> uint256: """ @notice Get current type weight @param type_id Type id @return Type weight """ return self.points_type_weight[type_id][self.time_type_weight[type_id]] @external @view def get_total_weight() -> uint256: """ @notice Get current total (type-weighted) weight @return Total weight """ return self.points_total[self.time_total] @external @view def get_weights_sum_per_type(type_id: int128) -> uint256: """ @notice Get sum of gauge weights per type @param type_id Type id @return Sum of gauge weights """ return self.points_sum[type_id][self.time_sum[type_id]].bias
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"name":"CommitOwnership","inputs":[{"name":"admin","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"ApplyOwnership","inputs":[{"name":"admin","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"VotingEnabled","inputs":[{"name":"voting_enabled","type":"bool","indexed":false}],"anonymous":false,"type":"event"},{"name":"AddType","inputs":[{"name":"name","type":"string","indexed":false},{"name":"type_id","type":"int128","indexed":false}],"anonymous":false,"type":"event"},{"name":"NewTypeWeight","inputs":[{"name":"type_id","type":"int128","indexed":false},{"name":"time","type":"uint256","indexed":false},{"name":"weight","type":"uint256","indexed":false},{"name":"total_weight","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"NewGaugeWeight","inputs":[{"name":"gauge_address","type":"address","indexed":false},{"name":"time","type":"uint256","indexed":false},{"name":"weight","type":"uint256","indexed":false},{"name":"total_weight","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"VoteForGauge","inputs":[{"name":"time","type":"uint256","indexed":false},{"name":"user","type":"address","indexed":false},{"name":"gauge_addr","type":"address","indexed":false},{"name":"weight","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"NewGauge","inputs":[{"name":"addr","type":"address","indexed":false},{"name":"gauge_type","type":"int128","indexed":false},{"name":"weight","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_token","type":"address"},{"name":"_voting_escrow","type":"address"},{"name":"_veboost_proxy","type":"address"},{"name":"_admin","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"commit_transfer_ownership","inputs":[{"name":"addr","type":"address"}],"outputs":[],"gas":39445},{"stateMutability":"nonpayable","type":"function","name":"apply_transfer_ownership","inputs":[],"outputs":[],"gas":41536},{"stateMutability":"nonpayable","type":"function","name":"set_voting_enabled","inputs":[{"name":"_voting_enabled","type":"bool"}],"outputs":[],"gas":39505},{"stateMutability":"view","type":"function","name":"gauge_types","inputs":[{"name":"_addr","type":"address"}],"outputs":[{"name":"","type":"int128"}],"gas":3105},{"stateMutability":"nonpayable","type":"function","name":"add_gauge","inputs":[{"name":"addr","type":"address"},{"name":"gauge_type","type":"int128"}],"outputs":[],"gas":9355936476},{"stateMutability":"nonpayable","type":"function","name":"add_gauge","inputs":[{"name":"addr","type":"address"},{"name":"gauge_type","type":"int128"},{"name":"weight","type":"uint256"}],"outputs":[],"gas":9355936476},{"stateMutability":"nonpayable","type":"function","name":"checkpoint","inputs":[],"outputs":[],"gas":9265868764},{"stateMutability":"nonpayable","type":"function","name":"checkpoint_gauge","inputs":[{"name":"addr","type":"address"}],"outputs":[],"gas":9320254139},{"stateMutability":"view","type":"function","name":"gauge_relative_weight","inputs":[{"name":"addr","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":11293},{"stateMutability":"view","type":"function","name":"gauge_relative_weight","inputs":[{"name":"addr","type":"address"},{"name":"time","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}],"gas":11293},{"stateMutability":"nonpayable","type":"function","name":"gauge_relative_weight_write","inputs":[{"name":"addr","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":9320264858},{"stateMutability":"nonpayable","type":"function","name":"gauge_relative_weight_write","inputs":[{"name":"addr","type":"address"},{"name":"time","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}],"gas":9320264858},{"stateMutability":"nonpayable","type":"function","name":"add_type","inputs":[{"name":"_name","type":"string"}],"outputs":[],"gas":9355872388},{"stateMutability":"nonpayable","type":"function","name":"add_type","inputs":[{"name":"_name","type":"string"},{"name":"weight","type":"uint256"}],"outputs":[],"gas":9355872388},{"stateMutability":"nonpayable","type":"function","name":"change_type_weight","inputs":[{"name":"type_id","type":"int128"},{"name":"weight","type":"uint256"}],"outputs":[],"gas":9355717527},{"stateMutability":"nonpayable","type":"function","name":"change_gauge_weight","inputs":[{"name":"addr","type":"address"},{"name":"weight","type":"uint256"}],"outputs":[],"gas":9410175915},{"stateMutability":"nonpayable","type":"function","name":"vote_for_gauge_weights","inputs":[{"name":"_gauge_addr","type":"address"},{"name":"_user_weight","type":"uint256"}],"outputs":[],"gas":9375128672},{"stateMutability":"view","type":"function","name":"get_gauge_weight","inputs":[{"name":"addr","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":5443},{"stateMutability":"view","type":"function","name":"get_type_weight","inputs":[{"name":"type_id","type":"int128"}],"outputs":[{"name":"","type":"uint256"}],"gas":5413},{"stateMutability":"view","type":"function","name":"get_total_weight","inputs":[],"outputs":[{"name":"","type":"uint256"}],"gas":5122},{"stateMutability":"view","type":"function","name":"get_weights_sum_per_type","inputs":[{"name":"type_id","type":"int128"}],"outputs":[{"name":"","type":"uint256"}],"gas":5473},{"stateMutability":"view","type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2970},{"stateMutability":"view","type":"function","name":"future_admin","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":3000},{"stateMutability":"view","type":"function","name":"token","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":3030},{"stateMutability":"view","type":"function","name":"voting_escrow","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":3060},{"stateMutability":"view","type":"function","name":"veboost_proxy","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":3090},{"stateMutability":"view","type":"function","name":"n_gauge_types","inputs":[],"outputs":[{"name":"","type":"int128"}],"gas":3120},{"stateMutability":"view","type":"function","name":"n_gauges","inputs":[],"outputs":[{"name":"","type":"int128"}],"gas":3150},{"stateMutability":"view","type":"function","name":"gauge_type_names","inputs":[{"name":"arg0","type":"int128"}],"outputs":[{"name":"","type":"string"}],"gas":13756},{"stateMutability":"view","type":"function","name":"gauges","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"address"}],"gas":3255},{"stateMutability":"view","type":"function","name":"vote_user_slopes","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"address"}],"outputs":[{"name":"","type":"tuple","components":[{"name":"slope","type":"uint256"},{"name":"power","type":"uint256"},{"name":"end","type":"uint256"}]}],"gas":8045},{"stateMutability":"view","type":"function","name":"vote_user_power","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":3536},{"stateMutability":"view","type":"function","name":"last_user_vote","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":3832},{"stateMutability":"view","type":"function","name":"points_weight","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"uint256"}],"outputs":[{"name":"","type":"tuple","components":[{"name":"bias","type":"uint256"},{"name":"slope","type":"uint256"}]}],"gas":5868},{"stateMutability":"view","type":"function","name":"time_weight","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":3626},{"stateMutability":"view","type":"function","name":"points_sum","inputs":[{"name":"arg0","type":"int128"},{"name":"arg1","type":"uint256"}],"outputs":[{"name":"","type":"tuple","components":[{"name":"bias","type":"uint256"},{"name":"slope","type":"uint256"}]}],"gas":5938},{"stateMutability":"view","type":"function","name":"time_sum","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}],"gas":3465},{"stateMutability":"view","type":"function","name":"points_total","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}],"gas":3565},{"stateMutability":"view","type":"function","name":"time_total","inputs":[],"outputs":[{"name":"","type":"uint256"}],"gas":3480},{"stateMutability":"view","type":"function","name":"points_type_weight","inputs":[{"name":"arg0","type":"int128"},{"name":"arg1","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}],"gas":3901},{"stateMutability":"view","type":"function","name":"time_type_weight","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}],"gas":3585},{"stateMutability":"view","type":"function","name":"voting_enabled","inputs":[],"outputs":[{"name":"","type":"bool"}],"gas":3570}]
Contract Creation Code
60206123fb6080396080518060a01c6123f65760e052602060206123fb016080396080518060a01c6123f65761010052602060406123fb016080396080518060a01c6123f65761012052602060606123fb016080396080518060a01c6123f65761014052600060e051146123f657600061010051146123f657600061012051146123f657600061014051146123f6576101405160005560e05160025561010051600355610120516004554262093a808082049050905062093a808082028215828483041417156123f657905090506377359412556123de56600436101561000d576117a2565b60046000601c376000513461230157636b441a408118610074576004358060a01c6123015760e05260005433186123015760e0516001557f2f56810a6bf40af059b96d3aea4db54081f378029a518390491093a7b67032e960e051610100526020610100a1005b636a1c05ae81186100ce5760005433186123015760015460e052600060e051146123015760e0516000557febee2d5739011062cb4f14113f3b36bf0ffe3da5c0568f64189d1012a118910560e051610100526020610100a1005b6358c9da998118610129576004358060011c6123015760e05260005433186123015760e05163b2d05e14557f24505c2a690f21afd3a9d6fd8280e5a12ad3fcf5edee69a44d19537561a85ad860e051610100526020610100a1005b633f9095b7811861018a576004358060a01c6123015760e052633b9aca0860e05160a0526080526040608020546101005260006101005114612301576101005160018082038060801d81607f1d186123015790509050610120526020610120f35b633a04f90081186101a05760006102e0526101b3565b6318dfe921811861047f576044356102e0525b6004358060a01c612301576102a0526024358060801d81607f1d18612301576102c05260005433186123015760006102c05112156101f25760006101fb565b6005546102c051125b1561230157633b9aca086102a05160a05260805260406080205461230157600654610300526103005160018082018060801d81607f1d1861230157905090506006556102a051600161030051633b9aca008110156123015702600801556102c05160018082018060801d81607f1d186123015790509050633b9aca086102a05160a0526080526040608020554262093a808181830110612301578082019050905062093a808082049050905062093a8080820282158284830414171561230157905090506103205260006102e05111156103e8576102c05160e0526102e16103606117a8565b61036051610340526102c05160e0526102fb6103806118ae565b610380516103605261030e6103a0611a64565b6103a051610380526102e0516103605181818301106123015780820190509050633b9aca0f6102c05160a05260805260406080206103205160a0526080526040608020556103205160016102c051633b9aca008110156123015702633b9aca11015561038051610340516102e05180820282158284830414171561230157905090508181830110612301578082019050905063773594116103205160a052608052604060802055610320516377359412556102e051633b9aca0c6102a05160a05260805260406080206103205160a0526080526040608020555b60016102c051633b9aca008110156123015702633b9aca110154610425576103205160016102c051633b9aca008110156123015702633b9aca1101555b61032051633b9aca0e6102a05160a0526080526040608020557ffd55b3191f9c9dd92f4f134dd700e7d76f6a0c836a08687023d6d38f03ebd8776102a051610340526102c051610360526102e051610380526060610340a1005b63c2c4c5c1811861049b576104956102a0611a64565b6102a050005b63615e523781186104dc576004358060a01c612301576102a0526102a05160e0526104c76102c0611c4d565b6102c0506104d66102c0611a64565b6102c050005b636207d86681186104f157426101e052610504565b63d3078c94811861053c576024356101e0525b6004358060a01c612301576101c0526101c05160e0526101e0516101005261052d610200611df9565b61020051610220526020610220f35b6395cfcec3811861055157426102c052610564565b636472eee181186105c1576024356102c0525b6004358060a01c612301576102a0526102a05160e0526105856102e0611c4d565b6102e0506105946102e0611a64565b6102e0506102a05160e0526102c051610100526105b26102e0611df9565b6102e051610300526020610300f35b6326e56d5e81186105d7576000610440526105ea565b6392d0d232811861074657602435610440525b60043560040160408135116123015780803560200180826103e037505050600054331861230157600554610460526103e08060076104605160a0526080526040608020602082510160c060006003818352015b8260c051602002111561064f5761066e565b60c05160200285015160c051850155815160010180835281141561063d575b5050505050506104605160018082018060801d81607f1d1861230157905090506005556000610440511461074457610460516102a052610440516102c0526106b4611f27565b7f6fbe76157c712f16b5a3c44ed48baa04e3450bc3fab0c020e848aca72bbccc84610480806040808252808301806103e080516020018083828460045afa905050508051806020830101818260206001820306601f8201039050033682375050805160200160206001820306601f8201039050905090508101905060208201915061046051825290509050610480a15b005b63db1ca2608118610787576004358060801d81607f1d18612301576103e0526000543318612301576103e0516102a0526024356102c052610785611f27565b005b63d4d2646e81186107c3576004358060a01c6123015761044052600054331861230157610440516102a0526024356102c0526107c16120b9565b005b63d713632881186111f0576004358060a01c612301576102a05263b2d05e145461085e57600f6102c0527f566f74696e672064697361626c656400000000000000000000000000000000006102e0526102c0506102c051806102e001818260206001820306601f82010390500336823750506308c379a06102805260206102a0526102c05160206001820306601f820103905060440161029cfd5b6003546102c052637c74a1746103005233610320526020610300602461031c6102c0515afa610892573d600060003e3d6000fd5b601f3d1115612301576103005160008112612301576102e05263adc635896103205233610340526020610320602461033c6102c0515afa6108d8573d600060003e3d6000fd5b601f3d1115612301576103205161030052600654610320524262093a808181830110612301578082019050905062093a808082049050905062093a808082028215828483041417156123015790509050610340526103405161030051116109b0576020610360527f596f757220746f6b656e206c6f636b206578706972657320746f6f20736f6f6e6103805261036050610360518061038001818260206001820306601f82010390500336823750506308c379a0610320526020610340526103605160206001820306601f820103905060440161033cfd5b600060243510156109c25760006109cb565b61271060243511155b610a4657601e610360527f596f75207573656420616c6c20796f757220766f74696e6720706f77657200006103805261036050610360518061038001818260206001820306601f82010390500336823750506308c379a0610320526020610340526103605160206001820306601f820103905060440161033cfd5b633b9aca0b3360a05260805260406080206102a05160a052608052604060802054620d2f0081818301106123015780820190509050421015610af9576014610360527f43616e6e6f7420766f746520736f206f6674656e0000000000000000000000006103805261036050610360518061038001818260206001820306601f82010390500336823750506308c379a0610320526020610340526103605160206001820306601f820103905060440161033cfd5b633b9aca086102a05160a05260805260406080205460018082038060801d81607f1d186123015790509050610360526000610360511215610bab57600f610380527f4761756765206e6f7420616464656400000000000000000000000000000000006103a0526103805061038051806103a001818260206001820306601f82010390500336823750506308c379a0610340526020610360526103805160206001820306601f820103905060440161035cfd5b633b9aca093360a05260805260406080206102a05160a052608052604060802080546103805260018101546103a05260028101546103c0525060006103e052610340516103c0511115610c13576103c0516103405180821061230157808203905090506103e0525b610380516103e0518082028215828483041417156123015790509050610400526102e051602435808202821582848304141715612301579050905061271080820490509050610420526024356104405261030051610460526103005161034051808210612301578082039050905061048052610420516104805180820282158284830414171561230157905090506104a052633b9aca0a3360a0526080526040608020546104c0526104c05161044051818183011061230157808201905090506103a05180821061230157808203905090506104c0526104c051633b9aca0a3360a05260805260406080205560006104c0511015610d12576000610d1c565b6127106104c05111155b610d975760136104e0527f5573656420746f6f206d75636820706f77657200000000000000000000000000610500526104e0506104e0518061050001818260206001820306601f82010390500336823750506308c379a06104a05260206104c0526104e05160206001820306601f82010390506044016104bcfd5b6102a05160e052610da9610500611c4d565b610500516104e0526001633b9aca0c6102a05160a05260805260406080206103405160a05260805260406080200154610500526103605160e052610dee6105406118ae565b61054051610520526001633b9aca0f6103605160a05260805260406080206103405160a05260805260406080200154610540526104e0516104a0518181830110612301578082019050905061040051808210610e4a5781610e4c565b805b90509050610400518082106123015780820390509050633b9aca0c6102a05160a05260805260406080206103405160a052608052604060802055610520516104a0518181830110612301578082019050905061040051808210610eaf5781610eb1565b805b90509050610400518082106123015780820390509050633b9aca0f6103605160a05260805260406080206103405160a052608052604060802055610340516103c05111610f7b576001633b9aca0c6102a05160a05260805260406080206103405160a052608052604060802001805461042051818183011061230157808201905090508155506001633b9aca0f6103605160a05260805260406080206103405160a0526080526040608020018054610420518181830110612301578082019050905081555061104c565b61050051610420518181830110612301578082019050905061038051808210610fa45781610fa6565b805b905090506103805180821061230157808203905090506001633b9aca0c6102a05160a05260805260406080206103405160a052608052604060802001556105405161042051818183011061230157808201905090506103805180821061100c578161100e565b805b905090506103805180821061230157808203905090506001633b9aca0f6103605160a05260805260406080206103405160a052608052604060802001555b426103c05111156110cc57633b9aca0d6102a05160a05260805260406080206103c05160a05260805260406080208054610380518082106123015780820390509050815550633b9aca106103605160a05260805260406080206103c05160a052608052604060802080546103805180821061230157808203905090508155505b633b9aca0d6102a05160a05260805260406080206104605160a052608052604060802080546104205181818301106123015780820190509050815550633b9aca106103605160a05260805260406080206104605160a05260805260406080208054610420518181830110612301578082019050905081555061114f610560611a64565b61056050633b9aca093360a05260805260406080206102a05160a05260805260406080206104205181556104405160018201556104605160028201555042633b9aca0b3360a05260805260406080206102a05160a0526080526040608020557f45ca9a4c8d0119eb329e580d28fe689e484e1be230da8037ade9547d2d25cc91426105605233610580526102a0516105a0526024356105c0526080610560a1005b634e791a3a8118611247576004358060a01c6123015760e052633b9aca0c60e05160a0526080526040608020633b9aca0e60e05160a05260805260406080205460a052608052604060802054610100526020610100f35b6372fdccfa81186112a8576004358060801d81607f1d186123015760e052637735941360e05160a0526080526040608020600160e051633b9aca0081101561230157026377359414015460a052608052604060802054610100526020610100f35b636977ff9281186112d357637735941163773594125460a05260805260406080205460e052602060e0f35b636f214a6a8118611334576004358060801d81607f1d186123015760e052633b9aca0f60e05160a0526080526040608020600160e051633b9aca008110156123015702633b9aca11015460a052608052604060802054610100526020610100f35b63f851a440811861134b5760005460e052602060e0f35b6317f7182a81186113625760015460e052602060e0f35b63fc0c546a81186113795760025460e052602060e0f35b63dfe0503181186113905760035460e052602060e0f35b6349ec3b3f81186113a75760045460e052602060e0f35b639fba03a181186113be5760055460e052602060e0f35b63e93841d081186113d55760065460e052602060e0f35b63d958a8fc811861149e576004358060801d81607f1d186123015760e052610100806020808252600760e05160a052608052604060802081840180828082602082540160c060006003818352015b8260c051602002111561143557611454565b60c05185015460c0516020028501528151600101808352811415611423575b5050505050508051806020830101818260206001820306601f8201039050033682375050805160200160206001820306601f82010390509050905090508101905090509050610100f35b63b053918781186114c8576001600435633b9aca0081101561230157026008015460e052602060e0f35b630f467f988118611532576004358060a01c6123015760e0526024358060a01c6123015761010052633b9aca0960e05160a05260805260406080206101005160a0526080526040608020805461012052600181015461014052600281015461016052506060610120f35b63411e74b5811861156a576004358060a01c6123015760e052633b9aca0a60e05160a052608052604060802054610100526020610100f35b637e418fa081186115c0576004358060a01c6123015760e0526024358060a01c6123015761010052633b9aca0b60e05160a05260805260406080206101005160a052608052604060802054610120526020610120f35b63edba52738118611611576004358060a01c6123015760e052633b9aca0c60e05160a052608052604060802060243560a0526080526040608020805461010052600181015461012052506040610100f35b63a4d7a2508118611649576004358060a01c6123015760e052633b9aca0e60e05160a052608052604060802054610100526020610100f35b63a9b48c01811861169f576004358060801d81607f1d186123015760e052633b9aca0f60e05160a052608052604060802060243560a0526080526040608020805461010052600181015461012052506040610100f35b635a54915881186116cc576001600435633b9aca008110156123015702633b9aca11015460e052602060e0f35b631142916b81186116f457637735941160043560a05260805260406080205460e052602060e0f35b63513872bd811861170e5763773594125460e052602060e0f35b63afd2bb498118611759576004358060801d81607f1d186123015760e052637735941360e05160a052608052604060802060243560a052608052604060802054610100526020610100f35b6351ce6b598118611786576001600435633b9aca0081101561230157026377359414015460e052602060e0f35b6311d9dbd381186117a05763b2d05e145460e052602060e0f35b505b60006000fd5b600160e051633b9aca0081101561230157026377359414015461010052600061010051116117de5760008152506118ac566118ac565b637735941360e05160a05260805260406080206101005160a0526080526040608020546101205261014060006101f4818352015b426101005111156118225761189e565b610100805162093a808181830110612301578082019050905081525061012051637735941360e05160a05260805260406080206101005160a0526080526040608020554261010051111561188e5761010051600160e051633b9aca008110156123015702637735941401555b8151600101808352811415611812575b5050610120518152506118ac565b565b600160e051633b9aca008110156123015702633b9aca11015461010052600061010051116118e4576000815250611a6256611a62565b633b9aca0f60e05160a05260805260406080206101005160a05260805260406080208054610120526001810154610140525061016060006101f4818352015b4261010051111561193357611a54565b610100805162093a80818183011061230157808201905090508152506101405162093a8080820282158284830414171561230157905090506101805261018051610120511161198d576000610120526000610140526119e9565b6101208051610180518082106123015780820390509050815250633b9aca1060e05160a05260805260406080206101005160a0526080526040608020546101a05261014080516101a05180821061230157808203905090508152505b633b9aca0f60e05160a05260805260406080206101005160a05260805260406080206101205181556101405160018201555042610100511115611a445761010051600160e051633b9aca008110156123015702633b9aca1101555b8151600101808352811415611923575b505061012051815250611a62565b565b6377359412546101c0526005546101e052426101c0511115611a9b576101c0805162093a8080821061230157808203905090508152505b63773594116101c05160a0526080526040608020546102005261022060006064818352015b6101e0516102205118611ad257611b0e565b6102205160e052611ae46102406118ae565b610240506102205160e052611afa6102406117a8565b610240508151600101808352811415611ac0575b505061022060006101f4818352015b426101c0511115611b2d57611c42565b6101c0805162093a808181830110612301578082019050905081525060006102005261024060006064818352015b6101e0516102405118611b6d57611c01565b633b9aca0f6102405160a05260805260406080206101c05160a0526080526040608020546102605263773594136102405160a05260805260406080206101c05160a05260805260406080205461028052610200805161026051610280518082028215828483041417156123015790509050818183011061230157808201905090508152508151600101808352811415611b5b575b50506102005163773594116101c05160a052608052604060802055426101c0511115611c32576101c0516377359412555b8151600101808352811415611b1d575b505061020051815250565b633b9aca0e60e05160a0526080526040608020546101005260006101005111611c7e576000815250611df756611df7565b633b9aca0c60e05160a05260805260406080206101005160a05260805260406080208054610120526001810154610140525061016060006101f4818352015b42610100511115611ccd57611de9565b610100805162093a80818183011061230157808201905090508152506101405162093a80808202821582848304141715612301579050905061018052610180516101205111611d2757600061012052600061014052611d83565b6101208051610180518082106123015780820390509050815250633b9aca0d60e05160a05260805260406080206101005160a0526080526040608020546101a05261014080516101a05180821061230157808203905090508152505b633b9aca0c60e05160a05260805260406080206101005160a05260805260406080206101205181556101405160018201555042610100511115611dd95761010051633b9aca0e60e05160a0526080526040608020555b8151600101808352811415611cbd575b505061012051815250611df7565b565b6101005162093a808082049050905062093a8080820282158284830414171561230157905090506101205263773594116101205160a0526080526040608020546101405260006101405111611e56576000815250611f2556611f25565b633b9aca0860e05160a05260805260406080205460018082038060801d81607f1d1861230157905090506101605263773594136101605160a05260805260406080206101205160a05260805260406080205461018052633b9aca0c60e05160a05260805260406080206101205160a0526080526040608020546101a052670de0b6b3a76400006101805180820282158284830414171561230157905090506101a05180820282158284830414171561230157905090506101405180801561230157820490509050815250611f25565b565b6102a05160e052611f396103006117a8565b610300516102e0526102a05160e052611f536103206118ae565b6103205161030052611f66610340611a64565b61034051610320524262093a808181830110612301578082019050905062093a808082049050905062093a8080820282158284830414171561230157905090506103405261032051610300516102c051808202821582848304141715612301579050905081818301106123015780820190509050610300516102e05180820282158284830414171561230157905090508082106123015780820390509050610320526103205163773594116103405160a0526080526040608020556102c05163773594136102a05160a05260805260406080206103405160a052608052604060802055610340516377359412556103405160016102a051633b9aca008110156123015702637735941401557e170bcdc909b6ac6e12d020fe8942256312cdcd555fb6d712899eba56d2f9016102a0516103605261034051610380526102c0516103a052610320516103c0526080610360a1565b633b9aca086102a05160a05260805260406080205460018082038060801d81607f1d1861230157905090506102e0526102a05160e0526120fa610320611c4d565b61032051610300526102e05160e0526121146103406117a8565b61034051610320526102e05160e05261212e6103606118ae565b6103605161034052612141610380611a64565b61038051610360524262093a808181830110612301578082019050905062093a808082049050905062093a808082028215828483041417156123015790509050610380526102c051633b9aca0c6102a05160a05260805260406080206103805160a05260805260406080205561038051633b9aca0e6102a05160a052608052604060802055610340516102c051818183011061230157808201905090506103005180821061230157808203905090506103a0526103a051633b9aca0f6102e05160a05260805260406080206103805160a0526080526040608020556103805160016102e051633b9aca008110156123015702633b9aca110155610360516103a05161032051808202821582848304141715612301579050905081818301106123015780820190509050610340516103205180820282158284830414171561230157905090508082106123015780820390509050610360526103605163773594116103805160a052608052604060802055610380516377359412557f54c0cf3647e6cdb2fc0a7876e60ba77563fceedf2e06c01c597f8dccb9e6bd726102a0516103c052426103e0526102c05161040052610360516104205260806103c0a1565b600080fd5b6100d86123de036100d86000396100d86123de036000f35b600080fd0000000000000000000000006123b0049f904d730db3c36a31167d9d4121fa6b00000000000000000000000019854c9a5ffa8116f48f984bdf946fb9cea9b5f70000000000000000000000001929605b714517b76bb733198e0f3c3d4ab08608000000000000000000000000d340c943ae137ea0bab682a286d1af65e4e39a6b
Deployed Bytecode
0x600436101561000d576117a2565b60046000601c376000513461230157636b441a408118610074576004358060a01c6123015760e05260005433186123015760e0516001557f2f56810a6bf40af059b96d3aea4db54081f378029a518390491093a7b67032e960e051610100526020610100a1005b636a1c05ae81186100ce5760005433186123015760015460e052600060e051146123015760e0516000557febee2d5739011062cb4f14113f3b36bf0ffe3da5c0568f64189d1012a118910560e051610100526020610100a1005b6358c9da998118610129576004358060011c6123015760e05260005433186123015760e05163b2d05e14557f24505c2a690f21afd3a9d6fd8280e5a12ad3fcf5edee69a44d19537561a85ad860e051610100526020610100a1005b633f9095b7811861018a576004358060a01c6123015760e052633b9aca0860e05160a0526080526040608020546101005260006101005114612301576101005160018082038060801d81607f1d186123015790509050610120526020610120f35b633a04f90081186101a05760006102e0526101b3565b6318dfe921811861047f576044356102e0525b6004358060a01c612301576102a0526024358060801d81607f1d18612301576102c05260005433186123015760006102c05112156101f25760006101fb565b6005546102c051125b1561230157633b9aca086102a05160a05260805260406080205461230157600654610300526103005160018082018060801d81607f1d1861230157905090506006556102a051600161030051633b9aca008110156123015702600801556102c05160018082018060801d81607f1d186123015790509050633b9aca086102a05160a0526080526040608020554262093a808181830110612301578082019050905062093a808082049050905062093a8080820282158284830414171561230157905090506103205260006102e05111156103e8576102c05160e0526102e16103606117a8565b61036051610340526102c05160e0526102fb6103806118ae565b610380516103605261030e6103a0611a64565b6103a051610380526102e0516103605181818301106123015780820190509050633b9aca0f6102c05160a05260805260406080206103205160a0526080526040608020556103205160016102c051633b9aca008110156123015702633b9aca11015561038051610340516102e05180820282158284830414171561230157905090508181830110612301578082019050905063773594116103205160a052608052604060802055610320516377359412556102e051633b9aca0c6102a05160a05260805260406080206103205160a0526080526040608020555b60016102c051633b9aca008110156123015702633b9aca110154610425576103205160016102c051633b9aca008110156123015702633b9aca1101555b61032051633b9aca0e6102a05160a0526080526040608020557ffd55b3191f9c9dd92f4f134dd700e7d76f6a0c836a08687023d6d38f03ebd8776102a051610340526102c051610360526102e051610380526060610340a1005b63c2c4c5c1811861049b576104956102a0611a64565b6102a050005b63615e523781186104dc576004358060a01c612301576102a0526102a05160e0526104c76102c0611c4d565b6102c0506104d66102c0611a64565b6102c050005b636207d86681186104f157426101e052610504565b63d3078c94811861053c576024356101e0525b6004358060a01c612301576101c0526101c05160e0526101e0516101005261052d610200611df9565b61020051610220526020610220f35b6395cfcec3811861055157426102c052610564565b636472eee181186105c1576024356102c0525b6004358060a01c612301576102a0526102a05160e0526105856102e0611c4d565b6102e0506105946102e0611a64565b6102e0506102a05160e0526102c051610100526105b26102e0611df9565b6102e051610300526020610300f35b6326e56d5e81186105d7576000610440526105ea565b6392d0d232811861074657602435610440525b60043560040160408135116123015780803560200180826103e037505050600054331861230157600554610460526103e08060076104605160a0526080526040608020602082510160c060006003818352015b8260c051602002111561064f5761066e565b60c05160200285015160c051850155815160010180835281141561063d575b5050505050506104605160018082018060801d81607f1d1861230157905090506005556000610440511461074457610460516102a052610440516102c0526106b4611f27565b7f6fbe76157c712f16b5a3c44ed48baa04e3450bc3fab0c020e848aca72bbccc84610480806040808252808301806103e080516020018083828460045afa905050508051806020830101818260206001820306601f8201039050033682375050805160200160206001820306601f8201039050905090508101905060208201915061046051825290509050610480a15b005b63db1ca2608118610787576004358060801d81607f1d18612301576103e0526000543318612301576103e0516102a0526024356102c052610785611f27565b005b63d4d2646e81186107c3576004358060a01c6123015761044052600054331861230157610440516102a0526024356102c0526107c16120b9565b005b63d713632881186111f0576004358060a01c612301576102a05263b2d05e145461085e57600f6102c0527f566f74696e672064697361626c656400000000000000000000000000000000006102e0526102c0506102c051806102e001818260206001820306601f82010390500336823750506308c379a06102805260206102a0526102c05160206001820306601f820103905060440161029cfd5b6003546102c052637c74a1746103005233610320526020610300602461031c6102c0515afa610892573d600060003e3d6000fd5b601f3d1115612301576103005160008112612301576102e05263adc635896103205233610340526020610320602461033c6102c0515afa6108d8573d600060003e3d6000fd5b601f3d1115612301576103205161030052600654610320524262093a808181830110612301578082019050905062093a808082049050905062093a808082028215828483041417156123015790509050610340526103405161030051116109b0576020610360527f596f757220746f6b656e206c6f636b206578706972657320746f6f20736f6f6e6103805261036050610360518061038001818260206001820306601f82010390500336823750506308c379a0610320526020610340526103605160206001820306601f820103905060440161033cfd5b600060243510156109c25760006109cb565b61271060243511155b610a4657601e610360527f596f75207573656420616c6c20796f757220766f74696e6720706f77657200006103805261036050610360518061038001818260206001820306601f82010390500336823750506308c379a0610320526020610340526103605160206001820306601f820103905060440161033cfd5b633b9aca0b3360a05260805260406080206102a05160a052608052604060802054620d2f0081818301106123015780820190509050421015610af9576014610360527f43616e6e6f7420766f746520736f206f6674656e0000000000000000000000006103805261036050610360518061038001818260206001820306601f82010390500336823750506308c379a0610320526020610340526103605160206001820306601f820103905060440161033cfd5b633b9aca086102a05160a05260805260406080205460018082038060801d81607f1d186123015790509050610360526000610360511215610bab57600f610380527f4761756765206e6f7420616464656400000000000000000000000000000000006103a0526103805061038051806103a001818260206001820306601f82010390500336823750506308c379a0610340526020610360526103805160206001820306601f820103905060440161035cfd5b633b9aca093360a05260805260406080206102a05160a052608052604060802080546103805260018101546103a05260028101546103c0525060006103e052610340516103c0511115610c13576103c0516103405180821061230157808203905090506103e0525b610380516103e0518082028215828483041417156123015790509050610400526102e051602435808202821582848304141715612301579050905061271080820490509050610420526024356104405261030051610460526103005161034051808210612301578082039050905061048052610420516104805180820282158284830414171561230157905090506104a052633b9aca0a3360a0526080526040608020546104c0526104c05161044051818183011061230157808201905090506103a05180821061230157808203905090506104c0526104c051633b9aca0a3360a05260805260406080205560006104c0511015610d12576000610d1c565b6127106104c05111155b610d975760136104e0527f5573656420746f6f206d75636820706f77657200000000000000000000000000610500526104e0506104e0518061050001818260206001820306601f82010390500336823750506308c379a06104a05260206104c0526104e05160206001820306601f82010390506044016104bcfd5b6102a05160e052610da9610500611c4d565b610500516104e0526001633b9aca0c6102a05160a05260805260406080206103405160a05260805260406080200154610500526103605160e052610dee6105406118ae565b61054051610520526001633b9aca0f6103605160a05260805260406080206103405160a05260805260406080200154610540526104e0516104a0518181830110612301578082019050905061040051808210610e4a5781610e4c565b805b90509050610400518082106123015780820390509050633b9aca0c6102a05160a05260805260406080206103405160a052608052604060802055610520516104a0518181830110612301578082019050905061040051808210610eaf5781610eb1565b805b90509050610400518082106123015780820390509050633b9aca0f6103605160a05260805260406080206103405160a052608052604060802055610340516103c05111610f7b576001633b9aca0c6102a05160a05260805260406080206103405160a052608052604060802001805461042051818183011061230157808201905090508155506001633b9aca0f6103605160a05260805260406080206103405160a0526080526040608020018054610420518181830110612301578082019050905081555061104c565b61050051610420518181830110612301578082019050905061038051808210610fa45781610fa6565b805b905090506103805180821061230157808203905090506001633b9aca0c6102a05160a05260805260406080206103405160a052608052604060802001556105405161042051818183011061230157808201905090506103805180821061100c578161100e565b805b905090506103805180821061230157808203905090506001633b9aca0f6103605160a05260805260406080206103405160a052608052604060802001555b426103c05111156110cc57633b9aca0d6102a05160a05260805260406080206103c05160a05260805260406080208054610380518082106123015780820390509050815550633b9aca106103605160a05260805260406080206103c05160a052608052604060802080546103805180821061230157808203905090508155505b633b9aca0d6102a05160a05260805260406080206104605160a052608052604060802080546104205181818301106123015780820190509050815550633b9aca106103605160a05260805260406080206104605160a05260805260406080208054610420518181830110612301578082019050905081555061114f610560611a64565b61056050633b9aca093360a05260805260406080206102a05160a05260805260406080206104205181556104405160018201556104605160028201555042633b9aca0b3360a05260805260406080206102a05160a0526080526040608020557f45ca9a4c8d0119eb329e580d28fe689e484e1be230da8037ade9547d2d25cc91426105605233610580526102a0516105a0526024356105c0526080610560a1005b634e791a3a8118611247576004358060a01c6123015760e052633b9aca0c60e05160a0526080526040608020633b9aca0e60e05160a05260805260406080205460a052608052604060802054610100526020610100f35b6372fdccfa81186112a8576004358060801d81607f1d186123015760e052637735941360e05160a0526080526040608020600160e051633b9aca0081101561230157026377359414015460a052608052604060802054610100526020610100f35b636977ff9281186112d357637735941163773594125460a05260805260406080205460e052602060e0f35b636f214a6a8118611334576004358060801d81607f1d186123015760e052633b9aca0f60e05160a0526080526040608020600160e051633b9aca008110156123015702633b9aca11015460a052608052604060802054610100526020610100f35b63f851a440811861134b5760005460e052602060e0f35b6317f7182a81186113625760015460e052602060e0f35b63fc0c546a81186113795760025460e052602060e0f35b63dfe0503181186113905760035460e052602060e0f35b6349ec3b3f81186113a75760045460e052602060e0f35b639fba03a181186113be5760055460e052602060e0f35b63e93841d081186113d55760065460e052602060e0f35b63d958a8fc811861149e576004358060801d81607f1d186123015760e052610100806020808252600760e05160a052608052604060802081840180828082602082540160c060006003818352015b8260c051602002111561143557611454565b60c05185015460c0516020028501528151600101808352811415611423575b5050505050508051806020830101818260206001820306601f8201039050033682375050805160200160206001820306601f82010390509050905090508101905090509050610100f35b63b053918781186114c8576001600435633b9aca0081101561230157026008015460e052602060e0f35b630f467f988118611532576004358060a01c6123015760e0526024358060a01c6123015761010052633b9aca0960e05160a05260805260406080206101005160a0526080526040608020805461012052600181015461014052600281015461016052506060610120f35b63411e74b5811861156a576004358060a01c6123015760e052633b9aca0a60e05160a052608052604060802054610100526020610100f35b637e418fa081186115c0576004358060a01c6123015760e0526024358060a01c6123015761010052633b9aca0b60e05160a05260805260406080206101005160a052608052604060802054610120526020610120f35b63edba52738118611611576004358060a01c6123015760e052633b9aca0c60e05160a052608052604060802060243560a0526080526040608020805461010052600181015461012052506040610100f35b63a4d7a2508118611649576004358060a01c6123015760e052633b9aca0e60e05160a052608052604060802054610100526020610100f35b63a9b48c01811861169f576004358060801d81607f1d186123015760e052633b9aca0f60e05160a052608052604060802060243560a0526080526040608020805461010052600181015461012052506040610100f35b635a54915881186116cc576001600435633b9aca008110156123015702633b9aca11015460e052602060e0f35b631142916b81186116f457637735941160043560a05260805260406080205460e052602060e0f35b63513872bd811861170e5763773594125460e052602060e0f35b63afd2bb498118611759576004358060801d81607f1d186123015760e052637735941360e05160a052608052604060802060243560a052608052604060802054610100526020610100f35b6351ce6b598118611786576001600435633b9aca0081101561230157026377359414015460e052602060e0f35b6311d9dbd381186117a05763b2d05e145460e052602060e0f35b505b60006000fd5b600160e051633b9aca0081101561230157026377359414015461010052600061010051116117de5760008152506118ac566118ac565b637735941360e05160a05260805260406080206101005160a0526080526040608020546101205261014060006101f4818352015b426101005111156118225761189e565b610100805162093a808181830110612301578082019050905081525061012051637735941360e05160a05260805260406080206101005160a0526080526040608020554261010051111561188e5761010051600160e051633b9aca008110156123015702637735941401555b8151600101808352811415611812575b5050610120518152506118ac565b565b600160e051633b9aca008110156123015702633b9aca11015461010052600061010051116118e4576000815250611a6256611a62565b633b9aca0f60e05160a05260805260406080206101005160a05260805260406080208054610120526001810154610140525061016060006101f4818352015b4261010051111561193357611a54565b610100805162093a80818183011061230157808201905090508152506101405162093a8080820282158284830414171561230157905090506101805261018051610120511161198d576000610120526000610140526119e9565b6101208051610180518082106123015780820390509050815250633b9aca1060e05160a05260805260406080206101005160a0526080526040608020546101a05261014080516101a05180821061230157808203905090508152505b633b9aca0f60e05160a05260805260406080206101005160a05260805260406080206101205181556101405160018201555042610100511115611a445761010051600160e051633b9aca008110156123015702633b9aca1101555b8151600101808352811415611923575b505061012051815250611a62565b565b6377359412546101c0526005546101e052426101c0511115611a9b576101c0805162093a8080821061230157808203905090508152505b63773594116101c05160a0526080526040608020546102005261022060006064818352015b6101e0516102205118611ad257611b0e565b6102205160e052611ae46102406118ae565b610240506102205160e052611afa6102406117a8565b610240508151600101808352811415611ac0575b505061022060006101f4818352015b426101c0511115611b2d57611c42565b6101c0805162093a808181830110612301578082019050905081525060006102005261024060006064818352015b6101e0516102405118611b6d57611c01565b633b9aca0f6102405160a05260805260406080206101c05160a0526080526040608020546102605263773594136102405160a05260805260406080206101c05160a05260805260406080205461028052610200805161026051610280518082028215828483041417156123015790509050818183011061230157808201905090508152508151600101808352811415611b5b575b50506102005163773594116101c05160a052608052604060802055426101c0511115611c32576101c0516377359412555b8151600101808352811415611b1d575b505061020051815250565b633b9aca0e60e05160a0526080526040608020546101005260006101005111611c7e576000815250611df756611df7565b633b9aca0c60e05160a05260805260406080206101005160a05260805260406080208054610120526001810154610140525061016060006101f4818352015b42610100511115611ccd57611de9565b610100805162093a80818183011061230157808201905090508152506101405162093a80808202821582848304141715612301579050905061018052610180516101205111611d2757600061012052600061014052611d83565b6101208051610180518082106123015780820390509050815250633b9aca0d60e05160a05260805260406080206101005160a0526080526040608020546101a05261014080516101a05180821061230157808203905090508152505b633b9aca0c60e05160a05260805260406080206101005160a05260805260406080206101205181556101405160018201555042610100511115611dd95761010051633b9aca0e60e05160a0526080526040608020555b8151600101808352811415611cbd575b505061012051815250611df7565b565b6101005162093a808082049050905062093a8080820282158284830414171561230157905090506101205263773594116101205160a0526080526040608020546101405260006101405111611e56576000815250611f2556611f25565b633b9aca0860e05160a05260805260406080205460018082038060801d81607f1d1861230157905090506101605263773594136101605160a05260805260406080206101205160a05260805260406080205461018052633b9aca0c60e05160a05260805260406080206101205160a0526080526040608020546101a052670de0b6b3a76400006101805180820282158284830414171561230157905090506101a05180820282158284830414171561230157905090506101405180801561230157820490509050815250611f25565b565b6102a05160e052611f396103006117a8565b610300516102e0526102a05160e052611f536103206118ae565b6103205161030052611f66610340611a64565b61034051610320524262093a808181830110612301578082019050905062093a808082049050905062093a8080820282158284830414171561230157905090506103405261032051610300516102c051808202821582848304141715612301579050905081818301106123015780820190509050610300516102e05180820282158284830414171561230157905090508082106123015780820390509050610320526103205163773594116103405160a0526080526040608020556102c05163773594136102a05160a05260805260406080206103405160a052608052604060802055610340516377359412556103405160016102a051633b9aca008110156123015702637735941401557e170bcdc909b6ac6e12d020fe8942256312cdcd555fb6d712899eba56d2f9016102a0516103605261034051610380526102c0516103a052610320516103c0526080610360a1565b633b9aca086102a05160a05260805260406080205460018082038060801d81607f1d1861230157905090506102e0526102a05160e0526120fa610320611c4d565b61032051610300526102e05160e0526121146103406117a8565b61034051610320526102e05160e05261212e6103606118ae565b6103605161034052612141610380611a64565b61038051610360524262093a808181830110612301578082019050905062093a808082049050905062093a808082028215828483041417156123015790509050610380526102c051633b9aca0c6102a05160a05260805260406080206103805160a05260805260406080205561038051633b9aca0e6102a05160a052608052604060802055610340516102c051818183011061230157808201905090506103005180821061230157808203905090506103a0526103a051633b9aca0f6102e05160a05260805260406080206103805160a0526080526040608020556103805160016102e051633b9aca008110156123015702633b9aca110155610360516103a05161032051808202821582848304141715612301579050905081818301106123015780820190509050610340516103205180820282158284830414171561230157905090508082106123015780820390509050610360526103605163773594116103805160a052608052604060802055610380516377359412557f54c0cf3647e6cdb2fc0a7876e60ba77563fceedf2e06c01c597f8dccb9e6bd726102a0516103c052426103e0526102c05161040052610360516104205260806103c0a1565b600080fd
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000006123b0049f904d730db3c36a31167d9d4121fa6b00000000000000000000000019854c9a5ffa8116f48f984bdf946fb9cea9b5f70000000000000000000000001929605b714517b76bb733198e0f3c3d4ab08608000000000000000000000000d340c943ae137ea0bab682a286d1af65e4e39a6b
-----Decoded View---------------
Arg [0] : _token (address): 0x6123B0049F904d730dB3C36a31167D9d4121fA6B
Arg [1] : _voting_escrow (address): 0x19854C9A5fFa8116f48f984bDF946fB9CEa9B5f7
Arg [2] : _veboost_proxy (address): 0x1929605B714517b76bB733198E0f3C3D4ab08608
Arg [3] : _admin (address): 0xD340C943ae137Ea0BAB682a286d1Af65e4E39A6b
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000006123b0049f904d730db3c36a31167d9d4121fa6b
Arg [1] : 00000000000000000000000019854c9a5ffa8116f48f984bdf946fb9cea9b5f7
Arg [2] : 0000000000000000000000001929605b714517b76bb733198e0f3c3d4ab08608
Arg [3] : 000000000000000000000000d340c943ae137ea0bab682a286d1af65e4e39a6b
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.