Raxol.Payments.Relay (Raxol Payments v0.2.0)

Copy Markdown View Source

High-level facade over Raxol.Payments.Relay.Client for the Tron rail.

Relay is deposit-address based: the quote returns a Riddler-managed deposit address, the caller's wallet sends funds to it on-chain, and status is polled until terminal. There is no client signature. Riddler is the single solver.

Summary

Functions

Initiate execution of a quoted transfer. Returns the initial status.

Request a Tron cross-chain quote (with a deposit address).

Poll transfer status until terminal (completed/failed) or timeout.

Like poll_status/3 but also returns the elapsed milliseconds to the terminal status, so the caller can report whether settlement landed within budget.

Functions

execute(config, transfer_id, quote_id, opts \\ [])

@spec execute(Raxol.Payments.Relay.Client.config(), String.t(), String.t(), keyword()) ::
  {:ok, Raxol.Payments.Relay.Schemas.StatusResponse.t()} | {:error, term()}

Initiate execution of a quoted transfer. Returns the initial status.

:signature is the gasless authorization for a pull (nil for a deposit-address transfer, the common case today).

get_quote(config, request)

@spec get_quote(
  Raxol.Payments.Relay.Client.config(),
  Raxol.Payments.Relay.Schemas.QuoteRequest.t()
) ::
  {:ok, Raxol.Payments.Relay.Schemas.QuoteResponse.t()} | {:error, term()}

Request a Tron cross-chain quote (with a deposit address).

poll_status(config, transfer_id, opts \\ [])

@spec poll_status(Raxol.Payments.Relay.Client.config(), String.t(), keyword()) ::
  {:ok, Raxol.Payments.Relay.Schemas.StatusResponse.t()} | {:error, term()}

Poll transfer status until terminal (completed/failed) or timeout.

Fast-polls inside the settlement budget window, then backs off. See Raxol.Payments.Poll for the timing options.

poll_status_timed(config, transfer_id, opts \\ [])

@spec poll_status_timed(Raxol.Payments.Relay.Client.config(), String.t(), keyword()) ::
  {:ok, Raxol.Payments.Relay.Schemas.StatusResponse.t(), non_neg_integer()}
  | {:error, term()}

Like poll_status/3 but also returns the elapsed milliseconds to the terminal status, so the caller can report whether settlement landed within budget.