function placeOffer(bytes32 escrowId, uint256 offerPrice) public whenNotPaused
    {
        address seller = escrowByEscrowId[escrowId].seller;
        require(seller != msg.sender, "You are the owner of this escrow.");
        require(seller != address(0));
        require(offerPrice > 0, "Offer Price needs to be greater than zero");
        require(escrowByEscrowId[escrowId].id != '0x0', "That escrow ID is no longer valid.");

        
        bool acceptsOffers = escrowByEscrowId[escrowId].acceptsOffers;
        require(acceptsOffers, "This escrow does not accept offers.");

        
        bool isPublic = escrowByEscrowId[escrowId].publicE;
        if(!isPublic)
        {
            require(msg.sender == escrowByEscrowId[escrowId].buyer, "You are not authorized for this escrow.");
        }
        
        Escrow memory tempEscrow = escrowByEscrowId[escrowId];
        tempEscrow.lastOfferPrice = tempEscrow.offer;
        tempEscrow.offer = offerPrice;
        tempEscrow.highestBidder = msg.sender;
        escrowByEscrowId[escrowId] = tempEscrow;
        
  
    }