Struct solana_faucet::faucet::Faucet
source · pub struct Faucet {
pub time_slice: Duration,
/* private fields */
}
Fields§
§time_slice: Duration
Implementations§
source§impl Faucet
impl Faucet
pub fn new(
faucet_keypair: Keypair,
time_input: Option<u64>,
per_time_cap: Option<u64>,
per_request_cap: Option<u64>
) -> Self
pub fn new_with_allowed_ips(
faucet_keypair: Keypair,
time_input: Option<u64>,
per_time_cap: Option<u64>,
per_request_cap: Option<u64>,
allowed_ips: HashSet<IpAddr>
) -> Self
pub fn check_time_request_limit<T: LimitByTime + Display>(
&mut self,
request_amount: u64,
to: T
) -> Result<(), FaucetError>
pub fn clear_caches(&mut self)
sourcepub fn build_airdrop_transaction(
&mut self,
req: FaucetRequest,
ip: IpAddr
) -> Result<FaucetTransaction, FaucetError>
pub fn build_airdrop_transaction(
&mut self,
req: FaucetRequest,
ip: IpAddr
) -> Result<FaucetTransaction, FaucetError>
Checks per-request and per-time-ip limits; if both pass, this method returns a signed
SystemProgram::Transfer transaction from the faucet keypair to the requested recipient. If
the request exceeds this per-request limit, this method returns a signed SPL Memo
transaction with the memo: "request too large; req: <REQUEST> SOL cap: <CAP> SOL"
sourcepub fn process_faucet_request(
&mut self,
bytes: &[u8],
ip: IpAddr
) -> Result<Vec<u8>, FaucetError>
pub fn process_faucet_request(
&mut self,
bytes: &[u8],
ip: IpAddr
) -> Result<Vec<u8>, FaucetError>
Deserializes a received airdrop request, and returns a serialized transaction