"If `accept` and the contact is pending then the contact request will be accepted. "
"If `accept` and there is no pending request then the contact will be sent a request. "
"If `reject` and the contact is pending then the contact request will be declined. "
"If `reject` and the contact exists then the contact will be removed."
))
display_name:Optional[str]=Field(description="Required only if a new contact is being created. If a request is pending to be accepted, then this field is not required.")
classMessageInput(BaseModel):
chat_id:str=Field(description="Required to send messages and fetch messages")
message:Optional[str]=Field(description="Required to send messages",default=None)
start_date:Optional[DateStr]=Field(description="Required to fetch chat messages from the specified date. Date should be in YYYY-MM-DD format.",default=None)
end_date:Optional[DateStr]=Field(description="Required to fetch chat messages to the specified date. Date should be in YYYY-MM-DD format.",default=None)
chain_ids:Optional[list[int]]=Field(description="Chain IDs where the token exists.",default=None)
token_symbols:Optional[list[str]]=Field(description="Token Symbol for the given Chain ID",default=None)
refresh:bool=Field(description="If `True` then the data will be refetched from scratch. If `False` then the data will be cached after the first call.")
start_date:Optional[DateStr]=Field(description="Required to fetch chat messages from the specified date. Date should be in YYYY-MM-DD format.",default=None)
end_date:Optional[DateStr]=Field(description="Required to fetch chat messages to the specified date. Date should be in YYYY-MM-DD format.",default=None)
classSendTransactionInput(BaseModel):
address:str=Field(description="The wallet address of the receiver")
symbol:str=Field(description="Either a valid Status token symbol (e.g. `ETH`, `SNT`) or its token address")
amount:float=Field(description="The amount of the token that will be sent to the receiver")
chain_id:int=Field(description="Chain ID where the token exists.",default=1)
classSwapTokensInput(BaseModel):
from_token:str=Field(description="The token to swap from. Either a valid Status token symbol (e.g. `ETH`, `SNT`) or its token address.")
to_token:str=Field(description="The token to swap to. Either a valid Status token symbol (e.g. `ETH`, `SNT`) or its token address.")
amount:float=Field(description="The amount of `from_token` to swap.")
chain_id:int=Field(description=(
"Chain ID where both tokens exist. The swap happens on a single chain, so `from_token` and `to_token` "