2025-02-09 11:45:16 -05:00
|
|
|
use crate::parse_request;
|
2025-04-16 16:17:53 +03:00
|
|
|
|
|
|
|
|
use super::errors::RpcParseError;
|
|
|
|
|
use super::parser::RpcRequest;
|
2025-09-04 14:38:41 +03:00
|
|
|
use super::parser::parse_params;
|
2025-02-09 11:45:16 -05:00
|
|
|
use serde::{Deserialize, Serialize};
|
|
|
|
|
use serde_json::Value;
|
|
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize, Debug)]
|
|
|
|
|
pub struct HelloRequest {}
|
|
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize, Debug)]
|
|
|
|
|
pub struct RegisterAccountRequest {
|
|
|
|
|
pub address: [u8; 32],
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize, Debug)]
|
|
|
|
|
pub struct SendTxRequest {
|
2025-08-12 16:48:53 -03:00
|
|
|
pub transaction: Vec<u8>,
|
2025-02-09 11:45:16 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize, Debug)]
|
|
|
|
|
pub struct GetBlockDataRequest {
|
|
|
|
|
pub block_id: u64,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize, Debug)]
|
|
|
|
|
pub struct GetGenesisIdRequest {}
|
|
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize, Debug)]
|
|
|
|
|
pub struct GetLastBlockRequest {}
|
|
|
|
|
|
2025-07-23 15:16:53 +03:00
|
|
|
#[derive(Serialize, Deserialize, Debug)]
|
|
|
|
|
pub struct GetInitialTestnetAccountsRequest {}
|
2025-07-24 09:14:38 +03:00
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize, Debug)]
|
2025-07-22 08:40:04 -03:00
|
|
|
pub struct GetAccountBalanceRequest {
|
|
|
|
|
pub address: String,
|
|
|
|
|
}
|
2025-07-23 15:16:53 +03:00
|
|
|
|
2025-07-22 10:23:52 -03:00
|
|
|
#[derive(Serialize, Deserialize, Debug)]
|
|
|
|
|
pub struct GetTransactionByHashRequest {
|
|
|
|
|
pub hash: String,
|
|
|
|
|
}
|
|
|
|
|
|
2025-08-21 15:58:31 +03:00
|
|
|
#[derive(Serialize, Deserialize, Debug)]
|
|
|
|
|
pub struct GetAccountsNoncesRequest {
|
|
|
|
|
pub addresses: Vec<String>,
|
|
|
|
|
}
|
|
|
|
|
|
2025-09-04 13:33:17 +03:00
|
|
|
#[derive(Serialize, Deserialize, Debug)]
|
|
|
|
|
pub struct GetAccountDataRequest {
|
|
|
|
|
pub address: String,
|
|
|
|
|
}
|
|
|
|
|
|
2025-02-09 11:45:16 -05:00
|
|
|
parse_request!(HelloRequest);
|
|
|
|
|
parse_request!(RegisterAccountRequest);
|
|
|
|
|
parse_request!(SendTxRequest);
|
|
|
|
|
parse_request!(GetBlockDataRequest);
|
|
|
|
|
parse_request!(GetGenesisIdRequest);
|
|
|
|
|
parse_request!(GetLastBlockRequest);
|
2025-07-23 15:16:53 +03:00
|
|
|
parse_request!(GetInitialTestnetAccountsRequest);
|
2025-07-22 08:40:04 -03:00
|
|
|
parse_request!(GetAccountBalanceRequest);
|
2025-07-22 10:23:52 -03:00
|
|
|
parse_request!(GetTransactionByHashRequest);
|
2025-08-21 15:58:31 +03:00
|
|
|
parse_request!(GetAccountsNoncesRequest);
|
2025-09-04 13:33:17 +03:00
|
|
|
parse_request!(GetAccountDataRequest);
|
2025-02-09 11:45:16 -05:00
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize, Debug)]
|
|
|
|
|
pub struct HelloResponse {
|
|
|
|
|
pub greeting: String,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize, Debug)]
|
|
|
|
|
pub struct RegisterAccountResponse {
|
|
|
|
|
pub status: String,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize, Debug)]
|
|
|
|
|
pub struct SendTxResponse {
|
|
|
|
|
pub status: String,
|
2025-08-21 15:58:31 +03:00
|
|
|
pub tx_hash: String,
|
2025-02-09 11:45:16 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize, Debug)]
|
|
|
|
|
pub struct GetBlockDataResponse {
|
2025-08-12 12:18:13 -03:00
|
|
|
pub block: Vec<u8>,
|
2025-02-09 11:45:16 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize, Debug)]
|
|
|
|
|
pub struct GetGenesisIdResponse {
|
|
|
|
|
pub genesis_id: u64,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize, Debug)]
|
|
|
|
|
pub struct GetLastBlockResponse {
|
|
|
|
|
pub last_block: u64,
|
|
|
|
|
}
|
2025-07-22 08:40:04 -03:00
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize, Debug)]
|
|
|
|
|
pub struct GetAccountBalanceResponse {
|
2025-08-07 15:19:06 -03:00
|
|
|
pub balance: u128,
|
2025-07-22 08:40:04 -03:00
|
|
|
}
|
2025-07-22 10:23:52 -03:00
|
|
|
|
2025-08-21 15:58:31 +03:00
|
|
|
#[derive(Serialize, Deserialize, Debug)]
|
|
|
|
|
pub struct GetAccountsNoncesResponse {
|
|
|
|
|
pub nonces: Vec<u128>,
|
|
|
|
|
}
|
|
|
|
|
|
2025-07-22 10:23:52 -03:00
|
|
|
#[derive(Serialize, Deserialize, Debug)]
|
|
|
|
|
pub struct GetTransactionByHashResponse {
|
2025-08-12 12:18:13 -03:00
|
|
|
pub transaction: Option<String>,
|
2025-07-22 10:23:52 -03:00
|
|
|
}
|
2025-09-04 13:33:17 +03:00
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize, Debug)]
|
|
|
|
|
pub struct GetAccountDataResponse {
|
|
|
|
|
pub balance: u128,
|
|
|
|
|
pub nonce: u128,
|
|
|
|
|
pub program_owner: [u32; 8],
|
|
|
|
|
pub data: Vec<u8>,
|
|
|
|
|
}
|