
    dh.
                         S SK r S SKrS SKJrJrJr  S SKJr  S SKJ	r	J
r
  S SKJrJr   " S S\	5      r " S S	\5      rg)
    N)OptionalTypeUnion)AsyncCallbackManagerForToolRun)	BaseModelField)AINBaseToolOperationTypec                   x    \ rS rSr% Sr\" S5      r\\S'   \" SSS9r	\
\S'   \" SS	S9r\\\\
\\4      \S
'   Srg)ValueSchema   zSchema for value operations..typezBlockchain reference path)descriptionpathNzValue to be set at the pathvalue )__name__
__module____qualname____firstlineno____doc__r   r   r
   __annotations__r   strr   r   r   intfloatdict__static_attributes__r       a/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/tools/ainetwork/value.pyr   r      sO    &*D-$c'BCD#C4975E8E#sE4/01 r   r   c                       \ rS rSr% SrSr\\S'   Sr\\S'   \	r
\\   \S'     SS	\S
\S\\\\\\4      S\\   S\4
S jjrSrg)AINValueOps   zTool for value operations.AINvalueOpsnamea  
Covers the read and write value for the AINetwork Blockchain database.

## SET
- Set a value at a given path

### Example
- type: SET
- path: /apps/langchain_test_1/object
- value: {1: 2, "34": 56}

## GET
- Retrieve a value at a given path

### Example
- type: GET
- path: /apps/langchain_test_1/DB

## Special paths
- `/accounts/<address>/balance`: Account balance
- `/accounts/<address>/nonce`: Account nonce
- `/apps`: Applications
- `/consensus`: Consensus
- `/checkin`: Check-in
- `/deposit/<service id>/<address>/<deposit id>`: Deposit
- `/deposit_accounts/<service id>/<address>/<account id>`: Deposit accounts
- `/escrow`: Escrow
- `/payments`: Payment
- `/sharding`: Sharding
- `/token/name`: Token name
- `/token/symbol`: Token symbol
- `/token/total_supply`: Token total supply
- `/transfer/<address from>/<address to>/<key>/value`: Transfer
- `/withdraw/<service id>/<address>/<withdraw id>`: Withdraw
r   args_schemaNr   r   r   run_managerreturnc                 P  #    SSK Jn   U[        R                  L aM  Uc  [	        S5      eU R
                  R                  R                  U5      R                  U" US9S9I S h  vN nO^U[        R                  L a<  U R
                  R                  R                  U5      R                  5       I S h  vN nO[	        SU S35      e[        R                  " USS	9$  Nx N+! [         a8  n[        R                  " U5      R                    S
[#        U5       3s S nA$ S nAff = f7f)Nr   )ValueOnlyTransactionInputz&'value' is required for SET operation.)r   )transactionInputzUnsupported 'type': .F)ensure_asciiz: )	ain.typesr)   r
   SET
ValueError	interfacedbrefsetValueGETgetValuejsondumps	Exceptionbuiltinsr   r   r   )selfr   r   r   r&   r)   reses           r   _arunAINValueOps._arun>   s     	8	<}(((=$%MNN NN--11$7@@%>U%K A   *** NN--11$7@@BB #7vQ!?@@::c66 C  	<mmA&//03q6(;;	<sZ   D&AC! $C%AC! 3C4(C! D&C! C! !
D#+-DD#D&D##D&r   )NN)r   r   r   r   r   r$   r   r   r   r   r%   r   r   r
   r   r   r   r   r   r   r=   r   r   r   r   r!   r!      s    $D#"K "F $/Ki. 9=@D<< < c3t345	<
 <=< 
< <r   r!   )r9   r6   typingr   r   r   langchain_core.callbacksr   pydanticr   r   (langchain_community.tools.ainetwork.baser	   r
   r   r!   r   r   r   <module>rC      s4      ( ( C % O) @<+ @<r   