View Source Hyperliquid.Orders.OrderWire (hyperliquid v0.1.6)
The OrderWire struct represents the essential parameters for placing an order on the Hyperliquid exchange. It encapsulates all necessary information such as asset index, buy/sell direction, price, size, and additional order properties.
Struct Fields
:a
- Asset index (integer) representing the asset's position in the coin list:b
- Boolean indicating if it's a buy order (true) or sell order (false):p
- Limit price for the order:s
- Size of the order:r
- Boolean indicating if it's a reduce-only order:t
- Trigger conditions for the order:c
- Client Order ID (optional)
Usage
Create a new OrderWire struct:
iex> OrderWire.new(1, true, 50000, 1.0, false, %{limit: %{tif: "Gtc"}})
%OrderWire{a: 1, b: true, p: 50000, s: 1.0, r: false, t: %{limit: %{tif: "Gtc"}}, c: nil}
Purify the OrderWire for API submission:
iex> order = OrderWire.new(1, true, 50000, 1.0, false, %{limit: %{tif: "Gtc"}})
iex> OrderWire.purify(order)
%{a: 1, b: true, p: "50000", s: "1.0", r: false, t: %{limit: %{tif: "Gtc"}}}
Full Contextual Example
The OrderWire struct is typically used within order placement functions in the Orders module. Here's an example
of how it is used for a limit_order
function:
def limit_order(coin, sz, is_buy?, px, tif \ "gtc", reduce? \ false, vault_address \ nil) do
trigger = trigger_from_order_type(tif)
asset = Cache.asset_from_coin(coin)
OrderWire.new(asset, is_buy?, px, sz, reduce?, trigger)
|> OrderWire.purify()
|> Exchange.place_order("na", vault_address)
end
In this example:
- The function takes order details as parameters.
- It determines the trigger type and fetches the asset index for the given coin.
- An OrderWire struct is created using the
new/7
function. - The struct is then purified using the
purify/1
function. - Finally, the purified order data is passed to an
Exchange.place_order/3
function for execution.
This demonstrates how OrderWire fits into the broader order placement process, encapsulating order details in a standardized format before submission to the exchange.
Note: The purify/1
function converts numeric values to strings and removes nil fields,
preparing the order data for API submission. The asset index (:a
) remains an integer.
Important: Ensure you're using the correct asset index based on the current coin list.
Summary
Functions
Creates a new OrderWire struct.
Converts price and size to string if they are integer or float, and removes nil values from the struct.
Functions
new(asset, is_buy, limit_px, sz, reduce_only, trigger, cloid \\ nil)
View SourceCreates a new OrderWire struct.
Converts price and size to string if they are integer or float, and removes nil values from the struct.