Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Multi Chain
Multichain Addresses
1 address found via
Latest 25 from a total of 118 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Vote_for_gauge_w... | 16509668 | 236 days 1 hr ago | IN | 0 ETH | 0.00250461 | ||||
Vote_for_gauge_w... | 16315893 | 263 days 2 hrs ago | IN | 0 ETH | 0.00340472 | ||||
Vote_for_gauge_w... | 16211237 | 277 days 16 hrs ago | IN | 0 ETH | 0.00319999 | ||||
Vote_for_gauge_w... | 16136053 | 288 days 4 hrs ago | IN | 0 ETH | 0.00289145 | ||||
Vote_for_gauge_w... | 16136047 | 288 days 4 hrs ago | IN | 0 ETH | 0.0019323 | ||||
Vote_for_gauge_w... | 16118268 | 290 days 16 hrs ago | IN | 0 ETH | 0.00418089 | ||||
Vote_for_gauge_w... | 16098116 | 293 days 12 hrs ago | IN | 0 ETH | 0.00425875 | ||||
Vote_for_gauge_w... | 16054201 | 299 days 15 hrs ago | IN | 0 ETH | 0.0026047 | ||||
Vote_for_gauge_w... | 16053769 | 299 days 16 hrs ago | IN | 0 ETH | 0.00150841 | ||||
Vote_for_gauge_w... | 16026073 | 303 days 13 hrs ago | IN | 0 ETH | 0.00304278 | ||||
Vote_for_gauge_w... | 16016912 | 304 days 20 hrs ago | IN | 0 ETH | 0.00131357 | ||||
Vote_for_gauge_w... | 15996094 | 307 days 18 hrs ago | IN | 0 ETH | 0.00200202 | ||||
Vote_for_gauge_w... | 15995521 | 307 days 20 hrs ago | IN | 0 ETH | 0.00376273 | ||||
Vote_for_gauge_w... | 15962712 | 312 days 10 hrs ago | IN | 0 ETH | 0.00476293 | ||||
Vote_for_gauge_w... | 15953375 | 313 days 17 hrs ago | IN | 0 ETH | 0.00380731 | ||||
Vote_for_gauge_w... | 15885419 | 323 days 5 hrs ago | IN | 0 ETH | 0.00382549 | ||||
Vote_for_gauge_w... | 15885413 | 323 days 5 hrs ago | IN | 0 ETH | 0.00238055 | ||||
Vote_for_gauge_w... | 15872399 | 325 days 1 hr ago | IN | 0 ETH | 0.00149729 | ||||
Vote_for_gauge_w... | 15853107 | 327 days 17 hrs ago | IN | 0 ETH | 0.00316439 | ||||
Vote_for_gauge_w... | 15846293 | 328 days 16 hrs ago | IN | 0 ETH | 0.00236747 | ||||
Vote_for_gauge_w... | 15805696 | 334 days 8 hrs ago | IN | 0 ETH | 0.00412015 | ||||
Vote_for_gauge_w... | 15784649 | 337 days 7 hrs ago | IN | 0 ETH | 0.00875619 | ||||
Vote_for_gauge_w... | 15784628 | 337 days 7 hrs ago | IN | 0 ETH | 0.00376097 | ||||
Vote_for_gauge_w... | 15731774 | 344 days 16 hrs ago | IN | 0 ETH | 0.00488598 | ||||
Vote_for_gauge_w... | 15731770 | 344 days 16 hrs ago | IN | 0 ETH | 0.00285875 |
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.15
Contract Source Code (Vyper language format)
# @version 0.2.15 """ @title Gauge Controller @author This version was modified starting from Curve Finance's DAO contracts @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 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 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__(_voting_escrow: address): """ @notice Contract constructor @param _voting_escrow `VotingEscrow` contract address """ assert _voting_escrow != ZERO_ADDRESS self.admin = msg.sender 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 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 @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"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_voting_escrow","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"commit_transfer_ownership","inputs":[{"name":"addr","type":"address"}],"outputs":[],"gas":38895},{"stateMutability":"nonpayable","type":"function","name":"apply_transfer_ownership","inputs":[],"outputs":[],"gas":41034},{"stateMutability":"view","type":"function","name":"gauge_types","inputs":[{"name":"_addr","type":"address"}],"outputs":[{"name":"","type":"int128"}],"gas":3014},{"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":36722675398},{"stateMutability":"nonpayable","type":"function","name":"change_gauge_weight","inputs":[{"name":"addr","type":"address"},{"name":"weight","type":"uint256"}],"outputs":[],"gas":36831772473},{"stateMutability":"nonpayable","type":"function","name":"vote_for_gauge_weights","inputs":[{"name":"_gauge_addr","type":"address"},{"name":"_user_weight","type":"uint256"}],"outputs":[],"gas":18380903247},{"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":5331},{"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":5391},{"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":"voting_escrow","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2928},{"stateMutability":"view","type":"function","name":"n_gauge_types","inputs":[],"outputs":[{"name":"","type":"int128"}],"gas":2958},{"stateMutability":"view","type":"function","name":"n_gauges","inputs":[],"outputs":[{"name":"","type":"int128"}],"gas":2988},{"stateMutability":"view","type":"function","name":"gauge_type_names","inputs":[{"name":"arg0","type":"int128"}],"outputs":[{"name":"","type":"string"}],"gas":13544},{"stateMutability":"view","type":"function","name":"gauges","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"address"}],"gas":3093},{"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":8108},{"stateMutability":"view","type":"function","name":"vote_user_power","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":3323},{"stateMutability":"view","type":"function","name":"last_user_vote","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":3568},{"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":5888},{"stateMutability":"view","type":"function","name":"time_weight","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":3413},{"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":6029},{"stateMutability":"view","type":"function","name":"time_sum","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}],"gas":3303},{"stateMutability":"view","type":"function","name":"points_total","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}],"gas":3403},{"stateMutability":"view","type":"function","name":"time_total","inputs":[],"outputs":[{"name":"","type":"uint256"}],"gas":3318},{"stateMutability":"view","type":"function","name":"points_type_weight","inputs":[{"name":"arg0","type":"int128"},{"name":"arg1","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}],"gas":3759},{"stateMutability":"view","type":"function","name":"time_type_weight","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}],"gas":3423}]
Contract Creation Code
60206126e16101403960206126e160c03960c05160a01c6126dc5760006101405118156126dc5733600055610140516002554262093a808082049050905062093a808082028215828483041417156126dc57809050905090506377359410556126c456600436101561000d57611861565b600035601c526000513461265c57636b441a408114156100715760043560a01c61265c5760005433141561265c57600435600155600435610140527f2f56810a6bf40af059b96d3aea4db54081f378029a518390491093a7b67032e96020610140a1005b636a1c05ae8114156100d25760005433141561265c5760015461014052600061014051181561265c576101405160005561014051610160527febee2d5739011062cb4f14113f3b36bf0ffe3da5c0568f64189d1012a11891056020610160a1005b633f9095b78114156101385760043560a01c61265c57633b9aca0660043560e05260c052604060c0205461014052600061014051181561265c576101405160018082038080600081121561012257195b607f1c61265c5790509050905060005260206000f35b633a04f90081141561014f57600061014052610170565b6318dfe92181141561016b576020604461014037600050610170565b6104c7565b60043560a01c61265c576024358080600081121561018a57195b607f1c61265c5790505060005433141561265c576000602435126101b457600354602435126101b7565b60005b1561265c57633b9aca0660043560e05260c052604060c0205461265c5760045461016052610160516001808201808060008112156101f157195b607f1c61265c57905090509050600455600435600161016051633b9aca0081101561265c57026006015560243560018082018080600081121561023057195b607f1c61265c57905090509050633b9aca0660043560e05260c052604060c020554262093a80818183011061265c578082019050905062093a808082049050905062093a8080820282158284830414171561265c578090509050905061018052600061014051111561043b576101405161016051610180516101a0516024356101c0526101c05160065801611867565b610220526101a052610180526101605261014052610220516101a0526101405161016051610180516101a0516101c0516024356101e0526101e05160065801611983565b610240526101c0526101a052610180526101605261014052610240516101c0526101405161016051610180516101a0516101c0516101e05160065801611b5a565b610200526101e0526101c0526101a052610180526101605261014052610200516101e052610140516101c051818183011061265c5780820190509050633b9aca0d60243560e05260c052604060c0206101805160e05260c052604060c02055610180516001602435633b9aca0081101561265c5702633b9aca0f01556101e0516101a0516101405180820282158284830414171561265c5780905090509050818183011061265c5780820190509050637735940f6101805160e05260c052604060c020556101805163773594105561014051633b9aca0a60043560e05260c052604060c0206101805160e05260c052604060c020555b6001602435633b9aca0081101561265c5702633b9aca0f015461047657610180516001602435633b9aca0081101561265c5702633b9aca0f01555b61018051633b9aca0c60043560e05260c052604060c02055604060046101a037610140516101e0527ffd55b3191f9c9dd92f4f134dd700e7d76f6a0c836a08687023d6d38f03ebd87760606101a0a1005b63c2c4c5c18114156104e65760065801611b5a565b6101405261014050005b63615e523781141561052b5760043560a01c61265c57600435610140526101405160065801611db4565b6101a0526101a05060065801611b5a565b6101405261014050005b636207d866811415610541574261014052610562565b63d3078c9481141561055d576020602461014037600050610562565b6105a5565b60043560a01c61265c5761014051600435610160526101405161018052610180516101605160065801611f81565b6101e052610140526101e05160005260206000f35b6395cfcec38114156105bb5742610140526105dc565b636472eee18114156105d75760206024610140376000506105dc565b61065c565b60043560a01c61265c5761014051600435610160526101605160065801611db4565b6101c052610140526101c0506101405160065801611b5a565b61016052610140526101605061014051600435610160526101405161018052610180516101605160065801611f81565b6101e052610140526101e05160005260206000f35b6326e56d5e8114156106735760006101c052610694565b6392d0d23281141561068f57602060246101c037600050610694565b610857565b6060600435600401610140376040600435600401351161265c5760005433141561265c576003546101e0526101408060056101e05160e05260c052604060c020602082510161012060006003818352015b826101205160200211156106f85761071a565b61012051602002850151610120518501555b81516001018083528114156106e5575b5050505050506101e05160018082018080600081121561073657195b607f1c61265c5790509050905060035560006101c0511815610855576101405161016051610180516101a0516101c0516101e0516101e051610200526101c051610220526102205161020051600658016120d8565b6101e0526101c0526101a0526101805261016052610140526000506101e05161026052604061020052610200516102405261014080516020018061020051610240018284600060045af11561265c57505061020051610240015180602061020051610240010101818260206001820306601f8201039050033682375050602061020051610240015160206001820306601f8201039050610200510101610200527f6fbe76157c712f16b5a3c44ed48baa04e3450bc3fab0c020e848aca72bbccc8461020051610240a15b005b63db1ca2608114156108ab576004358080600081121561087357195b607f1c61265c5790505060005433141561265c5760043561014052602435610160526101605161014051600658016120d8565b600050005b63d4d2646e8114156108ef5760043560a01c61265c5760005433141561265c57600435610140526024356101605261016051610140516006580161230b565b600050005b63d71363288114156112af5760043560a01c61265c576002546101405260206102006024637c74a17461018052336101a05261019c610140515afa1561265c57601f3d111561265c57600050610200516000811261265c57610160526020610220602463adc635896101a052336101c0526101bc610140515afa1561265c57601f3d111561265c5760005061022051610180526004546101a0524262093a80818183011061265c578082019050905062093a808082049050905062093a8080820282158284830414171561265c57809050905090506101c0526101c0516101805111610a1a576308c379a06101e0526020610200526020610220527f596f757220746f6b656e206c6f636b206578706972657320746f6f20736f6f6e610240526102205060646101fcfd5b600060243510610a31576127106024351115610a34565b60005b610a7d576308c379a06101e052602061020052601e610220527f596f75207573656420616c6c20796f757220766f74696e6720706f7765720000610240526102205060646101fcfd5b633b9aca093360e05260c052604060c02060043560e05260c052604060c02054620d2f00818183011061265c5780820190509050421015610afd576308c379a06101e0526020610200526014610220527f43616e6e6f7420766f746520736f206f6674656e000000000000000000000000610240526102205060646101fcfd5b633b9aca0660043560e05260c052604060c02054600180820380806000811215610b2357195b607f1c61265c579050905090506101e05260006101e0511215610b85576308c379a061020052602061022052600f610240527f4761756765206e6f7420616464656400000000000000000000000000000000006102605261024050606461021cfd5b610200633b9aca073360e05260c052604060c02060043560e05260c052604060c02080548252600181015482602001526002810154826040015250506000610260526101c051610240511115610bf057610240516101c05180821061265c5780820390509050610260525b610200516102605180820282158284830414171561265c5780905090509050610280526102a06101605160243580820282158284830414171561265c5780905090509050612710808204905090508152602435816020015261018051816040015250610180516101c05180821061265c5780820390509050610300526102a0516103005180820282158284830414171561265c578090509050905061032052633b9aca083360e05260c052604060c0205461034052610340516102c051818183011061265c57808201905090506102205180821061265c57808203905090506103405261034051633b9aca083360e05260c052604060c0205560006103405110610d0257612710610340511115610d05565b60005b610d4e576308c379a06103605260206103805260136103a0527f5573656420746f6f206d75636820706f776572000000000000000000000000006103c0526103a050606461037cfd5b610140610380525b61038051516020610380510161038052610380610380511015610d7857610d56565b6004356103a0526103a05160065801611db4565b61040052610360610380525b610380515260206103805103610380526101406103805110610db957610d98565b61040051610360526001633b9aca0a60043560e05260c052604060c0206101c05160e05260c052604060c0200154610380526101406103c0525b6103c0515160206103c051016103c0526103c06103c0511015610e1557610df3565b6101e0516103e0526103e05160065801611983565b610440526103a06103c0525b6103c0515260206103c051036103c0526101406103c05110610e5757610e36565b610440516103a0526001633b9aca0d6101e05160e05260c052604060c0206101c05160e05260c052604060c02001546103c0526103605161032051818183011061265c57808201905090506102805180821015610eb45780610eb6565b815b905090506102805180821061265c5780820390509050633b9aca0a60043560e05260c052604060c0206101c05160e05260c052604060c020556103a05161032051818183011061265c57808201905090506102805180821015610f195780610f1b565b815b905090506102805180821061265c5780820390509050633b9aca0d6101e05160e05260c052604060c0206101c05160e05260c052604060c020556101c05161024051111561103957610380516102a051818183011061265c57808201905090506102005180821015610f8d5780610f8f565b815b905090506102005180821061265c57808203905090506001633b9aca0a60043560e05260c052604060c0206101c05160e05260c052604060c02001556103c0516102a051818183011061265c57808201905090506102005180821015610ff55780610ff7565b815b905090506102005180821061265c57808203905090506001633b9aca0d6101e05160e05260c052604060c0206101c05160e05260c052604060c02001556110b7565b6001633b9aca0a60043560e05260c052604060c0206101c05160e05260c052604060c0200180546102a051818183011061265c57808201905090508155506001633b9aca0d6101e05160e05260c052604060c0206101c05160e05260c052604060c0200180546102a051818183011061265c57808201905090508155505b4261024051111561113657633b9aca0b60043560e05260c052604060c0206102405160e05260c052604060c02080546102005180821061265c5780820390509050815550633b9aca0e6101e05160e05260c052604060c0206102405160e05260c052604060c02080546102005180821061265c57808203905090508155505b633b9aca0b60043560e05260c052604060c0206102e05160e05260c052604060c02080546102a051818183011061265c5780820190509050815550633b9aca0e6101e05160e05260c052604060c0206102e05160e05260c052604060c02080546102a051818183011061265c57808201905090508155506101406103e0525b6103e0515160206103e051016103e0526103e06103e05110156111d7576111b5565b60065801611b5a565b610400526103c06103e0525b6103e0515260206103e051036103e0526101406103e0511061120d576111ec565b61040050633b9aca073360e05260c052604060c02060043560e05260c052604060c0206102a0805182558060200151600183015580604001516002830155505042633b9aca093360e05260c052604060c02060043560e05260c052604060c02055426103e052336104005260043561042052602435610440527f45ca9a4c8d0119eb329e580d28fe689e484e1be230da8037ade9547d2d25cc9160806103e0a1005b634e791a3a8114156113015760043560a01c61265c57633b9aca0a60043560e05260c052604060c020633b9aca0c60043560e05260c052604060c0205460e05260c052604060c0205460005260206000f35b6372fdccfa811415611368576004358080600081121561131d57195b607f1c61265c57905050637735941160043560e05260c052604060c0206001600435633b9aca0081101561265c57026377359412015460e05260c052604060c0205460005260206000f35b636977ff9281141561139457637735940f63773594105460e05260c052604060c0205460005260206000f35b636f214a6a8114156113fb57600435808060008112156113b057195b607f1c61265c57905050633b9aca0d60043560e05260c052604060c0206001600435633b9aca0081101561265c5702633b9aca0f015460e05260c052604060c0205460005260206000f35b63f851a4408114156114135760005460005260206000f35b6317f7182a81141561142b5760015460005260206000f35b63dfe050318114156114435760025460005260206000f35b639fba03a181141561145b5760035460005260206000f35b63e93841d08114156114735760045460005260206000f35b63d958a8fc811415611538576004358080600081121561148f57195b607f1c61265c57905050600560043560e05260c052604060c02080610180602082540161012060006003818352015b826101205160200211156114d1576114f3565b61012051850154610120516020028501525b81516001018083528114156114be575b50505050505061018051806101a001818260206001820306601f82010390500336823750506020610160526040610180510160206001820306601f8201039050610160f35b63b0539187811415611563576001600435633b9aca0081101561265c57026006015460005260206000f35b630f467f988114156115e35760043560a01c61265c5760243560a01c61265c57633b9aca0760043560e05260c052604060c02060243560e05260c052604060c0206101408080808454815250506020810190508080600185015481525050602081019050808060028501548152505060609050905060c05260c051610140f35b63411e74b58114156116165760043560a01c61265c57633b9aca0860043560e05260c052604060c0205460005260206000f35b637e418fa08114156116615760043560a01c61265c5760243560a01c61265c57633b9aca0960043560e05260c052604060c02060243560e05260c052604060c0205460005260206000f35b63edba52738114156116c65760043560a01c61265c57633b9aca0a60043560e05260c052604060c02060243560e05260c052604060c020610140808080845481525050602081019050808060018501548152505060409050905060c05260c051610140f35b63a4d7a2508114156116f95760043560a01c61265c57633b9aca0c60043560e05260c052604060c0205460005260206000f35b63a9b48c0181141561176e576004358080600081121561171557195b607f1c61265c57905050633b9aca0d60043560e05260c052604060c02060243560e05260c052604060c020610140808080845481525050602081019050808060018501548152505060409050905060c05260c051610140f35b635a54915881141561179c576001600435633b9aca0081101561265c5702633b9aca0f015460005260206000f35b631142916b8114156117c557637735940f60043560e05260c052604060c0205460005260206000f35b63513872bd8114156117e05763773594105460005260206000f35b63afd2bb4981141561183157600435808060008112156117fc57195b607f1c61265c57905050637735941160043560e05260c052604060c02060243560e05260c052604060c0205460005260206000f35b6351ce6b5981141561185f576001600435633b9aca0081101561265c57026377359412015460005260206000f35b505b60006000fd5b6101605261014052600161014051633b9aca0081101561265c5702637735941201546101805260006101805111156119735763773594116101405160e05260c052604060c0206101805160e05260c052604060c020546101a0526101c060006101f4818352015b426101805111156118de5761195d565b610180805162093a80818183011061265c57808201905090508152506101a05163773594116101405160e05260c052604060c0206101805160e05260c052604060c020554261018051111561194c5761018051600161014051633b9aca0081101561265c5702637735941201555b5b81516001018083528114156118ce575b50506101a0516000526000516101605156611981565b600060005260005161016051565b005b6101605261014052600161014051633b9aca0081101561265c5702633b9aca0f0154610180526000610180511115611b4a576101a0633b9aca0d6101405160e05260c052604060c0206101805160e05260c052604060c020805482526001810154826020015250506101e060006101f4818352015b42610180511115611a0857611b34565b610180805162093a80818183011061265c57808201905090508152506101c05162093a8080820282158284830414171561265c578090509050905061020052610200516101a0511115611ab6576101a080516102005180821061265c5780820390509050815250633b9aca0e6101405160e05260c052604060c0206101805160e05260c052604060c02054610220526101c080516102205180821061265c5780820390509050815250611ac3565b60006101a05260006101c0525b633b9aca0d6101405160e05260c052604060c0206101805160e05260c052604060c0206101a08051825580602001516001830155505042610180511115611b235761018051600161014051633b9aca0081101561265c5702633b9aca0f01555b5b81516001018083528114156119f8575b50506101a0516000526000516101605156611b58565b600060005260005161016051565b005b61014052637735941054610160526003546101805242610160511115611b9557610160805162093a8080821061265c57808203905090508152505b637735940f6101605160e05260c052604060c020546101a0526101c060006064818352015b610180516101c0511415611bcd57611c68565b6101405161016051610180516101a0516101c0516101c0516101e0526101e05160065801611983565b610240526101c0526101a052610180526101605261014052610240506101405161016051610180516101a0516101c0516101c0516101e0526101e05160065801611867565b610240526101c0526101a052610180526101605261014052610240505b8151600101808352811415611bba575b50506101c060006101f4818352015b42610160511115611c8757611da2565b610160805162093a80818183011061265c578082019050905081525060006101a0526101e060006064818352015b610180516101e0511415611cc857611d60565b633b9aca0d6101e05160e05260c052604060c0206101605160e05260c052604060c020546102005263773594116101e05160e05260c052604060c0206101605160e05260c052604060c02054610220526101a08051610200516102205180820282158284830414171561265c5780905090509050818183011061265c57808201905090508152505b8151600101808352811415611cb5575b50506101a051637735940f6101605160e05260c052604060c0205542610160511115611d9157610160516377359410555b5b8151600101808352811415611c77575b50506101a05160005260005161014051565b6101605261014052633b9aca0c6101405160e05260c052604060c02054610180526000610180511115611f71576101a0633b9aca0a6101405160e05260c052604060c0206101805160e05260c052604060c020805482526001810154826020015250506101e060006101f4818352015b42610180511115611e3457611f5b565b610180805162093a80818183011061265c57808201905090508152506101c05162093a8080820282158284830414171561265c578090509050905061020052610200516101a0511115611ee2576101a080516102005180821061265c5780820390509050815250633b9aca0b6101405160e05260c052604060c0206101805160e05260c052604060c02054610220526101c080516102205180821061265c5780820390509050815250611eef565b60006101a05260006101c0525b633b9aca0a6101405160e05260c052604060c0206101805160e05260c052604060c0206101a08051825580602001516001830155505042610180511115611f4a5761018051633b9aca0c6101405160e05260c052604060c020555b5b8151600101808352811415611e24575b50506101a0516000526000516101605156611f7f565b600060005260005161016051565b005b6101805261014052610160526101605162093a808082049050905062093a8080820282158284830414171561265c57809050905090506101a052637735940f6101a05160e05260c052604060c020546101c05260006101c05111156120c857633b9aca066101405160e05260c052604060c0205460018082038080600081121561200757195b607f1c61265c579050905090506101e05263773594116101e05160e05260c052604060c0206101a05160e05260c052604060c0205461020052633b9aca0a6101405160e05260c052604060c0206101a05160e05260c052604060c0205461022052670de0b6b3a76400006102005180820282158284830414171561265c57809050905090506102205180820282158284830414171561265c57809050905090506101c05180801561265c5782049050905060005260005161018051566120d6565b600060005260005161018051565b005b6101805261014052610160526101405161016051610180516101a051610140516101c0526101c05160065801611867565b610220526101a052610180526101605261014052610220516101a0526101405161016051610180516101a0516101c051610140516101e0526101e05160065801611983565b610240526101c0526101a052610180526101605261014052610240516101c0526101405161016051610180516101a0516101c0516101e05160065801611b5a565b610200526101e0526101c0526101a052610180526101605261014052610200516101e0524262093a80818183011061265c578082019050905062093a808082049050905062093a8080820282158284830414171561265c5780905090509050610200526101e0516101c0516101605180820282158284830414171561265c5780905090509050818183011061265c57808201905090506101c0516101a05180820282158284830414171561265c578090509050905080821061265c57808203905090506101e0526101e051637735940f6102005160e05260c052604060c020556101605163773594116101405160e05260c052604060c0206102005160e05260c052604060c020556102005163773594105561020051600161014051633b9aca0081101561265c5702637735941201556101405161022052610200516102405261016051610260526101e051610280527e170bcdc909b6ac6e12d020fe8942256312cdcd555fb6d712899eba56d2f9016080610220a161018051565b610180526101405261016052633b9aca066101405160e05260c052604060c0205460018082038080600081121561233e57195b607f1c61265c579050905090506101a0526101405161016051610180516101a0516101c051610140516101e0526101e05160065801611db4565b610240526101c0526101a052610180526101605261014052610240516101c0526101405161016051610180516101a0516101c0516101e0516101a051610200526102005160065801611867565b610260526101e0526101c0526101a052610180526101605261014052610260516101e0526101405161016051610180516101a0516101c0516101e051610200516101a051610220526102205160065801611983565b61028052610200526101e0526101c0526101a05261018052610160526101405261028051610200526101405161016051610180516101a0516101c0516101e051610200516102205160065801611b5a565b6102405261022052610200526101e0526101c0526101a05261018052610160526101405261024051610220524262093a80818183011061265c578082019050905062093a808082049050905062093a8080820282158284830414171561265c57809050905090506102405261016051633b9aca0a6101405160e05260c052604060c0206102405160e05260c052604060c0205561024051633b9aca0c6101405160e05260c052604060c020556102005161016051818183011061265c57808201905090506101c05180821061265c57808203905090506102605261026051633b9aca0d6101a05160e05260c052604060c0206102405160e05260c052604060c020556102405160016101a051633b9aca0081101561265c5702633b9aca0f015561022051610260516101e05180820282158284830414171561265c5780905090509050818183011061265c5780820190509050610200516101e05180820282158284830414171561265c578090509050905080821061265c57808203905090506102205261022051637735940f6102405160e05260c052604060c02055610240516377359410556101405161028052426102a052610160516102c052610220516102e0527f54c0cf3647e6cdb2fc0a7876e60ba77563fceedf2e06c01c597f8dccb9e6bd726080610280a161018051565b600080fd5b6100636126c4036100636000396100636126c4036000f35b600080fd000000000000000000000000aac13a116ea7016689993193fce4badc8038136f
Deployed Bytecode
0x600436101561000d57611861565b600035601c526000513461265c57636b441a408114156100715760043560a01c61265c5760005433141561265c57600435600155600435610140527f2f56810a6bf40af059b96d3aea4db54081f378029a518390491093a7b67032e96020610140a1005b636a1c05ae8114156100d25760005433141561265c5760015461014052600061014051181561265c576101405160005561014051610160527febee2d5739011062cb4f14113f3b36bf0ffe3da5c0568f64189d1012a11891056020610160a1005b633f9095b78114156101385760043560a01c61265c57633b9aca0660043560e05260c052604060c0205461014052600061014051181561265c576101405160018082038080600081121561012257195b607f1c61265c5790509050905060005260206000f35b633a04f90081141561014f57600061014052610170565b6318dfe92181141561016b576020604461014037600050610170565b6104c7565b60043560a01c61265c576024358080600081121561018a57195b607f1c61265c5790505060005433141561265c576000602435126101b457600354602435126101b7565b60005b1561265c57633b9aca0660043560e05260c052604060c0205461265c5760045461016052610160516001808201808060008112156101f157195b607f1c61265c57905090509050600455600435600161016051633b9aca0081101561265c57026006015560243560018082018080600081121561023057195b607f1c61265c57905090509050633b9aca0660043560e05260c052604060c020554262093a80818183011061265c578082019050905062093a808082049050905062093a8080820282158284830414171561265c578090509050905061018052600061014051111561043b576101405161016051610180516101a0516024356101c0526101c05160065801611867565b610220526101a052610180526101605261014052610220516101a0526101405161016051610180516101a0516101c0516024356101e0526101e05160065801611983565b610240526101c0526101a052610180526101605261014052610240516101c0526101405161016051610180516101a0516101c0516101e05160065801611b5a565b610200526101e0526101c0526101a052610180526101605261014052610200516101e052610140516101c051818183011061265c5780820190509050633b9aca0d60243560e05260c052604060c0206101805160e05260c052604060c02055610180516001602435633b9aca0081101561265c5702633b9aca0f01556101e0516101a0516101405180820282158284830414171561265c5780905090509050818183011061265c5780820190509050637735940f6101805160e05260c052604060c020556101805163773594105561014051633b9aca0a60043560e05260c052604060c0206101805160e05260c052604060c020555b6001602435633b9aca0081101561265c5702633b9aca0f015461047657610180516001602435633b9aca0081101561265c5702633b9aca0f01555b61018051633b9aca0c60043560e05260c052604060c02055604060046101a037610140516101e0527ffd55b3191f9c9dd92f4f134dd700e7d76f6a0c836a08687023d6d38f03ebd87760606101a0a1005b63c2c4c5c18114156104e65760065801611b5a565b6101405261014050005b63615e523781141561052b5760043560a01c61265c57600435610140526101405160065801611db4565b6101a0526101a05060065801611b5a565b6101405261014050005b636207d866811415610541574261014052610562565b63d3078c9481141561055d576020602461014037600050610562565b6105a5565b60043560a01c61265c5761014051600435610160526101405161018052610180516101605160065801611f81565b6101e052610140526101e05160005260206000f35b6395cfcec38114156105bb5742610140526105dc565b636472eee18114156105d75760206024610140376000506105dc565b61065c565b60043560a01c61265c5761014051600435610160526101605160065801611db4565b6101c052610140526101c0506101405160065801611b5a565b61016052610140526101605061014051600435610160526101405161018052610180516101605160065801611f81565b6101e052610140526101e05160005260206000f35b6326e56d5e8114156106735760006101c052610694565b6392d0d23281141561068f57602060246101c037600050610694565b610857565b6060600435600401610140376040600435600401351161265c5760005433141561265c576003546101e0526101408060056101e05160e05260c052604060c020602082510161012060006003818352015b826101205160200211156106f85761071a565b61012051602002850151610120518501555b81516001018083528114156106e5575b5050505050506101e05160018082018080600081121561073657195b607f1c61265c5790509050905060035560006101c0511815610855576101405161016051610180516101a0516101c0516101e0516101e051610200526101c051610220526102205161020051600658016120d8565b6101e0526101c0526101a0526101805261016052610140526000506101e05161026052604061020052610200516102405261014080516020018061020051610240018284600060045af11561265c57505061020051610240015180602061020051610240010101818260206001820306601f8201039050033682375050602061020051610240015160206001820306601f8201039050610200510101610200527f6fbe76157c712f16b5a3c44ed48baa04e3450bc3fab0c020e848aca72bbccc8461020051610240a15b005b63db1ca2608114156108ab576004358080600081121561087357195b607f1c61265c5790505060005433141561265c5760043561014052602435610160526101605161014051600658016120d8565b600050005b63d4d2646e8114156108ef5760043560a01c61265c5760005433141561265c57600435610140526024356101605261016051610140516006580161230b565b600050005b63d71363288114156112af5760043560a01c61265c576002546101405260206102006024637c74a17461018052336101a05261019c610140515afa1561265c57601f3d111561265c57600050610200516000811261265c57610160526020610220602463adc635896101a052336101c0526101bc610140515afa1561265c57601f3d111561265c5760005061022051610180526004546101a0524262093a80818183011061265c578082019050905062093a808082049050905062093a8080820282158284830414171561265c57809050905090506101c0526101c0516101805111610a1a576308c379a06101e0526020610200526020610220527f596f757220746f6b656e206c6f636b206578706972657320746f6f20736f6f6e610240526102205060646101fcfd5b600060243510610a31576127106024351115610a34565b60005b610a7d576308c379a06101e052602061020052601e610220527f596f75207573656420616c6c20796f757220766f74696e6720706f7765720000610240526102205060646101fcfd5b633b9aca093360e05260c052604060c02060043560e05260c052604060c02054620d2f00818183011061265c5780820190509050421015610afd576308c379a06101e0526020610200526014610220527f43616e6e6f7420766f746520736f206f6674656e000000000000000000000000610240526102205060646101fcfd5b633b9aca0660043560e05260c052604060c02054600180820380806000811215610b2357195b607f1c61265c579050905090506101e05260006101e0511215610b85576308c379a061020052602061022052600f610240527f4761756765206e6f7420616464656400000000000000000000000000000000006102605261024050606461021cfd5b610200633b9aca073360e05260c052604060c02060043560e05260c052604060c02080548252600181015482602001526002810154826040015250506000610260526101c051610240511115610bf057610240516101c05180821061265c5780820390509050610260525b610200516102605180820282158284830414171561265c5780905090509050610280526102a06101605160243580820282158284830414171561265c5780905090509050612710808204905090508152602435816020015261018051816040015250610180516101c05180821061265c5780820390509050610300526102a0516103005180820282158284830414171561265c578090509050905061032052633b9aca083360e05260c052604060c0205461034052610340516102c051818183011061265c57808201905090506102205180821061265c57808203905090506103405261034051633b9aca083360e05260c052604060c0205560006103405110610d0257612710610340511115610d05565b60005b610d4e576308c379a06103605260206103805260136103a0527f5573656420746f6f206d75636820706f776572000000000000000000000000006103c0526103a050606461037cfd5b610140610380525b61038051516020610380510161038052610380610380511015610d7857610d56565b6004356103a0526103a05160065801611db4565b61040052610360610380525b610380515260206103805103610380526101406103805110610db957610d98565b61040051610360526001633b9aca0a60043560e05260c052604060c0206101c05160e05260c052604060c0200154610380526101406103c0525b6103c0515160206103c051016103c0526103c06103c0511015610e1557610df3565b6101e0516103e0526103e05160065801611983565b610440526103a06103c0525b6103c0515260206103c051036103c0526101406103c05110610e5757610e36565b610440516103a0526001633b9aca0d6101e05160e05260c052604060c0206101c05160e05260c052604060c02001546103c0526103605161032051818183011061265c57808201905090506102805180821015610eb45780610eb6565b815b905090506102805180821061265c5780820390509050633b9aca0a60043560e05260c052604060c0206101c05160e05260c052604060c020556103a05161032051818183011061265c57808201905090506102805180821015610f195780610f1b565b815b905090506102805180821061265c5780820390509050633b9aca0d6101e05160e05260c052604060c0206101c05160e05260c052604060c020556101c05161024051111561103957610380516102a051818183011061265c57808201905090506102005180821015610f8d5780610f8f565b815b905090506102005180821061265c57808203905090506001633b9aca0a60043560e05260c052604060c0206101c05160e05260c052604060c02001556103c0516102a051818183011061265c57808201905090506102005180821015610ff55780610ff7565b815b905090506102005180821061265c57808203905090506001633b9aca0d6101e05160e05260c052604060c0206101c05160e05260c052604060c02001556110b7565b6001633b9aca0a60043560e05260c052604060c0206101c05160e05260c052604060c0200180546102a051818183011061265c57808201905090508155506001633b9aca0d6101e05160e05260c052604060c0206101c05160e05260c052604060c0200180546102a051818183011061265c57808201905090508155505b4261024051111561113657633b9aca0b60043560e05260c052604060c0206102405160e05260c052604060c02080546102005180821061265c5780820390509050815550633b9aca0e6101e05160e05260c052604060c0206102405160e05260c052604060c02080546102005180821061265c57808203905090508155505b633b9aca0b60043560e05260c052604060c0206102e05160e05260c052604060c02080546102a051818183011061265c5780820190509050815550633b9aca0e6101e05160e05260c052604060c0206102e05160e05260c052604060c02080546102a051818183011061265c57808201905090508155506101406103e0525b6103e0515160206103e051016103e0526103e06103e05110156111d7576111b5565b60065801611b5a565b610400526103c06103e0525b6103e0515260206103e051036103e0526101406103e0511061120d576111ec565b61040050633b9aca073360e05260c052604060c02060043560e05260c052604060c0206102a0805182558060200151600183015580604001516002830155505042633b9aca093360e05260c052604060c02060043560e05260c052604060c02055426103e052336104005260043561042052602435610440527f45ca9a4c8d0119eb329e580d28fe689e484e1be230da8037ade9547d2d25cc9160806103e0a1005b634e791a3a8114156113015760043560a01c61265c57633b9aca0a60043560e05260c052604060c020633b9aca0c60043560e05260c052604060c0205460e05260c052604060c0205460005260206000f35b6372fdccfa811415611368576004358080600081121561131d57195b607f1c61265c57905050637735941160043560e05260c052604060c0206001600435633b9aca0081101561265c57026377359412015460e05260c052604060c0205460005260206000f35b636977ff9281141561139457637735940f63773594105460e05260c052604060c0205460005260206000f35b636f214a6a8114156113fb57600435808060008112156113b057195b607f1c61265c57905050633b9aca0d60043560e05260c052604060c0206001600435633b9aca0081101561265c5702633b9aca0f015460e05260c052604060c0205460005260206000f35b63f851a4408114156114135760005460005260206000f35b6317f7182a81141561142b5760015460005260206000f35b63dfe050318114156114435760025460005260206000f35b639fba03a181141561145b5760035460005260206000f35b63e93841d08114156114735760045460005260206000f35b63d958a8fc811415611538576004358080600081121561148f57195b607f1c61265c57905050600560043560e05260c052604060c02080610180602082540161012060006003818352015b826101205160200211156114d1576114f3565b61012051850154610120516020028501525b81516001018083528114156114be575b50505050505061018051806101a001818260206001820306601f82010390500336823750506020610160526040610180510160206001820306601f8201039050610160f35b63b0539187811415611563576001600435633b9aca0081101561265c57026006015460005260206000f35b630f467f988114156115e35760043560a01c61265c5760243560a01c61265c57633b9aca0760043560e05260c052604060c02060243560e05260c052604060c0206101408080808454815250506020810190508080600185015481525050602081019050808060028501548152505060609050905060c05260c051610140f35b63411e74b58114156116165760043560a01c61265c57633b9aca0860043560e05260c052604060c0205460005260206000f35b637e418fa08114156116615760043560a01c61265c5760243560a01c61265c57633b9aca0960043560e05260c052604060c02060243560e05260c052604060c0205460005260206000f35b63edba52738114156116c65760043560a01c61265c57633b9aca0a60043560e05260c052604060c02060243560e05260c052604060c020610140808080845481525050602081019050808060018501548152505060409050905060c05260c051610140f35b63a4d7a2508114156116f95760043560a01c61265c57633b9aca0c60043560e05260c052604060c0205460005260206000f35b63a9b48c0181141561176e576004358080600081121561171557195b607f1c61265c57905050633b9aca0d60043560e05260c052604060c02060243560e05260c052604060c020610140808080845481525050602081019050808060018501548152505060409050905060c05260c051610140f35b635a54915881141561179c576001600435633b9aca0081101561265c5702633b9aca0f015460005260206000f35b631142916b8114156117c557637735940f60043560e05260c052604060c0205460005260206000f35b63513872bd8114156117e05763773594105460005260206000f35b63afd2bb4981141561183157600435808060008112156117fc57195b607f1c61265c57905050637735941160043560e05260c052604060c02060243560e05260c052604060c0205460005260206000f35b6351ce6b5981141561185f576001600435633b9aca0081101561265c57026377359412015460005260206000f35b505b60006000fd5b6101605261014052600161014051633b9aca0081101561265c5702637735941201546101805260006101805111156119735763773594116101405160e05260c052604060c0206101805160e05260c052604060c020546101a0526101c060006101f4818352015b426101805111156118de5761195d565b610180805162093a80818183011061265c57808201905090508152506101a05163773594116101405160e05260c052604060c0206101805160e05260c052604060c020554261018051111561194c5761018051600161014051633b9aca0081101561265c5702637735941201555b5b81516001018083528114156118ce575b50506101a0516000526000516101605156611981565b600060005260005161016051565b005b6101605261014052600161014051633b9aca0081101561265c5702633b9aca0f0154610180526000610180511115611b4a576101a0633b9aca0d6101405160e05260c052604060c0206101805160e05260c052604060c020805482526001810154826020015250506101e060006101f4818352015b42610180511115611a0857611b34565b610180805162093a80818183011061265c57808201905090508152506101c05162093a8080820282158284830414171561265c578090509050905061020052610200516101a0511115611ab6576101a080516102005180821061265c5780820390509050815250633b9aca0e6101405160e05260c052604060c0206101805160e05260c052604060c02054610220526101c080516102205180821061265c5780820390509050815250611ac3565b60006101a05260006101c0525b633b9aca0d6101405160e05260c052604060c0206101805160e05260c052604060c0206101a08051825580602001516001830155505042610180511115611b235761018051600161014051633b9aca0081101561265c5702633b9aca0f01555b5b81516001018083528114156119f8575b50506101a0516000526000516101605156611b58565b600060005260005161016051565b005b61014052637735941054610160526003546101805242610160511115611b9557610160805162093a8080821061265c57808203905090508152505b637735940f6101605160e05260c052604060c020546101a0526101c060006064818352015b610180516101c0511415611bcd57611c68565b6101405161016051610180516101a0516101c0516101c0516101e0526101e05160065801611983565b610240526101c0526101a052610180526101605261014052610240506101405161016051610180516101a0516101c0516101c0516101e0526101e05160065801611867565b610240526101c0526101a052610180526101605261014052610240505b8151600101808352811415611bba575b50506101c060006101f4818352015b42610160511115611c8757611da2565b610160805162093a80818183011061265c578082019050905081525060006101a0526101e060006064818352015b610180516101e0511415611cc857611d60565b633b9aca0d6101e05160e05260c052604060c0206101605160e05260c052604060c020546102005263773594116101e05160e05260c052604060c0206101605160e05260c052604060c02054610220526101a08051610200516102205180820282158284830414171561265c5780905090509050818183011061265c57808201905090508152505b8151600101808352811415611cb5575b50506101a051637735940f6101605160e05260c052604060c0205542610160511115611d9157610160516377359410555b5b8151600101808352811415611c77575b50506101a05160005260005161014051565b6101605261014052633b9aca0c6101405160e05260c052604060c02054610180526000610180511115611f71576101a0633b9aca0a6101405160e05260c052604060c0206101805160e05260c052604060c020805482526001810154826020015250506101e060006101f4818352015b42610180511115611e3457611f5b565b610180805162093a80818183011061265c57808201905090508152506101c05162093a8080820282158284830414171561265c578090509050905061020052610200516101a0511115611ee2576101a080516102005180821061265c5780820390509050815250633b9aca0b6101405160e05260c052604060c0206101805160e05260c052604060c02054610220526101c080516102205180821061265c5780820390509050815250611eef565b60006101a05260006101c0525b633b9aca0a6101405160e05260c052604060c0206101805160e05260c052604060c0206101a08051825580602001516001830155505042610180511115611f4a5761018051633b9aca0c6101405160e05260c052604060c020555b5b8151600101808352811415611e24575b50506101a0516000526000516101605156611f7f565b600060005260005161016051565b005b6101805261014052610160526101605162093a808082049050905062093a8080820282158284830414171561265c57809050905090506101a052637735940f6101a05160e05260c052604060c020546101c05260006101c05111156120c857633b9aca066101405160e05260c052604060c0205460018082038080600081121561200757195b607f1c61265c579050905090506101e05263773594116101e05160e05260c052604060c0206101a05160e05260c052604060c0205461020052633b9aca0a6101405160e05260c052604060c0206101a05160e05260c052604060c0205461022052670de0b6b3a76400006102005180820282158284830414171561265c57809050905090506102205180820282158284830414171561265c57809050905090506101c05180801561265c5782049050905060005260005161018051566120d6565b600060005260005161018051565b005b6101805261014052610160526101405161016051610180516101a051610140516101c0526101c05160065801611867565b610220526101a052610180526101605261014052610220516101a0526101405161016051610180516101a0516101c051610140516101e0526101e05160065801611983565b610240526101c0526101a052610180526101605261014052610240516101c0526101405161016051610180516101a0516101c0516101e05160065801611b5a565b610200526101e0526101c0526101a052610180526101605261014052610200516101e0524262093a80818183011061265c578082019050905062093a808082049050905062093a8080820282158284830414171561265c5780905090509050610200526101e0516101c0516101605180820282158284830414171561265c5780905090509050818183011061265c57808201905090506101c0516101a05180820282158284830414171561265c578090509050905080821061265c57808203905090506101e0526101e051637735940f6102005160e05260c052604060c020556101605163773594116101405160e05260c052604060c0206102005160e05260c052604060c020556102005163773594105561020051600161014051633b9aca0081101561265c5702637735941201556101405161022052610200516102405261016051610260526101e051610280527e170bcdc909b6ac6e12d020fe8942256312cdcd555fb6d712899eba56d2f9016080610220a161018051565b610180526101405261016052633b9aca066101405160e05260c052604060c0205460018082038080600081121561233e57195b607f1c61265c579050905090506101a0526101405161016051610180516101a0516101c051610140516101e0526101e05160065801611db4565b610240526101c0526101a052610180526101605261014052610240516101c0526101405161016051610180516101a0516101c0516101e0516101a051610200526102005160065801611867565b610260526101e0526101c0526101a052610180526101605261014052610260516101e0526101405161016051610180516101a0516101c0516101e051610200516101a051610220526102205160065801611983565b61028052610200526101e0526101c0526101a05261018052610160526101405261028051610200526101405161016051610180516101a0516101c0516101e051610200516102205160065801611b5a565b6102405261022052610200526101e0526101c0526101a05261018052610160526101405261024051610220524262093a80818183011061265c578082019050905062093a808082049050905062093a8080820282158284830414171561265c57809050905090506102405261016051633b9aca0a6101405160e05260c052604060c0206102405160e05260c052604060c0205561024051633b9aca0c6101405160e05260c052604060c020556102005161016051818183011061265c57808201905090506101c05180821061265c57808203905090506102605261026051633b9aca0d6101a05160e05260c052604060c0206102405160e05260c052604060c020556102405160016101a051633b9aca0081101561265c5702633b9aca0f015561022051610260516101e05180820282158284830414171561265c5780905090509050818183011061265c5780820190509050610200516101e05180820282158284830414171561265c578090509050905080821061265c57808203905090506102205261022051637735940f6102405160e05260c052604060c02055610240516377359410556101405161028052426102a052610160516102c052610220516102e0527f54c0cf3647e6cdb2fc0a7876e60ba77563fceedf2e06c01c597f8dccb9e6bd726080610280a161018051565b600080fd
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000aac13a116ea7016689993193fce4badc8038136f
-----Decoded View---------------
Arg [0] : _voting_escrow (address): 0xaAC13a116eA7016689993193FcE4BadC8038136f
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000aac13a116ea7016689993193fce4badc8038136f
Loading...
Loading
Loading...
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.
[ 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.