ETH Price: $2,165.42 (+0.82%)

Contract

0xB7a528CF6D36F736Fa678A629b98A427d43E5ba5
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Vote_yea238753322025-11-25 10:50:59120 days ago1764067859IN
0xB7a528CF...7d43E5ba5
0 ETH0.000055770.58561938
Propose238356632025-11-19 21:02:11125 days ago1763586131IN
0xB7a528CF...7d43E5ba5
0 ETH0.000225251.34986355
Enact229091182025-07-13 8:39:23255 days ago1752395963IN
0xB7a528CF...7d43E5ba5
0 ETH0.000043550.33016614
Vote_yea228645142025-07-07 3:04:35261 days ago1751857475IN
0xB7a528CF...7d43E5ba5
0 ETH0.000019470.24249995
Vote_yea228376802025-07-03 9:02:47265 days ago1751533367IN
0xB7a528CF...7d43E5ba5
0 ETH0.000282842.75689843
Propose228258082025-07-01 17:14:11267 days ago1751390051IN
0xB7a528CF...7d43E5ba5
0 ETH0.001122246.44155805
Enact213303272024-12-04 16:28:23476 days ago1733329703IN
0xB7a528CF...7d43E5ba5
0 ETH0.0062009546.73721349
Vote_yea212583692024-11-24 15:02:11486 days ago1732460531IN
0xB7a528CF...7d43E5ba5
0 ETH0.000703929.008157
Vote_yea212541172024-11-24 0:47:59486 days ago1732409279IN
0xB7a528CF...7d43E5ba5
0 ETH0.0008326210.65510416
Vote_yea212533132024-11-23 22:06:23486 days ago1732399583IN
0xB7a528CF...7d43E5ba5
0 ETH0.0010622713.59393742
Vote_yea212423312024-11-22 9:19:23488 days ago1732267163IN
0xB7a528CF...7d43E5ba5
0 ETH0.000714349.14148552
Vote_yea212363952024-11-21 13:26:35489 days ago1732195595IN
0xB7a528CF...7d43E5ba5
0 ETH0.0035087134.2
Propose212293992024-11-20 13:58:23490 days ago1732111103IN
0xB7a528CF...7d43E5ba5
0 ETH0.0026277414.89695407
Vote_yea192767262024-02-21 14:48:11763 days ago1708526891IN
0xB7a528CF...7d43E5ba5
0 ETH0.0064021660.95670815
Set_propose_min_...192287082024-02-14 20:54:23769 days ago1707944063IN
0xB7a528CF...7d43E5ba5
0 ETH0.0011076923.7514083
Set_management192264132024-02-14 13:09:35770 days ago1707916175IN
0xB7a528CF...7d43E5ba5
0 ETH0.0013575828.91494415

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Generic governor

Compiler Version
vyper:0.3.10

Optimization Enabled:
N/A

Other Settings:
default evmVersion, GNU AGPLv3 license

Contract Source Code (Vyper language format)

# @version 0.3.10
"""
@title Generic governor
@author 0xkorin, Yearn Finance
@license GNU AGPLv3
@notice
    Governor for executing arbitrary calls, after passing through a voting procedure.
    Time is divided in 4 week epochs. During the first three weeks, accounts with sufficient
    voting weight are able to submit proposals. In the final week of the epoch all accounts
    are able to vote on all open proposals. If at the end of the epoch the proposal has reached
    a sufficiently high fraction of votes, the proposal has passed and can be enacted through
    the executor.

    Most parameters are configurable by management. The management role is intended to be 
    transferred to the proxy, making the system self-governing.
"""

interface Measure:
    def vote_weight(_account: address) -> uint256: view

interface Executor:
    def execute(_script: Bytes[2048]): nonpayable

struct Proposal:
    epoch: uint256
    author: address
    ipfs: bytes32
    state: uint256
    hash: bytes32
    yea: uint256
    nay: uint256
    abstain: uint256

genesis: public(immutable(uint256))

management: public(address)
pending_management: public(address)

measure: public(address)
executor: public(address)
packed_quorum: uint256 # current (120) | previous (120) | epoch (16)
packed_majority: uint256 # current (120) | previous (120) | epoch (16)
packed_delay: uint256 # current (120) | previous (120) | epoch (16)
propose_min_weight: public(uint256)

num_proposals: public(uint256)
proposals: HashMap[uint256, Proposal]
voted: public(HashMap[address, HashMap[uint256, bool]])

event Propose:
    idx: indexed(uint256)
    epoch: indexed(uint256)
    author: indexed(address)
    ipfs: bytes32
    script: Bytes[2048]

event Retract:
    idx: indexed(uint256)

event Cancel:
    idx: indexed(uint256)

event Vote:
    account: indexed(address)
    idx: indexed(uint256)
    yea: uint256
    nay: uint256
    abstain: uint256

event Enact:
    idx: indexed(uint256)
    by: indexed(address)

event SetMeasure:
    measure: indexed(address)

event SetExecutor:
    executor: indexed(address)

event SetDelay:
    delay: uint256

event SetQuorum:
    quorum: uint256

event SetMajority:
    majority: uint256

event SetProposeMinWeight:
    min_weight: uint256

event PendingManagement:
    management: indexed(address)

event SetManagement:
    management: indexed(address)

STATE_ABSENT: constant(uint256)    = 0
STATE_PROPOSED: constant(uint256)  = 1
STATE_PASSED: constant(uint256)    = 2
STATE_REJECTED: constant(uint256)  = 3
STATE_RETRACTED: constant(uint256) = 4
STATE_CANCELLED: constant(uint256) = 5
STATE_ENACTED: constant(uint256)   = 6

WEEK: constant(uint256) = 7 * 24 * 60 * 60
EPOCH_LENGTH: constant(uint256) = 4 * WEEK
VOTE_LENGTH: constant(uint256) = WEEK
VOTE_START: constant(uint256) = EPOCH_LENGTH - VOTE_LENGTH
VOTE_SCALE: constant(uint256) = 10_000

VALUE_MASK: constant(uint256) = 2**120 - 1
PREVIOUS_SHIFT: constant(int128) = -120
EPOCH_MASK: constant(uint256) = 2**16 - 1
EPOCH_SHIFT: constant(int128) = -240

@external
def __init__(_genesis: uint256, _measure: address, _executor: address, _quorum: uint256, _majority: uint256, _delay: uint256):
    """
    @notice Constructor
    @param _genesis Timestamp of start of epoch 0
    @param _measure Vote weight measure
    @param _executor Governance executor
    @param _quorum Quorum threshold (18 decimals)
    @param _majority Majority threshold (bps)
    @param _delay Vote enactment delay (seconds)
    """
    assert _genesis <= block.timestamp
    assert _measure != empty(address)
    assert _executor != empty(address)
    assert _quorum <= VALUE_MASK
    assert _majority >= VOTE_SCALE / 2 and _majority <= VOTE_SCALE
    assert _delay <= VOTE_START

    genesis = _genesis
    self.management = msg.sender
    self.measure = _measure
    self.executor = _executor
    self.packed_quorum = _quorum
    self.packed_majority = _majority
    self.packed_delay = _delay
    assert self._epoch() > 0

@external
@view
def epoch() -> uint256:
    """
    @notice Get the current epoch
    @return Current epoch
    """
    return self._epoch()

@internal
@view
def _epoch() -> uint256:
    """
    @notice Get the current epoch
    """
    return (block.timestamp - genesis) / EPOCH_LENGTH

@external
@view
def propose_open() -> bool:
    """
    @notice Query whether the proposal period is currently open
    @return True: proposal period is open, False: proposal period is closed
    """
    return self._propose_open()

@internal
@view
def _propose_open() -> bool:
    """
    @notice Query whether the proposal period is currently open
    """
    return (block.timestamp - genesis) % EPOCH_LENGTH < VOTE_START

@external
@view
def vote_open() -> bool:
    """
    @notice Query whether the vote period is currently open
    @return True: vote period is open, False: vote period is closed
    """
    return self._vote_open()

@internal
@view
def _vote_open() -> bool:
    """
    @notice Query whether the vote period is currently open
    """
    return (block.timestamp - genesis) % EPOCH_LENGTH >= VOTE_START

@external
@view
def quorum() -> uint256:
    """
    @notice 
        Get quorum threshold. At least this voting weight must be used
        on a proposal for it to pass
    @return Quorum threshold (18 decimals)
    """
    return self.packed_quorum & VALUE_MASK

@external
@view
def previous_quorum() -> uint256:
    """
    @notice Get quorum threshold required to pass a proposal of previous epoch
    @return Quorum threshold (18 decimals)
    """
    return self._quorum(self._epoch() - 1)

@external
@view
def majority() -> uint256:
    """
    @notice Get majority threshold required to pass a proposal
    @return Majority threshold (bps)
    """
    return self.packed_majority & VALUE_MASK

@external
@view
def previous_majority() -> uint256:
    """
    @notice Get majority threshold required to pass a proposal of previous epoch
    @return Majority threshold (bps)
    """
    return self._majority(self._epoch() - 1)

@internal
@view
def _quorum(_epoch: uint256) -> uint256:
    """
    @notice Get quorum threshold of an epoch
    @param _epoch Epoch to query quorum threshold for
    @return Quorum threshold (18 decimals)
    @dev Should only be used to query this or last epoch's value
    """
    packed: uint256 = self.packed_quorum
    if _epoch < shift(packed, EPOCH_SHIFT):
        return shift(packed, PREVIOUS_SHIFT) & VALUE_MASK
    return packed & VALUE_MASK

@internal
@view
def _majority(_epoch: uint256) -> uint256:
    """
    @notice Get majority threshold of an epoch
    @param _epoch Epoch to query majority threshold for
    @return Majority threshold (bps)
    @dev Should only be used to query this or last epoch's value
    """
    packed: uint256 = self.packed_majority
    if _epoch < shift(packed, EPOCH_SHIFT):
        return shift(packed, PREVIOUS_SHIFT) & VALUE_MASK
    return packed & VALUE_MASK

@external
@view
def delay() -> uint256:
    """
    @notice Get minimum delay between passing a proposal and its enactment
    @return Enactment delay (seconds)
    """
    return self.packed_delay & VALUE_MASK

@external
@view
def previous_delay() -> uint256:
    """
    @notice Get minimum delay between passing a proposal and its enactment of previous epoch
    @return Enactment delay (seconds)
    """
    return self._delay(self._epoch() - 1)

@internal
@view
def _delay(_epoch: uint256) -> uint256:
    """
    @notice Get minimum delay between passing a proposal and its enactment
    @param _epoch Epoch to query delay for
    @return Enactment delay (seconds)
    @dev Should only be used to query this or last epoch's value
    """
    packed: uint256 = self.packed_delay
    if _epoch < shift(packed, EPOCH_SHIFT):
        return shift(packed, PREVIOUS_SHIFT) & VALUE_MASK
    return packed & VALUE_MASK

@external
@view
def proposal(_idx: uint256) -> Proposal:
    """
    @notice Get a proposal
    @param _idx Proposal index
    @return The proposal
    """
    proposal: Proposal = self.proposals[_idx]
    proposal.state = self._proposal_state(_idx)
    return proposal

@external
@view
def proposal_state(_idx: uint256) -> uint256:
    """
    @notice Get the state of a proposal
    @param _idx Proposal index
    @return The proposal state
    """
    return self._proposal_state(_idx)

@external
def update_proposal_state(_idx: uint256) -> uint256:
    """
    @notice Update the state of a proposal
    @param _idx Proposal index
    @return The proposal state
    """
    state: uint256 = self._proposal_state(_idx)
    if state != STATE_ABSENT:
        self.proposals[_idx].state = state
    return state

@internal
@view
def _proposal_state(_idx: uint256) -> uint256:
    """
    @notice Get the state of a proposal
    @dev Determines the pass/reject state based on the relative number of votes in favor
    """
    state: uint256 = self.proposals[_idx].state
    if state not in [STATE_PROPOSED, STATE_PASSED]:
        return state

    current_epoch: uint256 = self._epoch()
    vote_epoch: uint256 = self.proposals[_idx].epoch
    if current_epoch == vote_epoch:
        return STATE_PROPOSED
    
    if current_epoch == vote_epoch + 1:
        yea: uint256 = self.proposals[_idx].yea
        nay: uint256 = self.proposals[_idx].nay
        abstain: uint256 = self.proposals[_idx].abstain

        counted: uint256 = yea + nay # for majority purposes
        total: uint256 = counted + abstain # for quorum purposes
        if counted > 0 and total >= self._quorum(vote_epoch) and \
            yea * VOTE_SCALE >= counted * self._majority(vote_epoch):
            return STATE_PASSED

    return STATE_REJECTED

@external
def propose(_ipfs: bytes32, _script: Bytes[2048]) -> uint256:
    """
    @notice Create a proposal
    @param _ipfs IPFS CID containing a description of the proposal
    @param _script Script to be executed if the proposal passes
    @return The proposal index
    """
    assert self._propose_open()
    assert Measure(self.measure).vote_weight(msg.sender) >= self.propose_min_weight

    epoch: uint256 = self._epoch()
    idx: uint256 = self.num_proposals
    self.num_proposals = idx + 1
    self.proposals[idx].epoch = epoch
    self.proposals[idx].author = msg.sender
    self.proposals[idx].ipfs = _ipfs
    self.proposals[idx].state = STATE_PROPOSED
    self.proposals[idx].hash = keccak256(_script)
    log Propose(idx, epoch, msg.sender, _ipfs, _script)
    return idx

@external
def retract(_idx: uint256):
    """
    @notice Retract a proposal. Only callable by proposal author
    @param _idx Proposal index
    """
    assert msg.sender == self.proposals[_idx].author
    state: uint256 = self._proposal_state(_idx)
    assert state == STATE_PROPOSED and not self._vote_open()
    self.proposals[_idx].state = STATE_RETRACTED
    log Retract(_idx)

@external
def cancel(_idx: uint256):
    """
    @notice Cancel a proposal. Only callable by management
    @param _idx Proposal index
    """
    assert msg.sender == self.management
    state: uint256 = self._proposal_state(_idx)
    assert state == STATE_PROPOSED or state == STATE_PASSED
    self.proposals[_idx].state = STATE_CANCELLED
    log Cancel(_idx)

@external
def vote_yea(_idx: uint256):
    """
    @notice Vote in favor of a proposal
    @param _idx Proposal index
    """
    self._vote(_idx, VOTE_SCALE, 0, 0)

@external
def vote_nay(_idx: uint256):
    """
    @notice Vote in opposition of a proposal
    @param _idx Proposal index
    """
    self._vote(_idx, 0, VOTE_SCALE, 0)

@external
def vote_abstain(_idx: uint256):
    """
    @notice Vote in abstention of a proposal
    @param _idx Proposal index
    """
    self._vote(_idx, 0, 0, VOTE_SCALE)

@external
def vote(_idx: uint256, _yea: uint256, _nay: uint256, _abstain: uint256):
    """
    @notice Weighted vote on a proposal
    @param _idx Proposal index
    @param _yea Fraction of votes in favor
    @param _nay Fraction of votes in opposition
    @param _abstain Fraction of abstained votes
    """
    self._vote(_idx, _yea, _nay, _abstain)

@internal
def _vote(_idx: uint256, _yea: uint256, _nay: uint256, _abstain: uint256):
    """
    @notice Weighted vote on a proposal
    """
    assert self._vote_open()
    assert self.proposals[_idx].epoch == self._epoch()
    assert self.proposals[_idx].state == STATE_PROPOSED
    assert not self.voted[msg.sender][_idx]
    assert _yea + _nay + _abstain == VOTE_SCALE

    weight: uint256 = Measure(self.measure).vote_weight(msg.sender)
    assert weight > 0
    self.voted[msg.sender][_idx] = True
    yea: uint256 = 0
    if _yea > 0:
        yea = weight * _yea / VOTE_SCALE
        self.proposals[_idx].yea += yea
    nay: uint256 = 0
    if _nay > 0:
        nay = weight * _nay / VOTE_SCALE
        self.proposals[_idx].nay += nay
    abstain: uint256 = 0
    if _abstain > 0:
        abstain = weight * _abstain / VOTE_SCALE
        self.proposals[_idx].abstain += abstain
    log Vote(msg.sender, _idx, yea, nay, abstain)

@external
def enact(_idx: uint256, _script: Bytes[2048]):
    """
    @notice Enact a proposal after its vote has passed
    @param _idx Proposal index
    @param _script The script to execute
    """
    assert self._proposal_state(_idx) == STATE_PASSED
    assert keccak256(_script) == self.proposals[_idx].hash
    delay: uint256 = self._delay(self._epoch() - 1)
    assert (block.timestamp - genesis) % EPOCH_LENGTH >= delay

    self.proposals[_idx].state = STATE_ENACTED
    log Enact(_idx, msg.sender)
    Executor(self.executor).execute(_script)

@external
def set_measure(_measure: address):
    """
    @notice Set vote weight measure contract
    @param _measure New vote weight measure
    """
    assert msg.sender == self.management
    assert _measure != empty(address)
    self.measure = _measure
    log SetMeasure(_measure)

@external
def set_executor(_executor: address):
    """
    @notice Set executor contract
    @param _executor New executor
    """
    assert msg.sender == self.management
    assert _executor != empty(address)
    self.executor = _executor
    log SetExecutor(_executor)

@external
def set_quorum(_quorum: uint256):
    """
    @notice 
        Set quorum threshold in 18 decimals. 
        Proposals need at least this absolute number of votes to pass
    @param _quorum New quorum threshold (18 decimals)
    """
    assert msg.sender == self.management
    assert _quorum <= VALUE_MASK
    epoch: uint256 = self._epoch()
    previous: uint256 = self._quorum(epoch - 1)
    self.packed_quorum = _quorum | shift(previous, -PREVIOUS_SHIFT) | shift(epoch, -EPOCH_SHIFT)
    log SetQuorum(_quorum)

@external
def set_majority(_majority: uint256):
    """
    @notice 
        Set majority threshold in basispoints. 
        Proposals need at least this fraction of votes in favor to pass
    @param _majority New majority threshold (bps)
    """
    assert msg.sender == self.management
    assert _majority >= VOTE_SCALE / 2 and _majority <= VOTE_SCALE
    epoch: uint256 = self._epoch()
    previous: uint256 = self._majority(epoch - 1)
    self.packed_majority = _majority | shift(previous, -PREVIOUS_SHIFT) | shift(epoch, -EPOCH_SHIFT)
    log SetMajority(_majority)

@external
def set_delay(_delay: uint256):
    """
    @notice
        Set enactment time delay in seconds. Proposals that passed need to wait 
        at least this time before they can be enacted.
    @param _delay New delay (seconds)
    """
    assert msg.sender == self.management
    assert _delay <= VOTE_START
    epoch: uint256 = self._epoch()
    previous: uint256 = self._delay(epoch - 1)
    self.packed_delay = _delay | shift(previous, -PREVIOUS_SHIFT) | shift(epoch, -EPOCH_SHIFT)
    log SetDelay(_delay)

@external
def set_propose_min_weight(_propose_min_weight: uint256):
    """
    @notice Set minimum vote weight required to submit new proposals
    @param _propose_min_weight New minimum weight
    """
    assert msg.sender == self.management
    self.propose_min_weight = _propose_min_weight
    log SetProposeMinWeight(_propose_min_weight)

@external
def set_management(_management: address):
    """
    @notice 
        Set the pending management address.
        Needs to be accepted by that account separately to transfer management over
    @param _management New pending management address
    """
    assert msg.sender == self.management
    self.pending_management = _management
    log PendingManagement(_management)

@external
def accept_management():
    """
    @notice 
        Accept management role.
        Can only be called by account previously marked as pending management by current management
    """
    assert msg.sender == self.pending_management
    self.pending_management = empty(address)
    self.management = msg.sender
    log SetManagement(msg.sender)

Contract Security Audit

Contract ABI

API
[{"name":"Propose","inputs":[{"name":"idx","type":"uint256","indexed":true},{"name":"epoch","type":"uint256","indexed":true},{"name":"author","type":"address","indexed":true},{"name":"ipfs","type":"bytes32","indexed":false},{"name":"script","type":"bytes","indexed":false}],"anonymous":false,"type":"event"},{"name":"Retract","inputs":[{"name":"idx","type":"uint256","indexed":true}],"anonymous":false,"type":"event"},{"name":"Cancel","inputs":[{"name":"idx","type":"uint256","indexed":true}],"anonymous":false,"type":"event"},{"name":"Vote","inputs":[{"name":"account","type":"address","indexed":true},{"name":"idx","type":"uint256","indexed":true},{"name":"yea","type":"uint256","indexed":false},{"name":"nay","type":"uint256","indexed":false},{"name":"abstain","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"Enact","inputs":[{"name":"idx","type":"uint256","indexed":true},{"name":"by","type":"address","indexed":true}],"anonymous":false,"type":"event"},{"name":"SetMeasure","inputs":[{"name":"measure","type":"address","indexed":true}],"anonymous":false,"type":"event"},{"name":"SetExecutor","inputs":[{"name":"executor","type":"address","indexed":true}],"anonymous":false,"type":"event"},{"name":"SetDelay","inputs":[{"name":"delay","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"SetQuorum","inputs":[{"name":"quorum","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"SetMajority","inputs":[{"name":"majority","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"SetProposeMinWeight","inputs":[{"name":"min_weight","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"PendingManagement","inputs":[{"name":"management","type":"address","indexed":true}],"anonymous":false,"type":"event"},{"name":"SetManagement","inputs":[{"name":"management","type":"address","indexed":true}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_genesis","type":"uint256"},{"name":"_measure","type":"address"},{"name":"_executor","type":"address"},{"name":"_quorum","type":"uint256"},{"name":"_majority","type":"uint256"},{"name":"_delay","type":"uint256"}],"outputs":[]},{"stateMutability":"view","type":"function","name":"epoch","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"propose_open","inputs":[],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"vote_open","inputs":[],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"quorum","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"previous_quorum","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"majority","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"previous_majority","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"delay","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"previous_delay","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"proposal","inputs":[{"name":"_idx","type":"uint256"}],"outputs":[{"name":"","type":"tuple","components":[{"name":"epoch","type":"uint256"},{"name":"author","type":"address"},{"name":"ipfs","type":"bytes32"},{"name":"state","type":"uint256"},{"name":"hash","type":"bytes32"},{"name":"yea","type":"uint256"},{"name":"nay","type":"uint256"},{"name":"abstain","type":"uint256"}]}]},{"stateMutability":"view","type":"function","name":"proposal_state","inputs":[{"name":"_idx","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"update_proposal_state","inputs":[{"name":"_idx","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"propose","inputs":[{"name":"_ipfs","type":"bytes32"},{"name":"_script","type":"bytes"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"retract","inputs":[{"name":"_idx","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"cancel","inputs":[{"name":"_idx","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"vote_yea","inputs":[{"name":"_idx","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"vote_nay","inputs":[{"name":"_idx","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"vote_abstain","inputs":[{"name":"_idx","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"vote","inputs":[{"name":"_idx","type":"uint256"},{"name":"_yea","type":"uint256"},{"name":"_nay","type":"uint256"},{"name":"_abstain","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"enact","inputs":[{"name":"_idx","type":"uint256"},{"name":"_script","type":"bytes"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_measure","inputs":[{"name":"_measure","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_executor","inputs":[{"name":"_executor","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_quorum","inputs":[{"name":"_quorum","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_majority","inputs":[{"name":"_majority","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_delay","inputs":[{"name":"_delay","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_propose_min_weight","inputs":[{"name":"_propose_min_weight","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_management","inputs":[{"name":"_management","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"accept_management","inputs":[],"outputs":[]},{"stateMutability":"view","type":"function","name":"genesis","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"management","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"pending_management","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"measure","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"executor","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"propose_min_weight","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"num_proposals","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"voted","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]}]

61131151503461013057602061147b5f395f518060a01c61013057604052602061149b5f395f518060a01c6101305760605242602061145b5f395f511161013057604051156101305760605115610130576effffffffffffffffffffffffffffff60206114bb5f395f51116101305761138860206114db5f395f511015610086575f610095565b61271060206114db5f395f5111155b1561013057621baf8060206114fb5f395f511161013057602061145b5f395f5161131152335f5560405160025560605160035560206114bb5f395f5160045560206114db5f395f5160055560206114fb5f395f516006556100f66080610110565b608051156101305761131161013461000039611331610000f35b426113115180820382811161013057905090506224ea0081049050815250565b5f80fd5f3560e01c60026029820660011b6112bf01601e395f51565b63a7f0b3de8118610d4e57346112bb57602061131160403960206040f3610d4e565b6388a8d6028118610d4e57346112bb575f5460405260206040f3610d4e565b63770817ec8118610d4e57346112bb5760015460405260206040f3610d4e565b63efa9a1ad811861009557346112bb5760025460405260206040f35b631da0c5b28118610d4e576024361034176112bb576004356040526127106060526040366080376100c4611067565b00610d4e565b63c34c08e58118610d4e57346112bb5760035460405260206040f3610d4e565b6356d088ad811861010657346112bb5760075460405260206040f35b636a42b8f88118610d4e57346112bb576effffffffffffffffffffffffffffff6006541660405260206040f3610d4e565b63da2633e1811861015357346112bb5760085460405260206040f35b63f9139ee78118610d4e576024361034176112bb57600435608052610179610200610ec7565b610200516101e0526101e051156101a4576101e05160096004356020525f5260405f20600381019050555b60206101e0f3610d4e565b63c591aa988118610d4e576044361034176112bb576004358060a01c6112bb57604052600a6040516020525f5260405f20806024356020525f5260405f2090505460605260206060f3610d4e565b63900cf0cf8118610d4e57346112bb5760206102196040610d52565b6040f3610d4e565b638f9dcb0e811861024157346112bb57602061023d6040610d77565b6040f35b6330326c178118610d4e576024361034176112bb5760096004356020525f5260405f2080546101e05260018101546102005260028101546102205260038101546102405260048101546102605260058101546102805260068101546102a05260078101546102c052506004356080526102bb6102e0610ec7565b6102e051610240526101006101e0f3610d4e565b63786370ba81186102ef57346112bb5760206102eb6040610da1565b6040f35b638c84dede8118610d4e576024361034176112bb575f5433186112bb57621baf80600435116112bb5761032260a0610d52565b60a051608052608051600181038181116112bb57905060405261034560c0610e73565b60c05160a0526080518060f01b905060a0518060781b905060043517176006557fcf57d2e955986c39a021abcc2ff70c02efcd0a4dd6ce2255a84612dd7b65ea2960043560c052602060c0a100610d4e565b631703a0188118610d4e57346112bb576effffffffffffffffffffffffffffff6004541660405260206040f3610d4e565b630891e422811861040b57346112bb5760206103e46080610d52565b608051600181038181116112bb57905060c05260c05160405261040760a0610dcb565b60a0f35b639209a0348118610d4e57346112bb5760206104276080610d52565b608051600181038181116112bb57905060c05260c05160405261044a60a0610e1f565b60a0f3610d4e565b63b6e54bdf811861047f57346112bb576effffffffffffffffffffffffffffff6005541660405260206040f35b6308f896468118610d4e576024361034176112bb5760043560405260403660603761271060a0526104ae611067565b00610d4e565b63317608278118610d4e57346112bb5760206104d06080610d52565b608051600181038181116112bb57905060c05260c0516040526104f360a0610e73565b60a0f3610d4e565b6321436fb68118610d4e576024361034176112bb5760206004356080526105236101e0610ec7565b6101e0f3610d4e565b63ca0dc9738118610d4e576064361034176112bb576024356004016108008135116112bb57602081350180826040375050610568610860610d77565b61086051156112bb5760075460025463f49ec3106108605233610880526020610860602461087c845afa61059e573d5f5f3e3d5ffd5b60203d106112bb57610860905051106112bb576105bc610880610d52565b61088051610860526008546108805261088051600181018181106112bb579050600855610860516009610880516020525f5260405f2055336009610880516020525f5260405f20600181019050556004356009610880516020525f5260405f206002810190505560016009610880516020525f5260405f20600381019050556040516060206009610880516020525f5260405f20600481019050553361086051610880517f96c916fce93d56349236e10c95e6dca076e7e15d1f8da4221bdc3ea725fdc21c60406004356108a052806108c052806108a001602060405101808282604060045afa50508051806020830101601f825f03163682375050601f19601f825160200101169050810190506108a0a46020610880f3610d4e565b639fab66568118610d4e576024361034176112bb5760096004356020525f5260405f206001810190505433186112bb5760043560805261071a610200610ec7565b610200516101e05260016101e0511861074257610738610200610da1565b6102005115610744565b5f5b156112bb57600460096004356020525f5260405f20600381019050556004357ff8f7459e0aa0dfe770104b09822d11939d2c6ae3827597365a9620fb8b566df45f610200a200610d4e565b6340e58ee58118610d4e576024361034176112bb575f5433186112bb576004356080526107bd610200610ec7565b610200516101e05260016101e051186107d75760016107e0565b60026101e05118155b156112bb57600560096004356020525f5260405f20600381019050556004357f8bf30e7ff26833413be5f69e1d373744864d600b664204b4a2f9844a8eedb9ed5f610200a200610d4e565b63520f3f128118610d4e576024361034176112bb576004356040525f6060526127106080525f60a05261085c611067565b00610d4e565b6368c9e3888118610d4e576084361034176112bb5760806004604037610886611067565b00610d4e565b639fb87fa68118610d4e576064361034176112bb576024356004016108008135116112bb57602081350180826101e037505060026004356080526108d1610a00610ec7565b610a0051186112bb5760096004356020525f5260405f20600481019050546101e05161020020186112bb57610907610a20610d52565b610a2051600181038181116112bb579050610a6052610a605160405261092e610a40610e73565b610a4051610a0052610a00514260206113115f395f518082038281116112bb57905090506224ea0081069050106112bb57600660096004356020525f5260405f2060038101905055336004357ff60165ea3cb16e15e52e56c55da006a557664f5ec8e6fbc917cf43e98e8000745f610a20a36003546309c5eabe610a2052602080610a405280610a400160206101e051018082826101e060045afa50508051806020830101601f825f03163682375050601f19601f82516020010116905081015050803b156112bb575f610a20610844610a3c5f855af1610a11573d5f5f3e3d5ffd5b5000610d4e565b63c764c59f8118610a7b576024361034176112bb576004358060a01c6112bb576040525f5433186112bb57604051156112bb576040516002556040517f602e8126584dd3551a170697ca62a8225945d42068a7ac49f200b7a60110aca95f6060a2005b6335ece2d08118610d4e576024361034176112bb575f5433186112bb576113886004351015610aaa575f610ab3565b61271060043511155b156112bb57610ac260a0610d52565b60a051608052608051600181038181116112bb579050604052610ae560c0610e1f565b60c05160a0526080518060f01b905060a0518060781b905060043517176005557fa09c6d124473332682507ea3709f0b9c7afe1e6e4f79236e4271a932fbd829ec60043560c052602060c0a100610d4e565b633ee163968118610d4e576024361034176112bb576004358060a01c6112bb576040525f5433186112bb57604051156112bb576040516003556040517f34d4f6a542f13533b1eaa27e7ae8691368028d05b7075ad7a6c34df851a67a435f6060a200610d4e565b63e92d8f138118610d4e576024361034176112bb575f5433186112bb576effffffffffffffffffffffffffffff600435116112bb57610bdd60a0610d52565b60a051608052608051600181038181116112bb579050604052610c0060c0610dcb565b60c05160a0526080518060f01b905060a0518060781b905060043517176004557f8e72be630a666d46b219565c1647e3792924d9c74e901fa3c4a33e23b91fb9b160043560c052602060c0a100610d4e565b63c2845d038118610d4e576024361034176112bb575f5433186112bb576004356007557f794c2bee0673b79e11963e4a2c36f25bf259d66aff8461bc57cd3b8a0644c8a060043560405260206040a100610d4e565b63fd066ecc8118610d4e576024361034176112bb576004358060a01c6112bb576040525f5433186112bb576040516001556040517fe7b5cc087e6e47e33e86bdfe4720b7e849891938b18ff6e0c3f92299de79e60c5f6060a200610d4e565b63759be10c8118610d4e57346112bb5760015433186112bb575f600155335f55337fafe23f9e1f603b288748a507d5a993957e9f14313a5889d5a070851299939d595f6040a2005b5f5ffd5b4260206113115f395f518082038281116112bb57905090506224ea0081049050815250565b621baf804260206113115f395f518082038281116112bb57905090506224ea008106905010815250565b621baf7f4260206113115f395f518082038281116112bb57905090506224ea008106905011815250565b6004546060526060518060f01c90506040511015610e05576effffffffffffffffffffffffffffff6060518060781c905016815250610e1d565b6effffffffffffffffffffffffffffff606051168152505b565b6005546060526060518060f01c90506040511015610e59576effffffffffffffffffffffffffffff6060518060781c905016815250610e71565b6effffffffffffffffffffffffffffff606051168152505b565b6006546060526060518060f01c90506040511015610ead576effffffffffffffffffffffffffffff6060518060781c905016815250610ec5565b6effffffffffffffffffffffffffffff606051168152505b565b60096080516020525f5260405f206003810190505460a05260a05160018114610ef4576002811415610ef6565b5f5b905015610f085760a051815250611065565b610f1260e0610d52565b60e05160c05260096080516020525f5260405f205460e05260e05160c05118610f3f576001815250611065565b60e051600181018181106112bb57905060c0511861105f5760096080516020525f5260405f20600581019050546101005260096080516020525f5260405f20600681019050546101205260096080516020525f5260405f20600781019050546101405261010051610120518082018281106112bb57905090506101605261016051610140518082018281106112bb579050905061018052610160511561104e5760e051604052610ff06101a0610dcb565b6101a051610180511015611004575f611050565b6101605160e0516040526110196101c0610e1f565b6101c0518082028115838383041417156112bb5790509050610100516127108102816127108204186112bb5790501015611050565b5f5b1561105f576002815250611065565b60038152505b565b61107160c0610da1565b60c051156112bb5761108360c0610d52565b60c05160096040516020525f5260405f2054186112bb57600160096040516020525f5260405f2060038101905054186112bb57600a336020525f5260405f20806040516020525f5260405f209050546112bb576127106060516080518082018281106112bb579050905060a0518082018281106112bb5790509050186112bb5760025463f49ec31060e0523361010052602060e0602460fc845afa61112a573d5f5f3e3d5ffd5b60203d106112bb5760e090505160c05260c051156112bb576001600a336020525f5260405f20806040516020525f5260405f209050555f60e052606051156111bb5760c0516060518082028115838383041417156112bb57905090506127108104905060e05260096040516020525f5260405f20600581019050805460e0518082018281106112bb57905090508155505b5f61010052608051156112195760c0516080518082028115838383041417156112bb5790509050612710810490506101005260096040516020525f5260405f206006810190508054610100518082018281106112bb57905090508155505b5f6101205260a051156112775760c05160a0518082028115838383041417156112bb5790509050612710810490506101205260096040516020525f5260405f206007810190508054610120518082018281106112bb57905090508155505b604051337f89eb0be5e1a1bcbad3c382ad8d3f2698ea4d54d9a179cd2368d184358ecad45160e05161014052610100516101605261012051610180526060610140a3565b5f80fd00ca0b9e01fd003a06d90d4e02cf0ca70d4e03c80d4e00ea045200590d4e052c082b0c520d4e0d4e0a1808620d4e0d4e022100180d4e0d4e013701af078f0d4e0b3704fb04b4088c0d0603970d4e00790d4e841913118118521820a16576797065728300030a00160000000000000000000000000000000000000000000000000000000064d4288000000000000000000000000052574a10ce418afef388e39cea61643d33dba81d00000000000000000000000071258ee726644f1d52d6a9f5e11c21d1e38c2bf10000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000013880000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x5f3560e01c60026029820660011b6112bf01601e395f51565b63a7f0b3de8118610d4e57346112bb57602061131160403960206040f3610d4e565b6388a8d6028118610d4e57346112bb575f5460405260206040f3610d4e565b63770817ec8118610d4e57346112bb5760015460405260206040f3610d4e565b63efa9a1ad811861009557346112bb5760025460405260206040f35b631da0c5b28118610d4e576024361034176112bb576004356040526127106060526040366080376100c4611067565b00610d4e565b63c34c08e58118610d4e57346112bb5760035460405260206040f3610d4e565b6356d088ad811861010657346112bb5760075460405260206040f35b636a42b8f88118610d4e57346112bb576effffffffffffffffffffffffffffff6006541660405260206040f3610d4e565b63da2633e1811861015357346112bb5760085460405260206040f35b63f9139ee78118610d4e576024361034176112bb57600435608052610179610200610ec7565b610200516101e0526101e051156101a4576101e05160096004356020525f5260405f20600381019050555b60206101e0f3610d4e565b63c591aa988118610d4e576044361034176112bb576004358060a01c6112bb57604052600a6040516020525f5260405f20806024356020525f5260405f2090505460605260206060f3610d4e565b63900cf0cf8118610d4e57346112bb5760206102196040610d52565b6040f3610d4e565b638f9dcb0e811861024157346112bb57602061023d6040610d77565b6040f35b6330326c178118610d4e576024361034176112bb5760096004356020525f5260405f2080546101e05260018101546102005260028101546102205260038101546102405260048101546102605260058101546102805260068101546102a05260078101546102c052506004356080526102bb6102e0610ec7565b6102e051610240526101006101e0f3610d4e565b63786370ba81186102ef57346112bb5760206102eb6040610da1565b6040f35b638c84dede8118610d4e576024361034176112bb575f5433186112bb57621baf80600435116112bb5761032260a0610d52565b60a051608052608051600181038181116112bb57905060405261034560c0610e73565b60c05160a0526080518060f01b905060a0518060781b905060043517176006557fcf57d2e955986c39a021abcc2ff70c02efcd0a4dd6ce2255a84612dd7b65ea2960043560c052602060c0a100610d4e565b631703a0188118610d4e57346112bb576effffffffffffffffffffffffffffff6004541660405260206040f3610d4e565b630891e422811861040b57346112bb5760206103e46080610d52565b608051600181038181116112bb57905060c05260c05160405261040760a0610dcb565b60a0f35b639209a0348118610d4e57346112bb5760206104276080610d52565b608051600181038181116112bb57905060c05260c05160405261044a60a0610e1f565b60a0f3610d4e565b63b6e54bdf811861047f57346112bb576effffffffffffffffffffffffffffff6005541660405260206040f35b6308f896468118610d4e576024361034176112bb5760043560405260403660603761271060a0526104ae611067565b00610d4e565b63317608278118610d4e57346112bb5760206104d06080610d52565b608051600181038181116112bb57905060c05260c0516040526104f360a0610e73565b60a0f3610d4e565b6321436fb68118610d4e576024361034176112bb5760206004356080526105236101e0610ec7565b6101e0f3610d4e565b63ca0dc9738118610d4e576064361034176112bb576024356004016108008135116112bb57602081350180826040375050610568610860610d77565b61086051156112bb5760075460025463f49ec3106108605233610880526020610860602461087c845afa61059e573d5f5f3e3d5ffd5b60203d106112bb57610860905051106112bb576105bc610880610d52565b61088051610860526008546108805261088051600181018181106112bb579050600855610860516009610880516020525f5260405f2055336009610880516020525f5260405f20600181019050556004356009610880516020525f5260405f206002810190505560016009610880516020525f5260405f20600381019050556040516060206009610880516020525f5260405f20600481019050553361086051610880517f96c916fce93d56349236e10c95e6dca076e7e15d1f8da4221bdc3ea725fdc21c60406004356108a052806108c052806108a001602060405101808282604060045afa50508051806020830101601f825f03163682375050601f19601f825160200101169050810190506108a0a46020610880f3610d4e565b639fab66568118610d4e576024361034176112bb5760096004356020525f5260405f206001810190505433186112bb5760043560805261071a610200610ec7565b610200516101e05260016101e0511861074257610738610200610da1565b6102005115610744565b5f5b156112bb57600460096004356020525f5260405f20600381019050556004357ff8f7459e0aa0dfe770104b09822d11939d2c6ae3827597365a9620fb8b566df45f610200a200610d4e565b6340e58ee58118610d4e576024361034176112bb575f5433186112bb576004356080526107bd610200610ec7565b610200516101e05260016101e051186107d75760016107e0565b60026101e05118155b156112bb57600560096004356020525f5260405f20600381019050556004357f8bf30e7ff26833413be5f69e1d373744864d600b664204b4a2f9844a8eedb9ed5f610200a200610d4e565b63520f3f128118610d4e576024361034176112bb576004356040525f6060526127106080525f60a05261085c611067565b00610d4e565b6368c9e3888118610d4e576084361034176112bb5760806004604037610886611067565b00610d4e565b639fb87fa68118610d4e576064361034176112bb576024356004016108008135116112bb57602081350180826101e037505060026004356080526108d1610a00610ec7565b610a0051186112bb5760096004356020525f5260405f20600481019050546101e05161020020186112bb57610907610a20610d52565b610a2051600181038181116112bb579050610a6052610a605160405261092e610a40610e73565b610a4051610a0052610a00514260206113115f395f518082038281116112bb57905090506224ea0081069050106112bb57600660096004356020525f5260405f2060038101905055336004357ff60165ea3cb16e15e52e56c55da006a557664f5ec8e6fbc917cf43e98e8000745f610a20a36003546309c5eabe610a2052602080610a405280610a400160206101e051018082826101e060045afa50508051806020830101601f825f03163682375050601f19601f82516020010116905081015050803b156112bb575f610a20610844610a3c5f855af1610a11573d5f5f3e3d5ffd5b5000610d4e565b63c764c59f8118610a7b576024361034176112bb576004358060a01c6112bb576040525f5433186112bb57604051156112bb576040516002556040517f602e8126584dd3551a170697ca62a8225945d42068a7ac49f200b7a60110aca95f6060a2005b6335ece2d08118610d4e576024361034176112bb575f5433186112bb576113886004351015610aaa575f610ab3565b61271060043511155b156112bb57610ac260a0610d52565b60a051608052608051600181038181116112bb579050604052610ae560c0610e1f565b60c05160a0526080518060f01b905060a0518060781b905060043517176005557fa09c6d124473332682507ea3709f0b9c7afe1e6e4f79236e4271a932fbd829ec60043560c052602060c0a100610d4e565b633ee163968118610d4e576024361034176112bb576004358060a01c6112bb576040525f5433186112bb57604051156112bb576040516003556040517f34d4f6a542f13533b1eaa27e7ae8691368028d05b7075ad7a6c34df851a67a435f6060a200610d4e565b63e92d8f138118610d4e576024361034176112bb575f5433186112bb576effffffffffffffffffffffffffffff600435116112bb57610bdd60a0610d52565b60a051608052608051600181038181116112bb579050604052610c0060c0610dcb565b60c05160a0526080518060f01b905060a0518060781b905060043517176004557f8e72be630a666d46b219565c1647e3792924d9c74e901fa3c4a33e23b91fb9b160043560c052602060c0a100610d4e565b63c2845d038118610d4e576024361034176112bb575f5433186112bb576004356007557f794c2bee0673b79e11963e4a2c36f25bf259d66aff8461bc57cd3b8a0644c8a060043560405260206040a100610d4e565b63fd066ecc8118610d4e576024361034176112bb576004358060a01c6112bb576040525f5433186112bb576040516001556040517fe7b5cc087e6e47e33e86bdfe4720b7e849891938b18ff6e0c3f92299de79e60c5f6060a200610d4e565b63759be10c8118610d4e57346112bb5760015433186112bb575f600155335f55337fafe23f9e1f603b288748a507d5a993957e9f14313a5889d5a070851299939d595f6040a2005b5f5ffd5b4260206113115f395f518082038281116112bb57905090506224ea0081049050815250565b621baf804260206113115f395f518082038281116112bb57905090506224ea008106905010815250565b621baf7f4260206113115f395f518082038281116112bb57905090506224ea008106905011815250565b6004546060526060518060f01c90506040511015610e05576effffffffffffffffffffffffffffff6060518060781c905016815250610e1d565b6effffffffffffffffffffffffffffff606051168152505b565b6005546060526060518060f01c90506040511015610e59576effffffffffffffffffffffffffffff6060518060781c905016815250610e71565b6effffffffffffffffffffffffffffff606051168152505b565b6006546060526060518060f01c90506040511015610ead576effffffffffffffffffffffffffffff6060518060781c905016815250610ec5565b6effffffffffffffffffffffffffffff606051168152505b565b60096080516020525f5260405f206003810190505460a05260a05160018114610ef4576002811415610ef6565b5f5b905015610f085760a051815250611065565b610f1260e0610d52565b60e05160c05260096080516020525f5260405f205460e05260e05160c05118610f3f576001815250611065565b60e051600181018181106112bb57905060c0511861105f5760096080516020525f5260405f20600581019050546101005260096080516020525f5260405f20600681019050546101205260096080516020525f5260405f20600781019050546101405261010051610120518082018281106112bb57905090506101605261016051610140518082018281106112bb579050905061018052610160511561104e5760e051604052610ff06101a0610dcb565b6101a051610180511015611004575f611050565b6101605160e0516040526110196101c0610e1f565b6101c0518082028115838383041417156112bb5790509050610100516127108102816127108204186112bb5790501015611050565b5f5b1561105f576002815250611065565b60038152505b565b61107160c0610da1565b60c051156112bb5761108360c0610d52565b60c05160096040516020525f5260405f2054186112bb57600160096040516020525f5260405f2060038101905054186112bb57600a336020525f5260405f20806040516020525f5260405f209050546112bb576127106060516080518082018281106112bb579050905060a0518082018281106112bb5790509050186112bb5760025463f49ec31060e0523361010052602060e0602460fc845afa61112a573d5f5f3e3d5ffd5b60203d106112bb5760e090505160c05260c051156112bb576001600a336020525f5260405f20806040516020525f5260405f209050555f60e052606051156111bb5760c0516060518082028115838383041417156112bb57905090506127108104905060e05260096040516020525f5260405f20600581019050805460e0518082018281106112bb57905090508155505b5f61010052608051156112195760c0516080518082028115838383041417156112bb5790509050612710810490506101005260096040516020525f5260405f206006810190508054610100518082018281106112bb57905090508155505b5f6101205260a051156112775760c05160a0518082028115838383041417156112bb5790509050612710810490506101205260096040516020525f5260405f206007810190508054610120518082018281106112bb57905090508155505b604051337f89eb0be5e1a1bcbad3c382ad8d3f2698ea4d54d9a179cd2368d184358ecad45160e05161014052610100516101605261012051610180526060610140a3565b5f80fd00ca0b9e01fd003a06d90d4e02cf0ca70d4e03c80d4e00ea045200590d4e052c082b0c520d4e0d4e0a1808620d4e0d4e022100180d4e0d4e013701af078f0d4e0b3704fb04b4088c0d0603970d4e00790d4e0000000000000000000000000000000000000000000000000000000064d42880

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000000000000000000000000000000000000064d4288000000000000000000000000052574a10ce418afef388e39cea61643d33dba81d00000000000000000000000071258ee726644f1d52d6a9f5e11c21d1e38c2bf10000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000013880000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _genesis (uint256): 1691625600
Arg [1] : _measure (address): 0x52574a10ce418AFeF388e39cea61643d33dbA81D
Arg [2] : _executor (address): 0x71258Ee726644f1D52d6A9F5E11C21d1E38c2bF1
Arg [3] : _quorum (uint256): 1000000000000000000
Arg [4] : _majority (uint256): 5000
Arg [5] : _delay (uint256): 0

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000064d42880
Arg [1] : 00000000000000000000000052574a10ce418afef388e39cea61643d33dba81d
Arg [2] : 00000000000000000000000071258ee726644f1d52d6a9f5e11c21d1e38c2bf1
Arg [3] : 0000000000000000000000000000000000000000000000000de0b6b3a7640000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000001388
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000000


Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.