Primary filtering functionality Dispatches to Protocols =============================== ### *class* Sponge.base.Filter(cache, onodeID, todo, cLog) Packet filtering orchestration cLog : Reference to run.Node.cLog for logging cache: Daisy.Cache.Cache : Reference to our Daisy Cache instance completed: list : List of completed messages IDs todo : Reference to list of actions to do in the Node onodeID : PierMesh node ID #### cache Messages is temporary storage for unfinished messages #### mCheck(payload: bytes) Check if payload bytes are msgpack encoded, otherwise skip #### *async* protoMap(protocolID: int) Get protocol from protocol ID using the mlookup table #### *async* protoRoute(completeMessage: dict) Route message to proper protocol handler #### selfCheck(packet) Check if this is a self packet, if so skip #### *async* sieve(packet) Base filtering logic, takes a single MeshTastic packet ### *class* Sponge.Protocols.bubble.filter(completeMessage, recipient, recipientNode, onodeID, todo) Peer to peer protol ### *class* Sponge.Protocols.catch.filter(completeMessage, recipient, recipientNode, todo) Catch exchange protocol ### *class* Sponge.Protocols.cryptography.filter(completeMessage, recipientNode, todo) Cryptographic operations protocol ### *class* Sponge.Protocols.map.filter(completeMessage, todo) Network mapping protocol