use std::collections::HashMap; use crate::parse_request; use super::errors::RpcParseError; use super::parser::RpcRequest; use super::parser::parse_params; use nssa_core::program::ProgramId; 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 { pub transaction: Vec, } #[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 {} #[derive(Serialize, Deserialize, Debug)] pub struct GetInitialTestnetAccountsRequest {} #[derive(Serialize, Deserialize, Debug)] pub struct GetAccountBalanceRequest { pub address: String, } #[derive(Serialize, Deserialize, Debug)] pub struct GetTransactionByHashRequest { pub hash: String, } #[derive(Serialize, Deserialize, Debug)] pub struct GetAccountsNoncesRequest { pub addresses: Vec, } #[derive(Serialize, Deserialize, Debug)] pub struct GetAccountRequest { pub address: String, } #[derive(Serialize, Deserialize, Debug)] pub struct GetProofForCommitmentRequest { pub commitment: nssa_core::Commitment, } #[derive(Serialize, Deserialize, Debug)] pub struct GetProgramIdsRequest {} parse_request!(HelloRequest); parse_request!(RegisterAccountRequest); parse_request!(SendTxRequest); parse_request!(GetBlockDataRequest); parse_request!(GetGenesisIdRequest); parse_request!(GetLastBlockRequest); parse_request!(GetInitialTestnetAccountsRequest); parse_request!(GetAccountBalanceRequest); parse_request!(GetTransactionByHashRequest); parse_request!(GetAccountsNoncesRequest); parse_request!(GetProofForCommitmentRequest); parse_request!(GetAccountRequest); parse_request!(GetProgramIdsRequest); #[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, pub tx_hash: String, } #[derive(Serialize, Deserialize, Debug)] pub struct GetBlockDataResponse { pub block: Vec, } #[derive(Serialize, Deserialize, Debug)] pub struct GetGenesisIdResponse { pub genesis_id: u64, } #[derive(Serialize, Deserialize, Debug)] pub struct GetLastBlockResponse { pub last_block: u64, } #[derive(Serialize, Deserialize, Debug)] pub struct GetAccountBalanceResponse { pub balance: u128, } #[derive(Serialize, Deserialize, Debug)] pub struct GetAccountsNoncesResponse { pub nonces: Vec, } #[derive(Serialize, Deserialize, Debug)] pub struct GetTransactionByHashResponse { pub transaction: Option, } #[derive(Serialize, Deserialize, Debug)] pub struct GetAccountResponse { pub account: nssa::Account, } #[derive(Serialize, Deserialize, Debug)] pub struct GetProofForCommitmentResponse { pub membership_proof: Option, } #[derive(Serialize, Deserialize, Debug)] pub struct GetProgramIdsResponse { pub program_ids: HashMap, }