Skip to main content

FaucetClient

FaucetClient

class FaucetClient

init(faucetUrl:)

convenience init(faucetUrl: String)

Construct a new FaucetClient with the given faucet service URL. This FaucetClient expects that the service provides two endpoints: /v1/gas and /v1/status. As such, do not provide the request endpoint, just the top level service endpoint.

  • /v1/gas is used to request gas
  • /v1/status/task-uuid is used to check the status of the request

request(address:)

func request(address: Address) async throws -> String?

Request gas from the faucet. Note that this will return the UUID of the request and not wait until the token is received. Use request_and_wait to wait for the token.

requestAndWait(address:)

func requestAndWait(address: Address) async throws -> FaucetReceipt?

Request gas from the faucet and wait until the request is completed and token is transferred. Returns FaucetReceipt if the request is successful, which contains the list of tokens transferred, and the transaction digest.

Note that the faucet is heavily rate-limited, so calling repeatedly the faucet would likely result in a 429 code or 502 code.

If you intend to use the transferred tokens with the graphql client, consider using request_and_wait_for_finalized instead to ensure the tokens are available in the indexer.

requestAndWaitForFinalized(address:client:)

func requestAndWaitForFinalized(address: Address, client: GraphQlClient) async throws -> FaucetReceipt?

Request gas from the faucet and wait until the request is completed and token is transferred and finalized on the ledger. Returns FaucetReceipt if the request is successful, which contains the list of tokens transferred, and the transaction digest.

This is a convenience method that combines request_and_wait and waiting for the funding transactions to be finalized using the provided GraphQL Client.

requestStatus(id:)

func requestStatus(id: String) async throws -> BatchSendStatus?

Check the faucet request status.

Possible statuses are defined in: BatchSendStatusType

newLocalnet()

static func newLocalnet() -> FaucetClient

Create a new Faucet client connected to a localnet faucet.