U
    @†6^†  ã                   @   s0   d dl Z d dlmZmZmZ G dd„ deƒZdS )é    N)Ú
SpiderFootÚSpiderFootPluginÚSpiderFootEventc                   @   s>   e Zd ZdZi ZdZeƒ fdd„Zdd„ Zdd„ Z	d	d
„ Z
dS )Úsfp_ethereumzpEthereum Finder:Footprint,Investigate,Passive:Content Analysis::Identify ethereum addresses in scraped webpages.Nc                 C   s4   || _ |  ¡ | _t| ¡ ƒD ]}|| | j|< qd S )N)ÚsfÚtempStorageÚresultsÚlistÚkeysÚopts)ÚselfÚsfcÚuserOptsÚopt© r   ú7/var/www/spiderfoot.crq.systems/modules/sfp_ethereum.pyÚsetup   s    
zsfp_ethereum.setupc                 C   s   dgS )NÚTARGET_WEB_CONTENTr   ©r   r   r   r   ÚwatchedEvents"   s    zsfp_ethereum.watchedEventsc                 C   s   dgS )NÚETHEREUM_ADDRESSr   r   r   r   r   ÚproducedEvents(   s    zsfp_ethereum.producedEventsc           	      C   s’   |j }|j}|j}| j |¡}|| jkr,d S d| j|< | j d| d | ¡ t d|¡}|D ].}| j d| ¡ t	d|| j
|ƒ}|  |¡ q^d S )NTzReceived event, z, from z[\s:=\>](0x[a-fA-F0-9]{40})zEthereum address match: r   )Ú	eventTypeÚmoduleÚdatar   Ú
hashstringr   ÚdebugÚreÚfindallr   Ú__name__ÚnotifyListeners)	r   ÚeventÚ	eventNameÚsrcModuleNameÚ	eventDataÚ
sourceDataÚmatchesÚmÚevtr   r   r   ÚhandleEvent,   s    

zsfp_ethereum.handleEvent)r   Ú
__module__Ú__qualname__Ú__doc__r   r   Údictr   r   r   r)   r   r   r   r   r      s   r   )r   Úsflibr   r   r   r   r   r   r   r   Ú<module>   s   