Contract 0x4f880C3174Be2E55612DEfA1F01dDCd10bd51a8a 1

 
 
Txn Hash
Method
Block
From
To
Value
0x5ba8d2b7c06ed743b1f28d1fa9cbc024e0cf860b543e18e37916cc117a76b4b8Auction Winner102730332020-06-15 22:20:59906 days 38 mins agoCryptoSpaceCommanders: Deployer IN  0x4f880c3174be2e55612defa1f01ddcd10bd51a8a0 Ether0.0033872728
0xaa643452550a1bd4c302601fed9448f3d7b0f4b32fb91441c4ff6173f8a632e5Refund ETH102730292020-06-15 22:19:36906 days 39 mins agoCryptoSpaceCommanders: Deployer IN  0x4f880c3174be2e55612defa1f01ddcd10bd51a8a0 Ether0.0018566528
0xec71c5af2c4883aaec80396aaf607af42eccb4cb2cc9896cd08d46b28e59ef24Update Transfer ...102730222020-06-15 22:17:14906 days 42 mins agoCryptoSpaceCommanders: Deployer IN  0x4f880c3174be2e55612defa1f01ddcd10bd51a8a0 Ether0.0012100428
0x81c4d58b7e6204076cbff6c5cd813c21d8ca9af3f68dcfe00e55e00d6e8bc4e6Transfer102717772020-06-15 17:47:08906 days 5 hrs ago0xc1bf22a6e87674f651ee4e0675b481a2a134c343 IN  0x4f880c3174be2e55612defa1f01ddcd10bd51a8a23.56789 Ether0.002074950
0x603b73d409b526d9516fd1d24338113f67fe89e5ed6041fe661033104ef74feeTransfer102394202020-06-10 17:59:38911 days 4 hrs ago0xc1bf22a6e87674f651ee4e0675b481a2a134c343 IN  0x4f880c3174be2e55612defa1f01ddcd10bd51a8a23.45678 Ether0.0072337788
0x4444285fe9ac75b441922fc38f3184ac0ab8d9556643123e25aa7db7b708c2d6Transfer102359462020-06-10 5:02:19911 days 17 hrs ago0x8bee1ca8b0f0639a4220f9894f91c854a0687885 IN  0x4f880c3174be2e55612defa1f01ddcd10bd51a8a8.5 Ether0.002770233.7
0x1a4182d7a5298f325aab31aea564adaf348af167f0a5af8e8eb0918444d5c356Transfer102356662020-06-10 3:59:01911 days 19 hrs agoENS Name blackkettle.eth IN  0x4f880c3174be2e55612defa1f01ddcd10bd51a8a0.05909 Ether0.0009959524
0xa63d6317254012cadb30f609c1f37d662ff2afd5ba18faeb7cb5b9c033f328d4Transfer102356502020-06-10 3:55:50911 days 19 hrs agoENS Name blackkettle.eth IN  0x4f880c3174be2e55612defa1f01ddcd10bd51a8a0.05002 Ether0.0019728424
0x1155d808a13b4fc2201d66b1f897d4e40dee9f89ac8a7c57a102f44130d80518Transfer102339322020-06-09 21:21:18912 days 1 hr ago0x897a9072397034cfcc7a8b9d59e78ec86ce8aa72 IN  0x4f880c3174be2e55612defa1f01ddcd10bd51a8a0.05 Ether0.0032058739
0xc138e10450f4728acc3998ba229877771805171fee5ed7e43bd06b81c57b65f3Transfer102332522020-06-09 18:52:56912 days 4 hrs ago0xa0f5caec835fdca79261fc68160e8ec879733b47 IN  0x4f880c3174be2e55612defa1f01ddcd10bd51a8a0.04 Ether0.0016440420
0x6f72986aa3267ff969846bf52e745f37f04e3f5c261c3702519811f56424ce13Transfer102331002020-06-09 18:19:49912 days 4 hrs ago0x8c2b58db0b9de5383023165110b49097dc2f77d4 IN  0x4f880c3174be2e55612defa1f01ddcd10bd51a8a0.0333 Ether0.0024660630
0x97fd0589f8637a4b18d919e9705296cdf0d1bc1738859bfb44e385e138fd54e7Transfer102330272020-06-09 18:02:43912 days 4 hrs ago0x2b7d84315441a3ed2b1bb6f22baa3ce88f67341e IN  0x4f880c3174be2e55612defa1f01ddcd10bd51a8a0.00412 Ether0.0034020735
[ Download CSV Export 
Latest 8 internal transactions
Parent Txn Hash Block From To Value
0xaa643452550a1bd4c302601fed9448f3d7b0f4b32fb91441c4ff6173f8a632e5102730292020-06-15 22:19:36906 days 39 mins ago 0x4f880c3174be2e55612defa1f01ddcd10bd51a8a0xc1bf22a6e87674f651ee4e0675b481a2a134c34347.02467 Ether
0xaa643452550a1bd4c302601fed9448f3d7b0f4b32fb91441c4ff6173f8a632e5102730292020-06-15 22:19:36906 days 39 mins ago 0x4f880c3174be2e55612defa1f01ddcd10bd51a8a0x8bee1ca8b0f0639a4220f9894f91c854a06878858.5 Ether
0xaa643452550a1bd4c302601fed9448f3d7b0f4b32fb91441c4ff6173f8a632e5102730292020-06-15 22:19:36906 days 39 mins ago 0x4f880c3174be2e55612defa1f01ddcd10bd51a8aENS Name blackkettle.eth0.10911 Ether
0xaa643452550a1bd4c302601fed9448f3d7b0f4b32fb91441c4ff6173f8a632e5102730292020-06-15 22:19:36906 days 39 mins ago 0x4f880c3174be2e55612defa1f01ddcd10bd51a8a0x897a9072397034cfcc7a8b9d59e78ec86ce8aa720.05 Ether
0xaa643452550a1bd4c302601fed9448f3d7b0f4b32fb91441c4ff6173f8a632e5102730292020-06-15 22:19:36906 days 39 mins ago 0x4f880c3174be2e55612defa1f01ddcd10bd51a8a0xa0f5caec835fdca79261fc68160e8ec879733b470.04 Ether
0xaa643452550a1bd4c302601fed9448f3d7b0f4b32fb91441c4ff6173f8a632e5102730292020-06-15 22:19:36906 days 39 mins ago 0x4f880c3174be2e55612defa1f01ddcd10bd51a8a0x8c2b58db0b9de5383023165110b49097dc2f77d40.0333 Ether
0xaa643452550a1bd4c302601fed9448f3d7b0f4b32fb91441c4ff6173f8a632e5102730292020-06-15 22:19:36906 days 39 mins ago 0x4f880c3174be2e55612defa1f01ddcd10bd51a8a0x2b7d84315441a3ed2b1bb6f22baa3ce88f67341e0.00412 Ether
0xd1a77e7feaf4afd0b6dc06dbbced9e2fde84c9b7f814aaa46cfdfd4454d5520b102330172020-06-09 17:59:35912 days 4 hrs ago 0x4cf34a460e0c855af3b38ec093c46216b2d09b85  Contract Creation0 Ether
[ Download CSV Export 
Loading

Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0x810d470894e6a6207b7d01ba22049301e645c408

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

60806040526004805461ffff1916905534801561001b57600080fd5b50604051611940380380611940833981810160405261010081101561003f57600080fd5b508051602082015160408301516060840151608085015160a086015160c087015160e0909701519596949593949293919290916001600160a01b03871661008557600080fd5b6004805461ff001960ff19918216600190811791909116909255600080546001600160a01b039a8b166001600160a01b03199182168117835584548216811785556002805483168217905582526003602052604090912080548316909317909255600799909955600b879055601196909655600c93909355600e91909155600f55600d91909155600a805491909316911617905560108054909116905561180f806101316000396000f3fe6080604052600436106102135760003560e01c80638a53f23011610118578063d1b4b9a3116100a0578063e3a0e0691161006f578063e3a0e0691461089f578063e9e2990e146108cf578063ee70f392146108e4578063f21f537d146108f9578063fec915a31461090e57610321565b8063d1b4b9a31461084b578063d6fbf20214610860578063dfbf53ae14610875578063e16984771461088a57610321565b8063b777cad7116100e7578063b777cad71461077f578063bb1d45fc14610794578063c0619c70146107d0578063c79f8b6214610803578063c8ebadae1461081857610321565b80638a53f230146107055780638cf804381461071a578063a87dd13d1461072f578063ad5e46cb1461076a57610321565b80635fd8c7101161019b578063799a53591161016a578063799a5359146106605780637a9b6ef714610675578063825bdb74146106a85780638456cb59146106db578063850d7120146106f057610321565b80635fd8c7101461055f578063632ced3b146105745780636a330f84146105b757806370be4451146105e357610321565b80633a6dcea2116101e25780633a6dcea2146104775780633f4ba83a146104db57806344de240a146104f05780635bf8633a146105055780635c975abb1461053657610321565b80630fb5a6b41461032357806310782f8f1461034a57806323d7af241461035f57806325beff2a146103a857610321565b3661032157306001600160a01b031663d1b4b9a36040518163ffffffff1660e01b815260040160206040518083038186803b15801561025157600080fd5b505afa158015610265573d6000803e3d6000fd5b505050506040513d602081101561027b57600080fd5b505161028657600080fd5b336000908152600560205260408120546102a6903463ffffffff61092316565b9050336102b257600080fd5b60115481116102c057600080fd5b6102ca333461093c565b3360008181526005602090815260409182902054601181905582519384523491840191909152815190927f0c73c2df5079f58513604749b8a7932a0ca0a4256928b7d1ef7541be38894eed92908290030190a15050005b005b34801561032f57600080fd5b50610338610a00565b60408051918252519081900360200190f35b34801561035657600080fd5b50610338610a06565b34801561036b57600080fd5b506103926004803603602081101561038257600080fd5b50356001600160a01b0316610a0c565b6040805160ff9092168252519081900360200190f35b3480156103b457600080fd5b50610321600480360360408110156103cb57600080fd5b8101906020810181356401000000008111156103e657600080fd5b8201836020820111156103f857600080fd5b8035906020019184602083028401116401000000008311171561041a57600080fd5b91939092909160208101903564010000000081111561043857600080fd5b82018360208201111561044a57600080fd5b8035906020019184602083028401116401000000008311171561046c57600080fd5b509092509050610a21565b34801561048357600080fd5b5061048c610b10565b604080516001600160a01b03998a1681526020810198909852878101969096526060870194909452608086019290925260a085015260c084015290921660e08201529051908190036101000190f35b3480156104e757600080fd5b50610321610b7d565b3480156104fc57600080fd5b50610338610be1565b34801561051157600080fd5b5061051a610be7565b604080516001600160a01b039092168252519081900360200190f35b34801561054257600080fd5b5061054b610bf6565b604080519115158252519081900360200190f35b34801561056b57600080fd5b50610321610bff565b34801561058057600080fd5b506103216004803603606081101561059757600080fd5b506001600160a01b03813581169160208101359091169060400135610c52565b3480156105c357600080fd5b50610321600480360360208110156105da57600080fd5b50351515610d81565b3480156105ef57600080fd5b506103216004803603602081101561060657600080fd5b81019060208101813564010000000081111561062157600080fd5b82018360208201111561063357600080fd5b8035906020019184602083028401116401000000008311171561065557600080fd5b509092509050610df2565b34801561066c57600080fd5b5061054b610fd2565b34801561068157600080fd5b506103216004803603602081101561069857600080fd5b50356001600160a01b0316610fdb565b3480156106b457600080fd5b50610321600480360360208110156106cb57600080fd5b50356001600160a01b0316611059565b3480156106e757600080fd5b506103216110d7565b3480156106fc57600080fd5b5061033861113f565b34801561071157600080fd5b50610321611145565b34801561072657600080fd5b506103386111be565b34801561073b57600080fd5b506103216004803603604081101561075257600080fd5b506001600160a01b03813581169160200135166111c4565b34801561077657600080fd5b506103216114a3565b34801561078b57600080fd5b5061051a61150c565b3480156107a057600080fd5b50610321600480360360408110156107b757600080fd5b5080356001600160a01b0316906020013560ff1661151b565b3480156107dc57600080fd5b50610321600480360360208110156107f357600080fd5b50356001600160a01b03166115a4565b34801561080f57600080fd5b5061054b611622565b34801561082457600080fd5b506103386004803603602081101561083b57600080fd5b50356001600160a01b0316611630565b34801561085757600080fd5b5061054b611642565b34801561086c57600080fd5b50610338611678565b34801561088157600080fd5b5061051a61167e565b34801561089657600080fd5b5061033861168d565b3480156108ab57600080fd5b50610321600480360360408110156108c257600080fd5b5080359060200135611693565b3480156108db57600080fd5b5061051a6117af565b3480156108f057600080fd5b5061051a6117be565b34801561090557600080fd5b506103386117cd565b34801561091a57600080fd5b506103386117d3565b60008282018381101561093557600080fd5b9392505050565b6001600160a01b0382166000908152600560205260409020546109b8576001600160a01b03821660008181526005602052604081208390556006805460018101825591527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b03191690911790556109fc565b6001600160a01b0382166000908152600560205260409020546109e1818363ffffffff61092316565b6001600160a01b038416600090815260056020526040902055505b5050565b600c5481565b60075481565b60036020526000908152604090205460ff1681565b6000546001600160a01b0316331480610a4457506001546001600160a01b031633145b80610a6157503360009081526003602052604090205460ff166001145b610a6a57600080fd5b60005b83811015610b09576000858583818110610a8357fe5b905060200201356001600160a01b03166001600160a01b03161415610aa757600080fd5b828282818110610ab357fe5b9050602002013560ff1660036000878785818110610acd57fe5b602090810292909201356001600160a01b0316835250810191909152604001600020805460ff191660ff92909216919091179055600101610a6d565b5050505050565b600080600080600080600080600860009054906101000a90046001600160a01b0316600b54600d54610b4f600c54600d5461092390919063ffffffff16565b600c54600e54600f54600a54969f959e50939c50919a509850965094506001600160a01b0390911692509050565b6000546001600160a01b0316331480610ba057506001546001600160a01b031633145b80610bbd57503360009081526003602052604090205460ff166001145b610bc657600080fd5b60045460ff16610bd557600080fd5b6004805460ff19169055565b600e5481565b600a546001600160a01b031681565b60045460ff1681565b6002546001600160a01b03163314610c1657600080fd5b6002546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610c4f573d6000803e3d6000fd5b50565b6000546001600160a01b0316331480610c7557506001546001600160a01b031633145b80610c8a57506002546001600160a01b031633145b80610ca757503360009081526003602052604090205460ff166001145b610cb057600080fd5b6001600160a01b038216610d0b576040805162461bcd60e51b815260206004820152601a60248201527f4e465420436f6e74726163742043616e6e6f7420626520307830000000000000604482015290519081900360640190fd5b604080516323b872dd60e01b81523060048201526001600160a01b03858116602483015260448201849052915184928316916323b872dd91606480830192600092919082900301818387803b158015610d6357600080fd5b505af1158015610d77573d6000803e3d6000fd5b5050505050505050565b6000546001600160a01b0316331480610da457506001546001600160a01b031633145b80610db957506002546001600160a01b031633145b80610dd657503360009081526003602052604090205460ff166001145b610ddf57600080fd5b6010805460ff1916911515919091179055565b6000546001600160a01b0316331480610e1557506001546001600160a01b031633145b80610e2a57506002546001600160a01b031633145b80610e4757503360009081526003602052604090205460ff166001145b610e5057600080fd5b60005b81811015610fcd576000838383818110610e6957fe5b905060200201356001600160a01b03166001600160a01b03161415610e8d57600080fd5b600060056000858585818110610e9f57fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020549050600060056000868686818110610ee457fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002081905550838383818110610f2457fe5b905060200201356001600160a01b03166001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610f6c573d6000803e3d6000fd5b507f2cdcfcda471a6e04eb161bd12dcae2ed96ddcbbf9a3c6f0dd48f8a0a0dc42459848484818110610f9a57fe5b60408051602092830294909401356001600160a01b0316845290830185905280519283900301919050a150600101610e53565b505050565b60105460ff1681565b6000546001600160a01b0316331480610ffe57506001546001600160a01b031633145b8061101b57503360009081526003602052604090205460ff166001145b61102457600080fd5b6001600160a01b03811661103757600080fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633148061107c57506001546001600160a01b031633145b8061109957503360009081526003602052604090205460ff166001145b6110a257600080fd5b6001600160a01b0381166110b557600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314806110fa57506001546001600160a01b031633145b8061111757503360009081526003602052604090205460ff166001145b61112057600080fd5b60045460ff161561113057600080fd5b6004805460ff19166001179055565b600f5481565b6000546001600160a01b031633148061116857506001546001600160a01b031633145b8061118557503360009081526003602052604090205460ff166001145b61118e57600080fd5b60045460ff1661119d57600080fd5b600454610100900460ff166111b157600080fd5b6004805461ff0019169055565b60095481565b6000546001600160a01b03163314806111e757506001546001600160a01b031633145b806111fc57506002546001600160a01b031633145b8061121957503360009081526003602052604090205460ff166001145b61122257600080fd5b6001600160a01b038216611274576040805162461bcd60e51b8152602060048201526014602482015273057696e6e65722063616e6e6f74206265203078360641b604482015290519081900360640190fd5b6001600160a01b0380831660009081526005602052604080822080549083905560025491519093919091169183156108fc02918491818181858888f193505050501580156112c6573d6000803e3d6000fd5b50600880546001600160a01b0319166001600160a01b03851617905560105460ff1615611452576001600160a01b038216611348576040805162461bcd60e51b815260206004820152601960248201527f4e465420416464726573732063616e6e6f742062652030783000000000000000604482015290519081900360640190fd5b6000829050306001600160a01b0316816001600160a01b0316636352211e600e546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561139d57600080fd5b505afa1580156113b1573d6000803e3d6000fd5b505050506040513d60208110156113c757600080fd5b50516001600160a01b0316146113dc57600080fd5b600e54604080516323b872dd60e01b81523060048201526001600160a01b03878116602483015260448201939093529051918316916323b872dd9160648082019260009290919082900301818387803b15801561143857600080fd5b505af115801561144c573d6000803e3d6000fd5b50505050505b600e54604080516001600160a01b03861681526020810184905280820192909252517f9548e172611b83a6a77b78a8c451667292c09ab459d4668a3f5d9746a53706779181900360600190a1505050565b6000546001600160a01b03163314806114c657506001546001600160a01b031633145b806114e357503360009081526003602052604090205460ff166001145b6114ec57600080fd5b60045460ff166114fb57600080fd5b6004805461ff001916610100179055565b6000546001600160a01b031681565b6000546001600160a01b031633148061153e57506001546001600160a01b031633145b8061155b57503360009081526003602052604090205460ff166001145b61156457600080fd5b6001600160a01b03821661157757600080fd5b6001600160a01b03919091166000908152600360205260409020805460ff191660ff909216919091179055565b6000546001600160a01b03163314806115c757506001546001600160a01b031633145b806115e457503360009081526003602052604090205460ff166001145b6115ed57600080fd5b6001600160a01b03811661160057600080fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b600454610100900460ff1681565b60056020526000908152604090205481565b600061165b600c54600d5461092390919063ffffffff16565b421115801561167357506008546001600160a01b0316155b905090565b600b5481565b6008546001600160a01b031681565b60065490565b6000546001600160a01b03163314806116b657506001546001600160a01b031633145b806116cb57506002546001600160a01b031633145b806116e857503360009081526003602052604090205460ff166001145b6116f157600080fd5b60008111611746576040805162461bcd60e51b815260206004820152601b60248201527f57696e6e696e67204746432d4554482063616e6e6f7420626520300000000000604482015290519081900360640190fd5b600254600880546001600160a01b0319166001600160a01b03909216919091179055600e54604080518481526020810184905280820192909252517f71a39ca9ab20c4b7e840acbdcff6a07fec411627910beaa932a77e651c60cc6d9181900360600190a15050565b6002546001600160a01b031681565b6001546001600160a01b031681565b600d5481565b6011549056fea26469706673582212203e65eef414cff3def693117806b304aff6cfa0011181c2bd5c6ba6f1a02e575d64736f6c634300060000330000000000000000000000000000000000000000000000000000000000000002000000000000000000000000d414e7355378ff9be9589eff757ff985dd398755000000000000000000000000000000000000000000000000000ffcb9e57d4000000000000000000000000000000000000000000000000000000000005ed14d6e00000000000000000000000000000000000000000000000000000000000bddbc0000000000000000000000000000000000000000000000000000000000134bf243534300000000000000000000000000000000000000000000000000000000000000000000000000000000004d3814d4da8083b41861dec2f45b4840e8b72d68

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
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

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.