Ive notice on the odd ocassion, the newOffer event has triggered multiple times for the same trade offer. Maybe my sign-in logic is bad. I start listening to the events in another file> 
	Please if anyone can explain why I get duplicate events sometimes. Thanks. 
	 
	 
 
	
		async function startNewOffersListener() {
	
	 
	
		        if (newOffersListenerStarted) {
	
	
		            console.log("⚠️ New offers listener is already running.");
	
	
		            return;
	
	
		        }
	
	
		        
	
	
		        newOffersListenerStarted = true; // Prevent duplicate starts
	
	
		        console.log("✅ New offers listener started.");
	
	 
	 
	 
	 
	 
	
		    // Listen for new offers
	
	
		    steamOffManagerInstance.manager.on('newOffer', offer => {
	
	
		        //console.log('new trade offer', offer);
	
	
		        let skinMarketName = null;
	
	
		        let assetId = null;
	
	
		        let actionsLink = null;
	
	
		        let isCommodity = null;
	
	 
	
		        (async () => {
	
	
		            try {
	
	
		                offer.itemsToReceive.forEach((item, index) => {
	
	
		                    skinMarketName = item.market_hash_name;
	
	
		                    assetId = item.assetid;
	
	
		                    isCommodity = item.commodity;
	
	 
	
		                    console.log(`newOffer`);
	
	
		                    console.log(`Item ${index + 1}:`);
	
	
		                    console.log(`Name: ${item.name}`);
	
	
		                    console.log(`Market Hash Name: ${item.market_hash_name}`);
	
	
		                    console.log(`AssetId: ${item.assetid}`);
	
	
		                    console.log(`Commodity: ${item.commodity}`);
	
	
		                    console.log(`PartnerId: ${offer.partner}`);
	
	
		                    console.log(`Actions:`);
	
	 
	 
 
	
		class SteamOfferManagerInstance {
	
	
		    constructor(account) {
	
	
		        this.account = account;
	
	
		        this.hasWebLogOnBeenCalled = false;
	
	
		        this.hasbeenUsed = false;
	
	
		        this.init = false;
	
	
		        this.firstTimeLog = false;
	
	
		        this.access_token = '';
	
	
		        this.waitingForSteamGuard = false; // Track Steam Guard input state
	
	 
	
		        // Conditionally set proxy for client and community
	
	
		        this.client = proxy 
	
	
		            ? new SteamUser({ debug: true, autoRelogin: true, httpProxy: proxy })
	
	
		            : new SteamUser();
	
	 
	
		        this.community = proxy
	
	
		            ? new SteamCommunity({ request: request.defaults({ proxy: proxy }) })
	
	
		            : new SteamCommunity();
	
	
		        this.manager = new steam_offer_manager({
	
	
		            "steam": this.client,
	
	
		            "communinty": this.community,
	
	
		            "domain": "localhost",
	
	
		            "language": "en",
	
	
		            "useAccessToken": true,
	
	
		        });
	
	 
	
		        //test commit for workflow
	
	 
	
		        this.logOnOptions = {
	
	
		            "accountName": account.name,
	
	
		            "password": account.password,
	
	
		            "logonID": Date.now().toString().slice(-5),
	
	
		            "twoFactorCode": SteamTotp.generateAuthCode(sharedSecret)
	
	
		        };
	
	 
	
		        // Handle other events
	
	
		        this.client.on('loggedOn', () => {
	
	
		            console.log('Successfully logged into Steam as', this.account.name);
	
	
		            console.log('Logged in on IP', this.client.publicIP);
	
	
		        });
	
	 
	
		        this.client.on('webSession', async (sessionID, cookies) => {
	
	
		            this.manager.setCookies(cookies, function(err) {
	
	
		                if (err) {
	
	
		                    throw err;
	
	
		                }
	
	
		            });
	
	
		            this.community.setCookies(cookies);
	
	
		            const [key, value] = cookies[0].split('=');
	
	
		            this.access_token = value.split('%7C%7C')[1];
	
	
		            this.init = true;
	
	
		        });
	
	 
	
		        this.setRelogin();
	
	
		    }
	
	 
	
		    setRelogin() {
	
	
		        if (!this.hasWebLogOnBeenCalled) {
	
	
		            this.hasWebLogOnBeenCalled = true;
	
	
		            this.isLogged = false;
	
	
		            this.logOnOptions.logonID = Date.now().toString().slice(-5);
	
	
		            try {
	
	
		                if (this.firstTimeLog) {
	
	
		                    this.client.webLogOn();
	
	
		                } else {
	
	
		                    this.client.logOn(this.logOnOptions);
	
	
		                    this.firstTimeLog = true;
	
	
		                }
	
	
		            } catch (err) {
	
	
		                if (err.message === "Already logged on, cannot log on again") {
	
	
		                    this.isLogged = true;
	
	
		                } else {
	
	
		                    console.log('Login Error:', err.message);
	
	
		                }
	
	
		            }
	
	
		        }
	
	 
	
		        if (this.hasWebLogOnBeenCalled) {
	
	
		            setTimeout(() => {
	
	
		                this.hasWebLogOnBeenCalled = false;
	
	
		            }, 360000);
	
	
		        }
	
	
		    }