ETH Price: $2,525.76 (+0.28%)

Contract

0x2Ea110618b10FDe10D91eAe5F82612470F99ce67
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Refund ETH103623352020-06-29 18:29:381523 days ago1593455378IN
0x2Ea11061...70F99ce67
0 ETH0.0040820736
Auction Winner103622772020-06-29 18:15:591523 days ago1593454559IN
0x2Ea11061...70F99ce67
0 ETH0.0042070336
Update Transfer ...103622582020-06-29 18:12:171523 days ago1593454337IN
0x2Ea11061...70F99ce67
0 ETH0.0015557736
Transfer103622492020-06-29 18:10:281523 days ago1593454228IN
0x2Ea11061...70F99ce67
6 ETH0.0012318550
Transfer103622472020-06-29 18:09:541523 days ago1593454194IN
0x2Ea11061...70F99ce67
6 ETH0.00069333
Transfer103622422020-06-29 18:08:351523 days ago1593454115IN
0x2Ea11061...70F99ce67
0.43 ETH0.0024898860
Transfer103622382020-06-29 18:07:581523 days ago1593454078IN
0x2Ea11061...70F99ce67
6 ETH0.00069333
Transfer103622352020-06-29 18:07:241523 days ago1593454044IN
0x2Ea11061...70F99ce67
0.41 ETH0.0015769238
Transfer103622242020-06-29 18:04:371523 days ago1593453877IN
0x2Ea11061...70F99ce67
15.2124 ETH0.0024898860
Transfer103622172020-06-29 18:02:261523 days ago1593453746IN
0x2Ea11061...70F99ce67
11 ETH0.0016357860
Transfer103622132020-06-29 18:01:451523 days ago1593453705IN
0x2Ea11061...70F99ce67
15.12 ETH0.0015769238
Transfer103622042020-06-29 17:59:071523 days ago1593453547IN
0x2Ea11061...70F99ce67
17 ETH0.0032880840
Transfer103621562020-06-29 17:48:151523 days ago1593452895IN
0x2Ea11061...70F99ce67
13.05 ETH0.0020550525
Transfer103621372020-06-29 17:44:311523 days ago1593452671IN
0x2Ea11061...70F99ce67
6.0236 ETH0.0049321260
Transfer103619442020-06-29 17:00:221523 days ago1593450022IN
0x2Ea11061...70F99ce67
6 ETH0.0040278949
Transfer103617972020-06-29 16:29:371523 days ago1593448177IN
0x2Ea11061...70F99ce67
5.50002 ETH0.0027126633
Transfer103593802020-06-29 7:21:311523 days ago1593415291IN
0x2Ea11061...70F99ce67
5.5 ETH0.0016440420
Transfer103557882020-06-28 17:59:231524 days ago1593367163IN
0x2Ea11061...70F99ce67
0.3 ETH0.0011619428
Transfer103492842020-06-27 17:59:041525 days ago1593280744IN
0x2Ea11061...70F99ce67
1.75 ETH0.0013694333
Transfer103492752020-06-27 17:57:081525 days ago1593280628IN
0x2Ea11061...70F99ce67
4.6 ETH0.0029592736
Transfer103429262020-06-26 17:58:341526 days ago1593194314IN
0x2Ea11061...70F99ce67
0.3 ETH0.002074950
Transfer103429222020-06-26 17:58:061526 days ago1593194286IN
0x2Ea11061...70F99ce67
1.75 ETH0.0016599240
Transfer103364462020-06-25 18:00:341527 days ago1593108034IN
0x2Ea11061...70F99ce67
2.91 ETH0.000954235
Transfer103364432020-06-25 18:00:021527 days ago1593108002IN
0x2Ea11061...70F99ce67
1.91 ETH0.000954235
Transfer103364422020-06-25 17:59:501527 days ago1593107990IN
0x2Ea11061...70F99ce67
0.2 ETH0.0022823955
View all transactions

Latest 15 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
103623352020-06-29 18:29:381523 days ago1593455378
0x2Ea11061...70F99ce67
17 ETH
103623352020-06-29 18:29:381523 days ago1593455378
0x2Ea11061...70F99ce67
13.05 ETH
103623352020-06-29 18:29:381523 days ago1593455378
0x2Ea11061...70F99ce67
21.53 ETH
103623352020-06-29 18:29:381523 days ago1593455378
0x2Ea11061...70F99ce67
5.50002 ETH
103623352020-06-29 18:29:381523 days ago1593455378
0x2Ea11061...70F99ce67
5.5 ETH
103623352020-06-29 18:29:381523 days ago1593455378
0x2Ea11061...70F99ce67
4.6 ETH
103623352020-06-29 18:29:381523 days ago1593455378
0x2Ea11061...70F99ce67
2.5 ETH
103623352020-06-29 18:29:381523 days ago1593455378
0x2Ea11061...70F99ce67
3.4 ETH
103623352020-06-29 18:29:381523 days ago1593455378
0x2Ea11061...70F99ce67
1 ETH
103623352020-06-29 18:29:381523 days ago1593455378
0x2Ea11061...70F99ce67
0.6 ETH
103623352020-06-29 18:29:381523 days ago1593455378
0x2Ea11061...70F99ce67
5.3 ETH
103623352020-06-29 18:29:381523 days ago1593455378
0x2Ea11061...70F99ce67
0.00444 ETH
103623352020-06-29 18:29:381523 days ago1593455378
0x2Ea11061...70F99ce67
0.00442 ETH
103622772020-06-29 18:15:591523 days ago1593454559
0x2Ea11061...70F99ce67
21.666 ETH
103041172020-06-20 17:59:371532 days ago1592675977  Contract Creation0 ETH
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x810D4708...1e645C408
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
SEAuction

Compiler Version
v0.6.0+commit.26b70077

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-05-29
*/

/**
 * Created on 2020-05-11
 * @summary: SE Auction Master Contract
 * @author: Fazri Zubair & Farhan Khwaja
 */

pragma solidity ^0.6.0;

/**
 * @title SafeMath
 * @dev Math operations with safety checks that revert on error
 */
library SafeMath {

  /**
  * @dev Multiplies two numbers, reverts on overflow.
  */
  function mul(uint256 _a, uint256 _b) internal pure returns (uint256) {
    // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
    // benefit is lost if 'b' is also tested.
    // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
    if (_a == 0) {
      return 0;
    }

    uint256 c = _a * _b;
    require (c / _a == _b);

    return c;
  }

  /**
  * @dev Integer division of two numbers truncating the quotient, reverts on division by zero.
  */
  function div(uint256 _a, uint256 _b) internal pure returns (uint256) {
    require (_b > 0); // Solidity only automatically asserts when dividing by 0
    uint256 c = _a / _b;
    // assert(_a == _b * c + _a % _b); // There is no case in which this doesn't hold

    return c;
  }

  /**
  * @dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 _a, uint256 _b) internal pure returns (uint256) {
    require (_b <= _a);
    uint256 c = _a - _b;

    return c;
  }

  /**
  * @dev Adds two numbers, reverts on overflow.
  */
  function add(uint256 _a, uint256 _b) internal pure returns (uint256) {
    uint256 c = _a + _b;
    require (c >= _a);

    return c;
  }
}

/**
 * Utility library of inline functions on addresses
 */
library AddressUtils {

  /**
  * Returns whether the target address is a contract
  * @dev This function will return false if invoked during the constructor of a contract,
  *  as the code is not actually created until after the constructor finishes.
  * @param addr address to check
  * @return whether the target address is a contract
  */
  function isContract(address addr) internal view returns (bool) {
    uint256 size;
    // XXX Currently there is no better way to check if there is a contract in an address
    // than to check the size of the code at that address.
    // See https://ethereum.stackexchange.com/a/14016/36603
    // for more details about how this works.
    // TODO Check this again before the Serenity release, because all addresses will be
    // contracts then.
    // solium-disable-next-line security/no-inline-assembly
    assembly {
      size := extcodesize(addr) 
    }
    return size > 0;
  }
}

interface ERC721TokenReceiver {
    /// @notice Handle the receipt of an NFT
    /// @dev The ERC721 smart contract calls this function on the
    /// recipient after a `transfer`. This function MAY throw to revert and reject the transfer. Return
    /// of other than the magic value MUST result in the transaction being reverted.
    /// @notice The contract address is always the message sender.
    /// @param _operator The address which called `safeTransferFrom` function
    /// @param _from The address which previously owned the token
    /// @param _tokenId The NFT identifier which is being transferred
    /// @param _data Additional data with no specified format
    /// @return `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`
    /// unless throwing
    function onERC721Received(address _operator, address _from, uint256 _tokenId, bytes32 _data) external returns(bytes4);
}

/* basic Interface to access any ERC721 standard functions
 * @title ERC721Token
 */
interface ERC721Token {
    /// @notice Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE
    ///  TO CONFIRM THAT `_to` IS CAPABLE OF RECEIVING NFTS OR ELSE
    ///  THEY MAY BE PERMANENTLY LOST
    /// @dev Throws unless `msg.sender` is the current owner, an authorized
    ///  operator, or the approved address for this NFT. Throws if `_from` is
    ///  not the current owner. Throws if `_to` is the zero address. Throws if
    ///  `_tokenId` is not a valid NFT.
    /// @param _from The current owner of the NFT
    /// @param _to The new owner
    /// @param _tokenId The NFT to transfer
    function transferFrom(address _from, address _to, uint256 _tokenId) external payable;
    
    /// @notice Find the owner of an NFT
    /// @dev NFTs assigned to zero address are considered invalid, and queries
    ///  about them do throw.
    /// @param _tokenId The identifier for an NFT
    /// @return The address of the owner of the NFT
    function ownerOf(uint256 _tokenId) external view returns (address);
    
    function approve(address _to, uint256 _tokenId) external;
    function transfer(address _to, uint256 _tokenId) external;
    function implementsERC721() external pure returns (bool);
}

/** Controls state and access rights for contract functions
 * @title Operational Control
 * @author Fazri Zubair & Farhan Khwaja (Lucid Sight, Inc.)
 * Inspired and adapted from contract created by OpenZeppelin 
 * Ref: https://github.com/OpenZeppelin/zeppelin-solidity/
 */
contract OperationalControl {
  /// Facilitates access & control for the game.
  /// Roles:
  ///  -The Managers (Primary/Secondary): Has universal control of all elements (No ability to withdraw)
  ///  -The Banker: The Bank can withdraw funds and adjust fees / prices.
  ///  -otherManagers: Contracts that need access to functions for gameplay

  /// @dev Emited when contract is upgraded
  event ContractUpgrade(address newContract);

  /// @dev The addresses of the accounts (or contracts) that can execute actions within each roles.
  address public managerPrimary;
  address public managerSecondary;
  address payable public bankManager;

  // Contracts that require access for gameplay
  mapping(address => uint8) public otherManagers;

  // @dev Keeps track whether the contract is paused. When that is true, most actions are blocked
  bool public paused = false;

  // @dev Keeps track whether the contract erroredOut. When that is true, most actions are blocked & 
  // refund can be claimed
  bool public error = false;

  /**
  * @dev Operation modifiers for limiting access only to Managers
  */
  modifier onlyManager() {
    require (msg.sender == managerPrimary || msg.sender == managerSecondary || otherManagers[msg.sender] == 1);
    _;
  }

  /**
  * @dev Operation modifiers for limiting access only to Bank Manager
  */
  modifier onlyBanker() {
    require (msg.sender == bankManager);
    _;
  }

  /**
  * @dev Operation modifiers for any Operators
  */
  modifier anyOperator() {
    require (
        msg.sender == managerPrimary ||
        msg.sender == managerSecondary ||
        msg.sender == bankManager ||
        otherManagers[msg.sender] == 1
    );
    _;
  }

  /**
  * @dev Assigns a new address to act as the Primary Manager.
  * @param _newGM    New primary manager address
  */
  function setPrimaryManager(address _newGM) external onlyManager {
    require (_newGM != address(0));

    managerPrimary = _newGM;
  }

  /**
  * @dev Assigns a new address to act as the Secondary Manager.
  * @param _newGM    New Secondary Manager Address
  */
  function setSecondaryManager(address _newGM) external onlyManager {
    require (_newGM != address(0));

    managerSecondary = _newGM;
  }

  /**
    * @dev Assigns a new address to act as the Bank Manager.
    * @param _newBM    New Bank Manager Address
    */
  function setBankManager(address payable _newBM) external onlyManager {
    require (_newBM != address(0));

    bankManager = _newBM;
  }

  /// @dev Assigns a new address to act as the Other Manager. (State = 1 is active, 0 is disabled)
  function setOtherManager(address _newOp, uint8 _state) external onlyManager {
    require (_newOp != address(0));

    otherManagers[_newOp] = _state;
  }

  /// @dev Batch function assigns a new address to act as the Other Manager. (State = 1 is active, 0 is disabled)
  function batchSetOtherManager(address[] calldata _newOp, uint8[] calldata _state) external onlyManager {
	  for (uint ii = 0; ii < _newOp.length; ii++){
		require (_newOp[ii] != address(0));

    	otherManagers[_newOp[ii]] = _state[ii];
	  }
  }

  /*** Pausable functionality adapted from OpenZeppelin ***/

  /// @dev Modifier to allow actions only when the contract IS NOT paused
  modifier whenNotPaused() {
    require (!paused);
    _;
  }

  /// @dev Modifier to allow actions only when the contract IS paused
  modifier whenPaused {
    require (paused);
    _;
  }

  /// @dev Modifier to allow actions only when the contract has Error
  modifier whenError {
    require (error);
    _;
  }

  /**
    * @dev Called by any Operator role to pause the contract.
    * Used only if a bug or exploit is discovered (Here to limit losses / damage)
    */
  function pause() external onlyManager whenNotPaused {
    paused = true;
  }

  /**
  * @dev Unpauses the smart contract. Can only be called by the Game Master
  */
  function unpause() public onlyManager whenPaused {
    // can't unpause if contract was upgraded
    paused = false;
  }

  /**
  * @dev Errors out the contract thus mkaing the contract non-functionable
  */
  function hasError() public onlyManager whenPaused {
    error = true;
  }

  /**
  * @dev Removes the Error Hold from the contract and resumes it for working
  */
  function noError() public onlyManager whenPaused whenError {
    error = false;
  }
}

/**
 * @title      SEAuction
 * @dev        Scarcity Engine Auction Contract
 * @notice     This helps in creating auctions for items for Scarcity Engine
 */
contract SEAuction is OperationalControl {
  using SafeMath for uint256;
  using AddressUtils for address;

  /*** EVENTS ***/
  
  /// @dev Event Fired a user bids for an item
  event SEBidPlaced(address userWallet, uint256 ethBid);

  /// @dev This event is fired when an ETH winner is decalred 
  event SEAuctionETHWinner(address userAddress, uint256 buyingPrice, uint256 assetId);

  /// @dev This event is fired when a GFC winner is decalred. userAddressc can ScarcityEngine address
  /// thus bytes32. can be transformed to string
  event SEAuctionGFCWinner(bytes32 userAddress, uint256 buyingPrice, uint256 assetId);

  /// @dev This event is fired when we do a refund when a buy request can't be fulfilled
  event SEAuctionRefund(address to, uint256 ethValue);

  mapping(address => uint256) public userETHBalance;
  address[] private allBidders;
  
  // AuctionId associated with SEAuctionMaster
  uint256 public auctionId;
  // Current winner of Auction
  address public winner;
  // Winner Price
  uint256 public winningBid;
  // NFT Contract Address
  address public nftAddress;
  // Price (in wei) at beginning of sale
  uint256 public startingPrice;
  // Duration (in seconds) of sale
  uint256 public duration;
  // Time when sale started
  // NOTE: 0 if this sale has been concluded
  uint256 public startedAt;
  // ERC721 AssetID
  uint256 public assetId;
  // DApp Name
  bytes32 public dAppName;
  // Bool for transfer tokenId
  bool public transferToken;

  uint256 private maxBid;

  /**
  * @dev Constructor function
  */
  constructor (uint256 _auctionId, address payable _owner, uint256 _startingPrice, uint256 _startedAt, 
    uint256 _duration, uint256 _assetId, bytes32 _dAppName, address _nftAddress) public {
    require (_owner != address(0));
    paused = true;
    error = false;
    managerPrimary = _owner;
    managerSecondary = _owner;
    bankManager = _owner;
    otherManagers[_owner] = 1;
    
    auctionId = _auctionId;
    startingPrice = _startingPrice;
    maxBid = _startingPrice;
    duration = _duration;
    assetId = _assetId;
    dAppName = _dAppName;
    startedAt = _startedAt;
    nftAddress = _nftAddress;
    transferToken = false;
  }
  
  function isAuctionActive() external view returns(bool){
      return (now <= (startedAt.add(duration)) && winner == address(0));
  }

    // This function is called for all messages sent to
    // this contract, except plain Ether transfers
    // (there is no other function except the receive function).
    // Any call with non-empty calldata to this contract will execute
    // the fallback function (even if Ether is sent along with the call).
    fallback() external payable {  }

    /// @dev allows the contract to accept ETH
    receive() external payable {
	    // Auctions needs to be Open to allow ETH to be passed
      require (this.isAuctionActive());
      
      uint256 _potentialUserBalance = userETHBalance[msg.sender].add(msg.value);
      // Checking Sender Addr & ETH
      require (address(msg.sender) != address(0));
      require (_potentialUserBalance > maxBid);
      
      _incrementBalance(msg.sender, msg.value);
      uint256 _userBalance = userETHBalance[msg.sender];
      maxBid = _userBalance;
    
	  emit SEBidPlaced(msg.sender, msg.value);
    }

  function _incrementBalance(address bidder, uint256 ethValue) private {
    if(userETHBalance[bidder] == 0){
      userETHBalance[bidder] = ethValue;
      allBidders.push(bidder);
    }else{
      uint256 _userBalance = userETHBalance[bidder];
      userETHBalance[bidder] = _userBalance.add(ethValue);
    }
  }

  function auctionWinner(address _winner, address _nftAddress) external anyOperator {
    require(address(_winner) != address(0), "Winner cannot be 0x0");
    
    uint256 _userBalance = userETHBalance[_winner];
    userETHBalance[_winner] = 0;
    bankManager.transfer(_userBalance);
    winner = _winner;
    if(transferToken){
      require(address(_nftAddress) != address(0), "NFT Address cannot be 0x0");
      ERC721Token _nft = ERC721Token(_nftAddress);
      require(_nft.ownerOf(assetId) == address(this));
	  _nft.transferFrom(address(this), _winner, assetId);
    }
    emit SEAuctionETHWinner(_winner, _userBalance, assetId);
  }

  function auctionWinnerWithGFC(bytes32 winnerBytes32, uint256 gfcToETH) external anyOperator {
    require(gfcToETH > 0, "Winning GFC-ETH cannot be 0");
    winner = address(bankManager);
    emit SEAuctionGFCWinner(winnerBytes32, gfcToETH, assetId);
  }
  
  function refundETH(address payable [] calldata refundAddresses) external anyOperator{
    for(uint i=0;i< refundAddresses.length;i++){
        require(refundAddresses[i] != address(0));
        uint256 _userBalance = userETHBalance[refundAddresses[i]];
        userETHBalance[refundAddresses[i]] = 0;
        refundAddresses[i].transfer(_userBalance);
        emit SEAuctionRefund(refundAddresses[i], _userBalance);
    }
  }
  
  function getAuctionDetails() external view returns(address winnerAddress, uint256 startPrice, uint256 startingTime, 
    uint256 endingTime, uint256 auctionDuration, uint256 assetID, bytes32 dApp, address nftContractAddress){
    return (
        winner,
        startingPrice,
        startedAt, 
        startedAt.add(duration), 
        duration,
        assetId, 
        dAppName, 
        nftAddress
    );
  }
  
  function totalNumberOfBidders() external view returns(uint256){
      return allBidders.length;
  }
  
  function updateTransferBool(bool flag) external anyOperator {
      transferToken = flag;
  }
  
  function getMaxBidValue() external view returns(uint256){
      return maxBid;
  }
  
  function transferAssetFromContract(address to, address nftAddress, uint256 assetId) external anyOperator{
    require(nftAddress != address(0), "NFT Contract Cannot be 0x0");
    
    ERC721Token _nft = ERC721Token(nftAddress);
    
    _nft.transferFrom(address(this), to, assetId);
  }
  
  function withdrawBalance() public onlyBanker {
      bankManager.transfer(address(this).balance);
  }
}

/**
 * @title      SEAuctionMaster
 * @dev        Scarcity Engine Master Auction Contract
 * @notice     Master auction Contract for Scarcity Engine
 */
contract SEAuctionMaster is OperationalControl {
  using SafeMath for uint256;
  using AddressUtils for address;
  
  /// @dev Auction Created
  event SEAuctionCreated(address newAuctionContract, uint256 assetId, uint256 startPrice, bytes32 indexed dAppName, uint256 startDate, uint256 endDate, uint256 seAuctionID);

  /**
  * @dev Constructor function
  */
  constructor () public {
    require (msg.sender != address(0));
    paused = true;
    error = false;
    managerPrimary = msg.sender;
    managerSecondary = msg.sender;
    bankManager = msg.sender;
    otherManagers[msg.sender] = 1;
  }
  
  struct Auction {
    uint256 auctionId;
    address payable contractAddress;
    uint256 assetId;
    address nftAddress;
    uint256 startPrice;
    uint256 startedAt;
    uint256 duration;
    bytes32 dAppName;
    uint256 winningPrice;
  }
  
  bool public canTransferOnAuction = false;
  Auction[] public auctions;
  
  function createAuction(uint256 assetId, address nftAddress, uint256 startPrice, uint256 duration, bytes32 dAppName) external onlyManager{
    require(nftAddress != address(0), "NFT Contract Cannot be 0x0");
    
    ERC721Token _nft = ERC721Token(nftAddress);
    require(duration != 0, "Duration cannot be zero");
    
    uint256 _currentTime = now;
    SEAuction _itemAuctionContract = new SEAuction(auctions.length, msg.sender, startPrice, _currentTime, duration, assetId, dAppName, nftAddress);
    
    address payable _contractAddress = address(_itemAuctionContract);
    
    Auction memory _itemAuction = Auction(
      auctions.length,
      _contractAddress,
      assetId,
      nftAddress,
      startPrice,
      _currentTime,
      duration,
      dAppName,
      0
    );

    auctions.push(_itemAuction);
    
    if(canTransferOnAuction){
        require(_nft.ownerOf(assetId) == address(this), "Auction Contract is not the owner");
        _nft.transferFrom(address(this), _contractAddress, assetId);
    }
    emit SEAuctionCreated(_contractAddress, assetId, startPrice, dAppName, _currentTime, _currentTime.add(duration), auctions.length - 1);
  }
  
  function refundFromAuction(address payable auctionContract, address payable [] calldata refundAddresses) external anyOperator {
    require(auctionContract != address(0));
    SEAuction _auctionContract = SEAuction(auctionContract);
    _auctionContract.refundETH(refundAddresses);
  }
  
  function getAuctionDetail(uint256 auctionID) external view returns(address winnerAddress, uint256 startPrice, uint256 startingTime, 
    uint256 endingTime, uint256 auctionDuration, uint256 assetId, bytes32 dApp, bytes32 auctionData, address nftContractAddress){
      Auction memory _auctionData = auctions[auctionID];
      SEAuction _auctionContract = SEAuction(_auctionData.contractAddress);
      _auctionContract.getAuctionDetails();
  }
  
  function updateAssetTransferForAuction(uint256 auctionID, bool flag) external {
      Auction memory _auctionData = auctions[auctionID];
      SEAuction _auctionContract = SEAuction(_auctionData.contractAddress);
      _auctionContract.updateTransferBool(flag);
  }
  
  function batchUpdateAssetTransferForAuction(uint256 [] calldata auctionIDs, bool flag) external {
      for(uint8 i=0;i<auctionIDs.length;i++){
        Auction memory _auctionData = auctions[auctionIDs[i]];
        SEAuction _auctionContract = SEAuction(_auctionData.contractAddress);
        _auctionContract.updateTransferBool(flag);
      }
  }
  
  function approveManager(uint256 auctionID, address approvedAddress) external anyOperator {
    Auction memory _auctionData = auctions[auctionID];
    ERC721Token _nft = ERC721Token(_auctionData.nftAddress);
    _nft.approve(approvedAddress, _auctionData.assetId);
  }
  
  function updateCanTransferOnAuction(bool flag) external anyOperator{
      canTransferOnAuction = flag;
  }
  
  function checkOwner(uint256 assetId, address nftAddress) external view returns (address){
    require(nftAddress != address(0), "NFT Contract Cannot be 0x0");
    
    ERC721Token _nft = ERC721Token(nftAddress);
    
    return _nft.ownerOf(assetId);
  }
  
  function transferStuckAsset(address to, address nftAddress, uint256 assetId) external anyOperator{
    require(nftAddress != address(0), "NFT Contract Cannot be 0x0");
    
    ERC721Token _nft = ERC721Token(nftAddress);
    
    _nft.transferFrom(address(this), to, assetId);
  }
    
  function withdrawBalance() public onlyBanker {
      bankManager.transfer(address(this).balance);
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"_auctionId","type":"uint256"},{"internalType":"address payable","name":"_owner","type":"address"},{"internalType":"uint256","name":"_startingPrice","type":"uint256"},{"internalType":"uint256","name":"_startedAt","type":"uint256"},{"internalType":"uint256","name":"_duration","type":"uint256"},{"internalType":"uint256","name":"_assetId","type":"uint256"},{"internalType":"bytes32","name":"_dAppName","type":"bytes32"},{"internalType":"address","name":"_nftAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newContract","type":"address"}],"name":"ContractUpgrade","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"buyingPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"assetId","type":"uint256"}],"name":"SEAuctionETHWinner","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"userAddress","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"buyingPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"assetId","type":"uint256"}],"name":"SEAuctionGFCWinner","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"ethValue","type":"uint256"}],"name":"SEAuctionRefund","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"userWallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"ethBid","type":"uint256"}],"name":"SEBidPlaced","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"assetId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"auctionId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_winner","type":"address"},{"internalType":"address","name":"_nftAddress","type":"address"}],"name":"auctionWinner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"winnerBytes32","type":"bytes32"},{"internalType":"uint256","name":"gfcToETH","type":"uint256"}],"name":"auctionWinnerWithGFC","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"bankManager","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_newOp","type":"address[]"},{"internalType":"uint8[]","name":"_state","type":"uint8[]"}],"name":"batchSetOtherManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dAppName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"duration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"error","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAuctionDetails","outputs":[{"internalType":"address","name":"winnerAddress","type":"address"},{"internalType":"uint256","name":"startPrice","type":"uint256"},{"internalType":"uint256","name":"startingTime","type":"uint256"},{"internalType":"uint256","name":"endingTime","type":"uint256"},{"internalType":"uint256","name":"auctionDuration","type":"uint256"},{"internalType":"uint256","name":"assetID","type":"uint256"},{"internalType":"bytes32","name":"dApp","type":"bytes32"},{"internalType":"address","name":"nftContractAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxBidValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hasError","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isAuctionActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"managerPrimary","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"managerSecondary","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nftAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"noError","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"otherManagers","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable[]","name":"refundAddresses","type":"address[]"}],"name":"refundETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_newBM","type":"address"}],"name":"setBankManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOp","type":"address"},{"internalType":"uint8","name":"_state","type":"uint8"}],"name":"setOtherManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newGM","type":"address"}],"name":"setPrimaryManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newGM","type":"address"}],"name":"setSecondaryManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startingPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalNumberOfBidders","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"address","name":"nftAddress","type":"address"},{"internalType":"uint256","name":"assetId","type":"uint256"}],"name":"transferAssetFromContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"flag","type":"bool"}],"name":"updateTransferBool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userETHBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"winner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"winningBid","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

Deployed Bytecode

0x6080604052600436106102135760003560e01c80638a53f23011610118578063d1b4b9a3116100a0578063e3a0e0691161006f578063e3a0e0691461089f578063e9e2990e146108cf578063ee70f392146108e4578063f21f537d146108f9578063fec915a31461090e57610321565b8063d1b4b9a31461084b578063d6fbf20214610860578063dfbf53ae14610875578063e16984771461088a57610321565b8063b777cad7116100e7578063b777cad71461077f578063bb1d45fc14610794578063c0619c70146107d0578063c79f8b6214610803578063c8ebadae1461081857610321565b80638a53f230146107055780638cf804381461071a578063a87dd13d1461072f578063ad5e46cb1461076a57610321565b80635fd8c7101161019b578063799a53591161016a578063799a5359146106605780637a9b6ef714610675578063825bdb74146106a85780638456cb59146106db578063850d7120146106f057610321565b80635fd8c7101461055f578063632ced3b146105745780636a330f84146105b757806370be4451146105e357610321565b80633a6dcea2116101e25780633a6dcea2146104775780633f4ba83a146104db57806344de240a146104f05780635bf8633a146105055780635c975abb1461053657610321565b80630fb5a6b41461032357806310782f8f1461034a57806323d7af241461035f57806325beff2a146103a857610321565b3661032157306001600160a01b031663d1b4b9a36040518163ffffffff1660e01b815260040160206040518083038186803b15801561025157600080fd5b505afa158015610265573d6000803e3d6000fd5b505050506040513d602081101561027b57600080fd5b505161028657600080fd5b336000908152600560205260408120546102a6903463ffffffff61092316565b9050336102b257600080fd5b60115481116102c057600080fd5b6102ca333461093c565b3360008181526005602090815260409182902054601181905582519384523491840191909152815190927f0c73c2df5079f58513604749b8a7932a0ca0a4256928b7d1ef7541be38894eed92908290030190a15050005b005b34801561032f57600080fd5b50610338610a00565b60408051918252519081900360200190f35b34801561035657600080fd5b50610338610a06565b34801561036b57600080fd5b506103926004803603602081101561038257600080fd5b50356001600160a01b0316610a0c565b6040805160ff9092168252519081900360200190f35b3480156103b457600080fd5b50610321600480360360408110156103cb57600080fd5b8101906020810181356401000000008111156103e657600080fd5b8201836020820111156103f857600080fd5b8035906020019184602083028401116401000000008311171561041a57600080fd5b91939092909160208101903564010000000081111561043857600080fd5b82018360208201111561044a57600080fd5b8035906020019184602083028401116401000000008311171561046c57600080fd5b509092509050610a21565b34801561048357600080fd5b5061048c610b10565b604080516001600160a01b03998a1681526020810198909852878101969096526060870194909452608086019290925260a085015260c084015290921660e08201529051908190036101000190f35b3480156104e757600080fd5b50610321610b7d565b3480156104fc57600080fd5b50610338610be1565b34801561051157600080fd5b5061051a610be7565b604080516001600160a01b039092168252519081900360200190f35b34801561054257600080fd5b5061054b610bf6565b604080519115158252519081900360200190f35b34801561056b57600080fd5b50610321610bff565b34801561058057600080fd5b506103216004803603606081101561059757600080fd5b506001600160a01b03813581169160208101359091169060400135610c52565b3480156105c357600080fd5b50610321600480360360208110156105da57600080fd5b50351515610d81565b3480156105ef57600080fd5b506103216004803603602081101561060657600080fd5b81019060208101813564010000000081111561062157600080fd5b82018360208201111561063357600080fd5b8035906020019184602083028401116401000000008311171561065557600080fd5b509092509050610df2565b34801561066c57600080fd5b5061054b610fd2565b34801561068157600080fd5b506103216004803603602081101561069857600080fd5b50356001600160a01b0316610fdb565b3480156106b457600080fd5b50610321600480360360208110156106cb57600080fd5b50356001600160a01b0316611059565b3480156106e757600080fd5b506103216110d7565b3480156106fc57600080fd5b5061033861113f565b34801561071157600080fd5b50610321611145565b34801561072657600080fd5b506103386111be565b34801561073b57600080fd5b506103216004803603604081101561075257600080fd5b506001600160a01b03813581169160200135166111c4565b34801561077657600080fd5b506103216114a3565b34801561078b57600080fd5b5061051a61150c565b3480156107a057600080fd5b50610321600480360360408110156107b757600080fd5b5080356001600160a01b0316906020013560ff1661151b565b3480156107dc57600080fd5b50610321600480360360208110156107f357600080fd5b50356001600160a01b03166115a4565b34801561080f57600080fd5b5061054b611622565b34801561082457600080fd5b506103386004803603602081101561083b57600080fd5b50356001600160a01b0316611630565b34801561085757600080fd5b5061054b611642565b34801561086c57600080fd5b50610338611678565b34801561088157600080fd5b5061051a61167e565b34801561089657600080fd5b5061033861168d565b3480156108ab57600080fd5b50610321600480360360408110156108c257600080fd5b5080359060200135611693565b3480156108db57600080fd5b5061051a6117af565b3480156108f057600080fd5b5061051a6117be565b34801561090557600080fd5b506103386117cd565b34801561091a57600080fd5b506103386117d3565b60008282018381101561093557600080fd5b9392505050565b6001600160a01b0382166000908152600560205260409020546109b8576001600160a01b03821660008181526005602052604081208390556006805460018101825591527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b03191690911790556109fc565b6001600160a01b0382166000908152600560205260409020546109e1818363ffffffff61092316565b6001600160a01b038416600090815260056020526040902055505b5050565b600c5481565b60075481565b60036020526000908152604090205460ff1681565b6000546001600160a01b0316331480610a4457506001546001600160a01b031633145b80610a6157503360009081526003602052604090205460ff166001145b610a6a57600080fd5b60005b83811015610b09576000858583818110610a8357fe5b905060200201356001600160a01b03166001600160a01b03161415610aa757600080fd5b828282818110610ab357fe5b9050602002013560ff1660036000878785818110610acd57fe5b602090810292909201356001600160a01b0316835250810191909152604001600020805460ff191660ff92909216919091179055600101610a6d565b5050505050565b600080600080600080600080600860009054906101000a90046001600160a01b0316600b54600d54610b4f600c54600d5461092390919063ffffffff16565b600c54600e54600f54600a54969f959e50939c50919a509850965094506001600160a01b0390911692509050565b6000546001600160a01b0316331480610ba057506001546001600160a01b031633145b80610bbd57503360009081526003602052604090205460ff166001145b610bc657600080fd5b60045460ff16610bd557600080fd5b6004805460ff19169055565b600e5481565b600a546001600160a01b031681565b60045460ff1681565b6002546001600160a01b03163314610c1657600080fd5b6002546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610c4f573d6000803e3d6000fd5b50565b6000546001600160a01b0316331480610c7557506001546001600160a01b031633145b80610c8a57506002546001600160a01b031633145b80610ca757503360009081526003602052604090205460ff166001145b610cb057600080fd5b6001600160a01b038216610d0b576040805162461bcd60e51b815260206004820152601a60248201527f4e465420436f6e74726163742043616e6e6f7420626520307830000000000000604482015290519081900360640190fd5b604080516323b872dd60e01b81523060048201526001600160a01b03858116602483015260448201849052915184928316916323b872dd91606480830192600092919082900301818387803b158015610d6357600080fd5b505af1158015610d77573d6000803e3d6000fd5b5050505050505050565b6000546001600160a01b0316331480610da457506001546001600160a01b031633145b80610db957506002546001600160a01b031633145b80610dd657503360009081526003602052604090205460ff166001145b610ddf57600080fd5b6010805460ff1916911515919091179055565b6000546001600160a01b0316331480610e1557506001546001600160a01b031633145b80610e2a57506002546001600160a01b031633145b80610e4757503360009081526003602052604090205460ff166001145b610e5057600080fd5b60005b81811015610fcd576000838383818110610e6957fe5b905060200201356001600160a01b03166001600160a01b03161415610e8d57600080fd5b600060056000858585818110610e9f57fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020549050600060056000868686818110610ee457fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002081905550838383818110610f2457fe5b905060200201356001600160a01b03166001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610f6c573d6000803e3d6000fd5b507f2cdcfcda471a6e04eb161bd12dcae2ed96ddcbbf9a3c6f0dd48f8a0a0dc42459848484818110610f9a57fe5b60408051602092830294909401356001600160a01b0316845290830185905280519283900301919050a150600101610e53565b505050565b60105460ff1681565b6000546001600160a01b0316331480610ffe57506001546001600160a01b031633145b8061101b57503360009081526003602052604090205460ff166001145b61102457600080fd5b6001600160a01b03811661103757600080fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633148061107c57506001546001600160a01b031633145b8061109957503360009081526003602052604090205460ff166001145b6110a257600080fd5b6001600160a01b0381166110b557600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314806110fa57506001546001600160a01b031633145b8061111757503360009081526003602052604090205460ff166001145b61112057600080fd5b60045460ff161561113057600080fd5b6004805460ff19166001179055565b600f5481565b6000546001600160a01b031633148061116857506001546001600160a01b031633145b8061118557503360009081526003602052604090205460ff166001145b61118e57600080fd5b60045460ff1661119d57600080fd5b600454610100900460ff166111b157600080fd5b6004805461ff0019169055565b60095481565b6000546001600160a01b03163314806111e757506001546001600160a01b031633145b806111fc57506002546001600160a01b031633145b8061121957503360009081526003602052604090205460ff166001145b61122257600080fd5b6001600160a01b038216611274576040805162461bcd60e51b8152602060048201526014602482015273057696e6e65722063616e6e6f74206265203078360641b604482015290519081900360640190fd5b6001600160a01b0380831660009081526005602052604080822080549083905560025491519093919091169183156108fc02918491818181858888f193505050501580156112c6573d6000803e3d6000fd5b50600880546001600160a01b0319166001600160a01b03851617905560105460ff1615611452576001600160a01b038216611348576040805162461bcd60e51b815260206004820152601960248201527f4e465420416464726573732063616e6e6f742062652030783000000000000000604482015290519081900360640190fd5b6000829050306001600160a01b0316816001600160a01b0316636352211e600e546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561139d57600080fd5b505afa1580156113b1573d6000803e3d6000fd5b505050506040513d60208110156113c757600080fd5b50516001600160a01b0316146113dc57600080fd5b600e54604080516323b872dd60e01b81523060048201526001600160a01b03878116602483015260448201939093529051918316916323b872dd9160648082019260009290919082900301818387803b15801561143857600080fd5b505af115801561144c573d6000803e3d6000fd5b50505050505b600e54604080516001600160a01b03861681526020810184905280820192909252517f9548e172611b83a6a77b78a8c451667292c09ab459d4668a3f5d9746a53706779181900360600190a1505050565b6000546001600160a01b03163314806114c657506001546001600160a01b031633145b806114e357503360009081526003602052604090205460ff166001145b6114ec57600080fd5b60045460ff166114fb57600080fd5b6004805461ff001916610100179055565b6000546001600160a01b031681565b6000546001600160a01b031633148061153e57506001546001600160a01b031633145b8061155b57503360009081526003602052604090205460ff166001145b61156457600080fd5b6001600160a01b03821661157757600080fd5b6001600160a01b03919091166000908152600360205260409020805460ff191660ff909216919091179055565b6000546001600160a01b03163314806115c757506001546001600160a01b031633145b806115e457503360009081526003602052604090205460ff166001145b6115ed57600080fd5b6001600160a01b03811661160057600080fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b600454610100900460ff1681565b60056020526000908152604090205481565b600061165b600c54600d5461092390919063ffffffff16565b421115801561167357506008546001600160a01b0316155b905090565b600b5481565b6008546001600160a01b031681565b60065490565b6000546001600160a01b03163314806116b657506001546001600160a01b031633145b806116cb57506002546001600160a01b031633145b806116e857503360009081526003602052604090205460ff166001145b6116f157600080fd5b60008111611746576040805162461bcd60e51b815260206004820152601b60248201527f57696e6e696e67204746432d4554482063616e6e6f7420626520300000000000604482015290519081900360640190fd5b600254600880546001600160a01b0319166001600160a01b03909216919091179055600e54604080518481526020810184905280820192909252517f71a39ca9ab20c4b7e840acbdcff6a07fec411627910beaa932a77e651c60cc6d9181900360600190a15050565b6002546001600160a01b031681565b6001546001600160a01b031681565b600d5481565b6011549056fea26469706673582212203e65eef414cff3def693117806b304aff6cfa0011181c2bd5c6ba6f1a02e575d64736f6c63430006000033

Deployed Bytecode Sourcemap

9845:6223:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12769:4;-1:-1:-1;;;;;12769:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12769:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12769:22:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12769:22:0;12760:32;;;;;;12856:10;12809:29;12841:26;;;:14;:26;;;;;;:41;;12872:9;12841:41;:30;:41;:::i;:::-;12809:73;-1:-1:-1;12945:10:0;12928:43;;;;;;13013:6;;12989:21;:30;12980:40;;;;;;13037;13055:10;13067:9;13037:17;:40::i;:::-;13124:10;13086:20;13109:26;;;:14;:26;;;;;;;;;;13144:6;:21;;;13182:34;;;;;13206:9;13182:34;;;;;;;;;13109:26;;13182:34;;;;;;;;;12663:561;;9845:6223;;;11079:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11079:23:0;;;:::i;:::-;;;;;;;;;;;;;;;;10775:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10775:24:0;;;:::i;5891:46::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5891:46:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5891:46:0;-1:-1:-1;;;;;5891:46:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;8134:251;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8134:251:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8134:251:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;8134:251:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8134:251:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;8134:251:0;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;8134:251:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8134:251:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;8134:251:0;;-1:-1:-1;8134:251:0;-1:-1:-1;8134:251:0;:::i;14921:428::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14921:428:0;;;:::i;:::-;;;;-1:-1:-1;;;;;14921:428:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14921:428:0;;;;;;;;;;;;;;;;;;;;;;;;9200:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9200:123:0;;;:::i;11232:22::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11232:22:0;;;:::i;10938:25::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10938:25:0;;;:::i;:::-;;;;-1:-1:-1;;;;;10938:25:0;;;;;;;;;;;;;;6043:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6043:26:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;15962:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15962:103:0;;;:::i;15661:293::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15661:293:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;15661:293:0;;;;;;;;;;;;;;;;;:::i;15466:95::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15466:95:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15466:95:0;;;;:::i;14480:433::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14480:433:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14480:433:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;14480:433:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;14480:433:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;14480:433:0;;-1:-1:-1;14480:433:0;-1:-1:-1;14480:433:0;:::i;11335:25::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11335:25:0;;;:::i;7608:141::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7608:141:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7608:141:0;-1:-1:-1;;;;;7608:141:0;;:::i;7333:143::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7333:143:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7333:143:0;-1:-1:-1;;;;;7333:143:0;;:::i;9026:78::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9026:78:0;;;:::i;11275:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11275:23:0;;;:::i;9590:85::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9590:85:0;;;:::i;10881:25::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10881:25:0;;;:::i;13556:653::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13556:653:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13556:653:0;;;;;;;;;;:::i;9418:75::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9418:75:0;;;:::i;5731:29::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5731:29:0;;;:::i;7855:158::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7855:158:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7855:158:0;;-1:-1:-1;;;;;7855:158:0;;;;;;;;:::i;7058:139::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7058:139:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7058:139:0;-1:-1:-1;;;;;7058:139:0;;:::i;6207:25::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6207:25:0;;;:::i;10636:49::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10636:49:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10636:49:0;-1:-1:-1;;;;;10636:49:0;;:::i;12112:134::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12112:134:0;;;:::i;11010:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11010:28:0;;;:::i;10836:21::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10836:21:0;;;:::i;15357:101::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15357:101:0;;;:::i;14215:257::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14215:257:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14215:257:0;;;;;;;:::i;5801:34::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5801:34:0;;;:::i;5765:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5765:31:0;;;:::i;11182:24::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11182:24:0;;;:::i;15569:84::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15569:84:0;;;:::i;1466:142::-;1526:7;1554;;;1577;;;;1568:17;;;;;;1601:1;1466:142;-1:-1:-1;;;1466:142:0:o;13230:320::-;-1:-1:-1;;;;;13309:22:0;;;;;;:14;:22;;;;;;13306:239;;-1:-1:-1;;;;;13346:22:0;;;;;;:14;:22;;;;;:33;;;13388:10;27::-1;;-1:-1;23:18;;45:23;;13388::0;;;;;;-1:-1:-1;;;;;;13388:23:0;;;;;;13306:239;;;-1:-1:-1;;;;;13455:22:0;;13432:20;13455:22;;;:14;:22;;;;;;13511:26;13455:22;13528:8;13511:16;:26::i;:::-;-1:-1:-1;;;;;13486:22:0;;;;;;:14;:22;;;;;:51;-1:-1:-1;13306:239:0;13230:320;;:::o;11079:23::-;;;;:::o;10775:24::-;;;;:::o;5891:46::-;;;;;;;;;;;;;;;:::o;8134:251::-;6372:14;;-1:-1:-1;;;;;6372:14:0;6358:10;:28;;:62;;-1:-1:-1;6404:16:0;;-1:-1:-1;;;;;6404:16:0;6390:10;:30;6358:62;:96;;;-1:-1:-1;6438:10:0;6424:25;;;;:13;:25;;;;;;;;;:30;6358:96;6349:106;;;;;;8248:7:::1;8243:137;8261:18:::0;;::::1;8243:137;;;8322:1;8300:6:::0;;8307:2;8300:10;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;8300:10:0::1;-1:-1:-1::0;;;;;8300:24:0::1;;;8291:34;;;::::0;::::1;;8363:6;;8370:2;8363:10;;;;;;;;;;;;;;;8335:13;:25;8349:6;;8356:2;8349:10;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;8349:10:0::1;8335:25:::0;;-1:-1:-1;8335:25:0;::::1;::::0;;;;;;-1:-1:-1;8335:25:0;:38;;-1:-1:-1;;8335:38:0::1;;::::0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;8281:4:0::1;8243:137;;;;8134:251:::0;;;;:::o;14921:428::-;15171:6;;15188:13;;15212:9;;15247:8;;14972:21;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15171:6:0;;;;15233:23;;15212:9;;15233:23;:13;:23;:::i;:::-;15268:8;;15287:7;;15306:8;;15326:10;;15153:190;;;;-1:-1:-1;15153:190:0;;-1:-1:-1;15153:190:0;;-1:-1:-1;15268:8:0;-1:-1:-1;15287:7:0;-1:-1:-1;15306:8:0;-1:-1:-1;;;;;;15326:10:0;;;;-1:-1:-1;15153:190:0;-1:-1:-1;14921:428:0:o;9200:123::-;6372:14;;-1:-1:-1;;;;;6372:14:0;6358:10;:28;;:62;;-1:-1:-1;6404:16:0;;-1:-1:-1;;;;;6404:16:0;6390:10;:30;6358:62;:96;;;-1:-1:-1;6438:10:0;6424:25;;;;:13;:25;;;;;;;;;:30;6358:96;6349:106;;;;;;8706:6:::1;::::0;::::1;;8697:16;;;::::0;::::1;;9303:6:::2;:14:::0;;-1:-1:-1;;9303:14:0::2;::::0;;9200:123::o;11232:22::-;;;;:::o;10938:25::-;;;-1:-1:-1;;;;;10938:25:0;;:::o;6043:26::-;;;;;;:::o;15962:103::-;6611:11;;-1:-1:-1;;;;;6611:11:0;6597:10;:25;6588:35;;;;;;16016:11:::1;::::0;:43:::1;::::0;-1:-1:-1;;;;;16016:11:0;;::::1;::::0;16037:21:::1;16016:43:::0;::::1;;;::::0;:11:::1;:43:::0;:11;:43;16037:21;16016:11;:43;::::1;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;16016:43:0;15962:103::o:0;15661:293::-;6767:14;;-1:-1:-1;;;;;6767:14:0;6753:10;:28;;:71;;-1:-1:-1;6808:16:0;;-1:-1:-1;;;;;6808:16:0;6794:10;:30;6753:71;:109;;;-1:-1:-1;6851:11:0;;-1:-1:-1;;;;;6851:11:0;6837:10;:25;6753:109;:152;;;-1:-1:-1;6889:10:0;6875:25;;;;:13;:25;;;;;;;;;:30;6753:152;6734:178;;;;;;-1:-1:-1;;;;;15780:24:0;::::1;15772:63;;;::::0;;-1:-1:-1;;;15772:63:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;15903:45;::::0;;-1:-1:-1;;;15903:45:0;;15929:4:::1;15903:45;::::0;::::1;::::0;-1:-1:-1;;;;;15903:45:0;;::::1;::::0;;;;;;;;;;;;15879:10;;15903:17;::::1;::::0;-1:-1:-1;;15903:45:0;;;;;-1:-1:-1;;15903:45:0;;;;;;;-1:-1:-1;15903:17:0;:45;::::1;;5:2:-1::0;::::1;;;30:1;27::::0;20:12:::1;5:2;15903:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;15903:45:0;;;;6919:1;15661:293:::0;;;:::o;15466:95::-;6767:14;;-1:-1:-1;;;;;6767:14:0;6753:10;:28;;:71;;-1:-1:-1;6808:16:0;;-1:-1:-1;;;;;6808:16:0;6794:10;:30;6753:71;:109;;;-1:-1:-1;6851:11:0;;-1:-1:-1;;;;;6851:11:0;6837:10;:25;6753:109;:152;;;-1:-1:-1;6889:10:0;6875:25;;;;:13;:25;;;;;;;;;:30;6753:152;6734:178;;;;;;15535:13:::1;:20:::0;;-1:-1:-1;;15535:20:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15466:95::o;14480:433::-;6767:14;;-1:-1:-1;;;;;6767:14:0;6753:10;:28;;:71;;-1:-1:-1;6808:16:0;;-1:-1:-1;;;;;6808:16:0;6794:10;:30;6753:71;:109;;;-1:-1:-1;6851:11:0;;-1:-1:-1;;;;;6851:11:0;6837:10;:25;6753:109;:152;;;-1:-1:-1;6889:10:0;6875:25;;;;:13;:25;;;;;;;;;:30;6753:152;6734:178;;;;;;14575:6:::1;14571:337;14584:25:::0;;::::1;14571:337;;;14663:1;14633:15:::0;;14649:1;14633:18;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;14633:18:0::1;-1:-1:-1::0;;;;;14633:32:0::1;;;14625:41;;;::::0;::::1;;14677:20;14700:14;:34;14715:15;;14731:1;14715:18;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;14715:18:0::1;14700:34:::0;;-1:-1:-1;14700:34:0;::::1;::::0;;;;;;-1:-1:-1;14700:34:0;;;;;-1:-1:-1;14745:14:0::1;-1:-1:-1::0;14760:15:0;;14776:1;14760:18;;::::1;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;14760:18:0::1;14745:34:::0;;-1:-1:-1;14745:34:0;::::1;::::0;;;;;;-1:-1:-1;14745:34:0;:38;14794:15;;14810:1;14794:18;;::::1;;;;;:41;::::0;-1:-1:-1;;;;;14794:18:0::1;::::0;;::::1;::::0;;;::::1;;;::::0;:41;::::1;;;::::0;-1:-1:-1;14822:12:0;;14794:41:::1;::::0;;;14822:12;14794:18;:41;::::1;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;14794:41:0;14851:49;14867:15;;14883:1;14867:18;;;;;;;14851:49;::::0;;14867:18:::1;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;14867:18:0::1;14851:49:::0;;;;::::1;::::0;;;;;;;;;;;;-1:-1:-1;14851:49:0::1;-1:-1:-1::0;14610:3:0::1;;14571:337;;;;14480:433:::0;;:::o;11335:25::-;;;;;;:::o;7608:141::-;6372:14;;-1:-1:-1;;;;;6372:14:0;6358:10;:28;;:62;;-1:-1:-1;6404:16:0;;-1:-1:-1;;;;;6404:16:0;6390:10;:30;6358:62;:96;;;-1:-1:-1;6438:10:0;6424:25;;;;:13;:25;;;;;;;;;:30;6358:96;6349:106;;;;;;-1:-1:-1;;;;;7693:20:0;::::1;7684:30;;;::::0;::::1;;7723:11;:20:::0;;-1:-1:-1;;;;;;7723:20:0::1;-1:-1:-1::0;;;;;7723:20:0;;;::::1;::::0;;;::::1;::::0;;7608:141::o;7333:143::-;6372:14;;-1:-1:-1;;;;;6372:14:0;6358:10;:28;;:62;;-1:-1:-1;6404:16:0;;-1:-1:-1;;;;;6404:16:0;6390:10;:30;6358:62;:96;;;-1:-1:-1;6438:10:0;6424:25;;;;:13;:25;;;;;;;;;:30;6358:96;6349:106;;;;;;-1:-1:-1;;;;;7415:20:0;::::1;7406:30;;;::::0;::::1;;7445:16;:25:::0;;-1:-1:-1;;;;;;7445:25:0::1;-1:-1:-1::0;;;;;7445:25:0;;;::::1;::::0;;;::::1;::::0;;7333:143::o;9026:78::-;6372:14;;-1:-1:-1;;;;;6372:14:0;6358:10;:28;;:62;;-1:-1:-1;6404:16:0;;-1:-1:-1;;;;;6404:16:0;6390:10;:30;6358:62;:96;;;-1:-1:-1;6438:10:0;6424:25;;;;:13;:25;;;;;;;;;:30;6358:96;6349:106;;;;;;8572:6:::1;::::0;::::1;;8571:7;8562:17;;;::::0;::::1;;9085:6:::2;:13:::0;;-1:-1:-1;;9085:13:0::2;9094:4;9085:13;::::0;;9026:78::o;11275:23::-;;;;:::o;9590:85::-;6372:14;;-1:-1:-1;;;;;6372:14:0;6358:10;:28;;:62;;-1:-1:-1;6404:16:0;;-1:-1:-1;;;;;6404:16:0;6390:10;:30;6358:62;:96;;;-1:-1:-1;6438:10:0;6424:25;;;;:13;:25;;;;;;;;;:30;6358:96;6349:106;;;;;;8706:6:::1;::::0;::::1;;8697:16;;;::::0;::::1;;8839:5:::2;::::0;::::2;::::0;::::2;;;8830:15;;;::::0;::::2;;9656:5:::3;:13:::0;;-1:-1:-1;;9656:13:0::3;::::0;;9590:85::o;10881:25::-;;;;:::o;13556:653::-;6767:14;;-1:-1:-1;;;;;6767:14:0;6753:10;:28;;:71;;-1:-1:-1;6808:16:0;;-1:-1:-1;;;;;6808:16:0;6794:10;:30;6753:71;:109;;;-1:-1:-1;6851:11:0;;-1:-1:-1;;;;;6851:11:0;6837:10;:25;6753:109;:152;;;-1:-1:-1;6889:10:0;6875:25;;;;:13;:25;;;;;;;;;:30;6753:152;6734:178;;;;;;-1:-1:-1;;;;;13653:30:0;::::1;13645:63;;;::::0;;-1:-1:-1;;;13645:63:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;13645:63:0;;;;;;;;;;-1:-1:-1;13645:63:0;;::::1;;-1:-1:-1::0;;;;;13744:23:0;;::::1;13721:20;13744:23:::0;;;:14:::1;:23;::::0;;;;;;;13774:27;;;;13808:11:::1;::::0;:34;;13744:23;;13808:11;;;::::1;::::0;:34:::1;::::0;::::1;;::::0;13744:23;;13808:34;13721:20;13808:34;13744:23;13808:11;:34;::::1;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;-1:-1:::0;13849:6:0::1;:16:::0;;-1:-1:-1;;;;;;13849:16:0::1;-1:-1:-1::0;;;;;13849:16:0;::::1;;::::0;;13875:13:::1;::::0;::::1;;13872:270;;;-1:-1:-1::0;;;;;13906:34:0;::::1;13898:72;;;::::0;;-1:-1:-1;;;13898:72:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;14052:7;::::0;14039:21:::1;::::0;;-1:-1:-1;;;14039:21:0;;::::1;::::0;::::1;::::0;;;;;14010:11;;14072:4:::1;::::0;-1:-1:-1;;;;;14039:12:0;::::1;::::0;::::1;::::0;:21;;;;;::::1;::::0;;;;;;;;:12;:21;::::1;;5:2:-1::0;::::1;;;30:1;27::::0;20:12:::1;5:2;14039:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;14039:21:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;-1:-1:::0;14039:21:0;-1:-1:-1;;;;;14039:38:0::1;;14031:47;;;::::0;::::1;;14126:7;::::0;14084:50:::1;::::0;;-1:-1:-1;;;14084:50:0;;14110:4:::1;14084:50;::::0;::::1;::::0;-1:-1:-1;;;;;14084:50:0;;::::1;::::0;;;;;;;;;;;;;:17;;::::1;::::0;-1:-1:-1;;14084:50:0;;;;;-1:-1:-1;;14084:50:0;;;;;;;;-1:-1:-1;14084:17:0;:50;::::1;;5:2:-1::0;::::1;;;30:1;27::::0;20:12:::1;5:2;14084:50:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;14084:50:0;;;;13872:270;;14195:7;::::0;14153:50:::1;::::0;;-1:-1:-1;;;;;14153:50:0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;;::::1;::::0;;;;;;;::::1;6919:1;13556:653:::0;;:::o;9418:75::-;6372:14;;-1:-1:-1;;;;;6372:14:0;6358:10;:28;;:62;;-1:-1:-1;6404:16:0;;-1:-1:-1;;;;;6404:16:0;6390:10;:30;6358:62;:96;;;-1:-1:-1;6438:10:0;6424:25;;;;:13;:25;;;;;;;;;:30;6358:96;6349:106;;;;;;8706:6:::1;::::0;::::1;;8697:16;;;::::0;::::1;;9475:5:::2;:12:::0;;-1:-1:-1;;9475:12:0::2;;;::::0;;9418:75::o;5731:29::-;;;-1:-1:-1;;;;;5731:29:0;;:::o;7855:158::-;6372:14;;-1:-1:-1;;;;;6372:14:0;6358:10;:28;;:62;;-1:-1:-1;6404:16:0;;-1:-1:-1;;;;;6404:16:0;6390:10;:30;6358:62;:96;;;-1:-1:-1;6438:10:0;6424:25;;;;:13;:25;;;;;;;;;:30;6358:96;6349:106;;;;;;-1:-1:-1;;;;;7947:20:0;::::1;7938:30;;;::::0;::::1;;-1:-1:-1::0;;;;;7977:21:0;;;::::1;;::::0;;;:13:::1;:21;::::0;;;;:30;;-1:-1:-1;;7977:30:0::1;-1:-1:-1::0;7977:30:0;;::::1;::::0;;;::::1;::::0;;7855:158::o;7058:139::-;6372:14;;-1:-1:-1;;;;;6372:14:0;6358:10;:28;;:62;;-1:-1:-1;6404:16:0;;-1:-1:-1;;;;;6404:16:0;6390:10;:30;6358:62;:96;;;-1:-1:-1;6438:10:0;6424:25;;;;:13;:25;;;;;;;;;:30;6358:96;6349:106;;;;;;-1:-1:-1;;;;;7138:20:0;::::1;7129:30;;;::::0;::::1;;7168:14;:23:::0;;-1:-1:-1;;;;;;7168:23:0::1;-1:-1:-1::0;;;;;7168:23:0;;;::::1;::::0;;;::::1;::::0;;7058:139::o;6207:25::-;;;;;;;;;:::o;10636:49::-;;;;;;;;;;;;;:::o;12112:134::-;12161:4;12191:23;12205:8;;12191:9;;:13;;:23;;;;:::i;:::-;12183:3;:32;;:56;;;;-1:-1:-1;12219:6:0;;-1:-1:-1;;;;;12219:6:0;:20;12183:56;12175:65;;12112:134;:::o;11010:28::-;;;;:::o;10836:21::-;;;-1:-1:-1;;;;;10836:21:0;;:::o;15357:101::-;15435:10;:17;15357:101;:::o;14215:257::-;6767:14;;-1:-1:-1;;;;;6767:14:0;6753:10;:28;;:71;;-1:-1:-1;6808:16:0;;-1:-1:-1;;;;;6808:16:0;6794:10;:30;6753:71;:109;;;-1:-1:-1;6851:11:0;;-1:-1:-1;;;;;6851:11:0;6837:10;:25;6753:109;:152;;;-1:-1:-1;6889:10:0;6875:25;;;;:13;:25;;;;;;;;;:30;6753:152;6734:178;;;;;;14333:1:::1;14322:8;:12;14314:52;;;::::0;;-1:-1:-1;;;14314:52:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;14390:11;::::0;14373:6:::1;:29:::0;;-1:-1:-1;;;;;;14373:29:0::1;-1:-1:-1::0;;;;;14390:11:0;;::::1;14373:29:::0;;;::::1;::::0;;14458:7:::1;::::0;14414:52:::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;::::1;::::0;;;;;;;::::1;14215:257:::0;;:::o;5801:34::-;;;-1:-1:-1;;;;;5801:34:0;;:::o;5765:31::-;;;-1:-1:-1;;;;;5765:31:0;;:::o;11182:24::-;;;;:::o;15569:84::-;15641:6;;15569:84;:::o

Swarm Source

ipfs://3e65eef414cff3def693117806b304aff6cfa0011181c2bd5c6ba6f1a02e575d

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ 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.