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
@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).
@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).
@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.
@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.