
    h.
                         d dl Z d dlZd dl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)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ef      ed	<   y)
ValueSchemazSchema for value operations..typezBlockchain reference path)descriptionpathNzValue to be set at the pathvalue)__name__
__module____qualname____doc__r   r   r
   __annotations__r   strr   r   r   intfloatdict     g/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/langchain_community/tools/ainetwork/value.pyr   r      sO    &*D-$c'BCD#C4975E8E#sE4/01 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ef      dee   def
dZy)AINValueOpsz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                 V  K   ddl m} 	 |t        j                  u rR|t	        d      | j
                  j                  j                  |      j                   ||             d {   }n]|t        j                  u r<| j
                  j                  j                  |      j                          d {   }nt	        d| d      t        j                  |d	      S 7 y7 -# t        $ r7}t        j                  |      j                    d
t#        |       cY d }~S d }~ww xY ww)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   _arunz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& 6C$7*C& !D)"C& $C& &	D&/,D!D&D)!D&&D))NN)r   r   r   r   r    r   r   r   r   r!   r   r   r
   r   r   r   r   r   r   r9   r   r   r   r   r      s    $D#"K "F $/Ki. 9=@D<< < c3t345	<
 <=< 
<r   r   )r5   r2   typingr   r   r   langchain_core.callbacksr   pydanticr   r   (langchain_community.tools.ainetwork.baser	   r
   r   r   r   r   r   <module>r>      s4      ( ( C % O) @<+ @<r   