class UnarchiveWalletGroupRequest(BaseModel):
group: str = Field(description="Name of the group to unarchive")
class RemoveWalletsFromGroupRequest(BaseModel):
group: str = Field(description="Name of the group to remove wallets from")
wallet: str = Field(description="List of wallet names to remove from the group")
class TopTrendingTokensRequest(BaseModel):
time_frame: Literal["5m", "15m", "30m", "1h", "2h", "3h", "4h", "5h", "6h", "12h", "24h"] = Field(default="24h", description="Time frame to get the top trending tokens")
class StakeBalanceResponse(BaseModel):
total_stake_amount: float = Field(description="Total stake balance in jupSol")
total_stake_amount_in_usd: float = Field(description="Total stake balance in USD")
class RenameWalletRequest(BaseModel):
wallet: str = Field(description="Name of the wallet to rename")
new_name: str = Field(description="New name of the wallet")
class CandleStickRequest(BaseModel):
token_address: str = Field(description="Public mint address of the token. To get the address from a token symbol use `get_token_details`")
time_interval: Literal["1s", "5s", "15s", "1m", "3m", "5m", "15m", "30m", "1h", "2h", "4h", "6h", "8h", "12h", "1d", "3d", "1w", "1mn"] = Field(default="1h", description="Time frame to get the candle sticks. Use larger candle time frames over larger time windows to keep returned candles minimal")
time_from: str = Field(description="The time from which to start the candle data in ISO 8601 format. Attempt to change this to keep number of candles returned under 64.")
time_to: Optional[str] = Field(default=None, description="The time to end the candle data in ISO 8601 format. Use only for historic analysis.")
market_cap: Optional[bool] = Field(default=False, description="Whether to return the marketcap of the token instead of the price")
class PrivateKeyRequest(BaseModel):
wallet: str = Field(description="Name of the wallet to get the mnemonic or private key for")
key_type: Literal['PRIVATE_KEY', 'MNEMONIC'] = Field(description="Whether to return the private or mnemonic key")
# ------------------------------
# Container Models for List Inputs
# ------------------------------
class RemoveWalletsFromGroupRequestContainer(BaseModel):
remove_wallets_from_group_requests: List[RemoveWalletsFromGroupRequest]
class AddWalletToGroupRequestContainer(BaseModel):
add_wallet_to_group_requests: List[AddWalletToGroupRequest]
class CreateWalletRequestContainer(BaseModel):
create_wallet_requests: List[CreateWalletRequest]
class ArchiveWalletsRequestContainer(BaseModel):
archive_wallet_requests: List[ArchiveWalletsRequest]
class UnarchiveWalletRequestContainer(BaseModel):
unarchive_wallet_requests: List[UnarchiveWalletsRequest]
class ArchiveWalletGroupRequestContainer(BaseModel):
archive_wallet_group_requests: List[ArchiveWalletGroupRequest]
class UnarchiveWalletGroupRequestContainer(BaseModel):
unarchive_wallet_group_requests: List[UnarchiveWalletGroupRequest]