func: function newAuction(uint256 _tokenId, uint64 _priceGwei) 
          external
          whenNotPaused
      {
          require(tokenContract.ownerOf(_tokenId) == msg.sender);
          require(!equipContract.isEquiped(msg.sender, _tokenId));
          require(_priceGwei >= 1000000 && _priceGwei <= 999000000000);
  
          uint16[12] memory fashion = tokenContract.getFashion(_tokenId);
          require(fashion[1] > 1);
  
          uint64 tmNow = uint64(block.timestamp);
          uint256 lastIndex = latestAction[_tokenId];
          
          if (lastIndex > 0) {
              Auction storage oldOrder = auctionArray[lastIndex];
              require((oldOrder.tmStart + auctionDuration) <= tmNow || oldOrder.tmSell > 0);
          }
  
          if (address(platAuction) != address(0)) {
              require(!platAuction.isOnSale(_tokenId));
          }
          
          uint256 newAuctionIndex = auctionArray.length;
          auctionArray.length += 1;
          Auction storage order = auctionArray[newAuctionIndex];
          order.seller = msg.sender;
          order.tokenId = uint64(_tokenId);
          order.price = _priceGwei;
          uint64 lastActionStart = auctionArray[newAuctionIndex - 1].tmStart;
          
          if (tmNow >= lastActionStart) {
              order.tmStart = tmNow;
          } else {
              order.tmStart = lastActionStart;
          }
          
          latestAction[_tokenId] = newAuctionIndex;
  
          AuctionCreate(newAuctionIndex, msg.sender, _tokenId);
      }