Struct safecoin_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:
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