Overview
S Balance
S Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 13 from a total of 13 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Buffer | 4927049 | 17 days ago | IN | 0 S | 0.00254402 | ||||
Price Feed Set T... | 4927027 | 17 days ago | IN | 0 S | 0.00439615 | ||||
Signal Price Fee... | 4927010 | 17 days ago | IN | 0 S | 0.00291714 | ||||
Set Gov | 4926974 | 17 days ago | IN | 0 S | 0.00194694 | ||||
Signal Set Gov | 4926955 | 17 days ago | IN | 0 S | 0.0028611 | ||||
Set Buffer | 4926946 | 17 days ago | IN | 0 S | 0.00133754 | ||||
Set Is Secondary... | 4133899 | 23 days ago | IN | 0 S | 0.00336237 | ||||
Set Keeper | 4128335 | 23 days ago | IN | 0 S | 0.00515119 | ||||
Set Contract Han... | 4128326 | 23 days ago | IN | 0 S | 0.00507617 | ||||
Set Contract Han... | 4128314 | 23 days ago | IN | 0 S | 0.00507617 | ||||
Set Contract Han... | 4128306 | 23 days ago | IN | 0 S | 0.00507617 | ||||
Set Contract Han... | 4128295 | 23 days ago | IN | 0 S | 0.00507617 | ||||
Set Contract Han... | 4128287 | 23 days ago | IN | 0 S | 0.00507617 |
Loading...
Loading
Contract Name:
PriceFeedTimelock
Compiler Version
v0.6.12+commit.27d51765
Optimization Enabled:
Yes with 10 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.6.12; import "./interfaces/ITimelockTarget.sol"; import "./interfaces/IHandlerTarget.sol"; import "../access/interfaces/IAdmin.sol"; import "../core/interfaces/IVaultPriceFeed.sol"; import "../oracle/interfaces/IFastPriceFeed.sol"; import "../referrals/interfaces/IReferralStorage.sol"; import "../tokens/interfaces/IYieldToken.sol"; import "../tokens/interfaces/IBaseToken.sol"; import "../tokens/interfaces/IMintable.sol"; import "../tokens/interfaces/IUSDG.sol"; import "../staking/interfaces/IVester.sol"; import "../libraries/math/SafeMath.sol"; import "../libraries/token/IERC20.sol"; contract PriceFeedTimelock { using SafeMath for uint256; uint256 public constant MAX_BUFFER = 5 days; uint256 public buffer; address public admin; address public tokenManager; mapping (bytes32 => uint256) public pendingActions; mapping (address => bool) public isHandler; mapping (address => bool) public isKeeper; event SignalPendingAction(bytes32 action); event SignalApprove(address token, address spender, uint256 amount, bytes32 action); event SignalWithdrawToken(address target, address token, address receiver, uint256 amount, bytes32 action); event SignalSetGov(address target, address gov, bytes32 action); event SignalSetPriceFeedWatcher(address fastPriceFeed, address account, bool isActive); event SignalPriceFeedSetTokenConfig( address vaultPriceFeed, address token, address priceFeed, uint256 priceDecimals, bool isStrictStable ); event ClearAction(bytes32 action); modifier onlyAdmin() { require(msg.sender == admin, "Timelock: forbidden"); _; } modifier onlyHandlerAndAbove() { require(msg.sender == admin || isHandler[msg.sender], "Timelock: forbidden"); _; } modifier onlyKeeperAndAbove() { require(msg.sender == admin || isHandler[msg.sender] || isKeeper[msg.sender], "Timelock: forbidden"); _; } modifier onlyTokenManager() { require(msg.sender == tokenManager, "Timelock: forbidden"); _; } constructor( address _admin, uint256 _buffer, address _tokenManager ) public { require(_buffer <= MAX_BUFFER, "Timelock: invalid _buffer"); admin = _admin; buffer = _buffer; tokenManager = _tokenManager; } function setAdmin(address _admin) external onlyTokenManager { admin = _admin; } function setExternalAdmin(address _target, address _admin) external onlyAdmin { require(_target != address(this), "Timelock: invalid _target"); IAdmin(_target).setAdmin(_admin); } function setContractHandler(address _handler, bool _isActive) external onlyAdmin { isHandler[_handler] = _isActive; } function setKeeper(address _keeper, bool _isActive) external onlyAdmin { isKeeper[_keeper] = _isActive; } function setBuffer(uint256 _buffer) external onlyAdmin { require(_buffer <= MAX_BUFFER, "Timelock: invalid _buffer"); // require(_buffer > buffer, "Timelock: buffer cannot be decreased"); buffer = _buffer; } function setIsAmmEnabled(address _priceFeed, bool _isEnabled) external onlyAdmin { IVaultPriceFeed(_priceFeed).setIsAmmEnabled(_isEnabled); } function setIsSecondaryPriceEnabled(address _priceFeed, bool _isEnabled) external onlyAdmin { IVaultPriceFeed(_priceFeed).setIsSecondaryPriceEnabled(_isEnabled); } function setMaxStrictPriceDeviation(address _priceFeed, uint256 _maxStrictPriceDeviation) external onlyAdmin { IVaultPriceFeed(_priceFeed).setMaxStrictPriceDeviation(_maxStrictPriceDeviation); } function setUseV2Pricing(address _priceFeed, bool _useV2Pricing) external onlyAdmin { IVaultPriceFeed(_priceFeed).setUseV2Pricing(_useV2Pricing); } function setAdjustment(address _priceFeed, address _token, bool _isAdditive, uint256 _adjustmentBps) external onlyKeeperAndAbove { IVaultPriceFeed(_priceFeed).setAdjustment(_token, _isAdditive, _adjustmentBps); } function setSpreadBasisPoints(address _priceFeed, address _token, uint256 _spreadBasisPoints) external onlyKeeperAndAbove { IVaultPriceFeed(_priceFeed).setSpreadBasisPoints(_token, _spreadBasisPoints); } function setPriceSampleSpace(address _priceFeed,uint256 _priceSampleSpace) external onlyHandlerAndAbove { require(_priceSampleSpace <= 5, "Invalid _priceSampleSpace"); IVaultPriceFeed(_priceFeed).setPriceSampleSpace(_priceSampleSpace); } function setVaultPriceFeed(address _fastPriceFeed, address _vaultPriceFeed) external onlyAdmin { IFastPriceFeed(_fastPriceFeed).setVaultPriceFeed(_vaultPriceFeed); } function setPriceDuration(address _fastPriceFeed, uint256 _priceDuration) external onlyHandlerAndAbove { IFastPriceFeed(_fastPriceFeed).setPriceDuration(_priceDuration); } function setMaxPriceUpdateDelay(address _fastPriceFeed, uint256 _maxPriceUpdateDelay) external onlyHandlerAndAbove { IFastPriceFeed(_fastPriceFeed).setMaxPriceUpdateDelay(_maxPriceUpdateDelay); } function setSpreadBasisPointsIfInactive(address _fastPriceFeed, uint256 _spreadBasisPointsIfInactive) external onlyAdmin { IFastPriceFeed(_fastPriceFeed).setSpreadBasisPointsIfInactive(_spreadBasisPointsIfInactive); } function setSpreadBasisPointsIfChainError(address _fastPriceFeed, uint256 _spreadBasisPointsIfChainError) external onlyAdmin { IFastPriceFeed(_fastPriceFeed).setSpreadBasisPointsIfChainError(_spreadBasisPointsIfChainError); } function setMinBlockInterval(address _fastPriceFeed, uint256 _minBlockInterval) external onlyAdmin { IFastPriceFeed(_fastPriceFeed).setMinBlockInterval(_minBlockInterval); } function setIsSpreadEnabled(address _fastPriceFeed, bool _isSpreadEnabled) external onlyAdmin { IFastPriceFeed(_fastPriceFeed).setIsSpreadEnabled(_isSpreadEnabled); } function transferIn(address _sender, address _token, uint256 _amount) external onlyAdmin { IERC20(_token).transferFrom(_sender, address(this), _amount); } function signalApprove(address _token, address _spender, uint256 _amount) external onlyAdmin { bytes32 action = keccak256(abi.encodePacked("approve", _token, _spender, _amount)); _setPendingAction(action); emit SignalApprove(_token, _spender, _amount, action); } function approve(address _token, address _spender, uint256 _amount) external onlyAdmin { bytes32 action = keccak256(abi.encodePacked("approve", _token, _spender, _amount)); _validateAction(action); _clearAction(action); IERC20(_token).approve(_spender, _amount); } function signalWithdrawToken(address _target, address _token, address _receiver, uint256 _amount) external onlyAdmin { bytes32 action = keccak256(abi.encodePacked("withdrawToken", _target, _token, _receiver, _amount)); _setPendingAction(action); emit SignalWithdrawToken(_target, _token, _receiver, _amount, action); } function withdrawToken(address _target, address _token, address _receiver, uint256 _amount) external onlyAdmin { bytes32 action = keccak256(abi.encodePacked("withdrawToken", _target, _token, _receiver, _amount)); _validateAction(action); _clearAction(action); IBaseToken(_target).withdrawToken(_token, _receiver, _amount); } function signalSetGov(address _target, address _gov) external onlyAdmin { bytes32 action = keccak256(abi.encodePacked("setGov", _target, _gov)); _setPendingAction(action); emit SignalSetGov(_target, _gov, action); } function setGov(address _target, address _gov) external onlyAdmin { bytes32 action = keccak256(abi.encodePacked("setGov", _target, _gov)); _validateAction(action); _clearAction(action); ITimelockTarget(_target).setGov(_gov); } function signalSetPriceFeedWatcher(address _fastPriceFeed, address _account, bool _isActive) external onlyAdmin { bytes32 action = keccak256(abi.encodePacked("setPriceFeedWatcher", _fastPriceFeed, _account, _isActive)); _setPendingAction(action); emit SignalSetPriceFeedWatcher(_fastPriceFeed, _account, _isActive); } function setPriceFeedWatcher(address _fastPriceFeed, address _account, bool _isActive) external onlyAdmin { bytes32 action = keccak256(abi.encodePacked("setPriceFeedWatcher", _fastPriceFeed, _account, _isActive)); _validateAction(action); _clearAction(action); IFastPriceFeed(_fastPriceFeed).setSigner(_account, _isActive); } function signalSetPriceFeedUpdater(address _fastPriceFeed, address _account, bool _isActive) external onlyAdmin { bytes32 action = keccak256(abi.encodePacked("setPriceFeedUpdater", _fastPriceFeed, _account, _isActive)); _setPendingAction(action); emit SignalSetPriceFeedWatcher(_fastPriceFeed, _account, _isActive); } function setPriceFeedUpdater(address _fastPriceFeed, address _account, bool _isActive) external onlyAdmin { bytes32 action = keccak256(abi.encodePacked("setPriceFeedUpdater", _fastPriceFeed, _account, _isActive)); _validateAction(action); _clearAction(action); IFastPriceFeed(_fastPriceFeed).setUpdater(_account, _isActive); } function signalPriceFeedSetTokenConfig( address _vaultPriceFeed, address _token, address _priceFeed, uint256 _priceDecimals, bool _isStrictStable ) external onlyAdmin { bytes32 action = keccak256(abi.encodePacked( "priceFeedSetTokenConfig", _vaultPriceFeed, _token, _priceFeed, _priceDecimals, _isStrictStable )); _setPendingAction(action); emit SignalPriceFeedSetTokenConfig( _vaultPriceFeed, _token, _priceFeed, _priceDecimals, _isStrictStable ); } function priceFeedSetTokenConfig( address _vaultPriceFeed, address _token, address _priceFeed, uint256 _priceDecimals, bool _isStrictStable ) external onlyAdmin { bytes32 action = keccak256(abi.encodePacked( "priceFeedSetTokenConfig", _vaultPriceFeed, _token, _priceFeed, _priceDecimals, _isStrictStable )); _validateAction(action); _clearAction(action); IVaultPriceFeed(_vaultPriceFeed).setTokenConfig( _token, _priceFeed, _priceDecimals, _isStrictStable ); } function cancelAction(bytes32 _action) external onlyAdmin { _clearAction(_action); } function _setPendingAction(bytes32 _action) private { pendingActions[_action] = block.timestamp.add(buffer); emit SignalPendingAction(_action); } function _validateAction(bytes32 _action) private view { require(pendingActions[_action] != 0, "Timelock: action not signalled"); require(pendingActions[_action] < block.timestamp, "Timelock: action time not yet passed"); } function _clearAction(bytes32 _action) private { require(pendingActions[_action] != 0, "Timelock: invalid _action"); delete pendingActions[_action]; emit ClearAction(_action); } }
//SPDX-License-Identifier: MIT pragma solidity 0.6.12; interface IAdmin { function setAdmin(address _admin) external; }
// SPDX-License-Identifier: MIT pragma solidity 0.6.12; interface IVaultPriceFeed { function adjustmentBasisPoints(address _token) external view returns (uint256); function isAdjustmentAdditive(address _token) external view returns (bool); function setAdjustment(address _token, bool _isAdditive, uint256 _adjustmentBps) external; function setUseV2Pricing(bool _useV2Pricing) external; function setIsAmmEnabled(bool _isEnabled) external; function setIsSecondaryPriceEnabled(bool _isEnabled) external; function setSpreadBasisPoints(address _token, uint256 _spreadBasisPoints) external; function setSpreadThresholdBasisPoints(uint256 _spreadThresholdBasisPoints) external; function setFavorPrimaryPrice(bool _favorPrimaryPrice) external; function setPriceSampleSpace(uint256 _priceSampleSpace) external; function setMaxStrictPriceDeviation(uint256 _maxStrictPriceDeviation) external; function getPrice(address _token, bool _maximise, bool _includeAmmPrice, bool _useSwapPricing) external view returns (uint256); function getAmmPrice(address _token) external view returns (uint256); function getLatestPrimaryPrice(address _token) external view returns (uint256); function getPrimaryPrice(address _token, bool _maximise) external view returns (uint256); function setTokenConfig( address _token, address _priceFeed, uint256 _priceDecimals, bool _isStrictStable ) external; }
// SPDX-License-Identifier: MIT pragma solidity 0.6.12; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } }
// SPDX-License-Identifier: MIT pragma solidity 0.6.12; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); }
// SPDX-License-Identifier: MIT pragma solidity 0.6.12; interface IFastPriceFeed { function lastUpdatedAt() external view returns (uint256); function lastUpdatedBlock() external view returns (uint256); function setSigner(address _account, bool _isActive) external; function setUpdater(address _account, bool _isActive) external; function setPriceDuration(uint256 _priceDuration) external; function setMaxPriceUpdateDelay(uint256 _maxPriceUpdateDelay) external; function setSpreadBasisPointsIfInactive(uint256 _spreadBasisPointsIfInactive) external; function setSpreadBasisPointsIfChainError(uint256 _spreadBasisPointsIfChainError) external; function setMinBlockInterval(uint256 _minBlockInterval) external; function setIsSpreadEnabled(bool _isSpreadEnabled) external; function setMaxDeviationBasisPoints(uint256 _maxDeviationBasisPoints) external; function setMaxCumulativeDeltaDiffs(address[] memory _tokens, uint256[] memory _maxCumulativeDeltaDiffs) external; function setPriceDataInterval(uint256 _priceDataInterval) external; function setVaultPriceFeed(address _vaultPriceFeed) external; function setPricesWithBits(uint256 _priceBits, uint256 _timestamp) external; }
// SPDX-License-Identifier: MIT pragma solidity 0.6.12; interface IHandlerTarget { function isHandler(address _account) external returns (bool); function setHandler(address _handler, bool _isActive) external; }
// SPDX-License-Identifier: MIT pragma solidity 0.6.12; interface ITimelockTarget { function setGov(address _gov) external; function withdrawToken(address _token, address _account, uint256 _amount) external; }
// SPDX-License-Identifier: MIT pragma solidity 0.6.12; interface IReferralStorage { function codeOwners(bytes32 _code) external view returns (address); function traderReferralCodes(address _account) external view returns (bytes32); function referrerDiscountShares(address _account) external view returns (uint256); function referrerTiers(address _account) external view returns (uint256); function getTraderReferralInfo(address _account) external view returns (bytes32, address); function setTraderReferralCode(address _account, bytes32 _code) external; function setTier(uint256 _tierId, uint256 _totalRebate, uint256 _discountShare) external; function setReferrerTier(address _referrer, uint256 _tierId) external; function govSetCodeOwner(bytes32 _code, address _newAccount) external; }
// SPDX-License-Identifier: MIT pragma solidity 0.6.12; interface IVester { function rewardTracker() external view returns (address); function claimForAccount(address _account, address _receiver) external returns (uint256); function claimable(address _account) external view returns (uint256); function cumulativeClaimAmounts(address _account) external view returns (uint256); function claimedAmounts(address _account) external view returns (uint256); function pairAmounts(address _account) external view returns (uint256); function getVestedAmount(address _account) external view returns (uint256); function transferredAverageStakedAmounts(address _account) external view returns (uint256); function transferredCumulativeRewards(address _account) external view returns (uint256); function cumulativeRewardDeductions(address _account) external view returns (uint256); function bonusRewards(address _account) external view returns (uint256); function transferStakeValues(address _sender, address _receiver) external; function setTransferredAverageStakedAmounts(address _account, uint256 _amount) external; function setTransferredCumulativeRewards(address _account, uint256 _amount) external; function setCumulativeRewardDeductions(address _account, uint256 _amount) external; function setBonusRewards(address _account, uint256 _amount) external; function getMaxVestableAmount(address _account) external view returns (uint256); function getCombinedAverageStakedAmount(address _account) external view returns (uint256); }
// SPDX-License-Identifier: MIT pragma solidity 0.6.12; interface IBaseToken { function totalStaked() external view returns (uint256); function stakedBalance(address _account) external view returns (uint256); function removeAdmin(address _account) external; function setInPrivateTransferMode(bool _inPrivateTransferMode) external; function withdrawToken(address _token, address _account, uint256 _amount) external; }
// SPDX-License-Identifier: MIT pragma solidity 0.6.12; interface IMintable { function isMinter(address _account) external returns (bool); function setMinter(address _minter, bool _isActive) external; function mint(address _account, uint256 _amount) external; function burn(address _account, uint256 _amount) external; }
// SPDX-License-Identifier: MIT pragma solidity 0.6.12; interface IUSDG { function addVault(address _vault) external; function removeVault(address _vault) external; function mint(address _account, uint256 _amount) external; function burn(address _account, uint256 _amount) external; }
// SPDX-License-Identifier: MIT pragma solidity 0.6.12; interface IYieldToken { function totalStaked() external view returns (uint256); function stakedBalance(address _account) external view returns (uint256); function removeAdmin(address _account) external; }
{ "optimizer": { "enabled": true, "runs": 10 }, "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":"_admin","type":"address"},{"internalType":"uint256","name":"_buffer","type":"uint256"},{"internalType":"address","name":"_tokenManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"action","type":"bytes32"}],"name":"ClearAction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"action","type":"bytes32"}],"name":"SignalApprove","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"action","type":"bytes32"}],"name":"SignalPendingAction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"vaultPriceFeed","type":"address"},{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"address","name":"priceFeed","type":"address"},{"indexed":false,"internalType":"uint256","name":"priceDecimals","type":"uint256"},{"indexed":false,"internalType":"bool","name":"isStrictStable","type":"bool"}],"name":"SignalPriceFeedSetTokenConfig","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"address","name":"gov","type":"address"},{"indexed":false,"internalType":"bytes32","name":"action","type":"bytes32"}],"name":"SignalSetGov","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"fastPriceFeed","type":"address"},{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isActive","type":"bool"}],"name":"SignalSetPriceFeedWatcher","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"action","type":"bytes32"}],"name":"SignalWithdrawToken","type":"event"},{"inputs":[],"name":"MAX_BUFFER","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buffer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_action","type":"bytes32"}],"name":"cancelAction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isHandler","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isKeeper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"pendingActions","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_vaultPriceFeed","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_priceFeed","type":"address"},{"internalType":"uint256","name":"_priceDecimals","type":"uint256"},{"internalType":"bool","name":"_isStrictStable","type":"bool"}],"name":"priceFeedSetTokenConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_priceFeed","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"bool","name":"_isAdditive","type":"bool"},{"internalType":"uint256","name":"_adjustmentBps","type":"uint256"}],"name":"setAdjustment","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_admin","type":"address"}],"name":"setAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buffer","type":"uint256"}],"name":"setBuffer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_handler","type":"address"},{"internalType":"bool","name":"_isActive","type":"bool"}],"name":"setContractHandler","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"address","name":"_admin","type":"address"}],"name":"setExternalAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"address","name":"_gov","type":"address"}],"name":"setGov","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_priceFeed","type":"address"},{"internalType":"bool","name":"_isEnabled","type":"bool"}],"name":"setIsAmmEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_priceFeed","type":"address"},{"internalType":"bool","name":"_isEnabled","type":"bool"}],"name":"setIsSecondaryPriceEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_fastPriceFeed","type":"address"},{"internalType":"bool","name":"_isSpreadEnabled","type":"bool"}],"name":"setIsSpreadEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_keeper","type":"address"},{"internalType":"bool","name":"_isActive","type":"bool"}],"name":"setKeeper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_fastPriceFeed","type":"address"},{"internalType":"uint256","name":"_maxPriceUpdateDelay","type":"uint256"}],"name":"setMaxPriceUpdateDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_priceFeed","type":"address"},{"internalType":"uint256","name":"_maxStrictPriceDeviation","type":"uint256"}],"name":"setMaxStrictPriceDeviation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_fastPriceFeed","type":"address"},{"internalType":"uint256","name":"_minBlockInterval","type":"uint256"}],"name":"setMinBlockInterval","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_fastPriceFeed","type":"address"},{"internalType":"uint256","name":"_priceDuration","type":"uint256"}],"name":"setPriceDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_fastPriceFeed","type":"address"},{"internalType":"address","name":"_account","type":"address"},{"internalType":"bool","name":"_isActive","type":"bool"}],"name":"setPriceFeedUpdater","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_fastPriceFeed","type":"address"},{"internalType":"address","name":"_account","type":"address"},{"internalType":"bool","name":"_isActive","type":"bool"}],"name":"setPriceFeedWatcher","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_priceFeed","type":"address"},{"internalType":"uint256","name":"_priceSampleSpace","type":"uint256"}],"name":"setPriceSampleSpace","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_priceFeed","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_spreadBasisPoints","type":"uint256"}],"name":"setSpreadBasisPoints","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_fastPriceFeed","type":"address"},{"internalType":"uint256","name":"_spreadBasisPointsIfChainError","type":"uint256"}],"name":"setSpreadBasisPointsIfChainError","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_fastPriceFeed","type":"address"},{"internalType":"uint256","name":"_spreadBasisPointsIfInactive","type":"uint256"}],"name":"setSpreadBasisPointsIfInactive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_priceFeed","type":"address"},{"internalType":"bool","name":"_useV2Pricing","type":"bool"}],"name":"setUseV2Pricing","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_fastPriceFeed","type":"address"},{"internalType":"address","name":"_vaultPriceFeed","type":"address"}],"name":"setVaultPriceFeed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"signalApprove","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_vaultPriceFeed","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_priceFeed","type":"address"},{"internalType":"uint256","name":"_priceDecimals","type":"uint256"},{"internalType":"bool","name":"_isStrictStable","type":"bool"}],"name":"signalPriceFeedSetTokenConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"address","name":"_gov","type":"address"}],"name":"signalSetGov","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_fastPriceFeed","type":"address"},{"internalType":"address","name":"_account","type":"address"},{"internalType":"bool","name":"_isActive","type":"bool"}],"name":"signalSetPriceFeedUpdater","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_fastPriceFeed","type":"address"},{"internalType":"address","name":"_account","type":"address"},{"internalType":"bool","name":"_isActive","type":"bool"}],"name":"signalSetPriceFeedWatcher","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"signalWithdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tokenManager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferIn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b506040516127a83803806127a88339818101604052606081101561003357600080fd5b50805160208201516040909201519091906206978082111561009c576040805162461bcd60e51b815260206004820152601960248201527f54696d656c6f636b3a20696e76616c6964205f62756666657200000000000000604482015290519081900360640190fd5b600180546001600160a01b039485166001600160a01b031991821617909155600092909255600280549190931691161790556126cb806100dd6000396000f3fe608060405234801561001057600080fd5b50600436106101d85760003560e01c8063185051c1146101dd57806321754d9e1461020d5780632877f4c3146102495780632965c8c714610275578063296b07e5146102a35780632a709b14146102e15780632a72e8ba146103055780632cfe82e81461033d5780633335e38a1461036b5780633799c618146103af578063384cae73146103e7578063395bc7941461042b57806343ec661914610457578063454ffa461461048557806346ea87af146104b35780634cd23f3b146104ed57806350e32d1d1461052957806351a6de0d1461056157806355ef13951461058f5780635843752f146105bd5780635b6348ac146105eb57806361d07569146106175780636ba42aaa14610631578063704b6c0214610657578063781cc3d31461067d578063996a7a1e1461069a578063a0a316a2146106c8578063adc7ea37146106f4578063b74517ba14610711578063bd0f1c451461073d578063be03af5814610769578063d1b9e85314610795578063db5c875f146107c3578063dce6e18d146107fb578063e1f21c6714610831578063e30569e514610867578063e4652f4914610884578063e7b0a3a1146108ba578063edaafe20146108f0578063f851a440146108f8575b600080fd5b61020b600480360360408110156101f357600080fd5b506001600160a01b0381351690602001351515610900565b005b61020b6004803603608081101561022357600080fd5b506001600160a01b03813581169160208101358216916040820135169060600135610978565b61020b6004803603604081101561025f57600080fd5b506001600160a01b038135169060200135610ac3565b61020b6004803603604081101561028b57600080fd5b506001600160a01b0381351690602001351515610bde565b61020b600480360360808110156102b957600080fd5b506001600160a01b038135811691602081013590911690604081013515159060600135610c73565b6102e9610d73565b604080516001600160a01b039092168252519081900360200190f35b61020b6004803603606081101561031b57600080fd5b506001600160a01b038135811691602081013590911690604001351515610d82565b61020b6004803603604081101561035357600080fd5b506001600160a01b0381358116916020013516610e9e565b61020b600480360360a081101561038157600080fd5b506001600160a01b038135811691602081013582169160408201351690606081013590608001351515610f3a565b61020b600480360360608110156103c557600080fd5b506001600160a01b038135811691602081013590911690604001351515611094565b61020b600480360360a08110156103fd57600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060800135151561119f565b61020b6004803603604081101561044157600080fd5b506001600160a01b0381351690602001356112d0565b61020b6004803603604081101561046d57600080fd5b506001600160a01b0381351690602001351515611363565b61020b6004803603604081101561049b57600080fd5b506001600160a01b03813516906020013515156113f8565b6104d9600480360360208110156104c957600080fd5b50356001600160a01b031661148d565b604080519115158252519081900360200190f35b61020b6004803603608081101561050357600080fd5b506001600160a01b038135811691602081013582169160408201351690606001356114a2565b61020b6004803603606081101561053f57600080fd5b506001600160a01b0381358116916020810135909116906040013515156115bd565b61020b6004803603604081101561057757600080fd5b506001600160a01b03813581169160200135166116d9565b61020b600480360360408110156105a557600080fd5b506001600160a01b03813581169160200135166117f0565b61020b600480360360408110156105d357600080fd5b506001600160a01b03813516906020013515156118e6565b61020b6004803603604081101561060157600080fd5b506001600160a01b03813516906020013561197b565b61061f611a28565b60408051918252519081900360200190f35b6104d96004803603602081101561064757600080fd5b50356001600160a01b0316611a2f565b61020b6004803603602081101561066d57600080fd5b50356001600160a01b0316611a44565b61020b6004803603602081101561069357600080fd5b5035611ab3565b61020b600480360360408110156106b057600080fd5b506001600160a01b0381358116916020013516611b0c565b61020b600480360360408110156106de57600080fd5b506001600160a01b038135169060200135611bfd565b61020b6004803603602081101561070a57600080fd5b5035611c90565b61020b6004803603604081101561072757600080fd5b506001600160a01b038135169060200135611d36565b61020b6004803603604081101561075357600080fd5b506001600160a01b038135169060200135611de3565b61020b6004803603604081101561077f57600080fd5b506001600160a01b038135169060200135611e76565b61020b600480360360408110156107ab57600080fd5b506001600160a01b0381351690602001351515611f09565b61020b600480360360608110156107d957600080fd5b506001600160a01b038135811691602081013590911690604001351515611f81565b61020b6004803603606081101561081157600080fd5b506001600160a01b0381358116916020810135909116906040013561203b565b61020b6004803603606081101561084757600080fd5b506001600160a01b0381358116916020810135909116906040013561213d565b61061f6004803603602081101561087d57600080fd5b5035612272565b61020b6004803603606081101561089a57600080fd5b506001600160a01b03813581169160208101359091169060400135612284565b61020b600480360360608110156108d057600080fd5b506001600160a01b0381358116916020810135909116906040013561235b565b61061f612433565b6102e9612439565b6001546001600160a01b0316331461094d576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6001546001600160a01b031633146109c5576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b604080516c3bb4ba34323930bbaa37b5b2b760991b6020808301919091526001600160601b0319606088811b8216602d85015287811b8216604185015286901b16605583015260698083018590528351808403909101815260899092019092528051910120610a3381612448565b610a3c816124f4565b846001600160a01b03166301e336678585856040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b031681526020018281526020019350505050600060405180830381600087803b158015610aa457600080fd5b505af1158015610ab8573d6000803e3d6000fd5b505050505050505050565b6001546001600160a01b0316331480610aeb57503360009081526004602052604090205460ff165b610b2a576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b6005811115610b7c576040805162461bcd60e51b8152602060048201526019602482015278496e76616c6964205f707269636553616d706c65537061636560381b604482015290519081900360640190fd5b816001600160a01b0316632fa03b8f826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610bc257600080fd5b505af1158015610bd6573d6000803e3d6000fd5b505050505050565b6001546001600160a01b03163314610c2b576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b816001600160a01b031663eb1c92a9826040518263ffffffff1660e01b8152600401808215158152602001915050600060405180830381600087803b158015610bc257600080fd5b6001546001600160a01b0316331480610c9b57503360009081526004602052604090205460ff165b80610cb557503360009081526005602052604090205460ff165b610cf4576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b836001600160a01b031663d694376c8484846040518463ffffffff1660e01b815260040180846001600160a01b0316815260200183151581526020018281526020019350505050600060405180830381600087803b158015610d5557600080fd5b505af1158015610d69573d6000803e3d6000fd5b5050505050505050565b6002546001600160a01b031681565b6001546001600160a01b03163314610dcf576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b604080517239b2ba283934b1b2a332b2b22bb0ba31b432b960691b6020808301919091526001600160601b0319606087811b8216603385015286901b16604783015283151560f81b605b8301528251603c818403018152605c9092019092528051910120610e3c81612448565b610e45816124f4565b836001600160a01b03166331cb610584846040518363ffffffff1660e01b815260040180836001600160a01b03168152602001821515815260200192505050600060405180830381600087803b158015610d5557600080fd5b6001546001600160a01b03163314610eeb576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b816001600160a01b031663238aafb7826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b158015610bc257600080fd5b6001546001600160a01b03163314610f87576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b6040805176707269636546656564536574546f6b656e436f6e66696760481b6020808301919091526001600160601b0319606089811b8216603785015288811b8216604b85015287901b16605f8301526073820185905283151560f81b6093830152825160748184030181526094909201909252805191012061100981612448565b611012816124f4565b60408051634b9ade4760e01b81526001600160a01b0387811660048301528681166024830152604482018690528415156064830152915191881691634b9ade479160848082019260009290919082900301818387803b15801561107457600080fd5b505af1158015611088573d6000803e3d6000fd5b50505050505050505050565b6001546001600160a01b031633146110e1576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b604080517239b2ba283934b1b2a332b2b22bb0ba31b432b960691b6020808301919091526001600160601b0319606087811b8216603385015286901b16604783015283151560f81b605b8301528251603c818403018152605c909201909252805191012061114e81612599565b604080516001600160a01b038087168252851660208201528315158183015290517f6ab3018654d3055eae2cb61d3dffe4cbb30f257d54ec966059b4d00b325a36699181900360600190a150505050565b6001546001600160a01b031633146111ec576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b6040805176707269636546656564536574546f6b656e436f6e66696760481b6020808301919091526001600160601b0319606089811b8216603785015288811b8216604b85015287901b16605f8301526073820185905283151560f81b6093830152825160748184030181526094909201909252805191012061126e81612599565b604080516001600160a01b038089168252808816602083015286168183015260608101859052831515608082015290517f1b2ddf357ae016d8c127dcd3a73c34744fdeaeeb4b7ef1e04490cebf7f4816fe9181900360a00190a1505050505050565b6001546001600160a01b0316331461131d576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b816001600160a01b031663b70c7b70826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610bc257600080fd5b6001546001600160a01b031633146113b0576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b816001600160a01b031663ce98dfa8826040518263ffffffff1660e01b8152600401808215158152602001915050600060405180830381600087803b158015610bc257600080fd5b6001546001600160a01b03163314611445576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b816001600160a01b031663fd34ec40826040518263ffffffff1660e01b8152600401808215158152602001915050600060405180830381600087803b158015610bc257600080fd5b60046020526000908152604090205460ff1681565b6001546001600160a01b031633146114ef576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b604080516c3bb4ba34323930bbaa37b5b2b760991b6020808301919091526001600160601b0319606088811b8216602d85015287811b8216604185015286901b1660558301526069808301859052835180840390910181526089909201909252805191012061155d81612599565b604080516001600160a01b0380881682528087166020830152851681830152606081018490526080810183905290517f9ed7b0f07a9eed51079fab67f6d0f141f167f5b17fdb5a23282280e15fcafed39181900360a00190a15050505050565b6001546001600160a01b0316331461160a576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b604080517239b2ba283934b1b2a332b2b22ab83230ba32b960691b6020808301919091526001600160601b0319606087811b8216603385015286901b16604783015283151560f81b605b8301528251603c818403018152605c909201909252805191012061167781612448565b611680816124f4565b836001600160a01b0316631a15339184846040518363ffffffff1660e01b815260040180836001600160a01b03168152602001821515815260200192505050600060405180830381600087803b158015610d5557600080fd5b6001546001600160a01b03163314611726576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b604080516539b2ba23b7bb60d11b6020808301919091526001600160601b0319606086811b8216602685015285901b16603a8301528251602e818403018152604e909201909252805191012061177b81612448565b611784816124f4565b826001600160a01b031663cfad57a2836040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b1580156117d357600080fd5b505af11580156117e7573d6000803e3d6000fd5b50505050505050565b6001546001600160a01b0316331461183d576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b6001600160a01b038216301415611897576040805162461bcd60e51b8152602060048201526019602482015278151a5b595b1bd8dace881a5b9d985b1a590817dd185c99d95d603a1b604482015290519081900360640190fd5b816001600160a01b031663704b6c02826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b158015610bc257600080fd5b6001546001600160a01b03163314611933576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b816001600160a01b0316639917dc74826040518263ffffffff1660e01b8152600401808215158152602001915050600060405180830381600087803b158015610bc257600080fd5b6001546001600160a01b03163314806119a357503360009081526004602052604090205460ff165b6119e2576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b816001600160a01b0316638b7677f4826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610bc257600080fd5b6206978081565b60056020526000908152604090205460ff1681565b6002546001600160a01b03163314611a91576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b03163314611b00576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b611b09816124f4565b50565b6001546001600160a01b03163314611b59576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b604080516539b2ba23b7bb60d11b6020808301919091526001600160601b0319606086811b8216602685015285901b16603a8301528251602e818403018152604e9092019092528051910120611bae81612599565b604080516001600160a01b0380861682528416602082015280820183905290517f2701a94fd55a560e291f3c54d36580040670d6fde558a77a75d619e38139f7139181900360600190a1505050565b6001546001600160a01b03163314611c4a576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b816001600160a01b0316632fbfe3d3826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610bc257600080fd5b6001546001600160a01b03163314611cdd576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b62069780811115611d31576040805162461bcd60e51b81526020600482015260196024820152782a34b6b2b637b1b59d1034b73b30b634b2102fb13ab33332b960391b604482015290519081900360640190fd5b600055565b6001546001600160a01b0316331480611d5e57503360009081526004602052604090205460ff165b611d9d576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b816001600160a01b03166344c23193826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610bc257600080fd5b6001546001600160a01b03163314611e30576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b816001600160a01b031663de0d1b94826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610bc257600080fd5b6001546001600160a01b03163314611ec3576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b816001600160a01b031663d6a153f1826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610bc257600080fd5b6001546001600160a01b03163314611f56576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001546001600160a01b03163314611fce576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b604080517239b2ba283934b1b2a332b2b22ab83230ba32b960691b6020808301919091526001600160601b0319606087811b8216603385015286901b16604783015283151560f81b605b8301528251603c818403018152605c909201909252805191012061114e81612599565b6001546001600160a01b03163314612088576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b6040805166617070726f766560c81b6020808301919091526001600160601b0319606087811b8216602785015286901b16603b830152604f80830185905283518084039091018152606f90920190925280519101206120e681612599565b604080516001600160a01b038087168252851660208201528082018490526060810183905290517f6af9d86ba7407a934e941ed8ae5f779369a88fe8ba2cd1c204185d6f8a8287fd9181900360800190a150505050565b6001546001600160a01b0316331461218a576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b6040805166617070726f766560c81b6020808301919091526001600160601b0319606087811b8216602785015286901b16603b830152604f80830185905283518084039091018152606f90920190925280519101206121e881612448565b6121f1816124f4565b836001600160a01b031663095ea7b384846040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561224857600080fd5b505af115801561225c573d6000803e3d6000fd5b505050506040513d6020811015610bd657600080fd5b60036020526000908152604090205481565b6001546001600160a01b031633146122d1576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b604080516323b872dd60e01b81526001600160a01b038581166004830152306024830152604482018490529151918416916323b872dd916064808201926020929091908290030181600087803b15801561232a57600080fd5b505af115801561233e573d6000803e3d6000fd5b505050506040513d602081101561235457600080fd5b5050505050565b6001546001600160a01b031633148061238357503360009081526004602052604090205460ff165b8061239d57503360009081526005602052604090205460ff165b6123dc576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b826001600160a01b0316639b88938083836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156117d357600080fd5b60005481565b6001546001600160a01b031681565b6000818152600360205260409020546124a8576040805162461bcd60e51b815260206004820152601e60248201527f54696d656c6f636b3a20616374696f6e206e6f74207369676e616c6c65640000604482015290519081900360640190fd5b6000818152600360205260409020544211611b095760405162461bcd60e51b81526004018080602001828103825260248152602001806126526024913960400191505060405180910390fd5b600081815260036020526040902054612550576040805162461bcd60e51b81526020600482015260196024820152782a34b6b2b637b1b59d1034b73b30b634b2102fb0b1ba34b7b760391b604482015290519081900360640190fd5b600081815260036020908152604080832092909255815183815291517f194ed6dd5e37e2acc44a19455c3f208c4831ee695fe362d9c4ef2d316bc53aec9281900390910190a150565b6000546125a79042906125f2565b60008281526003602090815260409182902092909255805183815290517f5fb9c0ecf7b4a28c4c480212e868f9da7f373a2ed4d23498b0be6aadf35242fb929181900390910190a150565b60008282018381101561264a576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b939250505056fe54696d656c6f636b3a20616374696f6e2074696d65206e6f74207965742070617373656454696d656c6f636b3a20666f7262696464656e00000000000000000000000000a2646970667358221220edb295ffce434930cb6ae3795892eafc819d30d1001b095c7cdd55ab164501ce64736f6c634300060c00330000000000000000000000001197d7e9ace3eac4392690cf8d4f28e213dfe44100000000000000000000000000000000000000000000000000000000000151800000000000000000000000001cf05f65e2f65a78ed441d8d4bc8709967afbbb0
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101d85760003560e01c8063185051c1146101dd57806321754d9e1461020d5780632877f4c3146102495780632965c8c714610275578063296b07e5146102a35780632a709b14146102e15780632a72e8ba146103055780632cfe82e81461033d5780633335e38a1461036b5780633799c618146103af578063384cae73146103e7578063395bc7941461042b57806343ec661914610457578063454ffa461461048557806346ea87af146104b35780634cd23f3b146104ed57806350e32d1d1461052957806351a6de0d1461056157806355ef13951461058f5780635843752f146105bd5780635b6348ac146105eb57806361d07569146106175780636ba42aaa14610631578063704b6c0214610657578063781cc3d31461067d578063996a7a1e1461069a578063a0a316a2146106c8578063adc7ea37146106f4578063b74517ba14610711578063bd0f1c451461073d578063be03af5814610769578063d1b9e85314610795578063db5c875f146107c3578063dce6e18d146107fb578063e1f21c6714610831578063e30569e514610867578063e4652f4914610884578063e7b0a3a1146108ba578063edaafe20146108f0578063f851a440146108f8575b600080fd5b61020b600480360360408110156101f357600080fd5b506001600160a01b0381351690602001351515610900565b005b61020b6004803603608081101561022357600080fd5b506001600160a01b03813581169160208101358216916040820135169060600135610978565b61020b6004803603604081101561025f57600080fd5b506001600160a01b038135169060200135610ac3565b61020b6004803603604081101561028b57600080fd5b506001600160a01b0381351690602001351515610bde565b61020b600480360360808110156102b957600080fd5b506001600160a01b038135811691602081013590911690604081013515159060600135610c73565b6102e9610d73565b604080516001600160a01b039092168252519081900360200190f35b61020b6004803603606081101561031b57600080fd5b506001600160a01b038135811691602081013590911690604001351515610d82565b61020b6004803603604081101561035357600080fd5b506001600160a01b0381358116916020013516610e9e565b61020b600480360360a081101561038157600080fd5b506001600160a01b038135811691602081013582169160408201351690606081013590608001351515610f3a565b61020b600480360360608110156103c557600080fd5b506001600160a01b038135811691602081013590911690604001351515611094565b61020b600480360360a08110156103fd57600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060800135151561119f565b61020b6004803603604081101561044157600080fd5b506001600160a01b0381351690602001356112d0565b61020b6004803603604081101561046d57600080fd5b506001600160a01b0381351690602001351515611363565b61020b6004803603604081101561049b57600080fd5b506001600160a01b03813516906020013515156113f8565b6104d9600480360360208110156104c957600080fd5b50356001600160a01b031661148d565b604080519115158252519081900360200190f35b61020b6004803603608081101561050357600080fd5b506001600160a01b038135811691602081013582169160408201351690606001356114a2565b61020b6004803603606081101561053f57600080fd5b506001600160a01b0381358116916020810135909116906040013515156115bd565b61020b6004803603604081101561057757600080fd5b506001600160a01b03813581169160200135166116d9565b61020b600480360360408110156105a557600080fd5b506001600160a01b03813581169160200135166117f0565b61020b600480360360408110156105d357600080fd5b506001600160a01b03813516906020013515156118e6565b61020b6004803603604081101561060157600080fd5b506001600160a01b03813516906020013561197b565b61061f611a28565b60408051918252519081900360200190f35b6104d96004803603602081101561064757600080fd5b50356001600160a01b0316611a2f565b61020b6004803603602081101561066d57600080fd5b50356001600160a01b0316611a44565b61020b6004803603602081101561069357600080fd5b5035611ab3565b61020b600480360360408110156106b057600080fd5b506001600160a01b0381358116916020013516611b0c565b61020b600480360360408110156106de57600080fd5b506001600160a01b038135169060200135611bfd565b61020b6004803603602081101561070a57600080fd5b5035611c90565b61020b6004803603604081101561072757600080fd5b506001600160a01b038135169060200135611d36565b61020b6004803603604081101561075357600080fd5b506001600160a01b038135169060200135611de3565b61020b6004803603604081101561077f57600080fd5b506001600160a01b038135169060200135611e76565b61020b600480360360408110156107ab57600080fd5b506001600160a01b0381351690602001351515611f09565b61020b600480360360608110156107d957600080fd5b506001600160a01b038135811691602081013590911690604001351515611f81565b61020b6004803603606081101561081157600080fd5b506001600160a01b0381358116916020810135909116906040013561203b565b61020b6004803603606081101561084757600080fd5b506001600160a01b0381358116916020810135909116906040013561213d565b61061f6004803603602081101561087d57600080fd5b5035612272565b61020b6004803603606081101561089a57600080fd5b506001600160a01b03813581169160208101359091169060400135612284565b61020b600480360360608110156108d057600080fd5b506001600160a01b0381358116916020810135909116906040013561235b565b61061f612433565b6102e9612439565b6001546001600160a01b0316331461094d576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6001546001600160a01b031633146109c5576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b604080516c3bb4ba34323930bbaa37b5b2b760991b6020808301919091526001600160601b0319606088811b8216602d85015287811b8216604185015286901b16605583015260698083018590528351808403909101815260899092019092528051910120610a3381612448565b610a3c816124f4565b846001600160a01b03166301e336678585856040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b031681526020018281526020019350505050600060405180830381600087803b158015610aa457600080fd5b505af1158015610ab8573d6000803e3d6000fd5b505050505050505050565b6001546001600160a01b0316331480610aeb57503360009081526004602052604090205460ff165b610b2a576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b6005811115610b7c576040805162461bcd60e51b8152602060048201526019602482015278496e76616c6964205f707269636553616d706c65537061636560381b604482015290519081900360640190fd5b816001600160a01b0316632fa03b8f826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610bc257600080fd5b505af1158015610bd6573d6000803e3d6000fd5b505050505050565b6001546001600160a01b03163314610c2b576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b816001600160a01b031663eb1c92a9826040518263ffffffff1660e01b8152600401808215158152602001915050600060405180830381600087803b158015610bc257600080fd5b6001546001600160a01b0316331480610c9b57503360009081526004602052604090205460ff165b80610cb557503360009081526005602052604090205460ff165b610cf4576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b836001600160a01b031663d694376c8484846040518463ffffffff1660e01b815260040180846001600160a01b0316815260200183151581526020018281526020019350505050600060405180830381600087803b158015610d5557600080fd5b505af1158015610d69573d6000803e3d6000fd5b5050505050505050565b6002546001600160a01b031681565b6001546001600160a01b03163314610dcf576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b604080517239b2ba283934b1b2a332b2b22bb0ba31b432b960691b6020808301919091526001600160601b0319606087811b8216603385015286901b16604783015283151560f81b605b8301528251603c818403018152605c9092019092528051910120610e3c81612448565b610e45816124f4565b836001600160a01b03166331cb610584846040518363ffffffff1660e01b815260040180836001600160a01b03168152602001821515815260200192505050600060405180830381600087803b158015610d5557600080fd5b6001546001600160a01b03163314610eeb576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b816001600160a01b031663238aafb7826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b158015610bc257600080fd5b6001546001600160a01b03163314610f87576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b6040805176707269636546656564536574546f6b656e436f6e66696760481b6020808301919091526001600160601b0319606089811b8216603785015288811b8216604b85015287901b16605f8301526073820185905283151560f81b6093830152825160748184030181526094909201909252805191012061100981612448565b611012816124f4565b60408051634b9ade4760e01b81526001600160a01b0387811660048301528681166024830152604482018690528415156064830152915191881691634b9ade479160848082019260009290919082900301818387803b15801561107457600080fd5b505af1158015611088573d6000803e3d6000fd5b50505050505050505050565b6001546001600160a01b031633146110e1576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b604080517239b2ba283934b1b2a332b2b22bb0ba31b432b960691b6020808301919091526001600160601b0319606087811b8216603385015286901b16604783015283151560f81b605b8301528251603c818403018152605c909201909252805191012061114e81612599565b604080516001600160a01b038087168252851660208201528315158183015290517f6ab3018654d3055eae2cb61d3dffe4cbb30f257d54ec966059b4d00b325a36699181900360600190a150505050565b6001546001600160a01b031633146111ec576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b6040805176707269636546656564536574546f6b656e436f6e66696760481b6020808301919091526001600160601b0319606089811b8216603785015288811b8216604b85015287901b16605f8301526073820185905283151560f81b6093830152825160748184030181526094909201909252805191012061126e81612599565b604080516001600160a01b038089168252808816602083015286168183015260608101859052831515608082015290517f1b2ddf357ae016d8c127dcd3a73c34744fdeaeeb4b7ef1e04490cebf7f4816fe9181900360a00190a1505050505050565b6001546001600160a01b0316331461131d576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b816001600160a01b031663b70c7b70826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610bc257600080fd5b6001546001600160a01b031633146113b0576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b816001600160a01b031663ce98dfa8826040518263ffffffff1660e01b8152600401808215158152602001915050600060405180830381600087803b158015610bc257600080fd5b6001546001600160a01b03163314611445576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b816001600160a01b031663fd34ec40826040518263ffffffff1660e01b8152600401808215158152602001915050600060405180830381600087803b158015610bc257600080fd5b60046020526000908152604090205460ff1681565b6001546001600160a01b031633146114ef576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b604080516c3bb4ba34323930bbaa37b5b2b760991b6020808301919091526001600160601b0319606088811b8216602d85015287811b8216604185015286901b1660558301526069808301859052835180840390910181526089909201909252805191012061155d81612599565b604080516001600160a01b0380881682528087166020830152851681830152606081018490526080810183905290517f9ed7b0f07a9eed51079fab67f6d0f141f167f5b17fdb5a23282280e15fcafed39181900360a00190a15050505050565b6001546001600160a01b0316331461160a576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b604080517239b2ba283934b1b2a332b2b22ab83230ba32b960691b6020808301919091526001600160601b0319606087811b8216603385015286901b16604783015283151560f81b605b8301528251603c818403018152605c909201909252805191012061167781612448565b611680816124f4565b836001600160a01b0316631a15339184846040518363ffffffff1660e01b815260040180836001600160a01b03168152602001821515815260200192505050600060405180830381600087803b158015610d5557600080fd5b6001546001600160a01b03163314611726576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b604080516539b2ba23b7bb60d11b6020808301919091526001600160601b0319606086811b8216602685015285901b16603a8301528251602e818403018152604e909201909252805191012061177b81612448565b611784816124f4565b826001600160a01b031663cfad57a2836040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b1580156117d357600080fd5b505af11580156117e7573d6000803e3d6000fd5b50505050505050565b6001546001600160a01b0316331461183d576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b6001600160a01b038216301415611897576040805162461bcd60e51b8152602060048201526019602482015278151a5b595b1bd8dace881a5b9d985b1a590817dd185c99d95d603a1b604482015290519081900360640190fd5b816001600160a01b031663704b6c02826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b158015610bc257600080fd5b6001546001600160a01b03163314611933576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b816001600160a01b0316639917dc74826040518263ffffffff1660e01b8152600401808215158152602001915050600060405180830381600087803b158015610bc257600080fd5b6001546001600160a01b03163314806119a357503360009081526004602052604090205460ff165b6119e2576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b816001600160a01b0316638b7677f4826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610bc257600080fd5b6206978081565b60056020526000908152604090205460ff1681565b6002546001600160a01b03163314611a91576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b03163314611b00576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b611b09816124f4565b50565b6001546001600160a01b03163314611b59576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b604080516539b2ba23b7bb60d11b6020808301919091526001600160601b0319606086811b8216602685015285901b16603a8301528251602e818403018152604e9092019092528051910120611bae81612599565b604080516001600160a01b0380861682528416602082015280820183905290517f2701a94fd55a560e291f3c54d36580040670d6fde558a77a75d619e38139f7139181900360600190a1505050565b6001546001600160a01b03163314611c4a576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b816001600160a01b0316632fbfe3d3826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610bc257600080fd5b6001546001600160a01b03163314611cdd576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b62069780811115611d31576040805162461bcd60e51b81526020600482015260196024820152782a34b6b2b637b1b59d1034b73b30b634b2102fb13ab33332b960391b604482015290519081900360640190fd5b600055565b6001546001600160a01b0316331480611d5e57503360009081526004602052604090205460ff165b611d9d576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b816001600160a01b03166344c23193826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610bc257600080fd5b6001546001600160a01b03163314611e30576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b816001600160a01b031663de0d1b94826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610bc257600080fd5b6001546001600160a01b03163314611ec3576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b816001600160a01b031663d6a153f1826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610bc257600080fd5b6001546001600160a01b03163314611f56576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001546001600160a01b03163314611fce576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b604080517239b2ba283934b1b2a332b2b22ab83230ba32b960691b6020808301919091526001600160601b0319606087811b8216603385015286901b16604783015283151560f81b605b8301528251603c818403018152605c909201909252805191012061114e81612599565b6001546001600160a01b03163314612088576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b6040805166617070726f766560c81b6020808301919091526001600160601b0319606087811b8216602785015286901b16603b830152604f80830185905283518084039091018152606f90920190925280519101206120e681612599565b604080516001600160a01b038087168252851660208201528082018490526060810183905290517f6af9d86ba7407a934e941ed8ae5f779369a88fe8ba2cd1c204185d6f8a8287fd9181900360800190a150505050565b6001546001600160a01b0316331461218a576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b6040805166617070726f766560c81b6020808301919091526001600160601b0319606087811b8216602785015286901b16603b830152604f80830185905283518084039091018152606f90920190925280519101206121e881612448565b6121f1816124f4565b836001600160a01b031663095ea7b384846040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561224857600080fd5b505af115801561225c573d6000803e3d6000fd5b505050506040513d6020811015610bd657600080fd5b60036020526000908152604090205481565b6001546001600160a01b031633146122d1576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b604080516323b872dd60e01b81526001600160a01b038581166004830152306024830152604482018490529151918416916323b872dd916064808201926020929091908290030181600087803b15801561232a57600080fd5b505af115801561233e573d6000803e3d6000fd5b505050506040513d602081101561235457600080fd5b5050505050565b6001546001600160a01b031633148061238357503360009081526004602052604090205460ff165b8061239d57503360009081526005602052604090205460ff165b6123dc576040805162461bcd60e51b81526020600482015260136024820152600080516020612676833981519152604482015290519081900360640190fd5b826001600160a01b0316639b88938083836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156117d357600080fd5b60005481565b6001546001600160a01b031681565b6000818152600360205260409020546124a8576040805162461bcd60e51b815260206004820152601e60248201527f54696d656c6f636b3a20616374696f6e206e6f74207369676e616c6c65640000604482015290519081900360640190fd5b6000818152600360205260409020544211611b095760405162461bcd60e51b81526004018080602001828103825260248152602001806126526024913960400191505060405180910390fd5b600081815260036020526040902054612550576040805162461bcd60e51b81526020600482015260196024820152782a34b6b2b637b1b59d1034b73b30b634b2102fb0b1ba34b7b760391b604482015290519081900360640190fd5b600081815260036020908152604080832092909255815183815291517f194ed6dd5e37e2acc44a19455c3f208c4831ee695fe362d9c4ef2d316bc53aec9281900390910190a150565b6000546125a79042906125f2565b60008281526003602090815260409182902092909255805183815290517f5fb9c0ecf7b4a28c4c480212e868f9da7f373a2ed4d23498b0be6aadf35242fb929181900390910190a150565b60008282018381101561264a576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b939250505056fe54696d656c6f636b3a20616374696f6e2074696d65206e6f74207965742070617373656454696d656c6f636b3a20666f7262696464656e00000000000000000000000000a2646970667358221220edb295ffce434930cb6ae3795892eafc819d30d1001b095c7cdd55ab164501ce64736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000001197d7e9ace3eac4392690cf8d4f28e213dfe44100000000000000000000000000000000000000000000000000000000000151800000000000000000000000001cf05f65e2f65a78ed441d8d4bc8709967afbbb0
-----Decoded View---------------
Arg [0] : _admin (address): 0x1197d7E9acE3eaC4392690cF8d4f28E213DfE441
Arg [1] : _buffer (uint256): 86400
Arg [2] : _tokenManager (address): 0x1cF05F65E2F65A78ED441d8d4BC8709967aFbBb0
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000001197d7e9ace3eac4392690cf8d4f28e213dfe441
Arg [1] : 0000000000000000000000000000000000000000000000000000000000015180
Arg [2] : 0000000000000000000000001cf05f65e2f65a78ed441d8d4bc8709967afbbb0
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.