|  |  |  | @ -92,10 +92,10 @@ class LokiSnodeAPI { | 
		
	
		
			
				|  |  |  |  |       ); | 
		
	
		
			
				|  |  |  |  |       // Filter 0.0.0.0 nodes which haven't submitted uptime proofs
 | 
		
	
		
			
				|  |  |  |  |       const snodes = result.result.service_node_states.filter( | 
		
	
		
			
				|  |  |  |  |         snode => snode.address !== '0.0.0.0' | 
		
	
		
			
				|  |  |  |  |         snode => snode.public_ip !== '0.0.0.0' | 
		
	
		
			
				|  |  |  |  |       ); | 
		
	
		
			
				|  |  |  |  |       this.randomSnodePool = snodes.map(snode => ({ | 
		
	
		
			
				|  |  |  |  |         address: snode.public_ip, | 
		
	
		
			
				|  |  |  |  |         ip: snode.public_ip, | 
		
	
		
			
				|  |  |  |  |         port: snode.storage_port, | 
		
	
		
			
				|  |  |  |  |       })); | 
		
	
		
			
				|  |  |  |  |     } catch (e) { | 
		
	
	
		
			
				
					|  |  |  | @ -162,21 +162,17 @@ class LokiSnodeAPI { | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   async getSwarmNodes(pubKey) { | 
		
	
		
			
				|  |  |  |  |     // TODO: Hit multiple random nodes and merge lists?
 | 
		
	
		
			
				|  |  |  |  |     const { address, port } = await this.getRandomSnodeAddress(); | 
		
	
		
			
				|  |  |  |  |     const { ip, port } = await this.getRandomSnodeAddress(); | 
		
	
		
			
				|  |  |  |  |     try { | 
		
	
		
			
				|  |  |  |  |       const result = await rpc( | 
		
	
		
			
				|  |  |  |  |         `https://${address}`, | 
		
	
		
			
				|  |  |  |  |         port, | 
		
	
		
			
				|  |  |  |  |         'get_snodes_for_pubkey', | 
		
	
		
			
				|  |  |  |  |         { | 
		
	
		
			
				|  |  |  |  |           pubKey, | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |       ); | 
		
	
		
			
				|  |  |  |  |       return result.snodes; | 
		
	
		
			
				|  |  |  |  |       const result = await rpc(`https://${ip}`, port, 'get_snodes_for_pubkey', { | 
		
	
		
			
				|  |  |  |  |         pubKey, | 
		
	
		
			
				|  |  |  |  |       }); | 
		
	
		
			
				|  |  |  |  |       const snodes = result.snodes.filter(snode => snode.ip !== '0.0.0.0'); | 
		
	
		
			
				|  |  |  |  |       return snodes; | 
		
	
		
			
				|  |  |  |  |     } catch (e) { | 
		
	
		
			
				|  |  |  |  |       this.randomSnodePool = _.without( | 
		
	
		
			
				|  |  |  |  |         this.randomSnodePool, | 
		
	
		
			
				|  |  |  |  |         _.find(this.randomSnodePool, { address }) | 
		
	
		
			
				|  |  |  |  |         _.find(this.randomSnodePool, { ip }) | 
		
	
		
			
				|  |  |  |  |       ); | 
		
	
		
			
				|  |  |  |  |       return this.getSwarmNodes(pubKey); | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
	
		
			
				
					|  |  |  | 
 |