Contract 0x8C3736e2FE63cc2cD89Ee228D9dBcAb6CE5B767B 8

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x842aa0d8c1e99e9d54a2ab85b27ca41715252d75ed7e939fd49270da83ec152a_accept Reserves...177752582022-07-16 19:05:38140 days 21 hrs ago0x5ec869c1cb378bb77bc55bb56129399f6828c8c5 IN  Impermax: Factory0 ETH0.000090804175 ETH
0x8f1d89b1ac1afad322b93bca49d65a5ca0758c3922df7bc26888c02e0abf373f_accept Admin177752532022-07-16 19:05:38140 days 21 hrs ago0x5ec869c1cb378bb77bc55bb56129399f6828c8c5 IN  Impermax: Factory0 ETH0.00009109882 ETH
0x67804d80ee688c62fd06e6249d23ea7114d9fda7897f5872f43d5c64d3ba3c63_set Pending Adm...177752382022-07-16 19:04:40140 days 21 hrs ago0x04825ca4d96064bd08605013d19cb7e108ff03d4 IN  Impermax: Factory0 ETH0.000110242579 ETH
0xe3078fb93713cd3913d9ca267c47e51a9fa21edef97b0745a869a35a23d00eca_set Reserves Pe...177752112022-07-16 19:03:57140 days 21 hrs ago0x052df909ebde5ec8b38cc90734633a906cd3c204 IN  Impermax: Factory0 ETH0.000109849719 ETH
0x42feb58fe1653b56a80bbc15fa69df02b83d0e2daae480f850a7739b6a8cefda_set Reserves Ma...177752082022-07-16 19:03:57140 days 21 hrs ago0x052df909ebde5ec8b38cc90734633a906cd3c204 IN  Impermax: Factory0 ETH0.000099388639 ETH
0x9a378700eabc75f3e517235ee580f9d142cb9b6eb831cfd28c386a18139f9277Initialize Lendi...40192982021-12-22 12:34:19347 days 3 hrs ago0x9fc5341db9a9cdf8337b4bd286d4cfc03b20ad35 IN  Impermax: Factory0 ETH0.002908279727 ETH
0x222a854c50de50b85841d8ba5c5744e95f57aad74aa41dc85290d00a8fbb06dcCreate Collatera...40192322021-12-22 12:32:23347 days 3 hrs ago0x9fc5341db9a9cdf8337b4bd286d4cfc03b20ad35 IN  Impermax: Factory0 ETH0.001241702358 ETH
0x71662f9a0148ddc72c5c83cb4c46907a89afc7bc50ccb07c02075f56fda05a30Create Borrowabl...40192302021-12-22 12:32:23347 days 3 hrs ago0x9fc5341db9a9cdf8337b4bd286d4cfc03b20ad35 IN  Impermax: Factory0 ETH0.001781844175 ETH
0xc17e536ce3b90c6d5bc7f8562c7de0dd69d82b923ca68380e224a4da9b214113Create Borrowabl...40192202021-12-22 12:31:05347 days 3 hrs ago0x9fc5341db9a9cdf8337b4bd286d4cfc03b20ad35 IN  Impermax: Factory0 ETH0.002039656243 ETH
0x2b7802078f90b45538c7fee8d102d71a31a2d0c4d4aca8b722bf71d966332ca0Initialize Lendi...40191562021-12-22 12:28:42347 days 3 hrs ago0x9fc5341db9a9cdf8337b4bd286d4cfc03b20ad35 IN  Impermax: Factory0 ETH0.002910079137 ETH
0xe9018fdfb277de99a2a8f74a161db82f256bccc5ca8a83ae41ecf962da76f100Create Collatera...40191532021-12-22 12:28:42347 days 3 hrs ago0x9fc5341db9a9cdf8337b4bd286d4cfc03b20ad35 IN  Impermax: Factory0 ETH0.001242609488 ETH
0x5f1c09af59862e27daa4ee2c96407f32c147104375aa14710dbe33a51758bf3eCreate Borrowabl...40191492021-12-22 12:27:28347 days 3 hrs ago0x9fc5341db9a9cdf8337b4bd286d4cfc03b20ad35 IN  Impermax: Factory0 ETH0.001780877646 ETH
0x16d1c95878e09da237e47d6d37e2fc60da6d7a9d6bcaa027bad009353fef707eCreate Borrowabl...40191462021-12-22 12:27:28347 days 3 hrs ago0x9fc5341db9a9cdf8337b4bd286d4cfc03b20ad35 IN  Impermax: Factory0 ETH0.002040518178 ETH
0x25650963c67f342bd39253a9525ea2b1a08e580148b8503f904f0ead6e702f2aInitialize Lendi...22114962021-10-14 10:52:11416 days 5 hrs ago0x9fc5341db9a9cdf8337b4bd286d4cfc03b20ad35 IN  Impermax: Factory0 ETH0.004113038036 ETH
0x25e971f4c47a99f2c01c38467450433c0cfe621f5fe99954f290c0630d58c2e2Create Collatera...22114932021-10-14 10:52:11416 days 5 hrs ago0x9fc5341db9a9cdf8337b4bd286d4cfc03b20ad35 IN  Impermax: Factory0 ETH0.001756315784 ETH
0x0235b67e5d4957da10909a737161fb1ee4523adb0915ff4d07e1fa19c7bb0c9fCreate Borrowabl...22114882021-10-14 10:52:11416 days 5 hrs ago0x9fc5341db9a9cdf8337b4bd286d4cfc03b20ad35 IN  Impermax: Factory0 ETH0.002518330381 ETH
0x3f531bdceb2de60694740de7262cda404d78d82ad63e0a22ab2446f0f17402e0Create Borrowabl...22114862021-10-14 10:50:33416 days 5 hrs ago0x9fc5341db9a9cdf8337b4bd286d4cfc03b20ad35 IN  Impermax: Factory0 ETH0.002881532551 ETH
0xf4a068b42fdcbfa4d71d4449d02d407fc1e532431b43f3e75bc390bb6a9b402fInitialize Lendi...22114632021-10-14 10:50:33416 days 5 hrs ago0x9fc5341db9a9cdf8337b4bd286d4cfc03b20ad35 IN  Impermax: Factory0 ETH0.004113081838 ETH
0xf7d935b91fd6f1dc17a399462fa7f1bbf1d78d788d9accb34ea2ab3677f8e625Create Collatera...22114602021-10-14 10:50:33416 days 5 hrs ago0x9fc5341db9a9cdf8337b4bd286d4cfc03b20ad35 IN  Impermax: Factory0 ETH0.001754979818 ETH
0x8ba6dd3ba6de9897de6f5896a4e76882b259515c30444879248b29cde74f2331Create Borrowabl...22114562021-10-14 10:50:33416 days 5 hrs ago0x9fc5341db9a9cdf8337b4bd286d4cfc03b20ad35 IN  Impermax: Factory0 ETH0.002518376008 ETH
0x11bb8968c2e9be14482f2d686c7f3acad4ee0654cb7885f692b86e4b5dae6ed1Create Borrowabl...22114542021-10-14 10:50:33416 days 5 hrs ago0x9fc5341db9a9cdf8337b4bd286d4cfc03b20ad35 IN  Impermax: Factory0 ETH0.002880238561 ETH
0xac65196dde42b1896d307d44287cbda230e9c03208ea95bc87cbbd44076b26ebInitialize Lendi...21892372021-10-13 16:00:52417 days 18 mins ago0x9fc5341db9a9cdf8337b4bd286d4cfc03b20ad35 IN  Impermax: Factory0 ETH0.003728236898 ETH
0x3441d622ed08db44524dadd73b976f655535a113bd8e3e7ac958276772182694Create Collatera...21892322021-10-13 16:00:52417 days 18 mins ago0x9fc5341db9a9cdf8337b4bd286d4cfc03b20ad35 IN  Impermax: Factory0 ETH0.001591901998 ETH
0xb7ab73348f9e61575f3462f92fab4dade04e8ae0b0a8ff95a3bda80997fbb277Create Borrowabl...21892302021-10-13 16:00:06417 days 19 mins ago0x9fc5341db9a9cdf8337b4bd286d4cfc03b20ad35 IN  Impermax: Factory0 ETH0.002282692012 ETH
0xe5da742cf0bc4eb9c5a364521ae7ac1fdb94939d05c1766642e211a4c61d987dCreate Borrowabl...21892282021-10-13 16:00:06417 days 19 mins ago0x9fc5341db9a9cdf8337b4bd286d4cfc03b20ad35 IN  Impermax: Factory0 ETH0.002614165145 ETH
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x3a46db37a854a40f33cd000e81629b6f56f91d89adadf2b4b77d91ce75017e89435279732022-12-04 12:05:374 hrs 14 mins ago 0x8cbe3495cf37ad65f5f1c63ed8713613d8e537bc Impermax: Factory0 ETH
0xd228db10b7f2aad8ff94125754db648330d170223d39b73309d4cd252cecd623434810132022-12-04 8:37:117 hrs 42 mins ago 0x608b8da26cf1dd94ae62bfe3798f808d65a51600 Impermax: Factory0 ETH
0xcdfe75987f93696ffa38c1d06569cfdaa9d007a80be6f6f139293a25ee4906ce433803872022-12-03 22:47:5517 hrs 31 mins ago 0x0c68cf21672f0d563ebd5f83a11cfeb514e008d0 Impermax: Factory0 ETH
0x793b1eba35cdd60300f2162b137435a3346e4b1919e9b69e7e574189e78714b7433701962022-12-03 21:48:4718 hrs 30 mins ago 0x0c68cf21672f0d563ebd5f83a11cfeb514e008d0 Impermax: Factory0 ETH
0x53bfa1f85d8e02f2259b997b67e9cdfb470ea82232a1458c11376ecf2788115e433573342022-12-03 20:38:5519 hrs 40 mins ago 0x4e7c57461a23a973c5487f0658c660aa52dd196d Impermax: Factory0 ETH
0x69a73beddbe2119a59fbd4a9daa0c4f917fa6aa022f2027522850aab1f73dbad433261822022-12-03 17:55:4222 hrs 24 mins ago 0x0c68cf21672f0d563ebd5f83a11cfeb514e008d0 Impermax: Factory0 ETH
0xc04a5a17edbce8619c223e2d70ec8bf1e26b2317d4880bd99cfb2db27426ee03432617702022-12-03 13:04:291 day 3 hrs ago 0x0c68cf21672f0d563ebd5f83a11cfeb514e008d0 Impermax: Factory0 ETH
0x9fa1dbb25b763f994b99e10f03e50eb62dcabaeea2cd881e12b9e8ccbcbc2eae432188582022-12-03 9:47:101 day 6 hrs ago 0x0c68cf21672f0d563ebd5f83a11cfeb514e008d0 Impermax: Factory0 ETH
0xe10c8dbab74351a43cae1d35993493deaf269e71403c7e406cca3ff7bf197f5f431708242022-12-03 5:57:111 day 10 hrs ago 0x3920e5abc7b52b22028c3d856bb20fcb606eaeb1 Impermax: Factory0 ETH
0xb31fcd1764b6ab43b8908cc31cab18eb27b4568a61dc819dd6939207568cb28b431699032022-12-03 5:52:151 day 10 hrs ago 0x43337fa7d074dd3d3d9c6bffc0f474ee8b6c9fe3 Impermax: Factory0 ETH
0xb31fcd1764b6ab43b8908cc31cab18eb27b4568a61dc819dd6939207568cb28b431699032022-12-03 5:52:151 day 10 hrs ago 0x43337fa7d074dd3d3d9c6bffc0f474ee8b6c9fe3 Impermax: Factory0 ETH
0x63ce85f61632f046baefbc12dbf5f8b53cfb543fc993b5b53fcb9e3d35aafc78431672902022-12-03 5:38:091 day 10 hrs ago 0x0c68cf21672f0d563ebd5f83a11cfeb514e008d0 Impermax: Factory0 ETH
0xb2e4dfe9a32226503e7bc632b1c8306c1c85d610bcd58000fc98706fef168f0e431642212022-12-03 5:22:151 day 10 hrs ago 0x43337fa7d074dd3d3d9c6bffc0f474ee8b6c9fe3 Impermax: Factory0 ETH
0xb2e4dfe9a32226503e7bc632b1c8306c1c85d610bcd58000fc98706fef168f0e431642212022-12-03 5:22:151 day 10 hrs ago 0x43337fa7d074dd3d3d9c6bffc0f474ee8b6c9fe3 Impermax: Factory0 ETH
0xeeb49242f694dc59b0dc5bceb6a10d2ef3f2bac92f016c6adfc78a52a02486b7431500372022-12-03 3:58:561 day 12 hrs ago 0x0c68cf21672f0d563ebd5f83a11cfeb514e008d0 Impermax: Factory0 ETH
0xf8da74ab5466e8efc7c732d40893f4b3dcc551e1054a24967fc2513e216a068f431326202022-12-03 2:05:391 day 14 hrs ago 0x608b8da26cf1dd94ae62bfe3798f808d65a51600 Impermax: Factory0 ETH
0x11d1348bca1251a14bb1c3f0ebd37aca1555ac6d3ce4b44619101184bed2b33f431031752022-12-02 22:42:061 day 17 hrs ago 0x0c68cf21672f0d563ebd5f83a11cfeb514e008d0 Impermax: Factory0 ETH
0xafc8587bdd7a1743ae12557e86ce55d39d1705585fe8371308fea1a102071559430840112022-12-02 20:52:311 day 19 hrs ago 0xa63c208d2fbb9a46e86cd783dfa859cd0b38a51f Impermax: Factory0 ETH
0x548ea7e990da22e4e273622d390bb7934ae438346a16df94db22660665aa6cb1430514802022-12-02 18:10:391 day 22 hrs ago 0x3920e5abc7b52b22028c3d856bb20fcb606eaeb1 Impermax: Factory0 ETH
0x14a1341ced7427ea58b4242570124e889bfb08f56c79a58e7fabdc7aff369ec8430316552022-12-02 16:33:171 day 23 hrs ago 0x0c68cf21672f0d563ebd5f83a11cfeb514e008d0 Impermax: Factory0 ETH
0x359a10bb08489fd53e6572ed1d7b95e864bbf75fea1d7eb10c0a1e146ecbd663429688092022-12-02 11:39:332 days 4 hrs ago 0x4e7c57461a23a973c5487f0658c660aa52dd196d Impermax: Factory0 ETH
0xed7ae153212ef231cdcf2a2db9a7ff85548b2d20909a4eaed02c5d8094b00540429686882022-12-02 11:39:002 days 4 hrs ago 0x4e7c57461a23a973c5487f0658c660aa52dd196d Impermax: Factory0 ETH
0x1a47d847641be13bc8e957a0fde25926a48403293eb3f6df381d6c558c5bf886429110552022-12-02 7:12:132 days 9 hrs ago 0x0c68cf21672f0d563ebd5f83a11cfeb514e008d0 Impermax: Factory0 ETH
0x40164b49af5b3bf70ec1f4c08feba72297a3c5090c462aa78baf750368536735429099842022-12-02 7:06:522 days 9 hrs ago 0x0c68cf21672f0d563ebd5f83a11cfeb514e008d0 Impermax: Factory0 ETH
0x2caa297fc88dcfea1297cba2d84c876b4ad6b4b3dc9d6c04d7b8ba1de6ffdce1429095692022-12-02 7:04:502 days 9 hrs ago 0x0c68cf21672f0d563ebd5f83a11cfeb514e008d0 Impermax: Factory0 ETH
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Factory

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
Yes with 999999 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Arbiscan on 2021-09-13
*/

// File: contracts\interfaces\IFactory.sol

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 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;
}

// File: contracts\interfaces\IBDeployer.sol

pragma solidity >=0.5.0;

interface IBDeployer {
	function deployBorrowable(address uniswapV2Pair, uint8 index) external returns (address borrowable);
}

// File: contracts\interfaces\IBorrowable.sol

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;
}

// File: contracts\interfaces\ICDeployer.sol

pragma solidity >=0.5.0;

interface ICDeployer {
	function deployCollateral(address uniswapV2Pair) external returns (address collateral);
}

// File: contracts\interfaces\ICollateral.sol

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;
}

// File: contracts\interfaces\IERC20.sol

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);
}

// File: contracts\interfaces\IUniswapV2Pair.sol

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);
}

// File: contracts\interfaces\ISimpleUniswapOracle.sol

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);
}

// File: contracts\Factory.sol

pragma solidity =0.5.16;









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;
	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, ISimpleUniswapOracle _simpleUniswapOracle) public {
		admin = _admin;
		reservesAdmin = _reservesAdmin;
		bDeployer = _bDeployer;
		cDeployer = _cDeployer;
		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();
	}
	
	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);
		
		ICollateral(lPool.collateral)._initialize("Impermax Collateral", "imxC", uniswapV2Pair, lPool.borrowable0, lPool.borrowable1);
		IBorrowable(lPool.borrowable0)._initialize("Impermax Borrowable", "imxB", token0, lPool.collateral);
		IBorrowable(lPool.borrowable1)._initialize("Impermax Borrowable", "imxB", 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);
	}
}

Contract ABI

[{"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 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"}]

608060405234801561001057600080fd5b50604051611e30380380611e30833981810160405260a081101561003357600080fd5b5080516020808301516040808501516060860151608090960151600080546001600160a01b03199081166001600160a01b03808a169182178455600280548416828a16179055600780548416828816179055600880548416828d161790556009805490931690851617909155845191825295810195909552825195969395919490927ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc92918290030190a160408051600081526001600160a01b038616602082015281517fa328ba21363a99cbf330243928bb26a15acf20bf43166ef838e67ff5d84d4ae7929181900390910190a15050505050611cfa806101366000396000f3fe608060405234801561001057600080fd5b506004361061016c5760003560e01c80639e1348e3116100cd578063d407112711610081578063e9c714f211610066578063e9c714f2146103c2578063eb5ab75f146103ca578063f851a440146103fd5761016c565b8063d40711271461039d578063db5a2690146103ba5761016c565b8063b658ca75116100b2578063b658ca7514610304578063b71d1a0c14610337578063cbed6d711461036a5761016c565b80639e1348e3146102c9578063b1ccc03e146102d15761016c565b8063714c0206116101245780637c6674b5116101095780637c6674b5146102af578063822d73b2146102b7578063998c077d146102bf5761016c565b8063714c02061461028d5780637a4660d5146102a75761016c565b80632678224711610155578063267822471461024a578063345ef9411461025257806349a788381461025a5761016c565b80630572bf5f1461017157806323c6145d146101ee575b600080fd5b6101a46004803603602081101561018757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610405565b60408051951515865262ffffff909416602086015273ffffffffffffffffffffffffffffffffffffffff928316858501529082166060850152166080830152519081900360a00190f35b6102216004803603602081101561020457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610459565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61022161068f565b6102216106ab565b6102216004803603602081101561027057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166106c7565b6102956108fb565b60408051918252519081900360200190f35b610221610901565b61022161091d565b610221610939565b6102c7610955565b005b610221610ac0565b6102c7600480360360208110156102e757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610adc565b6102c76004803603602081101561031a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610bea565b6102c76004803603602081101561034d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661134c565b6102216004803603602081101561038057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661145a565b610221600480360360208110156103b357600080fd5b503561168c565b6102216116c0565b6102c76116dc565b6102c7600480360360208110156103e057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611847565b610221611955565b60056020526000908152604090208054600182015460029092015460ff82169262ffffff6101008404169273ffffffffffffffffffffffffffffffffffffffff640100000000909104811692918116911685565b600061046482611971565b505073ffffffffffffffffffffffffffffffffffffffff8281166000908152600560205260409020546401000000009004161561050257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496d7065726d61783a20414c52454144595f4558495354530000000000000000604482015290519081900360640190fd5b600854604080517f7924fedd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015291519190921691637924fedd9160248083019260209291908290030181600087803b15801561057757600080fd5b505af115801561058b573d6000803e3d6000fd5b505050506040513d60208110156105a157600080fd5b5051604080517f4a5d316c000000000000000000000000000000000000000000000000000000008152905191925073ffffffffffffffffffffffffffffffffffffffff831691634a5d316c9160048082019260009290919082900301818387803b15801561060e57600080fd5b505af1158015610622573d6000803e3d6000fd5b5050505061062f82611a84565b73ffffffffffffffffffffffffffffffffffffffff91821660009081526005602052604090208054928216640100000000027fffffffffffffffff0000000000000000000000000000000000000000ffffffff9093169290921790915590565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60045473ffffffffffffffffffffffffffffffffffffffff1681565b60006106d282611971565b505073ffffffffffffffffffffffffffffffffffffffff828116600090815260056020526040902060010154161561076b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496d7065726d61783a20414c52454144595f4558495354530000000000000000604482015290519081900360640190fd5b600754604080517f54bcd7ad00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015260006024830181905292519316926354bcd7ad92604480840193602093929083900390910190829087803b1580156107e957600080fd5b505af11580156107fd573d6000803e3d6000fd5b505050506040513d602081101561081357600080fd5b5051604080517f4a5d316c000000000000000000000000000000000000000000000000000000008152905191925073ffffffffffffffffffffffffffffffffffffffff831691634a5d316c9160048082019260009290919082900301818387803b15801561088057600080fd5b505af1158015610894573d6000803e3d6000fd5b505050506108a182611a84565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020526040902060010180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169282169290921790915590565b60065490565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b60095473ffffffffffffffffffffffffffffffffffffffff1681565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60035473ffffffffffffffffffffffffffffffffffffffff1633146109db57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496d7065726d61783a20554e415554484f52495a454400000000000000000000604482015290519081900360640190fd5b600280546003805473ffffffffffffffffffffffffffffffffffffffff8082167fffffffffffffffffffffffff000000000000000000000000000000000000000080861682179687905590921690925560408051938316808552949092166020840152815190927fa328ba21363a99cbf330243928bb26a15acf20bf43166ef838e67ff5d84d4ae792908290030190a16040805173ffffffffffffffffffffffffffffffffffffffff831681526000602082015281517f01d5e27ed5584d16c62ba1a14cfde0783f979d4797a3fc41342aff17d8ef5b41929181900390910190a15050565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b60025473ffffffffffffffffffffffffffffffffffffffff163314610b6257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496d7065726d61783a20554e415554484f52495a454400000000000000000000604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040805191909216808252602082019390935281517f01d5e27ed5584d16c62ba1a14cfde0783f979d4797a3fc41342aff17d8ef5b41929181900390910190a15050565b600080610bf683611971565b91509150610c02611c2f565b5073ffffffffffffffffffffffffffffffffffffffff808416600090815260056020908152604091829020825160a081018452815460ff8116158015835262ffffff61010083041694830194909452640100000000900485169381019390935260018101548416606084015260020154909216608082015290610ce657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f496d7065726d61783a20414c52454144595f494e495449414c495a4544000000604482015290519081900360640190fd5b604081015173ffffffffffffffffffffffffffffffffffffffff16610d56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611c7f6026913960400191505060405180910390fd5b606081015173ffffffffffffffffffffffffffffffffffffffff16610dc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611ca56021913960400191505060405180910390fd5b608081015173ffffffffffffffffffffffffffffffffffffffff16610e36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611c5e6021913960400191505060405180910390fd5b600954604080517f1a788a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015291516000939290921691631a788a029160248082019260c092909190829003018186803b158015610ead57600080fd5b505afa158015610ec1573d6000803e3d6000fd5b505050506040513d60c0811015610ed757600080fd5b5060a00151905080610f7057600954604080517fc4d66de800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff88811660048301529151919092169163c4d66de891602480830192600092919082900301818387803b158015610f5757600080fd5b505af1158015610f6b573d6000803e3d6000fd5b505050505b6040808301516060840151608085015183517fc548e3c500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a811660448301529283166064820152908216608482015260a0600480830191909152601360a48301527f496d7065726d617820436f6c6c61746572616c0000000000000000000000000060c483015260e0602483015260e48201527f696d784300000000000000000000000000000000000000000000000000000000610104820152925191169163c548e3c59161012480830192600092919082900301818387803b15801561106957600080fd5b505af115801561107d573d6000803e3d6000fd5b505050606083015160408085015181517f6a030c1100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff898116604483015291821660648201526080600480830191909152601360848301527f496d7065726d617820426f72726f7761626c650000000000000000000000000060a483015260c0602483015260c48201527f696d78420000000000000000000000000000000000000000000000000000000060e4820152915192169250636a030c119161010480830192600092919082900301818387803b15801561116c57600080fd5b505af1158015611180573d6000803e3d6000fd5b5050505060808281015160408085015181517f6a030c1100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff88811660448301529182166064820152600480820195909552601360848201527f496d7065726d617820426f72726f7761626c650000000000000000000000000060a482015260c0602482015260c48101949094527f696d78420000000000000000000000000000000000000000000000000000000060e48501529051911691636a030c119161010480830192600092919082900301818387803b15801561127157600080fd5b505af1158015611285573d6000803e3d6000fd5b50505073ffffffffffffffffffffffffffffffffffffffff80871660008181526005602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055868201516060808901516080808b01518b8601518751958a168652928916958501959095529387168386015262ffffff169082015291518885169550938916937f4c3ab495dc8ebd1b2f3232d7632e54411bc7e4d111475e7fbbd5547d9a28c4959281900390910190a45050505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146113d257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496d7065726d61783a20554e415554484f52495a454400000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040805191909216808252602082019390935281517fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a9929181900390910190a15050565b600061146582611971565b505073ffffffffffffffffffffffffffffffffffffffff82811660009081526005602052604090206002015416156114fe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496d7065726d61783a20414c52454144595f4558495354530000000000000000604482015290519081900360640190fd5b600754604080517f54bcd7ad00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015260016024830152915191909216916354bcd7ad9160448083019260209291908290030181600087803b15801561157a57600080fd5b505af115801561158e573d6000803e3d6000fd5b505050506040513d60208110156115a457600080fd5b5051604080517f4a5d316c000000000000000000000000000000000000000000000000000000008152905191925073ffffffffffffffffffffffffffffffffffffffff831691634a5d316c9160048082019260009290919082900301818387803b15801561161157600080fd5b505af1158015611625573d6000803e3d6000fd5b5050505061163282611a84565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020526040902060020180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169282169290921790915590565b6006818154811061169957fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff16331461176257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496d7065726d61783a20554e415554484f52495a454400000000000000000000604482015290519081900360640190fd5b600080546001805473ffffffffffffffffffffffffffffffffffffffff8082167fffffffffffffffffffffffff000000000000000000000000000000000000000080861682179687905590921690925560408051938316808552949092166020840152815190927ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc92908290030190a16040805173ffffffffffffffffffffffffffffffffffffffff831681526000602082015281517fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a9929181900390910190a15050565b60025473ffffffffffffffffffffffffffffffffffffffff1633146118cd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496d7065726d61783a20554e415554484f52495a454400000000000000000000604482015290519081900360640190fd5b6004805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040805191909216808252602082019390935281517f324bacfad26225895fcf55780481bec4ce49013c92500fa1c25626ff43fbf661929181900390910190a15050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b6000808273ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156119ba57600080fd5b505afa1580156119ce573d6000803e3d6000fd5b505050506040513d60208110156119e457600080fd5b5051604080517fd21220a7000000000000000000000000000000000000000000000000000000008152905191935073ffffffffffffffffffffffffffffffffffffffff85169163d21220a791600480820192602092909190829003018186803b158015611a5057600080fd5b505afa158015611a64573d6000803e3d6000fd5b505050506040513d6020811015611a7a57600080fd5b5051919391925050565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260056020526040902054610100900462ffffff1615611abe57611c2c565b60068054600181810183557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f909101805473ffffffffffffffffffffffffffffffffffffffff8086167fffffffffffffffffffffffff000000000000000000000000000000000000000092831681179093556040805160a0810182526000808252965462ffffff90811660208381019182528385018a8152606085018b8152608086018c8152998c5260059092529490992092518354915194518616640100000000027fffffffffffffffff0000000000000000000000000000000000000000ffffffff95909316610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ff9115157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009093169290921716179290921691909117815594519385018054948216948316949094179093559051600290930180549390921692169190911790555b50565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091529056fe496d7065726d61783a20424f52524f5741424c45315f4e4f545f43524541544544496d7065726d61783a20434f4c4c41544552414c495a41424c455f4e4f545f43524541544544496d7065726d61783a20424f52524f5741424c45305f4e4f545f43524541544544a265627a7a723158205807900bcc8fa6f1ffa1c3e9e973b6883771749e476b79e288be00753ca8dcf164736f6c6343000510003200000000000000000000000004825ca4d96064bd08605013d19cb7e108ff03d4000000000000000000000000052df909ebde5ec8b38cc90734633a906cd3c204000000000000000000000000c12e00de204d58ead5b5ce9054e94aee7747fb6c00000000000000000000000031864bc58a47a4fc8782b4135873788e876de9eb0000000000000000000000005671b249391ca5e6a8fe28ceb1e85dc41c12ba7d

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000004825ca4d96064bd08605013d19cb7e108ff03d4000000000000000000000000052df909ebde5ec8b38cc90734633a906cd3c204000000000000000000000000c12e00de204d58ead5b5ce9054e94aee7747fb6c00000000000000000000000031864bc58a47a4fc8782b4135873788e876de9eb0000000000000000000000005671b249391ca5e6a8fe28ceb1e85dc41c12ba7d

-----Decoded View---------------
Arg [0] : _admin (address): 0x04825ca4d96064bd08605013d19cb7e108ff03d4
Arg [1] : _reservesAdmin (address): 0x052df909ebde5ec8b38cc90734633a906cd3c204
Arg [2] : _bDeployer (address): 0xc12e00de204d58ead5b5ce9054e94aee7747fb6c
Arg [3] : _cDeployer (address): 0x31864bc58a47a4fc8782b4135873788e876de9eb
Arg [4] : _simpleUniswapOracle (address): 0x5671b249391ca5e6a8fe28ceb1e85dc41c12ba7d

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 00000000000000000000000004825ca4d96064bd08605013d19cb7e108ff03d4
Arg [1] : 000000000000000000000000052df909ebde5ec8b38cc90734633a906cd3c204
Arg [2] : 000000000000000000000000c12e00de204d58ead5b5ce9054e94aee7747fb6c
Arg [3] : 00000000000000000000000031864bc58a47a4fc8782b4135873788e876de9eb
Arg [4] : 0000000000000000000000005671b249391ca5e6a8fe28ceb1e85dc41c12ba7d


Deployed ByteCode Sourcemap

14492:6398:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14492:6398:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14833:53;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14833:53:0;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16712:417;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16712:417:0;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14549:27;;;:::i;14651:30::-;;;:::i;17135:427::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17135:427:0;;;;:::i;14982:101::-;;;:::i;:::-;;;;;;;;;;;;;;;;15120:27;;;:::i;15151:47::-;;;:::i;14580:28::-;;;:::i;20154:432::-;;;:::i;:::-;;14612:35;;;:::i;19808:341::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19808:341:0;;;;:::i;18001:1209::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18001:1209:0;;;;:::i;19216:261::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19216:261:0;;;;:::i;17568:427::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17568:427:0;;;;:::i;14914:32::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14914:32:0;;:::i;15089:27::-;;;:::i;19482:320::-;;;:::i;20591:296::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20591:296:0;;;;:::i;14525:20::-;;;:::i;14833:53::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16712:417::-;16779:18;16804:25;16815:13;16804:10;:25::i;:::-;-1:-1:-1;;16842:54:0;:29;;;16894:1;16842:29;;;:14;:29;;;;;:40;;;;;:54;16834:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16945:9;;:41;;;;;;:9;:41;;;;;;;;;:9;;;;;:26;;:41;;;;;;;;;;;;;;:9;;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;16945:41:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16945:41:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16945:41:0;16991:37;;;;;;;;16945:41;;-1:-1:-1;16991:35:0;;;;;;:37;;;;;;;;;;;;;;;;:35;:37;;;5:2:-1;;;;30:1;27;20:12;5:2;16991:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16991:37:0;;;;17033:33;17052:13;17033:18;:33::i;:::-;17071:29;;;;;;;;:14;:29;;;;;:53;;;;;;;;;;;;;;;;;;17114:10;16712:417::o;14549:27::-;;;;;;:::o;14651:30::-;;;;;;:::o;17135:427::-;17203:19;17229:25;17240:13;17229:10;:25::i;:::-;-1:-1:-1;;17267:55:0;:29;;;17320:1;17267:29;;;:14;:29;;;;;:41;;;;:55;17259:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17372:9;;:44;;;;;;:9;:44;;;;;;;:9;:44;;;;;;;;:9;;;:26;;:44;;;;;;;;;;;;;;;;;;:9;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;17372:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17372:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17372:44:0;17421:38;;;;;;;;17372:44;;-1:-1:-1;17421:36:0;;;;;;:38;;;;;;;;;;;;;;;;:36;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;17421:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17421:38:0;;;;17464:33;17483:13;17464:18;:33::i;:::-;17502:29;;;;;;;;:14;:29;;;;;:41;;:55;;;;;;;;;;;;;;;17135:427::o;14982:101::-;15056:15;:22;14982:101;:::o;15120:27::-;;;;;;:::o;15151:47::-;;;;;;:::o;14580:28::-;;;;;;:::o;20154:432::-;20222:20;;;;20208:10;:34;20200:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20301:13;;;20353:20;;;20301:13;20353:20;;;20378:36;;;;;;;;;;20419:33;;;;;;20462:49;;;20301:13;;;20462:49;;;20497:13;;;;20462:49;;;;;;20353:20;;20462:49;;;;;;;;;20521:60;;;;;;;;20578:1;20521:60;;;;;;;;;;;;;;;;;20154:432;;:::o;14612:35::-;;;;;;:::o;19808:341::-;19911:13;;;;19897:10;:27;19889:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19990:20;;;;20015:46;;;;;;;;;;;20071:73;;;19990:20;;;;20071:73;;;;;;;;;;;;;;;;;;;;;;;19808:341;;:::o;18001:1209::-;18070:14;18086;18104:25;18115:13;18104:10;:25::i;:::-;18069:60;;;;18134:24;;:::i;:::-;-1:-1:-1;18161:29:0;;;;;;;;:14;:29;;;;;;;;;18134:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18195:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18272:16;;;;:30;;18264:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18358:17;;;;:31;;18350:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18440:17;;;;:31;;18432:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18550:19;;:42;;;;;;:19;:42;;;;;;;;;18524:22;;18550:19;;;;;:27;;:42;;;;;;;;;;;;;;;:19;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;18550:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18550:42:0;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;18550:42:0;;;;-1:-1:-1;18550:42:0;18597:69;;18621:19;;:45;;;;;;:19;:45;;;;;;;;;:19;;;;;:30;;:45;;;;;:19;;:45;;;;;;;:19;;:45;;;5:2:-1;;;;30:1;27;20:12;5:2;18621:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18621:45:0;;;;18597:69;18687:16;;;;;18763:17;;;;18782;;;;18675:125;;;;;:41;:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:41;;;;;:125;;;;;-1:-1:-1;;18675:125:0;;;;;;;-1:-1:-1;18675:41:0;:125;;;5:2:-1;;;;30:1;27;20:12;5:2;18675:125:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;18817:17:0;;;;18887:16;;;;;18805:99;;;;;:42;:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:42;;;-1:-1:-1;18805:42:0;;:99;;;;;-1:-1:-1;;18805:99:0;;;;;;;-1:-1:-1;18805:42:0;:99;;;5:2:-1;;;;30:1;27;20:12;5:2;18805:99:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;18921:17:0;;;;;18991:16;;;;;18909:99;;;;;:42;:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:42;;;;;:99;;;;;-1:-1:-1;;18909:99:0;;;;;;;-1:-1:-1;18909:42:0;:99;;;5:2:-1;;;;30:1;27;20:12;5:2;18909:99:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;19017:29:0;;;;;;;;:14;:29;;;;;;;;;:48;;;;19061:4;19017:48;;;19129:16;;;;19147:17;;;;;19166;;;;;19185:19;;;;19075:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19075:130:0;;;;;;;;;;;;;;18001:1209;;;;;:::o;19216:261::-;19303:5;;;;19289:10;:19;19281:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19366:12;;;;19383:30;;;;;;;;;;;19423:49;;;19366:12;;;;19423:49;;;;;;;;;;;;;;;;;;;;;;;19216:261;;:::o;17568:427::-;17636:19;17662:25;17673:13;17662:10;:25::i;:::-;-1:-1:-1;;17700:55:0;:29;;;17753:1;17700:29;;;:14;:29;;;;;:41;;;;:55;17692:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17805:9;;:44;;;;;;:9;:44;;;;;;;:9;:44;;;;;;:9;;;;;:26;;:44;;;;;;;;;;;;;;:9;;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;17805:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17805:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17805:44:0;17854:38;;;;;;;;17805:44;;-1:-1:-1;17854:36:0;;;;;;:38;;;;;;;;;;;;;;;;:36;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;17854:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17854:38:0;;;;17897:33;17916:13;17897:18;:33::i;:::-;17935:29;;;;;;;;:14;:29;;;;;:41;;:55;;;;;;;;;;;;;;;17568:427::o;14914:32::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14914:32:0;:::o;15089:27::-;;;;;;:::o;19482:320::-;19542:12;;;;19528:10;:26;19520:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19586:16;19605:5;;;19641:12;;19605:5;19641:12;;;19658:20;;;;;;;;;;19683:25;;;;;;19718;;;19605:5;;;19718:25;;;19737:5;;;;19718:25;;;;;;19641:12;;19718:25;;;;;;;;;19753:44;;;;;;;;19794:1;19753:44;;;;;;;;;;;;;;;;;19482:320;;:::o;20591:296::-;20684:13;;;;20670:10;:27;20662:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20758:15;;;;20778:36;;;;;;;;;;;20824:58;;;20758:15;;;;20824:58;;;;;;;;;;;;;;;;;;;;;;;20591:296;;:::o;14525:20::-;;;;;;:::o;16200:206::-;16265:14;16281;16326:13;16311:36;;;:38;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16311:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16311:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16311:38:0;16363;;;;;;;;16311;;-1:-1:-1;16363:36:0;;;;;;:38;;;;;16311;;16363;;;;;;;;:36;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;16363:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16363:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16363:38:0;16200:206;;16363:38;;-1:-1:-1;;16200:206:0:o;16412:294::-;16480:29;;;;;;;:14;:29;;;;;:43;;;;;;:48;16476:61;;16530:7;;16476:61;16541:15;27:10:-1;;39:1;23:18;;;45:23;;16541:35:0;;;;;;;;;;;;;;;;;;;16615:86;;;;;;;;-1:-1:-1;16615:86:0;;;16641:22;;16615:86;;;;16541:35;16615:86;;;;;;;;;;;;;;;;;;;;;;;;16583:29;;;:14;:29;;;;;;;:118;;;;;;;;;;;;;;;;;16541:35;16583:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16412:294;;:::o;14492:6398::-;;;;;;;;;-1:-1:-1;14492:6398:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Metadata Hash

5807900bcc8fa6f1ffa1c3e9e973b6883771749e476b79e288be00753ca8dcf1
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.