func: function participateInAuction() public  onlyOwner() {
          checkForStateUpdate();
          require(currentState == State.Pooling, "Pooling period is over.");
  
          uint auctionIndex = dx.getAuctionIndex(address(depositToken), address(secondaryToken));
          require(auctionIndex > lastParticipatedAuctionIndex, "Has to wait for new auction to start");
  
          (address sellToken, address buyToken) = sellAndBuyToken();
          uint depositAmount = depositToken.balanceOf(address(this));
          if (isDepositTokenTurn()) {
              totalPoolSharesCummulative += 2 * totalPoolShares;
              if( depositAmount > 0){
                  
                  depositToken.approve(address(dx), depositAmount);
                  dx.deposit(address(depositToken), depositAmount);
              }
          }
          
          address(dx).call(abi.encodeWithSignature("claimSellerFunds(address,address,address,uint256)", buyToken, sellToken, address(this), lastParticipatedAuctionIndex));
  
          uint amount = dx.balances(address(sellToken), address(this));
          if (isDepositTokenTurn()) {
              totalDeposit = amount;
          }
  
          (lastParticipatedAuctionIndex, ) = dx.postSellOrder(sellToken, buyToken, 0, amount);
          auctionCount += 1;
      }