Overview
ETH Balance
0 ETH
ETH Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 25 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Price Feed Set T... | 16538098 | 62 days ago | IN | 0 ETH | 0.00001653 | ||||
Signal Price Fee... | 16513100 | 63 days ago | IN | 0 ETH | 0.00002651 | ||||
Set Spread Basis... | 10656812 | 268 days ago | IN | 0 ETH | 0.0009347 | ||||
Set Spread Basis... | 8853804 | 342 days ago | IN | 0 ETH | 0.0009347 | ||||
Set Spread Basis... | 8853802 | 342 days ago | IN | 0 ETH | 0.0009204 | ||||
Price Feed Set T... | 8479917 | 361 days ago | IN | 0 ETH | 0.00085974 | ||||
Price Feed Set T... | 8479915 | 361 days ago | IN | 0 ETH | 0.00085974 | ||||
Price Feed Set T... | 8479913 | 361 days ago | IN | 0 ETH | 0.00085974 | ||||
Price Feed Set T... | 8479910 | 361 days ago | IN | 0 ETH | 0.00085974 | ||||
Price Feed Set T... | 8479906 | 361 days ago | IN | 0 ETH | 0.00085974 | ||||
Price Feed Set T... | 8479905 | 361 days ago | IN | 0 ETH | 0.00085943 | ||||
Signal Price Fee... | 8461947 | 362 days ago | IN | 0 ETH | 0.00137901 | ||||
Signal Price Fee... | 8461946 | 362 days ago | IN | 0 ETH | 0.00137901 | ||||
Signal Price Fee... | 8461942 | 362 days ago | IN | 0 ETH | 0.00137901 | ||||
Signal Price Fee... | 8461940 | 362 days ago | IN | 0 ETH | 0.00137901 | ||||
Signal Price Fee... | 8461936 | 362 days ago | IN | 0 ETH | 0.00137901 | ||||
Signal Price Fee... | 8461933 | 362 days ago | IN | 0 ETH | 0.0013787 | ||||
Signal Price Fee... | 8445845 | 363 days ago | IN | 0 ETH | 0.00137901 | ||||
Signal Price Fee... | 8445840 | 363 days ago | IN | 0 ETH | 0.00137901 | ||||
Signal Price Fee... | 8445837 | 363 days ago | IN | 0 ETH | 0.00137901 | ||||
Signal Price Fee... | 8445835 | 363 days ago | IN | 0 ETH | 0.00137901 | ||||
Signal Price Fee... | 8445831 | 363 days ago | IN | 0 ETH | 0.00137901 | ||||
Signal Price Fee... | 8445826 | 363 days ago | IN | 0 ETH | 0.0013787 | ||||
Price Feed Set T... | 5373153 | 449 days ago | IN | 0 ETH | 0.00006611 | ||||
Price Feed Set T... | 5373149 | 449 days ago | IN | 0 ETH | 0.00006613 |
Loading...
Loading
Contract Name:
PriceFeedTimelock
Compiler Version
v0.6.12+commit.27d51765
Optimization Enabled:
Yes with 1 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 "../access/interfaces/IAdmin.sol"; import "../core/interfaces/IVaultPriceFeed.sol"; import "../oracle/interfaces/IFastPriceFeed.sol"; import "../tokens/interfaces/IBaseToken.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 setIsSecondaryPriceEnabled(address _priceFeed, bool _isEnabled) external onlyAdmin { IVaultPriceFeed(_priceFeed).setIsSecondaryPriceEnabled(_isEnabled); } function setMaxStrictPriceDeviation(address _priceFeed, uint256 _maxStrictPriceDeviation) external onlyAdmin { IVaultPriceFeed(_priceFeed).setMaxStrictPriceDeviation(_maxStrictPriceDeviation); } 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 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 getPrimaryPrice(address _token, bool _maximise) external view returns (uint256); function setTokenConfig( address _token, address _priceFeed, uint256 _priceDecimals, bool _isStrictStable ) external; function getLatestPrimaryPrice(address _token) external view returns (uint256); }
// 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; }
// 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 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; }
{ "metadata": { "bytecodeHash": "none", "useLiteralContent": true }, "optimizer": { "enabled": true, "runs": 1 }, "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":"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":"_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
608060405234801561001057600080fd5b506040516126473803806126478339818101604052606081101561003357600080fd5b50805160208201516040909201519091906206978082111561009c576040805162461bcd60e51b815260206004820152601960248201527f54696d656c6f636b3a20696e76616c6964205f62756666657200000000000000604482015290519081900360640190fd5b600180546001600160a01b039485166001600160a01b0319918216179091556000929092556002805491909316911617905561256a806100dd6000396000f3fe608060405234801561001057600080fd5b50600436106101c25760003560e01c8063185051c1146101c757806321754d9e146101f75780632877f4c3146102335780632965c8c71461025f578063296b07e51461028d5780632a709b14146102cb5780632a72e8ba146102ef5780632cfe82e8146103275780633335e38a146103555780633799c61814610399578063384cae73146103d1578063395bc7941461041557806343ec66191461044157806346ea87af1461046f5780634cd23f3b146104a957806350e32d1d146104e557806351a6de0d1461051d57806355ef13951461054b5780635b6348ac1461057957806361d07569146105a55780636ba42aaa146105bf578063704b6c02146105e5578063781cc3d31461060b578063996a7a1e14610628578063a0a316a214610656578063adc7ea3714610682578063b74517ba1461069f578063bd0f1c45146106cb578063be03af58146106f7578063d1b9e85314610723578063db5c875f14610751578063dce6e18d14610789578063e1f21c67146107bf578063e30569e5146107f5578063e4652f4914610812578063e7b0a3a114610848578063edaafe201461087e578063f851a44014610886575b600080fd5b6101f5600480360360408110156101dd57600080fd5b506001600160a01b038135169060200135151561088e565b005b6101f56004803603608081101561020d57600080fd5b506001600160a01b03813581169160208101358216916040820135169060600135610906565b6101f56004803603604081101561024957600080fd5b506001600160a01b038135169060200135610a51565b6101f56004803603604081101561027557600080fd5b506001600160a01b0381351690602001351515610b6c565b6101f5600480360360808110156102a357600080fd5b506001600160a01b038135811691602081013590911690604081013515159060600135610c01565b6102d3610d01565b604080516001600160a01b039092168252519081900360200190f35b6101f56004803603606081101561030557600080fd5b506001600160a01b038135811691602081013590911690604001351515610d10565b6101f56004803603604081101561033d57600080fd5b506001600160a01b0381358116916020013516610e2c565b6101f5600480360360a081101561036b57600080fd5b506001600160a01b038135811691602081013582169160408201351690606081013590608001351515610ec8565b6101f5600480360360608110156103af57600080fd5b506001600160a01b038135811691602081013590911690604001351515611022565b6101f5600480360360a08110156103e757600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060800135151561112d565b6101f56004803603604081101561042b57600080fd5b506001600160a01b03813516906020013561125e565b6101f56004803603604081101561045757600080fd5b506001600160a01b03813516906020013515156112f1565b6104956004803603602081101561048557600080fd5b50356001600160a01b0316611386565b604080519115158252519081900360200190f35b6101f5600480360360808110156104bf57600080fd5b506001600160a01b0381358116916020810135821691604082013516906060013561139b565b6101f5600480360360608110156104fb57600080fd5b506001600160a01b0381358116916020810135909116906040013515156114b6565b6101f56004803603604081101561053357600080fd5b506001600160a01b03813581169160200135166115d2565b6101f56004803603604081101561056157600080fd5b506001600160a01b03813581169160200135166116e9565b6101f56004803603604081101561058f57600080fd5b506001600160a01b0381351690602001356117df565b6105ad61188c565b60408051918252519081900360200190f35b610495600480360360208110156105d557600080fd5b50356001600160a01b0316611893565b6101f5600480360360208110156105fb57600080fd5b50356001600160a01b03166118a8565b6101f56004803603602081101561062157600080fd5b5035611917565b6101f56004803603604081101561063e57600080fd5b506001600160a01b0381358116916020013516611970565b6101f56004803603604081101561066c57600080fd5b506001600160a01b038135169060200135611a61565b6101f56004803603602081101561069857600080fd5b5035611af4565b6101f5600480360360408110156106b557600080fd5b506001600160a01b038135169060200135611bda565b6101f5600480360360408110156106e157600080fd5b506001600160a01b038135169060200135611c87565b6101f56004803603604081101561070d57600080fd5b506001600160a01b038135169060200135611d1a565b6101f56004803603604081101561073957600080fd5b506001600160a01b0381351690602001351515611dad565b6101f56004803603606081101561076757600080fd5b506001600160a01b038135811691602081013590911690604001351515611e25565b6101f56004803603606081101561079f57600080fd5b506001600160a01b03813581169160208101359091169060400135611edf565b6101f5600480360360608110156107d557600080fd5b506001600160a01b03813581169160208101359091169060400135611fe1565b6105ad6004803603602081101561080b57600080fd5b5035612116565b6101f56004803603606081101561082857600080fd5b506001600160a01b03813581169160208101359091169060400135612128565b6101f56004803603606081101561085e57600080fd5b506001600160a01b038135811691602081013590911690604001356121ff565b6105ad6122d7565b6102d36122dd565b6001546001600160a01b031633146108db576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6001546001600160a01b03163314610953576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b604080516c3bb4ba34323930bbaa37b5b2b760991b6020808301919091526001600160601b0319606088811b8216602d85015287811b8216604185015286901b166055830152606980830185905283518084039091018152608990920190925280519101206109c1816122ec565b6109ca81612398565b846001600160a01b03166301e336678585856040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b031681526020018281526020019350505050600060405180830381600087803b158015610a3257600080fd5b505af1158015610a46573d6000803e3d6000fd5b505050505050505050565b6001546001600160a01b0316331480610a7957503360009081526004602052604090205460ff165b610ab8576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b6005811115610b0a576040805162461bcd60e51b8152602060048201526019602482015278496e76616c6964205f707269636553616d706c65537061636560381b604482015290519081900360640190fd5b816001600160a01b0316632fa03b8f826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610b5057600080fd5b505af1158015610b64573d6000803e3d6000fd5b505050505050565b6001546001600160a01b03163314610bb9576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b816001600160a01b031663eb1c92a9826040518263ffffffff1660e01b8152600401808215158152602001915050600060405180830381600087803b158015610b5057600080fd5b6001546001600160a01b0316331480610c2957503360009081526004602052604090205460ff165b80610c4357503360009081526005602052604090205460ff165b610c82576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b836001600160a01b031663d694376c8484846040518463ffffffff1660e01b815260040180846001600160a01b0316815260200183151581526020018281526020019350505050600060405180830381600087803b158015610ce357600080fd5b505af1158015610cf7573d6000803e3d6000fd5b5050505050505050565b6002546001600160a01b031681565b6001546001600160a01b03163314610d5d576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b604080517239b2ba283934b1b2a332b2b22bb0ba31b432b960691b6020808301919091526001600160601b0319606087811b8216603385015286901b16604783015283151560f81b605b8301528251603c818403018152605c9092019092528051910120610dca816122ec565b610dd381612398565b836001600160a01b03166331cb610584846040518363ffffffff1660e01b815260040180836001600160a01b03168152602001821515815260200192505050600060405180830381600087803b158015610ce357600080fd5b6001546001600160a01b03163314610e79576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b816001600160a01b031663238aafb7826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b158015610b5057600080fd5b6001546001600160a01b03163314610f15576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b6040805176707269636546656564536574546f6b656e436f6e66696760481b6020808301919091526001600160601b0319606089811b8216603785015288811b8216604b85015287901b16605f8301526073820185905283151560f81b60938301528251607481840301815260949092019092528051910120610f97816122ec565b610fa081612398565b60408051634b9ade4760e01b81526001600160a01b0387811660048301528681166024830152604482018690528415156064830152915191881691634b9ade479160848082019260009290919082900301818387803b15801561100257600080fd5b505af1158015611016573d6000803e3d6000fd5b50505050505050505050565b6001546001600160a01b0316331461106f576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b604080517239b2ba283934b1b2a332b2b22bb0ba31b432b960691b6020808301919091526001600160601b0319606087811b8216603385015286901b16604783015283151560f81b605b8301528251603c818403018152605c90920190925280519101206110dc8161243d565b604080516001600160a01b038087168252851660208201528315158183015290517f6ab3018654d3055eae2cb61d3dffe4cbb30f257d54ec966059b4d00b325a36699181900360600190a150505050565b6001546001600160a01b0316331461117a576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b6040805176707269636546656564536574546f6b656e436f6e66696760481b6020808301919091526001600160601b0319606089811b8216603785015288811b8216604b85015287901b16605f8301526073820185905283151560f81b609383015282516074818403018152609490920190925280519101206111fc8161243d565b604080516001600160a01b038089168252808816602083015286168183015260608101859052831515608082015290517f1b2ddf357ae016d8c127dcd3a73c34744fdeaeeb4b7ef1e04490cebf7f4816fe9181900360a00190a1505050505050565b6001546001600160a01b031633146112ab576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b816001600160a01b031663b70c7b70826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610b5057600080fd5b6001546001600160a01b0316331461133e576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b816001600160a01b031663ce98dfa8826040518263ffffffff1660e01b8152600401808215158152602001915050600060405180830381600087803b158015610b5057600080fd5b60046020526000908152604090205460ff1681565b6001546001600160a01b031633146113e8576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b604080516c3bb4ba34323930bbaa37b5b2b760991b6020808301919091526001600160601b0319606088811b8216602d85015287811b8216604185015286901b166055830152606980830185905283518084039091018152608990920190925280519101206114568161243d565b604080516001600160a01b0380881682528087166020830152851681830152606081018490526080810183905290517f9ed7b0f07a9eed51079fab67f6d0f141f167f5b17fdb5a23282280e15fcafed39181900360a00190a15050505050565b6001546001600160a01b03163314611503576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b604080517239b2ba283934b1b2a332b2b22ab83230ba32b960691b6020808301919091526001600160601b0319606087811b8216603385015286901b16604783015283151560f81b605b8301528251603c818403018152605c9092019092528051910120611570816122ec565b61157981612398565b836001600160a01b0316631a15339184846040518363ffffffff1660e01b815260040180836001600160a01b03168152602001821515815260200192505050600060405180830381600087803b158015610ce357600080fd5b6001546001600160a01b0316331461161f576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b604080516539b2ba23b7bb60d11b6020808301919091526001600160601b0319606086811b8216602685015285901b16603a8301528251602e818403018152604e9092019092528051910120611674816122ec565b61167d81612398565b826001600160a01b031663cfad57a2836040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b1580156116cc57600080fd5b505af11580156116e0573d6000803e3d6000fd5b50505050505050565b6001546001600160a01b03163314611736576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b6001600160a01b038216301415611790576040805162461bcd60e51b8152602060048201526019602482015278151a5b595b1bd8dace881a5b9d985b1a590817dd185c99d95d603a1b604482015290519081900360640190fd5b816001600160a01b031663704b6c02826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b158015610b5057600080fd5b6001546001600160a01b031633148061180757503360009081526004602052604090205460ff165b611846576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b816001600160a01b0316638b7677f4826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610b5057600080fd5b6206978081565b60056020526000908152604090205460ff1681565b6002546001600160a01b031633146118f5576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b03163314611964576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b61196d81612398565b50565b6001546001600160a01b031633146119bd576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b604080516539b2ba23b7bb60d11b6020808301919091526001600160601b0319606086811b8216602685015285901b16603a8301528251602e818403018152604e9092019092528051910120611a128161243d565b604080516001600160a01b0380861682528416602082015280820183905290517f2701a94fd55a560e291f3c54d36580040670d6fde558a77a75d619e38139f7139181900360600190a1505050565b6001546001600160a01b03163314611aae576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b816001600160a01b0316632fbfe3d3826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610b5057600080fd5b6001546001600160a01b03163314611b41576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b62069780811115611b95576040805162461bcd60e51b81526020600482015260196024820152782a34b6b2b637b1b59d1034b73b30b634b2102fb13ab33332b960391b604482015290519081900360640190fd5b6000548111611bd55760405162461bcd60e51b815260040180806020018281038252602481526020018061251a6024913960400191505060405180910390fd5b600055565b6001546001600160a01b0316331480611c0257503360009081526004602052604090205460ff165b611c41576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b816001600160a01b03166344c23193826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610b5057600080fd5b6001546001600160a01b03163314611cd4576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b816001600160a01b031663de0d1b94826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610b5057600080fd5b6001546001600160a01b03163314611d67576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b816001600160a01b031663d6a153f1826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610b5057600080fd5b6001546001600160a01b03163314611dfa576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001546001600160a01b03163314611e72576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b604080517239b2ba283934b1b2a332b2b22ab83230ba32b960691b6020808301919091526001600160601b0319606087811b8216603385015286901b16604783015283151560f81b605b8301528251603c818403018152605c90920190925280519101206110dc8161243d565b6001546001600160a01b03163314611f2c576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b6040805166617070726f766560c81b6020808301919091526001600160601b0319606087811b8216602785015286901b16603b830152604f80830185905283518084039091018152606f9092019092528051910120611f8a8161243d565b604080516001600160a01b038087168252851660208201528082018490526060810183905290517f6af9d86ba7407a934e941ed8ae5f779369a88fe8ba2cd1c204185d6f8a8287fd9181900360800190a150505050565b6001546001600160a01b0316331461202e576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b6040805166617070726f766560c81b6020808301919091526001600160601b0319606087811b8216602785015286901b16603b830152604f80830185905283518084039091018152606f909201909252805191012061208c816122ec565b61209581612398565b836001600160a01b031663095ea7b384846040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156120ec57600080fd5b505af1158015612100573d6000803e3d6000fd5b505050506040513d6020811015610b6457600080fd5b60036020526000908152604090205481565b6001546001600160a01b03163314612175576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b604080516323b872dd60e01b81526001600160a01b038581166004830152306024830152604482018490529151918416916323b872dd916064808201926020929091908290030181600087803b1580156121ce57600080fd5b505af11580156121e2573d6000803e3d6000fd5b505050506040513d60208110156121f857600080fd5b5050505050565b6001546001600160a01b031633148061222757503360009081526004602052604090205460ff165b8061224157503360009081526005602052604090205460ff165b612280576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b826001600160a01b0316639b88938083836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156116cc57600080fd5b60005481565b6001546001600160a01b031681565b60008181526003602052604090205461234c576040805162461bcd60e51b815260206004820152601e60248201527f54696d656c6f636b3a20616374696f6e206e6f74207369676e616c6c65640000604482015290519081900360640190fd5b600081815260036020526040902054421161196d5760405162461bcd60e51b81526004018080602001828103825260248152602001806124f66024913960400191505060405180910390fd5b6000818152600360205260409020546123f4576040805162461bcd60e51b81526020600482015260196024820152782a34b6b2b637b1b59d1034b73b30b634b2102fb0b1ba34b7b760391b604482015290519081900360640190fd5b600081815260036020908152604080832092909255815183815291517f194ed6dd5e37e2acc44a19455c3f208c4831ee695fe362d9c4ef2d316bc53aec9281900390910190a150565b60005461244b904290612496565b60008281526003602090815260409182902092909255805183815290517f5fb9c0ecf7b4a28c4c480212e868f9da7f373a2ed4d23498b0be6aadf35242fb929181900390910190a150565b6000828201838110156124ee576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b939250505056fe54696d656c6f636b3a20616374696f6e2074696d65206e6f74207965742070617373656454696d656c6f636b3a206275666665722063616e6e6f742062652064656372656173656454696d656c6f636b3a20666f7262696464656e00000000000000000000000000a164736f6c634300060c000a00000000000000000000000026c2710e3c232461159a4564677a24a80ab2253c000000000000000000000000000000000000000000000000000000000001518000000000000000000000000064486300799ee3c8a1391abaaf112782a01dd6f1
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101c25760003560e01c8063185051c1146101c757806321754d9e146101f75780632877f4c3146102335780632965c8c71461025f578063296b07e51461028d5780632a709b14146102cb5780632a72e8ba146102ef5780632cfe82e8146103275780633335e38a146103555780633799c61814610399578063384cae73146103d1578063395bc7941461041557806343ec66191461044157806346ea87af1461046f5780634cd23f3b146104a957806350e32d1d146104e557806351a6de0d1461051d57806355ef13951461054b5780635b6348ac1461057957806361d07569146105a55780636ba42aaa146105bf578063704b6c02146105e5578063781cc3d31461060b578063996a7a1e14610628578063a0a316a214610656578063adc7ea3714610682578063b74517ba1461069f578063bd0f1c45146106cb578063be03af58146106f7578063d1b9e85314610723578063db5c875f14610751578063dce6e18d14610789578063e1f21c67146107bf578063e30569e5146107f5578063e4652f4914610812578063e7b0a3a114610848578063edaafe201461087e578063f851a44014610886575b600080fd5b6101f5600480360360408110156101dd57600080fd5b506001600160a01b038135169060200135151561088e565b005b6101f56004803603608081101561020d57600080fd5b506001600160a01b03813581169160208101358216916040820135169060600135610906565b6101f56004803603604081101561024957600080fd5b506001600160a01b038135169060200135610a51565b6101f56004803603604081101561027557600080fd5b506001600160a01b0381351690602001351515610b6c565b6101f5600480360360808110156102a357600080fd5b506001600160a01b038135811691602081013590911690604081013515159060600135610c01565b6102d3610d01565b604080516001600160a01b039092168252519081900360200190f35b6101f56004803603606081101561030557600080fd5b506001600160a01b038135811691602081013590911690604001351515610d10565b6101f56004803603604081101561033d57600080fd5b506001600160a01b0381358116916020013516610e2c565b6101f5600480360360a081101561036b57600080fd5b506001600160a01b038135811691602081013582169160408201351690606081013590608001351515610ec8565b6101f5600480360360608110156103af57600080fd5b506001600160a01b038135811691602081013590911690604001351515611022565b6101f5600480360360a08110156103e757600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060800135151561112d565b6101f56004803603604081101561042b57600080fd5b506001600160a01b03813516906020013561125e565b6101f56004803603604081101561045757600080fd5b506001600160a01b03813516906020013515156112f1565b6104956004803603602081101561048557600080fd5b50356001600160a01b0316611386565b604080519115158252519081900360200190f35b6101f5600480360360808110156104bf57600080fd5b506001600160a01b0381358116916020810135821691604082013516906060013561139b565b6101f5600480360360608110156104fb57600080fd5b506001600160a01b0381358116916020810135909116906040013515156114b6565b6101f56004803603604081101561053357600080fd5b506001600160a01b03813581169160200135166115d2565b6101f56004803603604081101561056157600080fd5b506001600160a01b03813581169160200135166116e9565b6101f56004803603604081101561058f57600080fd5b506001600160a01b0381351690602001356117df565b6105ad61188c565b60408051918252519081900360200190f35b610495600480360360208110156105d557600080fd5b50356001600160a01b0316611893565b6101f5600480360360208110156105fb57600080fd5b50356001600160a01b03166118a8565b6101f56004803603602081101561062157600080fd5b5035611917565b6101f56004803603604081101561063e57600080fd5b506001600160a01b0381358116916020013516611970565b6101f56004803603604081101561066c57600080fd5b506001600160a01b038135169060200135611a61565b6101f56004803603602081101561069857600080fd5b5035611af4565b6101f5600480360360408110156106b557600080fd5b506001600160a01b038135169060200135611bda565b6101f5600480360360408110156106e157600080fd5b506001600160a01b038135169060200135611c87565b6101f56004803603604081101561070d57600080fd5b506001600160a01b038135169060200135611d1a565b6101f56004803603604081101561073957600080fd5b506001600160a01b0381351690602001351515611dad565b6101f56004803603606081101561076757600080fd5b506001600160a01b038135811691602081013590911690604001351515611e25565b6101f56004803603606081101561079f57600080fd5b506001600160a01b03813581169160208101359091169060400135611edf565b6101f5600480360360608110156107d557600080fd5b506001600160a01b03813581169160208101359091169060400135611fe1565b6105ad6004803603602081101561080b57600080fd5b5035612116565b6101f56004803603606081101561082857600080fd5b506001600160a01b03813581169160208101359091169060400135612128565b6101f56004803603606081101561085e57600080fd5b506001600160a01b038135811691602081013590911690604001356121ff565b6105ad6122d7565b6102d36122dd565b6001546001600160a01b031633146108db576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6001546001600160a01b03163314610953576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b604080516c3bb4ba34323930bbaa37b5b2b760991b6020808301919091526001600160601b0319606088811b8216602d85015287811b8216604185015286901b166055830152606980830185905283518084039091018152608990920190925280519101206109c1816122ec565b6109ca81612398565b846001600160a01b03166301e336678585856040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b031681526020018281526020019350505050600060405180830381600087803b158015610a3257600080fd5b505af1158015610a46573d6000803e3d6000fd5b505050505050505050565b6001546001600160a01b0316331480610a7957503360009081526004602052604090205460ff165b610ab8576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b6005811115610b0a576040805162461bcd60e51b8152602060048201526019602482015278496e76616c6964205f707269636553616d706c65537061636560381b604482015290519081900360640190fd5b816001600160a01b0316632fa03b8f826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610b5057600080fd5b505af1158015610b64573d6000803e3d6000fd5b505050505050565b6001546001600160a01b03163314610bb9576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b816001600160a01b031663eb1c92a9826040518263ffffffff1660e01b8152600401808215158152602001915050600060405180830381600087803b158015610b5057600080fd5b6001546001600160a01b0316331480610c2957503360009081526004602052604090205460ff165b80610c4357503360009081526005602052604090205460ff165b610c82576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b836001600160a01b031663d694376c8484846040518463ffffffff1660e01b815260040180846001600160a01b0316815260200183151581526020018281526020019350505050600060405180830381600087803b158015610ce357600080fd5b505af1158015610cf7573d6000803e3d6000fd5b5050505050505050565b6002546001600160a01b031681565b6001546001600160a01b03163314610d5d576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b604080517239b2ba283934b1b2a332b2b22bb0ba31b432b960691b6020808301919091526001600160601b0319606087811b8216603385015286901b16604783015283151560f81b605b8301528251603c818403018152605c9092019092528051910120610dca816122ec565b610dd381612398565b836001600160a01b03166331cb610584846040518363ffffffff1660e01b815260040180836001600160a01b03168152602001821515815260200192505050600060405180830381600087803b158015610ce357600080fd5b6001546001600160a01b03163314610e79576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b816001600160a01b031663238aafb7826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b158015610b5057600080fd5b6001546001600160a01b03163314610f15576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b6040805176707269636546656564536574546f6b656e436f6e66696760481b6020808301919091526001600160601b0319606089811b8216603785015288811b8216604b85015287901b16605f8301526073820185905283151560f81b60938301528251607481840301815260949092019092528051910120610f97816122ec565b610fa081612398565b60408051634b9ade4760e01b81526001600160a01b0387811660048301528681166024830152604482018690528415156064830152915191881691634b9ade479160848082019260009290919082900301818387803b15801561100257600080fd5b505af1158015611016573d6000803e3d6000fd5b50505050505050505050565b6001546001600160a01b0316331461106f576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b604080517239b2ba283934b1b2a332b2b22bb0ba31b432b960691b6020808301919091526001600160601b0319606087811b8216603385015286901b16604783015283151560f81b605b8301528251603c818403018152605c90920190925280519101206110dc8161243d565b604080516001600160a01b038087168252851660208201528315158183015290517f6ab3018654d3055eae2cb61d3dffe4cbb30f257d54ec966059b4d00b325a36699181900360600190a150505050565b6001546001600160a01b0316331461117a576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b6040805176707269636546656564536574546f6b656e436f6e66696760481b6020808301919091526001600160601b0319606089811b8216603785015288811b8216604b85015287901b16605f8301526073820185905283151560f81b609383015282516074818403018152609490920190925280519101206111fc8161243d565b604080516001600160a01b038089168252808816602083015286168183015260608101859052831515608082015290517f1b2ddf357ae016d8c127dcd3a73c34744fdeaeeb4b7ef1e04490cebf7f4816fe9181900360a00190a1505050505050565b6001546001600160a01b031633146112ab576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b816001600160a01b031663b70c7b70826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610b5057600080fd5b6001546001600160a01b0316331461133e576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b816001600160a01b031663ce98dfa8826040518263ffffffff1660e01b8152600401808215158152602001915050600060405180830381600087803b158015610b5057600080fd5b60046020526000908152604090205460ff1681565b6001546001600160a01b031633146113e8576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b604080516c3bb4ba34323930bbaa37b5b2b760991b6020808301919091526001600160601b0319606088811b8216602d85015287811b8216604185015286901b166055830152606980830185905283518084039091018152608990920190925280519101206114568161243d565b604080516001600160a01b0380881682528087166020830152851681830152606081018490526080810183905290517f9ed7b0f07a9eed51079fab67f6d0f141f167f5b17fdb5a23282280e15fcafed39181900360a00190a15050505050565b6001546001600160a01b03163314611503576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b604080517239b2ba283934b1b2a332b2b22ab83230ba32b960691b6020808301919091526001600160601b0319606087811b8216603385015286901b16604783015283151560f81b605b8301528251603c818403018152605c9092019092528051910120611570816122ec565b61157981612398565b836001600160a01b0316631a15339184846040518363ffffffff1660e01b815260040180836001600160a01b03168152602001821515815260200192505050600060405180830381600087803b158015610ce357600080fd5b6001546001600160a01b0316331461161f576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b604080516539b2ba23b7bb60d11b6020808301919091526001600160601b0319606086811b8216602685015285901b16603a8301528251602e818403018152604e9092019092528051910120611674816122ec565b61167d81612398565b826001600160a01b031663cfad57a2836040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b1580156116cc57600080fd5b505af11580156116e0573d6000803e3d6000fd5b50505050505050565b6001546001600160a01b03163314611736576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b6001600160a01b038216301415611790576040805162461bcd60e51b8152602060048201526019602482015278151a5b595b1bd8dace881a5b9d985b1a590817dd185c99d95d603a1b604482015290519081900360640190fd5b816001600160a01b031663704b6c02826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b158015610b5057600080fd5b6001546001600160a01b031633148061180757503360009081526004602052604090205460ff165b611846576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b816001600160a01b0316638b7677f4826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610b5057600080fd5b6206978081565b60056020526000908152604090205460ff1681565b6002546001600160a01b031633146118f5576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b03163314611964576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b61196d81612398565b50565b6001546001600160a01b031633146119bd576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b604080516539b2ba23b7bb60d11b6020808301919091526001600160601b0319606086811b8216602685015285901b16603a8301528251602e818403018152604e9092019092528051910120611a128161243d565b604080516001600160a01b0380861682528416602082015280820183905290517f2701a94fd55a560e291f3c54d36580040670d6fde558a77a75d619e38139f7139181900360600190a1505050565b6001546001600160a01b03163314611aae576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b816001600160a01b0316632fbfe3d3826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610b5057600080fd5b6001546001600160a01b03163314611b41576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b62069780811115611b95576040805162461bcd60e51b81526020600482015260196024820152782a34b6b2b637b1b59d1034b73b30b634b2102fb13ab33332b960391b604482015290519081900360640190fd5b6000548111611bd55760405162461bcd60e51b815260040180806020018281038252602481526020018061251a6024913960400191505060405180910390fd5b600055565b6001546001600160a01b0316331480611c0257503360009081526004602052604090205460ff165b611c41576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b816001600160a01b03166344c23193826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610b5057600080fd5b6001546001600160a01b03163314611cd4576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b816001600160a01b031663de0d1b94826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610b5057600080fd5b6001546001600160a01b03163314611d67576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b816001600160a01b031663d6a153f1826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610b5057600080fd5b6001546001600160a01b03163314611dfa576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001546001600160a01b03163314611e72576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b604080517239b2ba283934b1b2a332b2b22ab83230ba32b960691b6020808301919091526001600160601b0319606087811b8216603385015286901b16604783015283151560f81b605b8301528251603c818403018152605c90920190925280519101206110dc8161243d565b6001546001600160a01b03163314611f2c576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b6040805166617070726f766560c81b6020808301919091526001600160601b0319606087811b8216602785015286901b16603b830152604f80830185905283518084039091018152606f9092019092528051910120611f8a8161243d565b604080516001600160a01b038087168252851660208201528082018490526060810183905290517f6af9d86ba7407a934e941ed8ae5f779369a88fe8ba2cd1c204185d6f8a8287fd9181900360800190a150505050565b6001546001600160a01b0316331461202e576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b6040805166617070726f766560c81b6020808301919091526001600160601b0319606087811b8216602785015286901b16603b830152604f80830185905283518084039091018152606f909201909252805191012061208c816122ec565b61209581612398565b836001600160a01b031663095ea7b384846040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156120ec57600080fd5b505af1158015612100573d6000803e3d6000fd5b505050506040513d6020811015610b6457600080fd5b60036020526000908152604090205481565b6001546001600160a01b03163314612175576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b604080516323b872dd60e01b81526001600160a01b038581166004830152306024830152604482018490529151918416916323b872dd916064808201926020929091908290030181600087803b1580156121ce57600080fd5b505af11580156121e2573d6000803e3d6000fd5b505050506040513d60208110156121f857600080fd5b5050505050565b6001546001600160a01b031633148061222757503360009081526004602052604090205460ff165b8061224157503360009081526005602052604090205460ff165b612280576040805162461bcd60e51b8152602060048201526013602482015260008051602061253e833981519152604482015290519081900360640190fd5b826001600160a01b0316639b88938083836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156116cc57600080fd5b60005481565b6001546001600160a01b031681565b60008181526003602052604090205461234c576040805162461bcd60e51b815260206004820152601e60248201527f54696d656c6f636b3a20616374696f6e206e6f74207369676e616c6c65640000604482015290519081900360640190fd5b600081815260036020526040902054421161196d5760405162461bcd60e51b81526004018080602001828103825260248152602001806124f66024913960400191505060405180910390fd5b6000818152600360205260409020546123f4576040805162461bcd60e51b81526020600482015260196024820152782a34b6b2b637b1b59d1034b73b30b634b2102fb0b1ba34b7b760391b604482015290519081900360640190fd5b600081815260036020908152604080832092909255815183815291517f194ed6dd5e37e2acc44a19455c3f208c4831ee695fe362d9c4ef2d316bc53aec9281900390910190a150565b60005461244b904290612496565b60008281526003602090815260409182902092909255805183815290517f5fb9c0ecf7b4a28c4c480212e868f9da7f373a2ed4d23498b0be6aadf35242fb929181900390910190a150565b6000828201838110156124ee576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b939250505056fe54696d656c6f636b3a20616374696f6e2074696d65206e6f74207965742070617373656454696d656c6f636b3a206275666665722063616e6e6f742062652064656372656173656454696d656c6f636b3a20666f7262696464656e00000000000000000000000000a164736f6c634300060c000a
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000026c2710e3c232461159a4564677a24a80ab2253c000000000000000000000000000000000000000000000000000000000001518000000000000000000000000064486300799ee3c8a1391abaaf112782a01dd6f1
-----Decoded View---------------
Arg [0] : _admin (address): 0x26c2710e3c232461159a4564677a24a80ab2253C
Arg [1] : _buffer (uint256): 86400
Arg [2] : _tokenManager (address): 0x64486300799ee3c8a1391aBaaF112782A01dd6F1
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000026c2710e3c232461159a4564677a24a80ab2253c
Arg [1] : 0000000000000000000000000000000000000000000000000000000000015180
Arg [2] : 00000000000000000000000064486300799ee3c8a1391abaaf112782a01dd6f1
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.