Overview
S Balance
0 S
S Value
-More Info
Private Name Tags
ContractCreator
Latest 8 from a total of 8 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve Proposal | 2763376 | 20 hrs ago | IN | 0 S | 0.00077339 | ||||
Make Proposal | 2720396 | 27 hrs ago | IN | 0 S | 0.00222463 | ||||
Approve Proposal | 2040309 | 7 days ago | IN | 0 S | 0.00025421 | ||||
Make Proposal | 2010851 | 8 days ago | IN | 0 S | 0.00043027 | ||||
_accept Admin | 1859588 | 9 days ago | IN | 0 S | 0.00003518 | ||||
_become Contract... | 1734721 | 11 days ago | IN | 0 S | 0.00004363 | ||||
_set Pending Adm... | 1734700 | 11 days ago | IN | 0 S | 0.00005249 | ||||
_become Contract... | 1734690 | 11 days ago | IN | 0 S | 0.00004301 |
Loading...
Loading
Contract Name:
ImpermaxConfigManager
Compiler Version
v0.5.16+commit.9c3226ce
Optimization Enabled:
Yes with 999999 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
pragma solidity =0.5.16; pragma experimental ABIEncoderV2; interface IBorrowable { function reserveFactor() external view returns (uint); function borrowTracker() external view returns (address); function kinkUtilizationRate() external view returns (uint); function adjustSpeed() external view returns (uint); function RESERVE_FACTOR_MAX() external pure returns (uint); function KINK_UR_MIN() external pure returns (uint); function KINK_UR_MAX() external pure returns (uint); function ADJUST_SPEED_MIN() external pure returns (uint); function ADJUST_SPEED_MAX() external pure returns (uint); function _setReserveFactor(uint newReserveFactor) external; function _setKinkUtilizationRate(uint newKinkUtilizationRate) external; function _setAdjustSpeed(uint newAdjustSpeed) external; function _setBorrowTracker(address newBorrowTracker) external; } interface ICollateral { function safetyMarginSqrt() external view returns (uint); function liquidationIncentive() external view returns (uint); function liquidationFee() external view returns (uint); function SAFETY_MARGIN_SQRT_MIN() external pure returns (uint); function SAFETY_MARGIN_SQRT_MAX() external pure returns (uint); function LIQUIDATION_INCENTIVE_MIN() external pure returns (uint); function LIQUIDATION_INCENTIVE_MAX() external pure returns (uint); function LIQUIDATION_FEE_MAX() external pure returns (uint); function _setSafetyMarginSqrt(uint newSafetyMarginSqrt) external; function _setLiquidationIncentive(uint newLiquidationIncentive) external; function _setLiquidationFee(uint newLiquidationFee) external; } interface IFactory { function admin() external view returns (address); function pendingAdmin() external view returns (address); function reservesAdmin() external view returns (address); function reservesPendingAdmin() external view returns (address); function reservesManager() external view returns (address); function getLendingPool(address uniswapV2Pair) external view returns ( bool initialized, uint24 lendingPoolId, address collateral, address borrowable0, address borrowable1 ); function allLendingPools(uint) external view returns (address uniswapV2Pair); function allLendingPoolsLength() external view returns (uint); function _setPendingAdmin(address newPendingAdmin) external; function _acceptAdmin() external; function _setReservesPendingAdmin(address newPendingAdmin) external; function _acceptReservesAdmin() external; function _setReservesManager(address newReservesManager) external; } contract Ownable { address public admin; address public pendingAdmin; event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin); event NewAdmin(address oldAdmin, address newAdmin); constructor(address _admin) public { admin = _admin; emit NewAdmin(address(0), admin); } function _setPendingAdmin(address newPendingAdmin) external onlyOwner { address oldPendingAdmin = pendingAdmin; pendingAdmin = newPendingAdmin; emit NewPendingAdmin(oldPendingAdmin, newPendingAdmin); } function _acceptAdmin() external { require(msg.sender == pendingAdmin, "ImpermaxOwnable: UNAUTHORIZED"); address oldAdmin = admin; address oldPendingAdmin = pendingAdmin; admin = pendingAdmin; pendingAdmin = address(0); emit NewAdmin(oldAdmin, admin); emit NewPendingAdmin(oldPendingAdmin, address(0)); } modifier onlyOwner() { require(msg.sender == admin, "ImpermaxOwnable: UNAUTHORIZED"); _; } } interface IImpermaxWhitelist { enum State { Unlisted, Listed, Deprecated, Blacklisted } function pairsState(address factory, address pair) external view returns(State); event ChangedState(address indexed factory, address indexed pair, State state); function setPairState(address factory, address pair, State state) external; } contract ImpermaxWhitelist is Ownable, IImpermaxWhitelist { mapping(address => mapping(address => State)) public pairsState; constructor(address _admin) public Ownable(_admin) {} function setPairState(address factory, address pair, State state) onlyOwner external { pairsState[factory][pair] = state; emit ChangedState(factory, pair, state); } } interface IImpermaxConfigManager { struct CollateralConfig { uint safetyMarginSqrt; uint liquidationIncentive; uint liquidationFee; } struct BorrowableConfig { uint reserveFactor; uint kinkUtilizationRate; uint adjustSpeed; address borrowTracker; } struct PairConfig { address factory; address pair; CollateralConfig collateralConfig; BorrowableConfig borrowable0Config; BorrowableConfig borrowable1Config; IImpermaxWhitelist.State whitelistState; } event NewProposal(uint indexed index, PairConfig[] proposal); event RejectedProposal(uint indexed index, PairConfig[] proposal); event ApprovedProposal(uint indexed index, PairConfig[] proposal); event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin); event NewAdmin(address oldAdmin, address newAdmin); event BecomeContractAdmin(address factory); event TransferContractOwnership(address factory, address newPendingAdmin); function admin() external view returns(address); function pendingAdmin() external view returns(address); function proposals(uint, uint) external view returns(PairConfig memory); function proposalsLength() external view returns(uint); function getProposal(uint) external view returns (PairConfig[] memory); function whitelist() external view returns(address); function makeProposal(PairConfig[] calldata proposal) external; function rejectProposal(uint index) external; function approveProposal(uint index) external; function _setPendingAdmin(address newPendingAdmin) external; function _acceptAdmin() external; function _becomeContractAdmin(address ownableContract) external; function _setContractAdmin(address ownableContract, address newPendingAdmin) external; } contract ImpermaxConfigManager is IImpermaxConfigManager, Ownable { mapping(uint => PairConfig[]) public proposals; uint public proposalsLength; function getProposal(uint index) external view returns (PairConfig[] memory) { return proposals[index]; } address public whitelist; constructor(address _admin, address _whitelist) public Ownable(_admin) { whitelist = _whitelist; } /* Internal */ function _checkSetting(uint parameter, uint min, uint max) internal pure { require(parameter >= min, "ImpermaxConfigManager: INVALID_SETTING"); require(parameter <= max, "ImpermaxConfigManager: INVALID_SETTING"); } function _checkCSetting(address collateral, CollateralConfig memory config) internal pure { _checkSetting(config.safetyMarginSqrt, ICollateral(collateral).SAFETY_MARGIN_SQRT_MIN(), ICollateral(collateral).SAFETY_MARGIN_SQRT_MAX()); _checkSetting(config.liquidationIncentive, ICollateral(collateral).LIQUIDATION_INCENTIVE_MIN(), ICollateral(collateral).LIQUIDATION_INCENTIVE_MAX()); _checkSetting(config.liquidationFee, 0, ICollateral(collateral).LIQUIDATION_FEE_MAX()); } function _checkBSetting(address borrowable, BorrowableConfig memory config) internal pure { _checkSetting(config.reserveFactor, 0, IBorrowable(borrowable).RESERVE_FACTOR_MAX()); _checkSetting(config.kinkUtilizationRate, IBorrowable(borrowable).KINK_UR_MIN(), IBorrowable(borrowable).KINK_UR_MAX()); _checkSetting(config.adjustSpeed, IBorrowable(borrowable).ADJUST_SPEED_MIN(), IBorrowable(borrowable).ADJUST_SPEED_MAX()); } function _removeProposal(uint index) internal { delete proposals[index]; } function _checkPending(uint index) internal view { require(proposals[index][0].factory != address(0), "ImpermaxConfigManager: NOT_PENDING"); } function _actualCollateralConfig(address collateral) internal view returns (CollateralConfig memory oldConfig) { oldConfig.safetyMarginSqrt = ICollateral(collateral).safetyMarginSqrt(); oldConfig.liquidationIncentive = ICollateral(collateral).liquidationIncentive(); oldConfig.liquidationFee = ICollateral(collateral).liquidationFee(); } function _actualBorrowableConfig(address borrowable) internal view returns (BorrowableConfig memory oldConfig) { oldConfig.reserveFactor = IBorrowable(borrowable).reserveFactor(); oldConfig.kinkUtilizationRate = IBorrowable(borrowable).kinkUtilizationRate(); oldConfig.adjustSpeed = IBorrowable(borrowable).adjustSpeed(); oldConfig.borrowTracker = IBorrowable(borrowable).borrowTracker(); } function _setCollateralConfig(address collateral, CollateralConfig memory newConfig) internal { CollateralConfig memory oldConfig = _actualCollateralConfig(collateral); if(newConfig.safetyMarginSqrt != oldConfig.safetyMarginSqrt) ICollateral(collateral)._setSafetyMarginSqrt(newConfig.safetyMarginSqrt); if(newConfig.liquidationIncentive != oldConfig.liquidationIncentive) ICollateral(collateral)._setLiquidationIncentive(newConfig.liquidationIncentive); if(newConfig.liquidationFee != oldConfig.liquidationFee) ICollateral(collateral)._setLiquidationFee(newConfig.liquidationFee); } function _setBorrowableConfig(address borrowable, BorrowableConfig memory newConfig) internal { BorrowableConfig memory oldConfig = _actualBorrowableConfig(borrowable); if(newConfig.reserveFactor != oldConfig.reserveFactor) IBorrowable(borrowable)._setReserveFactor(newConfig.reserveFactor); if(newConfig.kinkUtilizationRate != oldConfig.kinkUtilizationRate) IBorrowable(borrowable)._setKinkUtilizationRate(newConfig.kinkUtilizationRate); if(newConfig.adjustSpeed != oldConfig.adjustSpeed) IBorrowable(borrowable)._setAdjustSpeed(newConfig.adjustSpeed); if(newConfig.borrowTracker != oldConfig.borrowTracker) IBorrowable(borrowable)._setBorrowTracker(newConfig.borrowTracker); } /* External */ function makeProposal(PairConfig[] calldata proposal) external nonReentrant { for(uint i = 0; i < proposal.length; i++) { PairConfig memory config = proposal[i]; (,, address collateral, address borrowable0, address borrowable1) = IFactory(config.factory).getLendingPool(config.pair); _checkCSetting(collateral, config.collateralConfig); _checkBSetting(borrowable0, config.borrowable0Config); _checkBSetting(borrowable1, config.borrowable1Config); proposals[proposalsLength].push(config); } emit NewProposal(proposalsLength, proposal); proposalsLength++; } function rejectProposal(uint index) external onlyOwner nonReentrant { _checkPending(index); emit RejectedProposal(index, proposals[index]); _removeProposal(index); } function approveProposal(uint index) external onlyOwner nonReentrant { _checkPending(index); PairConfig[] memory proposal = proposals[index]; uint length = proposal.length; for(uint i = 0; i < length; i++) { PairConfig memory config = proposal[i]; (,, address collateral, address borrowable0, address borrowable1) = IFactory(config.factory).getLendingPool(config.pair); _setCollateralConfig(collateral, config.collateralConfig); _setBorrowableConfig(borrowable0, config.borrowable0Config); _setBorrowableConfig(borrowable1, config.borrowable1Config); IImpermaxWhitelist(whitelist).setPairState(config.factory, config.pair, config.whitelistState); } emit ApprovedProposal(index, proposal); _removeProposal(index); } /* Ownership management */ function _becomeContractAdmin(address ownableContract) external onlyOwner nonReentrant { Ownable(ownableContract)._acceptAdmin(); emit BecomeContractAdmin(ownableContract); } function _setContractAdmin(address ownableContract, address newPendingAdmin) external onlyOwner nonReentrant { Ownable(ownableContract)._setPendingAdmin(newPendingAdmin); emit TransferContractOwnership(ownableContract, newPendingAdmin); } /* Utils */ // prevents a contract from calling itself, directly or indirectly. bool internal _notEntered = true; modifier nonReentrant() { require(_notEntered, "ImpermaxConfigManager: REENTERED"); _notEntered = false; _; _notEntered = true; } }
{ "optimizer": { "enabled": true, "runs": 999999 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_admin","type":"address"},{"internalType":"address","name":"_whitelist","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"},{"components":[{"internalType":"address","name":"factory","type":"address"},{"internalType":"address","name":"pair","type":"address"},{"components":[{"internalType":"uint256","name":"safetyMarginSqrt","type":"uint256"},{"internalType":"uint256","name":"liquidationIncentive","type":"uint256"},{"internalType":"uint256","name":"liquidationFee","type":"uint256"}],"internalType":"struct IImpermaxConfigManager.CollateralConfig","name":"collateralConfig","type":"tuple"},{"components":[{"internalType":"uint256","name":"reserveFactor","type":"uint256"},{"internalType":"uint256","name":"kinkUtilizationRate","type":"uint256"},{"internalType":"uint256","name":"adjustSpeed","type":"uint256"},{"internalType":"address","name":"borrowTracker","type":"address"}],"internalType":"struct IImpermaxConfigManager.BorrowableConfig","name":"borrowable0Config","type":"tuple"},{"components":[{"internalType":"uint256","name":"reserveFactor","type":"uint256"},{"internalType":"uint256","name":"kinkUtilizationRate","type":"uint256"},{"internalType":"uint256","name":"adjustSpeed","type":"uint256"},{"internalType":"address","name":"borrowTracker","type":"address"}],"internalType":"struct IImpermaxConfigManager.BorrowableConfig","name":"borrowable1Config","type":"tuple"},{"internalType":"enum IImpermaxWhitelist.State","name":"whitelistState","type":"uint8"}],"indexed":false,"internalType":"struct IImpermaxConfigManager.PairConfig[]","name":"proposal","type":"tuple[]"}],"name":"ApprovedProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"factory","type":"address"}],"name":"BecomeContractAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"NewAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldPendingAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"NewPendingAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"},{"components":[{"internalType":"address","name":"factory","type":"address"},{"internalType":"address","name":"pair","type":"address"},{"components":[{"internalType":"uint256","name":"safetyMarginSqrt","type":"uint256"},{"internalType":"uint256","name":"liquidationIncentive","type":"uint256"},{"internalType":"uint256","name":"liquidationFee","type":"uint256"}],"internalType":"struct IImpermaxConfigManager.CollateralConfig","name":"collateralConfig","type":"tuple"},{"components":[{"internalType":"uint256","name":"reserveFactor","type":"uint256"},{"internalType":"uint256","name":"kinkUtilizationRate","type":"uint256"},{"internalType":"uint256","name":"adjustSpeed","type":"uint256"},{"internalType":"address","name":"borrowTracker","type":"address"}],"internalType":"struct IImpermaxConfigManager.BorrowableConfig","name":"borrowable0Config","type":"tuple"},{"components":[{"internalType":"uint256","name":"reserveFactor","type":"uint256"},{"internalType":"uint256","name":"kinkUtilizationRate","type":"uint256"},{"internalType":"uint256","name":"adjustSpeed","type":"uint256"},{"internalType":"address","name":"borrowTracker","type":"address"}],"internalType":"struct IImpermaxConfigManager.BorrowableConfig","name":"borrowable1Config","type":"tuple"},{"internalType":"enum IImpermaxWhitelist.State","name":"whitelistState","type":"uint8"}],"indexed":false,"internalType":"struct IImpermaxConfigManager.PairConfig[]","name":"proposal","type":"tuple[]"}],"name":"NewProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"},{"components":[{"internalType":"address","name":"factory","type":"address"},{"internalType":"address","name":"pair","type":"address"},{"components":[{"internalType":"uint256","name":"safetyMarginSqrt","type":"uint256"},{"internalType":"uint256","name":"liquidationIncentive","type":"uint256"},{"internalType":"uint256","name":"liquidationFee","type":"uint256"}],"internalType":"struct IImpermaxConfigManager.CollateralConfig","name":"collateralConfig","type":"tuple"},{"components":[{"internalType":"uint256","name":"reserveFactor","type":"uint256"},{"internalType":"uint256","name":"kinkUtilizationRate","type":"uint256"},{"internalType":"uint256","name":"adjustSpeed","type":"uint256"},{"internalType":"address","name":"borrowTracker","type":"address"}],"internalType":"struct IImpermaxConfigManager.BorrowableConfig","name":"borrowable0Config","type":"tuple"},{"components":[{"internalType":"uint256","name":"reserveFactor","type":"uint256"},{"internalType":"uint256","name":"kinkUtilizationRate","type":"uint256"},{"internalType":"uint256","name":"adjustSpeed","type":"uint256"},{"internalType":"address","name":"borrowTracker","type":"address"}],"internalType":"struct IImpermaxConfigManager.BorrowableConfig","name":"borrowable1Config","type":"tuple"},{"internalType":"enum IImpermaxWhitelist.State","name":"whitelistState","type":"uint8"}],"indexed":false,"internalType":"struct IImpermaxConfigManager.PairConfig[]","name":"proposal","type":"tuple[]"}],"name":"RejectedProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"factory","type":"address"},{"indexed":false,"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"TransferContractOwnership","type":"event"},{"constant":false,"inputs":[],"name":"_acceptAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"ownableContract","type":"address"}],"name":"_becomeContractAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"ownableContract","type":"address"},{"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"_setContractAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"_setPendingAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"approveProposal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getProposal","outputs":[{"components":[{"internalType":"address","name":"factory","type":"address"},{"internalType":"address","name":"pair","type":"address"},{"components":[{"internalType":"uint256","name":"safetyMarginSqrt","type":"uint256"},{"internalType":"uint256","name":"liquidationIncentive","type":"uint256"},{"internalType":"uint256","name":"liquidationFee","type":"uint256"}],"internalType":"struct IImpermaxConfigManager.CollateralConfig","name":"collateralConfig","type":"tuple"},{"components":[{"internalType":"uint256","name":"reserveFactor","type":"uint256"},{"internalType":"uint256","name":"kinkUtilizationRate","type":"uint256"},{"internalType":"uint256","name":"adjustSpeed","type":"uint256"},{"internalType":"address","name":"borrowTracker","type":"address"}],"internalType":"struct IImpermaxConfigManager.BorrowableConfig","name":"borrowable0Config","type":"tuple"},{"components":[{"internalType":"uint256","name":"reserveFactor","type":"uint256"},{"internalType":"uint256","name":"kinkUtilizationRate","type":"uint256"},{"internalType":"uint256","name":"adjustSpeed","type":"uint256"},{"internalType":"address","name":"borrowTracker","type":"address"}],"internalType":"struct IImpermaxConfigManager.BorrowableConfig","name":"borrowable1Config","type":"tuple"},{"internalType":"enum IImpermaxWhitelist.State","name":"whitelistState","type":"uint8"}],"internalType":"struct IImpermaxConfigManager.PairConfig[]","name":"","type":"tuple[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"components":[{"internalType":"address","name":"factory","type":"address"},{"internalType":"address","name":"pair","type":"address"},{"components":[{"internalType":"uint256","name":"safetyMarginSqrt","type":"uint256"},{"internalType":"uint256","name":"liquidationIncentive","type":"uint256"},{"internalType":"uint256","name":"liquidationFee","type":"uint256"}],"internalType":"struct IImpermaxConfigManager.CollateralConfig","name":"collateralConfig","type":"tuple"},{"components":[{"internalType":"uint256","name":"reserveFactor","type":"uint256"},{"internalType":"uint256","name":"kinkUtilizationRate","type":"uint256"},{"internalType":"uint256","name":"adjustSpeed","type":"uint256"},{"internalType":"address","name":"borrowTracker","type":"address"}],"internalType":"struct IImpermaxConfigManager.BorrowableConfig","name":"borrowable0Config","type":"tuple"},{"components":[{"internalType":"uint256","name":"reserveFactor","type":"uint256"},{"internalType":"uint256","name":"kinkUtilizationRate","type":"uint256"},{"internalType":"uint256","name":"adjustSpeed","type":"uint256"},{"internalType":"address","name":"borrowTracker","type":"address"}],"internalType":"struct IImpermaxConfigManager.BorrowableConfig","name":"borrowable1Config","type":"tuple"},{"internalType":"enum IImpermaxWhitelist.State","name":"whitelistState","type":"uint8"}],"internalType":"struct IImpermaxConfigManager.PairConfig[]","name":"proposal","type":"tuple[]"}],"name":"makeProposal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"proposals","outputs":[{"internalType":"address","name":"factory","type":"address"},{"internalType":"address","name":"pair","type":"address"},{"components":[{"internalType":"uint256","name":"safetyMarginSqrt","type":"uint256"},{"internalType":"uint256","name":"liquidationIncentive","type":"uint256"},{"internalType":"uint256","name":"liquidationFee","type":"uint256"}],"internalType":"struct IImpermaxConfigManager.CollateralConfig","name":"collateralConfig","type":"tuple"},{"components":[{"internalType":"uint256","name":"reserveFactor","type":"uint256"},{"internalType":"uint256","name":"kinkUtilizationRate","type":"uint256"},{"internalType":"uint256","name":"adjustSpeed","type":"uint256"},{"internalType":"address","name":"borrowTracker","type":"address"}],"internalType":"struct IImpermaxConfigManager.BorrowableConfig","name":"borrowable0Config","type":"tuple"},{"components":[{"internalType":"uint256","name":"reserveFactor","type":"uint256"},{"internalType":"uint256","name":"kinkUtilizationRate","type":"uint256"},{"internalType":"uint256","name":"adjustSpeed","type":"uint256"},{"internalType":"address","name":"borrowTracker","type":"address"}],"internalType":"struct IImpermaxConfigManager.BorrowableConfig","name":"borrowable1Config","type":"tuple"},{"internalType":"enum IImpermaxWhitelist.State","name":"whitelistState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"proposalsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"rejectProposal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelist","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040526004805460ff60a01b1916600160a01b1790553480156200002457600080fd5b5060405162003078380380620030788339810160408190526200004791620000e1565b600080546001600160a01b0319166001600160a01b038481169190911780835560405185937ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc936200009e9391929116906200013c565b60405180910390a150600480546001600160a01b0319166001600160a01b039290921691909117905550620001a2565b8051620000db8162000188565b92915050565b60008060408385031215620000f557600080fd5b6000620001038585620000ce565b92505060206200011685828601620000ce565b9150509250929050565b6200012b8162000174565b82525050565b6200012b8162000162565b604081016200014c828562000120565b6200015b602083018462000131565b9392505050565b60006001600160a01b038216620000db565b6000620000db826000620000db8262000162565b620001938162000162565b81146200019f57600080fd5b50565b612ec680620001b26000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c8063b71d1a0c1161008c578063c7f758a811610066578063c7f758a8146101a5578063d5b9a422146101c5578063e9c714f2146101d8578063f851a440146101e0576100df565b8063b71d1a0c1461015a578063bc28d8781461016d578063c2cfee2714610180576100df565b80635c43b21f116100bd5780635c43b21f1461012c57806393e59dc11461013f57806398951b5614610147576100df565b806326782247146100e457806344c7c86714610102578063577398e014610117575b600080fd5b6100ec6101e8565b6040516100f99190612bcc565b60405180910390f35b61010a610204565b6040516100f99190612d10565b61012a610125366004612462565b61020a565b005b61012a61013a3660046123e4565b61057d565b6100ec610740565b61012a610155366004612538565b61075c565b61012a6101683660046123e4565b610bab565b61012a61017b366004612538565b610c80565b61019361018e366004612574565b610deb565b6040516100f996959493929190612c3f565b6101b86101b3366004612538565b610ed0565b6040516100f99190612cae565b61012a6101d3366004612428565b611030565b61012a6111fb565b6100ec61130f565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b60045474010000000000000000000000000000000000000000900460ff16610267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025e90612cd0565b60405180910390fd5b600480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16905560005b818110156104f4576102a2612056565b8383838181106102ae57fe5b90506101c002018036036102c59190810190612519565b90506000806000836000015173ffffffffffffffffffffffffffffffffffffffff16630572bf5f85602001516040518263ffffffff1660e01b815260040161030d9190612bcc565b60a06040518083038186803b15801561032557600080fd5b505afa158015610339573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061035d91908101906124a4565b945094509450505061037383856040015161132b565b610381828560600151611554565b61038f818560800151611554565b60038054600090815260026020818152604080842080546001808201808455928752958490208b51600e9092020180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff9384161782558c860151828901805483169185169190911790558c85015180519783019790975586860151828a01559584015160048201556060808d015180516005840155808701516006840155808601516007840155810151600883018054891691851691909117905560808d01518051600984015595860151600a83015593850151600b8201559390920151600c8401805490951692169190911790925560a0880151600d8201805493958a959394929391927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016919084908111156104dc57fe5b02179055505060019096019550610292945050505050565b506003547ff6825e485a6eff2c9dce46a91f9d63255d3aec43c91d0acda3562870d9da10988383604051610529929190612c9c565b60405180910390a25050600380546001019055600480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b60005473ffffffffffffffffffffffffffffffffffffffff1633146105ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025e90612ce0565b60045474010000000000000000000000000000000000000000900460ff16610622576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025e90612cd0565b600480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff168155604080517fe9c714f2000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff84169263e9c714f29280820192600092909182900301818387803b1580156106af57600080fd5b505af11580156106c3573d6000803e3d6000fd5b505050507fceea085b6a1fe3e72468635024fe388adab2819b73f8274fbcdc2e74de3f42c6816040516106f69190612bcc565b60405180910390a150600480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b60045473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1633146107ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025e90612ce0565b60045474010000000000000000000000000000000000000000900460ff16610801576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025e90612cd0565b600480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690556108328161173c565b606060026000838152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b828210156109865760008481526020908190206040805160c081018252600e8602909201805473ffffffffffffffffffffffffffffffffffffffff90811684526001820154811684860152825160608082018552600284015482526003808501548389015260048501548387015286860192909252845160808082018752600586015482526006860154828a01526007860154828801526008860154851682840152828801919091528551808201875260098601548152600a86015498810198909852600b85015495880195909552600c8401549092169186019190915291830193909352600d83015491929160a084019160ff9091169081111561096857fe5b600381111561097357fe5b8152505081526020019060010190610867565b5050825192935060009150505b81811015610b25576109a3612056565b8382815181106109af57fe5b602002602001015190506000806000836000015173ffffffffffffffffffffffffffffffffffffffff16630572bf5f85602001516040518263ffffffff1660e01b81526004016109ff9190612bcc565b60a06040518083038186803b158015610a1757600080fd5b505afa158015610a2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a4f91908101906124a4565b9450945094505050610a658385604001516117b6565b610a7382856060015161198e565b610a8181856080015161198e565b600480548551602087015160a08801516040517f7306447100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90941694637306447194610ae39493929101612c17565b600060405180830381600087803b158015610afd57600080fd5b505af1158015610b11573d6000803e3d6000fd5b505060019096019550610993945050505050565b50827f610e19f6ab817e621321124f168345ea2f449d8efb6aa5e40758807593f2c27d83604051610b569190612cae565b60405180910390a2610b6783611bf2565b5050600480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905550565b60005473ffffffffffffffffffffffffffffffffffffffff163314610bfc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025e90612ce0565b6001805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff00000000000000000000000000000000000000008316179092556040519116907fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a990610c749083908590612bda565b60405180910390a15050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610cd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025e90612ce0565b60045474010000000000000000000000000000000000000000900460ff16610d25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025e90612cd0565b600480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff169055610d568161173c565b807f19c11fd3d8c60fd3cc0ad208fb999a4b1fd892181a1e6c0d44e19c147a29ab8360026000848152602001908152602001600020604051610d989190612cbf565b60405180910390a2610da981611bf2565b50600480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b60026020528160005260406000208181548110610e0457fe5b6000918252602091829020600e9091020180546001820154604080516060808201835260028601548252600386015482880152600486015482840152825160808082018552600588015482526006880154828a0152600788015482860152600888015473ffffffffffffffffffffffffffffffffffffffff908116838501528551918201865260098901548252600a89015499820199909952600b88015494810194909452600c870154881691840191909152600d909501549386169750919094169450929060ff1686565b606060026000838152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b828210156110245760008481526020908190206040805160c081018252600e8602909201805473ffffffffffffffffffffffffffffffffffffffff90811684526001820154811684860152825160608082018552600284015482526003808501548389015260048501548387015286860192909252845160808082018752600586015482526006860154828a01526007860154828801526008860154851682840152828801919091528551808201875260098601548152600a86015498810198909852600b85015495880195909552600c8401549092169186019190915291830193909352600d83015491929160a084019160ff9091169081111561100657fe5b600381111561101157fe5b8152505081526020019060010190610f05565b5050505090505b919050565b60005473ffffffffffffffffffffffffffffffffffffffff163314611081576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025e90612ce0565b60045474010000000000000000000000000000000000000000900460ff166110d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025e90612cd0565b600480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1681556040517fb71d1a0c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169163b71d1a0c9161114d91859101612bcc565b600060405180830381600087803b15801561116757600080fd5b505af115801561117b573d6000803e3d6000fd5b505050507fcf46bd245e8c9192874bbb1cd18f3cfe24d39e59d79dec85790a459e81f99a8b82826040516111b0929190612bda565b60405180910390a15050600480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b60015473ffffffffffffffffffffffffffffffffffffffff16331461124c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025e90612ce0565b600080546001805473ffffffffffffffffffffffffffffffffffffffff8082167fffffffffffffffffffffffff00000000000000000000000000000000000000008086168217968790559092169092556040519282169390927ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc926112d5928692911690612bda565b60405180910390a17fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a9816000604051610c74929190612bfc565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b61143481600001518373ffffffffffffffffffffffffffffffffffffffff16630fb60fef6040518163ffffffff1660e01b815260040160206040518083038186803b15801561137957600080fd5b505afa15801561138d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113b19190810190612556565b8473ffffffffffffffffffffffffffffffffffffffff1663d490e7e06040518163ffffffff1660e01b815260040160206040518083038186803b1580156113f757600080fd5b505afa15801561140b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061142f9190810190612556565b611c09565b61150081602001518373ffffffffffffffffffffffffffffffffffffffff1663bc9bd12a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561148257600080fd5b505afa158015611496573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114ba9190810190612556565b8473ffffffffffffffffffffffffffffffffffffffff1663afc8276c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156113f757600080fd5b611550816040015160008473ffffffffffffffffffffffffffffffffffffffff166333fabfd16040518163ffffffff1660e01b815260040160206040518083038186803b1580156113f757600080fd5b5050565b6115a4816000015160008473ffffffffffffffffffffffffffffffffffffffff1663c72f3fbb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156113f757600080fd5b61167081602001518373ffffffffffffffffffffffffffffffffffffffff16632374e8a96040518163ffffffff1660e01b815260040160206040518083038186803b1580156115f257600080fd5b505afa158015611606573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061162a9190810190612556565b8473ffffffffffffffffffffffffffffffffffffffff1663685440656040518163ffffffff1660e01b815260040160206040518083038186803b1580156113f757600080fd5b61155081604001518373ffffffffffffffffffffffffffffffffffffffff1663075f4e7f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156116be57600080fd5b505afa1580156116d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116f69190810190612556565b8473ffffffffffffffffffffffffffffffffffffffff1663253c24f36040518163ffffffff1660e01b815260040160206040518083038186803b1580156113f757600080fd5b60008181526002602052604081208054829061175457fe5b60009182526020909120600e909102015473ffffffffffffffffffffffffffffffffffffffff1614156117b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025e90612d00565b50565b6117be61209b565b6117c783611c7d565b80518351919250146118595781516040517fbb6ff38600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169163bb6ff386916118269190600401612d10565b600060405180830381600087803b15801561184057600080fd5b505af1158015611854573d6000803e3d6000fd5b505050505b80602001518260200151146118f15760208201516040517f4fd42e1700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851691634fd42e17916118be9190600401612d10565b600060405180830381600087803b1580156118d857600080fd5b505af11580156118ec573d6000803e3d6000fd5b505050505b80604001518260400151146119895760408083015190517f1ef63a7900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851691631ef63a79916119569190600401612d10565b600060405180830381600087803b15801561197057600080fd5b505af1158015611984573d6000803e3d6000fd5b505050505b505050565b6119966120bc565b61199f83611e1b565b8051835191925014611a315781516040517ffca7820b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169163fca7820b916119fe9190600401612d10565b600060405180830381600087803b158015611a1857600080fd5b505af1158015611a2c573d6000803e3d6000fd5b505050505b8060200151826020015114611ac95760208201516040517f9292b03200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851691639292b03291611a969190600401612d10565b600060405180830381600087803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b505050505b8060400151826040015114611b615760408083015190517f27549a0b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516916327549a0b91611b2e9190600401612d10565b600060405180830381600087803b158015611b4857600080fd5b505af1158015611b5c573d6000803e3d6000fd5b505050505b806060015173ffffffffffffffffffffffffffffffffffffffff16826060015173ffffffffffffffffffffffffffffffffffffffff16146119895760608201516040517f3554282200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516916335542822916119569190600401612bcc565b60008181526002602052604081206117b3916120fa565b81831015611c43576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025e90612cf0565b80831115611989576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025e90612cf0565b611c8561209b565b8173ffffffffffffffffffffffffffffffffffffffff1663356c571f6040518163ffffffff1660e01b815260040160206040518083038186803b158015611ccb57600080fd5b505afa158015611cdf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d039190810190612556565b8160000181815250508173ffffffffffffffffffffffffffffffffffffffff16638c765e946040518163ffffffff1660e01b815260040160206040518083038186803b158015611d5257600080fd5b505afa158015611d66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d8a9190810190612556565b8160200181815250508173ffffffffffffffffffffffffffffffffffffffff1663a36a36306040518163ffffffff1660e01b815260040160206040518083038186803b158015611dd957600080fd5b505afa158015611ded573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e119190810190612556565b6040820152919050565b611e236120bc565b8173ffffffffffffffffffffffffffffffffffffffff16634322b7146040518163ffffffff1660e01b815260040160206040518083038186803b158015611e6957600080fd5b505afa158015611e7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611ea19190810190612556565b8160000181815250508173ffffffffffffffffffffffffffffffffffffffff16631aebf12f6040518163ffffffff1660e01b815260040160206040518083038186803b158015611ef057600080fd5b505afa158015611f04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f289190810190612556565b8160200181815250508173ffffffffffffffffffffffffffffffffffffffff16632d5231d36040518163ffffffff1660e01b815260040160206040518083038186803b158015611f7757600080fd5b505afa158015611f8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611faf9190810190612556565b8160400181815250508173ffffffffffffffffffffffffffffffffffffffff1663559572206040518163ffffffff1660e01b815260040160206040518083038186803b158015611ffe57600080fd5b505afa158015612012573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612036919081019061240a565b73ffffffffffffffffffffffffffffffffffffffff166060820152919050565b6040805160c0810182526000808252602082015290810161207561209b565b81526020016120826120bc565b815260200161208f6120bc565b81526020016000905290565b60405180606001604052806000815260200160008152602001600081525090565b6040518060800160405280600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b50805460008255600e02906000526020600020908101906117b391906121e091905b808211156121dc5780547fffffffffffffffffffffffff000000000000000000000000000000000000000090811682556001820180548216905560006002830181905560038301819055600483018190556005830181905560068301819055600783018190556008830180548316905560098301819055600a8301819055600b830155600c820180549091169055600d810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600e0161211c565b5090565b90565b80356121ee81612e47565b92915050565b80516121ee81612e47565b60008083601f84011261221157600080fd5b50813567ffffffffffffffff81111561222957600080fd5b602083019150836101c082028301111561224257600080fd5b9250929050565b80516121ee81612e5b565b80356121ee81612e64565b60006080828403121561227157600080fd5b61227b6080612d1e565b9050600061228984846123ce565b825250602061229a848483016123ce565b60208301525060406122ae848285016123ce565b60408301525060606122c2848285016121e3565b60608301525092915050565b6000606082840312156122e057600080fd5b6122ea6060612d1e565b905060006122f884846123ce565b8252506020612309848483016123ce565b602083015250604061231d848285016123ce565b60408301525092915050565b60006101c0828403121561233c57600080fd5b61234660c0612d1e565b9050600061235484846121e3565b8252506020612365848483016121e3565b6020830152506040612379848285016122ce565b60408301525060a061238d8482850161225f565b6060830152506101206123a28482850161225f565b6080830152506101a06123b784828501612254565b60a08301525092915050565b80516121ee81612e71565b80356121ee81612e7a565b80516121ee81612e7a565b6000602082840312156123f657600080fd5b600061240284846121e3565b949350505050565b60006020828403121561241c57600080fd5b600061240284846121f4565b6000806040838503121561243b57600080fd5b600061244785856121e3565b9250506020612458858286016121e3565b9150509250929050565b6000806020838503121561247557600080fd5b823567ffffffffffffffff81111561248c57600080fd5b612498858286016121ff565b92509250509250929050565b600080600080600060a086880312156124bc57600080fd5b60006124c88888612249565b95505060206124d9888289016123c3565b94505060406124ea888289016121f4565b93505060606124fb888289016121f4565b925050608061250c888289016121f4565b9150509295509295909350565b60006101c0828403121561252c57600080fd5b60006124028484612329565b60006020828403121561254a57600080fd5b600061240284846123ce565b60006020828403121561256857600080fd5b600061240284846123d9565b6000806040838503121561258757600080fd5b600061259385856123ce565b9250506020612458858286016123ce565b60006125b08383612a1f565b50506101c00190565b60006125b08383612ac3565b60006125b08383612b36565b6125da81612de3565b82525050565b6125da81612dc1565b60006125f58385612d6c565b9350612600826121e0565b8060005b858110156126365761261682846121dc565b61262088826125a4565b975061262b83612d5f565b925050600101612604565b509495945050505050565b600061264c82612d57565b6126568185612d6c565b935061266183612d45565b8060005b8381101561263657815161267988826125b9565b975061268483612d45565b925050600101612665565b600061269a82612d5b565b6126a48185612d6c565b93506126af83612d4b565b8060005b8381101561263657816126c688826125c5565b97506126d183612d66565b9250506001016126b3565b6125da81612dee565b60006126f2602083612d6c565b7f496d7065726d6178436f6e6669674d616e616765723a205245454e5445524544815260200192915050565b600061272b601d83612d6c565b7f496d7065726d61784f776e61626c653a20554e415554484f52495a4544000000815260200192915050565b6000612764602683612d6c565b7f496d7065726d6178436f6e6669674d616e616765723a20494e56414c49445f5381527f455454494e470000000000000000000000000000000000000000000000000000602082015260400192915050565b60006127c3602283612d6c565b7f496d7065726d6178436f6e6669674d616e616765723a204e4f545f50454e444981527f4e47000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b608082016128238280612d93565b61282d8482612bc3565b5061283b6020830183612d93565b6128486020850182612bc3565b506128566040830183612d93565b6128636040850182612bc3565b506128716060830183612d75565b61287e60608501826125e0565b50505050565b805160808301906128958482612bc3565b5060208201516128a86020850182612bc3565b5060408201516128bb6040850182612bc3565b50606082015161287e60608501826125e0565b805460808301906128de81612e2a565b6128e88582612bc3565b505060018201546128f881612e2a565b6129056020860182612bc3565b5050600282015461291581612e2a565b6129226040860182612bc3565b5050600382015461293281612e04565b61293f60608601826125e0565b5050505050565b606082016129548280612d93565b61295e8482612bc3565b5061296c6020830183612d93565b6129796020850182612bc3565b506129876040830183612d93565b61287e6040850182612bc3565b805160608301906129a58482612bc3565b5060208201516129b86020850182612bc3565b50604082015161287e6040850182612bc3565b805460608301906129db81612e2a565b6129e58582612bc3565b505060018201546129f581612e2a565b612a026020860182612bc3565b50506002820154612a1281612e2a565b61293f6040860182612bc3565b6101c08201612a2e8280612d75565b612a3884826125e0565b50612a466020830183612d75565b612a5360208501826125e0565b50612a6160408301836121dc565b612a6e6040850182612946565b50612a7c60a08301836121dc565b612a8960a0850182612815565b50612a986101208301836121dc565b612aa6610120850182612815565b50612ab56101a0830183612d84565b61287e6101a08501826126dc565b80516101c0830190612ad584826125e0565b506020820151612ae860208501826125e0565b506040820151612afb6040850182612994565b506060820151612b0e60a0850182612884565b506080820151612b22610120850182612884565b5060a082015161287e6101a08501826126dc565b80546101c0830190612b4781612e04565b612b5185826125e0565b50506001820154612b6181612e04565b612b6e60208601826125e0565b5060028301612b8060408601826129cb565b5060058301612b9260a08601826128ce565b5060098301612ba56101208601826128ce565b5050600d820154612bb581612e17565b61293f6101a08601826126dc565b6125da816121e0565b602081016121ee82846125e0565b60408101612be882856125e0565b612bf560208301846125e0565b9392505050565b60408101612c0a82856125e0565b612bf560208301846125d1565b60608101612c2582866125e0565b612c3260208301856125e0565b61240260408301846126dc565b6101c08101612c4e82896125e0565b612c5b60208301886125e0565b612c686040830187612994565b612c7560a0830186612884565b612c83610120830185612884565b612c916101a08301846126dc565b979650505050505050565b602080825281016124028184866125e9565b60208082528101612bf58184612641565b60208082528101612bf5818461268f565b602080825281016121ee816126e5565b602080825281016121ee8161271e565b602080825281016121ee81612757565b602080825281016121ee816127b6565b602081016121ee8284612bc3565b60405181810167ffffffffffffffff81118282101715612d3d57600080fd5b604052919050565b60200190565b60009081526020902090565b5190565b5490565b6101c00190565b600e0190565b90815260200190565b6000612bf560208401846121e3565b6000612bf56020840184612254565b6000612bf560208401846123ce565b73ffffffffffffffffffffffffffffffffffffffff1690565b60ff1690565b60006121ee82612da2565b151590565b8061102b81612e3d565b62ffffff1690565b60006121ee82612df9565b60006121ee82612dd1565b60006121ee82612dc1565b60006121ee612e12836121e0565b612da2565b60006121ee612e25836121e0565b612dbb565b60006121ee612e38836121e0565b6121e0565b600481106117b357fe5b612e5081612dc1565b81146117b357600080fd5b612e5081612dcc565b600481106117b357600080fd5b612e5081612ddb565b612e50816121e056fea365627a7a72315820a5d60ba3f3b446f04ac939132858a27ace0a6296b831102df54efdf7b03377d46c6578706572696d656e74616cf564736f6c634300051000400000000000000000000000007226c7ca07056c655865216e04512e9b28782959000000000000000000000000323f07a4be1bd856c500861e5bbd3d0e638e9cfe
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100df5760003560e01c8063b71d1a0c1161008c578063c7f758a811610066578063c7f758a8146101a5578063d5b9a422146101c5578063e9c714f2146101d8578063f851a440146101e0576100df565b8063b71d1a0c1461015a578063bc28d8781461016d578063c2cfee2714610180576100df565b80635c43b21f116100bd5780635c43b21f1461012c57806393e59dc11461013f57806398951b5614610147576100df565b806326782247146100e457806344c7c86714610102578063577398e014610117575b600080fd5b6100ec6101e8565b6040516100f99190612bcc565b60405180910390f35b61010a610204565b6040516100f99190612d10565b61012a610125366004612462565b61020a565b005b61012a61013a3660046123e4565b61057d565b6100ec610740565b61012a610155366004612538565b61075c565b61012a6101683660046123e4565b610bab565b61012a61017b366004612538565b610c80565b61019361018e366004612574565b610deb565b6040516100f996959493929190612c3f565b6101b86101b3366004612538565b610ed0565b6040516100f99190612cae565b61012a6101d3366004612428565b611030565b61012a6111fb565b6100ec61130f565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b60045474010000000000000000000000000000000000000000900460ff16610267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025e90612cd0565b60405180910390fd5b600480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16905560005b818110156104f4576102a2612056565b8383838181106102ae57fe5b90506101c002018036036102c59190810190612519565b90506000806000836000015173ffffffffffffffffffffffffffffffffffffffff16630572bf5f85602001516040518263ffffffff1660e01b815260040161030d9190612bcc565b60a06040518083038186803b15801561032557600080fd5b505afa158015610339573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061035d91908101906124a4565b945094509450505061037383856040015161132b565b610381828560600151611554565b61038f818560800151611554565b60038054600090815260026020818152604080842080546001808201808455928752958490208b51600e9092020180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff9384161782558c860151828901805483169185169190911790558c85015180519783019790975586860151828a01559584015160048201556060808d015180516005840155808701516006840155808601516007840155810151600883018054891691851691909117905560808d01518051600984015595860151600a83015593850151600b8201559390920151600c8401805490951692169190911790925560a0880151600d8201805493958a959394929391927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016919084908111156104dc57fe5b02179055505060019096019550610292945050505050565b506003547ff6825e485a6eff2c9dce46a91f9d63255d3aec43c91d0acda3562870d9da10988383604051610529929190612c9c565b60405180910390a25050600380546001019055600480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b60005473ffffffffffffffffffffffffffffffffffffffff1633146105ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025e90612ce0565b60045474010000000000000000000000000000000000000000900460ff16610622576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025e90612cd0565b600480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff168155604080517fe9c714f2000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff84169263e9c714f29280820192600092909182900301818387803b1580156106af57600080fd5b505af11580156106c3573d6000803e3d6000fd5b505050507fceea085b6a1fe3e72468635024fe388adab2819b73f8274fbcdc2e74de3f42c6816040516106f69190612bcc565b60405180910390a150600480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b60045473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1633146107ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025e90612ce0565b60045474010000000000000000000000000000000000000000900460ff16610801576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025e90612cd0565b600480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690556108328161173c565b606060026000838152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b828210156109865760008481526020908190206040805160c081018252600e8602909201805473ffffffffffffffffffffffffffffffffffffffff90811684526001820154811684860152825160608082018552600284015482526003808501548389015260048501548387015286860192909252845160808082018752600586015482526006860154828a01526007860154828801526008860154851682840152828801919091528551808201875260098601548152600a86015498810198909852600b85015495880195909552600c8401549092169186019190915291830193909352600d83015491929160a084019160ff9091169081111561096857fe5b600381111561097357fe5b8152505081526020019060010190610867565b5050825192935060009150505b81811015610b25576109a3612056565b8382815181106109af57fe5b602002602001015190506000806000836000015173ffffffffffffffffffffffffffffffffffffffff16630572bf5f85602001516040518263ffffffff1660e01b81526004016109ff9190612bcc565b60a06040518083038186803b158015610a1757600080fd5b505afa158015610a2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a4f91908101906124a4565b9450945094505050610a658385604001516117b6565b610a7382856060015161198e565b610a8181856080015161198e565b600480548551602087015160a08801516040517f7306447100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90941694637306447194610ae39493929101612c17565b600060405180830381600087803b158015610afd57600080fd5b505af1158015610b11573d6000803e3d6000fd5b505060019096019550610993945050505050565b50827f610e19f6ab817e621321124f168345ea2f449d8efb6aa5e40758807593f2c27d83604051610b569190612cae565b60405180910390a2610b6783611bf2565b5050600480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905550565b60005473ffffffffffffffffffffffffffffffffffffffff163314610bfc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025e90612ce0565b6001805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff00000000000000000000000000000000000000008316179092556040519116907fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a990610c749083908590612bda565b60405180910390a15050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610cd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025e90612ce0565b60045474010000000000000000000000000000000000000000900460ff16610d25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025e90612cd0565b600480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff169055610d568161173c565b807f19c11fd3d8c60fd3cc0ad208fb999a4b1fd892181a1e6c0d44e19c147a29ab8360026000848152602001908152602001600020604051610d989190612cbf565b60405180910390a2610da981611bf2565b50600480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b60026020528160005260406000208181548110610e0457fe5b6000918252602091829020600e9091020180546001820154604080516060808201835260028601548252600386015482880152600486015482840152825160808082018552600588015482526006880154828a0152600788015482860152600888015473ffffffffffffffffffffffffffffffffffffffff908116838501528551918201865260098901548252600a89015499820199909952600b88015494810194909452600c870154881691840191909152600d909501549386169750919094169450929060ff1686565b606060026000838152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b828210156110245760008481526020908190206040805160c081018252600e8602909201805473ffffffffffffffffffffffffffffffffffffffff90811684526001820154811684860152825160608082018552600284015482526003808501548389015260048501548387015286860192909252845160808082018752600586015482526006860154828a01526007860154828801526008860154851682840152828801919091528551808201875260098601548152600a86015498810198909852600b85015495880195909552600c8401549092169186019190915291830193909352600d83015491929160a084019160ff9091169081111561100657fe5b600381111561101157fe5b8152505081526020019060010190610f05565b5050505090505b919050565b60005473ffffffffffffffffffffffffffffffffffffffff163314611081576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025e90612ce0565b60045474010000000000000000000000000000000000000000900460ff166110d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025e90612cd0565b600480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1681556040517fb71d1a0c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169163b71d1a0c9161114d91859101612bcc565b600060405180830381600087803b15801561116757600080fd5b505af115801561117b573d6000803e3d6000fd5b505050507fcf46bd245e8c9192874bbb1cd18f3cfe24d39e59d79dec85790a459e81f99a8b82826040516111b0929190612bda565b60405180910390a15050600480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b60015473ffffffffffffffffffffffffffffffffffffffff16331461124c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025e90612ce0565b600080546001805473ffffffffffffffffffffffffffffffffffffffff8082167fffffffffffffffffffffffff00000000000000000000000000000000000000008086168217968790559092169092556040519282169390927ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc926112d5928692911690612bda565b60405180910390a17fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a9816000604051610c74929190612bfc565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b61143481600001518373ffffffffffffffffffffffffffffffffffffffff16630fb60fef6040518163ffffffff1660e01b815260040160206040518083038186803b15801561137957600080fd5b505afa15801561138d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113b19190810190612556565b8473ffffffffffffffffffffffffffffffffffffffff1663d490e7e06040518163ffffffff1660e01b815260040160206040518083038186803b1580156113f757600080fd5b505afa15801561140b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061142f9190810190612556565b611c09565b61150081602001518373ffffffffffffffffffffffffffffffffffffffff1663bc9bd12a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561148257600080fd5b505afa158015611496573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114ba9190810190612556565b8473ffffffffffffffffffffffffffffffffffffffff1663afc8276c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156113f757600080fd5b611550816040015160008473ffffffffffffffffffffffffffffffffffffffff166333fabfd16040518163ffffffff1660e01b815260040160206040518083038186803b1580156113f757600080fd5b5050565b6115a4816000015160008473ffffffffffffffffffffffffffffffffffffffff1663c72f3fbb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156113f757600080fd5b61167081602001518373ffffffffffffffffffffffffffffffffffffffff16632374e8a96040518163ffffffff1660e01b815260040160206040518083038186803b1580156115f257600080fd5b505afa158015611606573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061162a9190810190612556565b8473ffffffffffffffffffffffffffffffffffffffff1663685440656040518163ffffffff1660e01b815260040160206040518083038186803b1580156113f757600080fd5b61155081604001518373ffffffffffffffffffffffffffffffffffffffff1663075f4e7f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156116be57600080fd5b505afa1580156116d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116f69190810190612556565b8473ffffffffffffffffffffffffffffffffffffffff1663253c24f36040518163ffffffff1660e01b815260040160206040518083038186803b1580156113f757600080fd5b60008181526002602052604081208054829061175457fe5b60009182526020909120600e909102015473ffffffffffffffffffffffffffffffffffffffff1614156117b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025e90612d00565b50565b6117be61209b565b6117c783611c7d565b80518351919250146118595781516040517fbb6ff38600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169163bb6ff386916118269190600401612d10565b600060405180830381600087803b15801561184057600080fd5b505af1158015611854573d6000803e3d6000fd5b505050505b80602001518260200151146118f15760208201516040517f4fd42e1700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851691634fd42e17916118be9190600401612d10565b600060405180830381600087803b1580156118d857600080fd5b505af11580156118ec573d6000803e3d6000fd5b505050505b80604001518260400151146119895760408083015190517f1ef63a7900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851691631ef63a79916119569190600401612d10565b600060405180830381600087803b15801561197057600080fd5b505af1158015611984573d6000803e3d6000fd5b505050505b505050565b6119966120bc565b61199f83611e1b565b8051835191925014611a315781516040517ffca7820b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169163fca7820b916119fe9190600401612d10565b600060405180830381600087803b158015611a1857600080fd5b505af1158015611a2c573d6000803e3d6000fd5b505050505b8060200151826020015114611ac95760208201516040517f9292b03200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851691639292b03291611a969190600401612d10565b600060405180830381600087803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b505050505b8060400151826040015114611b615760408083015190517f27549a0b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516916327549a0b91611b2e9190600401612d10565b600060405180830381600087803b158015611b4857600080fd5b505af1158015611b5c573d6000803e3d6000fd5b505050505b806060015173ffffffffffffffffffffffffffffffffffffffff16826060015173ffffffffffffffffffffffffffffffffffffffff16146119895760608201516040517f3554282200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516916335542822916119569190600401612bcc565b60008181526002602052604081206117b3916120fa565b81831015611c43576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025e90612cf0565b80831115611989576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025e90612cf0565b611c8561209b565b8173ffffffffffffffffffffffffffffffffffffffff1663356c571f6040518163ffffffff1660e01b815260040160206040518083038186803b158015611ccb57600080fd5b505afa158015611cdf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d039190810190612556565b8160000181815250508173ffffffffffffffffffffffffffffffffffffffff16638c765e946040518163ffffffff1660e01b815260040160206040518083038186803b158015611d5257600080fd5b505afa158015611d66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d8a9190810190612556565b8160200181815250508173ffffffffffffffffffffffffffffffffffffffff1663a36a36306040518163ffffffff1660e01b815260040160206040518083038186803b158015611dd957600080fd5b505afa158015611ded573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e119190810190612556565b6040820152919050565b611e236120bc565b8173ffffffffffffffffffffffffffffffffffffffff16634322b7146040518163ffffffff1660e01b815260040160206040518083038186803b158015611e6957600080fd5b505afa158015611e7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611ea19190810190612556565b8160000181815250508173ffffffffffffffffffffffffffffffffffffffff16631aebf12f6040518163ffffffff1660e01b815260040160206040518083038186803b158015611ef057600080fd5b505afa158015611f04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f289190810190612556565b8160200181815250508173ffffffffffffffffffffffffffffffffffffffff16632d5231d36040518163ffffffff1660e01b815260040160206040518083038186803b158015611f7757600080fd5b505afa158015611f8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611faf9190810190612556565b8160400181815250508173ffffffffffffffffffffffffffffffffffffffff1663559572206040518163ffffffff1660e01b815260040160206040518083038186803b158015611ffe57600080fd5b505afa158015612012573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612036919081019061240a565b73ffffffffffffffffffffffffffffffffffffffff166060820152919050565b6040805160c0810182526000808252602082015290810161207561209b565b81526020016120826120bc565b815260200161208f6120bc565b81526020016000905290565b60405180606001604052806000815260200160008152602001600081525090565b6040518060800160405280600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b50805460008255600e02906000526020600020908101906117b391906121e091905b808211156121dc5780547fffffffffffffffffffffffff000000000000000000000000000000000000000090811682556001820180548216905560006002830181905560038301819055600483018190556005830181905560068301819055600783018190556008830180548316905560098301819055600a8301819055600b830155600c820180549091169055600d810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600e0161211c565b5090565b90565b80356121ee81612e47565b92915050565b80516121ee81612e47565b60008083601f84011261221157600080fd5b50813567ffffffffffffffff81111561222957600080fd5b602083019150836101c082028301111561224257600080fd5b9250929050565b80516121ee81612e5b565b80356121ee81612e64565b60006080828403121561227157600080fd5b61227b6080612d1e565b9050600061228984846123ce565b825250602061229a848483016123ce565b60208301525060406122ae848285016123ce565b60408301525060606122c2848285016121e3565b60608301525092915050565b6000606082840312156122e057600080fd5b6122ea6060612d1e565b905060006122f884846123ce565b8252506020612309848483016123ce565b602083015250604061231d848285016123ce565b60408301525092915050565b60006101c0828403121561233c57600080fd5b61234660c0612d1e565b9050600061235484846121e3565b8252506020612365848483016121e3565b6020830152506040612379848285016122ce565b60408301525060a061238d8482850161225f565b6060830152506101206123a28482850161225f565b6080830152506101a06123b784828501612254565b60a08301525092915050565b80516121ee81612e71565b80356121ee81612e7a565b80516121ee81612e7a565b6000602082840312156123f657600080fd5b600061240284846121e3565b949350505050565b60006020828403121561241c57600080fd5b600061240284846121f4565b6000806040838503121561243b57600080fd5b600061244785856121e3565b9250506020612458858286016121e3565b9150509250929050565b6000806020838503121561247557600080fd5b823567ffffffffffffffff81111561248c57600080fd5b612498858286016121ff565b92509250509250929050565b600080600080600060a086880312156124bc57600080fd5b60006124c88888612249565b95505060206124d9888289016123c3565b94505060406124ea888289016121f4565b93505060606124fb888289016121f4565b925050608061250c888289016121f4565b9150509295509295909350565b60006101c0828403121561252c57600080fd5b60006124028484612329565b60006020828403121561254a57600080fd5b600061240284846123ce565b60006020828403121561256857600080fd5b600061240284846123d9565b6000806040838503121561258757600080fd5b600061259385856123ce565b9250506020612458858286016123ce565b60006125b08383612a1f565b50506101c00190565b60006125b08383612ac3565b60006125b08383612b36565b6125da81612de3565b82525050565b6125da81612dc1565b60006125f58385612d6c565b9350612600826121e0565b8060005b858110156126365761261682846121dc565b61262088826125a4565b975061262b83612d5f565b925050600101612604565b509495945050505050565b600061264c82612d57565b6126568185612d6c565b935061266183612d45565b8060005b8381101561263657815161267988826125b9565b975061268483612d45565b925050600101612665565b600061269a82612d5b565b6126a48185612d6c565b93506126af83612d4b565b8060005b8381101561263657816126c688826125c5565b97506126d183612d66565b9250506001016126b3565b6125da81612dee565b60006126f2602083612d6c565b7f496d7065726d6178436f6e6669674d616e616765723a205245454e5445524544815260200192915050565b600061272b601d83612d6c565b7f496d7065726d61784f776e61626c653a20554e415554484f52495a4544000000815260200192915050565b6000612764602683612d6c565b7f496d7065726d6178436f6e6669674d616e616765723a20494e56414c49445f5381527f455454494e470000000000000000000000000000000000000000000000000000602082015260400192915050565b60006127c3602283612d6c565b7f496d7065726d6178436f6e6669674d616e616765723a204e4f545f50454e444981527f4e47000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b608082016128238280612d93565b61282d8482612bc3565b5061283b6020830183612d93565b6128486020850182612bc3565b506128566040830183612d93565b6128636040850182612bc3565b506128716060830183612d75565b61287e60608501826125e0565b50505050565b805160808301906128958482612bc3565b5060208201516128a86020850182612bc3565b5060408201516128bb6040850182612bc3565b50606082015161287e60608501826125e0565b805460808301906128de81612e2a565b6128e88582612bc3565b505060018201546128f881612e2a565b6129056020860182612bc3565b5050600282015461291581612e2a565b6129226040860182612bc3565b5050600382015461293281612e04565b61293f60608601826125e0565b5050505050565b606082016129548280612d93565b61295e8482612bc3565b5061296c6020830183612d93565b6129796020850182612bc3565b506129876040830183612d93565b61287e6040850182612bc3565b805160608301906129a58482612bc3565b5060208201516129b86020850182612bc3565b50604082015161287e6040850182612bc3565b805460608301906129db81612e2a565b6129e58582612bc3565b505060018201546129f581612e2a565b612a026020860182612bc3565b50506002820154612a1281612e2a565b61293f6040860182612bc3565b6101c08201612a2e8280612d75565b612a3884826125e0565b50612a466020830183612d75565b612a5360208501826125e0565b50612a6160408301836121dc565b612a6e6040850182612946565b50612a7c60a08301836121dc565b612a8960a0850182612815565b50612a986101208301836121dc565b612aa6610120850182612815565b50612ab56101a0830183612d84565b61287e6101a08501826126dc565b80516101c0830190612ad584826125e0565b506020820151612ae860208501826125e0565b506040820151612afb6040850182612994565b506060820151612b0e60a0850182612884565b506080820151612b22610120850182612884565b5060a082015161287e6101a08501826126dc565b80546101c0830190612b4781612e04565b612b5185826125e0565b50506001820154612b6181612e04565b612b6e60208601826125e0565b5060028301612b8060408601826129cb565b5060058301612b9260a08601826128ce565b5060098301612ba56101208601826128ce565b5050600d820154612bb581612e17565b61293f6101a08601826126dc565b6125da816121e0565b602081016121ee82846125e0565b60408101612be882856125e0565b612bf560208301846125e0565b9392505050565b60408101612c0a82856125e0565b612bf560208301846125d1565b60608101612c2582866125e0565b612c3260208301856125e0565b61240260408301846126dc565b6101c08101612c4e82896125e0565b612c5b60208301886125e0565b612c686040830187612994565b612c7560a0830186612884565b612c83610120830185612884565b612c916101a08301846126dc565b979650505050505050565b602080825281016124028184866125e9565b60208082528101612bf58184612641565b60208082528101612bf5818461268f565b602080825281016121ee816126e5565b602080825281016121ee8161271e565b602080825281016121ee81612757565b602080825281016121ee816127b6565b602081016121ee8284612bc3565b60405181810167ffffffffffffffff81118282101715612d3d57600080fd5b604052919050565b60200190565b60009081526020902090565b5190565b5490565b6101c00190565b600e0190565b90815260200190565b6000612bf560208401846121e3565b6000612bf56020840184612254565b6000612bf560208401846123ce565b73ffffffffffffffffffffffffffffffffffffffff1690565b60ff1690565b60006121ee82612da2565b151590565b8061102b81612e3d565b62ffffff1690565b60006121ee82612df9565b60006121ee82612dd1565b60006121ee82612dc1565b60006121ee612e12836121e0565b612da2565b60006121ee612e25836121e0565b612dbb565b60006121ee612e38836121e0565b6121e0565b600481106117b357fe5b612e5081612dc1565b81146117b357600080fd5b612e5081612dcc565b600481106117b357600080fd5b612e5081612ddb565b612e50816121e056fea365627a7a72315820a5d60ba3f3b446f04ac939132858a27ace0a6296b831102df54efdf7b03377d46c6578706572696d656e74616cf564736f6c63430005100040
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007226c7ca07056c655865216e04512e9b28782959000000000000000000000000323f07a4be1bd856c500861e5bbd3d0e638e9cfe
-----Decoded View---------------
Arg [0] : _admin (address): 0x7226C7ca07056c655865216E04512E9B28782959
Arg [1] : _whitelist (address): 0x323f07A4bE1bd856c500861E5bbd3D0e638e9Cfe
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000007226c7ca07056c655865216e04512e9b28782959
Arg [1] : 000000000000000000000000323f07a4be1bd856c500861e5bbd3d0e638e9cfe
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.