Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 31 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Execute | 21578045 | 391 days ago | IN | 0 ETH | 0.00067777 | ||||
| Queue | 21555729 | 395 days ago | IN | 0 ETH | 0.00080902 | ||||
| Cast Vote | 21552483 | 395 days ago | IN | 0 ETH | 0.00084311 | ||||
| Cast Vote With R... | 21551694 | 395 days ago | IN | 0 ETH | 0.00157487 | ||||
| Cast Vote With R... | 21549494 | 395 days ago | IN | 0 ETH | 0.00036339 | ||||
| Cast Vote | 21548727 | 396 days ago | IN | 0 ETH | 0.00058901 | ||||
| Cast Vote | 21542048 | 396 days ago | IN | 0 ETH | 0.00052486 | ||||
| Cast Vote | 21534246 | 398 days ago | IN | 0 ETH | 0.00399782 | ||||
| Cast Vote With R... | 21533335 | 398 days ago | IN | 0 ETH | 0.00329803 | ||||
| Propose | 21505140 | 402 days ago | IN | 0 ETH | 0.00267128 | ||||
| Execute | 18952048 | 759 days ago | IN | 0 ETH | 0.00158295 | ||||
| Queue | 18936711 | 761 days ago | IN | 0 ETH | 0.00281047 | ||||
| Cast Vote | 18916942 | 764 days ago | IN | 0 ETH | 0.00109474 | ||||
| Cast Vote With R... | 18916624 | 764 days ago | IN | 0 ETH | 0.00113072 | ||||
| Cast Vote With R... | 18916616 | 764 days ago | IN | 0 ETH | 0.00113202 | ||||
| Cast Vote | 18909429 | 765 days ago | IN | 0 ETH | 0.00096981 | ||||
| Propose | 18886111 | 768 days ago | IN | 0 ETH | 0.01161577 | ||||
| Execute | 18854283 | 772 days ago | IN | 0 ETH | 0.00238484 | ||||
| Queue | 18834702 | 775 days ago | IN | 0 ETH | 0.00567017 | ||||
| Cast Vote | 18778050 | 783 days ago | IN | 0 ETH | 0.00389687 | ||||
| Cast Vote With R... | 18776230 | 783 days ago | IN | 0 ETH | 0.00282946 | ||||
| Cast Vote With R... | 18776162 | 783 days ago | IN | 0 ETH | 0.00318316 | ||||
| Cast Vote With R... | 18776147 | 783 days ago | IN | 0 ETH | 0.0039136 | ||||
| Propose | 18752688 | 787 days ago | IN | 0 ETH | 0.0128796 | ||||
| Execute | 17368950 | 981 days ago | IN | 0 ETH | 0.00354275 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
AlpsDAOProxy
Compiler Version
v0.8.15+commit.e14f2714
Optimization Enabled:
Yes with 10000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: BSD-3-Clause
/// @title The Alps DAO proxy contract
/*********************************
* ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ *
* ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ *
* ░░░░░░█████████░░█████████░░░ *
* ░░░░░░██░░░████░░██░░░████░░░ *
* ░░██████░░░████████░░░████░░░ *
* ░░██░░██░░░████░░██░░░████░░░ *
* ░░██░░██░░░████░░██░░░████░░░ *
* ░░░░░░█████████░░█████████░░░ *
* ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ *
* ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ *
*********************************/
// LICENSE
// AlpsDAOProxy.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 Alpers DAO.
//
// Additional conditions of BSD-3-Clause can be found here: https://opensource.org/licenses/BSD-3-Clause
//
//
// AlpsDAOProxy.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.6;
import './AlpsDAOInterfaces.sol';
contract AlpsDAOProxy is AlpsDAOProxyStorage, AlpsDAOEvents {
constructor(
address timelock_,
address alps_,
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_,
alps_,
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, 'AlpsDAOProxy::_setImplementation: admin only');
require(implementation_ != address(0), 'AlpsDAOProxy::_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 Alps DAO Logic interfaces and events
/*********************************
* ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ *
* ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ *
* ░░░░░░█████████░░█████████░░░ *
* ░░░░░░██░░░████░░██░░░████░░░ *
* ░░██████░░░████████░░░████░░░ *
* ░░██░░██░░░████░░██░░░████░░░ *
* ░░██░░██░░░████░░██░░░████░░░ *
* ░░░░░░█████████░░█████████░░░ *
* ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ *
* ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ *
*********************************/
// LICENSE
// AlpsDAOInterfaces.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 Alpers DAO.
//
// Additional conditions of BSD-3-Clause can be found here: https://opensource.org/licenses/BSD-3-Clause
//
// MODIFICATIONS
// AlpsDAOEvents, AlpsDAOProxyStorage, AlpsDAOStorageV1 add support for changes made by Alps DAO to GovernorBravo.sol
// See AlpsDAOLogicV1.sol for more details.
// AlpsDAOStorageV1Adjusted and AlpsDAOStorageV2 add support for a dynamic vote quorum.
// See AlpsDAOLogicV2.sol for more details.
pragma solidity ^0.8.6;
contract AlpsDAOEvents {
/// @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
);
/// @notice An event emitted when a new proposal is created, which includes additional information
event ProposalCreatedWithRequirements(
uint256 id,
address proposer,
address[] targets,
uint256[] values,
string[] signatures,
bytes[] calldatas,
uint256 startBlock,
uint256 endBlock,
uint256 proposalThreshold,
uint256 quorumVotes,
string description
);
/// @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 AlpsDAOExecutor
event ProposalQueued(uint256 id, uint256 eta);
/// @notice An event emitted when a proposal has been executed in the AlpsDAOExecutor
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 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 AlpsDAOEventsV2 is AlpsDAOEvents {
/// @notice Emitted when minQuorumVotesBPS is set
event MinQuorumVotesBPSSet(uint16 oldMinQuorumVotesBPS, uint16 newMinQuorumVotesBPS);
/// @notice Emitted when maxQuorumVotesBPS is set
event MaxQuorumVotesBPSSet(uint16 oldMaxQuorumVotesBPS, uint16 newMaxQuorumVotesBPS);
/// @notice Emitted when quorumCoefficient is set
event QuorumCoefficientSet(uint32 oldQuorumCoefficient, uint32 newQuorumCoefficient);
/// @notice Emitted when a voter cast a vote requesting a gas refund.
event RefundableVote(address indexed voter, uint256 refundAmount, bool refundSent);
/// @notice Emitted when admin withdraws the DAO's balance.
event Withdraw(uint256 amount, bool sent);
/// @notice Emitted when pendingVetoer is changed
event NewPendingVetoer(address oldPendingVetoer, address newPendingVetoer);
}
contract AlpsDAOProxyStorage {
/// @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 AlpsDAOStorageV1. Create a new
* contract which implements AlpsDAOStorageV1 and following the naming convention
* AlpsDAOStorageVX.
*/
contract AlpsDAOStorageV1 is AlpsDAOProxyStorage {
/// @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. *DIFFERS from GovernerBravo
uint256 public proposalThresholdBPS;
/// @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 The address of the Alps DAO Executor AlpsDAOExecutor
IAlpsDAOExecutor public timelock;
/// @notice The address of the Alps tokens
AlpsTokenLike public alps;
/// @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 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
}
}
/**
* @title Extra fields added to the `Proposal` struct from AlpsDAOStorageV1
* @notice The following fields were added to the `Proposal` struct:
* - `Proposal.totalSupply`
* - `Proposal.creationBlock`
*/
contract AlpsDAOStorageV1Adjusted is AlpsDAOProxyStorage {
/// @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. *DIFFERS from GovernerBravo
uint256 public proposalThresholdBPS;
/// @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 The address of the Alps DAO Executor AlpsDAOExecutor
IAlpsDAOExecutor public timelock;
/// @notice The address of the Alps tokens
AlpsTokenLike public alps;
/// @notice The official record of all proposals ever proposed
mapping(uint256 => Proposal) internal _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 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 The total supply at the time of proposal creation
uint256 totalSupply;
/// @notice The block at which this proposal was created
uint256 creationBlock;
}
/// @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
}
}
/**
* @title Storage for Governor Bravo Delegate
* @notice For future upgrades, do not change AlpsDAOStorageV2. Create a new
* contract which implements AlpsDAOStorageV2 and following the naming convention
* AlpsDAOStorageVX.
*/
contract AlpsDAOStorageV2 is AlpsDAOStorageV1Adjusted {
DynamicQuorumParamsCheckpoint[] public quorumParamsCheckpoints;
/// @notice Pending new vetoer
address public pendingVetoer;
struct DynamicQuorumParams {
/// @notice The minimum 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.
uint16 minQuorumVotesBPS;
/// @notice The maximum 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.
uint16 maxQuorumVotesBPS;
/// @notice The dynamic quorum coefficient
/// @dev Assumed to be fixed point integer with 6 decimals, i.e 0.2 is represented as 0.2 * 1e6 = 200000
uint32 quorumCoefficient;
}
/// @notice A checkpoint for storing dynamic quorum params from a given block
struct DynamicQuorumParamsCheckpoint {
/// @notice The block at which the new values were set
uint32 fromBlock;
/// @notice The parameter values of this checkpoint
DynamicQuorumParams params;
}
struct ProposalCondensed {
/// @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 minimum 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 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 The total supply at the time of proposal creation
uint256 totalSupply;
/// @notice The block at which this proposal was created
uint256 creationBlock;
}
}
interface IAlpsDAOExecutor {
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 AlpsTokenLike {
function getPriorVotes(address account, uint256 blockNumber) external view returns (uint96);
function totalSupply() external view returns (uint256);
}{
"optimizer": {
"enabled": true,
"runs": 10000
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"timelock_","type":"address"},{"internalType":"address","name":"alps_","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"}],"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"}],"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":"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"}]Contract Creation Code
608060405234801561001057600080fd5b506040516107b43803806107b483398101604081905261002f916102b2565b600080546001600160a01b031916331790556040516001600160a01b038a811660248301528981166044830152881660648201526084810185905260a4810184905260c4810183905260e481018290526100bc9086906101040160408051601f198184030181529190526020810180516001600160e01b03908116630568cad960e31b179091526100f416565b6100c585610167565b5050600080546001600160a01b0319166001600160a01b03959095169490941790935550610379945050505050565b600080836001600160a01b03168360405161010f919061033e565b600060405180830381855af49150503d806000811461014a576040519150601f19603f3d011682016040523d82523d6000602084013e61014f565b606091505b50909250905081610161573d60208201fd5b50505050565b6000546001600160a01b031633146101c95760405162461bcd60e51b815260206004820152602c602482015260008051602061079483398151915260448201526b3a2061646d696e206f6e6c7960a01b60648201526084015b60405180910390fd5b6001600160a01b038116610235576040805162461bcd60e51b815260206004820152602481019190915260008051602061079483398151915260448201527f3a20696e76616c696420696d706c656d656e746174696f6e206164647265737360648201526084016101c0565b600280546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a910160405180910390a15050565b80516001600160a01b03811681146102ad57600080fd5b919050565b60008060008060008060008060006101208a8c0312156102d157600080fd5b6102da8a610296565b98506102e860208b01610296565b97506102f660408b01610296565b965061030460608b01610296565b955061031260808b01610296565b945060a08a0151935060c08a0151925060e08a015191506101008a015190509295985092959850929598565b6000825160005b8181101561035f5760208186018101518583015201610345565b8181111561036e576000828501525b509190910192915050565b61040c806103886000396000f3fe6080604052600436106100435760003560e01c8063267822471461005a5780635c60da1b146100b0578063bb913f41146100dd578063f851a440146100fd57610052565b366100525761005061012a565b005b61005061012a565b34801561006657600080fd5b506001546100879073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100bc57600080fd5b506002546100879073ffffffffffffffffffffffffffffffffffffffff1681565b3480156100e957600080fd5b506100506100f8366004610389565b6101b2565b34801561010957600080fd5b506000546100879073ffffffffffffffffffffffffffffffffffffffff1681565b60025460405160009173ffffffffffffffffffffffffffffffffffffffff169061015790839036906103c6565b600060405180830381855af49150503d8060008114610192576040519150601f19603f3d011682016040523d82523d6000602084013e610197565b606091505b505090506040513d6000823e8180156101ae573d82f35b3d82fd5b60005473ffffffffffffffffffffffffffffffffffffffff16331461025e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f416c707344414f50726f78793a3a5f736574496d706c656d656e746174696f6e60448201527f3a2061646d696e206f6e6c79000000000000000000000000000000000000000060648201526084015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811661030357604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f416c707344414f50726f78793a3a5f736574496d706c656d656e746174696f6e60448201527f3a20696e76616c696420696d706c656d656e746174696f6e20616464726573736064820152608401610255565b6002805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a910160405180910390a15050565b60006020828403121561039b57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146103bf57600080fd5b9392505050565b818382376000910190815291905056fea264697066735822122018d2921adec061ac0c2b7ea3be70ae4c78d085c179ba6a75e455a078ce0ba08b64736f6c634300080f0033416c707344414f50726f78793a3a5f736574496d706c656d656e746174696f6e0000000000000000000000004d4f73d111e43cf5864d18bc8e186de8094962b2000000000000000000000000f59eb3e1957f120f7c135792830f900685536f52000000000000000000000000ef60fb8d56962277aed8db6d6625b1ac7767fd080000000000000000000000004d4f73d111e43cf5864d18bc8e186de8094962b2000000000000000000000000417a441ff4894ac0ee2cb854583df2206527caa700000000000000000000000000000000000000000000000000000000000070800000000000000000000000000000000000000000000000000000000000005460000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000003e8
Deployed Bytecode
0x6080604052600436106100435760003560e01c8063267822471461005a5780635c60da1b146100b0578063bb913f41146100dd578063f851a440146100fd57610052565b366100525761005061012a565b005b61005061012a565b34801561006657600080fd5b506001546100879073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100bc57600080fd5b506002546100879073ffffffffffffffffffffffffffffffffffffffff1681565b3480156100e957600080fd5b506100506100f8366004610389565b6101b2565b34801561010957600080fd5b506000546100879073ffffffffffffffffffffffffffffffffffffffff1681565b60025460405160009173ffffffffffffffffffffffffffffffffffffffff169061015790839036906103c6565b600060405180830381855af49150503d8060008114610192576040519150601f19603f3d011682016040523d82523d6000602084013e610197565b606091505b505090506040513d6000823e8180156101ae573d82f35b3d82fd5b60005473ffffffffffffffffffffffffffffffffffffffff16331461025e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f416c707344414f50726f78793a3a5f736574496d706c656d656e746174696f6e60448201527f3a2061646d696e206f6e6c79000000000000000000000000000000000000000060648201526084015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811661030357604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f416c707344414f50726f78793a3a5f736574496d706c656d656e746174696f6e60448201527f3a20696e76616c696420696d706c656d656e746174696f6e20616464726573736064820152608401610255565b6002805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a910160405180910390a15050565b60006020828403121561039b57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146103bf57600080fd5b9392505050565b818382376000910190815291905056fea264697066735822122018d2921adec061ac0c2b7ea3be70ae4c78d085c179ba6a75e455a078ce0ba08b64736f6c634300080f0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000004d4f73d111e43cf5864d18bc8e186de8094962b2000000000000000000000000f59eb3e1957f120f7c135792830f900685536f52000000000000000000000000ef60fb8d56962277aed8db6d6625b1ac7767fd080000000000000000000000004d4f73d111e43cf5864d18bc8e186de8094962b2000000000000000000000000417a441ff4894ac0ee2cb854583df2206527caa700000000000000000000000000000000000000000000000000000000000070800000000000000000000000000000000000000000000000000000000000005460000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000003e8
-----Decoded View---------------
Arg [0] : timelock_ (address): 0x4D4F73D111e43CF5864D18bc8E186DE8094962B2
Arg [1] : alps_ (address): 0xf59eB3e1957F120f7C135792830F900685536f52
Arg [2] : vetoer_ (address): 0xEF60fB8d56962277AeD8db6d6625b1aC7767fD08
Arg [3] : admin_ (address): 0x4D4F73D111e43CF5864D18bc8E186DE8094962B2
Arg [4] : implementation_ (address): 0x417a441FF4894AC0EE2Cb854583Df2206527cAA7
Arg [5] : votingPeriod_ (uint256): 28800
Arg [6] : votingDelay_ (uint256): 21600
Arg [7] : proposalThresholdBPS_ (uint256): 100
Arg [8] : quorumVotesBPS_ (uint256): 1000
-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 0000000000000000000000004d4f73d111e43cf5864d18bc8e186de8094962b2
Arg [1] : 000000000000000000000000f59eb3e1957f120f7c135792830f900685536f52
Arg [2] : 000000000000000000000000ef60fb8d56962277aed8db6d6625b1ac7767fd08
Arg [3] : 0000000000000000000000004d4f73d111e43cf5864d18bc8e186de8094962b2
Arg [4] : 000000000000000000000000417a441ff4894ac0ee2cb854583df2206527caa7
Arg [5] : 0000000000000000000000000000000000000000000000000000000000007080
Arg [6] : 0000000000000000000000000000000000000000000000000000000000005460
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000064
Arg [8] : 00000000000000000000000000000000000000000000000000000000000003e8
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
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.