Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 692 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Vote_for_gauge_w... | 19664558 | 183 days ago | IN | 0 ETH | 0.0013365 | ||||
Vote_for_gauge_w... | 19658961 | 184 days ago | IN | 0 ETH | 0.00259425 | ||||
Vote_for_gauge_w... | 19655818 | 184 days ago | IN | 0 ETH | 0.00263829 | ||||
Vote_for_gauge_w... | 19647480 | 186 days ago | IN | 0 ETH | 0.0039922 | ||||
Vote_for_gauge_w... | 19644185 | 186 days ago | IN | 0 ETH | 0.00265271 | ||||
Vote_for_gauge_w... | 19644170 | 186 days ago | IN | 0 ETH | 0.0030885 | ||||
Vote_for_gauge_w... | 19644167 | 186 days ago | IN | 0 ETH | 0.00347378 | ||||
Vote_for_gauge_w... | 19547517 | 200 days ago | IN | 0 ETH | 0.00406211 | ||||
Vote_for_gauge_w... | 19540014 | 201 days ago | IN | 0 ETH | 0.00393315 | ||||
Vote_for_gauge_w... | 19535311 | 201 days ago | IN | 0 ETH | 0.00934582 | ||||
Vote_for_gauge_w... | 19524765 | 203 days ago | IN | 0 ETH | 0.00445618 | ||||
Vote_for_gauge_w... | 19318217 | 232 days ago | IN | 0 ETH | 0.010892 | ||||
Vote_for_gauge_w... | 19266559 | 239 days ago | IN | 0 ETH | 0.00406868 | ||||
Vote_for_gauge_w... | 19245757 | 242 days ago | IN | 0 ETH | 0.00432495 | ||||
Vote_for_gauge_w... | 19198797 | 249 days ago | IN | 0 ETH | 0.00688571 | ||||
Vote_for_gauge_w... | 19159374 | 254 days ago | IN | 0 ETH | 0.00353919 | ||||
Vote_for_gauge_w... | 19152066 | 255 days ago | IN | 0 ETH | 0.00358314 | ||||
Vote_for_gauge_w... | 19117368 | 260 days ago | IN | 0 ETH | 0.0031555 | ||||
Vote_for_gauge_w... | 19116342 | 260 days ago | IN | 0 ETH | 0.00444007 | ||||
Vote_for_gauge_w... | 19116339 | 260 days ago | IN | 0 ETH | 0.00210316 | ||||
Vote_for_gauge_w... | 19114049 | 260 days ago | IN | 0 ETH | 0.00311097 | ||||
Vote_for_gauge_w... | 19000134 | 276 days ago | IN | 0 ETH | 0.00428819 | ||||
Vote_for_gauge_w... | 18948417 | 284 days ago | IN | 0 ETH | 0.00419501 | ||||
Vote_for_gauge_w... | 18904805 | 290 days ago | IN | 0 ETH | 0.02261013 | ||||
Vote_for_gauge_w... | 18895431 | 291 days ago | IN | 0 ETH | 0.0035823 |
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.2.16
Contract Source Code (Vyper language format)
# @version 0.2.16 """ @title Gauge Controller @author Angle Protocol @license MIT @notice Controls liquidity gauges and the issuance of coins through the gauges """ # Full fork from: # Curve Finance's gauge controller # https://github.com/curvefi/curve-dao-contracts/blob/master/contracts/GaugeController.vy # 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 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 event KilledGauge: addr: address 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) # ANGLE token voting_escrow: public(address) # Voting escrow # 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) @external def __init__(_token: address, _voting_escrow: address, _admin: address): """ @notice Contract constructor @param _token `ERC20ANGLE` contract address @param _voting_escrow `VotingEscrow` contract address """ assert _token != ZERO_ADDRESS assert _voting_escrow != ZERO_ADDRESS assert _admin != ZERO_ADDRESS self.admin = _admin self.token = _token self.voting_escrow = _voting_escrow 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 assert addr != ZERO_ADDRESS # dev: future admin cannot be the 0 address self.future_admin = addr log CommitOwnership(addr) @external def accept_transfer_ownership(): """ @notice Accept a pending ownership transfer """ _admin: address = self.future_admin assert msg.sender == _admin # dev: future admin only self.admin = _admin log ApplyOwnership(_admin) @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 """ 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":"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"},{"name":"KilledGauge","inputs":[{"name":"addr","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_token","type":"address"},{"name":"_voting_escrow","type":"address"},{"name":"_admin","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"commit_transfer_ownership","inputs":[{"name":"addr","type":"address"}],"outputs":[],"gas":39542},{"stateMutability":"nonpayable","type":"function","name":"accept_transfer_ownership","inputs":[],"outputs":[],"gas":39390},{"stateMutability":"view","type":"function","name":"gauge_types","inputs":[{"name":"_addr","type":"address"}],"outputs":[{"name":"","type":"int128"}],"gas":2992},{"stateMutability":"nonpayable","type":"function","name":"add_gauge","inputs":[{"name":"addr","type":"address"},{"name":"gauge_type","type":"int128"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"add_gauge","inputs":[{"name":"addr","type":"address"},{"name":"gauge_type","type":"int128"},{"name":"weight","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"checkpoint","inputs":[],"outputs":[],"gas":18271410417},{"stateMutability":"nonpayable","type":"function","name":"checkpoint_gauge","inputs":[{"name":"addr","type":"address"}],"outputs":[],"gas":18325922441},{"stateMutability":"view","type":"function","name":"gauge_relative_weight","inputs":[{"name":"addr","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"gauge_relative_weight","inputs":[{"name":"addr","type":"address"},{"name":"time","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"gauge_relative_weight_write","inputs":[{"name":"addr","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"gauge_relative_weight_write","inputs":[{"name":"addr","type":"address"},{"name":"time","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"add_type","inputs":[{"name":"_name","type":"string"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"add_type","inputs":[{"name":"_name","type":"string"},{"name":"weight","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"change_type_weight","inputs":[{"name":"type_id","type":"int128"},{"name":"weight","type":"uint256"}],"outputs":[],"gas":36722675182},{"stateMutability":"nonpayable","type":"function","name":"change_gauge_weight","inputs":[{"name":"addr","type":"address"},{"name":"weight","type":"uint256"}],"outputs":[],"gas":36831772257},{"stateMutability":"nonpayable","type":"function","name":"vote_for_gauge_weights","inputs":[{"name":"_gauge_addr","type":"address"},{"name":"_user_weight","type":"uint256"}],"outputs":[],"gas":18380903091},{"stateMutability":"view","type":"function","name":"get_gauge_weight","inputs":[{"name":"addr","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":5290},{"stateMutability":"view","type":"function","name":"get_type_weight","inputs":[{"name":"type_id","type":"int128"}],"outputs":[{"name":"","type":"uint256"}],"gas":5309},{"stateMutability":"view","type":"function","name":"get_total_weight","inputs":[],"outputs":[{"name":"","type":"uint256"}],"gas":5020},{"stateMutability":"view","type":"function","name":"get_weights_sum_per_type","inputs":[{"name":"type_id","type":"int128"}],"outputs":[{"name":"","type":"uint256"}],"gas":5369},{"stateMutability":"view","type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2868},{"stateMutability":"view","type":"function","name":"future_admin","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2898},{"stateMutability":"view","type":"function","name":"token","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2928},{"stateMutability":"view","type":"function","name":"voting_escrow","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2958},{"stateMutability":"view","type":"function","name":"n_gauge_types","inputs":[],"outputs":[{"name":"","type":"int128"}],"gas":2988},{"stateMutability":"view","type":"function","name":"n_gauges","inputs":[],"outputs":[{"name":"","type":"int128"}],"gas":3018},{"stateMutability":"view","type":"function","name":"gauge_type_names","inputs":[{"name":"arg0","type":"int128"}],"outputs":[{"name":"","type":"string"}],"gas":13552},{"stateMutability":"view","type":"function","name":"gauges","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"address"}],"gas":3123},{"stateMutability":"view","type":"function","name":"vote_user_slopes","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"address"}],"outputs":[{"name":"slope","type":"uint256"},{"name":"power","type":"uint256"},{"name":"end","type":"uint256"}],"gas":8138},{"stateMutability":"view","type":"function","name":"vote_user_power","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":3353},{"stateMutability":"view","type":"function","name":"last_user_vote","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":3598},{"stateMutability":"view","type":"function","name":"points_weight","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"uint256"}],"outputs":[{"name":"bias","type":"uint256"},{"name":"slope","type":"uint256"}],"gas":5918},{"stateMutability":"view","type":"function","name":"time_weight","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":3443},{"stateMutability":"view","type":"function","name":"points_sum","inputs":[{"name":"arg0","type":"int128"},{"name":"arg1","type":"uint256"}],"outputs":[{"name":"bias","type":"uint256"},{"name":"slope","type":"uint256"}],"gas":6037},{"stateMutability":"view","type":"function","name":"time_sum","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}],"gas":3333},{"stateMutability":"view","type":"function","name":"points_total","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}],"gas":3433},{"stateMutability":"view","type":"function","name":"time_total","inputs":[],"outputs":[{"name":"","type":"uint256"}],"gas":3348},{"stateMutability":"view","type":"function","name":"points_type_weight","inputs":[{"name":"arg0","type":"int128"},{"name":"arg1","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}],"gas":3767},{"stateMutability":"view","type":"function","name":"time_type_weight","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}],"gas":3453}]
Contract Creation Code
606061278661014039602061278660c03960c05160a01c61278157602060206127860160c03960c05160a01c61278157602060406127860160c03960c05160a01c612781576000610140511815612781576000610160511815612781576000610180511815612781576101805160005561014051600255610160516003554262093a808082049050905062093a80808202821582848304141715612781578090509050905063773594115561276956600436101561000d57611880565b600035601c52600051346126b557636b441a408114156100865760043560a01c6126b5576000543314156126b557600060043518156126b5576004356001557f2f56810a6bf40af059b96d3aea4db54081f378029a518390491093a7b67032e961014080808060043581525050602090509050610140a1005b63e5ea47b88114156100e65760015461014052610140513314156126b557610140516000557febee2d5739011062cb4f14113f3b36bf0ffe3da5c0568f64189d1012a11891056101608080806101405181525050602090509050610160a1005b633f9095b78114156101475760043560a01c6126b557633b9aca0760043560e05260c052604060c020546101405260006101405118156126b55761014051600180820380607f1d8160801d14156126b5578090509050905060005260206000f35b633a04f90081141561015e5760006101405261017f565b6318dfe92181141561017a57602060446101403760005061017f565b6104e7565b60043560a01c6126b55760243580607f1d8160801d14156126b557809050506000543314156126b5576000602435126101be57600454602435126101c1565b60005b156126b557633b9aca0760043560e05260c052604060c020546126b5576005546101605261016051600180820180607f1d8160801d14156126b55780905090509050600555600435600161016051633b9aca008110156126b5570260070155602435600180820180607f1d8160801d14156126b55780905090509050633b9aca0760043560e05260c052604060c020554262093a8081818301106126b5578082019050905062093a808082049050905062093a808082028215828483041417156126b5578090509050905061018052600061014051111561043b576101405161016051610180516101a0516024356101c0526101c05160065801611886565b610220526101a052610180526101605261014052610220516101a0526101405161016051610180516101a0516101c0516024356101e0526101e051600658016119a2565b610240526101c0526101a052610180526101605261014052610240516101c0526101405161016051610180516101a0516101c0516101e05160065801611b79565b610200526101e0526101c0526101a052610180526101605261014052610200516101e052610140516101c05181818301106126b55780820190509050633b9aca0e60243560e05260c052604060c0206101805160e05260c052604060c02055610180516001602435633b9aca008110156126b55702633b9aca1001556101e0516101a051610140518082028215828483041417156126b5578090509050905081818301106126b5578082019050905063773594106101805160e05260c052604060c020556101805163773594115561014051633b9aca0b60043560e05260c052604060c0206101805160e05260c052604060c020555b6001602435633b9aca008110156126b55702633b9aca10015461047657610180516001602435633b9aca008110156126b55702633b9aca1001555b61018051633b9aca0d60043560e05260c052604060c020557ffd55b3191f9c9dd92f4f134dd700e7d76f6a0c836a08687023d6d38f03ebd8776101a080808060043581525050602081019050808060243581525050602081019050808061014051815250506060905090506101a0a1005b63c2c4c5c18114156105065760065801611b79565b6101405261014050005b63615e523781141561054b5760043560a01c6126b557600435610140526101405160065801611dd3565b6101a0526101a05060065801611b79565b6101405261014050005b636207d866811415610561574261014052610582565b63d3078c9481141561057d576020602461014037600050610582565b6105c5565b60043560a01c6126b55761014051600435610160526101405161018052610180516101605160065801611fa0565b6101e052610140526101e05160005260206000f35b6395cfcec38114156105db5742610140526105fc565b636472eee18114156105f75760206024610140376000506105fc565b61067c565b60043560a01c6126b55761014051600435610160526101605160065801611dd3565b6101c052610140526101c0506101405160065801611b79565b61016052610140526101605061014051600435610160526101405161018052610180516101605160065801611fa0565b6101e052610140526101e05160005260206000f35b6326e56d5e8114156106935760006101c0526106b4565b6392d0d2328114156106af57602060246101c0376000506106b4565b61085f565b606060043560040161014037604060043560040135116126b5576000543314156126b5576004546101e0526101408060066101e05160e05260c052604060c020602082510161012060006003818352015b826101205160200211156107185761073a565b61012051602002850151610120518501555b8151600101808352811415610705575b5050505050506101e051600180820180607f1d8160801d14156126b5578090509050905060045560006101c051181561085d576101405161016051610180516101a0516101c0516101e0516101e051610200526101c051610220526102205161020051600658016120f2565b6101e0526101c0526101a0526101805261016052610140526000507f6fbe76157c712f16b5a3c44ed48baa04e3450bc3fab0c020e848aca72bbccc8461020080604080825280830180610140805160200180838284600060045af1156126b55750508051806020830101818260206001820306601f8201039050033682375050805160200160206001820306601f8201039050905090508101905060208201915081806101e0518152505080905090509050610200a15b005b63db1ca2608114156108ae5760043580607f1d8160801d14156126b557809050506000543314156126b55760043561014052602435610160526101605161014051600658016120f2565b600050005b63d4d2646e8114156108f25760043560a01c6126b5576000543314156126b5576004356101405260243561016052610160516101405160065801612347565b600050005b63d71363288114156112cf5760043560a01c6126b5576003546101405260206102006024637c74a17461018052336101a05261019c610140515afa156126b557601f3d11156126b55760005061020051600081126126b557610160526020610220602463adc635896101a052336101c0526101bc610140515afa156126b557601f3d11156126b55760005061022051610180526005546101a0524262093a8081818301106126b5578082019050905062093a808082049050905062093a808082028215828483041417156126b557809050905090506101c0526101c0516101805111610a1d576308c379a06101e0526020610200526020610220527f596f757220746f6b656e206c6f636b206578706972657320746f6f20736f6f6e610240526102205060646101fcfd5b600060243510610a34576127106024351115610a37565b60005b610a80576308c379a06101e052602061020052601e610220527f596f75207573656420616c6c20796f757220766f74696e6720706f7765720000610240526102205060646101fcfd5b633b9aca0a3360e05260c052604060c02060043560e05260c052604060c02054620d2f0081818301106126b55780820190509050421015610b00576308c379a06101e0526020610200526014610220527f43616e6e6f7420766f746520736f206f6674656e000000000000000000000000610240526102205060646101fcfd5b633b9aca0760043560e05260c052604060c02054600180820380607f1d8160801d14156126b557809050905090506101e05260006101e0511215610b83576308c379a061020052602061022052600f610240527f4761756765206e6f7420616464656400000000000000000000000000000000006102605261024050606461021cfd5b610200633b9aca083360e05260c052604060c02060043560e05260c052604060c02080548252600181015482602001526002810154826040015250506000610260526101c051610240511115610bee57610240516101c0518082106126b55780820390509050610260525b61020051610260518082028215828483041417156126b55780905090509050610280526102a0610160516024358082028215828483041417156126b55780905090509050612710808204905090508152602435816020015261018051816040015250610180516101c0518082106126b55780820390509050610300526102a051610300518082028215828483041417156126b5578090509050905061032052633b9aca093360e05260c052604060c0205461034052610340516102c05181818301106126b55780820190509050610220518082106126b557808203905090506103405261034051633b9aca093360e05260c052604060c0205560006103405110610d0057612710610340511115610d03565b60005b610d4c576308c379a06103605260206103805260136103a0527f5573656420746f6f206d75636820706f776572000000000000000000000000006103c0526103a050606461037cfd5b610140610380525b61038051516020610380510161038052610380610380511015610d7657610d54565b6004356103a0526103a05160065801611dd3565b61040052610360610380525b610380515260206103805103610380526101406103805110610db757610d96565b61040051610360526001633b9aca0b60043560e05260c052604060c0206101c05160e05260c052604060c0200154610380526101406103c0525b6103c0515160206103c051016103c0526103c06103c0511015610e1357610df1565b6101e0516103e0526103e051600658016119a2565b610440526103a06103c0525b6103c0515260206103c051036103c0526101406103c05110610e5557610e34565b610440516103a0526001633b9aca0e6101e05160e05260c052604060c0206101c05160e05260c052604060c02001546103c052610360516103205181818301106126b557808201905090506102805180821015610eb25780610eb4565b815b90509050610280518082106126b55780820390509050633b9aca0b60043560e05260c052604060c0206101c05160e05260c052604060c020556103a0516103205181818301106126b557808201905090506102805180821015610f175780610f19565b815b90509050610280518082106126b55780820390509050633b9aca0e6101e05160e05260c052604060c0206101c05160e05260c052604060c020556101c05161024051111561103757610380516102a05181818301106126b557808201905090506102005180821015610f8b5780610f8d565b815b90509050610200518082106126b557808203905090506001633b9aca0b60043560e05260c052604060c0206101c05160e05260c052604060c02001556103c0516102a05181818301106126b557808201905090506102005180821015610ff35780610ff5565b815b90509050610200518082106126b557808203905090506001633b9aca0e6101e05160e05260c052604060c0206101c05160e05260c052604060c02001556110b5565b6001633b9aca0b60043560e05260c052604060c0206101c05160e05260c052604060c0200180546102a05181818301106126b557808201905090508155506001633b9aca0e6101e05160e05260c052604060c0206101c05160e05260c052604060c0200180546102a05181818301106126b557808201905090508155505b4261024051111561113457633b9aca0c60043560e05260c052604060c0206102405160e05260c052604060c0208054610200518082106126b55780820390509050815550633b9aca0f6101e05160e05260c052604060c0206102405160e05260c052604060c0208054610200518082106126b557808203905090508155505b633b9aca0c60043560e05260c052604060c0206102e05160e05260c052604060c02080546102a05181818301106126b55780820190509050815550633b9aca0f6101e05160e05260c052604060c0206102e05160e05260c052604060c02080546102a05181818301106126b557808201905090508155506101406103e0525b6103e0515160206103e051016103e0526103e06103e05110156111d5576111b3565b60065801611b79565b610400526103c06103e0525b6103e0515260206103e051036103e0526101406103e0511061120b576111ea565b61040050633b9aca083360e05260c052604060c02060043560e05260c052604060c0206102a0805182558060200151600183015580604001516002830155505042633b9aca0a3360e05260c052604060c02060043560e05260c052604060c020557f45ca9a4c8d0119eb329e580d28fe689e484e1be230da8037ade9547d2d25cc916103e08080804281525050602081019050808033815250506020810190508080600435815250506020810190508080602435815250506080905090506103e0a1005b634e791a3a8114156113215760043560a01c6126b557633b9aca0b60043560e05260c052604060c020633b9aca0d60043560e05260c052604060c0205460e05260c052604060c0205460005260206000f35b6372fdccfa8114156113835760043580607f1d8160801d14156126b55780905050637735941260043560e05260c052604060c0206001600435633b9aca008110156126b557026377359413015460e05260c052604060c0205460005260206000f35b636977ff928114156113af57637735941063773594115460e05260c052604060c0205460005260206000f35b636f214a6a8114156114115760043580607f1d8160801d14156126b55780905050633b9aca0e60043560e05260c052604060c0206001600435633b9aca008110156126b55702633b9aca10015460e05260c052604060c0205460005260206000f35b63f851a4408114156114295760005460005260206000f35b6317f7182a8114156114415760015460005260206000f35b63fc0c546a8114156114595760025460005260206000f35b63dfe050318114156114715760035460005260206000f35b639fba03a18114156114895760045460005260206000f35b63e93841d08114156114a15760055460005260206000f35b63d958a8fc8114156115615760043580607f1d8160801d14156126b55780905050600660043560e05260c052604060c02080610180602082540161012060006003818352015b826101205160200211156114fa5761151c565b61012051850154610120516020028501525b81516001018083528114156114e7575b50505050505061018051806101a001818260206001820306601f82010390500336823750506020610160526040610180510160206001820306601f8201039050610160f35b63b053918781141561158c576001600435633b9aca008110156126b557026007015460005260206000f35b630f467f9881141561160c5760043560a01c6126b55760243560a01c6126b557633b9aca0860043560e05260c052604060c02060243560e05260c052604060c0206101408080808454815250506020810190508080600185015481525050602081019050808060028501548152505060609050905060c05260c051610140f35b63411e74b581141561163f5760043560a01c6126b557633b9aca0960043560e05260c052604060c0205460005260206000f35b637e418fa081141561168a5760043560a01c6126b55760243560a01c6126b557633b9aca0a60043560e05260c052604060c02060243560e05260c052604060c0205460005260206000f35b63edba52738114156116ef5760043560a01c6126b557633b9aca0b60043560e05260c052604060c02060243560e05260c052604060c020610140808080845481525050602081019050808060018501548152505060409050905060c05260c051610140f35b63a4d7a2508114156117225760043560a01c6126b557633b9aca0d60043560e05260c052604060c0205460005260206000f35b63a9b48c018114156117925760043580607f1d8160801d14156126b55780905050633b9aca0e60043560e05260c052604060c02060243560e05260c052604060c020610140808080845481525050602081019050808060018501548152505060409050905060c05260c051610140f35b635a5491588114156117c0576001600435633b9aca008110156126b55702633b9aca10015460005260206000f35b631142916b8114156117e957637735941060043560e05260c052604060c0205460005260206000f35b63513872bd8114156118045763773594115460005260206000f35b63afd2bb498114156118505760043580607f1d8160801d14156126b55780905050637735941260043560e05260c052604060c02060243560e05260c052604060c0205460005260206000f35b6351ce6b5981141561187e576001600435633b9aca008110156126b557026377359413015460005260206000f35b505b60006000fd5b6101605261014052600161014051633b9aca008110156126b55702637735941301546101805260006101805111156119925763773594126101405160e05260c052604060c0206101805160e05260c052604060c020546101a0526101c060006101f4818352015b426101805111156118fd5761197c565b610180805162093a8081818301106126b557808201905090508152506101a05163773594126101405160e05260c052604060c0206101805160e05260c052604060c020554261018051111561196b5761018051600161014051633b9aca008110156126b55702637735941301555b5b81516001018083528114156118ed575b50506101a05160005260005161016051566119a0565b600060005260005161016051565b005b6101605261014052600161014051633b9aca008110156126b55702633b9aca100154610180526000610180511115611b69576101a0633b9aca0e6101405160e05260c052604060c0206101805160e05260c052604060c020805482526001810154826020015250506101e060006101f4818352015b42610180511115611a2757611b53565b610180805162093a8081818301106126b557808201905090508152506101c05162093a808082028215828483041417156126b5578090509050905061020052610200516101a0511115611ad5576101a08051610200518082106126b55780820390509050815250633b9aca0f6101405160e05260c052604060c0206101805160e05260c052604060c02054610220526101c08051610220518082106126b55780820390509050815250611ae2565b60006101a05260006101c0525b633b9aca0e6101405160e05260c052604060c0206101805160e05260c052604060c0206101a08051825580602001516001830155505042610180511115611b425761018051600161014051633b9aca008110156126b55702633b9aca1001555b5b8151600101808352811415611a17575b50506101a0516000526000516101605156611b77565b600060005260005161016051565b005b61014052637735941154610160526004546101805242610160511115611bb457610160805162093a808082106126b557808203905090508152505b63773594106101605160e05260c052604060c020546101a0526101c060006064818352015b610180516101c0511415611bec57611c87565b6101405161016051610180516101a0516101c0516101c0516101e0526101e051600658016119a2565b610240526101c0526101a052610180526101605261014052610240506101405161016051610180516101a0516101c0516101c0516101e0526101e05160065801611886565b610240526101c0526101a052610180526101605261014052610240505b8151600101808352811415611bd9575b50506101c060006101f4818352015b42610160511115611ca657611dc1565b610160805162093a8081818301106126b5578082019050905081525060006101a0526101e060006064818352015b610180516101e0511415611ce757611d7f565b633b9aca0e6101e05160e05260c052604060c0206101605160e05260c052604060c020546102005263773594126101e05160e05260c052604060c0206101605160e05260c052604060c02054610220526101a0805161020051610220518082028215828483041417156126b5578090509050905081818301106126b557808201905090508152505b8151600101808352811415611cd4575b50506101a05163773594106101605160e05260c052604060c0205542610160511115611db057610160516377359411555b5b8151600101808352811415611c96575b50506101a05160005260005161014051565b6101605261014052633b9aca0d6101405160e05260c052604060c02054610180526000610180511115611f90576101a0633b9aca0b6101405160e05260c052604060c0206101805160e05260c052604060c020805482526001810154826020015250506101e060006101f4818352015b42610180511115611e5357611f7a565b610180805162093a8081818301106126b557808201905090508152506101c05162093a808082028215828483041417156126b5578090509050905061020052610200516101a0511115611f01576101a08051610200518082106126b55780820390509050815250633b9aca0c6101405160e05260c052604060c0206101805160e05260c052604060c02054610220526101c08051610220518082106126b55780820390509050815250611f0e565b60006101a05260006101c0525b633b9aca0b6101405160e05260c052604060c0206101805160e05260c052604060c0206101a08051825580602001516001830155505042610180511115611f695761018051633b9aca0d6101405160e05260c052604060c020555b5b8151600101808352811415611e43575b50506101a0516000526000516101605156611f9e565b600060005260005161016051565b005b6101805261014052610160526101605162093a808082049050905062093a808082028215828483041417156126b557809050905090506101a05263773594106101a05160e05260c052604060c020546101c05260006101c05111156120e257633b9aca076101405160e05260c052604060c02054600180820380607f1d8160801d14156126b557809050905090506101e05263773594126101e05160e05260c052604060c0206101a05160e05260c052604060c0205461020052633b9aca0b6101405160e05260c052604060c0206101a05160e05260c052604060c0205461022052670de0b6b3a7640000610200518082028215828483041417156126b55780905090509050610220518082028215828483041417156126b557809050905090506101c0518080156126b55782049050905060005260005161018051566120f0565b600060005260005161018051565b005b6101805261014052610160526101405161016051610180516101a051610140516101c0526101c05160065801611886565b610220526101a052610180526101605261014052610220516101a0526101405161016051610180516101a0516101c051610140516101e0526101e051600658016119a2565b610240526101c0526101a052610180526101605261014052610240516101c0526101405161016051610180516101a0516101c0516101e05160065801611b79565b610200526101e0526101c0526101a052610180526101605261014052610200516101e0524262093a8081818301106126b5578082019050905062093a808082049050905062093a808082028215828483041417156126b55780905090509050610200526101e0516101c051610160518082028215828483041417156126b5578090509050905081818301106126b557808201905090506101c0516101a0518082028215828483041417156126b557809050905090508082106126b557808203905090506101e0526101e05163773594106102005160e05260c052604060c020556101605163773594126101405160e05260c052604060c0206102005160e05260c052604060c020556102005163773594115561020051600161014051633b9aca008110156126b55702637735941301557e170bcdc909b6ac6e12d020fe8942256312cdcd555fb6d712899eba56d2f9016102208080806101405181525050602081019050808061020051815250506020810190508080610160518152505060208101905080806101e05181525050608090509050610220a161018051565b610180526101405261016052633b9aca076101405160e05260c052604060c02054600180820380607f1d8160801d14156126b557809050905090506101a0526101405161016051610180516101a0516101c051610140516101e0526101e05160065801611dd3565b610240526101c0526101a052610180526101605261014052610240516101c0526101405161016051610180516101a0516101c0516101e0516101a051610200526102005160065801611886565b610260526101e0526101c0526101a052610180526101605261014052610260516101e0526101405161016051610180516101a0516101c0516101e051610200516101a0516102205261022051600658016119a2565b61028052610200526101e0526101c0526101a05261018052610160526101405261028051610200526101405161016051610180516101a0516101c0516101e051610200516102205160065801611b79565b6102405261022052610200526101e0526101c0526101a05261018052610160526101405261024051610220524262093a8081818301106126b5578082019050905062093a808082049050905062093a808082028215828483041417156126b557809050905090506102405261016051633b9aca0b6101405160e05260c052604060c0206102405160e05260c052604060c0205561024051633b9aca0d6101405160e05260c052604060c02055610200516101605181818301106126b557808201905090506101c0518082106126b557808203905090506102605261026051633b9aca0e6101a05160e05260c052604060c0206102405160e05260c052604060c020556102405160016101a051633b9aca008110156126b55702633b9aca10015561022051610260516101e0518082028215828483041417156126b5578090509050905081818301106126b55780820190509050610200516101e0518082028215828483041417156126b557809050905090508082106126b55780820390509050610220526102205163773594106102405160e05260c052604060c02055610240516377359411557f54c0cf3647e6cdb2fc0a7876e60ba77563fceedf2e06c01c597f8dccb9e6bd726102808080806101405181525050602081019050808042815250506020810190508080610160518152505060208101905080806102205181525050608090509050610280a161018051565b600080fd5b6100af612769036100af6000396100af612769036000f35b600080fd00000000000000000000000031429d1856ad1377a8a0079410b297e1a9e214c20000000000000000000000000c462dbb9ec8cd1630f1728b2cfd2769d09f0dd50000000000000000000000002acd062cf718c87c9a58382f01c5b51a0f287c8d
Deployed Bytecode
0x600436101561000d57611880565b600035601c52600051346126b557636b441a408114156100865760043560a01c6126b5576000543314156126b557600060043518156126b5576004356001557f2f56810a6bf40af059b96d3aea4db54081f378029a518390491093a7b67032e961014080808060043581525050602090509050610140a1005b63e5ea47b88114156100e65760015461014052610140513314156126b557610140516000557febee2d5739011062cb4f14113f3b36bf0ffe3da5c0568f64189d1012a11891056101608080806101405181525050602090509050610160a1005b633f9095b78114156101475760043560a01c6126b557633b9aca0760043560e05260c052604060c020546101405260006101405118156126b55761014051600180820380607f1d8160801d14156126b5578090509050905060005260206000f35b633a04f90081141561015e5760006101405261017f565b6318dfe92181141561017a57602060446101403760005061017f565b6104e7565b60043560a01c6126b55760243580607f1d8160801d14156126b557809050506000543314156126b5576000602435126101be57600454602435126101c1565b60005b156126b557633b9aca0760043560e05260c052604060c020546126b5576005546101605261016051600180820180607f1d8160801d14156126b55780905090509050600555600435600161016051633b9aca008110156126b5570260070155602435600180820180607f1d8160801d14156126b55780905090509050633b9aca0760043560e05260c052604060c020554262093a8081818301106126b5578082019050905062093a808082049050905062093a808082028215828483041417156126b5578090509050905061018052600061014051111561043b576101405161016051610180516101a0516024356101c0526101c05160065801611886565b610220526101a052610180526101605261014052610220516101a0526101405161016051610180516101a0516101c0516024356101e0526101e051600658016119a2565b610240526101c0526101a052610180526101605261014052610240516101c0526101405161016051610180516101a0516101c0516101e05160065801611b79565b610200526101e0526101c0526101a052610180526101605261014052610200516101e052610140516101c05181818301106126b55780820190509050633b9aca0e60243560e05260c052604060c0206101805160e05260c052604060c02055610180516001602435633b9aca008110156126b55702633b9aca1001556101e0516101a051610140518082028215828483041417156126b5578090509050905081818301106126b5578082019050905063773594106101805160e05260c052604060c020556101805163773594115561014051633b9aca0b60043560e05260c052604060c0206101805160e05260c052604060c020555b6001602435633b9aca008110156126b55702633b9aca10015461047657610180516001602435633b9aca008110156126b55702633b9aca1001555b61018051633b9aca0d60043560e05260c052604060c020557ffd55b3191f9c9dd92f4f134dd700e7d76f6a0c836a08687023d6d38f03ebd8776101a080808060043581525050602081019050808060243581525050602081019050808061014051815250506060905090506101a0a1005b63c2c4c5c18114156105065760065801611b79565b6101405261014050005b63615e523781141561054b5760043560a01c6126b557600435610140526101405160065801611dd3565b6101a0526101a05060065801611b79565b6101405261014050005b636207d866811415610561574261014052610582565b63d3078c9481141561057d576020602461014037600050610582565b6105c5565b60043560a01c6126b55761014051600435610160526101405161018052610180516101605160065801611fa0565b6101e052610140526101e05160005260206000f35b6395cfcec38114156105db5742610140526105fc565b636472eee18114156105f75760206024610140376000506105fc565b61067c565b60043560a01c6126b55761014051600435610160526101605160065801611dd3565b6101c052610140526101c0506101405160065801611b79565b61016052610140526101605061014051600435610160526101405161018052610180516101605160065801611fa0565b6101e052610140526101e05160005260206000f35b6326e56d5e8114156106935760006101c0526106b4565b6392d0d2328114156106af57602060246101c0376000506106b4565b61085f565b606060043560040161014037604060043560040135116126b5576000543314156126b5576004546101e0526101408060066101e05160e05260c052604060c020602082510161012060006003818352015b826101205160200211156107185761073a565b61012051602002850151610120518501555b8151600101808352811415610705575b5050505050506101e051600180820180607f1d8160801d14156126b5578090509050905060045560006101c051181561085d576101405161016051610180516101a0516101c0516101e0516101e051610200526101c051610220526102205161020051600658016120f2565b6101e0526101c0526101a0526101805261016052610140526000507f6fbe76157c712f16b5a3c44ed48baa04e3450bc3fab0c020e848aca72bbccc8461020080604080825280830180610140805160200180838284600060045af1156126b55750508051806020830101818260206001820306601f8201039050033682375050805160200160206001820306601f8201039050905090508101905060208201915081806101e0518152505080905090509050610200a15b005b63db1ca2608114156108ae5760043580607f1d8160801d14156126b557809050506000543314156126b55760043561014052602435610160526101605161014051600658016120f2565b600050005b63d4d2646e8114156108f25760043560a01c6126b5576000543314156126b5576004356101405260243561016052610160516101405160065801612347565b600050005b63d71363288114156112cf5760043560a01c6126b5576003546101405260206102006024637c74a17461018052336101a05261019c610140515afa156126b557601f3d11156126b55760005061020051600081126126b557610160526020610220602463adc635896101a052336101c0526101bc610140515afa156126b557601f3d11156126b55760005061022051610180526005546101a0524262093a8081818301106126b5578082019050905062093a808082049050905062093a808082028215828483041417156126b557809050905090506101c0526101c0516101805111610a1d576308c379a06101e0526020610200526020610220527f596f757220746f6b656e206c6f636b206578706972657320746f6f20736f6f6e610240526102205060646101fcfd5b600060243510610a34576127106024351115610a37565b60005b610a80576308c379a06101e052602061020052601e610220527f596f75207573656420616c6c20796f757220766f74696e6720706f7765720000610240526102205060646101fcfd5b633b9aca0a3360e05260c052604060c02060043560e05260c052604060c02054620d2f0081818301106126b55780820190509050421015610b00576308c379a06101e0526020610200526014610220527f43616e6e6f7420766f746520736f206f6674656e000000000000000000000000610240526102205060646101fcfd5b633b9aca0760043560e05260c052604060c02054600180820380607f1d8160801d14156126b557809050905090506101e05260006101e0511215610b83576308c379a061020052602061022052600f610240527f4761756765206e6f7420616464656400000000000000000000000000000000006102605261024050606461021cfd5b610200633b9aca083360e05260c052604060c02060043560e05260c052604060c02080548252600181015482602001526002810154826040015250506000610260526101c051610240511115610bee57610240516101c0518082106126b55780820390509050610260525b61020051610260518082028215828483041417156126b55780905090509050610280526102a0610160516024358082028215828483041417156126b55780905090509050612710808204905090508152602435816020015261018051816040015250610180516101c0518082106126b55780820390509050610300526102a051610300518082028215828483041417156126b5578090509050905061032052633b9aca093360e05260c052604060c0205461034052610340516102c05181818301106126b55780820190509050610220518082106126b557808203905090506103405261034051633b9aca093360e05260c052604060c0205560006103405110610d0057612710610340511115610d03565b60005b610d4c576308c379a06103605260206103805260136103a0527f5573656420746f6f206d75636820706f776572000000000000000000000000006103c0526103a050606461037cfd5b610140610380525b61038051516020610380510161038052610380610380511015610d7657610d54565b6004356103a0526103a05160065801611dd3565b61040052610360610380525b610380515260206103805103610380526101406103805110610db757610d96565b61040051610360526001633b9aca0b60043560e05260c052604060c0206101c05160e05260c052604060c0200154610380526101406103c0525b6103c0515160206103c051016103c0526103c06103c0511015610e1357610df1565b6101e0516103e0526103e051600658016119a2565b610440526103a06103c0525b6103c0515260206103c051036103c0526101406103c05110610e5557610e34565b610440516103a0526001633b9aca0e6101e05160e05260c052604060c0206101c05160e05260c052604060c02001546103c052610360516103205181818301106126b557808201905090506102805180821015610eb25780610eb4565b815b90509050610280518082106126b55780820390509050633b9aca0b60043560e05260c052604060c0206101c05160e05260c052604060c020556103a0516103205181818301106126b557808201905090506102805180821015610f175780610f19565b815b90509050610280518082106126b55780820390509050633b9aca0e6101e05160e05260c052604060c0206101c05160e05260c052604060c020556101c05161024051111561103757610380516102a05181818301106126b557808201905090506102005180821015610f8b5780610f8d565b815b90509050610200518082106126b557808203905090506001633b9aca0b60043560e05260c052604060c0206101c05160e05260c052604060c02001556103c0516102a05181818301106126b557808201905090506102005180821015610ff35780610ff5565b815b90509050610200518082106126b557808203905090506001633b9aca0e6101e05160e05260c052604060c0206101c05160e05260c052604060c02001556110b5565b6001633b9aca0b60043560e05260c052604060c0206101c05160e05260c052604060c0200180546102a05181818301106126b557808201905090508155506001633b9aca0e6101e05160e05260c052604060c0206101c05160e05260c052604060c0200180546102a05181818301106126b557808201905090508155505b4261024051111561113457633b9aca0c60043560e05260c052604060c0206102405160e05260c052604060c0208054610200518082106126b55780820390509050815550633b9aca0f6101e05160e05260c052604060c0206102405160e05260c052604060c0208054610200518082106126b557808203905090508155505b633b9aca0c60043560e05260c052604060c0206102e05160e05260c052604060c02080546102a05181818301106126b55780820190509050815550633b9aca0f6101e05160e05260c052604060c0206102e05160e05260c052604060c02080546102a05181818301106126b557808201905090508155506101406103e0525b6103e0515160206103e051016103e0526103e06103e05110156111d5576111b3565b60065801611b79565b610400526103c06103e0525b6103e0515260206103e051036103e0526101406103e0511061120b576111ea565b61040050633b9aca083360e05260c052604060c02060043560e05260c052604060c0206102a0805182558060200151600183015580604001516002830155505042633b9aca0a3360e05260c052604060c02060043560e05260c052604060c020557f45ca9a4c8d0119eb329e580d28fe689e484e1be230da8037ade9547d2d25cc916103e08080804281525050602081019050808033815250506020810190508080600435815250506020810190508080602435815250506080905090506103e0a1005b634e791a3a8114156113215760043560a01c6126b557633b9aca0b60043560e05260c052604060c020633b9aca0d60043560e05260c052604060c0205460e05260c052604060c0205460005260206000f35b6372fdccfa8114156113835760043580607f1d8160801d14156126b55780905050637735941260043560e05260c052604060c0206001600435633b9aca008110156126b557026377359413015460e05260c052604060c0205460005260206000f35b636977ff928114156113af57637735941063773594115460e05260c052604060c0205460005260206000f35b636f214a6a8114156114115760043580607f1d8160801d14156126b55780905050633b9aca0e60043560e05260c052604060c0206001600435633b9aca008110156126b55702633b9aca10015460e05260c052604060c0205460005260206000f35b63f851a4408114156114295760005460005260206000f35b6317f7182a8114156114415760015460005260206000f35b63fc0c546a8114156114595760025460005260206000f35b63dfe050318114156114715760035460005260206000f35b639fba03a18114156114895760045460005260206000f35b63e93841d08114156114a15760055460005260206000f35b63d958a8fc8114156115615760043580607f1d8160801d14156126b55780905050600660043560e05260c052604060c02080610180602082540161012060006003818352015b826101205160200211156114fa5761151c565b61012051850154610120516020028501525b81516001018083528114156114e7575b50505050505061018051806101a001818260206001820306601f82010390500336823750506020610160526040610180510160206001820306601f8201039050610160f35b63b053918781141561158c576001600435633b9aca008110156126b557026007015460005260206000f35b630f467f9881141561160c5760043560a01c6126b55760243560a01c6126b557633b9aca0860043560e05260c052604060c02060243560e05260c052604060c0206101408080808454815250506020810190508080600185015481525050602081019050808060028501548152505060609050905060c05260c051610140f35b63411e74b581141561163f5760043560a01c6126b557633b9aca0960043560e05260c052604060c0205460005260206000f35b637e418fa081141561168a5760043560a01c6126b55760243560a01c6126b557633b9aca0a60043560e05260c052604060c02060243560e05260c052604060c0205460005260206000f35b63edba52738114156116ef5760043560a01c6126b557633b9aca0b60043560e05260c052604060c02060243560e05260c052604060c020610140808080845481525050602081019050808060018501548152505060409050905060c05260c051610140f35b63a4d7a2508114156117225760043560a01c6126b557633b9aca0d60043560e05260c052604060c0205460005260206000f35b63a9b48c018114156117925760043580607f1d8160801d14156126b55780905050633b9aca0e60043560e05260c052604060c02060243560e05260c052604060c020610140808080845481525050602081019050808060018501548152505060409050905060c05260c051610140f35b635a5491588114156117c0576001600435633b9aca008110156126b55702633b9aca10015460005260206000f35b631142916b8114156117e957637735941060043560e05260c052604060c0205460005260206000f35b63513872bd8114156118045763773594115460005260206000f35b63afd2bb498114156118505760043580607f1d8160801d14156126b55780905050637735941260043560e05260c052604060c02060243560e05260c052604060c0205460005260206000f35b6351ce6b5981141561187e576001600435633b9aca008110156126b557026377359413015460005260206000f35b505b60006000fd5b6101605261014052600161014051633b9aca008110156126b55702637735941301546101805260006101805111156119925763773594126101405160e05260c052604060c0206101805160e05260c052604060c020546101a0526101c060006101f4818352015b426101805111156118fd5761197c565b610180805162093a8081818301106126b557808201905090508152506101a05163773594126101405160e05260c052604060c0206101805160e05260c052604060c020554261018051111561196b5761018051600161014051633b9aca008110156126b55702637735941301555b5b81516001018083528114156118ed575b50506101a05160005260005161016051566119a0565b600060005260005161016051565b005b6101605261014052600161014051633b9aca008110156126b55702633b9aca100154610180526000610180511115611b69576101a0633b9aca0e6101405160e05260c052604060c0206101805160e05260c052604060c020805482526001810154826020015250506101e060006101f4818352015b42610180511115611a2757611b53565b610180805162093a8081818301106126b557808201905090508152506101c05162093a808082028215828483041417156126b5578090509050905061020052610200516101a0511115611ad5576101a08051610200518082106126b55780820390509050815250633b9aca0f6101405160e05260c052604060c0206101805160e05260c052604060c02054610220526101c08051610220518082106126b55780820390509050815250611ae2565b60006101a05260006101c0525b633b9aca0e6101405160e05260c052604060c0206101805160e05260c052604060c0206101a08051825580602001516001830155505042610180511115611b425761018051600161014051633b9aca008110156126b55702633b9aca1001555b5b8151600101808352811415611a17575b50506101a0516000526000516101605156611b77565b600060005260005161016051565b005b61014052637735941154610160526004546101805242610160511115611bb457610160805162093a808082106126b557808203905090508152505b63773594106101605160e05260c052604060c020546101a0526101c060006064818352015b610180516101c0511415611bec57611c87565b6101405161016051610180516101a0516101c0516101c0516101e0526101e051600658016119a2565b610240526101c0526101a052610180526101605261014052610240506101405161016051610180516101a0516101c0516101c0516101e0526101e05160065801611886565b610240526101c0526101a052610180526101605261014052610240505b8151600101808352811415611bd9575b50506101c060006101f4818352015b42610160511115611ca657611dc1565b610160805162093a8081818301106126b5578082019050905081525060006101a0526101e060006064818352015b610180516101e0511415611ce757611d7f565b633b9aca0e6101e05160e05260c052604060c0206101605160e05260c052604060c020546102005263773594126101e05160e05260c052604060c0206101605160e05260c052604060c02054610220526101a0805161020051610220518082028215828483041417156126b5578090509050905081818301106126b557808201905090508152505b8151600101808352811415611cd4575b50506101a05163773594106101605160e05260c052604060c0205542610160511115611db057610160516377359411555b5b8151600101808352811415611c96575b50506101a05160005260005161014051565b6101605261014052633b9aca0d6101405160e05260c052604060c02054610180526000610180511115611f90576101a0633b9aca0b6101405160e05260c052604060c0206101805160e05260c052604060c020805482526001810154826020015250506101e060006101f4818352015b42610180511115611e5357611f7a565b610180805162093a8081818301106126b557808201905090508152506101c05162093a808082028215828483041417156126b5578090509050905061020052610200516101a0511115611f01576101a08051610200518082106126b55780820390509050815250633b9aca0c6101405160e05260c052604060c0206101805160e05260c052604060c02054610220526101c08051610220518082106126b55780820390509050815250611f0e565b60006101a05260006101c0525b633b9aca0b6101405160e05260c052604060c0206101805160e05260c052604060c0206101a08051825580602001516001830155505042610180511115611f695761018051633b9aca0d6101405160e05260c052604060c020555b5b8151600101808352811415611e43575b50506101a0516000526000516101605156611f9e565b600060005260005161016051565b005b6101805261014052610160526101605162093a808082049050905062093a808082028215828483041417156126b557809050905090506101a05263773594106101a05160e05260c052604060c020546101c05260006101c05111156120e257633b9aca076101405160e05260c052604060c02054600180820380607f1d8160801d14156126b557809050905090506101e05263773594126101e05160e05260c052604060c0206101a05160e05260c052604060c0205461020052633b9aca0b6101405160e05260c052604060c0206101a05160e05260c052604060c0205461022052670de0b6b3a7640000610200518082028215828483041417156126b55780905090509050610220518082028215828483041417156126b557809050905090506101c0518080156126b55782049050905060005260005161018051566120f0565b600060005260005161018051565b005b6101805261014052610160526101405161016051610180516101a051610140516101c0526101c05160065801611886565b610220526101a052610180526101605261014052610220516101a0526101405161016051610180516101a0516101c051610140516101e0526101e051600658016119a2565b610240526101c0526101a052610180526101605261014052610240516101c0526101405161016051610180516101a0516101c0516101e05160065801611b79565b610200526101e0526101c0526101a052610180526101605261014052610200516101e0524262093a8081818301106126b5578082019050905062093a808082049050905062093a808082028215828483041417156126b55780905090509050610200526101e0516101c051610160518082028215828483041417156126b5578090509050905081818301106126b557808201905090506101c0516101a0518082028215828483041417156126b557809050905090508082106126b557808203905090506101e0526101e05163773594106102005160e05260c052604060c020556101605163773594126101405160e05260c052604060c0206102005160e05260c052604060c020556102005163773594115561020051600161014051633b9aca008110156126b55702637735941301557e170bcdc909b6ac6e12d020fe8942256312cdcd555fb6d712899eba56d2f9016102208080806101405181525050602081019050808061020051815250506020810190508080610160518152505060208101905080806101e05181525050608090509050610220a161018051565b610180526101405261016052633b9aca076101405160e05260c052604060c02054600180820380607f1d8160801d14156126b557809050905090506101a0526101405161016051610180516101a0516101c051610140516101e0526101e05160065801611dd3565b610240526101c0526101a052610180526101605261014052610240516101c0526101405161016051610180516101a0516101c0516101e0516101a051610200526102005160065801611886565b610260526101e0526101c0526101a052610180526101605261014052610260516101e0526101405161016051610180516101a0516101c0516101e051610200516101a0516102205261022051600658016119a2565b61028052610200526101e0526101c0526101a05261018052610160526101405261028051610200526101405161016051610180516101a0516101c0516101e051610200516102205160065801611b79565b6102405261022052610200526101e0526101c0526101a05261018052610160526101405261024051610220524262093a8081818301106126b5578082019050905062093a808082049050905062093a808082028215828483041417156126b557809050905090506102405261016051633b9aca0b6101405160e05260c052604060c0206102405160e05260c052604060c0205561024051633b9aca0d6101405160e05260c052604060c02055610200516101605181818301106126b557808201905090506101c0518082106126b557808203905090506102605261026051633b9aca0e6101a05160e05260c052604060c0206102405160e05260c052604060c020556102405160016101a051633b9aca008110156126b55702633b9aca10015561022051610260516101e0518082028215828483041417156126b5578090509050905081818301106126b55780820190509050610200516101e0518082028215828483041417156126b557809050905090508082106126b55780820390509050610220526102205163773594106102405160e05260c052604060c02055610240516377359411557f54c0cf3647e6cdb2fc0a7876e60ba77563fceedf2e06c01c597f8dccb9e6bd726102808080806101405181525050602081019050808042815250506020810190508080610160518152505060208101905080806102205181525050608090509050610280a161018051565b600080fd
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000031429d1856ad1377a8a0079410b297e1a9e214c20000000000000000000000000c462dbb9ec8cd1630f1728b2cfd2769d09f0dd50000000000000000000000002acd062cf718c87c9a58382f01c5b51a0f287c8d
-----Decoded View---------------
Arg [0] : _token (address): 0x31429d1856aD1377A8A0079410B297e1a9e214c2
Arg [1] : _voting_escrow (address): 0x0C462Dbb9EC8cD1630f1728B2CFD2769d09f0dd5
Arg [2] : _admin (address): 0x2Acd062Cf718c87c9A58382f01C5b51a0f287C8D
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000031429d1856ad1377a8a0079410b297e1a9e214c2
Arg [1] : 0000000000000000000000000c462dbb9ec8cd1630f1728b2cfd2769d09f0dd5
Arg [2] : 0000000000000000000000002acd062cf718c87c9a58382f01c5b51a0f287c8d
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 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.