Overview
APE Balance
APE Value
$0.00More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Loading...
Loading
Contract Name:
CompTimelockCompatibleExecutionStrategy
Compiler Version
v0.8.18+commit.87f61d96
Optimization Enabled:
Yes with 10000 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.18;import { ICompTimelock } from "../../interfaces/ICompTimelock.sol";import { SimpleQuorumExecutionStrategy } from "../SimpleQuorumExecutionStrategy.sol";import { SpaceManager } from "../../utils/SpaceManager.sol";import { MetaTransaction, Proposal, ProposalStatus } from "../../types.sol";import { Enum } from "@gnosis.pm/safe-contracts/contracts/common/Enum.sol";/// @title Comp Timelock Execution Strategy/// @notice An Execution strategy that provides compatibility with existing Comp Timelock contracts.contract CompTimelockCompatibleExecutionStrategy is SimpleQuorumExecutionStrategy {/// @notice Thrown if timelock delay is in the future.error TimelockDelayNotMet();/// @notice Thrown if the proposal execution payload hash is not queued.error ProposalNotQueued();/// @notice Thrown if the proposal execution payload hash is already queued.error DuplicateExecutionPayloadHash();/// @notice Thrown if the same MetaTransaction appears twice in the same payload (salt is not taken into account).error DuplicateMetaTransaction();/// @notice Thrown if veto caller is not the veto guardian.error OnlyVetoGuardian();/// @notice Thrown if the transaction is invalid.error InvalidTransaction();
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.18;interface ICompTimelock {/// @notice Msg.sender accepts admin status.function acceptAdmin() external;/// @notice Queue a transaction to be executed after a delay./// @param target The address of the contract to call./// @param value The amount of Ether to send./// @param signature The function signature to call./// @param data The calldata to send./// @param eta The timestamp at which to execute the transaction, in seconds./// @return The transaction hash.function queueTransaction(address target,uint value,string memory signature,bytes memory data,uint eta) external returns (bytes32);/// @notice Execute a queued transaction./// @param target The address of the contract to call./// @param value The amount of Ether to send.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.18;import { IExecutionStrategy } from "../interfaces/IExecutionStrategy.sol";import { FinalizationStatus, Proposal, ProposalStatus } from "../types.sol";import { SpaceManager } from "../utils/SpaceManager.sol";/// @title Simple Quorum Base Execution Strategyabstract contract SimpleQuorumExecutionStrategy is IExecutionStrategy, SpaceManager {event QuorumUpdated(uint256 newQuorum);/// @notice The quorum required to execute a proposal using this strategy.uint256 public quorum;/// @dev Initializer// solhint-disable-next-line func-name-mixedcasefunction __SimpleQuorumExecutionStrategy_init(uint256 _quorum) internal onlyInitializing {quorum = _quorum;}function setQuorum(uint256 _quorum) external onlyOwner {quorum = _quorum;emit QuorumUpdated(_quorum);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.18;import { OwnableUpgradeable } from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";import { TRUE, FALSE } from "../types.sol";/// @title Space Manager/// @notice Manages a whitelist of Spaces that are authorized to execute transactions via this contract.contract SpaceManager is OwnableUpgradeable {/// @notice Thrown if a space is not in the whitelist.error InvalidSpace();mapping(address space => uint256 isEnabled) internal spaces;/// @notice Emitted when a space is enabled.event SpaceEnabled(address space);/// @notice Emitted when a space is disabled.event SpaceDisabled(address space);/// @notice Initialize the contract with a list of spaces. Called only once./// @param _spaces List of spaces.// solhint-disable-next-line func-name-mixedcasefunction __SpaceManager_init(address[] memory _spaces) internal onlyInitializing {for (uint256 i = 0; i < _spaces.length; i++) {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.18;import { Enum } from "@gnosis.pm/safe-contracts/contracts/common/Enum.sol";import { IExecutionStrategy } from "src/interfaces/IExecutionStrategy.sol";/// @dev Constants used to replace the `bool` type in mappings for gas efficiency.uint256 constant TRUE = 1;uint256 constant FALSE = 0;/// @notice The data stored for each proposal when it is created./// @dev Packed into 4 256-bit slots.struct Proposal {// SLOT 1:// The address of the proposal creator.address author;// The block number at which the voting period starts.// This is also the snapshot block number where voting power is calculated at.uint32 startBlockNumber;//// SLOT 2:// The address of execution strategy used for the proposal.IExecutionStrategy executionStrategy;// The minimum block number at which the proposal can be finalized.uint32 minEndBlockNumber;
12345678// SPDX-License-Identifier: LGPL-3.0-onlypragma solidity >=0.7.0 <0.9.0;/// @title Enum - Collection of enums/// @author Richard Meissner - <richard@gnosis.pm>contract Enum {enum Operation {Call, DelegateCall}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.18;import { IndexedStrategy, Proposal, ProposalStatus } from "../types.sol";import { IExecutionStrategyErrors } from "./execution-strategies/IExecutionStrategyErrors.sol";/// @title Execution Strategy Interfaceinterface IExecutionStrategy is IExecutionStrategyErrors {function execute(uint256 proposalId,Proposal memory proposal,uint256 votesFor,uint256 votesAgainst,uint256 votesAbstain,bytes memory payload) external;function getProposalStatus(Proposal memory proposal,uint256 votesFor,uint256 votesAgainst,uint256 votesAbstain) external view returns (ProposalStatus);function getStrategyType() external view returns (string memory);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)pragma solidity ^0.8.0;import "../utils/ContextUpgradeable.sol";import "../proxy/utils/Initializable.sol";/*** @dev Contract module which provides a basic access control mechanism, where* there is an account (an owner) that can be granted exclusive access to* specific functions.** By default, the owner account will be the one that deploys the contract. This* can later be changed with {transferOwnership}.** This module is used through inheritance. It will make available the modifier* `onlyOwner`, which can be applied to your functions to restrict their use to* the owner.*/abstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {address private _owner;event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);/**
123456789101112131415// SPDX-License-Identifier: MITpragma solidity ^0.8.18;import { ProposalStatus } from "../../types.sol";/// @title Execution Strategy Errorsinterface IExecutionStrategyErrors {/// @notice Thrown when the current status of a proposal does not allow the desired action./// @param status The current status of the proposal.error InvalidProposalStatus(ProposalStatus status);/// @notice Thrown when the execution of a proposal fails.error ExecutionFailed();}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)pragma solidity ^0.8.0;import "../proxy/utils/Initializable.sol";/*** @dev Provides information about the current execution context, including the* sender of the transaction and its data. While these are generally available* via msg.sender and msg.data, they should not be accessed in such a direct* manner, since when dealing with meta-transactions the account sending and* paying for execution may not be the actual sender (as far as an application* is concerned).** This contract is only required for intermediate, library-like contracts.*/abstract contract ContextUpgradeable is Initializable {function __Context_init() internal onlyInitializing {}function __Context_init_unchained() internal onlyInitializing {}function _msgSender() internal view virtual returns (address) {return msg.sender;}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.8.0) (proxy/utils/Initializable.sol)pragma solidity ^0.8.2;import "../../utils/AddressUpgradeable.sol";/*** @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed* behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an* external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer* function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.** The initialization functions use a version number. Once a version number is used, it is consumed and cannot be* reused. This mechanism prevents re-execution of each "step" but allows the creation of new initialization steps in* case an upgrade adds a module that needs to be initialized.** For example:** [.hljs-theme-light.nopadding]* ```* contract MyToken is ERC20Upgradeable {* function initialize() initializer public {* __ERC20_init("MyToken", "MTK");* }* }
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)pragma solidity ^0.8.1;/*** @dev Collection of functions related to the address type*/library AddressUpgradeable {/*** @dev Returns true if `account` is a contract.** [IMPORTANT]* ====* It is unsafe to assume that an address for which this function returns* false is an externally-owned account (EOA) and not a contract.** Among others, `isContract` will return false for the following* types of addresses:** - an externally-owned account* - a contract in construction* - an address where a contract will be created* - an address where a contract lived, but was destroyed* ====*
1234567891011121314151617181920212223242526{"remappings": ["forge-std/=lib/forge-std/src/","forge-gas-snapshot/=lib/forge-gas-snapshot/src/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@prb/test/=lib/prb-test/src/","@zodiac/=lib/zodiac/contracts/","@gnosis.pm/safe-contracts/=lib/safe-contracts/","@murky/=lib/murky/src/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","murky/=lib/murky/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","prb-test/=lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","zodiac/=lib/zodiac/contracts/"],"optimizer": {"enabled": true,"runs": 10000},"metadata": {"useLiteralContent": false,"bytecodeHash": "none",
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_vetoGuardian","type":"address"},{"internalType":"address[]","name":"_spaces","type":"address[]"},{"internalType":"uint256","name":"_quorum","type":"uint256"},{"internalType":"address","name":"_timelock","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"DuplicateExecutionPayloadHash","type":"error"},{"inputs":[],"name":"DuplicateMetaTransaction","type":"error"},{"inputs":[],"name":"ExecutionFailed","type":"error"},{"inputs":[{"internalType":"enum ProposalStatus","name":"status","type":"uint8"}],"name":"InvalidProposalStatus","type":"error"},{"inputs":[],"name":"InvalidSpace","type":"error"},{"inputs":[],"name":"InvalidTransaction","type":"error"},{"inputs":[],"name":"OnlyVetoGuardian","type":"error"},{"inputs":[],"name":"ProposalNotQueued","type":"error"},{"inputs":[],"name":"TimelockDelayNotMet","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"address","name":"vetoGuardian","type":"address"},{"indexed":false,"internalType":"address[]","name":"spaces","type":"address[]"},{"indexed":false,"internalType":"uint256","name":"quorum","type":"uint256"},{"indexed":false,"internalType":"address","name":"timelock","type":"address"}],"name":"CompTimelockCompatibleExecutionStrategySetUp","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"executionPayloadHash","type":"bytes32"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"executionPayloadHash","type":"bytes32"}],"name":"ProposalQueued","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"executionPayloadHash","type":"bytes32"}],"name":"ProposalVetoed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newQuorum","type":"uint256"}],"name":"QuorumUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"space","type":"address"}],"name":"SpaceDisabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"space","type":"address"}],"name":"SpaceEnabled","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation","type":"uint8"},{"internalType":"uint256","name":"salt","type":"uint256"}],"indexed":false,"internalType":"struct MetaTransaction","name":"transaction","type":"tuple"}],"name":"TransactionExecuted","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation","type":"uint8"},{"internalType":"uint256","name":"salt","type":"uint256"}],"indexed":false,"internalType":"struct MetaTransaction","name":"transaction","type":"tuple"},{"indexed":false,"internalType":"uint256","name":"executionTime","type":"uint256"}],"name":"TransactionQueued","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation","type":"uint8"},{"internalType":"uint256","name":"salt","type":"uint256"}],"indexed":false,"internalType":"struct MetaTransaction","name":"transaction","type":"tuple"}],"name":"TransactionVetoed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"vetoGuardian","type":"address"},{"indexed":false,"internalType":"address","name":"newVetoGuardian","type":"address"}],"name":"VetoGuardianSet","type":"event"},{"inputs":[],"name":"acceptAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"space","type":"address"}],"name":"disableSpace","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"space","type":"address"}],"name":"enableSpace","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"components":[{"internalType":"address","name":"author","type":"address"},{"internalType":"uint32","name":"startBlockNumber","type":"uint32"},{"internalType":"contract IExecutionStrategy","name":"executionStrategy","type":"address"},{"internalType":"uint32","name":"minEndBlockNumber","type":"uint32"},{"internalType":"uint32","name":"maxEndBlockNumber","type":"uint32"},{"internalType":"enum FinalizationStatus","name":"finalizationStatus","type":"uint8"},{"internalType":"bytes32","name":"executionPayloadHash","type":"bytes32"},{"internalType":"uint256","name":"activeVotingStrategies","type":"uint256"}],"internalType":"struct Proposal","name":"proposal","type":"tuple"},{"internalType":"uint256","name":"votesFor","type":"uint256"},{"internalType":"uint256","name":"votesAgainst","type":"uint256"},{"internalType":"uint256","name":"votesAbstain","type":"uint256"},{"internalType":"bytes","name":"payload","type":"bytes"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"payload","type":"bytes"}],"name":"executeQueuedProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"author","type":"address"},{"internalType":"uint32","name":"startBlockNumber","type":"uint32"},{"internalType":"contract IExecutionStrategy","name":"executionStrategy","type":"address"},{"internalType":"uint32","name":"minEndBlockNumber","type":"uint32"},{"internalType":"uint32","name":"maxEndBlockNumber","type":"uint32"},{"internalType":"enum FinalizationStatus","name":"finalizationStatus","type":"uint8"},{"internalType":"bytes32","name":"executionPayloadHash","type":"bytes32"},{"internalType":"uint256","name":"activeVotingStrategies","type":"uint256"}],"internalType":"struct Proposal","name":"proposal","type":"tuple"},{"internalType":"uint256","name":"votesFor","type":"uint256"},{"internalType":"uint256","name":"votesAgainst","type":"uint256"},{"internalType":"uint256","name":"votesAbstain","type":"uint256"}],"name":"getProposalStatus","outputs":[{"internalType":"enum ProposalStatus","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStrategyType","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"space","type":"address"}],"name":"isSpaceEnabled","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"proposalExecutionTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"quorum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_quorum","type":"uint256"}],"name":"setQuorum","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"initializeParams","type":"bytes"}],"name":"setUp","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newVetoGuardian","type":"address"}],"name":"setVetoGuardian","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"timelock","outputs":[{"internalType":"contract ICompTimelock","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timelockDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"payload","type":"bytes"}],"name":"veto","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vetoGuardian","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060409080825234620003fb576200236f803803809162000022828562000400565b8339810160a082820312620003fb576200003c826200043a565b916020916200004d8383016200043a565b828601516001600160401b0392909190838311620003fb576200007b620000a091620000af9487016200044f565b946200008f6080606083015192016200043a565b9089519687948986019a8b620004c6565b03601f19810184528362000400565b60009081549260ff95868560081c161592838094620003ee575b8015620003d6575b156200037b57600195848760ff19831617875562000369575b50825183019160a084840312620003655762000106906200043a565b90620001148a85016200043a565b9260608501519182116200036157908880620001359301918601016200044f565b926200014960a0608083015192016200043a565b9360018060a01b0380808095169516951692620001778b895460081c16620001718162000531565b62000531565b620001823362000592565b338160335416036200031f578415620002cc578a9089808e620001a58962000592565b620001c860018060a01b0319958b8760685416176068558d5460081c1662000531565b8b925b6200027c575b505050509183917f26431dc11bd9482038645365a6ef5ed65b165f59741ee34eb8d532bb4ce381e59695946200022b94620002138b549e8f60081c1662000531565b8360665560695416176069558c5195869586620004c6565b0390a162000243575b8451611d939081620005dc8239f35b7f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989361ff00191690558351908152a13880808062000234565b8d8651841015620002c557600584901b870181015185168d52606590528b20556000198114620002b1578a018a8e81620001cb565b634e487b7160e01b8a52601160045260248afd5b50620001d1565b8b5162461bcd60e51b8152600481018b9052602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b60648a8d519062461bcd60e51b825280600483015260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b8680fd5b8580fd5b61ffff191661010117855538620000ea565b885162461bcd60e51b815260048101889052602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b158015620000d15750600188871614620000d1565b50600188871610620000c9565b600080fd5b601f909101601f19168101906001600160401b038211908210176200042457604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203620003fb57565b9080601f83011215620003fb578151906001600160401b03821162000424578160051b60405193602093620004878584018762000400565b85528380860192820101928311620003fb578301905b828210620004ac575050505090565b838091620004ba846200043a565b8152019101906200049d565b9395949192909260a0850160018060a01b03809516865284602092168287015260a0604087015282518091528160c0870193019160005b8281106200051a5750505050906080929195606085015216910152565b8351871685529381019392810192600101620004fd565b156200053957565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fd5b603380546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a356fe6080604081815260048036101561001557600080fd5b600092833560e01c908482630e18b6811461153557505080630eb9b15a1461147257806312513b451461143d5780631703a0181461141e578063220f5fd9146113855780634a1cead11461135e5780635f578b20146111965780636efd971c14611152578063715018a6146110d15780638da5cb5b1461109c5780639e33d81114611017578063a1908c6a14610b01578063a4f9edbf1461065c578063ad32287f14610424578063c1ba4e59146103d7578063d33219b4146103a2578063d92d4ea0146102e5578063ea8f8c4b146101fb578063eef09bad146101d35763f2fde38b1461010157600080fd5b346101cf5760206003193601126101cf5761011a61161b565b916101236117a2565b73ffffffffffffffffffffffffffffffffffffffff83161561014c578361014984611821565b80f35b90602060849251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b8280fd5b5050346101f757816003193601126101f7576020906101f0611a47565b9051908152f35b5080fd5b5091346102e25760031936019061016082126102e25750610100136102dd5780519161022683611681565b3573ffffffffffffffffffffffffffffffffffffffff9081811681036102dd57835263ffffffff9060243582811681036102dd57602085015260443590811681036102dd578284015260643581811681036102dd57606084015260843590811681036102dd57608083015260a43560038110156102dd57826102ce9160a06102d995015260c43560c082015260e43560e082015261014435906101243590610104359061188e565b905191829182611760565b0390f35b600080fd5b80fd5b5090346101cf5760206003193601126101cf5773ffffffffffffffffffffffffffffffffffffffff61031561161b565b61031d6117a2565b16918215801561038e575b6103675750816020917fc3dc08a46232e8d0a95510120799f1e68e0aa28c88730b8b0127d5ff4565b4b09385526065835260018186205551908152a180f35b90517fc3b48cf1000000000000000000000000000000000000000000000000000000008152fd5b508284526065602052818420541515610328565b5050346101f757816003193601126101f75760209073ffffffffffffffffffffffffffffffffffffffff606954169051908152f35b50346101cf5760206003193601126101cf577ff18f88786aae85a652aadb99a82462616489a33370c9bcc7b245906812ef7cd19160209135906104186117a2565b8160665551908152a180f35b5082346102e257602090816003193601126102e25767ffffffffffffffff9083358281116101f7576104599036908601611719565b91825194848401958620958684526067865287842054948515610634578785526067875288852054421061060c5790866104a39289875260678252868b8120558051010190611b21565b93835b85518110156105df5788858773ffffffffffffffffffffffffffffffffffffffff8a838861053089886104fa8b8860695416986104e3828c611c9a565b515116976104f1828c611c9a565b51015199611c9a565b5101519851988997889687957f0825f38f0000000000000000000000000000000000000000000000000000000087528601611cdd565b03925af180156105d557610591575b50807f2968e6e48e1461dc6f6934a21a5ea27fad9b6786850ad93f47c2caa4f95fde1361058461057261058c948a611c9a565b518c519182918c83528c830190611d28565b0390a1611c6d565b6104a6565b3d8087833e6105a0818361169e565b81019088818303126105d1578051908682116105cd57916105c69161058c949301611adc565b509061053f565b8780fd5b8680fd5b8a513d88823e3d90fd5b847f7b1bcf1ccf901a11589afff5504d59fd0a53780eed2a952adade0348985139e0888a8c51908152a180f35b8289517f65aecf1d000000000000000000000000000000000000000000000000000000008152fd5b8289517f599fb1a3000000000000000000000000000000000000000000000000000000008152fd5b50346101cf5760209081600319360112610afd5767ffffffffffffffff928135848111610af9576106909036908401611719565b85549260ff95868560081c161592838094610aed575b8015610ad7575b15610a555760019584877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008316178b55610a27575b50805181019160a082898501940312610a2357610700888301611983565b61070b878401611983565b916060840151908111610a1f57830184603f82011215610a1f578981015194610733866119a4565b916107408a51938461169e565b8683528b8301908a829860051b820101928311610a1b57908c8f9796959493928c01915b8383106109f7575050505061078060a060808601519501611983565b966107b78d73ffffffffffffffffffffffffffffffffffffffff808080971697169a16975460081c166107b2816119bc565b6119bc565b6107c033611821565b6107c86117a2565b831561097557508b8d8b808c8f6107e38998999d9c9d611821565b61081d7fffffffffffffffffffffffff0000000000000000000000000000000000000000968d886068541617606855865460081c166119bc565b84925b61091c575b505050509061083b8792549e8f60081c166119bc565b85606655606954161760695588519560a087019287528b87015260a0898701525180915260c0850195918c905b8a8c848410610904575050505050509282917f26431dc11bd9482038645365a6ef5ed65b165f59741ee34eb8d532bb4ce381e594606084015260808301520390a16108b1578480f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff7f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989416855551908152a1388080808480f35b855183168a5298890198909401939190910190610868565b8a879d9c9d9998999592939495518510156109645750918491606585948a610947610953988c611c9a565b51168352522055611c6d565b908f918c8f839c9b9c989798610820565b5082919493509b9a9b979697610825565b6084908c8b51917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b8293949596979850610a098293611983565b81520191018c8f979695949392610764565b8e80fd5b8b80fd5b8980fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016610101178955386106e2565b608483888751917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152fd5b50303b1580156106ad57506001888716146106ad565b506001888716106106a6565b8580fd5b8380fd5b509190346101f7576101a06003193601126101f7576101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc3601126102dd57805192610b4d84611681565b602480359373ffffffffffffffffffffffffffffffffffffffff9485811681036102dd5786526044359263ffffffff9283851685036102dd576020948589015260643587811681036102dd57868901526084359380851685036102dd57606094858a015260a43590811681036102dd57608089015260c43560038110156102dd5760a089015260c088019660e43588526101043560e08a01526101843567ffffffffffffffff811161101357610c069036908501611719565b98338552606587528785205415610feb57610c2f9061016435906101443590610124359061188e565b6007811015610fc057600381141580610fb5575b610f7e5750875184526067865286842054610f5657610c88610c6c610c66611a47565b42611947565b9989518652606788528a89872055878082518301019101611b21565b94845b8651811015610f275781610c9f8289611c9a565b5101516002811015610efc57600114610ed4578887610d218a610cf58f88610cc78887611c9a565b5151169580610ce48986610cdb828b611c9a565b51015198611c9a565b510151905195869485019788611cdd565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810183528261169e565b5190208360695416908a51907ff2b065370000000000000000000000000000000000000000000000000000000082528782015289818781855afa908115610eca578891610e94575b50610e6c5788888b928e8a8a610dcd8a610d838a88611c9a565b5151169388610d978b8a6104f1828c611c9a565b5101519851988997889687957f3a66f9010000000000000000000000000000000000000000000000000000000087528601611cdd565b03925af18015610e6257908991610e39575b5050807f43bc9641fb109444334c2b11fbab28e69b005b810a5449bbf63c36d64277ffe58c8b610e12610e34958c611c9a565b5191610e278251938385948552840190611d28565b908d8301520390a1611c6d565b610c8b565b813d8311610e5b575b610e4c818361169e565b81010312610af9578738610ddf565b503d610e42565b8a513d89823e3d90fd5b858a517fa9c71800000000000000000000000000000000000000000000000000000000008152fd5b90508981813d8311610ec3575b610eab818361169e565b810103126105cd575180151581036105cd5738610d69565b503d610ea1565b8b513d8a823e3d90fd5b8489517f500a07ce000000000000000000000000000000000000000000000000000000008152fd5b84876021887f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b857f4e8c9d52084f3373dec7c4e5c6bd10b8b97fe0a107841ed1de3fbc8f0cc9e984898b8d519051908152a180f35b8287517fa65ca451000000000000000000000000000000000000000000000000000000008152fd5b83610fb189519283927fe6ace38e0000000000000000000000000000000000000000000000000000000084528301611760565b0390fd5b506002811415610c43565b82856021867f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b8388517fc3b48cf1000000000000000000000000000000000000000000000000000000008152fd5b8480fd5b5090346101cf5760206003193601126101cf5773ffffffffffffffffffffffffffffffffffffffff61104761161b565b61104f6117a2565b1691828452606560205281842054156103675750816020917f665604bfe8ee87044ba1f1fd2fb47fe92983c9e187acbb442debf97d3e58192193855260658352848181205551908152a180f35b5050346101f757816003193601126101f75760209073ffffffffffffffffffffffffffffffffffffffff603354169051908152f35b83346102e257806003193601126102e2576110ea6117a2565b600073ffffffffffffffffffffffffffffffffffffffff6033547fffffffffffffffffffffffff00000000000000000000000000000000000000008116603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5050346101f75760206003193601126101f7578060209273ffffffffffffffffffffffffffffffffffffffff61118661161b565b1681526065845220549051908152f35b5082346102e257602090816003193601126102e257823567ffffffffffffffff81116101f7576111c99036908501611719565b908151918381019283209473ffffffffffffffffffffffffffffffffffffffff9384606854163303611336578684526067865287842054928315610634579086826112179351010190611b21565b93835b85518110156112fd578160695416826112338389611c9a565b5151169088611242848a611c9a565b510151908b611251858b611c9a565b51015192813b156112f9579088929183888f8b61129a9151988997889687957f591fcdfe0000000000000000000000000000000000000000000000000000000087528601611cdd565b03925af180156105d5579086916112e5575b5050807fd1b81bfb063589ab54815d5be869dc9e891c1e0a0d307fde4fde6ce242fde8186105846105726112e0948a611c9a565b61121a565b6112ee9061163e565b61101357848a6112ac565b8880fd5b847f0c8bf601915d1f39ef591226bc69b3becc23fcb3616673c419062aa44beb42da888a8c81855260678352848181205551908152a180f35b5086517ffa5e8f94000000000000000000000000000000000000000000000000000000008152fd5b50346101cf5760206003193601126101cf5760209282913581526067845220549051908152f35b5050346101f75760206003193601126101f7577fffffffffffffffffffffffff00000000000000000000000000000000000000006113c161161b565b916113ca6117a2565b7fcf29bde14aae78ac738504abe3fd1a25675f3c52c42e5d2d7e85b549cd0c4b806068549180519473ffffffffffffffffffffffffffffffffffffffff9081851687521694856020820152a1161760685580f35b5050346101f757816003193601126101f7576020906066549051908152f35b5050346101f757816003193601126101f75760209073ffffffffffffffffffffffffffffffffffffffff606854169051908152f35b5091346102e257806003193601126102e257508051906060820182811067ffffffffffffffff821117611507576102d993508152602282527f436f6d7054696d656c6f636b436f6d70617469626c6553696d706c6551756f7260208301527f756d00000000000000000000000000000000000000000000000000000000000081830152519182916020835260208301906115d8565b6041847f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b91509291346101f757816003193601126101f75773ffffffffffffffffffffffffffffffffffffffff6069541690813b156101cf57848381937f0e18b6810000000000000000000000000000000000000000000000000000000083525af19081156115ac57506115a3575080f35b6101499061163e565b513d84823e3d90fd5b60005b8381106115c85750506000910152565b81810151838201526020016115b8565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602093611614815180928187528780880191016115b5565b0116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036102dd57565b67ffffffffffffffff811161165257604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610100810190811067ffffffffffffffff82111761165257604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761165257604052565b67ffffffffffffffff811161165257601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f820112156102dd57803590611730826116df565b9261173e604051948561169e565b828452602083830101116102dd57816000926020809301838601378301015290565b9190602083019260078210156117735752565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff6033541633036117c357565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b6033549073ffffffffffffffffffffffffffffffffffffffff80911691827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b91909261189e6066549185611947565b1015928361193d575b505060a0810180516003811015611773576002036118c757505050600690565b516003811015611773576001036118df575050600490565b63ffffffff908160208201511643106000146118fd57505050600090565b6060810151821643101561191357505050600190565b608001511643101561192e571561192957600290565b600190565b1561193857600390565b600590565b11915038806118a7565b9190820180921161195457565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b519073ffffffffffffffffffffffffffffffffffffffff821682036102dd57565b67ffffffffffffffff81116116525760051b60200190565b156119c357565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152fd5b6004602073ffffffffffffffffffffffffffffffffffffffff60695416604051928380927f6a42b8f80000000000000000000000000000000000000000000000000000000082525afa908115611ad057600091611aa2575090565b906020823d8211611ac8575b81611abb6020938361169e565b810103126102e257505190565b3d9150611aae565b6040513d6000823e3d90fd5b81601f820112156102dd578051611af2816116df565b92611b00604051948561169e565b818452602082840101116102dd57611b1e91602080850191016115b5565b90565b9060209081838203126102dd57825167ffffffffffffffff938482116102dd57019080601f830112156102dd578151611b59816119a4565b946040611b688151978861169e565b828752858088019360051b860101948486116102dd57868101935b868510611b9557505050505050505090565b84518481116102dd5782019060a090817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0848a0301126102dd57845182810181811088821117611c3f578652611bec8b8501611983565b8152858401518b820152606092838501518881116102dd578a8d611c1292880101611adc565b87830152608090818601519560028710156102dd578d968796850152015190820152815201940193611b83565b602460007f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146119545760010190565b8051821015611cae5760209160051b010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b94939260809273ffffffffffffffffffffffffffffffffffffffff611d2393168752602087015260a06040870152600060a087015260c0606087015260c08601906115d8565b930152565b9073ffffffffffffffffffffffffffffffffffffffff825116815260208201516020820152611d66604083015160a0604084015260a08301906115d8565b91606081015160028110156117735760608301526080908101519101529056fea164736f6c6343000812000a0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604081815260048036101561001557600080fd5b600092833560e01c908482630e18b6811461153557505080630eb9b15a1461147257806312513b451461143d5780631703a0181461141e578063220f5fd9146113855780634a1cead11461135e5780635f578b20146111965780636efd971c14611152578063715018a6146110d15780638da5cb5b1461109c5780639e33d81114611017578063a1908c6a14610b01578063a4f9edbf1461065c578063ad32287f14610424578063c1ba4e59146103d7578063d33219b4146103a2578063d92d4ea0146102e5578063ea8f8c4b146101fb578063eef09bad146101d35763f2fde38b1461010157600080fd5b346101cf5760206003193601126101cf5761011a61161b565b916101236117a2565b73ffffffffffffffffffffffffffffffffffffffff83161561014c578361014984611821565b80f35b90602060849251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b8280fd5b5050346101f757816003193601126101f7576020906101f0611a47565b9051908152f35b5080fd5b5091346102e25760031936019061016082126102e25750610100136102dd5780519161022683611681565b3573ffffffffffffffffffffffffffffffffffffffff9081811681036102dd57835263ffffffff9060243582811681036102dd57602085015260443590811681036102dd578284015260643581811681036102dd57606084015260843590811681036102dd57608083015260a43560038110156102dd57826102ce9160a06102d995015260c43560c082015260e43560e082015261014435906101243590610104359061188e565b905191829182611760565b0390f35b600080fd5b80fd5b5090346101cf5760206003193601126101cf5773ffffffffffffffffffffffffffffffffffffffff61031561161b565b61031d6117a2565b16918215801561038e575b6103675750816020917fc3dc08a46232e8d0a95510120799f1e68e0aa28c88730b8b0127d5ff4565b4b09385526065835260018186205551908152a180f35b90517fc3b48cf1000000000000000000000000000000000000000000000000000000008152fd5b508284526065602052818420541515610328565b5050346101f757816003193601126101f75760209073ffffffffffffffffffffffffffffffffffffffff606954169051908152f35b50346101cf5760206003193601126101cf577ff18f88786aae85a652aadb99a82462616489a33370c9bcc7b245906812ef7cd19160209135906104186117a2565b8160665551908152a180f35b5082346102e257602090816003193601126102e25767ffffffffffffffff9083358281116101f7576104599036908601611719565b91825194848401958620958684526067865287842054948515610634578785526067875288852054421061060c5790866104a39289875260678252868b8120558051010190611b21565b93835b85518110156105df5788858773ffffffffffffffffffffffffffffffffffffffff8a838861053089886104fa8b8860695416986104e3828c611c9a565b515116976104f1828c611c9a565b51015199611c9a565b5101519851988997889687957f0825f38f0000000000000000000000000000000000000000000000000000000087528601611cdd565b03925af180156105d557610591575b50807f2968e6e48e1461dc6f6934a21a5ea27fad9b6786850ad93f47c2caa4f95fde1361058461057261058c948a611c9a565b518c519182918c83528c830190611d28565b0390a1611c6d565b6104a6565b3d8087833e6105a0818361169e565b81019088818303126105d1578051908682116105cd57916105c69161058c949301611adc565b509061053f565b8780fd5b8680fd5b8a513d88823e3d90fd5b847f7b1bcf1ccf901a11589afff5504d59fd0a53780eed2a952adade0348985139e0888a8c51908152a180f35b8289517f65aecf1d000000000000000000000000000000000000000000000000000000008152fd5b8289517f599fb1a3000000000000000000000000000000000000000000000000000000008152fd5b50346101cf5760209081600319360112610afd5767ffffffffffffffff928135848111610af9576106909036908401611719565b85549260ff95868560081c161592838094610aed575b8015610ad7575b15610a555760019584877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008316178b55610a27575b50805181019160a082898501940312610a2357610700888301611983565b61070b878401611983565b916060840151908111610a1f57830184603f82011215610a1f578981015194610733866119a4565b916107408a51938461169e565b8683528b8301908a829860051b820101928311610a1b57908c8f9796959493928c01915b8383106109f7575050505061078060a060808601519501611983565b966107b78d73ffffffffffffffffffffffffffffffffffffffff808080971697169a16975460081c166107b2816119bc565b6119bc565b6107c033611821565b6107c86117a2565b831561097557508b8d8b808c8f6107e38998999d9c9d611821565b61081d7fffffffffffffffffffffffff0000000000000000000000000000000000000000968d886068541617606855865460081c166119bc565b84925b61091c575b505050509061083b8792549e8f60081c166119bc565b85606655606954161760695588519560a087019287528b87015260a0898701525180915260c0850195918c905b8a8c848410610904575050505050509282917f26431dc11bd9482038645365a6ef5ed65b165f59741ee34eb8d532bb4ce381e594606084015260808301520390a16108b1578480f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff7f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989416855551908152a1388080808480f35b855183168a5298890198909401939190910190610868565b8a879d9c9d9998999592939495518510156109645750918491606585948a610947610953988c611c9a565b51168352522055611c6d565b908f918c8f839c9b9c989798610820565b5082919493509b9a9b979697610825565b6084908c8b51917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b8293949596979850610a098293611983565b81520191018c8f979695949392610764565b8e80fd5b8b80fd5b8980fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016610101178955386106e2565b608483888751917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152fd5b50303b1580156106ad57506001888716146106ad565b506001888716106106a6565b8580fd5b8380fd5b509190346101f7576101a06003193601126101f7576101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc3601126102dd57805192610b4d84611681565b602480359373ffffffffffffffffffffffffffffffffffffffff9485811681036102dd5786526044359263ffffffff9283851685036102dd576020948589015260643587811681036102dd57868901526084359380851685036102dd57606094858a015260a43590811681036102dd57608089015260c43560038110156102dd5760a089015260c088019660e43588526101043560e08a01526101843567ffffffffffffffff811161101357610c069036908501611719565b98338552606587528785205415610feb57610c2f9061016435906101443590610124359061188e565b6007811015610fc057600381141580610fb5575b610f7e5750875184526067865286842054610f5657610c88610c6c610c66611a47565b42611947565b9989518652606788528a89872055878082518301019101611b21565b94845b8651811015610f275781610c9f8289611c9a565b5101516002811015610efc57600114610ed4578887610d218a610cf58f88610cc78887611c9a565b5151169580610ce48986610cdb828b611c9a565b51015198611c9a565b510151905195869485019788611cdd565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810183528261169e565b5190208360695416908a51907ff2b065370000000000000000000000000000000000000000000000000000000082528782015289818781855afa908115610eca578891610e94575b50610e6c5788888b928e8a8a610dcd8a610d838a88611c9a565b5151169388610d978b8a6104f1828c611c9a565b5101519851988997889687957f3a66f9010000000000000000000000000000000000000000000000000000000087528601611cdd565b03925af18015610e6257908991610e39575b5050807f43bc9641fb109444334c2b11fbab28e69b005b810a5449bbf63c36d64277ffe58c8b610e12610e34958c611c9a565b5191610e278251938385948552840190611d28565b908d8301520390a1611c6d565b610c8b565b813d8311610e5b575b610e4c818361169e565b81010312610af9578738610ddf565b503d610e42565b8a513d89823e3d90fd5b858a517fa9c71800000000000000000000000000000000000000000000000000000000008152fd5b90508981813d8311610ec3575b610eab818361169e565b810103126105cd575180151581036105cd5738610d69565b503d610ea1565b8b513d8a823e3d90fd5b8489517f500a07ce000000000000000000000000000000000000000000000000000000008152fd5b84876021887f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b857f4e8c9d52084f3373dec7c4e5c6bd10b8b97fe0a107841ed1de3fbc8f0cc9e984898b8d519051908152a180f35b8287517fa65ca451000000000000000000000000000000000000000000000000000000008152fd5b83610fb189519283927fe6ace38e0000000000000000000000000000000000000000000000000000000084528301611760565b0390fd5b506002811415610c43565b82856021867f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b8388517fc3b48cf1000000000000000000000000000000000000000000000000000000008152fd5b8480fd5b5090346101cf5760206003193601126101cf5773ffffffffffffffffffffffffffffffffffffffff61104761161b565b61104f6117a2565b1691828452606560205281842054156103675750816020917f665604bfe8ee87044ba1f1fd2fb47fe92983c9e187acbb442debf97d3e58192193855260658352848181205551908152a180f35b5050346101f757816003193601126101f75760209073ffffffffffffffffffffffffffffffffffffffff603354169051908152f35b83346102e257806003193601126102e2576110ea6117a2565b600073ffffffffffffffffffffffffffffffffffffffff6033547fffffffffffffffffffffffff00000000000000000000000000000000000000008116603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5050346101f75760206003193601126101f7578060209273ffffffffffffffffffffffffffffffffffffffff61118661161b565b1681526065845220549051908152f35b5082346102e257602090816003193601126102e257823567ffffffffffffffff81116101f7576111c99036908501611719565b908151918381019283209473ffffffffffffffffffffffffffffffffffffffff9384606854163303611336578684526067865287842054928315610634579086826112179351010190611b21565b93835b85518110156112fd578160695416826112338389611c9a565b5151169088611242848a611c9a565b510151908b611251858b611c9a565b51015192813b156112f9579088929183888f8b61129a9151988997889687957f591fcdfe0000000000000000000000000000000000000000000000000000000087528601611cdd565b03925af180156105d5579086916112e5575b5050807fd1b81bfb063589ab54815d5be869dc9e891c1e0a0d307fde4fde6ce242fde8186105846105726112e0948a611c9a565b61121a565b6112ee9061163e565b61101357848a6112ac565b8880fd5b847f0c8bf601915d1f39ef591226bc69b3becc23fcb3616673c419062aa44beb42da888a8c81855260678352848181205551908152a180f35b5086517ffa5e8f94000000000000000000000000000000000000000000000000000000008152fd5b50346101cf5760206003193601126101cf5760209282913581526067845220549051908152f35b5050346101f75760206003193601126101f7577fffffffffffffffffffffffff00000000000000000000000000000000000000006113c161161b565b916113ca6117a2565b7fcf29bde14aae78ac738504abe3fd1a25675f3c52c42e5d2d7e85b549cd0c4b806068549180519473ffffffffffffffffffffffffffffffffffffffff9081851687521694856020820152a1161760685580f35b5050346101f757816003193601126101f7576020906066549051908152f35b5050346101f757816003193601126101f75760209073ffffffffffffffffffffffffffffffffffffffff606854169051908152f35b5091346102e257806003193601126102e257508051906060820182811067ffffffffffffffff821117611507576102d993508152602282527f436f6d7054696d656c6f636b436f6d70617469626c6553696d706c6551756f7260208301527f756d00000000000000000000000000000000000000000000000000000000000081830152519182916020835260208301906115d8565b6041847f4e487b71000000000000000000000000000000000000000000000000000000006000525260246000fd5b91509291346101f757816003193601126101f75773ffffffffffffffffffffffffffffffffffffffff6069541690813b156101cf57848381937f0e18b6810000000000000000000000000000000000000000000000000000000083525af19081156115ac57506115a3575080f35b6101499061163e565b513d84823e3d90fd5b60005b8381106115c85750506000910152565b81810151838201526020016115b8565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602093611614815180928187528780880191016115b5565b0116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036102dd57565b67ffffffffffffffff811161165257604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610100810190811067ffffffffffffffff82111761165257604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761165257604052565b67ffffffffffffffff811161165257601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f820112156102dd57803590611730826116df565b9261173e604051948561169e565b828452602083830101116102dd57816000926020809301838601378301015290565b9190602083019260078210156117735752565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff6033541633036117c357565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b6033549073ffffffffffffffffffffffffffffffffffffffff80911691827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b91909261189e6066549185611947565b1015928361193d575b505060a0810180516003811015611773576002036118c757505050600690565b516003811015611773576001036118df575050600490565b63ffffffff908160208201511643106000146118fd57505050600090565b6060810151821643101561191357505050600190565b608001511643101561192e571561192957600290565b600190565b1561193857600390565b600590565b11915038806118a7565b9190820180921161195457565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b519073ffffffffffffffffffffffffffffffffffffffff821682036102dd57565b67ffffffffffffffff81116116525760051b60200190565b156119c357565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152fd5b6004602073ffffffffffffffffffffffffffffffffffffffff60695416604051928380927f6a42b8f80000000000000000000000000000000000000000000000000000000082525afa908115611ad057600091611aa2575090565b906020823d8211611ac8575b81611abb6020938361169e565b810103126102e257505190565b3d9150611aae565b6040513d6000823e3d90fd5b81601f820112156102dd578051611af2816116df565b92611b00604051948561169e565b818452602082840101116102dd57611b1e91602080850191016115b5565b90565b9060209081838203126102dd57825167ffffffffffffffff938482116102dd57019080601f830112156102dd578151611b59816119a4565b946040611b688151978861169e565b828752858088019360051b860101948486116102dd57868101935b868510611b9557505050505050505090565b84518481116102dd5782019060a090817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0848a0301126102dd57845182810181811088821117611c3f578652611bec8b8501611983565b8152858401518b820152606092838501518881116102dd578a8d611c1292880101611adc565b87830152608090818601519560028710156102dd578d968796850152015190820152815201940193611b83565b602460007f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146119545760010190565b8051821015611cae5760209160051b010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b94939260809273ffffffffffffffffffffffffffffffffffffffff611d2393168752602087015260a06040870152600060a087015260c0606087015260c08601906115d8565b930152565b9073ffffffffffffffffffffffffffffffffffffffff825116815260208201516020820152611d66604083015160a0604084015260a08301906115d8565b91606081015160028110156117735760608301526080908101519101529056fea164736f6c6343000812000a
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _owner (address): 0x0000000000000000000000000000000000000001
Arg [1] : _vetoGuardian (address): 0x0000000000000000000000000000000000000001
-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000000
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.