ETH Price: $2,084.30 (-0.91%)
Gas: 0.03 Gwei

Token

Sweepers Governance ()
 

Overview

Max Total Supply

0 Sweepers Governance

Holders

0

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
SweepersGovernanceProxy

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 999999 runs

Other Settings:
istanbul EvmVersion, BSD-3-Clause license
// SPDX-License-Identifier: BSD-3-Clause

/// @title The Sweepers Governance proxy contract



// LICENSE
// SweepersGovernanceProxy.sol is a modified version of Compound Lab's GovernorBravoDelegator.sol:
// https://github.com/compound-finance/compound-protocol/blob/b9b14038612d846b83f8a009a82c38974ff2dcfe/contracts/Governance/GovernorBravoDelegator.sol
//
// GovernorBravoDelegator.sol source code Copyright 2020 Compound Labs, Inc. licensed under the BSD-3-Clause license.
// With modifications by Sweeperders Governance.
//
// Additional conditions of BSD-3-Clause can be found here: https://opensource.org/licenses/BSD-3-Clause
//
//
// SweepersGovernanceProxy.sol uses parts of Open Zeppelin's Proxy.sol:
// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/5c8746f56b4bed8cc9e0e044f5f69ab2f9428ce1/contracts/proxy/Proxy.sol
//
// Proxy.sol source code licensed under MIT License.
//
// MODIFICATIONS
// The fallback() and receive() functions of Proxy.sol have been used to allow Solidity > 0.6.0 compatibility

pragma solidity 0.8.17;

import './SweepersGovernanceInterfaces.sol';

contract SweepersGovernanceProxy is SweepersGovernanceProxyStorage, SweepersGovernanceEvents {
    constructor(
        address timelock_,
        address sweepers_,
        address vetoer_,
        address admin_,
        address implementation_,
        uint256 votingPeriod_,
        uint256 votingDelay_,
        uint256 proposalThresholdBPS_,
        uint256 quorumVotesBPS_
    ) {
        // Admin set to msg.sender for initialization
        admin = msg.sender;

        delegateTo(
            implementation_,
            abi.encodeWithSignature(
                'initialize(address,address,address,uint256,uint256,uint256,uint256)',
                timelock_,
                sweepers_,
                vetoer_,
                votingPeriod_,
                votingDelay_,
                proposalThresholdBPS_,
                quorumVotesBPS_
            )
        );

        _setImplementation(implementation_);

        admin = admin_;
    }

    /**
     * @notice Called by the admin to update the implementation of the delegator
     * @param implementation_ The address of the new implementation for delegation
     */
    function _setImplementation(address implementation_) public {
        require(msg.sender == admin, 'SweepersGovernanceProxy::_setImplementation: admin only');
        require(implementation_ != address(0), 'SweepersGovernanceProxy::_setImplementation: invalid implementation address');

        address oldImplementation = implementation;
        implementation = implementation_;

        emit NewImplementation(oldImplementation, implementation);
    }

    /**
     * @notice Internal method to delegate execution to another contract
     * @dev It returns to the external caller whatever the implementation returns or forwards reverts
     * @param callee The contract to delegatecall
     * @param data The raw data to delegatecall
     */
    function delegateTo(address callee, bytes memory data) internal {
        (bool success, bytes memory returnData) = callee.delegatecall(data);
        assembly {
            if eq(success, 0) {
                revert(add(returnData, 0x20), returndatasize())
            }
        }
    }

    /**
     * @dev Delegates execution to an implementation contract.
     * It returns to the external caller whatever the implementation returns
     * or forwards reverts.
     */
    function _fallback() internal {
        // delegate all other functions to current implementation
        (bool success, ) = implementation.delegatecall(msg.data);

        assembly {
            let free_mem_ptr := mload(0x40)
            returndatacopy(free_mem_ptr, 0, returndatasize())

            switch success
            case 0 {
                revert(free_mem_ptr, returndatasize())
            }
            default {
                return(free_mem_ptr, returndatasize())
            }
        }
    }

    /**
     * @dev Fallback function that delegates calls to the `implementation`. Will run if no other
     * function in the contract matches the call data.
     */
    fallback() external payable {
        _fallback();
    }

    /**
     * @dev Fallback function that delegates calls to `implementation`. Will run if call data
     * is empty.
     */
    receive() external payable {
        _fallback();
    }
}

// SPDX-License-Identifier: BSD-3-Clause

/// @title Sweepers Governance Logic interfaces and events



// LICENSE
// SweepersGovernanceInterfaces.sol is a modified version of Compound Lab's GovernorBravoInterfaces.sol:
// https://github.com/compound-finance/compound-protocol/blob/b9b14038612d846b83f8a009a82c38974ff2dcfe/contracts/Governance/GovernorBravoInterfaces.sol
//
// GovernorBravoInterfaces.sol source code Copyright 2020 Compound Labs, Inc. licensed under the BSD-3-Clause license.
// With modifications by Sweeperders Governance.
//
// Additional conditions of BSD-3-Clause can be found here: https://opensource.org/licenses/BSD-3-Clause
//
// MODIFICATIONS
// SweepersGovernanceEvents, SweepersGovernanceProxyStorage, SweepersGovernanceStorageV1 adds support for changes made by Sweepers Governance to GovernorBravo.sol
// See SweepersGovernanceLogicV1.sol for more details.

pragma solidity 0.8.17;

contract SweepersGovernanceEvents {
    /// @notice An event emitted when a new proposal is created
    event ProposalCreated(
        uint256 id,
        address proposer,
        address[] targets,
        uint256[] values,
        string[] signatures,
        bytes[] calldatas,
        uint256 startBlock,
        uint256 endBlock,
        string description,
        string openseaSlug,
        address project
    );

    event ProposalCreatedWithRequirements(
        uint256 id,
        address proposer,
        address[] targets,
        uint256[] values,
        string[] signatures,
        bytes[] calldatas,
        uint256 startBlock,
        uint256 endBlock,
        uint256 proposalThreshold,
        uint256 quorumVotes,
        string description,
        string openseaSlug,
        address project
    );

    /// @notice An event emitted when a vote has been cast on a proposal
    /// @param voter The address which casted a vote
    /// @param proposalId The proposal id which was voted on
    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain
    /// @param votes Number of votes which were cast by the voter
    /// @param reason The reason given for the vote by the voter
    event VoteCast(address indexed voter, uint256 proposalId, uint8 support, uint256 votes, string reason);

    /// @notice An event emitted when a proposal has been canceled
    event ProposalCanceled(uint256 id);

    /// @notice An event emitted when a proposal has been queued in the SweepersGovernanceExecutor
    event ProposalQueued(uint256 id, uint256 eta);

    /// @notice An event emitted when a proposal has been executed in the SweepersGovernanceExecutor
    event ProposalExecuted(uint256 id);

    /// @notice An event emitted when a proposal has been vetoed by vetoAddress
    event ProposalVetoed(uint256 id);

    /// @notice An event emitted when the voting delay is set
    event VotingDelaySet(uint256 oldVotingDelay, uint256 newVotingDelay);

    /// @notice An event emitted when the voting period is set
    event VotingPeriodSet(uint256 oldVotingPeriod, uint256 newVotingPeriod);

    /// @notice Emitted when implementation is changed
    event NewImplementation(address oldImplementation, address newImplementation);

    /// @notice Emitted when proposal threshold basis points is set
    event ProposalThresholdBPSSet(uint256 oldProposalThresholdBPS, uint256 newProposalThresholdBPS);

    /// @notice Emitted when proposal threshold strict amount is set
    event ProposalThresholdStrictSet(uint256 oldProposalThresholdStrict, uint256 newProposalThresholdStrict);

    /// @notice Emitted when quorum votes basis points is set
    event QuorumVotesBPSSet(uint256 oldQuorumVotesBPS, uint256 newQuorumVotesBPS);

    /// @notice Emitted when pendingAdmin is changed
    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);

    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated
    event NewAdmin(address oldAdmin, address newAdmin);

    /// @notice Emitted when vetoer is changed
    event NewVetoer(address oldVetoer, address newVetoer);
}

contract SweepersGovernanceProxyStorage {
    /// @notice Administrator for this contract
    address public admin;

    /// @notice Pending administrator for this contract
    address public pendingAdmin;

    /// @notice Active brains of Governor
    address public implementation;
}

/**
 * @title Storage for Governor Bravo Delegate
 * @notice For future upgrades, do not change SweepersGovernanceStorageV1. Create a new
 * contract which implements SweepersGovernanceStorageV1 and following the naming convention
 * SweepersGovernanceStorageVX.
 */
contract SweepersGovernanceStorageV1 is SweepersGovernanceProxyStorage {
    /// @notice Vetoer who has the ability to veto any proposal
    address public vetoer;

    /// @notice The delay before voting on a proposal may take place, once proposed, in blocks
    uint256 public votingDelay;

    /// @notice The duration of voting on a proposal, in blocks
    uint256 public votingPeriod;

    /// @notice The basis point number of votes required in order for a voter to become a proposer.
    uint256 public proposalThresholdBPS;

    /// @notice The strict number of votes required in order for a voter to become a proposer.
    uint256 public proposalThresholdStrict;

    /// @notice Whether to use BPS or Strict Threshold calculation to become a proposer.
    bool public useProposalThresholdBPS;

    /// @notice The basis point number of votes in support of a proposal required in order for a quorum to be reached and for a vote to succeed. *DIFFERS from GovernerBravo
    uint256 public quorumVotesBPS;

    /// @notice The total number of proposals
    uint256 public proposalCount;

    /// @notice Whether or not targets are restricted
    bool public targetsRestricted;

    /// @notice The allowed target addresses
    mapping(address => bool) public allowedTargets;

    /// @notice The address of the Sweepers Governance Executor SweepersGovernanceExecutor
    ISweepersGovernanceExecutor public timelock;

    /// @notice The address of the Sweepers tokens
    SweepersTokenLike public sweepers;

    /// @notice The official record of all proposals ever proposed
    mapping(uint256 => Proposal) public proposals;

    /// @notice The latest proposal for each proposer
    mapping(address => uint256) public latestProposalIds;

    struct Proposal {
        /// @notice Unique id for looking up a proposal
        uint256 id;
        /// @notice Creator of the proposal
        address proposer;
        /// @notice The number of votes needed to create a proposal at the time of proposal creation. *DIFFERS from GovernerBravo
        uint256 proposalThreshold;
        /// @notice The number of votes in support of a proposal required in order for a quorum to be reached and for a vote to succeed at the time of proposal creation. *DIFFERS from GovernerBravo
        uint256 quorumVotes;
        /// @notice The timestamp that the proposal will be available for execution, set once the vote succeeds
        uint256 eta;
        /// @notice the ordered list of target addresses for calls to be made
        address[] targets;
        /// @notice The ordered list of values (i.e. msg.value) to be passed to the calls to be made
        uint256[] values;
        /// @notice The ordered list of function signatures to be called
        string[] signatures;
        /// @notice The ordered list of calldata to be passed to each call
        bytes[] calldatas;
        /// @notice The Opensea slug for the project to be swept
        string openseaSlug;
        ///@notice The contract address for the project to be swept
        address project;
        /// @notice The block at which voting begins: holders must delegate their votes prior to this block
        uint256 startBlock;
        /// @notice The block at which voting ends: votes must be cast prior to this block
        uint256 endBlock;
        /// @notice Current number of votes in favor of this proposal
        uint256 forVotes;
        /// @notice Current number of votes in opposition to this proposal
        uint256 againstVotes;
        /// @notice Current number of votes for abstaining for this proposal
        uint256 abstainVotes;
        /// @notice Flag marking whether the proposal has been canceled
        bool canceled;
        /// @notice Flag marking whether the proposal has been vetoed
        bool vetoed;
        /// @notice Flag marking whether the proposal has been executed
        bool executed;
        /// @notice Receipts of ballots for the entire set of voters
        mapping(address => Receipt) receipts;
    }

    /// @notice Ballot receipt record for a voter
    struct Receipt {
        /// @notice Whether or not a vote has been cast
        bool hasVoted;
        /// @notice Whether or not the voter supports the proposal or abstains
        uint8 support;
        /// @notice The number of votes the voter had, which were cast
        uint96 votes;
    }

    /// @notice Possible states that a proposal may be in
    enum ProposalState {
        Pending,
        Active,
        Canceled,
        Defeated,
        Succeeded,
        Queued,
        Expired,
        Executed,
        Vetoed
    }
}

interface ISweepersGovernanceExecutor {
    function delay() external view returns (uint256);

    function GRACE_PERIOD() external view returns (uint256);

    function acceptAdmin() external;

    function queuedTransactions(bytes32 hash) external view returns (bool);

    function queueTransaction(
        address target,
        uint256 value,
        string calldata signature,
        bytes calldata data,
        uint256 eta
    ) external returns (bytes32);

    function cancelTransaction(
        address target,
        uint256 value,
        string calldata signature,
        bytes calldata data,
        uint256 eta
    ) external;

    function executeTransaction(
        address target,
        uint256 value,
        string calldata signature,
        bytes calldata data,
        uint256 eta
    ) external payable returns (bytes memory);
}

interface SweepersTokenLike {
    function getPriorVotes(address account, uint256 blockNumber) external view returns (uint96);

    function totalSupply() external view returns (uint96);
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 999999
  },
  "viaIR": true,
  "evmVersion": "istanbul",
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"timelock_","type":"address"},{"internalType":"address","name":"sweepers_","type":"address"},{"internalType":"address","name":"vetoer_","type":"address"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"address","name":"implementation_","type":"address"},{"internalType":"uint256","name":"votingPeriod_","type":"uint256"},{"internalType":"uint256","name":"votingDelay_","type":"uint256"},{"internalType":"uint256","name":"proposalThresholdBPS_","type":"uint256"},{"internalType":"uint256","name":"quorumVotesBPS_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"NewAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldImplementation","type":"address"},{"indexed":false,"internalType":"address","name":"newImplementation","type":"address"}],"name":"NewImplementation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldPendingAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"NewPendingAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldVetoer","type":"address"},{"indexed":false,"internalType":"address","name":"newVetoer","type":"address"}],"name":"NewVetoer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"ProposalCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"address","name":"proposer","type":"address"},{"indexed":false,"internalType":"address[]","name":"targets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"string[]","name":"signatures","type":"string[]"},{"indexed":false,"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"indexed":false,"internalType":"uint256","name":"startBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endBlock","type":"uint256"},{"indexed":false,"internalType":"string","name":"description","type":"string"},{"indexed":false,"internalType":"string","name":"openseaSlug","type":"string"},{"indexed":false,"internalType":"address","name":"project","type":"address"}],"name":"ProposalCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"address","name":"proposer","type":"address"},{"indexed":false,"internalType":"address[]","name":"targets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"string[]","name":"signatures","type":"string[]"},{"indexed":false,"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"indexed":false,"internalType":"uint256","name":"startBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"proposalThreshold","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"quorumVotes","type":"uint256"},{"indexed":false,"internalType":"string","name":"description","type":"string"},{"indexed":false,"internalType":"string","name":"openseaSlug","type":"string"},{"indexed":false,"internalType":"address","name":"project","type":"address"}],"name":"ProposalCreatedWithRequirements","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"eta","type":"uint256"}],"name":"ProposalQueued","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldProposalThresholdBPS","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newProposalThresholdBPS","type":"uint256"}],"name":"ProposalThresholdBPSSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldProposalThresholdStrict","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newProposalThresholdStrict","type":"uint256"}],"name":"ProposalThresholdStrictSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"ProposalVetoed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldQuorumVotesBPS","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newQuorumVotesBPS","type":"uint256"}],"name":"QuorumVotesBPSSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"votes","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"VoteCast","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVotingDelay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingDelay","type":"uint256"}],"name":"VotingDelaySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVotingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingPeriod","type":"uint256"}],"name":"VotingPeriodSet","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"implementation_","type":"address"}],"name":"_setImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405234610099576108dd388190039081906080601f8301601f19168101906001600160401b0382119082101761009e575b6040526080396101208091126100995761008a9061004f61010e565b90610058610124565b9061006161013a565b9061006a610150565b90610073610166565b90519161014051936101605195610180519761017d565b6040516104fc90816103c18239f35b600080fd5b6100a66100ab565b610033565b50634e487b7160e01b600052604160045260246000fd5b61012081019081106001600160401b038211176100de57604052565b6100e66100ab565b604052565b601f909101601f19168101906001600160401b038211908210176100de57604052565b608051906001600160a01b038216820361009957565b60a051906001600160a01b038216820361009957565b60c051906001600160a01b038216820361009957565b60e051906001600160a01b038216820361009957565b61010051906001600160a01b038216820361009957565b9297909396600096879687963360018060a01b0319895416178855604051956020870197630568cad960e31b895260018060a01b03928380921660248a0152166044880152166064860152608485015260a484015260c483015260e482015260e481526101e9816100c2565b5190855af43d15610272573d6001600160401b038111610265575b6040519061021c601f8201601f1916602001836100eb565b8152809260203d92013e5b1561025e57509061023a61025c926102ef565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b565b60203d9101fd5b61026d6100ab565b610204565b60609150610227565b1561028257565b60405162461bcd60e51b815260206004820152604b60248201526000805160206108bd83398151915260448201527f6c656d656e746174696f6e3a20696e76616c696420696d706c656d656e74617460648201526a696f6e206164647265737360a81b608482015260a490fd5b6000546001600160a01b03919082163303610367576103327fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a928216151561027b565b600280546001600160a01b039283166001600160a01b03198216811790925560408051939091168352602083019190915290a1565b60405162461bcd60e51b815260206004820152603760248201526000805160206108bd83398151915260448201527f6c656d656e746174696f6e3a2061646d696e206f6e6c790000000000000000006064820152608490fdfe6080604052600436101561002c575b361561001f575b61001d6103fd565b005b6100276103fd565b610015565b6000803560e01c908163267822471461007f575080635c60da1b14610076578063bb913f411461006d5763f851a4400361000e576100686102c9565b61000e565b5061006861012a565b506100686100d2565b346100cf57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100cf5773ffffffffffffffffffffffffffffffffffffffff6001541660805260206080f35b80fd5b50346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557602073ffffffffffffffffffffffffffffffffffffffff60025416604051908152f35b600080fd5b50346101255760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101255773ffffffffffffffffffffffffffffffffffffffff6004358181169182820361012557600054163303610245576101b37fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a92151561031c565b6102176101d560025473ffffffffffffffffffffffffffffffffffffffff1690565b9173ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255565b6002546040805173ffffffffffffffffffffffffffffffffffffffff938416815292909116602083015290a1005b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5377656570657273476f7665726e616e636550726f78793a3a5f736574496d7060448201527f6c656d656e746174696f6e3a2061646d696e206f6e6c790000000000000000006064820152fd5b50346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557602073ffffffffffffffffffffffffffffffffffffffff60005416604051908152f35b1561032357565b60a46040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604b60248201527f5377656570657273476f7665726e616e636550726f78793a3a5f736574496d7060448201527f6c656d656e746174696f6e3a20696e76616c696420696d706c656d656e74617460648201527f696f6e20616464726573730000000000000000000000000000000000000000006084820152fd5b507f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b5073ffffffffffffffffffffffffffffffffffffffff60025416604051600080928192368382378036810184815203915af43d156104c15767ffffffffffffffff3d8181116104b4575b604051917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f81601f8501160116830190838210908211176104a7575b60405281528260203d92013e5b604051913d90833e156104a3573d90f35b3d90fd5b6104af6103cd565b610485565b6104bc6103cd565b610447565b61049256fea26469706673582212203b81d901540aa5b2a767862542791019ab9b5a229c865fde0bb8c6beaa58529f64736f6c634300081100335377656570657273476f7665726e616e636550726f78793a3a5f736574496d70000000000000000000000000811074e281d86f862dc84e7df80ed38aa22aa23d0000000000000000000000002276c60f53c9a807e182d112f9b37d7277463fec0000000000000000000000009d0717faddb61c48e3fce46abc2b2dcaa43d12550000000000000000000000009d0717faddb61c48e3fce46abc2b2dcaa43d1255000000000000000000000000f7b413947988d861d0682780e2cbd8019769d5a70000000000000000000000000000000000000000000000000000000000001bee000000000000000000000000000000000000000000000000000000000000012a00000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000003e8

Deployed Bytecode

0x6080604052600436101561002c575b361561001f575b61001d6103fd565b005b6100276103fd565b610015565b6000803560e01c908163267822471461007f575080635c60da1b14610076578063bb913f411461006d5763f851a4400361000e576100686102c9565b61000e565b5061006861012a565b506100686100d2565b346100cf57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100cf5773ffffffffffffffffffffffffffffffffffffffff6001541660805260206080f35b80fd5b50346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557602073ffffffffffffffffffffffffffffffffffffffff60025416604051908152f35b600080fd5b50346101255760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101255773ffffffffffffffffffffffffffffffffffffffff6004358181169182820361012557600054163303610245576101b37fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a92151561031c565b6102176101d560025473ffffffffffffffffffffffffffffffffffffffff1690565b9173ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255565b6002546040805173ffffffffffffffffffffffffffffffffffffffff938416815292909116602083015290a1005b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f5377656570657273476f7665726e616e636550726f78793a3a5f736574496d7060448201527f6c656d656e746174696f6e3a2061646d696e206f6e6c790000000000000000006064820152fd5b50346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557602073ffffffffffffffffffffffffffffffffffffffff60005416604051908152f35b1561032357565b60a46040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604b60248201527f5377656570657273476f7665726e616e636550726f78793a3a5f736574496d7060448201527f6c656d656e746174696f6e3a20696e76616c696420696d706c656d656e74617460648201527f696f6e20616464726573730000000000000000000000000000000000000000006084820152fd5b507f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b5073ffffffffffffffffffffffffffffffffffffffff60025416604051600080928192368382378036810184815203915af43d156104c15767ffffffffffffffff3d8181116104b4575b604051917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f81601f8501160116830190838210908211176104a7575b60405281528260203d92013e5b604051913d90833e156104a3573d90f35b3d90fd5b6104af6103cd565b610485565b6104bc6103cd565b610447565b61049256fea26469706673582212203b81d901540aa5b2a767862542791019ab9b5a229c865fde0bb8c6beaa58529f64736f6c63430008110033

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

000000000000000000000000811074e281d86f862dc84e7df80ed38aa22aa23d0000000000000000000000002276c60f53c9a807e182d112f9b37d7277463fec0000000000000000000000009d0717faddb61c48e3fce46abc2b2dcaa43d12550000000000000000000000009d0717faddb61c48e3fce46abc2b2dcaa43d1255000000000000000000000000f7b413947988d861d0682780e2cbd8019769d5a70000000000000000000000000000000000000000000000000000000000001bee000000000000000000000000000000000000000000000000000000000000012a00000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000003e8

-----Decoded View---------------
Arg [0] : timelock_ (address): 0x811074e281d86f862dC84e7df80Ed38aA22aa23D
Arg [1] : sweepers_ (address): 0x2276C60F53c9a807e182d112f9b37D7277463Fec
Arg [2] : vetoer_ (address): 0x9D0717fAdDb61c48e3fCE46ABC2B2DCAA43D1255
Arg [3] : admin_ (address): 0x9D0717fAdDb61c48e3fCE46ABC2B2DCAA43D1255
Arg [4] : implementation_ (address): 0xF7b413947988D861d0682780e2CbD8019769d5a7
Arg [5] : votingPeriod_ (uint256): 7150
Arg [6] : votingDelay_ (uint256): 298
Arg [7] : proposalThresholdBPS_ (uint256): 200
Arg [8] : quorumVotesBPS_ (uint256): 1000

-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 000000000000000000000000811074e281d86f862dc84e7df80ed38aa22aa23d
Arg [1] : 0000000000000000000000002276c60f53c9a807e182d112f9b37d7277463fec
Arg [2] : 0000000000000000000000009d0717faddb61c48e3fce46abc2b2dcaa43d1255
Arg [3] : 0000000000000000000000009d0717faddb61c48e3fce46abc2b2dcaa43d1255
Arg [4] : 000000000000000000000000f7b413947988d861d0682780e2cbd8019769d5a7
Arg [5] : 0000000000000000000000000000000000000000000000000000000000001bee
Arg [6] : 000000000000000000000000000000000000000000000000000000000000012a
Arg [7] : 00000000000000000000000000000000000000000000000000000000000000c8
Arg [8] : 00000000000000000000000000000000000000000000000000000000000003e8


Deployed Bytecode Sourcemap

1100:3302:1:-:0;;;;;;;;;-1:-1:-1;1100:3302:1;;;;-1:-1:-1;4156:56:1;;:::i;:::-;-1:-1:-1;1100:3302:1;4156:56;;:::i;:::-;1100:3302;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;4240:27:0;1100:3302:1;;;;;;;;;;;;;;;;;;;;;;;;4316:29:0;1100:3302:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1100:3302:1;;2320:10;:19;1100:3302;;2409:117;2637:52;2417:29;;;2409:117;:::i;:::-;2589:32;1100:3302;2565:14;1100:3302;;;;;;2589:32;1100:3302;;;2565:14;1100:3302;;;2565:14;1100:3302;;2589:32;2565:14;1100:3302;;;;;;;;;;;;;;;;;;;2637:52;1100:3302;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3468:514;;1100:3302;3593:14;1100:3302;;;;-1:-1:-1;3621:8:1;;;;;1100:3302;;;3621:8;;1100:3302;;;;;3593:37;;;;1100:3302;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3641:335;;;;;;;;;;;;;;;;1100:3302;;;:::i;:::-;;;;;;:::i;:::-;;;;;

Swarm Source

ipfs://3b81d901540aa5b2a767862542791019ab9b5a229c865fde0bb8c6beaa58529f
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.