Ë
    µŒj  ã                   ó„   — d dl Z d dlZd dlmZmZmZmZ d dlmZ d dl	m
Z
mZ d dlmZmZ  G d„ de
«      Z G d„ d	e«      Zy)
é    N)ÚListÚOptionalÚTypeÚUnion)ÚAsyncCallbackManagerForToolRun)Ú	BaseModelÚField)ÚAINBaseToolÚOperationTypec                   ó  — e Zd ZU dZ ed«      Zeed<    edd¬«      Ze	ed<    edd¬«      Z
eee	ee	   f      ed	<    ed
d¬«      Zee   ed<    ed
d¬«      Zee   ed<    ed
d¬«      Zee   ed<    ed
d¬«      Zee   ed<   y)Ú
RuleSchemazSchema for owner operations..ÚtypezBlockchain reference path)ÚdescriptionÚpathNz'A single address or a list of addressesÚaddressFz2Authority to edit the `owner` property of the pathÚwrite_ownerz+Authority to edit `write rule` for the pathÚ
write_rulez(Authority to `set function` for the pathÚwrite_functionz,Authority to initialize `owner` of sub-pathsÚbranch_owner)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r	   r   r   Ú__annotations__r   Ústrr   r   r   r   r   Úboolr   r   r   © ó    ús/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/tools/ainetwork/owner.pyr   r      sÂ   … Ù&á ›*€Dˆ-Ó$Ù�cÐ'BÔC€Dˆ#ÓCÙ/4ØÐCô0€GˆX�e˜C  c¡˜NÑ+Ñ,ó ñ #(ØÐOô#€K�˜$‘ó ñ "'ØÐHô"€J�˜‘ó ñ &+ØÐEô&€N�H˜T‘Nó ñ $)ØÐIô$€L�(˜4‘.ô r   r   c                   ó°   — e Zd ZU dZdZeed<   dZeed<   eZ	e
e   ed<   	 	 	 	 	 	 dded	ed
eeeee   f      dee   dee   dee   dee   dee   defd„Zy)ÚAINOwnerOpszTool for owner operations.ÚAINownerOpsÚnameaÝ  
Rules for `owner` in AINetwork Blockchain database.
An address set as `owner` can modify permissions according to its granted authorities

## Path Rule
- (/[a-zA-Z_0-9]+)+
- Permission checks ascend from the most specific (child) path to broader (parent) paths until an `owner` is located.

## Address Rules
- 0x[0-9a-fA-F]{40}: 40-digit hexadecimal address
- *: All addresses permitted
- Defaults to the current session's address

## SET
- `SET` alters permissions for specific addresses, while other addresses remain unaffected.
- When removing an address of `owner`, set all authorities for that address to false.
- message `write_owner permission evaluated false` if fail

### Example
- type: SET
- path: /apps/langchain
- address: [<address 1>, <address 2>]
- write_owner: True
- write_rule: True
- write_function: True
- branch_owner: True

## GET
- Provides all addresses with `owner` permissions and their authorities in the path.

### Example
- type: GET
- path: /apps/langchain
r   Úargs_schemaNr   r   r   r   r   r   r   Úrun_managerÚreturnc	              ƒ   ó  K  — ddl m}	 	 |t        j                  u r¬|€*| j                  j
                  j                  j                  }t        |t        «      r|g}| j                  j                  j                  |«      j                   |	dd|D �ci c]  }||xs d|xs d|xs d|xs ddœ“Œ c}ii¬«      ¬«      ƒ d {  –—† }
n]|t        j                  u r<| j                  j                  j                  |«      j                  «       ƒ d {  –—† }
nt        d	|› d
�«      ‚t!        j"                  |
d¬«      S c c}w 7 Œ~7 Œ2# t$        $ r7}t'        j(                  |«      j*                  › dt        |«      › �cY d }~S d }~ww xY w­w)Nr   )ÚValueOnlyTransactionInputz.ownerÚownersF)r   r   r   r   )Úvalue)ÚtransactionInputzUnsupported 'type': Ú.)Úensure_asciiz: )Ú	ain.typesr(   r   ÚSETÚ	interfaceÚwalletÚdefaultAccountr   Ú
isinstancer   ÚdbÚrefÚsetOwnerÚGETÚgetOwnerÚ
ValueErrorÚjsonÚdumpsÚ	ExceptionÚbuiltinsr   r   )Úselfr   r   r   r   r   r   r   r%   r(   ÚresÚes               r   Ú_arunzAINOwnerOps._arunI   s…  è ø€ õ 	8ð	<Ø”}×(Ñ(Ñ(Ø�?Ø"Ÿn™n×3Ñ3×BÑB×JÑJ�GÜ˜g¤sÔ+Ø&˜i�GØ ŸN™N×-Ñ-×1Ñ1°$Ó7×@Ñ@Ù%>à$Ø (ñ 4;ó+"ñ 4;¨ð %,Ø7BÒ7KÀeØ6@Ò6IÀEØ:HÒ:QÈEØ8DÒ8MÈñ	.&ñ %&ð 4;ñ+"ð
'ðô&ð Aó ÷ ‘ð" œ×*Ñ*Ñ*Ø ŸN™N×-Ñ-×1Ñ1°$Ó7×@Ñ@ÓB×B‘ä Ð#7¸°v¸QÐ!?Ó@Ð@Ü—:‘:˜c°Ô6Ð6ùò#+"ð	øð$ Cùô ò 	<Ü—m‘m AÓ&×/Ñ/Ð0°´3°q³6°(Ð;Õ;ûð	<üsf   ‚FŠBE ÂD<Â0E ÃEÃAE ÄEÄ*E Ä;FÄ<E ÅE Å	FÅ,F Å:FÅ;FÆ FÆF)NNNNNN)r   r   r   r   r#   r   r   r   r   r$   r   r   r   r   r   r   r   r   rA   r   r   r   r!   r!   !   sÇ   … Ù$à€Dˆ#Óð!€K�ó !ðD $.€K��i‘Ó-ð 48Ø&*Ø%)Ø)-Ø'+Ø@Dñ*<àð*<ð ð*<ð ˜%  T¨#¡Y Ñ/Ñ0ð	*<ð
 ˜d‘^ð*<ð ˜T‘Nð*<ð ! ™ð*<ð ˜t‘nð*<ð Ð<Ñ=ð*<ð 
ô*<r   r!   )r=   r:   Útypingr   r   r   r   Úlangchain_core.callbacksr   Úpydanticr   r	   Ú(langchain_community.tools.ainetwork.baser
   r   r   r!   r   r   r   Ú<module>rF      s4   ðÛ Û ß .Ó .å Cß %ç Oô�ô ô,R<�+õ R<r   