More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 327 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Execute | 20377831 | 37 days ago | IN | 0 ETH | 0.00064576 | ||||
Cast Vote | 20361083 | 39 days ago | IN | 0 ETH | 0.00035905 | ||||
Cast Vote | 20342176 | 42 days ago | IN | 0 ETH | 0.00050414 | ||||
Queue | 20335625 | 43 days ago | IN | 0 ETH | 0.00114152 | ||||
Cast Vote | 20334822 | 43 days ago | IN | 0 ETH | 0.00200298 | ||||
Propose | 20321466 | 44 days ago | IN | 0 ETH | 0.00549904 | ||||
Cast Vote | 20305157 | 47 days ago | IN | 0 ETH | 0.00020614 | ||||
Cast Vote | 20292076 | 49 days ago | IN | 0 ETH | 0.00036904 | ||||
Propose | 20278550 | 50 days ago | IN | 0 ETH | 0.00173818 | ||||
Execute | 20263569 | 53 days ago | IN | 0 ETH | 0.00064868 | ||||
Queue | 20241607 | 56 days ago | IN | 0 ETH | 0.00089412 | ||||
Cast Vote | 20199898 | 61 days ago | IN | 0 ETH | 0.00017719 | ||||
Cast Vote | 20198378 | 62 days ago | IN | 0 ETH | 0.0001949 | ||||
Cast Vote | 20191122 | 63 days ago | IN | 0 ETH | 0.00084556 | ||||
Propose | 20175723 | 65 days ago | IN | 0 ETH | 0.00274359 | ||||
Execute | 20070464 | 80 days ago | IN | 0 ETH | 0.00632391 | ||||
Execute | 20042685 | 83 days ago | IN | 0 ETH | 0.00103788 | ||||
Queue | 20013520 | 88 days ago | IN | 0 ETH | 0.00100286 | ||||
Queue | 20013407 | 88 days ago | IN | 0 ETH | 0.00210865 | ||||
Cast Vote | 19984345 | 92 days ago | IN | 0 ETH | 0.00217694 | ||||
Cast Vote | 19950133 | 96 days ago | IN | 0 ETH | 0.00030751 | ||||
Cast Vote | 19950126 | 96 days ago | IN | 0 ETH | 0.0004112 | ||||
Cast Vote | 19949690 | 96 days ago | IN | 0 ETH | 0.00038783 | ||||
Cast Vote | 19948690 | 97 days ago | IN | 0 ETH | 0.00059319 | ||||
Cast Vote | 19942810 | 97 days ago | IN | 0 ETH | 0.00047897 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
GovernorCharlieDelegator
Compiler Version
v0.8.9+commit.e5eed63a
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.9; pragma experimental ABIEncoderV2; import "./IGovernor.sol"; import "./GovernorStorage.sol"; contract GovernorCharlieDelegator is GovernorCharlieDelegatorStorage, GovernorCharlieEvents, IGovernorCharlieDelegator { constructor( address ipt_, address implementation_, uint256 votingPeriod_, uint256 votingDelay_, uint256 proposalThreshold_, uint256 proposalTimelockDelay_, uint256 quorumVotes_, uint256 emergencyQuorumVotes_, uint256 emergencyVotingPeriod_, uint256 emergencyTimelockDelay_ ) { delegateTo( implementation_, abi.encodeWithSignature( "initialize(address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)", ipt_, votingPeriod_, votingDelay_, proposalThreshold_, proposalTimelockDelay_, quorumVotes_, emergencyQuorumVotes_, emergencyVotingPeriod_, emergencyTimelockDelay_ ) ); address oldImplementation = implementation; implementation = implementation_; emit NewImplementation(oldImplementation, implementation); } /** * @notice Called by itself via governance to update the implementation of the delegator * @param implementation_ The address of the new implementation for delegation */ function _setImplementation(address implementation_) public override { require(msg.sender == address(this), "governance proposal required"); require(implementation_ != address(0), "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 { //solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returnData) = callee.delegatecall(data); //solhint-disable-next-line no-inline-assembly 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. */ // solhint-disable-next-line no-complex-fallback fallback() external payable override { // delegate all other functions to current implementation //solhint-disable-next-line avoid-low-level-calls (bool success, ) = implementation.delegatecall(msg.data); //solhint-disable-next-line no-inline-assembly 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()) } } } receive() external payable override {} }
// SPDX-License-Identifier: MIT pragma solidity 0.8.9; import "./Structs.sol"; /// @title interface to interact with TokenDelgator interface IGovernorCharlieDelegator { function _setImplementation(address implementation_) external; fallback() external payable; receive() external payable; } /// @title interface to interact with TokenDelgate interface IGovernorCharlieDelegate { function initialize( address ipt_, uint256 votingPeriod_, uint256 votingDelay_, uint256 proposalThreshold_, uint256 proposalTimelockDelay_, uint256 quorumVotes_, uint256 emergencyQuorumVotes_, uint256 emergencyVotingPeriod_, uint256 emergencyTimelockDelay_ ) external; function propose( address[] memory targets, uint256[] memory values, string[] memory signatures, bytes[] memory calldatas, string memory description, bool emergency ) external returns (uint256); function queue(uint256 proposalId) external; function execute(uint256 proposalId) external payable; function executeTransaction( address target, uint256 value, string memory signature, bytes memory data, uint256 eta ) external payable; function cancel(uint256 proposalId) external; function getActions(uint256 proposalId) external view returns ( address[] memory targets, uint256[] memory values, string[] memory signatures, bytes[] memory calldatas ); function getReceipt(uint256 proposalId, address voter) external view returns (Receipt memory); function state(uint256 proposalId) external view returns (ProposalState); function castVote(uint256 proposalId, uint8 support) external; function castVoteWithReason( uint256 proposalId, uint8 support, string calldata reason ) external; function castVoteBySig( uint256 proposalId, uint8 support, uint8 v, bytes32 r, bytes32 s ) external; function isWhitelisted(address account) external view returns (bool); function _setDelay(uint256 proposalTimelockDelay_) external; function _setEmergencyDelay(uint256 emergencyTimelockDelay_) external; function _setVotingDelay(uint256 newVotingDelay) external; function _setVotingPeriod(uint256 newVotingPeriod) external; function _setEmergencyVotingPeriod(uint256 newEmergencyVotingPeriod) external; function _setProposalThreshold(uint256 newProposalThreshold) external; function _setQuorumVotes(uint256 newQuorumVotes) external; function _setEmergencyQuorumVotes(uint256 newEmergencyQuorumVotes) external; function _setWhitelistAccountExpiration(address account, uint256 expiration) external; function _setWhitelistGuardian(address account) external; } /// @title interface which contains all events emitted by delegator & delegate interface GovernorCharlieEvents { /// @notice An event emitted when a new proposal is created event ProposalCreated( uint256 indexed id, address indexed proposer, address[] targets, uint256[] values, string[] signatures, bytes[] calldatas, uint256 indexed startBlock, uint256 endBlock, 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 indexed proposalId, uint8 support, uint256 votes, string reason); /// @notice An event emitted when a proposal has been canceled event ProposalCanceled(uint256 indexed id); /// @notice An event emitted when a proposal has been queued in the Timelock event ProposalQueued(uint256 indexed id, uint256 eta); /// @notice An event emitted when a proposal has been executed in the Timelock event ProposalExecuted(uint256 indexed 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 An event emitted when the emergency voting period is set event EmergencyVotingPeriodSet(uint256 oldEmergencyVotingPeriod, uint256 emergencyVotingPeriod); /// @notice Emitted when implementation is changed event NewImplementation(address oldImplementation, address newImplementation); /// @notice Emitted when proposal threshold is set event ProposalThresholdSet(uint256 oldProposalThreshold, uint256 newProposalThreshold); /// @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 whitelist account expiration is set event WhitelistAccountExpirationSet(address account, uint256 expiration); /// @notice Emitted when the whitelistGuardian is set event WhitelistGuardianSet(address oldGuardian, address newGuardian); /// @notice Emitted when the a new delay is set event NewDelay(uint256 oldTimelockDelay, uint256 proposalTimelockDelay); /// @notice Emitted when the a new emergency delay is set event NewEmergencyDelay(uint256 oldEmergencyTimelockDelay, uint256 emergencyTimelockDelay); /// @notice Emitted when the quorum is updated event NewQuorum(uint256 oldQuorumVotes, uint256 quorumVotes); /// @notice Emitted when the emergency quorum is updated event NewEmergencyQuorum(uint256 oldEmergencyQuorumVotes, uint256 emergencyQuorumVotes); /// @notice Emitted when a transaction is canceled event CancelTransaction( bytes32 indexed txHash, address indexed target, uint256 value, string signature, bytes data, uint256 eta ); /// @notice Emitted when a transaction is executed event ExecuteTransaction( bytes32 indexed txHash, address indexed target, uint256 value, string signature, bytes data, uint256 eta ); /// @notice Emitted when a transaction is queued event QueueTransaction( bytes32 indexed txHash, address indexed target, uint256 value, string signature, bytes data, uint256 eta ); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.9; import "./IIpt.sol"; import "./Structs.sol"; contract GovernorCharlieDelegatorStorage { /// @notice Active brains of Governor address public implementation; } /** * @title Storage for Governor Charlie Delegate * @notice For future upgrades, do not change GovernorCharlieDelegateStorage. Create a new * contract which implements GovernorCharlieDelegateStorage and following the naming convention * GovernorCharlieDelegateStorageVX. */ //solhint-disable-next-line max-states-count contract GovernorCharlieDelegateStorage is GovernorCharlieDelegatorStorage { /// @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 uint256 public quorumVotes; /// @notice The number of votes in support of a proposal required in order for an emergency quorum to be reached and for a vote to succeed uint256 public emergencyQuorumVotes; /// @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 number of votes required in order for a voter to become a proposer uint256 public proposalThreshold; /// @notice Initial proposal id set at become uint256 public initialProposalId; /// @notice The total number of proposals uint256 public proposalCount; /// @notice The address of the Interest Protocol governance token IIpt public ipt; /// @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; /// @notice The latest proposal for each proposer mapping(bytes32 => bool) public queuedTransactions; /// @notice The proposal holding period uint256 public proposalTimelockDelay; /// @notice Stores the expiration of account whitelist status as a timestamp mapping(address => uint256) public whitelistAccountExpirations; /// @notice Address which manages whitelisted proposals and whitelist accounts address public whitelistGuardian; /// @notice The duration of the voting on a emergency proposal, in blocks uint256 public emergencyVotingPeriod; /// @notice The emergency proposal holding period uint256 public emergencyTimelockDelay; /// all receipts for proposal mapping(uint256 => mapping(address => Receipt)) public proposalReceipts; /// @notice The emergency proposal holding period bool public initialized; }
// SPDX-License-Identifier: MIT pragma solidity 0.8.9; struct Proposal { /// @notice Unique id for looking up a proposal uint256 id; /// @notice Creator of the proposal address proposer; /// @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 executed bool executed; /// @notice Whether the proposal is an emergency proposal bool emergency; /// @notice quorum votes requires uint256 quorumVotes; /// @notice time delay uint256 delay; } /// @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 }
// SPDX-License-Identifier: MIT pragma solidity 0.8.9; interface IIpt { function getPriorVotes(address account, uint256 blockNumber) external view returns (uint96); }
{ "optimizer": { "enabled": true, "runs": 200, "details": { "orderLiterals": true, "deduplicate": true, "cse": true, "yul": true } }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"ipt_","type":"address"},{"internalType":"address","name":"implementation_","type":"address"},{"internalType":"uint256","name":"votingPeriod_","type":"uint256"},{"internalType":"uint256","name":"votingDelay_","type":"uint256"},{"internalType":"uint256","name":"proposalThreshold_","type":"uint256"},{"internalType":"uint256","name":"proposalTimelockDelay_","type":"uint256"},{"internalType":"uint256","name":"quorumVotes_","type":"uint256"},{"internalType":"uint256","name":"emergencyQuorumVotes_","type":"uint256"},{"internalType":"uint256","name":"emergencyVotingPeriod_","type":"uint256"},{"internalType":"uint256","name":"emergencyTimelockDelay_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"string","name":"signature","type":"string"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"eta","type":"uint256"}],"name":"CancelTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldEmergencyVotingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"emergencyVotingPeriod","type":"uint256"}],"name":"EmergencyVotingPeriodSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"string","name":"signature","type":"string"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"eta","type":"uint256"}],"name":"ExecuteTransaction","type":"event"},{"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":"uint256","name":"oldTimelockDelay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"proposalTimelockDelay","type":"uint256"}],"name":"NewDelay","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldEmergencyTimelockDelay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"emergencyTimelockDelay","type":"uint256"}],"name":"NewEmergencyDelay","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldEmergencyQuorumVotes","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"emergencyQuorumVotes","type":"uint256"}],"name":"NewEmergencyQuorum","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":"uint256","name":"oldQuorumVotes","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"quorumVotes","type":"uint256"}],"name":"NewQuorum","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"ProposalCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":true,"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":true,"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":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"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":"oldProposalThreshold","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newProposalThreshold","type":"uint256"}],"name":"ProposalThresholdSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"string","name":"signature","type":"string"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"eta","type":"uint256"}],"name":"QueueTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":true,"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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"expiration","type":"uint256"}],"name":"WhitelistAccountExpirationSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldGuardian","type":"address"},{"indexed":false,"internalType":"address","name":"newGuardian","type":"address"}],"name":"WhitelistGuardianSet","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"implementation_","type":"address"}],"name":"_setImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405234801561001057600080fd5b5060405161051138038061051183398101604081905261002f916101b7565b6040516001600160a01b038b16602482015260448101899052606481018890526084810187905260a4810186905260c4810185905260e48101849052610104810183905261012481018290526100b8908a906101440160408051601f198184030181529190526020810180516001600160e01b0390811663344539bf60e21b1790915261012516565b600080546001600160a01b038b81166001600160a01b031983168117909355604080519190921680825260208201939093527fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a910160405180910390a15050505050505050505050610274565b600080836001600160a01b0316836040516101409190610239565b600060405180830381855af49150503d806000811461017b576040519150601f19603f3d011682016040523d82523d6000602084013e610180565b606091505b50915091506000821415610195573d60208201fd5b50505050565b80516001600160a01b03811681146101b257600080fd5b919050565b6000806000806000806000806000806101408b8d0312156101d757600080fd5b6101e08b61019b565b99506101ee60208c0161019b565b985060408b0151975060608b0151965060808b0151955060a08b0151945060c08b0151935060e08b015192506101008b015191506101208b015190509295989b9194979a5092959850565b6000825160005b8181101561025a5760208186018101518583015201610240565b81811115610269576000828501525b509190910192915050565b61028e806102836000396000f3fe60806040526004361061002d5760003560e01c80635c60da1b146100af578063bb913f41146100eb57610034565b3661003457005b600080546040516001600160a01b03909116906100549083903690610218565b600060405180830381855af49150503d806000811461008f576040519150601f19603f3d011682016040523d82523d6000602084013e610094565b606091505b505090506040513d6000823e8180156100ab573d82f35b3d82fd5b3480156100bb57600080fd5b506000546100cf906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b3480156100f757600080fd5b5061010b610106366004610228565b61010d565b005b3330146101615760405162461bcd60e51b815260206004820152601c60248201527f676f7665726e616e63652070726f706f73616c2072657175697265640000000060448201526064015b60405180910390fd5b6001600160a01b0381166101b75760405162461bcd60e51b815260206004820152601e60248201527f696e76616c696420696d706c656d656e746174696f6e206164647265737300006044820152606401610158565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a910160405180910390a15050565b8183823760009101908152919050565b60006020828403121561023a57600080fd5b81356001600160a01b038116811461025157600080fd5b939250505056fea26469706673582212207584af484e6f842ecc5b9051e772df589fadc0294635b159f654d46c8b5c2a2464736f6c63430008090033000000000000000000000000af239a6fab6a873c779f3f33dbd34104287b93e1000000000000000000000000df352c2fcb3cbfdbba619090e2a1deb9ac534a290000000000000000000000000000000000000000000000000000000000009d80000000000000000000000000000000000000000000000000000000000000335400000000000000000000000000000000000000000000d3c21bcecceda1000000000000000000000000000000000000000000000000000000000000000002a300000000000000000000000000000000000000000000084595161401484a000000000000000000000000000000000000000000000000211654585005212800000000000000000000000000000000000000000000000000000000000000000019aa000000000000000000000000000000000000000000000000000000000000a8c0
Deployed Bytecode
0x60806040526004361061002d5760003560e01c80635c60da1b146100af578063bb913f41146100eb57610034565b3661003457005b600080546040516001600160a01b03909116906100549083903690610218565b600060405180830381855af49150503d806000811461008f576040519150601f19603f3d011682016040523d82523d6000602084013e610094565b606091505b505090506040513d6000823e8180156100ab573d82f35b3d82fd5b3480156100bb57600080fd5b506000546100cf906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b3480156100f757600080fd5b5061010b610106366004610228565b61010d565b005b3330146101615760405162461bcd60e51b815260206004820152601c60248201527f676f7665726e616e63652070726f706f73616c2072657175697265640000000060448201526064015b60405180910390fd5b6001600160a01b0381166101b75760405162461bcd60e51b815260206004820152601e60248201527f696e76616c696420696d706c656d656e746174696f6e206164647265737300006044820152606401610158565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a910160405180910390a15050565b8183823760009101908152919050565b60006020828403121561023a57600080fd5b81356001600160a01b038116811461025157600080fd5b939250505056fea26469706673582212207584af484e6f842ecc5b9051e772df589fadc0294635b159f654d46c8b5c2a2464736f6c63430008090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000af239a6fab6a873c779f3f33dbd34104287b93e1000000000000000000000000df352c2fcb3cbfdbba619090e2a1deb9ac534a290000000000000000000000000000000000000000000000000000000000009d80000000000000000000000000000000000000000000000000000000000000335400000000000000000000000000000000000000000000d3c21bcecceda1000000000000000000000000000000000000000000000000000000000000000002a300000000000000000000000000000000000000000000084595161401484a000000000000000000000000000000000000000000000000211654585005212800000000000000000000000000000000000000000000000000000000000000000019aa000000000000000000000000000000000000000000000000000000000000a8c0
-----Decoded View---------------
Arg [0] : ipt_ (address): 0xaF239a6fab6a873c779F3F33dbd34104287b93e1
Arg [1] : implementation_ (address): 0xdF352c2fcB3cbfdbBA619090E2A1DEB9aC534A29
Arg [2] : votingPeriod_ (uint256): 40320
Arg [3] : votingDelay_ (uint256): 13140
Arg [4] : proposalThreshold_ (uint256): 1000000000000000000000000
Arg [5] : proposalTimelockDelay_ (uint256): 172800
Arg [6] : quorumVotes_ (uint256): 10000000000000000000000000
Arg [7] : emergencyQuorumVotes_ (uint256): 40000000000000000000000000
Arg [8] : emergencyVotingPeriod_ (uint256): 6570
Arg [9] : emergencyTimelockDelay_ (uint256): 43200
-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 000000000000000000000000af239a6fab6a873c779f3f33dbd34104287b93e1
Arg [1] : 000000000000000000000000df352c2fcb3cbfdbba619090e2a1deb9ac534a29
Arg [2] : 0000000000000000000000000000000000000000000000000000000000009d80
Arg [3] : 0000000000000000000000000000000000000000000000000000000000003354
Arg [4] : 00000000000000000000000000000000000000000000d3c21bcecceda1000000
Arg [5] : 000000000000000000000000000000000000000000000000000000000002a300
Arg [6] : 000000000000000000000000000000000000000000084595161401484a000000
Arg [7] : 0000000000000000000000000000000000000000002116545850052128000000
Arg [8] : 00000000000000000000000000000000000000000000000000000000000019aa
Arg [9] : 000000000000000000000000000000000000000000000000000000000000a8c0
Loading...
Loading
Loading...
Loading
OVERVIEW
Interest Protocol is a borrow/lend protocol that adapts the fractional reserve system of banks to a DeFi protocol.Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.