implemented request_airdrop

This commit is contained in:
Aniket Prajapati 2023-01-04 16:41:37 +05:30
parent b12810a706
commit c5c0f86b45
2 changed files with 31 additions and 3 deletions

View File

@ -5,7 +5,7 @@ use crate::{
workers::{BlockListener, TxSender},
};
use std::{ops::Deref, sync::Arc};
use std::{ops::Deref, str::FromStr, sync::Arc};
use anyhow::bail;
use reqwest::Url;
@ -13,11 +13,12 @@ use reqwest::Url;
use jsonrpsee::server::ServerBuilder;
use solana_client::{
nonblocking::{rpc_client::RpcClient, tpu_client::TpuClient},
rpc_config::RpcContextConfig,
rpc_config::{RpcContextConfig, RpcRequestAirdropConfig},
rpc_response::{Response as RpcResponse, RpcBlockhash, RpcResponseContext, RpcVersionInfo},
};
use solana_sdk::{
commitment_config::{CommitmentConfig, CommitmentLevel},
pubkey::Pubkey,
transaction::VersionedTransaction,
};
use solana_transaction_status::TransactionStatus;
@ -191,6 +192,23 @@ impl LiteRpcServer for LiteBridge {
feature_set: Some(version.feature_set),
})
}
async fn request_airdrop(
&self,
pubkey_str: String,
lamports: u64,
config: RpcRequestAirdropConfig,
) -> crate::rpc::Result<String> {
let pubkey = Pubkey::from_str(&pubkey_str).unwrap();
Ok(self
.tpu_client
.rpc_client()
.request_airdrop_with_config(&pubkey, lamports, config)
.await
.unwrap()
.to_string())
}
}
impl Deref for LiteBridge {

View File

@ -1,6 +1,8 @@
use jsonrpsee::core::Error;
use jsonrpsee::proc_macros::rpc;
use solana_client::rpc_config::{RpcContextConfig, RpcSignatureStatusConfig};
use solana_client::rpc_config::{
RpcContextConfig, RpcRequestAirdropConfig, RpcSignatureStatusConfig,
};
use solana_client::rpc_response::{Response as RpcResponse, RpcBlockhash, RpcVersionInfo};
use solana_transaction_status::TransactionStatus;
@ -32,4 +34,12 @@ pub trait LiteRpc {
#[method(name = "getVersion")]
fn get_version(&self) -> Result<RpcVersionInfo>;
#[method(name = "requestAirdrop")]
async fn request_airdrop(
&self,
pubkey_str: String,
lamports: u64,
config: RpcRequestAirdropConfig,
) -> Result<String>;
}