View Source Hyperliquid.Api.ExchangeEndpoint (hyperliquid v0.2.2)
DSL for defining authenticated exchange endpoints with signing support.
This macro reduces boilerplate for exchange actions while preserving explicit action building and signing logic.
Usage
Simple L1 Action (Noop, SetDisplayName)
defmodule Hyperliquid.Api.Exchange.Noop do
use Hyperliquid.Api.ExchangeEndpoint,
action_type: "noop",
signing: :l1
# The DSL generates request/1
endSimple L1 Action with params
defmodule Hyperliquid.Api.Exchange.SetDisplayName do
use Hyperliquid.Api.ExchangeEndpoint,
action_type: "setDisplayName",
signing: :l1
def build_action(display_name) do
%{type: "setDisplayName", displayName: display_name}
end
endSigning Strategies
:exchange- Full exchange action signing (orders, cancels):l1- L1 action signing via connection_id (noop, setDisplayName)
Generated Functions
For simple endpoints (no custom build_action):
request/1- Make signed request with private keyrequest/2- With opts (vault_address, etc.)
Telemetry Events
[:hyperliquid, :api, :exchange, :start][:hyperliquid, :api, :exchange, :stop][:hyperliquid, :api, :exchange, :exception]