ETH Price: $2,096.73 (+1.27%)

Contract

0xFd514b33a361b82fE5D89070DB6917Cd4F73285D
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Partial Liquidat...245378282026-02-26 1:32:5915 days ago1772069579IN
0xFd514b33...d4F73285D
0 ETH0.002974162.15285807
Partial Liquidat...199372822024-05-24 4:13:47658 days ago1716524027IN
0xFd514b33...d4F73285D
0 ETH0.007922055.95589846
Partial Liquidat...199372672024-05-24 4:10:47658 days ago1716523847IN
0xFd514b33...d4F73285D
0 ETH0.008559486.35344419
Partial Liquidat...199372532024-05-24 4:07:59658 days ago1716523679IN
0xFd514b33...d4F73285D
0 ETH0.010779388.00120961
Partial Liquidat...199372362024-05-24 4:04:35658 days ago1716523475IN
0xFd514b33...d4F73285D
0 ETH0.008555526.35050602
Partial Liquidat...199372202024-05-24 4:01:23658 days ago1716523283IN
0xFd514b33...d4F73285D
0 ETH0.008898096.60479022
Partial Liquidat...199372012024-05-24 3:57:35658 days ago1716523055IN
0xFd514b33...d4F73285D
0 ETH0.008223536.10407879
Partial Liquidat...189898032024-01-12 9:04:11791 days ago1705050251IN
0xFd514b33...d4F73285D
0 ETH0.0241780217.2007104
Partial Liquidat...189897842024-01-12 9:00:23791 days ago1705050023IN
0xFd514b33...d4F73285D
0 ETH0.0248606917.78013287
Partial Liquidat...189897682024-01-12 8:57:11791 days ago1705049831IN
0xFd514b33...d4F73285D
0 ETH0.0254764418.11556485
Partial Liquidat...189897482024-01-12 8:53:11791 days ago1705049591IN
0xFd514b33...d4F73285D
0 ETH0.0268845718.98304798
Partial Liquidat...189896782024-01-12 8:38:47791 days ago1705048727IN
0xFd514b33...d4F73285D
0 ETH0.0224207615.22516458
Partial Liquidat...189896412024-01-12 8:31:23791 days ago1705048283IN
0xFd514b33...d4F73285D
0 ETH0.0233330715.96374727
Partial Liquidat...164242512023-01-17 4:53:351151 days ago1673931215IN
0xFd514b33...d4F73285D
0 ETH0.0218821715.46952809
Partial Liquidat...164242382023-01-17 4:50:591151 days ago1673931059IN
0xFd514b33...d4F73285D
0 ETH0.0215337515.3707654
Partial Liquidat...164241912023-01-17 4:41:351151 days ago1673930495IN
0xFd514b33...d4F73285D
0 ETH0.022517916.07325233
Partial Liquidat...164241792023-01-17 4:39:111151 days ago1673930351IN
0xFd514b33...d4F73285D
0 ETH0.0257748818.17622708
Ownership Transf...151328262022-07-13 6:55:101339 days ago1657695310IN
0xFd514b33...d4F73285D
0 ETH0.00135250
Partial Liquidat...149450862022-06-11 15:44:131371 days ago1654962253IN
0xFd514b33...d4F73285D
0 ETH0.1189123882.61550898
Partial Liquidat...149450652022-06-11 15:39:081371 days ago1654961948IN
0xFd514b33...d4F73285D
0 ETH0.1022043771.92547661
Partial Liquidat...149435022022-06-11 9:22:531371 days ago1654939373IN
0xFd514b33...d4F73285D
0 ETH0.0735103652.06094471
Partial Liquidat...149434822022-06-11 9:17:131371 days ago1654939033IN
0xFd514b33...d4F73285D
0 ETH0.0810998157.72240936
Partial Liquidat...149434692022-06-11 9:12:371371 days ago1654938757IN
0xFd514b33...d4F73285D
0 ETH0.0752452953.55548402
Partial Liquidat...147995242022-05-18 15:09:461395 days ago1652886586IN
0xFd514b33...d4F73285D
0 ETH0.0499993234.57275788
Ownership Transf...147665012022-05-13 9:13:241400 days ago1652433204IN
0xFd514b33...d4F73285D
0 ETH0.004056150
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
etherLiquidationManager

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, BSD-3-Clause license
/**
 *Submitted for verification at Etherscan.io on 2021-02-23
*/

// File: contracts/interfaces/marketManagerInterface.sol

pragma solidity 0.6.12;

interface marketManagerInterface  {
	function setBreakerTable(address _target, bool _status) external returns (bool);

	function getCircuitBreaker() external view returns (bool);
	function setCircuitBreaker(bool _emergency) external returns (bool);

	function getTokenHandlerInfo(uint256 handlerID) external view returns (bool, address, string memory);

	function handlerRegister(uint256 handlerID, address tokenHandlerAddr) external returns (bool);

	function applyInterestHandlers(address payable userAddr, uint256 callerID, bool allFlag) external returns (uint256, uint256, uint256, uint256, uint256, uint256);

	function getTokenHandlerPrice(uint256 handlerID) external view returns (uint256);
	function getTokenHandlerBorrowLimit(uint256 handlerID) external view returns (uint256);
	function getTokenHandlerSupport(uint256 handlerID) external view returns (bool);

	function getTokenHandlersLength() external view returns (uint256);
	function setTokenHandlersLength(uint256 _tokenHandlerLength) external returns (bool);

	function getTokenHandlerID(uint256 index) external view returns (uint256);
	function getTokenHandlerMarginCallLimit(uint256 handlerID) external view returns (uint256);

	function getUserIntraHandlerAssetWithInterest(address payable userAddr, uint256 handlerID) external view returns (uint256, uint256);

	function getUserTotalIntraCreditAsset(address payable userAddr) external view returns (uint256, uint256);

	function getUserLimitIntraAsset(address payable userAddr) external view returns (uint256, uint256);

	function getUserCollateralizableAmount(address payable userAddr, uint256 handlerID) external view returns (uint256);

	function getUserExtraLiquidityAmount(address payable userAddr, uint256 handlerID) external view returns (uint256);
	function partialLiquidationUser(address payable delinquentBorrower, uint256 liquidateAmount, address payable liquidator, uint256 liquidateHandlerID, uint256 rewardHandlerID) external returns (uint256, uint256, uint256);

	function getMaxLiquidationReward(address payable delinquentBorrower, uint256 liquidateHandlerID, uint256 liquidateAmount, uint256 rewardHandlerID, uint256 rewardRatio) external view returns (uint256);
	function partialLiquidationUserReward(address payable delinquentBorrower, uint256 rewardAmount, address payable liquidator, uint256 handlerID) external returns (uint256);

	function setLiquidationManager(address liquidationManagerAddr) external returns (bool);

	function rewardClaimAll(address payable userAddr) external returns (bool);

	function updateRewardParams(address payable userAddr) external returns (bool);
	function interestUpdateReward() external returns (bool);
	function getGlobalRewardInfo() external view returns (uint256, uint256, uint256);

	function setOracleProxy(address oracleProxyAddr) external returns (bool);

	function rewardUpdateOfInAction(address payable userAddr, uint256 callerID) external returns (bool);
	function ownerRewardTransfer(uint256 _amount) external returns (bool);
}

// File: contracts/interfaces/managerDataStorageInterface.sol

pragma solidity 0.6.12;

interface managerDataStorageInterface  {
	function getGlobalRewardPerBlock() external view returns (uint256);
	function setGlobalRewardPerBlock(uint256 _globalRewardPerBlock) external returns (bool);

	function getGlobalRewardDecrement() external view returns (uint256);
	function setGlobalRewardDecrement(uint256 _globalRewardDecrement) external returns (bool);

	function getGlobalRewardTotalAmount() external view returns (uint256);
	function setGlobalRewardTotalAmount(uint256 _globalRewardTotalAmount) external returns (bool);

	function getAlphaRate() external view returns (uint256);
	function setAlphaRate(uint256 _alphaRate) external returns (bool);

	function getAlphaLastUpdated() external view returns (uint256);
	function setAlphaLastUpdated(uint256 _alphaLastUpdated) external returns (bool);

	function getRewardParamUpdateRewardPerBlock() external view returns (uint256);
	function setRewardParamUpdateRewardPerBlock(uint256 _rewardParamUpdateRewardPerBlock) external returns (bool);

	function getRewardParamUpdated() external view returns (uint256);
	function setRewardParamUpdated(uint256 _rewardParamUpdated) external returns (bool);

	function getInterestUpdateRewardPerblock() external view returns (uint256);
	function setInterestUpdateRewardPerblock(uint256 _interestUpdateRewardPerblock) external returns (bool);

	function getInterestRewardUpdated() external view returns (uint256);
	function setInterestRewardUpdated(uint256 _interestRewardLastUpdated) external returns (bool);

	function setTokenHandler(uint256 handlerID, address handlerAddr) external returns (bool);

	function getTokenHandlerInfo(uint256 handlerID) external view returns (bool, address);

	function getTokenHandlerID(uint256 index) external view returns (uint256);

	function getTokenHandlerAddr(uint256 handlerID) external view returns (address);
	function setTokenHandlerAddr(uint256 handlerID, address handlerAddr) external returns (bool);

	function getTokenHandlerExist(uint256 handlerID) external view returns (bool);
	function setTokenHandlerExist(uint256 handlerID, bool exist) external returns (bool);

	function getTokenHandlerSupport(uint256 handlerID) external view returns (bool);
	function setTokenHandlerSupport(uint256 handlerID, bool support) external returns (bool);

	function setLiquidationManagerAddr(address _liquidationManagerAddr) external returns (bool);
	function getLiquidationManagerAddr() external view returns (address);

	function setManagerAddr(address _managerAddr) external returns (bool);
}

// File: contracts/interfaces/marketHandlerInterface.sol

pragma solidity 0.6.12;

interface marketHandlerInterface  {
	function setCircuitBreaker(bool _emergency) external returns (bool);
	function setCircuitBreakWithOwner(bool _emergency) external returns (bool);

	function getTokenName() external view returns (string memory);

	function ownershipTransfer(address payable newOwner) external returns (bool);

	function deposit(uint256 unifiedTokenAmount, bool allFlag) external payable returns (bool);
	function withdraw(uint256 unifiedTokenAmount, bool allFlag) external returns (bool);
	function borrow(uint256 unifiedTokenAmount, bool allFlag) external returns (bool);
	function repay(uint256 unifiedTokenAmount, bool allFlag) external payable returns (bool);

	function partialLiquidationUser(address payable delinquentBorrower, uint256 liquidateAmount, address payable liquidator, uint256 rewardHandlerID) external returns (uint256, uint256, uint256);
	function partialLiquidationUserReward(address payable delinquentBorrower, uint256 liquidationAmountWithReward, address payable liquidator) external returns (uint256);

	function getTokenHandlerLimit() external view returns (uint256, uint256);
    function getTokenHandlerBorrowLimit() external view returns (uint256);
	function getTokenHandlerMarginCallLimit() external view returns (uint256);
	function setTokenHandlerBorrowLimit(uint256 borrowLimit) external returns (bool);
	function setTokenHandlerMarginCallLimit(uint256 marginCallLimit) external returns (bool);

	function getUserAmountWithInterest(address payable userAddr) external view returns (uint256, uint256);
	function getUserAmount(address payable userAddr) external view returns (uint256, uint256);

	function getUserMaxBorrowAmount(address payable userAddr) external view returns (uint256);
	function getUserMaxWithdrawAmount(address payable userAddr) external view returns (uint256);
	function getUserMaxRepayAmount(address payable userAddr) external view returns (uint256);

	function checkFirstAction() external returns (bool);
	function applyInterest(address payable userAddr) external returns (uint256, uint256);

	function reserveDeposit(uint256 unifiedTokenAmount) external payable returns (bool);
	function reserveWithdraw(uint256 unifiedTokenAmount) external returns (bool);

	function getDepositTotalAmount() external view returns (uint256);
	function getBorrowTotalAmount() external view returns (uint256);

	function getSIRandBIR() external view returns (uint256, uint256);
}

// File: contracts/interfaces/liquidationManagerInterface.sol

pragma solidity 0.6.12;

interface liquidationManagerInterface  {
	function setCircuitBreaker(bool _emergency) external returns (bool);
	function partialLiquidation(address payable delinquentBorrower, uint256 targetHandler, uint256 liquidateAmount, uint256 receiveHandler) external returns (uint256);
	function checkLiquidation(address payable userAddr) external view returns (bool);
}

// File: contracts/Errors.sol

pragma solidity 0.6.12;

contract Modifier {
    string internal constant ONLY_OWNER = "O";
    string internal constant ONLY_MANAGER = "M";
    string internal constant CIRCUIT_BREAKER = "emergency";
}

contract ManagerModifier is Modifier {
    string internal constant ONLY_HANDLER = "H";
    string internal constant ONLY_LIQUIDATION_MANAGER = "LM";
    string internal constant ONLY_BREAKER = "B";
}

contract HandlerDataStorageModifier is Modifier {
    string internal constant ONLY_BIFI_CONTRACT = "BF";
}

contract SIDataStorageModifier is Modifier {
    string internal constant ONLY_SI_HANDLER = "SI";
}

contract HandlerErrors is Modifier {
    string internal constant USE_VAULE = "use value";
    string internal constant USE_ARG = "use arg";
    string internal constant EXCEED_LIMIT = "exceed limit";
    string internal constant NO_LIQUIDATION = "no liquidation";
    string internal constant NO_LIQUIDATION_REWARD = "no enough reward";
    string internal constant NO_EFFECTIVE_BALANCE = "not enough balance";
    string internal constant TRANSFER = "err transfer";
}

contract SIErrors is Modifier { }

contract InterestErrors is Modifier { }

contract LiquidationManagerErrors is Modifier {
    string internal constant NO_DELINQUENT = "not delinquent";
}

contract ManagerErrors is ManagerModifier {
    string internal constant REWARD_TRANSFER = "RT";
    string internal constant UNSUPPORTED_TOKEN = "UT";
}

contract OracleProxyErrors is Modifier {
    string internal constant ZERO_PRICE = "price zero";
}

contract RequestProxyErrors is Modifier { }

contract ManagerDataStorageErrors is ManagerModifier {
    string internal constant NULL_ADDRESS = "err addr null";
}

// File: contracts/marketManager/liquidationManager.sol

pragma solidity 0.6.12;

/**
 * @title BiFi Liquidation Manager Contract
 *
 * @author BiFi
 */
contract etherLiquidationManager is liquidationManagerInterface, LiquidationManagerErrors {
	event CircuitBreaked(bool breaked, uint256 blockNumber);

	address payable owner;

	bool emergency = false;

	uint256 constant unifiedPoint = 10 ** 18;

	marketManagerInterface public marketManager;

	struct LiquidationModel {
		uint256 delinquentDepositAsset;
		uint256 delinquentBorrowAsset;
		uint256 liquidatePrice;
		uint256 receivePrice;
		uint256 liquidateAmount;
		uint256 liquidateAsset;
		uint256 rewardAsset;
		uint256 rewardAmount;
	}

	modifier onlyOwner {
		require(msg.sender == owner, ONLY_OWNER);
		_;
	}

	modifier onlyManager {
		address msgSender = msg.sender;
		require((msgSender == address(marketManager)) || (msgSender == owner), ONLY_MANAGER);
		_;
	}

	modifier circuitBreaker {
		address msgSender = msg.sender;
		require((!emergency) || (msgSender == owner), CIRCUIT_BREAKER);
		_;
	}

	/**
	* @dev Construct a new liquidationManager
	* @param marketManagerAddr The address of marketManager contract
	*/
	constructor (address marketManagerAddr) public
	{
		owner = msg.sender;
		marketManager = marketManagerInterface(marketManagerAddr);
	}

	/**
	* @dev Set new market manager address
	* @param marketManagerAddr The address of marketManager contract
	* @return true (TODO: validate results)
	*/
	function setMarketManagerAddr(address marketManagerAddr) external onlyOwner returns (bool) {
		marketManager = marketManagerInterface(marketManagerAddr);
		return true;
	}

	/**
	* @dev Transfer ownership
	* @param _owner the address of the new owner
	* @return true (TODO: validate results)
	*/
	function ownershipTransfer(address payable _owner) onlyOwner public returns (bool)
	{
		owner = _owner;
		return true;
	}

	/**
	* @dev Get the address of owner
	* @return the address of owner
	*/
	function getOwner() public view returns (address)
	{
		return owner;
	}

	/**
	* @dev Set circuitBreak to freeze/unfreeze all handlers by marketManager
	* @param _emergency The status of circuitBreak
	* @return true (TODO: validate results)
	*/
	function setCircuitBreaker(bool _emergency) onlyManager external override returns (bool)
	{
		emergency = _emergency;
		emit CircuitBreaked(_emergency, block.number);
		return true;
	}

	/**
	* @dev Liquidate asset of the user in default (or margin call) status
	* @param delinquentBorrower the liquidation target
	* @param targetHandler The hander ID of the liquidating asset (the
	  liquidator repay the tokens of the targetHandler instead)
	* @param liquidateAmount The amount to liquidate
	* @param receiveHandler The handler ID of the reward token for the liquidator
	* @return The amount of reward token
	*/
	function partialLiquidation(address payable delinquentBorrower, uint256 targetHandler, uint256 liquidateAmount, uint256 receiveHandler) circuitBreaker external override returns (uint256)
	{
		/* msg.sender is liquidator */
		address payable liquidator = msg.sender;
		LiquidationModel memory vars;
		/* Check whether the user is in liquidation.*/
		if (_checkLiquidation(delinquentBorrower) == false)
		{
			revert(NO_DELINQUENT);
		}

		/* Liquidate */
		(vars.liquidateAmount, vars.delinquentDepositAsset, vars.delinquentBorrowAsset) = marketManager.partialLiquidationUser(delinquentBorrower, liquidateAmount, liquidator, targetHandler, receiveHandler);

		/* Compute the price of the liquidated tokens */
		vars.liquidatePrice = marketManager.getTokenHandlerPrice(targetHandler);
		vars.liquidateAsset = unifiedMul(vars.liquidateAmount, vars.liquidatePrice);

		/* Calculates the number of tokens to receive as rewards. */
		vars.rewardAsset = unifiedDiv(unifiedMul(vars.liquidateAsset, vars.delinquentDepositAsset), vars.delinquentBorrowAsset);
		vars.receivePrice = marketManager.getTokenHandlerPrice(receiveHandler);
		vars.rewardAmount = unifiedDiv(vars.rewardAsset, vars.receivePrice);

		/* Receive reward */
		return marketManager.partialLiquidationUserReward(delinquentBorrower, vars.rewardAmount, liquidator, receiveHandler);
	}

	/**
	* @dev Checks the given user is eligible for delinquentBorrower (external)
	* @param userAddr The address of user
	* @return Eligibility as delinquentBorrower
	*/
	function checkLiquidation(address payable userAddr) external view override returns (bool)
	{
		return _checkLiquidation(userAddr);
	}

	/**
	* @dev Checks the given user is eligible for delinquentBorrower (internal)
	* @param userAddr The address of user
	* @return Eligibility as delinquentBorrower
	*/
	function _checkLiquidation(address payable userAddr) internal view returns (bool)
	{
		uint256 userBorrowAssetSum;
		uint256 liquidationLimitAssetSum;
		uint256 tokenListLength = marketManager.getTokenHandlersLength();
		for (uint256 handlerID = 0; handlerID < tokenListLength; handlerID++)
		{
			if (marketManager.getTokenHandlerSupport(handlerID))
			{
				/* Get the deposit and borrow amount including interest */
				uint256 depositAsset;
				uint256 borrowAsset;
				(depositAsset, borrowAsset) = marketManager.getUserIntraHandlerAssetWithInterest(userAddr, handlerID);


				/* Compute the liquidation limit and the sum of borrow of the
				user */
				uint256 marginCallLimit = marketManager.getTokenHandlerMarginCallLimit(handlerID);
				liquidationLimitAssetSum = add(liquidationLimitAssetSum, unifiedMul(depositAsset, marginCallLimit));
				userBorrowAssetSum = add(userBorrowAssetSum, borrowAsset);
			}

		}

		/* If the borrowed amount exceeds the liquidation limit, the user is a delinquent borrower. */
		if (liquidationLimitAssetSum <= userBorrowAssetSum)
		{
			return true;
			/* Margin call */
		}

		return false;
	}

	/* ******************* Safe Math ******************* */
	function add(uint256 a, uint256 b) internal pure returns (uint256)
	{
		uint256 c = a + b;
		require(c >= a, "add overflow");
		return c;
	}

	function sub(uint256 a, uint256 b) internal pure returns (uint256)
	{
		return _sub(a, b, "sub overflow");
	}

	function mul(uint256 a, uint256 b) internal pure returns (uint256)
	{
		return _mul(a, b);
	}

	function div(uint256 a, uint256 b) internal pure returns (uint256)
	{
		return _div(a, b, "div by zero");
	}

	function mod(uint256 a, uint256 b) internal pure returns (uint256)
	{
		return _mod(a, b, "mod by zero");
	}

	function _sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256)
	{
		require(b <= a, errorMessage);
		return a - b;
	}

	function _mul(uint256 a, uint256 b) internal pure returns (uint256)
	{
		if (a == 0)
		{
			return 0;
		}

		uint256 c = a * b;
		require((c / a) == b, "mul overflow");
		return c;
	}

	function _div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256)
	{
		require(b > 0, errorMessage);
		return a / b;
	}

	function _mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256)
	{
		require(b != 0, errorMessage);
		return a % b;
	}

	function unifiedDiv(uint256 a, uint256 b) internal pure returns (uint256)
	{
		return _div(_mul(a, unifiedPoint), b, "unified div by zero");
	}

	function unifiedMul(uint256 a, uint256 b) internal pure returns (uint256)
	{
		return _div(_mul(a, b), unifiedPoint, "unified mul by zero");
	}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"marketManagerAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"breaked","type":"bool"},{"indexed":false,"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"CircuitBreaked","type":"event"},{"inputs":[{"internalType":"address payable","name":"userAddr","type":"address"}],"name":"checkLiquidation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketManager","outputs":[{"internalType":"contract marketManagerInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_owner","type":"address"}],"name":"ownershipTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"delinquentBorrower","type":"address"},{"internalType":"uint256","name":"targetHandler","type":"uint256"},{"internalType":"uint256","name":"liquidateAmount","type":"uint256"},{"internalType":"uint256","name":"receiveHandler","type":"uint256"}],"name":"partialLiquidation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_emergency","type":"bool"}],"name":"setCircuitBreaker","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketManagerAddr","type":"address"}],"name":"setMarketManagerAddr","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60806040526000805460ff60a01b1916905534801561001d57600080fd5b50604051610cca380380610cca8339818101604052602081101561004057600080fd5b5051600080546001600160a01b03199081163317909155600180546001600160a01b0390931692909116919091179055610c4b8061007f6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063537eccb01161005b578063537eccb0146100ff578063893d20e814610149578063a274f4ac14610151578063d3a417a2146101775761007d565b806341e03e9a1461008257806341ed2c12146100bc57806342506449146100e0575b600080fd5b6100a86004803603602081101561009857600080fd5b50356001600160a01b031661019d565b604080519115158252519081900360200190f35b6100c4610270565b604080516001600160a01b039092168252519081900360200190f35b6100a8600480360360208110156100f657600080fd5b5035151561027f565b6101376004803603608081101561011557600080fd5b506001600160a01b038135169060208101359060408101359060600135610370565b60408051918252519081900360200190f35b6100c4610719565b6100a86004803603602081101561016757600080fd5b50356001600160a01b0316610728565b6100a86004803603602081101561018d57600080fd5b50356001600160a01b0316610739565b600080546040805180820190915260018152604f60f81b6020820152906001600160a01b0316331461024d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156102125781810151838201526020016101fa565b50505050905090810190601f16801561023f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5050600180546001600160a01b0319166001600160a01b0383161781555b919050565b6001546001600160a01b031681565b60015460009033906001600160a01b03168114806102aa57506000546001600160a01b038281169116145b604051806040016040528060018152602001604d60f81b815250906103105760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156102125781810151838201526020016101fa565b506000805460ff60a01b1916600160a01b851515908102919091179091556040805191825243602083015280517f32c7cdd2548b2e86a1cc9c5d18126a6c4bbbabd0584577e1638c21ddc6ac22c69281900390910190a150600192915050565b600080543390600160a01b900460ff16158061039957506000546001600160a01b038281169116145b60405180604001604052806009815260200168656d657267656e637960b81b815250906104075760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156102125781810151838201526020016101fa565b5033610411610bd0565b61041a886107d2565b61048757604080518082018252600e81526d1b9bdd0819195b1a5b9c5d595b9d60921b6020808301918252925162461bcd60e51b815260048101938452825160248201528251929392839260449092019190808383600083156102125781810151838201526020016101fa565b6001546040805163057daa7b60e41b81526001600160a01b038b81166004830152602482018a90528581166044830152606482018b905260848201899052915191909216916357daa7b09160a48083019260609291908290030181600087803b1580156104f357600080fd5b505af1158015610507573d6000803e3d6000fd5b505050506040513d606081101561051d57600080fd5b50805160208083015160409384015185830152845260808401919091526001548251632ab0b0eb60e01b8152600481018b905292516001600160a01b0390911692632ab0b0eb926024808301939192829003018186803b15801561058057600080fd5b505afa158015610594573d6000803e3d6000fd5b505050506040513d60208110156105aa57600080fd5b50516040820181905260808201516105c191610a2e565b60a0820181905281516105e1916105d791610a2e565b8260200151610a7e565b60c082015260015460408051632ab0b0eb60e01b81526004810188905290516001600160a01b0390921691632ab0b0eb91602480820192602092909190829003018186803b15801561063257600080fd5b505afa158015610646573d6000803e3d6000fd5b505050506040513d602081101561065c57600080fd5b50516060820181905260c082015161067391610a7e565b60e08201819052600154604080516340bc6b0560e11b81526001600160a01b038c81166004830152602482019490945285841660448201526064810189905290519290911691638178d60a916084808201926020929091908290030181600087803b1580156106e157600080fd5b505af11580156106f5573d6000803e3d6000fd5b505050506040513d602081101561070b57600080fd5b505198975050505050505050565b6000546001600160a01b031690565b6000610733826107d2565b92915050565b600080546040805180820190915260018152604f60f81b6020820152906001600160a01b031633146107ac5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156102125781810151838201526020016101fa565b5050600080546001600160a01b0383166001600160a01b03199091161790556001919050565b600080600080600160009054906101000a90046001600160a01b03166001600160a01b0316638369b1df6040518163ffffffff1660e01b815260040160206040518083038186803b15801561082657600080fd5b505afa15801561083a573d6000803e3d6000fd5b505050506040513d602081101561085057600080fd5b5051905060005b81811015610a0f57600154604080516311e6d2bb60e11b81526004810184905290516001600160a01b03909216916323cda57691602480820192602092909190829003018186803b1580156108ab57600080fd5b505afa1580156108bf573d6000803e3d6000fd5b505050506040513d60208110156108d557600080fd5b505115610a075760015460408051633762f23560e21b81526001600160a01b038981166004830152602482018590528251600094859492169263dd8bc8d4926044808301939192829003018186803b15801561093057600080fd5b505afa158015610944573d6000803e3d6000fd5b505050506040513d604081101561095a57600080fd5b508051602091820151600154604080516320a0c31960e11b81526004810189905290519396509194506000936001600160a01b03909116926341418632926024808201939291829003018186803b1580156109b457600080fd5b505afa1580156109c8573d6000803e3d6000fd5b505050506040513d60208110156109de57600080fd5b505190506109f5866109f08584610a2e565b610ac7565b9550610a018783610ac7565b96505050505b600101610857565b50828211610a23576001935050505061026b565b506000949350505050565b6000610a77610a3d8484610b10565b670de0b6b3a764000060405180604001604052806013815260200172756e6966696564206d756c206279207a65726f60681b815250610b6e565b9392505050565b6000610a77610a9584670de0b6b3a7640000610b10565b8360405180604001604052806013815260200172756e696669656420646976206279207a65726f60681b815250610b6e565b600082820183811015610a77576040805162461bcd60e51b815260206004820152600c60248201526b616464206f766572666c6f7760a01b604482015290519081900360640190fd5b600082610b1f57506000610733565b82820282848281610b2c57fe5b0414610a77576040805162461bcd60e51b815260206004820152600c60248201526b6d756c206f766572666c6f7760a01b604482015290519081900360640190fd5b60008183610bbd5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156102125781810151838201526020016101fa565b50828481610bc757fe5b04949350505050565b6040518061010001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152509056fea26469706673582212207b99141926b1212fc5b8f57b1b97e189a1cc4f5e8b7a48c8bece90eeb731468764736f6c634300060c00330000000000000000000000006e464417a4523ae2f3d59665b0b1fc37c1d17a2f

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061007d5760003560e01c8063537eccb01161005b578063537eccb0146100ff578063893d20e814610149578063a274f4ac14610151578063d3a417a2146101775761007d565b806341e03e9a1461008257806341ed2c12146100bc57806342506449146100e0575b600080fd5b6100a86004803603602081101561009857600080fd5b50356001600160a01b031661019d565b604080519115158252519081900360200190f35b6100c4610270565b604080516001600160a01b039092168252519081900360200190f35b6100a8600480360360208110156100f657600080fd5b5035151561027f565b6101376004803603608081101561011557600080fd5b506001600160a01b038135169060208101359060408101359060600135610370565b60408051918252519081900360200190f35b6100c4610719565b6100a86004803603602081101561016757600080fd5b50356001600160a01b0316610728565b6100a86004803603602081101561018d57600080fd5b50356001600160a01b0316610739565b600080546040805180820190915260018152604f60f81b6020820152906001600160a01b0316331461024d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156102125781810151838201526020016101fa565b50505050905090810190601f16801561023f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5050600180546001600160a01b0319166001600160a01b0383161781555b919050565b6001546001600160a01b031681565b60015460009033906001600160a01b03168114806102aa57506000546001600160a01b038281169116145b604051806040016040528060018152602001604d60f81b815250906103105760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156102125781810151838201526020016101fa565b506000805460ff60a01b1916600160a01b851515908102919091179091556040805191825243602083015280517f32c7cdd2548b2e86a1cc9c5d18126a6c4bbbabd0584577e1638c21ddc6ac22c69281900390910190a150600192915050565b600080543390600160a01b900460ff16158061039957506000546001600160a01b038281169116145b60405180604001604052806009815260200168656d657267656e637960b81b815250906104075760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156102125781810151838201526020016101fa565b5033610411610bd0565b61041a886107d2565b61048757604080518082018252600e81526d1b9bdd0819195b1a5b9c5d595b9d60921b6020808301918252925162461bcd60e51b815260048101938452825160248201528251929392839260449092019190808383600083156102125781810151838201526020016101fa565b6001546040805163057daa7b60e41b81526001600160a01b038b81166004830152602482018a90528581166044830152606482018b905260848201899052915191909216916357daa7b09160a48083019260609291908290030181600087803b1580156104f357600080fd5b505af1158015610507573d6000803e3d6000fd5b505050506040513d606081101561051d57600080fd5b50805160208083015160409384015185830152845260808401919091526001548251632ab0b0eb60e01b8152600481018b905292516001600160a01b0390911692632ab0b0eb926024808301939192829003018186803b15801561058057600080fd5b505afa158015610594573d6000803e3d6000fd5b505050506040513d60208110156105aa57600080fd5b50516040820181905260808201516105c191610a2e565b60a0820181905281516105e1916105d791610a2e565b8260200151610a7e565b60c082015260015460408051632ab0b0eb60e01b81526004810188905290516001600160a01b0390921691632ab0b0eb91602480820192602092909190829003018186803b15801561063257600080fd5b505afa158015610646573d6000803e3d6000fd5b505050506040513d602081101561065c57600080fd5b50516060820181905260c082015161067391610a7e565b60e08201819052600154604080516340bc6b0560e11b81526001600160a01b038c81166004830152602482019490945285841660448201526064810189905290519290911691638178d60a916084808201926020929091908290030181600087803b1580156106e157600080fd5b505af11580156106f5573d6000803e3d6000fd5b505050506040513d602081101561070b57600080fd5b505198975050505050505050565b6000546001600160a01b031690565b6000610733826107d2565b92915050565b600080546040805180820190915260018152604f60f81b6020820152906001600160a01b031633146107ac5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156102125781810151838201526020016101fa565b5050600080546001600160a01b0383166001600160a01b03199091161790556001919050565b600080600080600160009054906101000a90046001600160a01b03166001600160a01b0316638369b1df6040518163ffffffff1660e01b815260040160206040518083038186803b15801561082657600080fd5b505afa15801561083a573d6000803e3d6000fd5b505050506040513d602081101561085057600080fd5b5051905060005b81811015610a0f57600154604080516311e6d2bb60e11b81526004810184905290516001600160a01b03909216916323cda57691602480820192602092909190829003018186803b1580156108ab57600080fd5b505afa1580156108bf573d6000803e3d6000fd5b505050506040513d60208110156108d557600080fd5b505115610a075760015460408051633762f23560e21b81526001600160a01b038981166004830152602482018590528251600094859492169263dd8bc8d4926044808301939192829003018186803b15801561093057600080fd5b505afa158015610944573d6000803e3d6000fd5b505050506040513d604081101561095a57600080fd5b508051602091820151600154604080516320a0c31960e11b81526004810189905290519396509194506000936001600160a01b03909116926341418632926024808201939291829003018186803b1580156109b457600080fd5b505afa1580156109c8573d6000803e3d6000fd5b505050506040513d60208110156109de57600080fd5b505190506109f5866109f08584610a2e565b610ac7565b9550610a018783610ac7565b96505050505b600101610857565b50828211610a23576001935050505061026b565b506000949350505050565b6000610a77610a3d8484610b10565b670de0b6b3a764000060405180604001604052806013815260200172756e6966696564206d756c206279207a65726f60681b815250610b6e565b9392505050565b6000610a77610a9584670de0b6b3a7640000610b10565b8360405180604001604052806013815260200172756e696669656420646976206279207a65726f60681b815250610b6e565b600082820183811015610a77576040805162461bcd60e51b815260206004820152600c60248201526b616464206f766572666c6f7760a01b604482015290519081900360640190fd5b600082610b1f57506000610733565b82820282848281610b2c57fe5b0414610a77576040805162461bcd60e51b815260206004820152600c60248201526b6d756c206f766572666c6f7760a01b604482015290519081900360640190fd5b60008183610bbd5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156102125781810151838201526020016101fa565b50828481610bc757fe5b04949350505050565b6040518061010001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152509056fea26469706673582212207b99141926b1212fc5b8f57b1b97e189a1cc4f5e8b7a48c8bece90eeb731468764736f6c634300060c0033

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

0000000000000000000000006e464417a4523ae2f3d59665b0b1fc37c1d17a2f

-----Decoded View---------------
Arg [0] : marketManagerAddr (address): 0x6e464417a4523Ae2F3D59665B0B1Fc37C1d17A2f

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000006e464417a4523ae2f3d59665b0b1fc37c1d17a2f


Deployed Bytecode Sourcemap

10786:7441:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12159:174;;;;;;;;;;;;;;;;-1:-1:-1;12159:174:0;-1:-1:-1;;;;;12159:174:0;;:::i;:::-;;;;;;;;;;;;;;;;;;11042:43;;;:::i;:::-;;;;-1:-1:-1;;;;;11042:43:0;;;;;;;;;;;;;;12930:189;;;;;;;;;;;;;;;;-1:-1:-1;12930:189:0;;;;:::i;13561:1365::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;13561:1365:0;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;12674:74;;;:::i;15105:136::-;;;;;;;;;;;;;;;;-1:-1:-1;15105:136:0;-1:-1:-1;;;;;15105:136:0;;:::i;12466:125::-;;;;;;;;;;;;;;;;-1:-1:-1;12466:125:0;-1:-1:-1;;;;;12466:125:0;;:::i;12159:174::-;12244:4;11396:5;;11403:10;;;;;;;;;11396:5;11403:10;;-1:-1:-1;;;11403:10:0;;;;;-1:-1:-1;;;;;11396:5:0;11382:10;:19;11374:40;;;;-1:-1:-1;;;11374:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12255:13:0::1;:57:::0;;-1:-1:-1;;;;;;12255:57:0::1;-1:-1:-1::0;;;;;12255:57:0;::::1;;::::0;;11419:1:::1;12159:174:::0;;;:::o;11042:43::-;;;-1:-1:-1;;;;;11042:43:0;;:::o;12930:189::-;11521:13;;13013:4;;11476:10;;-1:-1:-1;;;;;11521:13:0;11500:35;;;11499:61;;-1:-1:-1;11554:5:0;;-1:-1:-1;;;;;11541:18:0;;;11554:5;;11541:18;11499:61;11562:12;;;;;;;;;;;;;-1:-1:-1;;;11562:12:0;;;11491:84;;;;;-1:-1:-1;;;11491:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13026:9:0::1;:22:::0;;-1:-1:-1;;;;13026:22:0::1;-1:-1:-1::0;;;13026:22:0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;13058:40:::1;::::0;;;;;13085:12:::1;13058:40;::::0;::::1;::::0;;;::::1;::::0;;;;;;;;::::1;-1:-1:-1::0;13110:4:0::1;::::0;12930:189;-1:-1:-1;;12930:189:0:o;13561:1365::-;13739:7;11665:9;;11640:10;;-1:-1:-1;;;11665:9:0;;;;11664:10;;11663:36;;-1:-1:-1;11693:5:0;;-1:-1:-1;;;;;11680:18:0;;;11693:5;;11680:18;11663:36;11701:15;;;;;;;;;;;;;-1:-1:-1;;;11701:15:0;;;11655:62;;;;;-1:-1:-1;;;11655:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13818:10:0::1;13833:28;;:::i;:::-;13920:37;13938:18;13920:17;:37::i;:::-;13916:88;;13984:13;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;13984:13:0::1;::::0;;::::1;::::0;;;13977:21;;-1:-1:-1;;;13977:21:0;;::::1;::::0;::::1;::::0;;;;;;;;;;;13984:13;;13977:21;;;;;;;;13984:13;13977:21;;13984:13;-1:-1:-1;13977:21:0;;::::1;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;13916:88;14111:13;::::0;:116:::1;::::0;;-1:-1:-1;;;14111:116:0;;-1:-1:-1;;;;;14111:116:0;;::::1;;::::0;::::1;::::0;;;;;;;;;::::1;::::0;;;;;;;;;;;;;;;;;;:13;;;::::1;::::0;:36:::1;::::0;:116;;;;;::::1;::::0;;;;;;;;:13:::1;::::0;:116;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;14111:116:0;;::::1;::::0;;::::1;::::0;;;;;;14081:26;;::::1;14029:198:::0;;;14030:20:::1;::::0;::::1;14029:198:::0;;;;14308:13:::1;::::0;:49;;-1:-1:-1;;;14308:49:0;;::::1;::::0;::::1;::::0;;;;;-1:-1:-1;;;;;14308:13:0;;::::1;::::0;:34:::1;::::0;:49;;;;;14111:116;;14308:49;;;;;:13;:49;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;14308:49:0;14286:19:::1;::::0;::::1;:71:::0;;;14395:20:::1;::::0;::::1;::::0;14384:53:::1;::::0;:10:::1;:53::i;:::-;14362:19;::::0;::::1;:75:::0;;;14570:27;;14527:100:::1;::::0;14538:60:::1;::::0;:10:::1;:60::i;:::-;14600:4;:26;;;14527:10;:100::i;:::-;14508:16;::::0;::::1;:119:::0;14652:13:::1;::::0;:50:::1;::::0;;-1:-1:-1;;;14652:50:0;;::::1;::::0;::::1;::::0;;;;;-1:-1:-1;;;;;14652:13:0;;::::1;::::0;:34:::1;::::0;:50;;;;;::::1;::::0;;;;;;;;;:13;:50;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;14652:50:0;14632:17:::1;::::0;::::1;:70:::0;;;14738:16:::1;::::0;::::1;::::0;14727:47:::1;::::0;:10:::1;:47::i;:::-;14707:17;::::0;::::1;:67:::0;;;14812:13:::1;::::0;:109:::1;::::0;;-1:-1:-1;;;14812:109:0;;-1:-1:-1;;;;;14812:109:0;;::::1;;::::0;::::1;::::0;;;;;;;;;;::::1;::::0;;;;;;;;;;;;:13;;;::::1;::::0;:42:::1;::::0;:109;;;;;::::1;::::0;;;;;;;;;:13:::1;::::0;:109;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;14812:109:0;;13561:1365;-1:-1:-1;;;;;;;;13561:1365:0:o;12674:74::-;12715:7;12738:5;-1:-1:-1;;;;;12738:5:0;12674:74;:::o;15105:136::-;15189:4;15209:27;15227:8;15209:17;:27::i;:::-;15202:34;15105:136;-1:-1:-1;;15105:136:0:o;12466:125::-;12543:4;11396:5;;11403:10;;;;;;;;;11396:5;11403:10;;-1:-1:-1;;;11403:10:0;;;;;-1:-1:-1;;;;;11396:5:0;11382:10;:19;11374:40;;;;-1:-1:-1;;;11374:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12556:5:0::1;:14:::0;;-1:-1:-1;;;;;12556:14:0;::::1;-1:-1:-1::0;;;;;;12556:14:0;;::::1;;::::0;;;12466:125;;;:::o;15420:1170::-;15496:4;15509:26;15540:32;15577:23;15603:13;;;;;;;;;-1:-1:-1;;;;;15603:13:0;-1:-1:-1;;;;;15603:36:0;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15603:38:0;;-1:-1:-1;15651:17:0;15646:717;15686:15;15674:9;:27;15646:717;;;15729:13;;:47;;;-1:-1:-1;;;15729:47:0;;;;;;;;;;-1:-1:-1;;;;;15729:13:0;;;;:36;;:47;;;;;;;;;;;;;;;:13;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15729:47:0;15725:631;;;15936:13;;:71;;;-1:-1:-1;;;15936:71:0;;-1:-1:-1;;;;;15936:71:0;;;;;;;;;;;;;;;15853:20;;;;15936:13;;;:50;;:71;;;;;;;;;;;;:13;:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15936:71:0;;;;;;;16124:13;;15936:71;16124:55;;-1:-1:-1;;;16124:55:0;;;;;;;;;;15936:71;;-1:-1:-1;15936:71:0;;-1:-1:-1;16098:23:0;;-1:-1:-1;;;;;16124:13:0;;;;:44;;:55;;;;;15936:71;16124:55;;;;;;:13;:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16124:55:0;;-1:-1:-1;16213:72:0;16217:24;16243:41;16254:12;16124:55;16243:10;:41::i;:::-;16213:3;:72::i;:::-;16186:99;;16313:36;16317:18;16337:11;16313:3;:36::i;:::-;16292:57;;15725:631;;;;15703:11;;15646:717;;;;16499:18;16471:24;:46;16467:100;;16535:4;16528:11;;;;;;;16467:100;-1:-1:-1;16580:5:0;;15420:1170;-1:-1:-1;;;;15420:1170:0:o;18078:146::-;18143:7;18166:53;18171:10;18176:1;18179;18171:4;:10::i;:::-;11028:8;18166:53;;;;;;;;;;;;;-1:-1:-1;;;18166:53:0;;;:4;:53::i;:::-;18159:60;18078:146;-1:-1:-1;;;18078:146:0:o;17927:::-;17992:7;18015:53;18020:21;18025:1;11028:8;18020:4;:21::i;:::-;18043:1;18015:53;;;;;;;;;;;;;-1:-1:-1;;;18015:53:0;;;:4;:53::i;16653:145::-;16711:7;16739:5;;;16757:6;;;;16749:31;;;;;-1:-1:-1;;;16749:31:0;;;;;;;;;;;;-1:-1:-1;;;16749:31:0;;;;;;;;;;;;;;17412:193;17471:7;17491:6;17487:35;;-1:-1:-1;17515:1:0;17508:8;;17487:35;17540:5;;;17544:1;17540;:5;:1;17559:5;;;;;17558:12;17550:37;;;;;-1:-1:-1;;;17550:37:0;;;;;;;;;;;;-1:-1:-1;;;17550:37:0;;;;;;;;;;;;;;17610:153;17697:7;17728:12;17721:5;17713:28;;;;-1:-1:-1;;;17713:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17757:1;17753;:5;;;;;;;17610:153;-1:-1:-1;;;;17610:153:0:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

ipfs://7b99141926b1212fc5b8f57b1b97e189a1cc4f5e8b7a48c8bece90eeb7314687

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.