Overview
S Balance
0 S
S Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 16 from a total of 16 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Price Feed Set T... | 3389595 | 2 days ago | IN | 0 S | 0.00023505 | ||||
Signal Price Fee... | 3236851 | 3 days ago | IN | 0 S | 0.00029347 | ||||
Set Buffer | 2723017 | 7 days ago | IN | 0 S | 0.00005088 | ||||
Set Spread Basis... | 2681314 | 7 days ago | IN | 0 S | 0.0000384 | ||||
Set Secondary Pr... | 1729675 | 17 days ago | IN | 0 S | 0.00004062 | ||||
Signal Set Secon... | 1729671 | 17 days ago | IN | 0 S | 0.00005676 | ||||
Price Feed Set T... | 1728689 | 17 days ago | IN | 0 S | 0.00004392 | ||||
Signal Price Fee... | 1728680 | 17 days ago | IN | 0 S | 0.00005869 | ||||
Price Feed Set T... | 1728670 | 17 days ago | IN | 0 S | 0.00008776 | ||||
Signal Price Fee... | 1728662 | 17 days ago | IN | 0 S | 0.00005869 | ||||
Set Secondary Pr... | 1533181 | 19 days ago | IN | 0 S | 0.00004062 | ||||
Signal Set Secon... | 1533174 | 19 days ago | IN | 0 S | 0.00005676 | ||||
Price Feed Set T... | 1532356 | 19 days ago | IN | 0 S | 0.00008776 | ||||
Signal Price Fee... | 1532095 | 19 days ago | IN | 0 S | 0.00005869 | ||||
Price Feed Set T... | 1532091 | 19 days ago | IN | 0 S | 0.00004392 | ||||
Signal Price Fee... | 1532085 | 19 days ago | IN | 0 S | 0.00005869 |
Loading...
Loading
Contract Name:
PriceFeedTimelock
Compiler Version
v0.6.12+commit.27d51765
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/IUSDN.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 SignalSetSecondaryPriceFeed(address priceFeed, address secondaryPriceFeed, bytes32 action); event SignalSetPriceFeedWatcher(address fastPriceFeed, address account, bool isActive); event SignalPriceFeedSetTokenConfig( address vaultPriceFeed, address token, bytes32 priceFeed, uint256 allowedStaleness, 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 setPythNetwork(address _priceFeed, address _pythNetwork) external onlyAdmin { IVaultPriceFeed(_priceFeed).setPythNetwork(_pythNetwork); } 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 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 signalSetSecondaryPriceFeed(address _priceFeed, address _secondaryPriceFeed) external onlyAdmin { bytes32 action = keccak256(abi.encodePacked("setSecondaryPriceFeed", _priceFeed, _secondaryPriceFeed)); _setPendingAction(action); emit SignalSetSecondaryPriceFeed(_priceFeed, _secondaryPriceFeed, action); } function setSecondaryPriceFeed(address _priceFeed, address _secondaryPriceFeed) external onlyAdmin { bytes32 action = keccak256(abi.encodePacked("setSecondaryPriceFeed", _priceFeed, _secondaryPriceFeed)); _validateAction(action); _clearAction(action); IVaultPriceFeed(_priceFeed).setSecondaryPriceFeed(_secondaryPriceFeed); } 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, bytes32 _priceFeed, uint256 _allowedStaleness, bool _isStrictStable ) external onlyAdmin { bytes32 action = keccak256(abi.encodePacked( "priceFeedSetTokenConfig", _vaultPriceFeed, _token, _priceFeed, _allowedStaleness, _isStrictStable )); _setPendingAction(action); emit SignalPriceFeedSetTokenConfig( _vaultPriceFeed, _token, _priceFeed, _allowedStaleness, _isStrictStable ); } function priceFeedSetTokenConfig( address _vaultPriceFeed, address _token, bytes32 _priceFeed, uint256 _allowedStaleness, bool _isStrictStable ) external onlyAdmin { bytes32 action = keccak256(abi.encodePacked( "priceFeedSetTokenConfig", _vaultPriceFeed, _token, _priceFeed, _allowedStaleness, _isStrictStable )); _validateAction(action); _clearAction(action); IVaultPriceFeed(_vaultPriceFeed).setTokenConfig( _token, _priceFeed, _allowedStaleness, _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 pythNetwork() external view returns (address); 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 setMaxStrictPriceDeviation(uint256 _maxStrictPriceDeviation) external; function getPrice(address _token, bool _maximise, bool _includeAmmPrice, bool _useSwapPricing) external view returns (uint256); function getLatestPrimaryPrice(address _token) external view returns (uint256); function getPrimaryPrice(address _token, bool _maximise) external view returns (uint256); function setPythNetwork(address _pythNetwork) external; function setTokenConfig( address _token, bytes32 _priceFeed, uint256 _allowedStaleness, bool _isStrictStable ) external; function setSecondaryPriceFeed(address _secondaryPriceFeed) 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 setTokens(address[] memory _tokens, uint256[] memory _tokenPrecisions) 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); function depositForAccount(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; }
// 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 IUSDN { 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; }
{ "evmVersion": "istanbul", "libraries": {}, "metadata": { "bytecodeHash": "ipfs", "useLiteralContent": true }, "optimizer": { "enabled": true, "runs": 14 }, "remappings": [], "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
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":"bytes32","name":"priceFeed","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"allowedStaleness","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":"priceFeed","type":"address"},{"indexed":false,"internalType":"address","name":"secondaryPriceFeed","type":"address"},{"indexed":false,"internalType":"bytes32","name":"action","type":"bytes32"}],"name":"SignalSetSecondaryPriceFeed","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":"bytes32","name":"_priceFeed","type":"bytes32"},{"internalType":"uint256","name":"_allowedStaleness","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":"address","name":"_pythNetwork","type":"address"}],"name":"setPythNetwork","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_priceFeed","type":"address"},{"internalType":"address","name":"_secondaryPriceFeed","type":"address"}],"name":"setSecondaryPriceFeed","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":"_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":"bytes32","name":"_priceFeed","type":"bytes32"},{"internalType":"uint256","name":"_allowedStaleness","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":"_priceFeed","type":"address"},{"internalType":"address","name":"_secondaryPriceFeed","type":"address"}],"name":"signalSetSecondaryPriceFeed","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
608060405234801561001057600080fd5b506040516127ad3803806127ad8339818101604052606081101561003357600080fd5b50805160208201516040909201519091906206978082111561009c576040805162461bcd60e51b815260206004820152601960248201527f54696d656c6f636b3a20696e76616c6964205f62756666657200000000000000604482015290519081900360640190fd5b600180546001600160a01b039485166001600160a01b031991821617909155600092909255600280549190931691161790556126d0806100dd6000396000f3fe608060405234801561001057600080fd5b50600436106101cd5760003560e01c8063185051c1146101d257806321754d9e146102025780632965c8c71461023e578063296b07e51461026c5780632a709b14146102aa5780632a72e8ba146102ce5780633355d6c7146103065780633799c61814610334578063395bc7941461036c5780633d59b5f1146103985780634124c07a146103c657806343ec66191461040a57806346ea87af146104385780634cd23f3b1461047257806350e32d1d146104ae57806351a6de0d146104e657806355ef1395146105145780635b6348ac146105425780635b958e951461056e57806361d07569146105b25780636a0ca730146105cc5780636ba42aaa146105fa578063704b6c0214610620578063781cc3d314610646578063996a7a1e14610663578063a0a316a214610691578063adc7ea37146106bd578063b74517ba146106da578063bd0f1c4514610706578063be03af5814610732578063d1b9e8531461075e578063db5c875f1461078c578063dce6e18d146107c4578063e1f21c67146107fa578063e30569e514610830578063e4652f491461084d578063e7b0a3a114610883578063edaafe20146108b9578063f851a440146108c1575b600080fd5b610200600480360360408110156101e857600080fd5b506001600160a01b03813516906020013515156108c9565b005b6102006004803603608081101561021857600080fd5b506001600160a01b03813581169160208101358216916040820135169060600135610941565b6102006004803603604081101561025457600080fd5b506001600160a01b0381351690602001351515610a8c565b6102006004803603608081101561028257600080fd5b506001600160a01b038135811691602081013590911690604081013515159060600135610b3d565b6102b2610c3d565b604080516001600160a01b039092168252519081900360200190f35b610200600480360360608110156102e457600080fd5b506001600160a01b038135811691602081013590911690604001351515610c4c565b6102006004803603604081101561031c57600080fd5b506001600160a01b0381358116916020013516610d68565b6102006004803603606081101561034a57600080fd5b506001600160a01b038135811691602081013590911690604001351515610e68565b6102006004803603604081101561038257600080fd5b506001600160a01b038135169060200135610f73565b610200600480360360408110156103ae57600080fd5b506001600160a01b0381358116916020013516611006565b610200600480360360a08110156103dc57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060800135151561112c565b6102006004803603604081101561042057600080fd5b506001600160a01b0381351690602001351515611282565b61045e6004803603602081101561044e57600080fd5b50356001600160a01b0316611317565b604080519115158252519081900360200190f35b6102006004803603608081101561048857600080fd5b506001600160a01b0381358116916020810135821691604082013516906060013561132c565b610200600480360360608110156104c457600080fd5b506001600160a01b038135811691602081013590911690604001351515611447565b610200600480360360408110156104fc57600080fd5b506001600160a01b0381358116916020013516611563565b6102006004803603604081101561052a57600080fd5b506001600160a01b038135811691602001351661165d565b6102006004803603604081101561055857600080fd5b506001600160a01b038135169060200135611753565b610200600480360360a081101561058457600080fd5b506001600160a01b038135811691602081013590911690604081013590606081013590608001351515611800565b6105ba61192d565b60408051918252519081900360200190f35b610200600480360360408110156105e257600080fd5b506001600160a01b0381358116916020013516611934565b61045e6004803603602081101561061057600080fd5b50356001600160a01b03166119d0565b6102006004803603602081101561063657600080fd5b50356001600160a01b03166119e5565b6102006004803603602081101561065c57600080fd5b5035611a54565b6102006004803603604081101561067957600080fd5b506001600160a01b0381358116916020013516611aad565b610200600480360360408110156106a757600080fd5b506001600160a01b038135169060200135611b9e565b610200600480360360208110156106d357600080fd5b5035611c31565b610200600480360360408110156106f057600080fd5b506001600160a01b038135169060200135611d17565b6102006004803603604081101561071c57600080fd5b506001600160a01b038135169060200135611dc4565b6102006004803603604081101561074857600080fd5b506001600160a01b038135169060200135611e57565b6102006004803603604081101561077457600080fd5b506001600160a01b0381351690602001351515611eea565b610200600480360360608110156107a257600080fd5b506001600160a01b038135811691602081013590911690604001351515611f62565b610200600480360360608110156107da57600080fd5b506001600160a01b0381358116916020810135909116906040013561201c565b6102006004803603606081101561081057600080fd5b506001600160a01b0381358116916020810135909116906040013561211e565b6105ba6004803603602081101561084657600080fd5b5035612253565b6102006004803603606081101561086357600080fd5b506001600160a01b03813581169160208101359091169060400135612265565b6102006004803603606081101561089957600080fd5b506001600160a01b0381358116916020810135909116906040013561233c565b6105ba612414565b6102b261241a565b6001546001600160a01b03163314610916576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6001546001600160a01b0316331461098e576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b604080516c3bb4ba34323930bbaa37b5b2b760991b6020808301919091526001600160601b0319606088811b8216602d85015287811b8216604185015286901b166055830152606980830185905283518084039091018152608990920190925280519101206109fc81612429565b610a05816124d5565b846001600160a01b03166301e336678585856040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b031681526020018281526020019350505050600060405180830381600087803b158015610a6d57600080fd5b505af1158015610a81573d6000803e3d6000fd5b505050505050505050565b6001546001600160a01b03163314610ad9576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b816001600160a01b031663eb1c92a9826040518263ffffffff1660e01b8152600401808215158152602001915050600060405180830381600087803b158015610b2157600080fd5b505af1158015610b35573d6000803e3d6000fd5b505050505050565b6001546001600160a01b0316331480610b6557503360009081526004602052604090205460ff165b80610b7f57503360009081526005602052604090205460ff165b610bbe576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b836001600160a01b031663d694376c8484846040518463ffffffff1660e01b815260040180846001600160a01b0316815260200183151581526020018281526020019350505050600060405180830381600087803b158015610c1f57600080fd5b505af1158015610c33573d6000803e3d6000fd5b5050505050505050565b6002546001600160a01b031681565b6001546001600160a01b03163314610c99576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b604080517239b2ba283934b1b2a332b2b22bb0ba31b432b960691b6020808301919091526001600160601b0319606087811b8216603385015286901b16604783015283151560f81b605b8301528251603c818403018152605c9092019092528051910120610d0681612429565b610d0f816124d5565b836001600160a01b03166331cb610584846040518363ffffffff1660e01b815260040180836001600160a01b03168152602001821515815260200192505050600060405180830381600087803b158015610c1f57600080fd5b6001546001600160a01b03163314610db5576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b60408051741cd95d14d958dbdb99185c9e541c9a58d951995959605a1b6020808301919091526001600160601b0319606086811b8216603585015285901b1660498301528251603d818403018152605d9092019092528051910120610e198161257a565b604080516001600160a01b0380861682528416602082015280820183905290517fe6be17520d550b114efd5bda441744601b9d66a58e53a4b252fd1782b54558c59181900360600190a1505050565b6001546001600160a01b03163314610eb5576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b604080517239b2ba283934b1b2a332b2b22bb0ba31b432b960691b6020808301919091526001600160601b0319606087811b8216603385015286901b16604783015283151560f81b605b8301528251603c818403018152605c9092019092528051910120610f228161257a565b604080516001600160a01b038087168252851660208201528315158183015290517f6ab3018654d3055eae2cb61d3dffe4cbb30f257d54ec966059b4d00b325a36699181900360600190a150505050565b6001546001600160a01b03163314610fc0576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b816001600160a01b031663b70c7b70826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610b2157600080fd5b6001546001600160a01b03163314611053576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b60408051741cd95d14d958dbdb99185c9e541c9a58d951995959605a1b6020808301919091526001600160601b0319606086811b8216603585015285901b1660498301528251603d818403018152605d90920190925280519101206110b781612429565b6110c0816124d5565b826001600160a01b0316639a0a6635836040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b15801561110f57600080fd5b505af1158015611123573d6000803e3d6000fd5b50505050505050565b6001546001600160a01b03163314611179576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b6040805176707269636546656564536574546f6b656e436f6e66696760481b6020808301919091526001600160601b0319606089811b8216603785015288901b16604b830152605f8201869052607f820185905283151560f81b609f8301528251608081840301815260a090920190925280519101206111f881612429565b611201816124d5565b6040805163830359f160e01b81526001600160a01b0387811660048301526024820187905260448201869052841515606483015291519188169163830359f19160848082019260009290919082900301818387803b15801561126257600080fd5b505af1158015611276573d6000803e3d6000fd5b50505050505050505050565b6001546001600160a01b031633146112cf576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b816001600160a01b031663ce98dfa8826040518263ffffffff1660e01b8152600401808215158152602001915050600060405180830381600087803b158015610b2157600080fd5b60046020526000908152604090205460ff1681565b6001546001600160a01b03163314611379576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b604080516c3bb4ba34323930bbaa37b5b2b760991b6020808301919091526001600160601b0319606088811b8216602d85015287811b8216604185015286901b166055830152606980830185905283518084039091018152608990920190925280519101206113e78161257a565b604080516001600160a01b0380881682528087166020830152851681830152606081018490526080810183905290517f9ed7b0f07a9eed51079fab67f6d0f141f167f5b17fdb5a23282280e15fcafed39181900360a00190a15050505050565b6001546001600160a01b03163314611494576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b604080517239b2ba283934b1b2a332b2b22ab83230ba32b960691b6020808301919091526001600160601b0319606087811b8216603385015286901b16604783015283151560f81b605b8301528251603c818403018152605c909201909252805191012061150181612429565b61150a816124d5565b836001600160a01b0316631a15339184846040518363ffffffff1660e01b815260040180836001600160a01b03168152602001821515815260200192505050600060405180830381600087803b158015610c1f57600080fd5b6001546001600160a01b031633146115b0576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b604080516539b2ba23b7bb60d11b6020808301919091526001600160601b0319606086811b8216602685015285901b16603a8301528251602e818403018152604e909201909252805191012061160581612429565b61160e816124d5565b826001600160a01b031663cfad57a2836040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b15801561110f57600080fd5b6001546001600160a01b031633146116aa576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b6001600160a01b038216301415611704576040805162461bcd60e51b8152602060048201526019602482015278151a5b595b1bd8dace881a5b9d985b1a590817dd185c99d95d603a1b604482015290519081900360640190fd5b816001600160a01b031663704b6c02826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b158015610b2157600080fd5b6001546001600160a01b031633148061177b57503360009081526004602052604090205460ff165b6117ba576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b816001600160a01b0316638b7677f4826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610b2157600080fd5b6001546001600160a01b0316331461184d576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b6040805176707269636546656564536574546f6b656e436f6e66696760481b6020808301919091526001600160601b0319606089811b8216603785015288901b16604b830152605f8201869052607f820185905283151560f81b609f8301528251608081840301815260a090920190925280519101206118cc8161257a565b604080516001600160a01b0380891682528716602082015280820186905260608101859052831515608082015290517fabb8080c575129d80a4457985f41dabcead59ccf5ba547fb7c4551a01e875fdb9181900360a00190a1505050505050565b6206978081565b6001546001600160a01b03163314611981576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b816001600160a01b0316631dac763a826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b158015610b2157600080fd5b60056020526000908152604090205460ff1681565b6002546001600160a01b03163314611a32576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b03163314611aa1576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b611aaa816124d5565b50565b6001546001600160a01b03163314611afa576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b604080516539b2ba23b7bb60d11b6020808301919091526001600160601b0319606086811b8216602685015285901b16603a8301528251602e818403018152604e9092019092528051910120611b4f8161257a565b604080516001600160a01b0380861682528416602082015280820183905290517f2701a94fd55a560e291f3c54d36580040670d6fde558a77a75d619e38139f7139181900360600190a1505050565b6001546001600160a01b03163314611beb576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b816001600160a01b0316632fbfe3d3826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610b2157600080fd5b6001546001600160a01b03163314611c7e576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b62069780811115611cd2576040805162461bcd60e51b81526020600482015260196024820152782a34b6b2b637b1b59d1034b73b30b634b2102fb13ab33332b960391b604482015290519081900360640190fd5b6000548111611d125760405162461bcd60e51b81526004018080602001828103825260248152602001806126576024913960400191505060405180910390fd5b600055565b6001546001600160a01b0316331480611d3f57503360009081526004602052604090205460ff165b611d7e576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b816001600160a01b03166344c23193826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610b2157600080fd5b6001546001600160a01b03163314611e11576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b816001600160a01b031663de0d1b94826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610b2157600080fd5b6001546001600160a01b03163314611ea4576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b816001600160a01b031663d6a153f1826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610b2157600080fd5b6001546001600160a01b03163314611f37576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001546001600160a01b03163314611faf576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b604080517239b2ba283934b1b2a332b2b22ab83230ba32b960691b6020808301919091526001600160601b0319606087811b8216603385015286901b16604783015283151560f81b605b8301528251603c818403018152605c9092019092528051910120610f228161257a565b6001546001600160a01b03163314612069576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b6040805166617070726f766560c81b6020808301919091526001600160601b0319606087811b8216602785015286901b16603b830152604f80830185905283518084039091018152606f90920190925280519101206120c78161257a565b604080516001600160a01b038087168252851660208201528082018490526060810183905290517f6af9d86ba7407a934e941ed8ae5f779369a88fe8ba2cd1c204185d6f8a8287fd9181900360800190a150505050565b6001546001600160a01b0316331461216b576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b6040805166617070726f766560c81b6020808301919091526001600160601b0319606087811b8216602785015286901b16603b830152604f80830185905283518084039091018152606f90920190925280519101206121c981612429565b6121d2816124d5565b836001600160a01b031663095ea7b384846040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561222957600080fd5b505af115801561223d573d6000803e3d6000fd5b505050506040513d6020811015610b3557600080fd5b60036020526000908152604090205481565b6001546001600160a01b031633146122b2576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b604080516323b872dd60e01b81526001600160a01b038581166004830152306024830152604482018490529151918416916323b872dd916064808201926020929091908290030181600087803b15801561230b57600080fd5b505af115801561231f573d6000803e3d6000fd5b505050506040513d602081101561233557600080fd5b5050505050565b6001546001600160a01b031633148061236457503360009081526004602052604090205460ff165b8061237e57503360009081526005602052604090205460ff165b6123bd576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b826001600160a01b0316639b88938083836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561110f57600080fd5b60005481565b6001546001600160a01b031681565b600081815260036020526040902054612489576040805162461bcd60e51b815260206004820152601e60248201527f54696d656c6f636b3a20616374696f6e206e6f74207369676e616c6c65640000604482015290519081900360640190fd5b6000818152600360205260409020544211611aaa5760405162461bcd60e51b81526004018080602001828103825260248152602001806126336024913960400191505060405180910390fd5b600081815260036020526040902054612531576040805162461bcd60e51b81526020600482015260196024820152782a34b6b2b637b1b59d1034b73b30b634b2102fb0b1ba34b7b760391b604482015290519081900360640190fd5b600081815260036020908152604080832092909255815183815291517f194ed6dd5e37e2acc44a19455c3f208c4831ee695fe362d9c4ef2d316bc53aec9281900390910190a150565b6000546125889042906125d3565b60008281526003602090815260409182902092909255805183815290517f5fb9c0ecf7b4a28c4c480212e868f9da7f373a2ed4d23498b0be6aadf35242fb929181900390910190a150565b60008282018381101561262b576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b939250505056fe54696d656c6f636b3a20616374696f6e2074696d65206e6f74207965742070617373656454696d656c6f636b3a206275666665722063616e6e6f742062652064656372656173656454696d656c6f636b3a20666f7262696464656e00000000000000000000000000a264697066735822122041fdaac31265b5e8f39cd0d1fa73661192d21611cbd931219c0f806f9bf758c364736f6c634300060c003300000000000000000000000030b12942912cee5a719edec2dd147224fcc373a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a724783bf7d92ef9d063d059e1cc7b5fe5aa44f0
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101cd5760003560e01c8063185051c1146101d257806321754d9e146102025780632965c8c71461023e578063296b07e51461026c5780632a709b14146102aa5780632a72e8ba146102ce5780633355d6c7146103065780633799c61814610334578063395bc7941461036c5780633d59b5f1146103985780634124c07a146103c657806343ec66191461040a57806346ea87af146104385780634cd23f3b1461047257806350e32d1d146104ae57806351a6de0d146104e657806355ef1395146105145780635b6348ac146105425780635b958e951461056e57806361d07569146105b25780636a0ca730146105cc5780636ba42aaa146105fa578063704b6c0214610620578063781cc3d314610646578063996a7a1e14610663578063a0a316a214610691578063adc7ea37146106bd578063b74517ba146106da578063bd0f1c4514610706578063be03af5814610732578063d1b9e8531461075e578063db5c875f1461078c578063dce6e18d146107c4578063e1f21c67146107fa578063e30569e514610830578063e4652f491461084d578063e7b0a3a114610883578063edaafe20146108b9578063f851a440146108c1575b600080fd5b610200600480360360408110156101e857600080fd5b506001600160a01b03813516906020013515156108c9565b005b6102006004803603608081101561021857600080fd5b506001600160a01b03813581169160208101358216916040820135169060600135610941565b6102006004803603604081101561025457600080fd5b506001600160a01b0381351690602001351515610a8c565b6102006004803603608081101561028257600080fd5b506001600160a01b038135811691602081013590911690604081013515159060600135610b3d565b6102b2610c3d565b604080516001600160a01b039092168252519081900360200190f35b610200600480360360608110156102e457600080fd5b506001600160a01b038135811691602081013590911690604001351515610c4c565b6102006004803603604081101561031c57600080fd5b506001600160a01b0381358116916020013516610d68565b6102006004803603606081101561034a57600080fd5b506001600160a01b038135811691602081013590911690604001351515610e68565b6102006004803603604081101561038257600080fd5b506001600160a01b038135169060200135610f73565b610200600480360360408110156103ae57600080fd5b506001600160a01b0381358116916020013516611006565b610200600480360360a08110156103dc57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060800135151561112c565b6102006004803603604081101561042057600080fd5b506001600160a01b0381351690602001351515611282565b61045e6004803603602081101561044e57600080fd5b50356001600160a01b0316611317565b604080519115158252519081900360200190f35b6102006004803603608081101561048857600080fd5b506001600160a01b0381358116916020810135821691604082013516906060013561132c565b610200600480360360608110156104c457600080fd5b506001600160a01b038135811691602081013590911690604001351515611447565b610200600480360360408110156104fc57600080fd5b506001600160a01b0381358116916020013516611563565b6102006004803603604081101561052a57600080fd5b506001600160a01b038135811691602001351661165d565b6102006004803603604081101561055857600080fd5b506001600160a01b038135169060200135611753565b610200600480360360a081101561058457600080fd5b506001600160a01b038135811691602081013590911690604081013590606081013590608001351515611800565b6105ba61192d565b60408051918252519081900360200190f35b610200600480360360408110156105e257600080fd5b506001600160a01b0381358116916020013516611934565b61045e6004803603602081101561061057600080fd5b50356001600160a01b03166119d0565b6102006004803603602081101561063657600080fd5b50356001600160a01b03166119e5565b6102006004803603602081101561065c57600080fd5b5035611a54565b6102006004803603604081101561067957600080fd5b506001600160a01b0381358116916020013516611aad565b610200600480360360408110156106a757600080fd5b506001600160a01b038135169060200135611b9e565b610200600480360360208110156106d357600080fd5b5035611c31565b610200600480360360408110156106f057600080fd5b506001600160a01b038135169060200135611d17565b6102006004803603604081101561071c57600080fd5b506001600160a01b038135169060200135611dc4565b6102006004803603604081101561074857600080fd5b506001600160a01b038135169060200135611e57565b6102006004803603604081101561077457600080fd5b506001600160a01b0381351690602001351515611eea565b610200600480360360608110156107a257600080fd5b506001600160a01b038135811691602081013590911690604001351515611f62565b610200600480360360608110156107da57600080fd5b506001600160a01b0381358116916020810135909116906040013561201c565b6102006004803603606081101561081057600080fd5b506001600160a01b0381358116916020810135909116906040013561211e565b6105ba6004803603602081101561084657600080fd5b5035612253565b6102006004803603606081101561086357600080fd5b506001600160a01b03813581169160208101359091169060400135612265565b6102006004803603606081101561089957600080fd5b506001600160a01b0381358116916020810135909116906040013561233c565b6105ba612414565b6102b261241a565b6001546001600160a01b03163314610916576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6001546001600160a01b0316331461098e576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b604080516c3bb4ba34323930bbaa37b5b2b760991b6020808301919091526001600160601b0319606088811b8216602d85015287811b8216604185015286901b166055830152606980830185905283518084039091018152608990920190925280519101206109fc81612429565b610a05816124d5565b846001600160a01b03166301e336678585856040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b031681526020018281526020019350505050600060405180830381600087803b158015610a6d57600080fd5b505af1158015610a81573d6000803e3d6000fd5b505050505050505050565b6001546001600160a01b03163314610ad9576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b816001600160a01b031663eb1c92a9826040518263ffffffff1660e01b8152600401808215158152602001915050600060405180830381600087803b158015610b2157600080fd5b505af1158015610b35573d6000803e3d6000fd5b505050505050565b6001546001600160a01b0316331480610b6557503360009081526004602052604090205460ff165b80610b7f57503360009081526005602052604090205460ff165b610bbe576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b836001600160a01b031663d694376c8484846040518463ffffffff1660e01b815260040180846001600160a01b0316815260200183151581526020018281526020019350505050600060405180830381600087803b158015610c1f57600080fd5b505af1158015610c33573d6000803e3d6000fd5b5050505050505050565b6002546001600160a01b031681565b6001546001600160a01b03163314610c99576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b604080517239b2ba283934b1b2a332b2b22bb0ba31b432b960691b6020808301919091526001600160601b0319606087811b8216603385015286901b16604783015283151560f81b605b8301528251603c818403018152605c9092019092528051910120610d0681612429565b610d0f816124d5565b836001600160a01b03166331cb610584846040518363ffffffff1660e01b815260040180836001600160a01b03168152602001821515815260200192505050600060405180830381600087803b158015610c1f57600080fd5b6001546001600160a01b03163314610db5576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b60408051741cd95d14d958dbdb99185c9e541c9a58d951995959605a1b6020808301919091526001600160601b0319606086811b8216603585015285901b1660498301528251603d818403018152605d9092019092528051910120610e198161257a565b604080516001600160a01b0380861682528416602082015280820183905290517fe6be17520d550b114efd5bda441744601b9d66a58e53a4b252fd1782b54558c59181900360600190a1505050565b6001546001600160a01b03163314610eb5576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b604080517239b2ba283934b1b2a332b2b22bb0ba31b432b960691b6020808301919091526001600160601b0319606087811b8216603385015286901b16604783015283151560f81b605b8301528251603c818403018152605c9092019092528051910120610f228161257a565b604080516001600160a01b038087168252851660208201528315158183015290517f6ab3018654d3055eae2cb61d3dffe4cbb30f257d54ec966059b4d00b325a36699181900360600190a150505050565b6001546001600160a01b03163314610fc0576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b816001600160a01b031663b70c7b70826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610b2157600080fd5b6001546001600160a01b03163314611053576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b60408051741cd95d14d958dbdb99185c9e541c9a58d951995959605a1b6020808301919091526001600160601b0319606086811b8216603585015285901b1660498301528251603d818403018152605d90920190925280519101206110b781612429565b6110c0816124d5565b826001600160a01b0316639a0a6635836040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b15801561110f57600080fd5b505af1158015611123573d6000803e3d6000fd5b50505050505050565b6001546001600160a01b03163314611179576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b6040805176707269636546656564536574546f6b656e436f6e66696760481b6020808301919091526001600160601b0319606089811b8216603785015288901b16604b830152605f8201869052607f820185905283151560f81b609f8301528251608081840301815260a090920190925280519101206111f881612429565b611201816124d5565b6040805163830359f160e01b81526001600160a01b0387811660048301526024820187905260448201869052841515606483015291519188169163830359f19160848082019260009290919082900301818387803b15801561126257600080fd5b505af1158015611276573d6000803e3d6000fd5b50505050505050505050565b6001546001600160a01b031633146112cf576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b816001600160a01b031663ce98dfa8826040518263ffffffff1660e01b8152600401808215158152602001915050600060405180830381600087803b158015610b2157600080fd5b60046020526000908152604090205460ff1681565b6001546001600160a01b03163314611379576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b604080516c3bb4ba34323930bbaa37b5b2b760991b6020808301919091526001600160601b0319606088811b8216602d85015287811b8216604185015286901b166055830152606980830185905283518084039091018152608990920190925280519101206113e78161257a565b604080516001600160a01b0380881682528087166020830152851681830152606081018490526080810183905290517f9ed7b0f07a9eed51079fab67f6d0f141f167f5b17fdb5a23282280e15fcafed39181900360a00190a15050505050565b6001546001600160a01b03163314611494576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b604080517239b2ba283934b1b2a332b2b22ab83230ba32b960691b6020808301919091526001600160601b0319606087811b8216603385015286901b16604783015283151560f81b605b8301528251603c818403018152605c909201909252805191012061150181612429565b61150a816124d5565b836001600160a01b0316631a15339184846040518363ffffffff1660e01b815260040180836001600160a01b03168152602001821515815260200192505050600060405180830381600087803b158015610c1f57600080fd5b6001546001600160a01b031633146115b0576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b604080516539b2ba23b7bb60d11b6020808301919091526001600160601b0319606086811b8216602685015285901b16603a8301528251602e818403018152604e909201909252805191012061160581612429565b61160e816124d5565b826001600160a01b031663cfad57a2836040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b15801561110f57600080fd5b6001546001600160a01b031633146116aa576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b6001600160a01b038216301415611704576040805162461bcd60e51b8152602060048201526019602482015278151a5b595b1bd8dace881a5b9d985b1a590817dd185c99d95d603a1b604482015290519081900360640190fd5b816001600160a01b031663704b6c02826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b158015610b2157600080fd5b6001546001600160a01b031633148061177b57503360009081526004602052604090205460ff165b6117ba576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b816001600160a01b0316638b7677f4826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610b2157600080fd5b6001546001600160a01b0316331461184d576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b6040805176707269636546656564536574546f6b656e436f6e66696760481b6020808301919091526001600160601b0319606089811b8216603785015288901b16604b830152605f8201869052607f820185905283151560f81b609f8301528251608081840301815260a090920190925280519101206118cc8161257a565b604080516001600160a01b0380891682528716602082015280820186905260608101859052831515608082015290517fabb8080c575129d80a4457985f41dabcead59ccf5ba547fb7c4551a01e875fdb9181900360a00190a1505050505050565b6206978081565b6001546001600160a01b03163314611981576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b816001600160a01b0316631dac763a826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b158015610b2157600080fd5b60056020526000908152604090205460ff1681565b6002546001600160a01b03163314611a32576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b03163314611aa1576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b611aaa816124d5565b50565b6001546001600160a01b03163314611afa576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b604080516539b2ba23b7bb60d11b6020808301919091526001600160601b0319606086811b8216602685015285901b16603a8301528251602e818403018152604e9092019092528051910120611b4f8161257a565b604080516001600160a01b0380861682528416602082015280820183905290517f2701a94fd55a560e291f3c54d36580040670d6fde558a77a75d619e38139f7139181900360600190a1505050565b6001546001600160a01b03163314611beb576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b816001600160a01b0316632fbfe3d3826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610b2157600080fd5b6001546001600160a01b03163314611c7e576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b62069780811115611cd2576040805162461bcd60e51b81526020600482015260196024820152782a34b6b2b637b1b59d1034b73b30b634b2102fb13ab33332b960391b604482015290519081900360640190fd5b6000548111611d125760405162461bcd60e51b81526004018080602001828103825260248152602001806126576024913960400191505060405180910390fd5b600055565b6001546001600160a01b0316331480611d3f57503360009081526004602052604090205460ff165b611d7e576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b816001600160a01b03166344c23193826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610b2157600080fd5b6001546001600160a01b03163314611e11576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b816001600160a01b031663de0d1b94826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610b2157600080fd5b6001546001600160a01b03163314611ea4576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b816001600160a01b031663d6a153f1826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610b2157600080fd5b6001546001600160a01b03163314611f37576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001546001600160a01b03163314611faf576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b604080517239b2ba283934b1b2a332b2b22ab83230ba32b960691b6020808301919091526001600160601b0319606087811b8216603385015286901b16604783015283151560f81b605b8301528251603c818403018152605c9092019092528051910120610f228161257a565b6001546001600160a01b03163314612069576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b6040805166617070726f766560c81b6020808301919091526001600160601b0319606087811b8216602785015286901b16603b830152604f80830185905283518084039091018152606f90920190925280519101206120c78161257a565b604080516001600160a01b038087168252851660208201528082018490526060810183905290517f6af9d86ba7407a934e941ed8ae5f779369a88fe8ba2cd1c204185d6f8a8287fd9181900360800190a150505050565b6001546001600160a01b0316331461216b576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b6040805166617070726f766560c81b6020808301919091526001600160601b0319606087811b8216602785015286901b16603b830152604f80830185905283518084039091018152606f90920190925280519101206121c981612429565b6121d2816124d5565b836001600160a01b031663095ea7b384846040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561222957600080fd5b505af115801561223d573d6000803e3d6000fd5b505050506040513d6020811015610b3557600080fd5b60036020526000908152604090205481565b6001546001600160a01b031633146122b2576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b604080516323b872dd60e01b81526001600160a01b038581166004830152306024830152604482018490529151918416916323b872dd916064808201926020929091908290030181600087803b15801561230b57600080fd5b505af115801561231f573d6000803e3d6000fd5b505050506040513d602081101561233557600080fd5b5050505050565b6001546001600160a01b031633148061236457503360009081526004602052604090205460ff165b8061237e57503360009081526005602052604090205460ff165b6123bd576040805162461bcd60e51b8152602060048201526013602482015260008051602061267b833981519152604482015290519081900360640190fd5b826001600160a01b0316639b88938083836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561110f57600080fd5b60005481565b6001546001600160a01b031681565b600081815260036020526040902054612489576040805162461bcd60e51b815260206004820152601e60248201527f54696d656c6f636b3a20616374696f6e206e6f74207369676e616c6c65640000604482015290519081900360640190fd5b6000818152600360205260409020544211611aaa5760405162461bcd60e51b81526004018080602001828103825260248152602001806126336024913960400191505060405180910390fd5b600081815260036020526040902054612531576040805162461bcd60e51b81526020600482015260196024820152782a34b6b2b637b1b59d1034b73b30b634b2102fb0b1ba34b7b760391b604482015290519081900360640190fd5b600081815260036020908152604080832092909255815183815291517f194ed6dd5e37e2acc44a19455c3f208c4831ee695fe362d9c4ef2d316bc53aec9281900390910190a150565b6000546125889042906125d3565b60008281526003602090815260409182902092909255805183815290517f5fb9c0ecf7b4a28c4c480212e868f9da7f373a2ed4d23498b0be6aadf35242fb929181900390910190a150565b60008282018381101561262b576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b939250505056fe54696d656c6f636b3a20616374696f6e2074696d65206e6f74207965742070617373656454696d656c6f636b3a206275666665722063616e6e6f742062652064656372656173656454696d656c6f636b3a20666f7262696464656e00000000000000000000000000a264697066735822122041fdaac31265b5e8f39cd0d1fa73661192d21611cbd931219c0f806f9bf758c364736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000030b12942912cee5a719edec2dd147224fcc373a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a724783bf7d92ef9d063d059e1cc7b5fe5aa44f0
-----Decoded View---------------
Arg [0] : _admin (address): 0x30B12942912Cee5A719edec2dD147224fCC373A0
Arg [1] : _buffer (uint256): 0
Arg [2] : _tokenManager (address): 0xA724783BF7D92eF9D063d059e1CC7b5FE5AA44F0
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000030b12942912cee5a719edec2dd147224fcc373a0
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [2] : 000000000000000000000000a724783bf7d92ef9d063d059e1cc7b5fe5aa44f0
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.