Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 153 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
_accept Reserves... | 16315162 | 551 days ago | IN | 0 ETH | 0.00042249 | ||||
_set Reserves Pe... | 16314661 | 551 days ago | IN | 0 ETH | 0.00074144 | ||||
_set Reserves Ma... | 16314657 | 551 days ago | IN | 0 ETH | 0.0004543 | ||||
_set Reserves Ma... | 15155454 | 720 days ago | IN | 0 ETH | 0.0030197 | ||||
_accept Reserves... | 15155448 | 720 days ago | IN | 0 ETH | 0.002939 | ||||
_accept Admin | 15155447 | 720 days ago | IN | 0 ETH | 0.002939 | ||||
_set Reserves Pe... | 15155444 | 720 days ago | IN | 0 ETH | 0.0047321 | ||||
_set Pending Adm... | 15155439 | 720 days ago | IN | 0 ETH | 0.004732 | ||||
Initialize Lendi... | 12859174 | 1082 days ago | IN | 0 ETH | 0.01253789 | ||||
Create Collatera... | 12859160 | 1082 days ago | IN | 0 ETH | 0.0752588 | ||||
Create Borrowabl... | 12859032 | 1082 days ago | IN | 0 ETH | 0.0722247 | ||||
Create Borrowabl... | 12859012 | 1082 days ago | IN | 0 ETH | 0.08049664 | ||||
Initialize Lendi... | 12629697 | 1117 days ago | IN | 0 ETH | 0.00379726 | ||||
Create Collatera... | 12629664 | 1117 days ago | IN | 0 ETH | 0.01954774 | ||||
Create Borrowabl... | 12629490 | 1117 days ago | IN | 0 ETH | 0.02850975 | ||||
Create Borrowabl... | 12626451 | 1118 days ago | IN | 0 ETH | 0.01925757 | ||||
Initialize Lendi... | 12574559 | 1126 days ago | IN | 0 ETH | 0.00759561 | ||||
Create Collatera... | 12574556 | 1126 days ago | IN | 0 ETH | 0.04398242 | ||||
Create Borrowabl... | 12574519 | 1126 days ago | IN | 0 ETH | 0.0505953 | ||||
Create Borrowabl... | 12574498 | 1126 days ago | IN | 0 ETH | 0.05006968 | ||||
Initialize Lendi... | 12548377 | 1130 days ago | IN | 0 ETH | 0.00810499 | ||||
Create Collatera... | 12548318 | 1130 days ago | IN | 0 ETH | 0.05212731 | ||||
Create Borrowabl... | 12547964 | 1130 days ago | IN | 0 ETH | 0.0570195 | ||||
Create Borrowabl... | 12547836 | 1130 days ago | IN | 0 ETH | 0.05777271 | ||||
Initialize Lendi... | 12484151 | 1140 days ago | IN | 0 ETH | 0.01736211 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
Factory
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; import "./interfaces/IFactory.sol"; import "./interfaces/IBDeployer.sol"; import "./interfaces/IBorrowable.sol"; import "./interfaces/ICDeployer.sol"; import "./interfaces/ICollateral.sol"; import "./interfaces/IERC20.sol"; import "./interfaces/IUniswapV2Pair.sol"; import "./interfaces/IUniswapV2Factory.sol"; import "./interfaces/ISimpleUniswapOracle.sol"; contract Factory is IFactory { address public admin; address public pendingAdmin; address public reservesAdmin; address public reservesPendingAdmin; address public reservesManager; struct LendingPool { bool initialized; uint24 lendingPoolId; address collateral; address borrowable0; address borrowable1; } mapping(address => LendingPool) public getLendingPool; // get by UniswapV2Pair address[] public allLendingPools; // address of the UniswapV2Pair function allLendingPoolsLength() external view returns (uint) { return allLendingPools.length; } IBDeployer public bDeployer; ICDeployer public cDeployer; IUniswapV2Factory public uniswapV2Factory; ISimpleUniswapOracle public simpleUniswapOracle; event LendingPoolInitialized(address indexed uniswapV2Pair, address indexed token0, address indexed token1, address collateral, address borrowable0, address borrowable1, uint lendingPoolId); event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin); event NewAdmin(address oldAdmin, address newAdmin); event NewReservesPendingAdmin(address oldReservesPendingAdmin, address newReservesPendingAdmin); event NewReservesAdmin(address oldReservesAdmin, address newReservesAdmin); event NewReservesManager(address oldReservesManager, address newReservesManager); constructor(address _admin, address _reservesAdmin, IBDeployer _bDeployer, ICDeployer _cDeployer, IUniswapV2Factory _uniswapV2Factory, ISimpleUniswapOracle _simpleUniswapOracle) public { admin = _admin; reservesAdmin = _reservesAdmin; bDeployer = _bDeployer; cDeployer = _cDeployer; uniswapV2Factory = _uniswapV2Factory; simpleUniswapOracle = _simpleUniswapOracle; emit NewAdmin(address(0), _admin); emit NewReservesAdmin(address(0), _reservesAdmin); } function _getTokens(address uniswapV2Pair) private view returns (address token0, address token1) { token0 = IUniswapV2Pair(uniswapV2Pair).token0(); token1 = IUniswapV2Pair(uniswapV2Pair).token1(); require(uniswapV2Factory.getPair(token0, token1) == uniswapV2Pair, "Impermax: NOT_UNIV2_PAIR"); } function _createLendingPool(address uniswapV2Pair) private { if (getLendingPool[uniswapV2Pair].lendingPoolId != 0) return; allLendingPools.push(uniswapV2Pair); getLendingPool[uniswapV2Pair] = LendingPool(false, uint24(allLendingPools.length), address(0), address(0), address(0)); } function createCollateral(address uniswapV2Pair) external returns (address collateral) { _getTokens(uniswapV2Pair); require(getLendingPool[uniswapV2Pair].collateral == address(0), "Impermax: ALREADY_EXISTS"); collateral = cDeployer.deployCollateral(uniswapV2Pair); ICollateral(collateral)._setFactory(); _createLendingPool(uniswapV2Pair); getLendingPool[uniswapV2Pair].collateral = collateral; } function createBorrowable0(address uniswapV2Pair) external returns (address borrowable0) { _getTokens(uniswapV2Pair); require(getLendingPool[uniswapV2Pair].borrowable0 == address(0), "Impermax: ALREADY_EXISTS"); borrowable0 = bDeployer.deployBorrowable(uniswapV2Pair, 0); IBorrowable(borrowable0)._setFactory(); _createLendingPool(uniswapV2Pair); getLendingPool[uniswapV2Pair].borrowable0 = borrowable0; } function createBorrowable1(address uniswapV2Pair) external returns (address borrowable1) { _getTokens(uniswapV2Pair); require(getLendingPool[uniswapV2Pair].borrowable1 == address(0), "Impermax: ALREADY_EXISTS"); borrowable1 = bDeployer.deployBorrowable(uniswapV2Pair, 1); IBorrowable(borrowable1)._setFactory(); _createLendingPool(uniswapV2Pair); getLendingPool[uniswapV2Pair].borrowable1 = borrowable1; } function initializeLendingPool(address uniswapV2Pair) external { (address token0, address token1) = _getTokens(uniswapV2Pair); LendingPool memory lPool = getLendingPool[uniswapV2Pair]; require(!lPool.initialized, "Impermax: ALREADY_INITIALIZED"); require(lPool.collateral != address(0), "Impermax: COLLATERALIZABLE_NOT_CREATED"); require(lPool.borrowable0 != address(0), "Impermax: BORROWABLE0_NOT_CREATED"); require(lPool.borrowable1 != address(0), "Impermax: BORROWABLE1_NOT_CREATED"); (,,,,,bool oracleInitialized) = simpleUniswapOracle.getPair(uniswapV2Pair); if (!oracleInitialized) simpleUniswapOracle.initialize(uniswapV2Pair); string memory token0Symbol = IERC20(token0).symbol(); string memory token1Symbol = IERC20(token1).symbol(); string memory lendingPoolId = uint2str(lPool.lendingPoolId); string memory name = string(abi.encodePacked("Impermax UniV2: ", token0Symbol, "-", token1Symbol, "-", lendingPoolId)); string memory symbol = string(abi.encodePacked("i", token0Symbol, "-", token1Symbol, "-", lendingPoolId)); ICollateral(lPool.collateral)._initialize(name, symbol, uniswapV2Pair, lPool.borrowable0, lPool.borrowable1); name = string(abi.encodePacked("Impermax UniV2: ", token0Symbol, "-", lendingPoolId)); symbol = string(abi.encodePacked("i", token0Symbol, "-", lendingPoolId)); IBorrowable(lPool.borrowable0)._initialize(name, symbol, token0, lPool.collateral); name = string(abi.encodePacked("Impermax UniV2: ", token1Symbol, "-", lendingPoolId)); symbol = string(abi.encodePacked("i", token1Symbol, "-", lendingPoolId)); IBorrowable(lPool.borrowable1)._initialize(name, symbol, token1, lPool.collateral); getLendingPool[uniswapV2Pair].initialized = true; emit LendingPoolInitialized(uniswapV2Pair, token0, token1, lPool.collateral, lPool.borrowable0, lPool.borrowable1, lPool.lendingPoolId); } function _setPendingAdmin(address newPendingAdmin) external { require(msg.sender == admin, "Impermax: UNAUTHORIZED"); address oldPendingAdmin = pendingAdmin; pendingAdmin = newPendingAdmin; emit NewPendingAdmin(oldPendingAdmin, newPendingAdmin); } function _acceptAdmin() external { require(msg.sender == pendingAdmin, "Impermax: UNAUTHORIZED"); address oldAdmin = admin; address oldPendingAdmin = pendingAdmin; admin = pendingAdmin; pendingAdmin = address(0); emit NewAdmin(oldAdmin, admin); emit NewPendingAdmin(oldPendingAdmin, address(0)); } function _setReservesPendingAdmin(address newReservesPendingAdmin) external { require(msg.sender == reservesAdmin, "Impermax: UNAUTHORIZED"); address oldReservesPendingAdmin = reservesPendingAdmin; reservesPendingAdmin = newReservesPendingAdmin; emit NewReservesPendingAdmin(oldReservesPendingAdmin, newReservesPendingAdmin); } function _acceptReservesAdmin() external { require(msg.sender == reservesPendingAdmin, "Impermax: UNAUTHORIZED"); address oldReservesAdmin = reservesAdmin; address oldReservesPendingAdmin = reservesPendingAdmin; reservesAdmin = reservesPendingAdmin; reservesPendingAdmin = address(0); emit NewReservesAdmin(oldReservesAdmin, reservesAdmin); emit NewReservesPendingAdmin(oldReservesPendingAdmin, address(0)); } function _setReservesManager(address newReservesManager) external { require(msg.sender == reservesAdmin, "Impermax: UNAUTHORIZED"); address oldReservesManager = reservesManager; reservesManager = newReservesManager; emit NewReservesManager(oldReservesManager, newReservesManager); } function uint2str(uint _i) public pure returns (string memory _uintAsString) { if (_i == 0) return "0"; uint j = _i; uint len; while (j != 0) { len++; j /= 10; } bytes memory bstr = new bytes(len); uint k = len - 1; while (_i != 0) { bstr[k--] = byte(uint8(48 + _i % 10)); _i /= 10; } return string(bstr); } }
pragma solidity >=0.5.0; interface IBDeployer { function deployBorrowable(address uniswapV2Pair, uint8 index) external returns (address borrowable); }
pragma solidity >=0.5.0; interface IBorrowable { /*** Impermax ERC20 ***/ event Transfer(address indexed from, address indexed to, uint value); event Approval(address indexed owner, address indexed spender, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; /*** Pool Token ***/ event Mint(address indexed sender, address indexed minter, uint mintAmount, uint mintTokens); event Redeem(address indexed sender, address indexed redeemer, uint redeemAmount, uint redeemTokens); event Sync(uint totalBalance); function underlying() external view returns (address); function factory() external view returns (address); function totalBalance() external view returns (uint); function MINIMUM_LIQUIDITY() external pure returns (uint); function exchangeRate() external returns (uint); function mint(address minter) external returns (uint mintTokens); function redeem(address redeemer) external returns (uint redeemAmount); function skim(address to) external; function sync() external; function _setFactory() external; /*** Borrowable ***/ event BorrowApproval(address indexed owner, address indexed spender, uint value); event Borrow(address indexed sender, address indexed borrower, address indexed receiver, uint borrowAmount, uint repayAmount, uint accountBorrowsPrior, uint accountBorrows, uint totalBorrows); event Liquidate(address indexed sender, address indexed borrower, address indexed liquidator, uint seizeTokens, uint repayAmount, uint accountBorrowsPrior, uint accountBorrows, uint totalBorrows); function BORROW_FEE() external pure returns (uint); function collateral() external view returns (address); function reserveFactor() external view returns (uint); function exchangeRateLast() external view returns (uint); function borrowIndex() external view returns (uint); function totalBorrows() external view returns (uint); function borrowAllowance(address owner, address spender) external view returns (uint); function borrowBalance(address borrower) external view returns (uint); function borrowTracker() external view returns (address); function BORROW_PERMIT_TYPEHASH() external pure returns (bytes32); function borrowApprove(address spender, uint256 value) external returns (bool); function borrowPermit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; function borrow(address borrower, address receiver, uint borrowAmount, bytes calldata data) external; function liquidate(address borrower, address liquidator) external returns (uint seizeTokens); function trackBorrow(address borrower) external; /*** Borrowable Interest Rate Model ***/ event AccrueInterest(uint interestAccumulated, uint borrowIndex, uint totalBorrows); event CalculateKink(uint kinkRate); event CalculateBorrowRate(uint borrowRate); function KINK_BORROW_RATE_MAX() external pure returns (uint); function KINK_BORROW_RATE_MIN() external pure returns (uint); function KINK_MULTIPLIER() external pure returns (uint); function borrowRate() external view returns (uint); function kinkBorrowRate() external view returns (uint); function kinkUtilizationRate() external view returns (uint); function adjustSpeed() external view returns (uint); function rateUpdateTimestamp() external view returns (uint32); function accrualTimestamp() external view returns (uint32); function accrueInterest() external; /*** Borrowable Setter ***/ event NewReserveFactor(uint newReserveFactor); event NewKinkUtilizationRate(uint newKinkUtilizationRate); event NewAdjustSpeed(uint newAdjustSpeed); event NewBorrowTracker(address newBorrowTracker); 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 _initialize ( string calldata _name, string calldata _symbol, address _underlying, address _collateral ) external; function _setReserveFactor(uint newReserveFactor) external; function _setKinkUtilizationRate(uint newKinkUtilizationRate) external; function _setAdjustSpeed(uint newAdjustSpeed) external; function _setBorrowTracker(address newBorrowTracker) external; }
pragma solidity >=0.5.0; interface ICDeployer { function deployCollateral(address uniswapV2Pair) external returns (address collateral); }
pragma solidity >=0.5.0; interface ICollateral { /*** Impermax ERC20 ***/ event Transfer(address indexed from, address indexed to, uint value); event Approval(address indexed owner, address indexed spender, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; /*** Pool Token ***/ event Mint(address indexed sender, address indexed minter, uint mintAmount, uint mintTokens); event Redeem(address indexed sender, address indexed redeemer, uint redeemAmount, uint redeemTokens); event Sync(uint totalBalance); function underlying() external view returns (address); function factory() external view returns (address); function totalBalance() external view returns (uint); function MINIMUM_LIQUIDITY() external pure returns (uint); function exchangeRate() external returns (uint); function mint(address minter) external returns (uint mintTokens); function redeem(address redeemer) external returns (uint redeemAmount); function skim(address to) external; function sync() external; function _setFactory() external; /*** Collateral ***/ function borrowable0() external view returns (address); function borrowable1() external view returns (address); function simpleUniswapOracle() external view returns (address); function safetyMarginSqrt() external view returns (uint); function liquidationIncentive() external view returns (uint); function getPrices() external returns (uint price0, uint price1); function tokensUnlocked(address from, uint value) external returns (bool); function accountLiquidityAmounts(address account, uint amount0, uint amount1) external returns (uint liquidity, uint shortfall); function accountLiquidity(address account) external returns (uint liquidity, uint shortfall); function canBorrow(address account, address borrowable, uint accountBorrows) external returns (bool); function seize(address liquidator, address borrower, uint repayAmount) external returns (uint seizeTokens); function flashRedeem(address redeemer, uint redeemAmount, bytes calldata data) external; /*** Collateral Setter ***/ event NewSafetyMargin(uint newSafetyMarginSqrt); event NewLiquidationIncentive(uint newLiquidationIncentive); 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 _initialize ( string calldata _name, string calldata _symbol, address _underlying, address _borrowable0, address _borrowable1 ) external; function _setSafetyMarginSqrt(uint newSafetyMarginSqrt) external; function _setLiquidationIncentive(uint newLiquidationIncentive) external; }
pragma solidity >=0.5.0; interface IERC20 { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); }
pragma solidity >=0.5.0; interface IFactory { event LendingPoolInitialized(address indexed uniswapV2Pair, address indexed token0, address indexed token1, address collateral, address borrowable0, address borrowable1, uint lendingPoolId); event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin); event NewAdmin(address oldAdmin, address newAdmin); event NewReservesPendingAdmin(address oldReservesPendingAdmin, address newReservesPendingAdmin); event NewReservesAdmin(address oldReservesAdmin, address newReservesAdmin); event NewReservesManager(address oldReservesManager, address newReservesManager); 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 bDeployer() external view returns (address); function cDeployer() external view returns (address); function uniswapV2Factory() external view returns (address); function simpleUniswapOracle() external view returns (address); function createCollateral(address uniswapV2Pair) external returns (address collateral); function createBorrowable0(address uniswapV2Pair) external returns (address borrowable0); function createBorrowable1(address uniswapV2Pair) external returns (address borrowable1); function initializeLendingPool(address uniswapV2Pair) external; function _setPendingAdmin(address newPendingAdmin) external; function _acceptAdmin() external; function _setReservesPendingAdmin(address newPendingAdmin) external; function _acceptReservesAdmin() external; function _setReservesManager(address newReservesManager) external; }
pragma solidity >=0.5.0; interface ISimpleUniswapOracle { event PriceUpdate(address indexed pair, uint256 priceCumulative, uint32 blockTimestamp, bool lastIsA); function MIN_T() external pure returns (uint32); function getBlockTimestamp() external view returns (uint32); function getPair(address uniswapV2Pair) external view returns ( uint256 priceCumulativeA, uint256 priceCumulativeB, uint32 updateA, uint32 updateB, bool lastIsA, bool initialized ); function initialize(address uniswapV2Pair) external; function getResult(address uniswapV2Pair) external returns (uint224 price, uint32 T); }
pragma solidity >=0.5.0; interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; }
pragma solidity >=0.5.0; interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); }
{ "remappings": [], "optimizer": { "enabled": true, "runs": 999999 }, "evmVersion": "istanbul", "libraries": {}, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_admin","type":"address"},{"internalType":"address","name":"_reservesAdmin","type":"address"},{"internalType":"contract IBDeployer","name":"_bDeployer","type":"address"},{"internalType":"contract ICDeployer","name":"_cDeployer","type":"address"},{"internalType":"contract IUniswapV2Factory","name":"_uniswapV2Factory","type":"address"},{"internalType":"contract ISimpleUniswapOracle","name":"_simpleUniswapOracle","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"uniswapV2Pair","type":"address"},{"indexed":true,"internalType":"address","name":"token0","type":"address"},{"indexed":true,"internalType":"address","name":"token1","type":"address"},{"indexed":false,"internalType":"address","name":"collateral","type":"address"},{"indexed":false,"internalType":"address","name":"borrowable0","type":"address"},{"indexed":false,"internalType":"address","name":"borrowable1","type":"address"},{"indexed":false,"internalType":"uint256","name":"lendingPoolId","type":"uint256"}],"name":"LendingPoolInitialized","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":false,"internalType":"address","name":"oldReservesAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newReservesAdmin","type":"address"}],"name":"NewReservesAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldReservesManager","type":"address"},{"indexed":false,"internalType":"address","name":"newReservesManager","type":"address"}],"name":"NewReservesManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldReservesPendingAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newReservesPendingAdmin","type":"address"}],"name":"NewReservesPendingAdmin","type":"event"},{"constant":false,"inputs":[],"name":"_acceptAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"_acceptReservesAdmin","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":false,"inputs":[{"internalType":"address","name":"newReservesManager","type":"address"}],"name":"_setReservesManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newReservesPendingAdmin","type":"address"}],"name":"_setReservesPendingAdmin","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":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"allLendingPools","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"allLendingPoolsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bDeployer","outputs":[{"internalType":"contract IBDeployer","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"cDeployer","outputs":[{"internalType":"contract ICDeployer","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"uniswapV2Pair","type":"address"}],"name":"createBorrowable0","outputs":[{"internalType":"address","name":"borrowable0","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"uniswapV2Pair","type":"address"}],"name":"createBorrowable1","outputs":[{"internalType":"address","name":"borrowable1","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"uniswapV2Pair","type":"address"}],"name":"createCollateral","outputs":[{"internalType":"address","name":"collateral","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getLendingPool","outputs":[{"internalType":"bool","name":"initialized","type":"bool"},{"internalType":"uint24","name":"lendingPoolId","type":"uint24"},{"internalType":"address","name":"collateral","type":"address"},{"internalType":"address","name":"borrowable0","type":"address"},{"internalType":"address","name":"borrowable1","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"uniswapV2Pair","type":"address"}],"name":"initializeLendingPool","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":[],"name":"reservesAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reservesManager","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reservesPendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"simpleUniswapOracle","outputs":[{"internalType":"contract ISimpleUniswapOracle","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_i","type":"uint256"}],"name":"uint2str","outputs":[{"internalType":"string","name":"_uintAsString","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"uniswapV2Factory","outputs":[{"internalType":"contract IUniswapV2Factory","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50604051612fb6380380612fb6833981810160405260c081101561003357600080fd5b5080516020808301516040808501516060860151608087015160a090970151600080546001600160a01b03199081166001600160a01b03808b169182178455600280548416828b16179055600780548416828916179055600880548416828816179055600980548416828e16179055600a805490931690851617909155855191825296810196909652835196979496929591949390927ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc9281900390910190a160408051600081526001600160a01b038716602082015281517fa328ba21363a99cbf330243928bb26a15acf20bf43166ef838e67ff5d84d4ae7929181900390910190a1505050505050612e6a8061014c6000396000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c80639e1348e3116100d8578063d40711271161008c578063eb5ab75f11610066578063eb5ab75f146103e8578063f76f950e1461041b578063f851a440146104ad57610182565b8063d4071127146103bb578063db5a2690146103d8578063e9c714f2146103e057610182565b8063b658ca75116100bd578063b658ca7514610322578063b71d1a0c14610355578063cbed6d711461038857610182565b80639e1348e3146102e7578063b1ccc03e146102ef57610182565b806359d0f7131161013a5780637c6674b5116101145780637c6674b5146102cd578063822d73b2146102d5578063998c077d146102dd57610182565b806359d0f713146102a3578063714c0206146102ab5780637a4660d5146102c557610182565b8063267822471161016b5780632678224714610260578063345ef9411461026857806349a788381461027057610182565b80630572bf5f1461018757806323c6145d14610204575b600080fd5b6101ba6004803603602081101561019d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104b5565b60408051951515865262ffffff909416602086015273ffffffffffffffffffffffffffffffffffffffff928316858501529082166060850152166080830152519081900360a00190f35b6102376004803603602081101561021a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610509565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61023761073f565b61023761075b565b6102376004803603602081101561028657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610777565b6102376109ab565b6102b36109c7565b60408051918252519081900360200190f35b6102376109cd565b6102376109e9565b610237610a05565b6102e5610a21565b005b610237610b8c565b6102e56004803603602081101561030557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ba8565b6102e56004803603602081101561033857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610cb6565b6102e56004803603602081101561036b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661227a565b6102376004803603602081101561039e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612388565b610237600480360360208110156103d157600080fd5b50356125ba565b6102376125ee565b6102e561260a565b6102e5600480360360208110156103fe57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612775565b6104386004803603602081101561043157600080fd5b5035612883565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561047257818101518382015260200161045a565b50505050905090810190601f16801561049f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610237612998565b60056020526000908152604090208054600182015460029092015460ff82169262ffffff6101008404169273ffffffffffffffffffffffffffffffffffffffff640100000000909104811692918116911685565b6000610514826129b4565b505073ffffffffffffffffffffffffffffffffffffffff828116600090815260056020526040902054640100000000900416156105b257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496d7065726d61783a20414c52454144595f4558495354530000000000000000604482015290519081900360640190fd5b600854604080517f7924fedd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015291519190921691637924fedd9160248083019260209291908290030181600087803b15801561062757600080fd5b505af115801561063b573d6000803e3d6000fd5b505050506040513d602081101561065157600080fd5b5051604080517f4a5d316c000000000000000000000000000000000000000000000000000000008152905191925073ffffffffffffffffffffffffffffffffffffffff831691634a5d316c9160048082019260009290919082900301818387803b1580156106be57600080fd5b505af11580156106d2573d6000803e3d6000fd5b505050506106df82612bf4565b73ffffffffffffffffffffffffffffffffffffffff91821660009081526005602052604090208054928216640100000000027fffffffffffffffff0000000000000000000000000000000000000000ffffffff9093169290921790915590565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60045473ffffffffffffffffffffffffffffffffffffffff1681565b6000610782826129b4565b505073ffffffffffffffffffffffffffffffffffffffff828116600090815260056020526040902060010154161561081b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496d7065726d61783a20414c52454144595f4558495354530000000000000000604482015290519081900360640190fd5b600754604080517f54bcd7ad00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015260006024830181905292519316926354bcd7ad92604480840193602093929083900390910190829087803b15801561089957600080fd5b505af11580156108ad573d6000803e3d6000fd5b505050506040513d60208110156108c357600080fd5b5051604080517f4a5d316c000000000000000000000000000000000000000000000000000000008152905191925073ffffffffffffffffffffffffffffffffffffffff831691634a5d316c9160048082019260009290919082900301818387803b15801561093057600080fd5b505af1158015610944573d6000803e3d6000fd5b5050505061095182612bf4565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020526040902060010180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169282169290921790915590565b60095473ffffffffffffffffffffffffffffffffffffffff1681565b60065490565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b600a5473ffffffffffffffffffffffffffffffffffffffff1681565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60035473ffffffffffffffffffffffffffffffffffffffff163314610aa757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496d7065726d61783a20554e415554484f52495a454400000000000000000000604482015290519081900360640190fd5b600280546003805473ffffffffffffffffffffffffffffffffffffffff8082167fffffffffffffffffffffffff000000000000000000000000000000000000000080861682179687905590921690925560408051938316808552949092166020840152815190927fa328ba21363a99cbf330243928bb26a15acf20bf43166ef838e67ff5d84d4ae792908290030190a16040805173ffffffffffffffffffffffffffffffffffffffff831681526000602082015281517f01d5e27ed5584d16c62ba1a14cfde0783f979d4797a3fc41342aff17d8ef5b41929181900390910190a15050565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b60025473ffffffffffffffffffffffffffffffffffffffff163314610c2e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496d7065726d61783a20554e415554484f52495a454400000000000000000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040805191909216808252602082019390935281517f01d5e27ed5584d16c62ba1a14cfde0783f979d4797a3fc41342aff17d8ef5b41929181900390910190a15050565b600080610cc2836129b4565b91509150610cce612d9f565b5073ffffffffffffffffffffffffffffffffffffffff808416600090815260056020908152604091829020825160a081018452815460ff8116158015835262ffffff61010083041694830194909452640100000000900485169381019390935260018101548416606084015260020154909216608082015290610db257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f496d7065726d61783a20414c52454144595f494e495449414c495a4544000000604482015290519081900360640190fd5b604081015173ffffffffffffffffffffffffffffffffffffffff16610e22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612def6026913960400191505060405180910390fd5b606081015173ffffffffffffffffffffffffffffffffffffffff16610e92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612e156021913960400191505060405180910390fd5b608081015173ffffffffffffffffffffffffffffffffffffffff16610f02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612dce6021913960400191505060405180910390fd5b600a54604080517f1a788a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015291516000939290921691631a788a029160248082019260c092909190829003018186803b158015610f7957600080fd5b505afa158015610f8d573d6000803e3d6000fd5b505050506040513d60c0811015610fa357600080fd5b5060a0015190508061103c57600a54604080517fc4d66de800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff88811660048301529151919092169163c4d66de891602480830192600092919082900301818387803b15801561102357600080fd5b505af1158015611037573d6000803e3d6000fd5b505050505b60608473ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561108457600080fd5b505afa158015611098573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405260208110156110df57600080fd5b81019080805160405193929190846401000000008211156110ff57600080fd5b90830190602082018581111561111457600080fd5b825164010000000081118282018810171561112e57600080fd5b82525081516020918201929091019080838360005b8381101561115b578181015183820152602001611143565b50505050905090810190601f1680156111885780820380516001836020036101000a031916815260200191505b50604052505050905060608473ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156111d957600080fd5b505afa1580156111ed573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052602081101561123457600080fd5b810190808051604051939291908464010000000082111561125457600080fd5b90830190602082018581111561126957600080fd5b825164010000000081118282018810171561128357600080fd5b82525081516020918201929091019080838360005b838110156112b0578181015183820152602001611298565b50505050905090810190601f1680156112dd5780820380516001836020036101000a031916815260200191505b50604052505050905060606112fa856020015162ffffff16612883565b9050606083838360405160200180807f496d7065726d617820556e6956323a200000000000000000000000000000000081525060100184805190602001908083835b6020831061137957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161133c565b6001836020036101000a038019825116818451168082178552505050505050905001807f2d0000000000000000000000000000000000000000000000000000000000000081525060010183805190602001908083835b6020831061140c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016113cf565b6001836020036101000a038019825116818451168082178552505050505050905001807f2d0000000000000000000000000000000000000000000000000000000000000081525060010182805190602001908083835b6020831061149f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611462565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040529050606084848460405160200180807f690000000000000000000000000000000000000000000000000000000000000081525060010184805190602001908083835b6020831061155457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611517565b6001836020036101000a038019825116818451168082178552505050505050905001807f2d0000000000000000000000000000000000000000000000000000000000000081525060010183805190602001908083835b602083106115e757805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016115aa565b6001836020036101000a038019825116818451168082178552505050505050905001807f2d0000000000000000000000000000000000000000000000000000000000000081525060010182805190602001908083835b6020831061167a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161163d565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040529050866040015173ffffffffffffffffffffffffffffffffffffffff1663c548e3c583838d8b606001518c608001516040518663ffffffff1660e01b81526004018080602001806020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838103835288818151815260200191508051906020019080838360005b838110156117c55781810151838201526020016117ad565b50505050905090810190601f1680156117f25780820380516001836020036101000a031916815260200191505b50838103825287518152875160209182019189019080838360005b8381101561182557818101518382015260200161180d565b50505050905090810190601f1680156118525780820380516001836020036101000a031916815260200191505b50975050505050505050600060405180830381600087803b15801561187657600080fd5b505af115801561188a573d6000803e3d6000fd5b50505050848360405160200180807f496d7065726d617820556e6956323a200000000000000000000000000000000081525060100183805190602001908083835b6020831061190857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016118cb565b6001836020036101000a038019825116818451168082178552505050505050905001807f2d0000000000000000000000000000000000000000000000000000000000000081525060010182805190602001908083835b6020831061199b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161195e565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529150848360405160200180807f690000000000000000000000000000000000000000000000000000000000000081525060010183805190602001908083835b60208310611a4c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611a0f565b6001836020036101000a038019825116818451168082178552505050505050905001807f2d0000000000000000000000000000000000000000000000000000000000000081525060010182805190602001908083835b60208310611adf57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611aa2565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529050866060015173ffffffffffffffffffffffffffffffffffffffff16636a030c1183838c8b604001516040518563ffffffff1660e01b81526004018080602001806020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838103835287818151815260200191508051906020019080838360005b83811015611bf2578181015183820152602001611bda565b50505050905090810190601f168015611c1f5780820380516001836020036101000a031916815260200191505b50838103825286518152865160209182019188019080838360005b83811015611c52578181015183820152602001611c3a565b50505050905090810190601f168015611c7f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b158015611ca257600080fd5b505af1158015611cb6573d6000803e3d6000fd5b50505050838360405160200180807f496d7065726d617820556e6956323a200000000000000000000000000000000081525060100183805190602001908083835b60208310611d3457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611cf7565b6001836020036101000a038019825116818451168082178552505050505050905001807f2d0000000000000000000000000000000000000000000000000000000000000081525060010182805190602001908083835b60208310611dc757805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611d8a565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529150838360405160200180807f690000000000000000000000000000000000000000000000000000000000000081525060010183805190602001908083835b60208310611e7857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611e3b565b6001836020036101000a038019825116818451168082178552505050505050905001807f2d0000000000000000000000000000000000000000000000000000000000000081525060010182805190602001908083835b60208310611f0b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611ece565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529050866080015173ffffffffffffffffffffffffffffffffffffffff16636a030c1183838b8b604001516040518563ffffffff1660e01b81526004018080602001806020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838103835287818151815260200191508051906020019080838360005b8381101561201e578181015183820152602001612006565b50505050905090810190601f16801561204b5780820380516001836020036101000a031916815260200191505b50838103825286518152865160209182019188019080838360005b8381101561207e578181015183820152602001612066565b50505050905090810190601f1680156120ab5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b1580156120ce57600080fd5b505af11580156120e2573d6000803e3d6000fd5b505050506001600560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167f4c3ab495dc8ebd1b2f3232d7632e54411bc7e4d111475e7fbbd5547d9a28c4958a604001518b606001518c608001518d60200151604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018262ffffff16815260200194505050505060405180910390a450505050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461230057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496d7065726d61783a20554e415554484f52495a454400000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040805191909216808252602082019390935281517fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a9929181900390910190a15050565b6000612393826129b4565b505073ffffffffffffffffffffffffffffffffffffffff828116600090815260056020526040902060020154161561242c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496d7065726d61783a20414c52454144595f4558495354530000000000000000604482015290519081900360640190fd5b600754604080517f54bcd7ad00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015260016024830152915191909216916354bcd7ad9160448083019260209291908290030181600087803b1580156124a857600080fd5b505af11580156124bc573d6000803e3d6000fd5b505050506040513d60208110156124d257600080fd5b5051604080517f4a5d316c000000000000000000000000000000000000000000000000000000008152905191925073ffffffffffffffffffffffffffffffffffffffff831691634a5d316c9160048082019260009290919082900301818387803b15801561253f57600080fd5b505af1158015612553573d6000803e3d6000fd5b5050505061256082612bf4565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020526040902060020180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169282169290921790915590565b600681815481106125c757fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff16331461269057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496d7065726d61783a20554e415554484f52495a454400000000000000000000604482015290519081900360640190fd5b600080546001805473ffffffffffffffffffffffffffffffffffffffff8082167fffffffffffffffffffffffff000000000000000000000000000000000000000080861682179687905590921690925560408051938316808552949092166020840152815190927ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc92908290030190a16040805173ffffffffffffffffffffffffffffffffffffffff831681526000602082015281517fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a9929181900390910190a15050565b60025473ffffffffffffffffffffffffffffffffffffffff1633146127fb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496d7065726d61783a20554e415554484f52495a454400000000000000000000604482015290519081900360640190fd5b6004805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040805191909216808252602082019390935281517f324bacfad26225895fcf55780481bec4ce49013c92500fa1c25626ff43fbf661929181900390910190a15050565b6060816128c4575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152612993565b8160005b81156128dc57600101600a820491506128c8565b6060816040519080825280601f01601f191660200182016040528015612909576020820181803883390190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b851561298d57600a860660300160f81b8282806001900393508151811061295357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a86049550612930565b50925050505b919050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b6000808273ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156129fd57600080fd5b505afa158015612a11573d6000803e3d6000fd5b505050506040513d6020811015612a2757600080fd5b5051604080517fd21220a7000000000000000000000000000000000000000000000000000000008152905191935073ffffffffffffffffffffffffffffffffffffffff85169163d21220a791600480820192602092909190829003018186803b158015612a9357600080fd5b505afa158015612aa7573d6000803e3d6000fd5b505050506040513d6020811015612abd57600080fd5b5051600954604080517fe6a4390500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301528085166024830152915193945086821693919092169163e6a43905916044808301926020929190829003018186803b158015612b4157600080fd5b505afa158015612b55573d6000803e3d6000fd5b505050506040513d6020811015612b6b57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614612bef57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496d7065726d61783a204e4f545f554e4956325f504149520000000000000000604482015290519081900360640190fd5b915091565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260056020526040902054610100900462ffffff1615612c2e57612d9c565b60068054600181810183557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f909101805473ffffffffffffffffffffffffffffffffffffffff8086167fffffffffffffffffffffffff000000000000000000000000000000000000000092831681179093556040805160a0810182526000808252965462ffffff90811660208381019182528385018a8152606085018b8152608086018c8152998c5260059092529490992092518354915194518616640100000000027fffffffffffffffff0000000000000000000000000000000000000000ffffffff95909316610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ff9115157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009093169290921716179290921691909117815594519385018054948216948316949094179093559051600290930180549390921692169190911790555b50565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091529056fe496d7065726d61783a20424f52524f5741424c45315f4e4f545f43524541544544496d7065726d61783a20434f4c4c41544552414c495a41424c455f4e4f545f43524541544544496d7065726d61783a20424f52524f5741424c45305f4e4f545f43524541544544a265627a7a72315820d4524a2264a0465a9aba2dfdfcd457a749930d8b94d20194b376010ae31312b264736f6c6343000510003200000000000000000000000004825ca4d96064bd08605013d19cb7e108ff03d4000000000000000000000000052df909ebde5ec8b38cc90734633a906cd3c20400000000000000000000000031864bc58a47a4fc8782b4135873788e876de9eb000000000000000000000000c12e00de204d58ead5b5ce9054e94aee7747fb6c0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f0000000000000000000000005671b249391ca5e6a8fe28ceb1e85dc41c12ba7d
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101825760003560e01c80639e1348e3116100d8578063d40711271161008c578063eb5ab75f11610066578063eb5ab75f146103e8578063f76f950e1461041b578063f851a440146104ad57610182565b8063d4071127146103bb578063db5a2690146103d8578063e9c714f2146103e057610182565b8063b658ca75116100bd578063b658ca7514610322578063b71d1a0c14610355578063cbed6d711461038857610182565b80639e1348e3146102e7578063b1ccc03e146102ef57610182565b806359d0f7131161013a5780637c6674b5116101145780637c6674b5146102cd578063822d73b2146102d5578063998c077d146102dd57610182565b806359d0f713146102a3578063714c0206146102ab5780637a4660d5146102c557610182565b8063267822471161016b5780632678224714610260578063345ef9411461026857806349a788381461027057610182565b80630572bf5f1461018757806323c6145d14610204575b600080fd5b6101ba6004803603602081101561019d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104b5565b60408051951515865262ffffff909416602086015273ffffffffffffffffffffffffffffffffffffffff928316858501529082166060850152166080830152519081900360a00190f35b6102376004803603602081101561021a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610509565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61023761073f565b61023761075b565b6102376004803603602081101561028657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610777565b6102376109ab565b6102b36109c7565b60408051918252519081900360200190f35b6102376109cd565b6102376109e9565b610237610a05565b6102e5610a21565b005b610237610b8c565b6102e56004803603602081101561030557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ba8565b6102e56004803603602081101561033857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610cb6565b6102e56004803603602081101561036b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661227a565b6102376004803603602081101561039e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612388565b610237600480360360208110156103d157600080fd5b50356125ba565b6102376125ee565b6102e561260a565b6102e5600480360360208110156103fe57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612775565b6104386004803603602081101561043157600080fd5b5035612883565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561047257818101518382015260200161045a565b50505050905090810190601f16801561049f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610237612998565b60056020526000908152604090208054600182015460029092015460ff82169262ffffff6101008404169273ffffffffffffffffffffffffffffffffffffffff640100000000909104811692918116911685565b6000610514826129b4565b505073ffffffffffffffffffffffffffffffffffffffff828116600090815260056020526040902054640100000000900416156105b257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496d7065726d61783a20414c52454144595f4558495354530000000000000000604482015290519081900360640190fd5b600854604080517f7924fedd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015291519190921691637924fedd9160248083019260209291908290030181600087803b15801561062757600080fd5b505af115801561063b573d6000803e3d6000fd5b505050506040513d602081101561065157600080fd5b5051604080517f4a5d316c000000000000000000000000000000000000000000000000000000008152905191925073ffffffffffffffffffffffffffffffffffffffff831691634a5d316c9160048082019260009290919082900301818387803b1580156106be57600080fd5b505af11580156106d2573d6000803e3d6000fd5b505050506106df82612bf4565b73ffffffffffffffffffffffffffffffffffffffff91821660009081526005602052604090208054928216640100000000027fffffffffffffffff0000000000000000000000000000000000000000ffffffff9093169290921790915590565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60045473ffffffffffffffffffffffffffffffffffffffff1681565b6000610782826129b4565b505073ffffffffffffffffffffffffffffffffffffffff828116600090815260056020526040902060010154161561081b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496d7065726d61783a20414c52454144595f4558495354530000000000000000604482015290519081900360640190fd5b600754604080517f54bcd7ad00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015260006024830181905292519316926354bcd7ad92604480840193602093929083900390910190829087803b15801561089957600080fd5b505af11580156108ad573d6000803e3d6000fd5b505050506040513d60208110156108c357600080fd5b5051604080517f4a5d316c000000000000000000000000000000000000000000000000000000008152905191925073ffffffffffffffffffffffffffffffffffffffff831691634a5d316c9160048082019260009290919082900301818387803b15801561093057600080fd5b505af1158015610944573d6000803e3d6000fd5b5050505061095182612bf4565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020526040902060010180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169282169290921790915590565b60095473ffffffffffffffffffffffffffffffffffffffff1681565b60065490565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b600a5473ffffffffffffffffffffffffffffffffffffffff1681565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60035473ffffffffffffffffffffffffffffffffffffffff163314610aa757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496d7065726d61783a20554e415554484f52495a454400000000000000000000604482015290519081900360640190fd5b600280546003805473ffffffffffffffffffffffffffffffffffffffff8082167fffffffffffffffffffffffff000000000000000000000000000000000000000080861682179687905590921690925560408051938316808552949092166020840152815190927fa328ba21363a99cbf330243928bb26a15acf20bf43166ef838e67ff5d84d4ae792908290030190a16040805173ffffffffffffffffffffffffffffffffffffffff831681526000602082015281517f01d5e27ed5584d16c62ba1a14cfde0783f979d4797a3fc41342aff17d8ef5b41929181900390910190a15050565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b60025473ffffffffffffffffffffffffffffffffffffffff163314610c2e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496d7065726d61783a20554e415554484f52495a454400000000000000000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040805191909216808252602082019390935281517f01d5e27ed5584d16c62ba1a14cfde0783f979d4797a3fc41342aff17d8ef5b41929181900390910190a15050565b600080610cc2836129b4565b91509150610cce612d9f565b5073ffffffffffffffffffffffffffffffffffffffff808416600090815260056020908152604091829020825160a081018452815460ff8116158015835262ffffff61010083041694830194909452640100000000900485169381019390935260018101548416606084015260020154909216608082015290610db257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f496d7065726d61783a20414c52454144595f494e495449414c495a4544000000604482015290519081900360640190fd5b604081015173ffffffffffffffffffffffffffffffffffffffff16610e22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612def6026913960400191505060405180910390fd5b606081015173ffffffffffffffffffffffffffffffffffffffff16610e92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612e156021913960400191505060405180910390fd5b608081015173ffffffffffffffffffffffffffffffffffffffff16610f02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612dce6021913960400191505060405180910390fd5b600a54604080517f1a788a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015291516000939290921691631a788a029160248082019260c092909190829003018186803b158015610f7957600080fd5b505afa158015610f8d573d6000803e3d6000fd5b505050506040513d60c0811015610fa357600080fd5b5060a0015190508061103c57600a54604080517fc4d66de800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff88811660048301529151919092169163c4d66de891602480830192600092919082900301818387803b15801561102357600080fd5b505af1158015611037573d6000803e3d6000fd5b505050505b60608473ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561108457600080fd5b505afa158015611098573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405260208110156110df57600080fd5b81019080805160405193929190846401000000008211156110ff57600080fd5b90830190602082018581111561111457600080fd5b825164010000000081118282018810171561112e57600080fd5b82525081516020918201929091019080838360005b8381101561115b578181015183820152602001611143565b50505050905090810190601f1680156111885780820380516001836020036101000a031916815260200191505b50604052505050905060608473ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156111d957600080fd5b505afa1580156111ed573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052602081101561123457600080fd5b810190808051604051939291908464010000000082111561125457600080fd5b90830190602082018581111561126957600080fd5b825164010000000081118282018810171561128357600080fd5b82525081516020918201929091019080838360005b838110156112b0578181015183820152602001611298565b50505050905090810190601f1680156112dd5780820380516001836020036101000a031916815260200191505b50604052505050905060606112fa856020015162ffffff16612883565b9050606083838360405160200180807f496d7065726d617820556e6956323a200000000000000000000000000000000081525060100184805190602001908083835b6020831061137957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161133c565b6001836020036101000a038019825116818451168082178552505050505050905001807f2d0000000000000000000000000000000000000000000000000000000000000081525060010183805190602001908083835b6020831061140c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016113cf565b6001836020036101000a038019825116818451168082178552505050505050905001807f2d0000000000000000000000000000000000000000000000000000000000000081525060010182805190602001908083835b6020831061149f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611462565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040529050606084848460405160200180807f690000000000000000000000000000000000000000000000000000000000000081525060010184805190602001908083835b6020831061155457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611517565b6001836020036101000a038019825116818451168082178552505050505050905001807f2d0000000000000000000000000000000000000000000000000000000000000081525060010183805190602001908083835b602083106115e757805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016115aa565b6001836020036101000a038019825116818451168082178552505050505050905001807f2d0000000000000000000000000000000000000000000000000000000000000081525060010182805190602001908083835b6020831061167a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161163d565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040529050866040015173ffffffffffffffffffffffffffffffffffffffff1663c548e3c583838d8b606001518c608001516040518663ffffffff1660e01b81526004018080602001806020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838103835288818151815260200191508051906020019080838360005b838110156117c55781810151838201526020016117ad565b50505050905090810190601f1680156117f25780820380516001836020036101000a031916815260200191505b50838103825287518152875160209182019189019080838360005b8381101561182557818101518382015260200161180d565b50505050905090810190601f1680156118525780820380516001836020036101000a031916815260200191505b50975050505050505050600060405180830381600087803b15801561187657600080fd5b505af115801561188a573d6000803e3d6000fd5b50505050848360405160200180807f496d7065726d617820556e6956323a200000000000000000000000000000000081525060100183805190602001908083835b6020831061190857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016118cb565b6001836020036101000a038019825116818451168082178552505050505050905001807f2d0000000000000000000000000000000000000000000000000000000000000081525060010182805190602001908083835b6020831061199b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161195e565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529150848360405160200180807f690000000000000000000000000000000000000000000000000000000000000081525060010183805190602001908083835b60208310611a4c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611a0f565b6001836020036101000a038019825116818451168082178552505050505050905001807f2d0000000000000000000000000000000000000000000000000000000000000081525060010182805190602001908083835b60208310611adf57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611aa2565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529050866060015173ffffffffffffffffffffffffffffffffffffffff16636a030c1183838c8b604001516040518563ffffffff1660e01b81526004018080602001806020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838103835287818151815260200191508051906020019080838360005b83811015611bf2578181015183820152602001611bda565b50505050905090810190601f168015611c1f5780820380516001836020036101000a031916815260200191505b50838103825286518152865160209182019188019080838360005b83811015611c52578181015183820152602001611c3a565b50505050905090810190601f168015611c7f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b158015611ca257600080fd5b505af1158015611cb6573d6000803e3d6000fd5b50505050838360405160200180807f496d7065726d617820556e6956323a200000000000000000000000000000000081525060100183805190602001908083835b60208310611d3457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611cf7565b6001836020036101000a038019825116818451168082178552505050505050905001807f2d0000000000000000000000000000000000000000000000000000000000000081525060010182805190602001908083835b60208310611dc757805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611d8a565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529150838360405160200180807f690000000000000000000000000000000000000000000000000000000000000081525060010183805190602001908083835b60208310611e7857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611e3b565b6001836020036101000a038019825116818451168082178552505050505050905001807f2d0000000000000000000000000000000000000000000000000000000000000081525060010182805190602001908083835b60208310611f0b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611ece565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529050866080015173ffffffffffffffffffffffffffffffffffffffff16636a030c1183838b8b604001516040518563ffffffff1660e01b81526004018080602001806020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838103835287818151815260200191508051906020019080838360005b8381101561201e578181015183820152602001612006565b50505050905090810190601f16801561204b5780820380516001836020036101000a031916815260200191505b50838103825286518152865160209182019188019080838360005b8381101561207e578181015183820152602001612066565b50505050905090810190601f1680156120ab5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b1580156120ce57600080fd5b505af11580156120e2573d6000803e3d6000fd5b505050506001600560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167f4c3ab495dc8ebd1b2f3232d7632e54411bc7e4d111475e7fbbd5547d9a28c4958a604001518b606001518c608001518d60200151604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018262ffffff16815260200194505050505060405180910390a450505050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461230057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496d7065726d61783a20554e415554484f52495a454400000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040805191909216808252602082019390935281517fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a9929181900390910190a15050565b6000612393826129b4565b505073ffffffffffffffffffffffffffffffffffffffff828116600090815260056020526040902060020154161561242c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496d7065726d61783a20414c52454144595f4558495354530000000000000000604482015290519081900360640190fd5b600754604080517f54bcd7ad00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015260016024830152915191909216916354bcd7ad9160448083019260209291908290030181600087803b1580156124a857600080fd5b505af11580156124bc573d6000803e3d6000fd5b505050506040513d60208110156124d257600080fd5b5051604080517f4a5d316c000000000000000000000000000000000000000000000000000000008152905191925073ffffffffffffffffffffffffffffffffffffffff831691634a5d316c9160048082019260009290919082900301818387803b15801561253f57600080fd5b505af1158015612553573d6000803e3d6000fd5b5050505061256082612bf4565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020526040902060020180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169282169290921790915590565b600681815481106125c757fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff16331461269057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496d7065726d61783a20554e415554484f52495a454400000000000000000000604482015290519081900360640190fd5b600080546001805473ffffffffffffffffffffffffffffffffffffffff8082167fffffffffffffffffffffffff000000000000000000000000000000000000000080861682179687905590921690925560408051938316808552949092166020840152815190927ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc92908290030190a16040805173ffffffffffffffffffffffffffffffffffffffff831681526000602082015281517fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a9929181900390910190a15050565b60025473ffffffffffffffffffffffffffffffffffffffff1633146127fb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496d7065726d61783a20554e415554484f52495a454400000000000000000000604482015290519081900360640190fd5b6004805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040805191909216808252602082019390935281517f324bacfad26225895fcf55780481bec4ce49013c92500fa1c25626ff43fbf661929181900390910190a15050565b6060816128c4575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152612993565b8160005b81156128dc57600101600a820491506128c8565b6060816040519080825280601f01601f191660200182016040528015612909576020820181803883390190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b851561298d57600a860660300160f81b8282806001900393508151811061295357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a86049550612930565b50925050505b919050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b6000808273ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156129fd57600080fd5b505afa158015612a11573d6000803e3d6000fd5b505050506040513d6020811015612a2757600080fd5b5051604080517fd21220a7000000000000000000000000000000000000000000000000000000008152905191935073ffffffffffffffffffffffffffffffffffffffff85169163d21220a791600480820192602092909190829003018186803b158015612a9357600080fd5b505afa158015612aa7573d6000803e3d6000fd5b505050506040513d6020811015612abd57600080fd5b5051600954604080517fe6a4390500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301528085166024830152915193945086821693919092169163e6a43905916044808301926020929190829003018186803b158015612b4157600080fd5b505afa158015612b55573d6000803e3d6000fd5b505050506040513d6020811015612b6b57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614612bef57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496d7065726d61783a204e4f545f554e4956325f504149520000000000000000604482015290519081900360640190fd5b915091565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260056020526040902054610100900462ffffff1615612c2e57612d9c565b60068054600181810183557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f909101805473ffffffffffffffffffffffffffffffffffffffff8086167fffffffffffffffffffffffff000000000000000000000000000000000000000092831681179093556040805160a0810182526000808252965462ffffff90811660208381019182528385018a8152606085018b8152608086018c8152998c5260059092529490992092518354915194518616640100000000027fffffffffffffffff0000000000000000000000000000000000000000ffffffff95909316610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ff9115157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009093169290921716179290921691909117815594519385018054948216948316949094179093559051600290930180549390921692169190911790555b50565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091529056fe496d7065726d61783a20424f52524f5741424c45315f4e4f545f43524541544544496d7065726d61783a20434f4c4c41544552414c495a41424c455f4e4f545f43524541544544496d7065726d61783a20424f52524f5741424c45305f4e4f545f43524541544544a265627a7a72315820d4524a2264a0465a9aba2dfdfcd457a749930d8b94d20194b376010ae31312b264736f6c63430005100032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000004825ca4d96064bd08605013d19cb7e108ff03d4000000000000000000000000052df909ebde5ec8b38cc90734633a906cd3c20400000000000000000000000031864bc58a47a4fc8782b4135873788e876de9eb000000000000000000000000c12e00de204d58ead5b5ce9054e94aee7747fb6c0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f0000000000000000000000005671b249391ca5e6a8fe28ceb1e85dc41c12ba7d
-----Decoded View---------------
Arg [0] : _admin (address): 0x04825ca4d96064bD08605013D19Cb7E108ff03d4
Arg [1] : _reservesAdmin (address): 0x052dF909ebDe5eC8b38Cc90734633a906Cd3c204
Arg [2] : _bDeployer (address): 0x31864bc58A47A4Fc8782B4135873788E876dE9eB
Arg [3] : _cDeployer (address): 0xC12E00DE204d58eAd5B5cE9054E94aeE7747fB6C
Arg [4] : _uniswapV2Factory (address): 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f
Arg [5] : _simpleUniswapOracle (address): 0x5671B249391cA5E6a8FE28CEb1e85Dc41c12Ba7D
-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 00000000000000000000000004825ca4d96064bd08605013d19cb7e108ff03d4
Arg [1] : 000000000000000000000000052df909ebde5ec8b38cc90734633a906cd3c204
Arg [2] : 00000000000000000000000031864bc58a47a4fc8782b4135873788e876de9eb
Arg [3] : 000000000000000000000000c12e00de204d58ead5b5ce9054e94aee7747fb6c
Arg [4] : 0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f
Arg [5] : 0000000000000000000000005671b249391ca5e6a8fe28ceb1e85dc41c12ba7d
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ 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.