tempo_node/rpc/token/
tokens_by_address.rs

1use crate::rpc::token::tokens::{Token, TokensFilters};
2use alloy_primitives::{Address, B256, U256};
3use serde::{Deserialize, Serialize};
4use tempo_alloy::rpc::pagination::PaginationParams;
5
6#[derive(Clone, Debug, Default, PartialEq, Eq, Hash, Serialize, Deserialize)]
7#[serde(rename_all = "camelCase")]
8pub struct TokensByAddressResponse {
9    /// Cursor for next page, null if no more results
10    pub next_cursor: Option<String>,
11    /// Array of items matching the input query
12    pub tokens: Vec<AccountToken>,
13}
14
15#[derive(Clone, Debug, Default, PartialEq, Eq, Hash, Serialize, Deserialize)]
16#[serde(rename_all = "camelCase")]
17pub struct TokensByAddressParams {
18    /// Account address to query tokens for.
19    pub address: Address,
20    /// Determines what items should be yielded in the response.
21    #[serde(flatten)]
22    pub params: PaginationParams<TokensFilters>,
23}
24
25#[derive(Clone, Debug, Default, PartialEq, Eq, Hash, Serialize, Deserialize)]
26#[serde(rename_all = "camelCase")]
27pub struct AccountToken {
28    /// Account's balance in this token
29    pub balance: U256,
30    /// Roles the account has for this token
31    pub roles: Vec<B256>,
32    /// Token details
33    pub token: Token,
34}