Contract Overview
Balance:
0 ETH
ETH Value:
$0.00
My Name Tag:
Not Available
Txn Hash | Method |
Block
|
From
|
To
|
Value | [Txn Fee] | |||
---|---|---|---|---|---|---|---|---|---|
0x2eeea9e38f63dadd927c85e30f234aa8549d90e8caf4a761851091b3860a009c | Set Compacted Pr... | 3805713 | 413 days 16 hrs ago | 0x67f1b9e91d7bb46556ba013c1b187c461e2a1ffd | IN | 0xd2a0d451b73afc30cdfe74fc629e5512c7fefb1c | 0 ETH | 0.000470301883 ETH | |
0xca57a49ac53f84b16a0f00f1b8f2b30e53fac6c66c865f4b163a6e44af7f597f | Set Compacted Pr... | 3805674 | 413 days 16 hrs ago | 0x67f1b9e91d7bb46556ba013c1b187c461e2a1ffd | IN | 0xd2a0d451b73afc30cdfe74fc629e5512c7fefb1c | 0 ETH | 0.000470301883 ETH | |
0x0c99c49c897912eadbfb3f027ceefa6fd3506e76f30f93a2f3ec0628ce0052d1 | Set Compacted Pr... | 3717749 | 416 days 19 hrs ago | 0x67f1b9e91d7bb46556ba013c1b187c461e2a1ffd | IN | 0xd2a0d451b73afc30cdfe74fc629e5512c7fefb1c | 0 ETH | 0.001320268108 ETH | |
0xc7a953826c1f56f3d9432e2f9e484d4fade3c425acc510167dc7454733424285 | Set Gov | 3716801 | 416 days 20 hrs ago | GMX: Deployer | IN | 0xd2a0d451b73afc30cdfe74fc629e5512c7fefb1c | 0 ETH | 0.000538697119 ETH | |
0x5d0e76d959b1d1c36296faeb8b4000a3c42925919b92f78ae16ede99c68abd6c | Set Tokens | 3716799 | 416 days 20 hrs ago | GMX: Deployer | IN | 0xd2a0d451b73afc30cdfe74fc629e5512c7fefb1c | 0 ETH | 0.002292398402 ETH | |
0x910555ef6690acc719146493ab3ff6f59ca936cc891e26a28d262cd9c4e91848 | Initialize | 3716743 | 416 days 20 hrs ago | GMX: Deployer | IN | 0xd2a0d451b73afc30cdfe74fc629e5512c7fefb1c | 0 ETH | 0.000886519631 ETH | |
0xc8e9f712ddd1aaed0f61f94539b2b4b1e36b1b14b2eb9ec99f276aa89eb80f19 | 0x60806040 | 3716738 | 416 days 20 hrs ago | GMX: Deployer | IN | Create: FastPriceFeed | 0 ETH | 0.040498747602 ETH |
[ Download CSV Export ]
Latest 12 internal transactions
[ Download CSV Export ]
Contract Name:
FastPriceFeed
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 import "../libraries/math/SafeMath.sol"; import "./interfaces/ISecondaryPriceFeed.sol"; import "./interfaces/IFastPriceEvents.sol"; import "../access/Governable.sol"; pragma solidity 0.6.12; contract FastPriceFeed is ISecondaryPriceFeed, Governable { using SafeMath for uint256; uint256 public constant PRICE_PRECISION = 10 ** 30; // uint256(~0) is 256 bits of 1s // shift the 1s by (256 - 32) to get (256 - 32) 0s followed by 32 1s uint256 constant public PRICE_BITMASK = uint256(~0) >> (256 - 32); bool public isInitialized; bool public isSpreadEnabled = false; address public fastPriceEvents; address public admin; address public tokenManager; uint256 public constant BASIS_POINTS_DIVISOR = 10000; uint256 public constant MAX_PRICE_DURATION = 30 minutes; uint256 public lastUpdatedAt; uint256 public priceDuration; // volatility basis points uint256 public volBasisPoints; // max deviation from primary price uint256 public maxDeviationBasisPoints; mapping (address => uint256) public prices; uint256 public minAuthorizations; uint256 public disableFastPriceVoteCount = 0; mapping (address => bool) public isSigner; mapping (address => bool) public disableFastPriceVotes; // array of tokens used in setCompactedPrices, saves L1 calldata gas costs address[] public tokens; // array of tokenPrecisions used in setCompactedPrices, saves L1 calldata gas costs // if the token price will be sent with 3 decimals, then tokenPrecision for that token // should be 10 ** 3 uint256[] public tokenPrecisions; modifier onlySigner() { require(isSigner[msg.sender], "FastPriceFeed: forbidden"); _; } modifier onlyAdmin() { require(msg.sender == admin, "FastPriceFeed: forbidden"); _; } modifier onlyTokenManager() { require(msg.sender == tokenManager, "FastPriceFeed: forbidden"); _; } constructor( uint256 _priceDuration, uint256 _maxDeviationBasisPoints, address _fastPriceEvents, address _admin, address _tokenManager ) public { require(_priceDuration <= MAX_PRICE_DURATION, "FastPriceFeed: invalid _priceDuration"); priceDuration = _priceDuration; maxDeviationBasisPoints = _maxDeviationBasisPoints; fastPriceEvents = _fastPriceEvents; admin = _admin; tokenManager = _tokenManager; } function initialize(uint256 _minAuthorizations, address[] memory _signers) public onlyGov { require(!isInitialized, "FastPriceFeed: already initialized"); isInitialized = true; minAuthorizations = _minAuthorizations; for (uint256 i = 0; i < _signers.length; i++) { address signer = _signers[i]; isSigner[signer] = true; } } function setAdmin(address _admin) external onlyTokenManager { admin = _admin; } function setFastPriceEvents(address _fastPriceEvents) external onlyGov { fastPriceEvents = _fastPriceEvents; } function setPriceDuration(uint256 _priceDuration) external onlyGov { require(_priceDuration <= MAX_PRICE_DURATION, "FastPriceFeed: invalid _priceDuration"); priceDuration = _priceDuration; } function setIsSpreadEnabled(bool _isSpreadEnabled) external onlyGov { isSpreadEnabled = _isSpreadEnabled; } function setVolBasisPoints(uint256 _volBasisPoints) external onlyGov { volBasisPoints = _volBasisPoints; } function setTokens(address[] memory _tokens, uint256[] memory _tokenPrecisions) external onlyGov { require(_tokens.length == _tokenPrecisions.length, "FastPriceFeed: invalid lengths"); tokens = _tokens; tokenPrecisions = _tokenPrecisions; } function setPrices(address[] memory _tokens, uint256[] memory _prices) external onlyAdmin { for (uint256 i = 0; i < _tokens.length; i++) { address token = _tokens[i]; prices[token] = _prices[i]; if (fastPriceEvents != address(0)) { IFastPriceEvents(fastPriceEvents).emitPriceEvent(token, _prices[i]); } } lastUpdatedAt = block.timestamp; } function setCompactedPrices(uint256[] memory _priceBitArray) external onlyAdmin { lastUpdatedAt = block.timestamp; for (uint256 i = 0; i < _priceBitArray.length; i++) { uint256 priceBits = _priceBitArray[i]; for (uint256 j = 0; j < 8; j++) { uint256 index = i * 8 + j; if (index >= tokens.length) { return; } uint256 startBit = 32 * j; uint256 price = (priceBits >> startBit) & PRICE_BITMASK; address token = tokens[i * 8 + j]; uint256 tokenPrecision = tokenPrecisions[i * 8 + j]; uint256 adjustedPrice = price.mul(PRICE_PRECISION).div(tokenPrecision); prices[token] = adjustedPrice; if (fastPriceEvents != address(0)) { IFastPriceEvents(fastPriceEvents).emitPriceEvent(token, adjustedPrice); } } } } function disableFastPrice() external onlySigner { require(!disableFastPriceVotes[msg.sender], "FastPriceFeed: already voted"); disableFastPriceVotes[msg.sender] = true; disableFastPriceVoteCount = disableFastPriceVoteCount.add(1); } function enableFastPrice() external onlySigner { require(disableFastPriceVotes[msg.sender], "FastPriceFeed: already enabled"); disableFastPriceVotes[msg.sender] = false; disableFastPriceVoteCount = disableFastPriceVoteCount.sub(1); } function favorFastPrice() public view returns (bool) { return (disableFastPriceVoteCount < minAuthorizations) && !isSpreadEnabled; } function getPrice(address _token, uint256 _refPrice, bool _maximise) external override view returns (uint256) { if (block.timestamp > lastUpdatedAt.add(priceDuration)) { return _refPrice; } uint256 fastPrice = prices[_token]; if (fastPrice == 0) { return _refPrice; } uint256 maxPrice = _refPrice.mul(BASIS_POINTS_DIVISOR.add(maxDeviationBasisPoints)).div(BASIS_POINTS_DIVISOR); uint256 minPrice = _refPrice.mul(BASIS_POINTS_DIVISOR.sub(maxDeviationBasisPoints)).div(BASIS_POINTS_DIVISOR); if (favorFastPrice()) { if (fastPrice >= minPrice && fastPrice <= maxPrice) { if (_maximise) { if (_refPrice > fastPrice) { uint256 volPrice = fastPrice.mul(BASIS_POINTS_DIVISOR.add(volBasisPoints)).div(BASIS_POINTS_DIVISOR); // the volPrice should not be more than _refPrice return volPrice > _refPrice ? _refPrice : volPrice; } return fastPrice; } if (_refPrice < fastPrice) { uint256 volPrice = fastPrice.mul(BASIS_POINTS_DIVISOR.sub(volBasisPoints)).div(BASIS_POINTS_DIVISOR); // the volPrice should not be less than _refPrice return volPrice < _refPrice ? _refPrice : volPrice; } return fastPrice; } } if (_maximise) { if (_refPrice > fastPrice) { return _refPrice; } return fastPrice > maxPrice ? maxPrice : fastPrice; } if (_refPrice < fastPrice) { return _refPrice; } return fastPrice < minPrice ? minPrice : fastPrice; } }
// 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; interface ISecondaryPriceFeed { function getPrice(address _token, uint256 _referencePrice, bool _maximise) external view returns (uint256); }
// SPDX-License-Identifier: MIT pragma solidity 0.6.12; interface IFastPriceEvents { function emitPriceEvent(address _token, uint256 _price) external; }
// SPDX-License-Identifier: MIT pragma solidity 0.6.12; contract Governable { address public gov; constructor() public { gov = msg.sender; } modifier onlyGov() { require(msg.sender == gov, "Governable: forbidden"); _; } function setGov(address _gov) external onlyGov { gov = _gov; } }
{ "optimizer": { "enabled": true, "runs": 1 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } }, "libraries": {} }
[{"inputs":[{"internalType":"uint256","name":"_priceDuration","type":"uint256"},{"internalType":"uint256","name":"_maxDeviationBasisPoints","type":"uint256"},{"internalType":"address","name":"_fastPriceEvents","type":"address"},{"internalType":"address","name":"_admin","type":"address"},{"internalType":"address","name":"_tokenManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"BASIS_POINTS_DIVISOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_PRICE_DURATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PRICE_BITMASK","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PRICE_PRECISION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableFastPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableFastPriceVoteCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"disableFastPriceVotes","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableFastPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fastPriceEvents","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"favorFastPrice","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_refPrice","type":"uint256"},{"internalType":"bool","name":"_maximise","type":"bool"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gov","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minAuthorizations","type":"uint256"},{"internalType":"address[]","name":"_signers","type":"address[]"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isSigner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSpreadEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastUpdatedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxDeviationBasisPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minAuthorizations","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"priceDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"prices","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_admin","type":"address"}],"name":"setAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_priceBitArray","type":"uint256[]"}],"name":"setCompactedPrices","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_fastPriceEvents","type":"address"}],"name":"setFastPriceEvents","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gov","type":"address"}],"name":"setGov","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_isSpreadEnabled","type":"bool"}],"name":"setIsSpreadEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_priceDuration","type":"uint256"}],"name":"setPriceDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_tokens","type":"address[]"},{"internalType":"uint256[]","name":"_prices","type":"uint256[]"}],"name":"setPrices","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_tokens","type":"address[]"},{"internalType":"uint256[]","name":"_tokenPrecisions","type":"uint256[]"}],"name":"setTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_volBasisPoints","type":"uint256"}],"name":"setVolBasisPoints","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tokenManager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenPrecisions","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokens","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"volBasisPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040526000805460ff60a81b19168155600a5534801561002057600080fd5b50604051611932380380611932833981810160405260a081101561004357600080fd5b508051602082015160408301516060840151608090940151600080546001600160a01b03191633179055929391929091906107088511156100b55760405162461bcd60e51b815260040180806020018281038252602581526020018061190d6025913960400191505060405180910390fd5b600594909455600792909255600180546001600160a01b039283166001600160a01b0319918216179091556002805493831693821693909317909255600380549190931691161790556118008061010d6000396000f3fe608060405234801561001057600080fd5b50600436106101a15760003560e01c806303b04936146101a657806303cd2571146101e05780630e9272ea146101fa578063114fbeb31461021e578063126082cf1461022657806312d43a511461022e578063162ac4e0146102365780631d4e37401461025e578063287800c9146102ff5780632a709b1414610307578063392e53cd1461030f5780634352fa9f1461031757806344c231931461043a5780634d11fb4a146104575780634f64b2be1461047457806354aea12714610491578063668d3d6514610499578063695d4184146104a15780636ccd47c4146104a9578063704b6c02146104b1578063715c7536146104d75780637df73e27146104df5780637fece3681461050557806395082d25146105395780639e4de0e314610541578063a920b78c1461055e578063b0a2566614610606578063c0e4de8e1461060e578063c8390a4814610616578063c84a912414610739578063ce98dfa814610741578063cfad57a214610760578063cfed246b14610786578063f67e3bf0146107ac578063f851a440146107b4575b600080fd5b6101cc600480360360208110156101bc57600080fd5b50356001600160a01b03166107bc565b604080519115158252519081900360200190f35b6101e86107d1565b60408051918252519081900360200190f35b6102026107d7565b604080516001600160a01b039092168252519081900360200190f35b6101e86107e6565b6101e86107ec565b6102026107f2565b61025c6004803603602081101561024c57600080fd5b50356001600160a01b0316610801565b005b61025c6004803603602081101561027457600080fd5b810190602081018135600160201b81111561028e57600080fd5b8201836020820111156102a057600080fd5b803590602001918460208302840111600160201b831117156102c157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610870945050505050565b6101e8610a40565b610202610a46565b6101cc610a55565b61025c6004803603604081101561032d57600080fd5b810190602081018135600160201b81111561034757600080fd5b82018360208201111561035957600080fd5b803590602001918460208302840111600160201b8311171561037a57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156103c957600080fd5b8201836020820111156103db57600080fd5b803590602001918460208302840111600160201b831117156103fc57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610a65945050505050565b61025c6004803603602081101561045057600080fd5b5035610bb0565b6101e86004803603602081101561046d57600080fd5b5035610c43565b6102026004803603602081101561048a57600080fd5b5035610c61565b6101e8610c88565b6101e8610c8e565b6101cc610c94565b61025c610ca4565b61025c600480360360208110156104c757600080fd5b50356001600160a01b0316610d84565b6101e8610df3565b6101cc600480360360208110156104f557600080fd5b50356001600160a01b0316610df9565b6101e86004803603606081101561051b57600080fd5b506001600160a01b0381351690602081013590604001351515610e0e565b6101e8610fcc565b61025c6004803603602081101561055757600080fd5b5035610fdc565b61025c6004803603604081101561057457600080fd5b81359190810190604081016020820135600160201b81111561059557600080fd5b8201836020820111156105a757600080fd5b803590602001918460208302840111600160201b831117156105c857600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061102e945050505050565b6101e8611135565b6101cc61113b565b61025c6004803603604081101561062c57600080fd5b810190602081018135600160201b81111561064657600080fd5b82018360208201111561065857600080fd5b803590602001918460208302840111600160201b8311171561067957600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156106c857600080fd5b8201836020820111156106da57600080fd5b803590602001918460208302840111600160201b831117156106fb57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061115f945050505050565b61025c611229565b61025c6004803603602081101561075757600080fd5b50351515611308565b61025c6004803603602081101561077657600080fd5b50356001600160a01b0316611373565b6101e86004803603602081101561079c57600080fd5b50356001600160a01b03166113e2565b6101e86113f4565b6102026113fc565b600c6020526000908152604090205460ff1681565b60055481565b6001546001600160a01b031681565b60065481565b61271081565b6000546001600160a01b031681565b6000546001600160a01b0316331461084e576040805162461bcd60e51b81526020600482015260156024820152600080516020611748833981519152604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6002546001600160a01b031633146108bd576040805162461bcd60e51b81526020600482015260186024820152600080516020611768833981519152604482015290519081900360640190fd5b4260045560005b8151811015610a3b5760008282815181106108db57fe5b6020026020010151905060005b6008811015610a3157600d5460088402820190811061090a5750505050610a3d565b600d8054602084029185831c63ffffffff16916000919060088902870190811061093057fe5b6000918252602082200154600e80546001600160a01b0390921693509060088a02880190811061095c57fe5b60009182526020822001549150610989826109838668327cb2734119d3b7a9601e1b61140b565b9061146d565b6001600160a01b0380851660009081526008602052604090208290556001549192501615610a1f576001546040805163e0409c7160e01b81526001600160a01b038681166004830152602482018590529151919092169163e0409c7191604480830192600092919082900301818387803b158015610a0657600080fd5b505af1158015610a1a573d6000803e3d6000fd5b505050505b5050600190940193506108e892505050565b50506001016108c4565b505b50565b60095481565b6003546001600160a01b031681565b600054600160a01b900460ff1681565b6002546001600160a01b03163314610ab2576040805162461bcd60e51b81526020600482015260186024820152600080516020611768833981519152604482015290519081900360640190fd5b60005b8251811015610ba7576000838281518110610acc57fe5b60200260200101519050828281518110610ae257fe5b6020908102919091018101516001600160a01b03808416600090815260089093526040909220556001541615610b9e5760015483516001600160a01b039091169063e0409c71908390869086908110610b3757fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015610b8557600080fd5b505af1158015610b99573d6000803e3d6000fd5b505050505b50600101610ab5565b50504260045550565b6000546001600160a01b03163314610bfd576040805162461bcd60e51b81526020600482015260156024820152600080516020611748833981519152604482015290519081900360640190fd5b610708811115610c3e5760405162461bcd60e51b81526004018080602001828103825260258152602001806117236025913960400191505060405180910390fd5b600555565b600e8181548110610c5057fe5b600091825260209091200154905081565b600d8181548110610c6e57fe5b6000918252602090912001546001600160a01b0316905081565b60045481565b61070881565b600054600160a81b900460ff1681565b336000908152600b602052604090205460ff16610cf6576040805162461bcd60e51b81526020600482015260186024820152600080516020611768833981519152604482015290519081900360640190fd5b336000908152600c602052604090205460ff16610d5a576040805162461bcd60e51b815260206004820152601e60248201527f466173745072696365466565643a20616c726561647920656e61626c65640000604482015290519081900360640190fd5b336000908152600c60205260409020805460ff19169055600a54610d7f9060016114ac565b600a55565b6003546001600160a01b03163314610dd1576040805162461bcd60e51b81526020600482015260186024820152600080516020611768833981519152604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60075481565b600b6020526000908152604090205460ff1681565b6000610e276005546004546114ee90919063ffffffff16565b421115610e35575081610fc5565b6001600160a01b03841660009081526008602052604090205480610e5c5783915050610fc5565b6000610e85612710610983610e7e6007546127106114ee90919063ffffffff16565b889061140b565b90506000610eb0612710610983610ea96007546127106114ac90919063ffffffff16565b899061140b565b9050610eba61113b565b15610f6b57808310158015610ecf5750818311155b15610f6b578415610f325782861115610f27576000610f0b612710610983610f046006546127106114ee90919063ffffffff16565b879061140b565b9050868111610f1a5780610f1c565b865b945050505050610fc5565b829350505050610fc5565b82861015610f27576000610f5c612710610983610f046006546127106114ac90919063ffffffff16565b9050868110610f1a5780610f1c565b8415610f9d5782861115610f8457859350505050610fc5565b818311610f915782610f93565b815b9350505050610fc5565b82861015610fb057859350505050610fc5565b808310610fbd5782610fbf565b805b93505050505b9392505050565b68327cb2734119d3b7a9601e1b81565b6000546001600160a01b03163314611029576040805162461bcd60e51b81526020600482015260156024820152600080516020611748833981519152604482015290519081900360640190fd5b600655565b6000546001600160a01b0316331461107b576040805162461bcd60e51b81526020600482015260156024820152600080516020611748833981519152604482015290519081900360640190fd5b600054600160a01b900460ff16156110c45760405162461bcd60e51b81526004018080602001828103825260228152602001806117a96022913960400191505060405180910390fd5b6000805460ff60a01b1916600160a01b17815560098390555b81518110156111305760008282815181106110f457fe5b6020908102919091018101516001600160a01b03166000908152600b90915260409020805460ff191660019081179091559190910190506110dd565b505050565b600a5481565b6000600954600a5410801561115a5750600054600160a81b900460ff16155b905090565b6000546001600160a01b031633146111ac576040805162461bcd60e51b81526020600482015260156024820152600080516020611748833981519152604482015290519081900360640190fd5b8051825114611202576040805162461bcd60e51b815260206004820152601e60248201527f466173745072696365466565643a20696e76616c6964206c656e677468730000604482015290519081900360640190fd5b815161121590600d906020850190611642565b50805161113090600e9060208401906116a7565b336000908152600b602052604090205460ff1661127b576040805162461bcd60e51b81526020600482015260186024820152600080516020611768833981519152604482015290519081900360640190fd5b336000908152600c602052604090205460ff16156112df576040805162461bcd60e51b815260206004820152601c60248201527b11985cdd141c9a58d9519959590e88185b1c9958591e481d9bdd195960221b604482015290519081900360640190fd5b336000908152600c60205260409020805460ff19166001908117909155600a54610d7f916114ee565b6000546001600160a01b03163314611355576040805162461bcd60e51b81526020600482015260156024820152600080516020611748833981519152604482015290519081900360640190fd5b60008054911515600160a81b0260ff60a81b19909216919091179055565b6000546001600160a01b031633146113c0576040805162461bcd60e51b81526020600482015260156024820152600080516020611748833981519152604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b60086020526000908152604090205481565b63ffffffff81565b6002546001600160a01b031681565b60008261141a57506000611467565b8282028284828161142757fe5b04146114645760405162461bcd60e51b81526004018080602001828103825260218152602001806117886021913960400191505060405180910390fd5b90505b92915050565b600061146483836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b815250611546565b600061146483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115e8565b600082820183811015611464576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b600081836115d25760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561159757818101518382015260200161157f565b50505050905090810190601f1680156115c45780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816115de57fe5b0495945050505050565b6000818484111561163a5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561159757818101518382015260200161157f565b505050900390565b828054828255906000526020600020908101928215611697579160200282015b8281111561169757825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611662565b506116a39291506116ee565b5090565b8280548282559060005260206000209081019282156116e2579160200282015b828111156116e25782518255916020019190600101906116c7565b506116a392915061170d565b5b808211156116a35780546001600160a01b03191681556001016116ef565b5b808211156116a3576000815560010161170e56fe466173745072696365466565643a20696e76616c6964205f70726963654475726174696f6e476f7665726e61626c653a20666f7262696464656e0000000000000000000000466173745072696365466565643a20666f7262696464656e0000000000000000536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77466173745072696365466565643a20616c726561647920696e697469616c697a6564a2646970667358221220112f48f21379d004d9c258b065b56693249625344ffbb7bba6779c623f60e6cf64736f6c634300060c0033466173745072696365466565643a20696e76616c6964205f70726963654475726174696f6e000000000000000000000000000000000000000000000000000000000000012c00000000000000000000000000000000000000000000000000000000000000fa0000000000000000000000004530b7de1958270a2376be192a24175d795e1b0700000000000000000000000067f1b9e91d7bb46556ba013c1b187c461e2a1ffd0000000000000000000000001ef8156b46e6f5a1973bff4975177fd13275ad59
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000012c00000000000000000000000000000000000000000000000000000000000000fa0000000000000000000000004530b7de1958270a2376be192a24175d795e1b0700000000000000000000000067f1b9e91d7bb46556ba013c1b187c461e2a1ffd0000000000000000000000001ef8156b46e6f5a1973bff4975177fd13275ad59
-----Decoded View---------------
Arg [0] : _priceDuration (uint256): 300
Arg [1] : _maxDeviationBasisPoints (uint256): 250
Arg [2] : _fastPriceEvents (address): 0x4530b7de1958270a2376be192a24175d795e1b07
Arg [3] : _admin (address): 0x67f1b9e91d7bb46556ba013c1b187c461e2a1ffd
Arg [4] : _tokenManager (address): 0x1ef8156b46e6f5a1973bff4975177fd13275ad59
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000000000000000000012c
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000fa
Arg [2] : 0000000000000000000000004530b7de1958270a2376be192a24175d795e1b07
Arg [3] : 00000000000000000000000067f1b9e91d7bb46556ba013c1b187c461e2a1ffd
Arg [4] : 0000000000000000000000001ef8156b46e6f5a1973bff4975177fd13275ad59
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.