hyperliquid

package module
v0.0.0-...-d51095b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 26, 2026 License: MIT Imports: 37 Imported by: 0

README

go-hyperliquid

Go Reference Go Report Card CI Coverage Status Go Version

Unofficial Go client for the Hyperliquid exchange API. This implementation follows the same philosophy and patterns as the official Python SDK.

Installation

go get github.com/0xsyndr/go-hyperliquid

Features

This Go SDK provides full feature parity with the official Python SDK, including:

Trading Features
  • Order Management: Limit orders, market orders, trigger orders, order modifications
  • Position Management: Leverage updates, isolated margin, position closing
  • Bulk Operations: Bulk orders, bulk cancellations, bulk modifications
  • Advanced Trading: Market open/close with slippage protection, scheduled cancellations
  • Builder Support: Order routing through builders with fee structures
Account Management
  • Referral System: Set referral codes, track referral state
  • Sub-Accounts: Create and manage sub-accounts, transfer funds
  • Multi-Signature: Convert to multi-sig, execute multi-sig actions
  • Vault Operations: Vault deposits, withdrawals, and transfers
Asset Management
  • USD Transfers: Cross-chain USD transfers, spot transfers
  • Class Transfers: USD class transfers (perp ↔ spot), perp dex transfers
  • Bridge Operations: Withdraw from bridge with fee management
  • Token Delegation: Stake tokens with validators
  • Spot Trading: Full spot market support
Advanced Features
  • Agent Approval: Approve trading agents with permissions
  • Builder Fee Management: Approve and manage builder fees
  • Big Blocks: Enable/disable big block usage
Deployment Features (Advanced)
  • Spot Deployment: Token registration, genesis, freeze privileges
  • Perp Deployment: Asset registration, oracle management
  • Hyperliquidity: Register hyperliquidity assets
Consensus Layer (Validators)
  • Validator Operations: Register, unregister, profile management
  • Signer Operations: Jail/unjail self, inner actions
  • Consensus Actions: Full consensus layer interaction
WebSocket Features
  • Market Data: Real-time L2 book, trades, candles, mid prices
  • User Events: Order updates, fills, funding, ledger updates
  • Advanced Streams: BBO, active asset context, web data v2

Usage

package main

import (
    "context"
    "fmt"
    "log"

    "github.com/ethereum/go-ethereum/crypto"
    hyperliquid "github.com/0xsyndr/go-hyperliquid"
)

func main() {
    // For trading, create an Exchange with your private key
    privateKey, _ := crypto.HexToECDSA("your-private-key")
    exchange := hyperliquid.NewExchange(
        context.Background(),
        privateKey,
        hyperliquid.MainnetAPIURL,
        nil,    // Meta will be fetched automatically
        "vault-address",
        "account-address",
        nil,    // SpotMeta will be fetched automatically
        nil,    // PerpDexs will be fetched automatically
    )

    // Place a limit order
    order := hyperliquid.OrderRequest{
        Coin:    "BTC",
        IsBuy:   true,
        Size:    0.1,
        LimitPx: 40000.0,
        OrderType: hyperliquid.OrderType{
            Limit: &hyperliquid.LimitOrderType{
                Tif: "Gtc",
            },
        },
    }

    resp, err := exchange.Order(context.Background(), order, nil)
    if err != nil {
        log.Fatal(err)
    }

    // Subscribe to WebSocket updates
    ws := hyperliquid.NewWebsocketClient(hyperliquid.MainnetAPIURL)
    if err := ws.Connect(context.Background()); err != nil {
        log.Fatal(err)
    }
    defer ws.Close()

    // Subscribe to BTC trades
    _, err = ws.Subscribe(hyperliquid.Subscription{
        Type: "trades",
        Coin: "BTC",
    }, func(msg hyperliquid.wsMessage) {
        fmt.Printf("Trade: %+v\n", msg)
    })
}

Documentation

For detailed API documentation, please refer to:

Examples

Check the examples/ directory for more usage examples:

  • WebSocket subscriptions
  • Order management
  • Position handling
  • Market data retrieval

Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

Contributors

Thanks to all the people who have contributed to this project! 🎉

sonirico
Marquitos
terwey
Yorick Terweijden
standrd
Stan
prasiman
Prasetyo Iman Nugroho
coder-ishan
Ishan Singh
KILLY000
Vernon Stokes
Debuggedd
Alex
MarcSky
Levan
ivaaaan
Ivan
vyomshm
Vyom
tpkeeper
tpkeeper
hail100
hail100
feeeei
feeeei
corverroos
corver
aaltergot
Alexander Altergot
07Vaishnavi-Singh
Vaiz_07
freeeverett
Everett
andrew-malikov
Andrew Malikov
Quick Start for Contributors
# Clone the repository
git clone https://github.com/0xsyndr/go-hyperliquid.git
cd go-hyperliquid

# Install dependencies and tools
make deps install-tools

# Run all checks
make ci-full

# Run tests (excluding examples)
make ci-test

Roadmap

✅ Completed Features
  • Complete WebSocket API implementation
  • REST API client
  • All trading operations (orders, positions, leverage)
  • Market data (L2 book, trades, candles, all mids)
  • User account management
  • Referral system implementation
  • Sub-account management
  • Vault operations
  • USD and spot transfers
  • Bridge operations
  • Agent approval system
  • Builder fee management
  • Multi-signature support
  • Token delegation/staking
  • Spot deployment features
  • Perp deployment features
  • Consensus layer (validator operations)
  • Full feature parity with Python SDK
🚀 Future Enhancements
  • Enhanced documentation with more examples
  • Performance optimizations
  • Additional testing and edge case coverage
  • Rate limiting and retry mechanisms
  • Monitoring and observability features
  • Order management
  • User account operations
  • Advanced order types
  • Historical data API
  • Rate limiting improvements
  • Connection pooling

License

MIT License

Copyright (c) 2025

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Documentation

Overview

Package hyperliquid provides a Go client library for the Hyperliquid exchange API. It includes support for both REST API and WebSocket connections, allowing users to access market data, manage orders, and handle user account operations.

Index

Constants

View Source
const (
	MainnetAPIURL = "https://api.hyperliquid.xyz"
	TestnetAPIURL = "https://api.hyperliquid-testnet.xyz"
	LocalAPIURL   = "http://localhost:3001"
)
View Source
const (
	ChannelPong               string = "pong"
	ChannelTrades             string = "trades"
	ChannelActiveAssetCtx     string = "activeAssetCtx"
	ChannelL2Book             string = "l2Book"
	ChannelCandle             string = "candle"
	ChannelAllMids            string = "allMids"
	ChannelNotification       string = "notification"
	ChannelOrderUpdates       string = "orderUpdates"
	ChannelUserFills          string = "userFills"
	ChannelWebData2           string = "webData2"
	ChannelBbo                string = "bbo"
	ChannelSubResponse        string = "subscriptionResponse"
	ChannelClearinghouseState string = "clearinghouseState"
	ChannelOpenOrders         string = "openOrders"
	ChannelTwapStates         string = "twapStates"
	ChannelWebData3           string = "webData3"
)
View Source
const (
	DefaultSlippage = 0.05 // 5%
)

Constants for default values

Variables

This section is empty.

Functions

func FloatToUsdInt

func FloatToUsdInt(value float64) int

FloatToUsdInt converts float to USD integer representation

func GetApproveAgentHash

func GetApproveAgentHash(agentAddress, agentName string, nonce int64, isMainnet bool) ([]byte, error)

func GetSendToEVMWithDataHash

func GetSendToEVMWithDataHash(
	signatureChainID string,
	token string,
	amount string,
	sourceDex string,
	destinationRecipient string,
	addressEncoding string,
	destinationChainID uint32,
	gasLimit uint64,
	data string,
	nonce int64,
	isMainnet bool,
) ([]byte, error)

func GetTimestampMs

func GetTimestampMs() int64

GetTimestampMs returns current timestamp in milliseconds

func GetUpdateAccountAbstractionHash

func GetUpdateAccountAbstractionHash(user, abstraction string, nonce int64, isMainnet bool) ([]byte, error)

func HashUserSignedAction

func HashUserSignedAction(action map[string]any, payloadTypes []apitypes.Type, primaryType string, isMainnet bool) ([]byte, error)

func IsWalletDoesNotExistError

func IsWalletDoesNotExistError(err error) bool

IsWalletDoesNotExistError checks if the error is a "wallet does not exist" error from the API

func NewMsgDispatcher

func NewMsgDispatcher[T subscriptable](channel string) msgDispatcher

func NewNoopDispatcher

func NewNoopDispatcher() msgDispatcher

func NewPongDispatcher

func NewPongDispatcher() msgDispatcher

Types

type APIError

type APIError struct {
	Code    int    `json:"code"`
	Message string `json:"msg"`
	Data    any    `json:"data,omitempty"`
}

func (APIError) Error

func (e APIError) Error() string

func (APIError) MarshalEasyJSON

func (v APIError) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (APIError) MarshalJSON

func (v APIError) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*APIError) UnmarshalEasyJSON

func (v *APIError) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*APIError) UnmarshalJSON

func (v *APIError) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type APIResponse

type APIResponse[T any] struct {
	Status string
	Data   T
	Type   string
	Err    string
	Ok     bool
}

func (*APIResponse[T]) UnmarshalJSON

func (r *APIResponse[T]) UnmarshalJSON(data []byte) error

type ActiveAssetCtx

type ActiveAssetCtx struct {
	Coin string         `json:"coin"`
	Ctx  SharedAssetCtx `json:"ctx"`
}

func (ActiveAssetCtx) Key

func (a ActiveAssetCtx) Key() string

func (ActiveAssetCtx) MarshalEasyJSON

func (v ActiveAssetCtx) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (ActiveAssetCtx) MarshalJSON

func (v ActiveAssetCtx) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*ActiveAssetCtx) UnmarshalEasyJSON

func (v *ActiveAssetCtx) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*ActiveAssetCtx) UnmarshalJSON

func (v *ActiveAssetCtx) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type ActiveAssetCtxSubscriptionParams

type ActiveAssetCtxSubscriptionParams struct {
	Coin string
}

type AgentApprovalResponse

type AgentApprovalResponse struct {
	Status string `json:"status"`
	TxHash string `json:"txHash,omitempty"`
	Error  string `json:"error,omitempty"`
}

func (AgentApprovalResponse) MarshalEasyJSON

func (v AgentApprovalResponse) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (AgentApprovalResponse) MarshalJSON

func (v AgentApprovalResponse) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*AgentApprovalResponse) UnmarshalEasyJSON

func (v *AgentApprovalResponse) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*AgentApprovalResponse) UnmarshalJSON

func (v *AgentApprovalResponse) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type AllMids

type AllMids struct {
	Mids map[string]string `json:"mids"`
}

func (AllMids) Key

func (a AllMids) Key() string

func (AllMids) MarshalEasyJSON

func (v AllMids) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (AllMids) MarshalJSON

func (v AllMids) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*AllMids) UnmarshalEasyJSON

func (v *AllMids) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*AllMids) UnmarshalJSON

func (v *AllMids) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type AllMidsSubscriptionParams

type AllMidsSubscriptionParams struct {
	Dex *string
}

type ApprovalResponse

type ApprovalResponse struct {
	Status string `json:"status"`
	TxHash string `json:"txHash,omitempty"`
	Error  string `json:"error,omitempty"`
}

func (ApprovalResponse) MarshalEasyJSON

func (v ApprovalResponse) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (ApprovalResponse) MarshalJSON

func (v ApprovalResponse) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*ApprovalResponse) UnmarshalEasyJSON

func (v *ApprovalResponse) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*ApprovalResponse) UnmarshalJSON

func (v *ApprovalResponse) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type ApproveAgentAction

type ApproveAgentAction struct {
	Type             string  `json:"type"                msgpack:"type"`
	SignatureChainId string  `json:"signatureChainId"    msgpack:"signatureChainId"`
	HyperliquidChain string  `json:"hyperliquidChain"    msgpack:"hyperliquidChain"`
	AgentAddress     string  `json:"agentAddress"        msgpack:"agentAddress"`
	AgentName        *string `json:"agentName,omitempty" msgpack:"agentName,omitempty"`
	Nonce            int64   `json:"nonce"               msgpack:"nonce"`
}

ApproveAgentAction represents approve agent action

func (ApproveAgentAction) MarshalEasyJSON

func (v ApproveAgentAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (ApproveAgentAction) MarshalJSON

func (v ApproveAgentAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*ApproveAgentAction) UnmarshalEasyJSON

func (v *ApproveAgentAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*ApproveAgentAction) UnmarshalJSON

func (v *ApproveAgentAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type ApproveBuilderFeeAction

type ApproveBuilderFeeAction struct {
	Type       string `json:"type"       msgpack:"type"`
	Builder    string `json:"builder"    msgpack:"builder"`
	MaxFeeRate string `json:"maxFeeRate" msgpack:"maxFeeRate"`
	Nonce      int64  `json:"nonce"      msgpack:"nonce"`
}

ApproveBuilderFeeAction represents approve builder fee action

func (ApproveBuilderFeeAction) MarshalEasyJSON

func (v ApproveBuilderFeeAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (ApproveBuilderFeeAction) MarshalJSON

func (v ApproveBuilderFeeAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*ApproveBuilderFeeAction) UnmarshalEasyJSON

func (v *ApproveBuilderFeeAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*ApproveBuilderFeeAction) UnmarshalJSON

func (v *ApproveBuilderFeeAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type AssetCtx

type AssetCtx struct {
	Funding      string   `json:"funding"`
	OpenInterest string   `json:"openInterest"`
	PrevDayPx    string   `json:"prevDayPx"`
	DayNtlVlm    string   `json:"dayNtlVlm"`
	Premium      string   `json:"premium"`
	OraclePx     string   `json:"oraclePx"`
	MarkPx       string   `json:"markPx"`
	MidPx        string   `json:"midPx,omitempty"`
	ImpactPxs    []string `json:"impactPxs"`
	DayBaseVlm   string   `json:"dayBaseVlm,omitempty"`
}

func (AssetCtx) MarshalEasyJSON

func (v AssetCtx) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (AssetCtx) MarshalJSON

func (v AssetCtx) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*AssetCtx) UnmarshalEasyJSON

func (v *AssetCtx) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*AssetCtx) UnmarshalJSON

func (v *AssetCtx) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type AssetInfo

type AssetInfo struct {
	Name          string `json:"name"`
	SzDecimals    int    `json:"szDecimals"`
	MaxLeverage   int    `json:"maxLeverage"`
	MarginTableId int    `json:"marginTableId"`
	OnlyIsolated  bool   `json:"onlyIsolated"`
	IsDelisted    bool   `json:"isDelisted"`
}

func (AssetInfo) MarshalEasyJSON

func (v AssetInfo) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (AssetInfo) MarshalJSON

func (v AssetInfo) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*AssetInfo) UnmarshalEasyJSON

func (v *AssetInfo) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*AssetInfo) UnmarshalJSON

func (v *AssetInfo) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type AssetPosition

type AssetPosition struct {
	Position Position `json:"position"`
	Type     string   `json:"type"`
}

func (AssetPosition) MarshalEasyJSON

func (v AssetPosition) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (AssetPosition) MarshalJSON

func (v AssetPosition) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*AssetPosition) UnmarshalEasyJSON

func (v *AssetPosition) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*AssetPosition) UnmarshalJSON

func (v *AssetPosition) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type AssetRequest

type AssetRequest struct {
	Coin          string `json:"coin"          msgpack:"coin"`
	SzDecimals    int    `json:"szDecimals"    msgpack:"szDecimals"`
	OraclePx      string `json:"oraclePx"      msgpack:"oraclePx"`
	MarginTableID int    `json:"marginTableId" msgpack:"marginTableId"`
	OnlyIsolated  bool   `json:"onlyIsolated"  msgpack:"onlyIsolated"`
}

func (AssetRequest) MarshalEasyJSON

func (v AssetRequest) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (AssetRequest) MarshalJSON

func (v AssetRequest) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*AssetRequest) UnmarshalEasyJSON

func (v *AssetRequest) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*AssetRequest) UnmarshalJSON

func (v *AssetRequest) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type AssetRequest2

type AssetRequest2 struct {
	Coin          string `json:"coin"          msgpack:"coin"`
	SzDecimals    int    `json:"szDecimals"    msgpack:"szDecimals"`
	OraclePx      string `json:"oraclePx"      msgpack:"oraclePx"`
	MarginTableID int    `json:"marginTableId" msgpack:"marginTableId"`
	MarginMode    string `json:"marginMode"    msgpack:"marginMode"`
}

func (AssetRequest2) MarshalEasyJSON

func (v AssetRequest2) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (AssetRequest2) MarshalJSON

func (v AssetRequest2) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*AssetRequest2) UnmarshalEasyJSON

func (v *AssetRequest2) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*AssetRequest2) UnmarshalJSON

func (v *AssetRequest2) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type BatchModifyAction

type BatchModifyAction struct {
	Type     string         `json:"type"          msgpack:"type"`
	Dex      string         `json:"dex,omitempty" msgpack:"dex,omitempty"`
	Modifies []ModifyAction `json:"modifies"      msgpack:"modifies"`
}

BatchModifyAction represents multiple order modifications

func (BatchModifyAction) MarshalEasyJSON

func (v BatchModifyAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (BatchModifyAction) MarshalJSON

func (v BatchModifyAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*BatchModifyAction) UnmarshalEasyJSON

func (v *BatchModifyAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*BatchModifyAction) UnmarshalJSON

func (v *BatchModifyAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type Bbo

type Bbo struct {
	Coin string  `json:"coin"`
	Time int64   `json:"time"`
	Bbo  []Level `json:"bbo"`
}

func (Bbo) Key

func (w Bbo) Key() string

func (Bbo) MarshalEasyJSON

func (v Bbo) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (Bbo) MarshalJSON

func (v Bbo) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*Bbo) UnmarshalEasyJSON

func (v *Bbo) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*Bbo) UnmarshalJSON

func (v *Bbo) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type BboSubscriptionParams

type BboSubscriptionParams struct {
	Coin string
}

type BuilderInfo

type BuilderInfo struct {
	Builder string `json:"b" msgpack:"b"`
	Fee     int    `json:"f" msgpack:"f"`
}

func (BuilderInfo) MarshalEasyJSON

func (v BuilderInfo) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (BuilderInfo) MarshalJSON

func (v BuilderInfo) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*BuilderInfo) UnmarshalEasyJSON

func (v *BuilderInfo) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*BuilderInfo) UnmarshalJSON

func (v *BuilderInfo) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type BulkCancelResponse

type BulkCancelResponse struct {
	Status string      `json:"status"`
	Data   []OpenOrder `json:"data,omitempty"`
	Error  string      `json:"error,omitempty"`
}

func (BulkCancelResponse) MarshalEasyJSON

func (v BulkCancelResponse) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (BulkCancelResponse) MarshalJSON

func (v BulkCancelResponse) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*BulkCancelResponse) UnmarshalEasyJSON

func (v *BulkCancelResponse) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*BulkCancelResponse) UnmarshalJSON

func (v *BulkCancelResponse) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type BulkOrderResponse

type BulkOrderResponse struct {
	Status string        `json:"status"`
	Data   []OrderStatus `json:"data,omitempty"`
	Error  string        `json:"error,omitempty"`
}

func (BulkOrderResponse) MarshalEasyJSON

func (v BulkOrderResponse) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (BulkOrderResponse) MarshalJSON

func (v BulkOrderResponse) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*BulkOrderResponse) UnmarshalEasyJSON

func (v *BulkOrderResponse) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*BulkOrderResponse) UnmarshalJSON

func (v *BulkOrderResponse) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type CancelAction

type CancelAction struct {
	Type    string            `json:"type"          msgpack:"type"`
	Dex     string            `json:"dex,omitempty" msgpack:"dex,omitempty"`
	Cancels []CancelOrderWire `json:"cancels"       msgpack:"cancels"`
}

CancelAction represents the cancel action

func (CancelAction) MarshalEasyJSON

func (v CancelAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (CancelAction) MarshalJSON

func (v CancelAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*CancelAction) UnmarshalEasyJSON

func (v *CancelAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*CancelAction) UnmarshalJSON

func (v *CancelAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type CancelByCloidAction

type CancelByCloidAction struct {
	Type    string              `json:"type"          msgpack:"type"`
	Dex     string              `json:"dex,omitempty" msgpack:"dex,omitempty"`
	Cancels []CancelByCloidWire `json:"cancels"       msgpack:"cancels"`
}

CancelByCloidAction represents the cancel by cloid action

func (CancelByCloidAction) MarshalEasyJSON

func (v CancelByCloidAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (CancelByCloidAction) MarshalJSON

func (v CancelByCloidAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*CancelByCloidAction) UnmarshalEasyJSON

func (v *CancelByCloidAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*CancelByCloidAction) UnmarshalJSON

func (v *CancelByCloidAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type CancelByCloidRequest

type CancelByCloidRequest struct {
	Coin  string `json:"coin"`
	Cloid string `json:"cloid"`
}

func (CancelByCloidRequest) MarshalEasyJSON

func (v CancelByCloidRequest) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (CancelByCloidRequest) MarshalJSON

func (v CancelByCloidRequest) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*CancelByCloidRequest) UnmarshalEasyJSON

func (v *CancelByCloidRequest) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*CancelByCloidRequest) UnmarshalJSON

func (v *CancelByCloidRequest) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type CancelByCloidWire

type CancelByCloidWire struct {
	Asset    int    `json:"asset" msgpack:"asset"`
	ClientID string `json:"cloid" msgpack:"cloid"`
}

CancelByCloidWire represents cancel by cloid item wire format NB: the CancelByCloidWire MUST have `asset` and not `o` like CancelOrderWire has See: https://github.com/hyperliquid-dex/hyperliquid-python-sdk/blob/f19056ca1b65cc15a019d92dffa9ada887b3d808/hyperliquid/exchange.py#L305-L310

func (CancelByCloidWire) MarshalEasyJSON

func (v CancelByCloidWire) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (CancelByCloidWire) MarshalJSON

func (v CancelByCloidWire) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*CancelByCloidWire) UnmarshalEasyJSON

func (v *CancelByCloidWire) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*CancelByCloidWire) UnmarshalJSON

func (v *CancelByCloidWire) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type CancelOrderRequest

type CancelOrderRequest struct {
	Coin    string
	OrderID int64
}

type CancelOrderRequestByCloid

type CancelOrderRequestByCloid struct {
	Coin  string
	Cloid string
}

type CancelOrderResponse

type CancelOrderResponse struct {
	Statuses MixedArray
}

type CancelOrderWire

type CancelOrderWire struct {
	Asset   int   `json:"a" msgpack:"a"`
	OrderID int64 `json:"o" msgpack:"o"`
}

CancelOrderWire represents cancel order item wire format

func (CancelOrderWire) MarshalEasyJSON

func (v CancelOrderWire) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (CancelOrderWire) MarshalJSON

func (v CancelOrderWire) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*CancelOrderWire) UnmarshalEasyJSON

func (v *CancelOrderWire) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*CancelOrderWire) UnmarshalJSON

func (v *CancelOrderWire) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type CancelRequest

type CancelRequest struct {
	Coin string `json:"coin"`
	Oid  int64  `json:"oid"`
}

func (CancelRequest) MarshalEasyJSON

func (v CancelRequest) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (CancelRequest) MarshalJSON

func (v CancelRequest) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*CancelRequest) UnmarshalEasyJSON

func (v *CancelRequest) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*CancelRequest) UnmarshalJSON

func (v *CancelRequest) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type CancelResponse

type CancelResponse struct {
	Status string     `json:"status"`
	Data   *OpenOrder `json:"data,omitempty"`
	Error  string     `json:"error,omitempty"`
}

func (CancelResponse) MarshalEasyJSON

func (v CancelResponse) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (CancelResponse) MarshalJSON

func (v CancelResponse) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*CancelResponse) UnmarshalEasyJSON

func (v *CancelResponse) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*CancelResponse) UnmarshalJSON

func (v *CancelResponse) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type Candle

type Candle struct {
	TimeOpen    int64  `json:"t"` // open millis
	TimeClose   int64  `json:"T"` // close millis
	Interval    string `json:"i"` // interval
	TradesCount int    `json:"n"` // number of trades
	Open        string `json:"o"` // open price
	High        string `json:"h"` // high price
	Low         string `json:"l"` // low price
	Close       string `json:"c"` // close price
	Symbol      string `json:"s"` // coin
	Volume      string `json:"v"` // volume (base unit)
}

func (Candle) Key

func (c Candle) Key() string

func (Candle) MarshalEasyJSON

func (v Candle) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (Candle) MarshalJSON

func (v Candle) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*Candle) UnmarshalEasyJSON

func (v *Candle) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*Candle) UnmarshalJSON

func (v *Candle) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type CandlesSubscriptionParams

type CandlesSubscriptionParams struct {
	Coin     string
	Interval string
}

type ClearinghouseState

type ClearinghouseState struct {
	MarginSummary              *MarginSummary  `json:"marginSummary,omitempty"`
	CrossMarginSummary         *MarginSummary  `json:"crossMarginSummary,omitempty"`
	CrossMaintenanceMarginUsed string          `json:"crossMaintenanceMarginUsed,omitempty"`
	Withdrawable               string          `json:"withdrawable,omitempty"`
	AssetPositions             []AssetPosition `json:"assetPositions,omitempty"`
	Time                       int64           `json:"time,omitempty"`
}

func (ClearinghouseState) Key

func (c ClearinghouseState) Key() string

func (ClearinghouseState) MarshalEasyJSON

func (v ClearinghouseState) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (ClearinghouseState) MarshalJSON

func (v ClearinghouseState) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*ClearinghouseState) UnmarshalEasyJSON

func (v *ClearinghouseState) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*ClearinghouseState) UnmarshalJSON

func (v *ClearinghouseState) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type ClearinghouseStateMessage

type ClearinghouseStateMessage struct {
	Dex                string             `json:"dex,omitempty"`
	User               string             `json:"user,omitempty"`
	ClearinghouseState ClearinghouseState `json:"clearinghouseState"`
}

func (ClearinghouseStateMessage) Key

func (ClearinghouseStateMessage) MarshalEasyJSON

func (v ClearinghouseStateMessage) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (ClearinghouseStateMessage) MarshalJSON

func (v ClearinghouseStateMessage) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*ClearinghouseStateMessage) UnmarshalEasyJSON

func (v *ClearinghouseStateMessage) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*ClearinghouseStateMessage) UnmarshalJSON

func (v *ClearinghouseStateMessage) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type ClearinghouseStateSubscriptionParams

type ClearinghouseStateSubscriptionParams struct {
	User string
	Dex  *string
}

type ClientOpt

type ClientOpt = Opt[client]

func ClientOptHTTPClient

func ClientOptHTTPClient(httpClient *http.Client) ClientOpt

ClientOptHTTPClient allows setting a custom http.Client

type Cloid

type Cloid struct {
	Value string
}

func (Cloid) MarshalEasyJSON

func (v Cloid) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (Cloid) MarshalJSON

func (v Cloid) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (Cloid) ToRaw

func (c Cloid) ToRaw() string

func (*Cloid) UnmarshalEasyJSON

func (v *Cloid) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*Cloid) UnmarshalJSON

func (v *Cloid) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type ConvertToMultiSigUserAction

type ConvertToMultiSigUserAction struct {
	Type    string `json:"type"    msgpack:"type"`
	Signers string `json:"signers" msgpack:"signers"`
	Nonce   int64  `json:"nonce"   msgpack:"nonce"`
}

ConvertToMultiSigUserAction represents convert to multi-sig user action

func (ConvertToMultiSigUserAction) MarshalEasyJSON

func (v ConvertToMultiSigUserAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (ConvertToMultiSigUserAction) MarshalJSON

func (v ConvertToMultiSigUserAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*ConvertToMultiSigUserAction) UnmarshalEasyJSON

func (v *ConvertToMultiSigUserAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*ConvertToMultiSigUserAction) UnmarshalJSON

func (v *ConvertToMultiSigUserAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type CreateOrderRequest

type CreateOrderRequest struct {
	Coin          string
	IsBuy         bool
	Price         float64
	Size          float64
	ReduceOnly    bool
	OrderType     OrderType
	ClientOrderID *string
}

func (*CreateOrderRequest) String

func (s *CreateOrderRequest) String() string

type CreateSubAccountAction

type CreateSubAccountAction struct {
	Type string `json:"type" msgpack:"type"`
	Name string `json:"name" msgpack:"name"`
}

CreateSubAccountAction represents create sub-account action

func (CreateSubAccountAction) MarshalEasyJSON

func (v CreateSubAccountAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (CreateSubAccountAction) MarshalJSON

func (v CreateSubAccountAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*CreateSubAccountAction) UnmarshalEasyJSON

func (v *CreateSubAccountAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*CreateSubAccountAction) UnmarshalJSON

func (v *CreateSubAccountAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type CreateSubAccountResponse

type CreateSubAccountResponse struct {
	Status string      `json:"status"`
	Data   *SubAccount `json:"data,omitempty"`
	Error  string      `json:"error,omitempty"`
}

func (CreateSubAccountResponse) MarshalEasyJSON

func (v CreateSubAccountResponse) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (CreateSubAccountResponse) MarshalJSON

func (v CreateSubAccountResponse) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*CreateSubAccountResponse) UnmarshalEasyJSON

func (v *CreateSubAccountResponse) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*CreateSubAccountResponse) UnmarshalJSON

func (v *CreateSubAccountResponse) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type CreateVaultAction

type CreateVaultAction struct {
	Type        string `json:"type"        msgpack:"type"`
	Name        string `json:"name"        msgpack:"name"`
	Description string `json:"description" msgpack:"description"`
	InitialUsd  int    `json:"initialUsd"  msgpack:"initialUsd"`
}

CreateVaultAction represents create vault action

func (CreateVaultAction) MarshalEasyJSON

func (v CreateVaultAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (CreateVaultAction) MarshalJSON

func (v CreateVaultAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*CreateVaultAction) UnmarshalEasyJSON

func (v *CreateVaultAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*CreateVaultAction) UnmarshalJSON

func (v *CreateVaultAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type CreateVaultResponse

type CreateVaultResponse struct {
	Status string `json:"status"`
	Data   string `json:"data,omitempty"`
	Error  string `json:"error,omitempty"`
}

func (CreateVaultResponse) MarshalEasyJSON

func (v CreateVaultResponse) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (CreateVaultResponse) MarshalJSON

func (v CreateVaultResponse) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*CreateVaultResponse) UnmarshalEasyJSON

func (v *CreateVaultResponse) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*CreateVaultResponse) UnmarshalJSON

func (v *CreateVaultResponse) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type CumFunding

type CumFunding struct {
	AllTime     string `json:"allTime"`
	SinceChange string `json:"sinceChange"`
	SinceOpen   string `json:"sinceOpen"`
}

func (CumFunding) MarshalEasyJSON

func (v CumFunding) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (CumFunding) MarshalJSON

func (v CumFunding) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*CumFunding) UnmarshalEasyJSON

func (v *CumFunding) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*CumFunding) UnmarshalJSON

func (v *CumFunding) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type Delta

type Delta struct {
	Coin        string `json:"coin"`
	FundingRate string `json:"fundingRate"`
	Size        string `json:"size"`
	Type        string `json:"type"`
	USDC        string `json:"usdc"`
}

func (Delta) MarshalEasyJSON

func (v Delta) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (Delta) MarshalJSON

func (v Delta) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*Delta) UnmarshalEasyJSON

func (v *Delta) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*Delta) UnmarshalJSON

func (v *Delta) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type EvmContract

type EvmContract struct {
	Address             string `json:"address"`
	EvmExtraWeiDecimals int    `json:"evm_extra_wei_decimals"`
}

func (EvmContract) MarshalEasyJSON

func (v EvmContract) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (EvmContract) MarshalJSON

func (v EvmContract) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*EvmContract) UnmarshalEasyJSON

func (v *EvmContract) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*EvmContract) UnmarshalJSON

func (v *EvmContract) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type Exchange

type Exchange struct {
	// contains filtered or unexported fields
}

func NewExchange

func NewExchange(
	ctx context.Context,
	privateKey *ecdsa.PrivateKey,
	baseURL string,
	meta *Meta,
	vaultAddr, accountAddr string,
	spotMeta *SpotMeta,
	perpDexs *MixedArray,
	opts ...ExchangeOpt,
) *Exchange

func (*Exchange) ApproveAgent

func (e *Exchange) ApproveAgent(
	ctx context.Context,
	name *string,
) (*AgentApprovalResponse, string, error)

ApproveAgent approves an agent to trade on behalf of the user Returns the result and the generated agent private key

func (*Exchange) ApproveAgentWithSignature

func (e *Exchange) ApproveAgentWithSignature(
	ctx context.Context,
	agentAddress string,
	agentName string,
	signature string,
	nonce int64,
) (*AgentApprovalResponse, error)

func (*Exchange) ApproveBuilderFee

func (e *Exchange) ApproveBuilderFee(
	ctx context.Context,
	builder string,
	maxFeeRate string,
) (*ApprovalResponse, error)

ApproveBuilderFee approves builder fee payment

func (*Exchange) BulkCancel

func (e *Exchange) BulkCancel(
	ctx context.Context,
	requests []CancelOrderRequest,
) (res *APIResponse[CancelOrderResponse], err error)

func (*Exchange) BulkCancelByCloids

func (e *Exchange) BulkCancelByCloids(
	ctx context.Context,
	requests []CancelOrderRequestByCloid,
) (res *APIResponse[CancelOrderResponse], err error)

func (*Exchange) BulkModifyOrders

func (e *Exchange) BulkModifyOrders(
	ctx context.Context,
	modifyRequests []ModifyOrderRequest,
) ([]OrderStatus, error)

BulkModifyOrders modifies multiple orders

func (*Exchange) BulkOrders

func (e *Exchange) BulkOrders(
	ctx context.Context,
	orders []CreateOrderRequest,
	builder *BuilderInfo,
) (result *APIResponse[OrderResponse], err error)

func (*Exchange) CSignerInner

func (e *Exchange) CSignerInner(
	ctx context.Context,
	innerAction map[string]any,
) (*ValidatorResponse, error)

CSignerInner executes inner consensus signer action

func (*Exchange) CSignerJailSelf

func (e *Exchange) CSignerJailSelf(ctx context.Context) (*ValidatorResponse, error)

CSignerJailSelf jails self as consensus signer

func (*Exchange) CSignerUnjailSelf

func (e *Exchange) CSignerUnjailSelf(ctx context.Context) (*ValidatorResponse, error)

CSignerUnjailSelf unjails self as consensus signer

func (*Exchange) CValidatorChangeProfile

func (e *Exchange) CValidatorChangeProfile(
	ctx context.Context,
	newProfile map[string]any,
) (*ValidatorResponse, error)

CValidatorChangeProfile changes validator profile

func (*Exchange) CValidatorRegister

func (e *Exchange) CValidatorRegister(
	ctx context.Context,
	validatorProfile map[string]any,
) (*ValidatorResponse, error)

CValidatorRegister registers as consensus validator

func (*Exchange) CValidatorUnregister

func (e *Exchange) CValidatorUnregister(ctx context.Context) (*ValidatorResponse, error)

CValidatorUnregister unregisters as consensus validator

func (*Exchange) Cancel

func (e *Exchange) Cancel(
	ctx context.Context,
	coin string,
	oid int64,
) (res *APIResponse[CancelOrderResponse], err error)

func (*Exchange) CancelByCloid

func (e *Exchange) CancelByCloid(
	ctx context.Context,
	coin, cloid string,
) (res *APIResponse[CancelOrderResponse], err error)

func (*Exchange) ConvertToMultiSigUser

func (e *Exchange) ConvertToMultiSigUser(
	ctx context.Context,
	authorizedUsers []string,
	threshold int,
) (*MultiSigConversionResponse, error)

ConvertToMultiSigUser converts account to multi-signature user

func (*Exchange) CreateSubAccount

func (e *Exchange) CreateSubAccount(
	ctx context.Context,
	name string,
) (*CreateSubAccountResponse, error)

CreateSubAccount creates a new sub-account

func (*Exchange) CreateVault

func (e *Exchange) CreateVault(
	ctx context.Context,
	name string,
	description string,
	initialUsd int,
) (*CreateVaultResponse, error)

CreateVault creates a new vault

func (*Exchange) Info

func (e *Exchange) Info() *Info

func (*Exchange) MarketClose

func (e *Exchange) MarketClose(
	ctx context.Context,
	coin string,
	sz *float64,
	px *float64,
	slippage float64,
	cloid *string,
	builder *BuilderInfo,
) (OrderStatus, error)

MarketClose closes a position

func (*Exchange) MarketOpen

func (e *Exchange) MarketOpen(
	ctx context.Context,
	name string,
	isBuy bool,
	sz float64,
	px *float64,
	slippage float64,
	cloid *string,
	builder *BuilderInfo,
) (res OrderStatus, err error)

MarketOpen opens a market position

func (*Exchange) ModifyOrder

func (e *Exchange) ModifyOrder(
	ctx context.Context,
	req ModifyOrderRequest,
) (result OrderStatus, err error)

ModifyOrder modifies an existing order

func (*Exchange) MultiSig

func (e *Exchange) MultiSig(
	ctx context.Context,
	action map[string]any,
	signers []string,
	signatures []string,
) (*MultiSigResponse, error)

func (*Exchange) Order

func (e *Exchange) Order(
	ctx context.Context,
	req CreateOrderRequest,
	builder *BuilderInfo,
) (result OrderStatus, err error)

func (*Exchange) PerpDeployHaltTrading

func (e *Exchange) PerpDeployHaltTrading(
	ctx context.Context,
	coin string,
	isHalted bool,
) (*PerpDeployResponse, error)

PerpHaltTrading halts or unhalts trading for a builder-deployed DEX

func (*Exchange) PerpDeployRegisterAsset

func (e *Exchange) PerpDeployRegisterAsset(
	ctx context.Context,
	dex string,
	maxGas *int,
	assetRequest AssetRequest,
	schema *PerpDexSchemaInput,
) (*PerpDeployResponse, error)

PerpDeployRegisterAsset registers a new perpetual asset on a builder-deployed DEX. Provide schema to also initialize a new dex alongside the asset registration.

func (*Exchange) PerpDeployRegisterAsset2

func (e *Exchange) PerpDeployRegisterAsset2(
	ctx context.Context,
	dex string,
	maxGas *int,
	assetRequest AssetRequest2,
	schema *PerpDexSchemaInput,
) (*PerpDeployResponse, error)

PerpDeployRegisterAsset2 registers a new perpetual asset on a builder-deployed DEX using marginMode instead of onlyIsolated. Provide schema to also initialize a new dex.

func (*Exchange) PerpDeploySetOracle

func (e *Exchange) PerpDeploySetOracle(
	ctx context.Context,
	dex string,
	oraclePxs map[string]string,
	allMarkPxs []map[string]string,
	externalPerpPxs map[string]string,
) (*PerpDeployResponse, error)

PerpDeploySetOracle sets oracle prices for a builder-deployed DEX This matches the Python SDK's perp_deploy_set_oracle method oraclePxs: map of coin to oracle price string allMarkPxs: list of maps, each map contains coin to mark price string externalPerpPxs: map of coin to external perp price string

func (*Exchange) PerpDex

func (e *Exchange) PerpDex() string

PerpDex returns the configured builder perp dex name (e.g. "flx"), or empty string for default dex.

func (*Exchange) PerpDexClassTransfer

func (e *Exchange) PerpDexClassTransfer(
	ctx context.Context,
	dex, token string,
	amount float64,
	toPerp bool,
) (*TransferResponse, error)

PerpDexClassTransfer transfers tokens between perp dex classes

func (*Exchange) Reserve

func (e *Exchange) Reserve(ctx context.Context, weight int) (*ReserveRequestWeightResponse, error)

Reserve reserves request weight capacity on the exchange. Each weight unit costs 0.0005 USDC from Perps balance. This increases address-based rate limits without requiring trading volume.

func (*Exchange) ScheduleCancel

func (e *Exchange) ScheduleCancel(
	ctx context.Context,
	scheduleTime *int64,
) (*ScheduleCancelResponse, error)

ScheduleCancel schedules cancellation of all open orders

func (*Exchange) SendToEVMWithData

func (e *Exchange) SendToEVMWithData(
	ctx context.Context,
	signatureChainID string,
	token string,
	amount string,
	sourceDex string,
	destinationRecipient string,
	addressEncoding string,
	destinationChainID int64,
	gasLimit int64,
	data string,
) (*TransferResponse, error)

func (*Exchange) SendToEVMWithDataWithSignature

func (e *Exchange) SendToEVMWithDataWithSignature(
	ctx context.Context,
	signatureChainID string,
	token string,
	amount string,
	sourceDex string,
	destinationRecipient string,
	addressEncoding string,
	destinationChainID int64,
	gasLimit int64,
	data string,
	signature string,
	nonce int64,
) ([]byte, error)

func (*Exchange) SetAccountAbstraction

func (e *Exchange) SetAccountAbstraction(
	ctx context.Context,
	user string,
	abstraction string,
) (*SetAccountAbstractionResponse, error)

func (*Exchange) SetExpiresAfter

func (e *Exchange) SetExpiresAfter(expiresAfter *int64)

SetExpiresAfter sets the expiration time for actions If expiresAfter is nil, actions will not have an expiration time If expiresAfter is set, actions will include this expiration nonce

func (*Exchange) SetLastNonce

func (e *Exchange) SetLastNonce(n int64)

SetLastNonce allows for resuming from a persisted nonce, e.g. the nonce was stored before a restart Only useful if a lot of increments happen for unique nonces. Most users do not need this.

func (*Exchange) SetReferrer

func (e *Exchange) SetReferrer(ctx context.Context, code string) (*SetReferrerResponse, error)

SetReferrer sets a referral code

func (*Exchange) SlippagePrice

func (e *Exchange) SlippagePrice(
	ctx context.Context,
	name string,
	isBuy bool,
	slippage float64,
	px *float64,
) (float64, error)

SlippagePrice calculates the slippage price for market orders

func (*Exchange) SpotDeployEnableFreezePrivilege

func (e *Exchange) SpotDeployEnableFreezePrivilege(
	ctx context.Context,
) (*SpotDeployResponse, error)

SpotDeployEnableFreezePrivilege enables freeze privilege for spot deployer

func (*Exchange) SpotDeployFreezeUser

func (e *Exchange) SpotDeployFreezeUser(
	ctx context.Context,
	userAddress string,
) (*SpotDeployResponse, error)

SpotDeployFreezeUser freezes a user in spot trading

func (*Exchange) SpotDeployGenesis

func (e *Exchange) SpotDeployGenesis(
	ctx context.Context,
	deployer string,
	dexName string,
) (*SpotDeployResponse, error)

SpotDeployGenesis initializes spot genesis

func (*Exchange) SpotDeployRegisterHyperliquidity

func (e *Exchange) SpotDeployRegisterHyperliquidity(
	ctx context.Context,
	name string,
	tokens []string,
) (*SpotDeployResponse, error)

SpotDeployRegisterHyperliquidity registers hyperliquidity spot

func (*Exchange) SpotDeployRegisterSpot

func (e *Exchange) SpotDeployRegisterSpot(
	ctx context.Context,
	baseToken string,
	quoteToken string,
) (*SpotDeployResponse, error)

SpotDeployRegisterSpot registers spot market

func (*Exchange) SpotDeployRegisterToken

func (e *Exchange) SpotDeployRegisterToken(
	ctx context.Context,
	tokenName string,
	szDecimals int,
	weiDecimals int,
	maxGas int,
	fullName string,
) (*SpotDeployResponse, error)

SpotDeployRegisterToken registers a new spot token

func (*Exchange) SpotDeployRevokeFreezePrivilege

func (e *Exchange) SpotDeployRevokeFreezePrivilege(
	ctx context.Context,
) (*SpotDeployResponse, error)

SpotDeployRevokeFreezePrivilege revokes freeze privilege for spot deployer

func (*Exchange) SpotDeploySetDeployerTradingFeeShare

func (e *Exchange) SpotDeploySetDeployerTradingFeeShare(
	ctx context.Context,
	feeShare float64,
) (*SpotDeployResponse, error)

SpotDeploySetDeployerTradingFeeShare sets deployer trading fee share

func (*Exchange) SpotDeployUserGenesis

func (e *Exchange) SpotDeployUserGenesis(
	ctx context.Context,
	balances map[string]float64,
) (*SpotDeployResponse, error)

SpotDeployUserGenesis initializes user genesis for spot trading

func (*Exchange) SpotTransfer

func (e *Exchange) SpotTransfer(
	ctx context.Context,
	amount float64,
	destination, token string,
) (*TransferResponse, error)

SpotTransfer transfers spot tokens to another address

func (*Exchange) SubAccountSpotTransfer

func (e *Exchange) SubAccountSpotTransfer(
	ctx context.Context,
	subAccountUser string,
	isDeposit bool,
	token string,
	amount float64,
) (*TransferResponse, error)

SubAccountSpotTransfer transfers spot tokens to/from sub-account

func (*Exchange) SubAccountTransfer

func (e *Exchange) SubAccountTransfer(
	ctx context.Context,
	subAccountUser string,
	isDeposit bool,
	usd int,
) (*TransferResponse, error)

SubAccountTransfer transfers funds to/from sub-account

func (*Exchange) TokenDelegate

func (e *Exchange) TokenDelegate(
	ctx context.Context,
	validator string,
	wei int,
	isUndelegate bool,
) (*TransferResponse, error)

TokenDelegate delegates tokens for staking

func (*Exchange) UpdateAccountAbstractionWithSignature

func (e *Exchange) UpdateAccountAbstractionWithSignature(
	ctx context.Context,
	user string,
	abstraction string,
	signature string,
	nonce int64,
) (*SetAccountAbstractionResponse, error)

func (*Exchange) UpdateIsolatedMargin

func (e *Exchange) UpdateIsolatedMargin(
	ctx context.Context,
	amount float64,
	name string,
) (*UserState, error)

func (*Exchange) UpdateLeverage

func (e *Exchange) UpdateLeverage(
	ctx context.Context,
	leverage int,
	name string,
	isCross bool,
) (*UserState, error)

func (*Exchange) UsdClassTransfer

func (e *Exchange) UsdClassTransfer(
	ctx context.Context,
	amount float64,
	toPerp bool,
) (*TransferResponse, error)

UsdClassTransfer transfers between USD classes

func (*Exchange) UsdTransfer

func (e *Exchange) UsdTransfer(
	ctx context.Context,
	amount float64,
	destination string,
) (*TransferResponse, error)

UsdTransfer transfers USD to another address

func (*Exchange) UseBigBlocks

func (e *Exchange) UseBigBlocks(ctx context.Context, enable bool) (*ApprovalResponse, error)

UseBigBlocks enables or disables big blocks

func (*Exchange) VaultDistribute

func (e *Exchange) VaultDistribute(
	ctx context.Context,
	vaultAddress string,
	usd int,
) (*TransferResponse, error)

func (*Exchange) VaultModify

func (e *Exchange) VaultModify(
	ctx context.Context,
	vaultAddress string,
	allowDeposits bool,
	alwaysCloseOnWithdraw bool,
) (*TransferResponse, error)

func (*Exchange) VaultUsdTransfer

func (e *Exchange) VaultUsdTransfer(
	ctx context.Context,
	vaultAddress string,
	isDeposit bool,
	usd int,
) (*TransferResponse, error)

VaultUsdTransfer transfers to/from vault

func (*Exchange) WithdrawFromBridge

func (e *Exchange) WithdrawFromBridge(
	ctx context.Context,
	amount float64,
	destination string,
) (*TransferResponse, error)

WithdrawFromBridge withdraws tokens from bridge

type ExchangeOpt

type ExchangeOpt = Opt[Exchange]

func ExchangeOptClientOptions

func ExchangeOptClientOptions(opts ...ClientOpt) ExchangeOpt

ExchangeOptClientOptions allows passing of ClientOpt to Client

func ExchangeOptDebugMode

func ExchangeOptDebugMode() ExchangeOpt

func ExchangeOptInfoOptions

func ExchangeOptInfoOptions(opts ...InfoOpt) ExchangeOpt

ExchangeOptInfoOptions allows passing of InfoOpt to Info

func ExchangeOptPerpDex

func ExchangeOptPerpDex(dex string) ExchangeOpt

type FeeSchedule

type FeeSchedule struct {
	Add              string `json:"add"`
	Cross            string `json:"cross"`
	ReferralDiscount string `json:"referralDiscount"`
	Tiers            Tiers  `json:"tiers"`
}

func (FeeSchedule) MarshalEasyJSON

func (v FeeSchedule) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (FeeSchedule) MarshalJSON

func (v FeeSchedule) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*FeeSchedule) UnmarshalEasyJSON

func (v *FeeSchedule) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*FeeSchedule) UnmarshalJSON

func (v *FeeSchedule) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type Fill

type Fill struct {
	ClosedPnl     string `json:"closedPnl"`
	Coin          string `json:"coin"`
	Crossed       bool   `json:"crossed"`
	Dir           string `json:"dir"`
	Hash          string `json:"hash"`
	Oid           int64  `json:"oid"`
	Price         string `json:"px"`
	Side          string `json:"side"`
	StartPosition string `json:"startPosition"`
	Size          string `json:"sz"`
	Time          int64  `json:"time"`
	Fee           string `json:"fee"`
	FeeToken      string `json:"feeToken"`
	BuilderFee    string `json:"builderFee,omitempty"`
	Tid           int64  `json:"tid"`
}

func (Fill) MarshalEasyJSON

func (v Fill) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (Fill) MarshalJSON

func (v Fill) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*Fill) UnmarshalEasyJSON

func (v *Fill) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*Fill) UnmarshalJSON

func (v *Fill) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type FillLiquidation

type FillLiquidation struct {
	LiquidatedUser *string `json:"liquidatedUser,omitempty"`
	MarkPx         string  `json:"markPx"`
	Method         string  `json:"method"`
}

func (FillLiquidation) MarshalEasyJSON

func (v FillLiquidation) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (FillLiquidation) MarshalJSON

func (v FillLiquidation) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*FillLiquidation) UnmarshalEasyJSON

func (v *FillLiquidation) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*FillLiquidation) UnmarshalJSON

func (v *FillLiquidation) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type FrontendOpenOrder

type FrontendOpenOrder struct {
	Coin             string    `json:"coin"`
	IsPositionTpSl   bool      `json:"isPositionTpsl"`
	IsTrigger        bool      `json:"isTrigger"`
	LimitPx          float64   `json:"limitPx,string"`
	Oid              int64     `json:"oid"`
	OrderType        string    `json:"orderType"`
	OrigSz           float64   `json:"origSz,string"`
	ReduceOnly       bool      `json:"reduceOnly"`
	Side             OrderSide `json:"side"`
	Sz               float64   `json:"sz,string"`
	Timestamp        int64     `json:"timestamp"`
	TriggerCondition string    `json:"triggerCondition"`
	TriggerPx        float64   `json:"triggerPx,string"`
}

func (FrontendOpenOrder) MarshalEasyJSON

func (v FrontendOpenOrder) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (FrontendOpenOrder) MarshalJSON

func (v FrontendOpenOrder) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*FrontendOpenOrder) UnmarshalEasyJSON

func (v *FrontendOpenOrder) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*FrontendOpenOrder) UnmarshalJSON

func (v *FrontendOpenOrder) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type FundingHistory

type FundingHistory struct {
	Coin        string `json:"coin"`
	FundingRate string `json:"fundingRate"`
	Premium     string `json:"premium"`
	Time        int64  `json:"time"`
}

func (FundingHistory) MarshalEasyJSON

func (v FundingHistory) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (FundingHistory) MarshalJSON

func (v FundingHistory) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*FundingHistory) UnmarshalEasyJSON

func (v *FundingHistory) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*FundingHistory) UnmarshalJSON

func (v *FundingHistory) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type Grouping

type Grouping string
const (
	GroupingNA           Grouping = "na"
	GroupingNormalTpsl   Grouping = "normalTpsl"
	GroupingPositionTpls Grouping = "positionTpsl"
)

type HaltTrading

type HaltTrading struct {
	Coin     string `json:"coin"     msgpack:"coin"`
	IsHalted bool   `json:"isHalted" msgpack:"isHalted"`
}

func (HaltTrading) MarshalEasyJSON

func (v HaltTrading) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (HaltTrading) MarshalJSON

func (v HaltTrading) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*HaltTrading) UnmarshalEasyJSON

func (v *HaltTrading) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*HaltTrading) UnmarshalJSON

func (v *HaltTrading) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type Handler

type Handler[T subscriptable] func(wsMessage) (T, error)

type Info

type Info struct {
	// contains filtered or unexported fields
}

func NewInfo

func NewInfo(
	ctx context.Context,
	baseURL string,
	skipWS bool,
	meta *Meta,
	spotMeta *SpotMeta,
	perpDexs *MixedArray,
	opts ...InfoOpt,
) *Info

func (*Info) AllMids

func (i *Info) AllMids(ctx context.Context, dex ...string) (map[string]string, error)

AllMids retrieves mids for all coins If dex is empty string, returns mids for the first perp dex (default) Note: Spot mids are only included with the first perp dex

func (*Info) CandlesSnapshot

func (i *Info) CandlesSnapshot(
	ctx context.Context,
	name, interval string,
	startTime, endTime int64,
) ([]Candle, error)

func (*Info) CoinToAsset

func (i *Info) CoinToAsset(coin string) (int, bool)

func (*Info) FrontendOpenOrders

func (i *Info) FrontendOpenOrders(
	ctx context.Context,
	address string,
	dex ...string,
) ([]FrontendOpenOrder, error)

FrontendOpenOrders retrieves user's open orders with frontend info If dex is empty string, returns orders for the first perp dex (default) Note: Spot open orders are only included with the first perp dex

func (*Info) FundingHistory

func (i *Info) FundingHistory(
	ctx context.Context,
	name string,
	startTime int64,
	endTime *int64,
) ([]FundingHistory, error)

func (*Info) HistoricalOrders

func (i *Info) HistoricalOrders(ctx context.Context, address string) ([]OrderQueryResponse, error)

func (*Info) L2Snapshot

func (i *Info) L2Snapshot(ctx context.Context, name string) (*L2Book, error)

func (*Info) Meta

func (i *Info) Meta(ctx context.Context, dex ...string) (*Meta, error)

Meta retrieves perpetuals metadata If dex is empty string, returns metadata for the first perp dex (default)

func (*Info) MetaAndAssetCtxs

func (i *Info) MetaAndAssetCtxs(
	ctx context.Context,
	params MetaAndAssetCtxsParams,
) (*MetaAndAssetCtxs, error)

MetaAndAssetCtxs retrieves perpetuals metadata and asset contexts If params.Dex is nil or empty string, returns data for the first perp dex (default)

func (*Info) OpenOrders

func (i *Info) OpenOrders(ctx context.Context, address string, dex ...string) ([]OpenOrder, error)

OpenOrders retrieves user's open orders If dex is empty string, returns orders for the first perp dex (default) Note: Spot open orders are only included with the first perp dex

func (*Info) PerpDeployAuctionStatus

func (i *Info) PerpDeployAuctionStatus(ctx context.Context) (*PerpDeployAuctionStatus, error)

PerpDeployAuctionStatus retrieves information about the Perp Deploy Auction

func (*Info) PerpDexLimits

func (i *Info) PerpDexLimits(ctx context.Context, dex string) (*PerpDexLimits, error)

PerpDexLimits retrieves builder-deployed perp market limits dex must be a non-empty string (the empty string is not allowed for this endpoint)

func (*Info) PerpDexStatus

func (i *Info) PerpDexStatus(ctx context.Context, dex string) (*PerpDexStatus, error)

PerpDexStatus retrieves perp market status If dex is empty string, returns status for the first perp dex (default)

func (*Info) PerpDexs

func (i *Info) PerpDexs(ctx context.Context) (MixedArray, error)

PerpDexs returns the list of available perpetual dexes Returns an array where each element can be nil (for the default dex) or a PerpDex object The first element is always null (representing the default dex)

func (*Info) QueryOrderByCloid

func (i *Info) QueryOrderByCloid(
	ctx context.Context,
	user, cloid string,
) (*OrderQueryResult, error)

func (*Info) QueryOrderByOid

func (i *Info) QueryOrderByOid(
	ctx context.Context,
	user string,
	oid int64,
) (*OrderQueryResult, error)

func (*Info) QueryReferralState

func (i *Info) QueryReferralState(ctx context.Context, user string) (*ReferralState, error)

func (*Info) QuerySubAccounts

func (i *Info) QuerySubAccounts(ctx context.Context, user string) ([]SubAccount, error)

func (*Info) QueryUserToMultiSigSigners

func (i *Info) QueryUserToMultiSigSigners(
	ctx context.Context,
	multiSigUser string,
) ([]MultiSigSigner, error)

func (*Info) SpotMeta

func (i *Info) SpotMeta(ctx context.Context) (*SpotMeta, error)

func (*Info) SpotMetaAndAssetCtxs

func (i *Info) SpotMetaAndAssetCtxs(ctx context.Context) (*SpotMetaAndAssetCtxs, error)

func (*Info) SpotUserState

func (i *Info) SpotUserState(ctx context.Context, address string) (*SpotUserState, error)

func (*Info) TokenDetails

func (i *Info) TokenDetails(ctx context.Context, tokenId string) (*TokenDetail, error)

func (*Info) UserActiveAssetData

func (i *Info) UserActiveAssetData(
	ctx context.Context,
	address string,
	coin string,
) (*UserActiveAssetData, error)

func (*Info) UserFees

func (i *Info) UserFees(ctx context.Context, address string) (*UserFees, error)

func (*Info) UserFills

func (i *Info) UserFills(ctx context.Context, params UserFillsParams) ([]Fill, error)

func (*Info) UserFillsByTime

func (i *Info) UserFillsByTime(
	ctx context.Context,
	address string,
	startTime int64,
	endTime *int64,
	aggregateByTime *bool,
) ([]Fill, error)

func (*Info) UserFundingHistory

func (i *Info) UserFundingHistory(
	ctx context.Context,
	user string,
	startTime int64,
	endTime *int64,
) ([]UserFundingHistory, error)

func (*Info) UserNonFundingLedgerUpdates

func (i *Info) UserNonFundingLedgerUpdates(
	ctx context.Context,
	user string,
	startTime int64,
	endTime *int64,
) ([]UserNonFundingLedgerUpdates, error)

func (*Info) UserStakingDelegations

func (i *Info) UserStakingDelegations(
	ctx context.Context,
	address string,
) ([]StakingDelegation, error)

func (*Info) UserStakingRewards

func (i *Info) UserStakingRewards(ctx context.Context, address string) ([]StakingReward, error)

func (*Info) UserStakingSummary

func (i *Info) UserStakingSummary(ctx context.Context, address string) (*StakingSummary, error)

func (*Info) UserState

func (i *Info) UserState(ctx context.Context, address string, dex ...string) (*UserState, error)

UserState retrieves user's perpetuals account summary If dex is empty string, returns state for the first perp dex (default)

type InfoOpt

type InfoOpt = Opt[Info]

func InfoOptClientOptions

func InfoOptClientOptions(opts ...ClientOpt) InfoOpt

InfoOptClientOptions allows passing of ClientOpt to Info

func InfoOptDebugMode

func InfoOptDebugMode() InfoOpt

func InfoOptPerpDexName

func InfoOptPerpDexName(dex string) InfoOpt

type L2Book

type L2Book struct {
	Coin   string    `json:"coin"`
	Levels [][]Level `json:"levels"`
	Time   int64     `json:"time"`
}

func (L2Book) Key

func (c L2Book) Key() string

func (L2Book) MarshalEasyJSON

func (v L2Book) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (L2Book) MarshalJSON

func (v L2Book) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*L2Book) UnmarshalEasyJSON

func (v *L2Book) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*L2Book) UnmarshalJSON

func (v *L2Book) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type L2BookSubscriptionParams

type L2BookSubscriptionParams struct {
	Coin     string
	NSigFigs int
	Mantissa int
}

type LeadingVault

type LeadingVault struct {
	Address string `json:"address"`
	Name    string `json:"name"`
}

func (LeadingVault) MarshalEasyJSON

func (v LeadingVault) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (LeadingVault) MarshalJSON

func (v LeadingVault) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*LeadingVault) UnmarshalEasyJSON

func (v *LeadingVault) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*LeadingVault) UnmarshalJSON

func (v *LeadingVault) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type LedgerDelta

type LedgerDelta struct {
	Type        string `json:"type"`
	USDC        string `json:"usdc"`
	User        string `json:"user"`
	Destination string `json:"destination"`
	Fee         string `json:"fee"`
}

func (LedgerDelta) MarshalEasyJSON

func (v LedgerDelta) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (LedgerDelta) MarshalJSON

func (v LedgerDelta) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*LedgerDelta) UnmarshalEasyJSON

func (v *LedgerDelta) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*LedgerDelta) UnmarshalJSON

func (v *LedgerDelta) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type Level

type Level struct {
	N  int     `json:"n"`
	Px float64 `json:"px,string"`
	Sz float64 `json:"sz,string"`
}

func (Level) MarshalEasyJSON

func (v Level) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (Level) MarshalJSON

func (v Level) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*Level) UnmarshalEasyJSON

func (v *Level) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*Level) UnmarshalJSON

func (v *Level) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type Leverage

type Leverage struct {
	Type   string  `json:"type"`
	Value  int     `json:"value"`
	RawUsd *string `json:"rawUsd,omitempty"`
}

func (Leverage) MarshalEasyJSON

func (v Leverage) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (Leverage) MarshalJSON

func (v Leverage) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*Leverage) UnmarshalEasyJSON

func (v *Leverage) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*Leverage) UnmarshalJSON

func (v *Leverage) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type LimitOrderType

type LimitOrderType struct {
	Tif Tif `json:"tif"` // TifAlo, TifIoc, TifGtc
}

func (LimitOrderType) MarshalEasyJSON

func (v LimitOrderType) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (LimitOrderType) MarshalJSON

func (v LimitOrderType) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*LimitOrderType) UnmarshalEasyJSON

func (v *LimitOrderType) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*LimitOrderType) UnmarshalJSON

func (v *LimitOrderType) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type MMTier

type MMTier struct {
	Add                 string `json:"add"`
	MakerFractionCutoff string `json:"makerFractionCutoff"`
}

func (MMTier) MarshalEasyJSON

func (v MMTier) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (MMTier) MarshalJSON

func (v MMTier) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*MMTier) UnmarshalEasyJSON

func (v *MMTier) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*MMTier) UnmarshalJSON

func (v *MMTier) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type MarginSummary

type MarginSummary struct {
	AccountValue    string `json:"accountValue"`
	TotalMarginUsed string `json:"totalMarginUsed"`
	TotalNtlPos     string `json:"totalNtlPos"`
	TotalRawUsd     string `json:"totalRawUsd"`
}

func (MarginSummary) MarshalEasyJSON

func (v MarginSummary) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (MarginSummary) MarshalJSON

func (v MarginSummary) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*MarginSummary) UnmarshalEasyJSON

func (v *MarginSummary) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*MarginSummary) UnmarshalJSON

func (v *MarginSummary) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type MarginTable

type MarginTable struct {
	ID          int
	Description string       `json:"description"`
	MarginTiers []MarginTier `json:"marginTiers"`
}

func (MarginTable) MarshalEasyJSON

func (v MarginTable) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (MarginTable) MarshalJSON

func (v MarginTable) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*MarginTable) UnmarshalEasyJSON

func (v *MarginTable) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*MarginTable) UnmarshalJSON

func (v *MarginTable) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type MarginTier

type MarginTier struct {
	LowerBound  string `json:"lowerBound"`
	MaxLeverage int    `json:"maxLeverage"`
}

func (MarginTier) MarshalEasyJSON

func (v MarginTier) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (MarginTier) MarshalJSON

func (v MarginTier) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*MarginTier) UnmarshalEasyJSON

func (v *MarginTier) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*MarginTier) UnmarshalJSON

func (v *MarginTier) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type Meta

type Meta struct {
	Universe        []AssetInfo   `json:"universe"`
	MarginTables    []MarginTable `json:"marginTables"`
	CollateralToken int           `json:"collateralToken"`
}

func (Meta) MarshalEasyJSON

func (v Meta) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (Meta) MarshalJSON

func (v Meta) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*Meta) UnmarshalEasyJSON

func (v *Meta) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*Meta) UnmarshalJSON

func (v *Meta) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type MetaAndAssetCtxs

type MetaAndAssetCtxs struct {
	Meta
	Ctxs []AssetCtx
}

This type has no JSON annotation because it cannot be directly unmarshalled from the response

func (MetaAndAssetCtxs) MarshalEasyJSON

func (v MetaAndAssetCtxs) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (MetaAndAssetCtxs) MarshalJSON

func (v MetaAndAssetCtxs) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*MetaAndAssetCtxs) UnmarshalEasyJSON

func (v *MetaAndAssetCtxs) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*MetaAndAssetCtxs) UnmarshalJSON

func (v *MetaAndAssetCtxs) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type MetaAndAssetCtxsParams

type MetaAndAssetCtxsParams struct {
	// Dex specifies the DEX to query. If nil or empty string, queries the default (first) perp dex.
	Dex *string
}

MetaAndAssetCtxsParams contains optional parameters for MetaAndAssetCtxs request

func (MetaAndAssetCtxsParams) MarshalEasyJSON

func (v MetaAndAssetCtxsParams) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (MetaAndAssetCtxsParams) MarshalJSON

func (v MetaAndAssetCtxsParams) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*MetaAndAssetCtxsParams) UnmarshalEasyJSON

func (v *MetaAndAssetCtxsParams) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*MetaAndAssetCtxsParams) UnmarshalJSON

func (v *MetaAndAssetCtxsParams) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type MixedArray

type MixedArray []MixedValue

func (MixedArray) FirstError

func (ma MixedArray) FirstError() error

func (*MixedArray) UnmarshalJSON

func (ma *MixedArray) UnmarshalJSON(data []byte) error

type MixedValue

type MixedValue json.RawMessage

func (*MixedValue) Array

func (mv *MixedValue) Array() ([]json.RawMessage, bool)

func (MixedValue) MarshalJSON

func (mv MixedValue) MarshalJSON() ([]byte, error)

func (*MixedValue) Object

func (mv *MixedValue) Object() (map[string]any, bool)

func (*MixedValue) Parse

func (mv *MixedValue) Parse(v any) error

func (*MixedValue) String

func (mv *MixedValue) String() (string, bool)

func (*MixedValue) Type

func (mv *MixedValue) Type() string

func (*MixedValue) UnmarshalJSON

func (mv *MixedValue) UnmarshalJSON(data []byte) error

type ModifyAction

type ModifyAction struct {
	Type  string    `json:"type,omitempty" msgpack:"type,omitempty"`
	Dex   string    `json:"dex,omitempty"  msgpack:"dex,omitempty"`
	Oid   any       `json:"oid"            msgpack:"oid"`
	Order OrderWire `json:"order"          msgpack:"order"`
}

ModifyAction represents a single order modification

func (ModifyAction) MarshalEasyJSON

func (v ModifyAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (ModifyAction) MarshalJSON

func (v ModifyAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*ModifyAction) UnmarshalEasyJSON

func (v *ModifyAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*ModifyAction) UnmarshalJSON

func (v *ModifyAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type ModifyOrderRequest

type ModifyOrderRequest struct {
	Oid   *int64
	Cloid *Cloid
	Order CreateOrderRequest
}

ModifyOrderRequest identifies an order by either exchange-provided Oid or client-provided Cloid. Exactly one of Oid or Cloid must be non-nil.

type ModifyResponse

type ModifyResponse struct {
	Status string        `json:"status"`
	Data   []OrderStatus `json:"data,omitempty"`
	Error  string        `json:"error,omitempty"`
}

func (ModifyResponse) MarshalEasyJSON

func (v ModifyResponse) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (ModifyResponse) MarshalJSON

func (v ModifyResponse) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*ModifyResponse) UnmarshalEasyJSON

func (v *ModifyResponse) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*ModifyResponse) UnmarshalJSON

func (v *ModifyResponse) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type MultiSigAction

type MultiSigAction struct {
	Type       string         `json:"type"       msgpack:"type"`
	Action     map[string]any `json:"action"     msgpack:"action"`
	Signers    []string       `json:"signers"    msgpack:"signers"`
	Signatures []string       `json:"signatures" msgpack:"signatures"`
}

MultiSigAction represents multi-signature action

func (MultiSigAction) MarshalEasyJSON

func (v MultiSigAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (MultiSigAction) MarshalJSON

func (v MultiSigAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*MultiSigAction) UnmarshalEasyJSON

func (v *MultiSigAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*MultiSigAction) UnmarshalJSON

func (v *MultiSigAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type MultiSigConversionResponse

type MultiSigConversionResponse struct {
	Status string `json:"status"`
	TxHash string `json:"txHash,omitempty"`
	Error  string `json:"error,omitempty"`
}

func (MultiSigConversionResponse) MarshalEasyJSON

func (v MultiSigConversionResponse) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (MultiSigConversionResponse) MarshalJSON

func (v MultiSigConversionResponse) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*MultiSigConversionResponse) UnmarshalEasyJSON

func (v *MultiSigConversionResponse) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*MultiSigConversionResponse) UnmarshalJSON

func (v *MultiSigConversionResponse) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type MultiSigResponse

type MultiSigResponse struct {
	Status string `json:"status"`
	TxHash string `json:"txHash,omitempty"`
	Error  string `json:"error,omitempty"`
}

func (MultiSigResponse) MarshalEasyJSON

func (v MultiSigResponse) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (MultiSigResponse) MarshalJSON

func (v MultiSigResponse) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*MultiSigResponse) UnmarshalEasyJSON

func (v *MultiSigResponse) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*MultiSigResponse) UnmarshalJSON

func (v *MultiSigResponse) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type MultiSigSigner

type MultiSigSigner struct {
	User      string `json:"user"`
	Threshold int    `json:"threshold"`
}

func (MultiSigSigner) MarshalEasyJSON

func (v MultiSigSigner) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (MultiSigSigner) MarshalJSON

func (v MultiSigSigner) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*MultiSigSigner) UnmarshalEasyJSON

func (v *MultiSigSigner) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*MultiSigSigner) UnmarshalJSON

func (v *MultiSigSigner) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type Notification

type Notification struct {
	Notification string `json:"notification"`
}

func (Notification) Key

func (n Notification) Key() string

func (Notification) MarshalEasyJSON

func (v Notification) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (Notification) MarshalJSON

func (v Notification) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*Notification) UnmarshalEasyJSON

func (v *Notification) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*Notification) UnmarshalJSON

func (v *Notification) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type NotificationSubscriptionParams

type NotificationSubscriptionParams struct {
	User string
}

type OpenOrder

type OpenOrder struct {
	Coin      string  `json:"coin"`
	LimitPx   float64 `json:"limitPx,string"`
	Oid       int64   `json:"oid"`
	Side      string  `json:"side"`
	Size      float64 `json:"sz,string"`
	Timestamp int64   `json:"timestamp"`
}

func (OpenOrder) MarshalEasyJSON

func (v OpenOrder) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (OpenOrder) MarshalJSON

func (v OpenOrder) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*OpenOrder) UnmarshalEasyJSON

func (v *OpenOrder) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*OpenOrder) UnmarshalJSON

func (v *OpenOrder) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type OpenOrders

type OpenOrders struct {
	Dex    string         `json:"dex"`
	User   string         `json:"user"`
	Orders []WsBasicOrder `json:"orders"`
}

func (OpenOrders) Key

func (o OpenOrders) Key() string

func (OpenOrders) MarshalEasyJSON

func (v OpenOrders) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (OpenOrders) MarshalJSON

func (v OpenOrders) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*OpenOrders) UnmarshalEasyJSON

func (v *OpenOrders) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*OpenOrders) UnmarshalJSON

func (v *OpenOrders) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type OpenOrdersSubscriptionParams

type OpenOrdersSubscriptionParams struct {
	User string
	Dex  *string
}

type Opt

type Opt[T any] func(*T)

func (Opt[T]) Apply

func (o Opt[T]) Apply(opt *T)

type OrderAction

type OrderAction struct {
	Type     string       `json:"type"              msgpack:"type"`
	Dex      string       `json:"dex,omitempty"     msgpack:"dex,omitempty"`
	Orders   []OrderWire  `json:"orders"            msgpack:"orders"`
	Grouping string       `json:"grouping"          msgpack:"grouping"`
	Builder  *BuilderInfo `json:"builder,omitempty" msgpack:"builder,omitempty"`
}

OrderAction represents the order action with deterministic field ordering CRITICAL: Field order MUST match Python SDK insertion order for msgpack hash consistency

func (OrderAction) MarshalEasyJSON

func (v OrderAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (OrderAction) MarshalJSON

func (v OrderAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*OrderAction) UnmarshalEasyJSON

func (v *OrderAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*OrderAction) UnmarshalJSON

func (v *OrderAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type OrderFillsSubscriptionParams

type OrderFillsSubscriptionParams struct {
	User string
}

type OrderQueryResponse

type OrderQueryResponse struct {
	Order           QueriedOrder     `json:"order"`
	Status          OrderStatusValue `json:"status"`
	StatusTimestamp int64            `json:"statusTimestamp"`
}

func (OrderQueryResponse) MarshalEasyJSON

func (v OrderQueryResponse) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (OrderQueryResponse) MarshalJSON

func (v OrderQueryResponse) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*OrderQueryResponse) UnmarshalEasyJSON

func (v *OrderQueryResponse) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*OrderQueryResponse) UnmarshalJSON

func (v *OrderQueryResponse) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type OrderQueryResult

type OrderQueryResult struct {
	Status OrderQueryStatus   `json:"status"`
	Order  OrderQueryResponse `json:"order,omitempty"`
}

func (OrderQueryResult) MarshalEasyJSON

func (v OrderQueryResult) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (OrderQueryResult) MarshalJSON

func (v OrderQueryResult) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*OrderQueryResult) UnmarshalEasyJSON

func (v *OrderQueryResult) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*OrderQueryResult) UnmarshalJSON

func (v *OrderQueryResult) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type OrderQueryStatus

type OrderQueryStatus string
const (
	OrderQueryStatusSuccess OrderQueryStatus = "order"
	OrderQueryStatusError   OrderQueryStatus = "unknownOid"
)

type OrderResponse

type OrderResponse struct {
	Statuses []OrderStatus
}

type OrderSide

type OrderSide string
const (
	OrderSideAsk OrderSide = "A"
	OrderSideBid OrderSide = "B"
)

type OrderStatus

type OrderStatus struct {
	Resting *OrderStatusResting `json:"resting,omitempty"`
	Filled  *OrderStatusFilled  `json:"filled,omitempty"`
	Error   *string             `json:"error,omitempty"`
}

func (*OrderStatus) String

func (s *OrderStatus) String() string

type OrderStatusFilled

type OrderStatusFilled struct {
	TotalSz string `json:"totalSz"`
	AvgPx   string `json:"avgPx"`
	Oid     int    `json:"oid"`
}

type OrderStatusResting

type OrderStatusResting struct {
	Oid      int64   `json:"oid"`
	ClientID *string `json:"cloid"`
	Status   string  `json:"status"`
}

type OrderStatusValue

type OrderStatusValue string
const (
	// Placed successfully
	OrderStatusValueOpen OrderStatusValue = "open"
	// Filled
	OrderStatusValueFilled OrderStatusValue = "filled"
	// Canceled by user
	OrderStatusValueCanceled OrderStatusValue = "canceled"
	// Trigger order triggered
	OrderStatusValueTriggered OrderStatusValue = "triggered"
	// Rejected at time of placement
	OrderStatusValueRejected OrderStatusValue = "rejected"
	// Canceled because insufficient margin to fill
	OrderStatusValueMarginCanceled OrderStatusValue = "marginCanceled"
	// Vaults only. Canceled due to a user's withdrawal from vault
	OrderStatusValueVaultWithdrawalCanceled OrderStatusValue = "vaultWithdrawalCanceled"
	// Canceled due to order being too aggressive when open interest was at cap
	OrderStatusValueOpenInterestCapCanceled OrderStatusValue = "openInterestCapCanceled"
	// Canceled due to self-trade prevention
	OrderStatusValueSelfTradeCanceled OrderStatusValue = "selfTradeCanceled"
	// Canceled reduced-only order that does not reduce position
	OrderStatusValueReduceOnlyCanceled OrderStatusValue = "reduceOnlyCanceled"
	// TP/SL only. Canceled due to sibling ordering being filled
	OrderStatusValueSiblingFilledCanceled OrderStatusValue = "siblingFilledCanceled"
	// Canceled due to asset delisting
	OrderStatusValueDelistedCanceled OrderStatusValue = "delistedCanceled"
	// Canceled due to liquidation
	OrderStatusValueLiquidatedCanceled OrderStatusValue = "liquidatedCanceled"
	// API only. Canceled due to exceeding scheduled cancel deadline (dead man's switch)
	OrderStatusValueScheduledCancel OrderStatusValue = "scheduledCancel"
	// Rejected due to invalid tick price
	OrderStatusValueTickRejected OrderStatusValue = "tickRejected"
	// Rejected due to order notional below minimum
	OrderStatusValueMinTradeNtlRejected OrderStatusValue = "minTradeNtlRejected"
	// Rejected due to insufficient margin
	OrderStatusValuePerpMarginRejected OrderStatusValue = "perpMarginRejected"
	// Rejected due to reduce only
	OrderStatusValueReduceOnlyRejected OrderStatusValue = "reduceOnlyRejected"
	// Rejected due to post-only immediate match
	OrderStatusValueBadAloPxRejected OrderStatusValue = "badAloPxRejected"
	// Rejected due to IOC not able to match
	OrderStatusValueIocCancelRejected OrderStatusValue = "iocCancelRejected"
	// Rejected due to invalid TP/SL price
	OrderStatusValueBadTriggerPxRejected OrderStatusValue = "badTriggerPxRejected"
	// Rejected due to lack of liquidity for market order
	OrderStatusValueMarketOrderNoLiquidityRejected OrderStatusValue = "marketOrderNoLiquidityRejected"
	// Rejected due to open interest cap
	OrderStatusValuePositionIncreaseAtOpenInterestCapRejected OrderStatusValue = "positionIncreaseAtOpenInterestCapRejected"
	// Rejected due to open interest cap
	OrderStatusValuePositionFlipAtOpenInterestCapRejected OrderStatusValue = "positionFlipAtOpenInterestCapRejected"
	// Rejected due to price too aggressive at open interest cap
	OrderStatusValueTooAggressiveAtOpenInterestCapRejected OrderStatusValue = "tooAggressiveAtOpenInterestCapRejected"
	// Rejected due to open interest cap
	OrderStatusValueOpenInterestIncreaseRejected OrderStatusValue = "openInterestIncreaseRejected"
	// Rejected due to insufficient spot balance
	OrderStatusValueInsufficientSpotBalanceRejected OrderStatusValue = "insufficientSpotBalanceRejected"
	// Rejected due to price too far from oracle
	OrderStatusValueOracleRejected OrderStatusValue = "oracleRejected"
	// Rejected due to exceeding margin tier limit at current leverage
	OrderStatusValuePerpMaxPositionRejected OrderStatusValue = "perpMaxPositionRejected"
)

type OrderType

type OrderType struct {
	Limit   *LimitOrderType   `json:"limit,omitempty"`
	Trigger *TriggerOrderType `json:"trigger,omitempty"`
}

func (OrderType) MarshalEasyJSON

func (v OrderType) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (OrderType) MarshalJSON

func (v OrderType) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*OrderType) UnmarshalEasyJSON

func (v *OrderType) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*OrderType) UnmarshalJSON

func (v *OrderType) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type OrderUpdatesSubscriptionParams

type OrderUpdatesSubscriptionParams struct {
	User string
}

type OrderWire

type OrderWire struct {
	Asset      int           `json:"a"           msgpack:"a"`           // 1st
	IsBuy      bool          `json:"b"           msgpack:"b"`           // 2nd
	LimitPx    string        `json:"p"           msgpack:"p"`           // 3rd
	Size       string        `json:"s"           msgpack:"s"`           // 4th
	ReduceOnly bool          `json:"r"           msgpack:"r"`           // 5th
	OrderType  OrderWireType `json:"t"           msgpack:"t"`           // 6th
	Cloid      *string       `json:"c,omitempty" msgpack:"c,omitempty"` // 7th (optional)
}

OrderWire represents the wire format for orders with deterministic field ordering CRITICAL: Field order MUST exactly match Python SDK insertion order: a, b, p, s, r, t, c See hyperliquid-python-sdk/hyperliquid/utils/signing.py:order_request_to_order_wire

func (OrderWire) MarshalEasyJSON

func (v OrderWire) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (OrderWire) MarshalJSON

func (v OrderWire) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*OrderWire) UnmarshalEasyJSON

func (v *OrderWire) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*OrderWire) UnmarshalJSON

func (v *OrderWire) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type OrderWireType

type OrderWireType struct {
	Limit   *OrderWireTypeLimit   `json:"limit,omitempty"   msgpack:"limit,omitempty"`
	Trigger *OrderWireTypeTrigger `json:"trigger,omitempty" msgpack:"trigger,omitempty"`
}

OrderWireType represents the type of order (limit or trigger).

func (OrderWireType) MarshalEasyJSON

func (v OrderWireType) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (OrderWireType) MarshalJSON

func (v OrderWireType) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*OrderWireType) UnmarshalEasyJSON

func (v *OrderWireType) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*OrderWireType) UnmarshalJSON

func (v *OrderWireType) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type OrderWireTypeLimit

type OrderWireTypeLimit struct {
	Tif Tif `json:"tif,string" msgpack:"tif"`
}

OrderWireTypeLimit represents a limit order with time-in-force.

func (OrderWireTypeLimit) MarshalEasyJSON

func (v OrderWireTypeLimit) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (OrderWireTypeLimit) MarshalJSON

func (v OrderWireTypeLimit) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*OrderWireTypeLimit) UnmarshalEasyJSON

func (v *OrderWireTypeLimit) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*OrderWireTypeLimit) UnmarshalJSON

func (v *OrderWireTypeLimit) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type OrderWireTypeTrigger

type OrderWireTypeTrigger struct {
	// CRITICAL: Field order MUST match Python SDK insertion order: isMarket, triggerPx, tpsl
	// See hyperliquid-python-sdk/hyperliquid/utils/signing.py:order_type_to_wire (lines 151-154)
	IsMarket  bool   `json:"isMarket"  msgpack:"isMarket"`  // 1st
	TriggerPx string `json:"triggerPx" msgpack:"triggerPx"` // 2nd - Must be string for msgpack serialization
	Tpsl      Tpsl   `json:"tpsl"      msgpack:"tpsl"`      // 3rd - "tp" or "sl"
}

OrderWireTypeTrigger represents a trigger order (stop-loss/take-profit).

func (OrderWireTypeTrigger) MarshalEasyJSON

func (v OrderWireTypeTrigger) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (OrderWireTypeTrigger) MarshalJSON

func (v OrderWireTypeTrigger) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*OrderWireTypeTrigger) UnmarshalEasyJSON

func (v *OrderWireTypeTrigger) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*OrderWireTypeTrigger) UnmarshalJSON

func (v *OrderWireTypeTrigger) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type PerpDeployAuctionStatus

type PerpDeployAuctionStatus struct {
	StartTimeSeconds int64   `json:"startTimeSeconds"`
	DurationSeconds  int64   `json:"durationSeconds"`
	StartGas         string  `json:"startGas"`
	CurrentGas       string  `json:"currentGas"`
	EndGas           *string `json:"endGas"`
}

PerpDeployAuctionStatus represents the status of a perp deploy auction

func (PerpDeployAuctionStatus) MarshalEasyJSON

func (v PerpDeployAuctionStatus) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (PerpDeployAuctionStatus) MarshalJSON

func (v PerpDeployAuctionStatus) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*PerpDeployAuctionStatus) UnmarshalEasyJSON

func (v *PerpDeployAuctionStatus) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*PerpDeployAuctionStatus) UnmarshalJSON

func (v *PerpDeployAuctionStatus) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type PerpDeployHaltTradingAction

type PerpDeployHaltTradingAction struct {
	Type        string      `json:"type"        msgpack:"type"`
	HaltTrading HaltTrading `json:"haltTrading" msgpack:"haltTrading"`
}

func (PerpDeployHaltTradingAction) MarshalEasyJSON

func (v PerpDeployHaltTradingAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (PerpDeployHaltTradingAction) MarshalJSON

func (v PerpDeployHaltTradingAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*PerpDeployHaltTradingAction) UnmarshalEasyJSON

func (v *PerpDeployHaltTradingAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*PerpDeployHaltTradingAction) UnmarshalJSON

func (v *PerpDeployHaltTradingAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type PerpDeployRegisterAsset2Action

type PerpDeployRegisterAsset2Action struct {
	Type           string         `json:"type"           msgpack:"type"`
	RegisterAsset2 RegisterAsset2 `json:"registerAsset2" msgpack:"registerAsset2"`
}

func (PerpDeployRegisterAsset2Action) MarshalEasyJSON

func (v PerpDeployRegisterAsset2Action) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (PerpDeployRegisterAsset2Action) MarshalJSON

func (v PerpDeployRegisterAsset2Action) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*PerpDeployRegisterAsset2Action) UnmarshalEasyJSON

func (v *PerpDeployRegisterAsset2Action) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*PerpDeployRegisterAsset2Action) UnmarshalJSON

func (v *PerpDeployRegisterAsset2Action) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type PerpDeployRegisterAssetAction

type PerpDeployRegisterAssetAction struct {
	Type          string        `json:"type"          msgpack:"type"`
	RegisterAsset RegisterAsset `json:"registerAsset" msgpack:"registerAsset"`
}

func (PerpDeployRegisterAssetAction) MarshalEasyJSON

func (v PerpDeployRegisterAssetAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (PerpDeployRegisterAssetAction) MarshalJSON

func (v PerpDeployRegisterAssetAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*PerpDeployRegisterAssetAction) UnmarshalEasyJSON

func (v *PerpDeployRegisterAssetAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*PerpDeployRegisterAssetAction) UnmarshalJSON

func (v *PerpDeployRegisterAssetAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type PerpDeployResponse

type PerpDeployResponse struct {
	Status string `json:"status"`
	// Response is either a string or object `{"type": "...", ...}`
	Response json.RawMessage `json:"response,omitempty"`
	Data     struct {
		Statuses []TxStatus `json:"statuses"`
	} `json:"data"`
}

func (PerpDeployResponse) MarshalEasyJSON

func (v PerpDeployResponse) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (PerpDeployResponse) MarshalJSON

func (v PerpDeployResponse) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*PerpDeployResponse) UnmarshalEasyJSON

func (v *PerpDeployResponse) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*PerpDeployResponse) UnmarshalJSON

func (v *PerpDeployResponse) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type PerpDeploySetOracleAction

type PerpDeploySetOracleAction struct {
	Type      string    `json:"type"      msgpack:"type"`
	SetOracle SetOracle `json:"setOracle" msgpack:"setOracle"`
}

func (PerpDeploySetOracleAction) MarshalEasyJSON

func (v PerpDeploySetOracleAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (PerpDeploySetOracleAction) MarshalJSON

func (v PerpDeploySetOracleAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*PerpDeploySetOracleAction) UnmarshalEasyJSON

func (v *PerpDeploySetOracleAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*PerpDeploySetOracleAction) UnmarshalJSON

func (v *PerpDeploySetOracleAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type PerpDex

type PerpDex struct {
	Name                     string     `json:"name"`
	FullName                 string     `json:"fullName"`
	Deployer                 string     `json:"deployer"`
	OracleUpdater            *string    `json:"oracleUpdater"`
	FeeRecipient             *string    `json:"feeRecipient"`
	AssetToStreamingOiCap    [][]string `json:"assetToStreamingOiCap"`    // Array of [coin, cap] tuples
	AssetToFundingMultiplier [][]string `json:"assetToFundingMultiplier"` // Array of [coin, multiplier] tuples
}

PerpDex represents a perpetual DEX

func (PerpDex) MarshalEasyJSON

func (v PerpDex) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (PerpDex) MarshalJSON

func (v PerpDex) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*PerpDex) UnmarshalEasyJSON

func (v *PerpDex) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*PerpDex) UnmarshalJSON

func (v *PerpDex) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type PerpDexClassTransferAction

type PerpDexClassTransferAction struct {
	Type   string  `json:"type"   msgpack:"type"`
	Dex    string  `json:"dex"    msgpack:"dex"`
	Token  string  `json:"token"  msgpack:"token"`
	Amount float64 `json:"amount" msgpack:"amount"`
	ToPerp bool    `json:"toPerp" msgpack:"toPerp"`
}

PerpDexClassTransferAction represents perp dex class transfer

func (PerpDexClassTransferAction) MarshalEasyJSON

func (v PerpDexClassTransferAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (PerpDexClassTransferAction) MarshalJSON

func (v PerpDexClassTransferAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*PerpDexClassTransferAction) UnmarshalEasyJSON

func (v *PerpDexClassTransferAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*PerpDexClassTransferAction) UnmarshalJSON

func (v *PerpDexClassTransferAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type PerpDexLimits

type PerpDexLimits struct {
	TotalOiCap     string     `json:"totalOiCap"`
	OiSzCapPerPerp string     `json:"oiSzCapPerPerp"`
	MaxTransferNtl string     `json:"maxTransferNtl"`
	CoinToOiCap    [][]string `json:"coinToOiCap"` // Array of [coin, cap] tuples
}

PerpDexLimits represents limits for a builder-deployed perp DEX

func (PerpDexLimits) MarshalEasyJSON

func (v PerpDexLimits) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (PerpDexLimits) MarshalJSON

func (v PerpDexLimits) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*PerpDexLimits) UnmarshalEasyJSON

func (v *PerpDexLimits) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*PerpDexLimits) UnmarshalJSON

func (v *PerpDexLimits) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type PerpDexSchemaInput

type PerpDexSchemaInput struct {
	FullName        string  `json:"fullName"`
	CollateralToken int     `json:"collateralToken"`
	OracleUpdater   *string `json:"oracleUpdater"`
}

func (PerpDexSchemaInput) MarshalEasyJSON

func (v PerpDexSchemaInput) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (PerpDexSchemaInput) MarshalJSON

func (v PerpDexSchemaInput) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*PerpDexSchemaInput) UnmarshalEasyJSON

func (v *PerpDexSchemaInput) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*PerpDexSchemaInput) UnmarshalJSON

func (v *PerpDexSchemaInput) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type PerpDexState

type PerpDexState struct {
	TotalVaultEquity       float64         `json:"totalVaultEquity,string"`
	PerpsAtOpenInterestCap *[]string       `json:"perpsAtOpenInterestCap,omitempty"`
	LeadingVaults          *[]LeadingVault `json:"leadingVaults,omitempty"`
}

func (PerpDexState) MarshalEasyJSON

func (v PerpDexState) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (PerpDexState) MarshalJSON

func (v PerpDexState) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*PerpDexState) UnmarshalEasyJSON

func (v *PerpDexState) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*PerpDexState) UnmarshalJSON

func (v *PerpDexState) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type PerpDexStatus

type PerpDexStatus struct {
	TotalNetDeposit string `json:"totalNetDeposit"`
}

PerpDexStatus represents status for a builder-deployed perp DEX

func (PerpDexStatus) MarshalEasyJSON

func (v PerpDexStatus) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (PerpDexStatus) MarshalJSON

func (v PerpDexStatus) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*PerpDexStatus) UnmarshalEasyJSON

func (v *PerpDexStatus) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*PerpDexStatus) UnmarshalJSON

func (v *PerpDexStatus) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type Position

type Position struct {
	Coin           string      `json:"coin"`
	EntryPx        *string     `json:"entryPx"`
	Leverage       Leverage    `json:"leverage"`
	LiquidationPx  *string     `json:"liquidationPx"`
	MarginUsed     string      `json:"marginUsed"`
	PositionValue  string      `json:"positionValue"`
	ReturnOnEquity string      `json:"returnOnEquity"`
	Szi            string      `json:"szi"`
	UnrealizedPnl  string      `json:"unrealizedPnl"`
	CumFunding     *CumFunding `json:"cumFunding,omitempty"`
}

func (Position) MarshalEasyJSON

func (v Position) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (Position) MarshalJSON

func (v Position) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*Position) UnmarshalEasyJSON

func (v *Position) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*Position) UnmarshalJSON

func (v *Position) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type QueriedOrder

type QueriedOrder struct {
	Coin             string         `json:"coin"`
	Side             OrderSide      `json:"side"`
	LimitPx          string         `json:"limitPx"`
	Sz               string         `json:"sz"`
	Oid              int64          `json:"oid"`
	Timestamp        int64          `json:"timestamp"`
	TriggerCondition string         `json:"triggerCondition"`
	IsTrigger        bool           `json:"isTrigger"`
	TriggerPx        string         `json:"triggerPx"`
	Children         []QueriedOrder `json:"children"`
	IsPositionTpsl   bool           `json:"isPositionTpsl"`
	ReduceOnly       bool           `json:"reduceOnly"`
	OrderType        string         `json:"orderType"`
	OrigSz           string         `json:"origSz"`
	Tif              Tif            `json:"tif"`
	Cloid            *string        `json:"cloid"`
}

func (QueriedOrder) MarshalEasyJSON

func (v QueriedOrder) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (QueriedOrder) MarshalJSON

func (v QueriedOrder) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*QueriedOrder) UnmarshalEasyJSON

func (v *QueriedOrder) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*QueriedOrder) UnmarshalJSON

func (v *QueriedOrder) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type ReferralState

type ReferralState struct {
	ReferralCode string   `json:"referralCode"`
	Referrer     string   `json:"referrer"`
	Referred     []string `json:"referred"`
}

func (ReferralState) MarshalEasyJSON

func (v ReferralState) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (ReferralState) MarshalJSON

func (v ReferralState) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*ReferralState) UnmarshalEasyJSON

func (v *ReferralState) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*ReferralState) UnmarshalJSON

func (v *ReferralState) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type RegisterAsset

type RegisterAsset struct {
	MaxGas       *int                 `json:"maxGas"       msgpack:"maxGas"`
	AssetRequest AssetRequest         `json:"assetRequest" msgpack:"assetRequest"`
	Dex          string               `json:"dex"          msgpack:"dex"`
	Schema       *RegisterAssetSchema `json:"schema"       msgpack:"schema"`
}

func (RegisterAsset) MarshalEasyJSON

func (v RegisterAsset) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (RegisterAsset) MarshalJSON

func (v RegisterAsset) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*RegisterAsset) UnmarshalEasyJSON

func (v *RegisterAsset) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*RegisterAsset) UnmarshalJSON

func (v *RegisterAsset) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type RegisterAsset2

type RegisterAsset2 struct {
	MaxGas       *int                 `json:"maxGas"       msgpack:"maxGas"`
	AssetRequest AssetRequest2        `json:"assetRequest" msgpack:"assetRequest"`
	Dex          string               `json:"dex"          msgpack:"dex"`
	Schema       *RegisterAssetSchema `json:"schema"       msgpack:"schema"`
}

func (RegisterAsset2) MarshalEasyJSON

func (v RegisterAsset2) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (RegisterAsset2) MarshalJSON

func (v RegisterAsset2) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*RegisterAsset2) UnmarshalEasyJSON

func (v *RegisterAsset2) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*RegisterAsset2) UnmarshalJSON

func (v *RegisterAsset2) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type RegisterAssetSchema

type RegisterAssetSchema struct {
	FullName        string  `json:"fullName"        msgpack:"fullName"`
	CollateralToken int     `json:"collateralToken" msgpack:"collateralToken"`
	OracleUpdater   *string `json:"oracleUpdater"   msgpack:"oracleUpdater"`
}

func (RegisterAssetSchema) MarshalEasyJSON

func (v RegisterAssetSchema) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (RegisterAssetSchema) MarshalJSON

func (v RegisterAssetSchema) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*RegisterAssetSchema) UnmarshalEasyJSON

func (v *RegisterAssetSchema) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*RegisterAssetSchema) UnmarshalJSON

func (v *RegisterAssetSchema) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type ReserveRequestWeightAction

type ReserveRequestWeightAction struct {
	Type   string `json:"type"   msgpack:"type"`
	Weight int    `json:"weight" msgpack:"weight"`
}

ReserveRequestWeightAction reserves request weight capacity Weight reservation costs 0.0005 USDC per weight unit

func (ReserveRequestWeightAction) MarshalEasyJSON

func (v ReserveRequestWeightAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (ReserveRequestWeightAction) MarshalJSON

func (v ReserveRequestWeightAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*ReserveRequestWeightAction) UnmarshalEasyJSON

func (v *ReserveRequestWeightAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*ReserveRequestWeightAction) UnmarshalJSON

func (v *ReserveRequestWeightAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type ReserveRequestWeightResponse

type ReserveRequestWeightResponse struct {
	Status   string               `json:"status"`
	Response *ReserveResponseData `json:"response,omitempty"`
	Error    string               `json:"error,omitempty"`
}

func (ReserveRequestWeightResponse) MarshalEasyJSON

func (v ReserveRequestWeightResponse) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (ReserveRequestWeightResponse) MarshalJSON

func (v ReserveRequestWeightResponse) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*ReserveRequestWeightResponse) UnmarshalEasyJSON

func (v *ReserveRequestWeightResponse) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*ReserveRequestWeightResponse) UnmarshalJSON

func (v *ReserveRequestWeightResponse) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type ReserveResponseData

type ReserveResponseData struct {
	Type string `json:"type"`
}

ReserveResponseData represents the parsed success data from a reserve request weight action.

func (ReserveResponseData) MarshalEasyJSON

func (v ReserveResponseData) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (ReserveResponseData) MarshalJSON

func (v ReserveResponseData) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*ReserveResponseData) UnmarshalEasyJSON

func (v *ReserveResponseData) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*ReserveResponseData) UnmarshalJSON

func (v *ReserveResponseData) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type ScheduleCancelAction

type ScheduleCancelAction struct {
	Type string `json:"type"           msgpack:"type"`
	Time *int64 `json:"time,omitempty" msgpack:"time,omitempty"`
}

ScheduleCancelAction represents schedule cancel action

func (ScheduleCancelAction) MarshalEasyJSON

func (v ScheduleCancelAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (ScheduleCancelAction) MarshalJSON

func (v ScheduleCancelAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*ScheduleCancelAction) UnmarshalEasyJSON

func (v *ScheduleCancelAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*ScheduleCancelAction) UnmarshalJSON

func (v *ScheduleCancelAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type ScheduleCancelResponse

type ScheduleCancelResponse struct {
	Status string `json:"status"`
	Error  string `json:"error,omitempty"`
}

func (ScheduleCancelResponse) MarshalEasyJSON

func (v ScheduleCancelResponse) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (ScheduleCancelResponse) MarshalJSON

func (v ScheduleCancelResponse) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*ScheduleCancelResponse) UnmarshalEasyJSON

func (v *ScheduleCancelResponse) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*ScheduleCancelResponse) UnmarshalJSON

func (v *ScheduleCancelResponse) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type SendToEVMWithDataAction

type SendToEVMWithDataAction struct {
	Type                 string `json:"type"                msgpack:"type"`
	HyperliquidChain     string `json:"hyperliquidChain"    msgpack:"hyperliquidChain"`
	SignatureChainId     string `json:"signatureChainId"    msgpack:"signatureChainId"`
	Token                string `json:"token"               msgpack:"token"`
	Amount               string `json:"amount"              msgpack:"amount"`
	SourceDex            string `json:"sourceDex"           msgpack:"sourceDex"`
	DestinationRecipient string `json:"destinationRecipient" msgpack:"destinationRecipient"`
	AddressEncoding      string `json:"addressEncoding"      msgpack:"addressEncoding"`
	DestinationChainId   int64  `json:"destinationChainId"   msgpack:"destinationChainId"`
	GasLimit             int64  `json:"gasLimit"             msgpack:"gasLimit"`
	Data                 string `json:"data"                 msgpack:"data"`
	Nonce                int64  `json:"nonce"               msgpack:"nonce"`
}

func (SendToEVMWithDataAction) MarshalEasyJSON

func (v SendToEVMWithDataAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (SendToEVMWithDataAction) MarshalJSON

func (v SendToEVMWithDataAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*SendToEVMWithDataAction) UnmarshalEasyJSON

func (v *SendToEVMWithDataAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*SendToEVMWithDataAction) UnmarshalJSON

func (v *SendToEVMWithDataAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type SetAccountAbstractionResponse

type SetAccountAbstractionResponse struct {
	Status string `json:"status"`
	TxHash string `json:"txHash,omitempty"`
	Error  string `json:"error,omitempty"`
}

func (SetAccountAbstractionResponse) MarshalEasyJSON

func (v SetAccountAbstractionResponse) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (SetAccountAbstractionResponse) MarshalJSON

func (v SetAccountAbstractionResponse) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*SetAccountAbstractionResponse) UnmarshalEasyJSON

func (v *SetAccountAbstractionResponse) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*SetAccountAbstractionResponse) UnmarshalJSON

func (v *SetAccountAbstractionResponse) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type SetOracle

type SetOracle struct {
	Dex             string       `json:"dex"             msgpack:"dex"`
	OraclePxs       [][]string   `json:"oraclePxs"       msgpack:"oraclePxs"`
	MarkPxs         [][][]string `json:"markPxs"         msgpack:"markPxs"`
	ExternalPerpPxs [][]string   `json:"externalPerpPxs" msgpack:"externalPerpPxs"`
}

func (SetOracle) MarshalEasyJSON

func (v SetOracle) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (SetOracle) MarshalJSON

func (v SetOracle) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*SetOracle) UnmarshalEasyJSON

func (v *SetOracle) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*SetOracle) UnmarshalJSON

func (v *SetOracle) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type SetReferrerAction

type SetReferrerAction struct {
	Type string `json:"type" msgpack:"type"`
	Code string `json:"code" msgpack:"code"`
}

SetReferrerAction represents set referrer action

func (SetReferrerAction) MarshalEasyJSON

func (v SetReferrerAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (SetReferrerAction) MarshalJSON

func (v SetReferrerAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*SetReferrerAction) UnmarshalEasyJSON

func (v *SetReferrerAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*SetReferrerAction) UnmarshalJSON

func (v *SetReferrerAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type SetReferrerResponse

type SetReferrerResponse struct {
	Status string `json:"status"`
	Error  string `json:"error,omitempty"`
}

func (SetReferrerResponse) MarshalEasyJSON

func (v SetReferrerResponse) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (SetReferrerResponse) MarshalJSON

func (v SetReferrerResponse) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*SetReferrerResponse) UnmarshalEasyJSON

func (v *SetReferrerResponse) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*SetReferrerResponse) UnmarshalJSON

func (v *SetReferrerResponse) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type SharedAssetCtx

type SharedAssetCtx struct {
	DayNtlVlm float64 `json:"dayNtlVlm,string"`
	PrevDayPx float64 `json:"prevDayPx,string"`
	MarkPx    float64 `json:"markPx,string"`
	MidPx     float64 `json:"midPx,string"`

	// PerpsAssetCtx
	Funding      float64 `json:"funding,string,omitempty"`
	OpenInterest float64 `json:"openInterest,string,omitempty"`
	OraclePx     float64 `json:"oraclePx,string,omitempty"`

	// SpotAssetCtx
	CirculatingSupply float64 `json:"circulatingSupply,string,omitempty"`
}

func (SharedAssetCtx) MarshalEasyJSON

func (v SharedAssetCtx) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (SharedAssetCtx) MarshalJSON

func (v SharedAssetCtx) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*SharedAssetCtx) UnmarshalEasyJSON

func (v *SharedAssetCtx) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*SharedAssetCtx) UnmarshalJSON

func (v *SharedAssetCtx) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type Side

type Side string
const (
	SideAsk Side = "A"
	SideBid Side = "B"
)

type SignatureResult

type SignatureResult struct {
	R string `json:"r"`
	S string `json:"s"`
	V int    `json:"v"`
}

SignatureResult represents the structured signature result

func CreateSignatureResultFromHex

func CreateSignatureResultFromHex(signature string) (SignatureResult, error)

func SignAgent

func SignAgent(
	privateKey *ecdsa.PrivateKey,
	agentAddress, agentName string,
	nonce int64,
	isMainnet bool,
) (SignatureResult, error)

SignAgent signs agent approval action using EIP-712 direct signing

func SignApproveBuilderFee

func SignApproveBuilderFee(
	privateKey *ecdsa.PrivateKey,
	builderAddress string,
	maxFeeRate float64,
	timestamp int64,
	isMainnet bool,
) (SignatureResult, error)

SignApproveBuilderFee signs approve builder fee action

func SignConvertToMultiSigUserAction

func SignConvertToMultiSigUserAction(
	privateKey *ecdsa.PrivateKey,
	signers []string,
	threshold int,
	timestamp int64,
	isMainnet bool,
) (SignatureResult, error)

SignConvertToMultiSigUserAction signs convert to multi-sig user action

func SignL1Action

func SignL1Action(
	privateKey *ecdsa.PrivateKey,
	action any,
	vaultAddress string,
	timestamp int64,
	expiresAfter *int64,
	isMainnet bool,
) (SignatureResult, error)

func SignMultiSigAction

func SignMultiSigAction(
	privateKey *ecdsa.PrivateKey,
	innerAction map[string]any,
	signers []string,
	signatures []string,
	timestamp int64,
	isMainnet bool,
) (SignatureResult, error)

SignMultiSigAction signs multi-signature action

func SignPerpDexClassTransferAction

func SignPerpDexClassTransferAction(
	privateKey *ecdsa.PrivateKey,
	dex, token string,
	amount float64,
	toPerp bool,
	timestamp int64,
	isMainnet bool,
) (SignatureResult, error)

SignPerpDexClassTransferAction signs perp dex class transfer action

func SignSendToEVMWithData

func SignSendToEVMWithData(
	privateKey *ecdsa.PrivateKey,
	signatureChainID string,
	token string,
	amount string,
	sourceDex string,
	destinationRecipient string,
	addressEncoding string,
	destinationChainID uint32,
	gasLimit uint64,
	data string,
	nonce int64,
	isMainnet bool,
) (SignatureResult, error)

func SignSpotTransferAction

func SignSpotTransferAction(
	privateKey *ecdsa.PrivateKey,
	amount float64,
	destination, token string,
	timestamp int64,
	isMainnet bool,
) (SignatureResult, error)

SignSpotTransferAction signs spot transfer action

func SignTokenDelegateAction

func SignTokenDelegateAction(
	privateKey *ecdsa.PrivateKey,
	token string,
	amount float64,
	validatorAddress string,
	timestamp int64,
	isMainnet bool,
) (SignatureResult, error)

SignTokenDelegateAction signs token delegate action

func SignUpdateAccountAbstraction

func SignUpdateAccountAbstraction(
	privateKey *ecdsa.PrivateKey,
	user string,
	abstraction string,
	nonce int64,
	isMainnet bool,
) (SignatureResult, error)

func SignUsdClassTransferAction

func SignUsdClassTransferAction(
	privateKey *ecdsa.PrivateKey,
	amount float64,
	toPerp bool,
	timestamp int64,
	isMainnet bool,
) (SignatureResult, error)

SignUsdClassTransferAction signs USD class transfer action

func SignUsdTransferAction

func SignUsdTransferAction(
	privateKey *ecdsa.PrivateKey,
	amount float64,
	destination string,
	timestamp int64,
	isMainnet bool,
) (SignatureResult, error)

SignUsdTransferAction signs USD transfer action

func SignUserSignedAction

func SignUserSignedAction(
	privateKey *ecdsa.PrivateKey,
	action map[string]any,
	payloadTypes []apitypes.Type,
	primaryType string,
	isMainnet bool,
) (SignatureResult, error)

SignUserSignedAction signs actions that require direct EIP-712 signing (e.g., approveAgent, approveBuilderFee, convertToMultiSigUser)

IMPORTANT: The message will contain MORE fields than declared in payloadTypes to avoid the error "422 Failed to deserialize the JSON body" and "User or API Wallet 0x123... does not exist". This matches Python SDK behavior where the field order doesn't matter and extra fields (type, signatureChainId) are present in the message but ignored during EIP-712 hashing via hashStructLenient.

func SignWithdrawFromBridgeAction

func SignWithdrawFromBridgeAction(
	privateKey *ecdsa.PrivateKey,
	destination string,
	amount, fee float64,
	timestamp int64,
	isMainnet bool,
) (SignatureResult, error)

SignWithdrawFromBridgeAction signs withdraw from bridge action

type SpotAssetCtx

type SpotAssetCtx struct {
	DayNtlVlm         string  `json:"dayNtlVlm"`
	MarkPx            string  `json:"markPx"`
	MidPx             *string `json:"midPx"`
	PrevDayPx         string  `json:"prevDayPx"`
	CirculatingSupply string  `json:"circulatingSupply"`
	Coin              string  `json:"coin"`
}

func (SpotAssetCtx) MarshalEasyJSON

func (v SpotAssetCtx) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (SpotAssetCtx) MarshalJSON

func (v SpotAssetCtx) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*SpotAssetCtx) UnmarshalEasyJSON

func (v *SpotAssetCtx) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*SpotAssetCtx) UnmarshalJSON

func (v *SpotAssetCtx) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type SpotAssetInfo

type SpotAssetInfo struct {
	Name        string `json:"name"`
	Tokens      []int  `json:"tokens"`
	Index       int    `json:"index"`
	IsCanonical bool   `json:"isCanonical"`
}

func (SpotAssetInfo) MarshalEasyJSON

func (v SpotAssetInfo) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (SpotAssetInfo) MarshalJSON

func (v SpotAssetInfo) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*SpotAssetInfo) UnmarshalEasyJSON

func (v *SpotAssetInfo) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*SpotAssetInfo) UnmarshalJSON

func (v *SpotAssetInfo) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type SpotBalance

type SpotBalance struct {
	Coin     string `json:"coin"`
	Token    int    `json:"token"`
	Hold     string `json:"hold"`
	Total    string `json:"total"`
	EntryNtl string `json:"entryNtl"`
}

func (SpotBalance) MarshalEasyJSON

func (v SpotBalance) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (SpotBalance) MarshalJSON

func (v SpotBalance) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*SpotBalance) UnmarshalEasyJSON

func (v *SpotBalance) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*SpotBalance) UnmarshalJSON

func (v *SpotBalance) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type SpotDeployResponse

type SpotDeployResponse struct {
	Status string `json:"status"`
	TxHash string `json:"txHash,omitempty"`
	Error  string `json:"error,omitempty"`
}

func (SpotDeployResponse) MarshalEasyJSON

func (v SpotDeployResponse) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (SpotDeployResponse) MarshalJSON

func (v SpotDeployResponse) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*SpotDeployResponse) UnmarshalEasyJSON

func (v *SpotDeployResponse) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*SpotDeployResponse) UnmarshalJSON

func (v *SpotDeployResponse) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type SpotMeta

type SpotMeta struct {
	Universe []SpotAssetInfo `json:"universe"`
	Tokens   []SpotTokenInfo `json:"tokens"`
}

func (SpotMeta) MarshalEasyJSON

func (v SpotMeta) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (SpotMeta) MarshalJSON

func (v SpotMeta) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*SpotMeta) UnmarshalEasyJSON

func (v *SpotMeta) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*SpotMeta) UnmarshalJSON

func (v *SpotMeta) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type SpotMetaAndAssetCtxs

type SpotMetaAndAssetCtxs struct {
	Meta SpotMeta
	Ctxs []SpotAssetCtx
}

This type has no JSON annotation because it cannot be directly unmarshalled from the response

func (SpotMetaAndAssetCtxs) MarshalEasyJSON

func (v SpotMetaAndAssetCtxs) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (SpotMetaAndAssetCtxs) MarshalJSON

func (v SpotMetaAndAssetCtxs) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*SpotMetaAndAssetCtxs) UnmarshalEasyJSON

func (v *SpotMetaAndAssetCtxs) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*SpotMetaAndAssetCtxs) UnmarshalJSON

func (v *SpotMetaAndAssetCtxs) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type SpotState

type SpotState struct {
	Balances []SpotBalance `json:"balances,omitempty"`
}

func (SpotState) MarshalEasyJSON

func (v SpotState) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (SpotState) MarshalJSON

func (v SpotState) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*SpotState) UnmarshalEasyJSON

func (v *SpotState) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*SpotState) UnmarshalJSON

func (v *SpotState) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type SpotTokenInfo

type SpotTokenInfo struct {
	Name        string       `json:"name"`
	SzDecimals  int          `json:"szDecimals"`
	WeiDecimals int          `json:"weiDecimals"`
	Index       int          `json:"index"`
	TokenID     string       `json:"tokenId"`
	IsCanonical bool         `json:"isCanonical"`
	EvmContract *EvmContract `json:"evmContract"`
	FullName    *string      `json:"fullName"`
}

func (SpotTokenInfo) MarshalEasyJSON

func (v SpotTokenInfo) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (SpotTokenInfo) MarshalJSON

func (v SpotTokenInfo) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*SpotTokenInfo) UnmarshalEasyJSON

func (v *SpotTokenInfo) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*SpotTokenInfo) UnmarshalJSON

func (v *SpotTokenInfo) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type SpotTransferAction

type SpotTransferAction struct {
	Type        string `json:"type"        msgpack:"type"`
	Destination string `json:"destination" msgpack:"destination"`
	Amount      string `json:"amount"      msgpack:"amount"`
	Token       string `json:"token"       msgpack:"token"`
	Time        int64  `json:"time"        msgpack:"time"`
}

SpotTransferAction represents spot transfer

func (SpotTransferAction) MarshalEasyJSON

func (v SpotTransferAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (SpotTransferAction) MarshalJSON

func (v SpotTransferAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*SpotTransferAction) UnmarshalEasyJSON

func (v *SpotTransferAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*SpotTransferAction) UnmarshalJSON

func (v *SpotTransferAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type SpotUserState

type SpotUserState struct {
	Balances []SpotBalance `json:"balances"`
}

func (SpotUserState) MarshalEasyJSON

func (v SpotUserState) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (SpotUserState) MarshalJSON

func (v SpotUserState) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*SpotUserState) UnmarshalEasyJSON

func (v *SpotUserState) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*SpotUserState) UnmarshalJSON

func (v *SpotUserState) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type StakingDelegation

type StakingDelegation struct {
	Validator            string `json:"validator"`
	Amount               string `json:"amount"`
	LockedUntilTimestamp int64  `json:"lockedUntilTimestamp"`
}

func (StakingDelegation) MarshalEasyJSON

func (v StakingDelegation) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (StakingDelegation) MarshalJSON

func (v StakingDelegation) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*StakingDelegation) UnmarshalEasyJSON

func (v *StakingDelegation) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*StakingDelegation) UnmarshalJSON

func (v *StakingDelegation) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type StakingReward

type StakingReward struct {
	Time        int64  `json:"time"`
	Source      string `json:"source"`
	TotalAmount string `json:"totalAmount"`
}

func (StakingReward) MarshalEasyJSON

func (v StakingReward) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (StakingReward) MarshalJSON

func (v StakingReward) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*StakingReward) UnmarshalEasyJSON

func (v *StakingReward) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*StakingReward) UnmarshalJSON

func (v *StakingReward) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type StakingSummary

type StakingSummary struct {
	Delegated              string `json:"delegated"`
	Undelegated            string `json:"undelegated"`
	TotalPendingWithdrawal string `json:"totalPendingWithdrawal"`
	NPendingWithdrawals    int    `json:"nPendingWithdrawals"`
}

func (StakingSummary) MarshalEasyJSON

func (v StakingSummary) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (StakingSummary) MarshalJSON

func (v StakingSummary) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*StakingSummary) UnmarshalEasyJSON

func (v *StakingSummary) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*StakingSummary) UnmarshalJSON

func (v *StakingSummary) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type SubAccount

type SubAccount struct {
	Name        string   `json:"name"`
	User        string   `json:"user"`
	Permissions []string `json:"permissions"`
}

func (SubAccount) MarshalEasyJSON

func (v SubAccount) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (SubAccount) MarshalJSON

func (v SubAccount) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*SubAccount) UnmarshalEasyJSON

func (v *SubAccount) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*SubAccount) UnmarshalJSON

func (v *SubAccount) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type SubAccountSpotTransferAction

type SubAccountSpotTransferAction struct {
	Type           string  `json:"type"           msgpack:"type"`
	SubAccountUser string  `json:"subAccountUser" msgpack:"subAccountUser"`
	IsDeposit      bool    `json:"isDeposit"      msgpack:"isDeposit"`
	Token          string  `json:"token"          msgpack:"token"`
	Amount         float64 `json:"amount"         msgpack:"amount"`
}

SubAccountSpotTransferAction represents sub-account spot transfer

func (SubAccountSpotTransferAction) MarshalEasyJSON

func (v SubAccountSpotTransferAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (SubAccountSpotTransferAction) MarshalJSON

func (v SubAccountSpotTransferAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*SubAccountSpotTransferAction) UnmarshalEasyJSON

func (v *SubAccountSpotTransferAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*SubAccountSpotTransferAction) UnmarshalJSON

func (v *SubAccountSpotTransferAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type SubAccountTransferAction

type SubAccountTransferAction struct {
	Type           string `json:"type"           msgpack:"type"`
	SubAccountUser string `json:"subAccountUser" msgpack:"subAccountUser"`
	IsDeposit      bool   `json:"isDeposit"      msgpack:"isDeposit"`
	Usd            int    `json:"usd"            msgpack:"usd"`
}

SubAccountTransferAction represents sub-account transfer

func (SubAccountTransferAction) MarshalEasyJSON

func (v SubAccountTransferAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (SubAccountTransferAction) MarshalJSON

func (v SubAccountTransferAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*SubAccountTransferAction) UnmarshalEasyJSON

func (v *SubAccountTransferAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*SubAccountTransferAction) UnmarshalJSON

func (v *SubAccountTransferAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type Subscription

type Subscription struct {
	ID      string
	Payload any
	Close   func()
}

type Tiers

type Tiers struct {
	MM  []MMTier  `json:"mm"`
	VIP []VIPTier `json:"vip"`
}

func (Tiers) MarshalEasyJSON

func (v Tiers) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (Tiers) MarshalJSON

func (v Tiers) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*Tiers) UnmarshalEasyJSON

func (v *Tiers) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*Tiers) UnmarshalJSON

func (v *Tiers) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type Tif

type Tif string
const (
	// Add Liquidity Only
	TifAlo Tif = "Alo"
	// Immediate or Cancel
	TifIoc Tif = "Ioc"
	// Good Till Cancel
	TifGtc Tif = "Gtc"
)

Order Time-in-Force constants

type TokenDelegateAction

type TokenDelegateAction struct {
	Type         string `json:"type"         msgpack:"type"`
	Validator    string `json:"validator"    msgpack:"validator"`
	Wei          int    `json:"wei"          msgpack:"wei"`
	IsUndelegate bool   `json:"isUndelegate" msgpack:"isUndelegate"`
	Nonce        int64  `json:"nonce"        msgpack:"nonce"`
}

TokenDelegateAction represents token delegate action

func (TokenDelegateAction) MarshalEasyJSON

func (v TokenDelegateAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (TokenDelegateAction) MarshalJSON

func (v TokenDelegateAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*TokenDelegateAction) UnmarshalEasyJSON

func (v *TokenDelegateAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*TokenDelegateAction) UnmarshalJSON

func (v *TokenDelegateAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type TokenDetail

type TokenDetail struct {
	Name                       string              `json:"name"`
	MaxSupply                  string              `json:"maxSupply"`
	TotalSupply                string              `json:"totalSupply"`
	CirculatingSupply          string              `json:"circulatingSupply"`
	SzDecimals                 int                 `json:"szDecimals"`
	WeiDecimals                int                 `json:"weiDecimals"`
	MidPx                      string              `json:"midPx"`
	MarkPx                     string              `json:"markPx"`
	PrevDayPx                  string              `json:"prevDayPx"`
	Genesis                    *TokenDetailGenesis `json:"genesis"`
	Deployer                   *string             `json:"deployer"`
	DeployGas                  *string             `json:"deployGas"`
	DeployTime                 *string             `json:"deployTime"`
	SeededUsdc                 string              `json:"seededUsdc"`
	NonCirculatingUserBalances [][]string          `json:"nonCirculatingUserBalances"`
	FutureEmissions            string              `json:"futureEmissions"`
}

func (TokenDetail) MarshalEasyJSON

func (v TokenDetail) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (TokenDetail) MarshalJSON

func (v TokenDetail) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*TokenDetail) UnmarshalEasyJSON

func (v *TokenDetail) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*TokenDetail) UnmarshalJSON

func (v *TokenDetail) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type TokenDetailGenesis

type TokenDetailGenesis struct {
	UserBalances          [][]string   `json:"userBalances"`
	ExistingTokenBalances []MixedArray `json:"existingTokenBalances"`
}

func (TokenDetailGenesis) MarshalEasyJSON

func (v TokenDetailGenesis) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (TokenDetailGenesis) MarshalJSON

func (v TokenDetailGenesis) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*TokenDetailGenesis) UnmarshalEasyJSON

func (v *TokenDetailGenesis) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*TokenDetailGenesis) UnmarshalJSON

func (v *TokenDetailGenesis) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type Tpsl

type Tpsl string // Advanced order type
const (
	TakeProfit Tpsl = "tp"
	StopLoss   Tpsl = "sl"
)

type Trade

type Trade struct {
	Coin  string   `json:"coin"`
	Side  string   `json:"side"`
	Px    string   `json:"px"`
	Sz    string   `json:"sz"`
	Time  int64    `json:"time"`
	Hash  string   `json:"hash"`
	Tid   int64    `json:"tid"`
	Users []string `json:"users"`
}

func (Trade) MarshalEasyJSON

func (v Trade) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (Trade) MarshalJSON

func (v Trade) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*Trade) UnmarshalEasyJSON

func (v *Trade) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*Trade) UnmarshalJSON

func (v *Trade) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type Trades

type Trades []Trade

func (Trades) Key

func (t Trades) Key() string

type TradesSubscriptionParams

type TradesSubscriptionParams struct {
	Coin string
}

type TransferResponse

type TransferResponse struct {
	Status string `json:"status"`
	TxHash string `json:"txHash,omitempty"`
	Error  string `json:"error,omitempty"`
}

func (TransferResponse) MarshalEasyJSON

func (v TransferResponse) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (TransferResponse) MarshalJSON

func (v TransferResponse) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*TransferResponse) UnmarshalEasyJSON

func (v *TransferResponse) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*TransferResponse) UnmarshalJSON

func (v *TransferResponse) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type TriggerOrderType

type TriggerOrderType struct {
	TriggerPx float64 `json:"triggerPx" msgpack:"triggerPx"`
	IsMarket  bool    `json:"isMarket"  msgpack:"isMarket"`
	Tpsl      Tpsl    `json:"tpsl"      msgpack:"tpsl"` // "tp" or "sl"
}

func (TriggerOrderType) MarshalEasyJSON

func (v TriggerOrderType) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (TriggerOrderType) MarshalJSON

func (v TriggerOrderType) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*TriggerOrderType) UnmarshalEasyJSON

func (v *TriggerOrderType) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*TriggerOrderType) UnmarshalJSON

func (v *TriggerOrderType) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type Tuple2

type Tuple2[E1 any, E2 any] struct {
	First  E1
	Second E2
}

func (Tuple2[E1, E2]) MarshalJSON

func (t Tuple2[E1, E2]) MarshalJSON() ([]byte, error)

func (*Tuple2[E1, E2]) UnmarshalJSON

func (t *Tuple2[E1, E2]) UnmarshalJSON(data []byte) error

type TwapState

type TwapState struct {
	Coin        string  `json:"coin"`
	User        string  `json:"user"`
	Side        string  `json:"side"`
	Sz          float64 `json:"sz,string"`
	ExecutedSz  float64 `json:"executedSz,string"`
	ExecutedNtl float64 `json:"executedNtl,string"`
	Minutes     int     `json:"minutes"`
	ReduceOnly  bool    `json:"reduceOnly"`
	Randomize   bool    `json:"randomize"`
	Timestamp   int64   `json:"timestamp"`
}

func (TwapState) MarshalEasyJSON

func (v TwapState) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (TwapState) MarshalJSON

func (v TwapState) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*TwapState) UnmarshalEasyJSON

func (v *TwapState) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*TwapState) UnmarshalJSON

func (v *TwapState) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type TwapStates

type TwapStates struct {
	Dex    string                   `json:"dex"`
	User   string                   `json:"user"`
	States []Tuple2[int, TwapState] `json:"states"`
}

func (TwapStates) Key

func (t TwapStates) Key() string

type TwapStatesSubscriptionParams

type TwapStatesSubscriptionParams struct {
	User string
	Dex  *string
}

type TxStatus

type TxStatus struct {
	Coin   string `json:"coin"`
	Status string `json:"status"`
}

func (TxStatus) MarshalEasyJSON

func (v TxStatus) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (TxStatus) MarshalJSON

func (v TxStatus) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*TxStatus) UnmarshalEasyJSON

func (v *TxStatus) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*TxStatus) UnmarshalJSON

func (v *TxStatus) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type UpdateAccountAbstractionAction

type UpdateAccountAbstractionAction struct {
	Type             string `json:"type"                msgpack:"type"`
	SignatureChainId string `json:"signatureChainId"    msgpack:"signatureChainId"`
	HyperliquidChain string `json:"hyperliquidChain"    msgpack:"hyperliquidChain"`
	User             string `json:"user"                msgpack:"user"`
	Abstraction      string `json:"abstraction"         msgpack:"abstraction"`
	Nonce            int64  `json:"nonce"               msgpack:"nonce"`
}

func (UpdateAccountAbstractionAction) MarshalEasyJSON

func (v UpdateAccountAbstractionAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (UpdateAccountAbstractionAction) MarshalJSON

func (v UpdateAccountAbstractionAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*UpdateAccountAbstractionAction) UnmarshalEasyJSON

func (v *UpdateAccountAbstractionAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*UpdateAccountAbstractionAction) UnmarshalJSON

func (v *UpdateAccountAbstractionAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type UpdateIsolatedMarginAction

type UpdateIsolatedMarginAction struct {
	Type  string  `json:"type"  msgpack:"type"`
	Asset int     `json:"asset" msgpack:"asset"`
	IsBuy bool    `json:"isBuy" msgpack:"isBuy"`
	Ntli  float64 `json:"ntli"  msgpack:"ntli"`
}

UpdateIsolatedMarginAction represents isolated margin update

func (UpdateIsolatedMarginAction) MarshalEasyJSON

func (v UpdateIsolatedMarginAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (UpdateIsolatedMarginAction) MarshalJSON

func (v UpdateIsolatedMarginAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*UpdateIsolatedMarginAction) UnmarshalEasyJSON

func (v *UpdateIsolatedMarginAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*UpdateIsolatedMarginAction) UnmarshalJSON

func (v *UpdateIsolatedMarginAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type UpdateLeverageAction

type UpdateLeverageAction struct {
	Type     string `json:"type"     msgpack:"type"`
	Asset    int    `json:"asset"    msgpack:"asset"`
	IsCross  bool   `json:"isCross"  msgpack:"isCross"`
	Leverage int    `json:"leverage" msgpack:"leverage"`
}

UpdateLeverageAction represents leverage update

func (UpdateLeverageAction) MarshalEasyJSON

func (v UpdateLeverageAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (UpdateLeverageAction) MarshalJSON

func (v UpdateLeverageAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*UpdateLeverageAction) UnmarshalEasyJSON

func (v *UpdateLeverageAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*UpdateLeverageAction) UnmarshalJSON

func (v *UpdateLeverageAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type UsdClassTransferAction

type UsdClassTransferAction struct {
	Type   string `json:"type"   msgpack:"type"`
	Amount string `json:"amount" msgpack:"amount"`
	ToPerp bool   `json:"toPerp" msgpack:"toPerp"`
	Nonce  int64  `json:"nonce"  msgpack:"nonce"`
}

UsdClassTransferAction represents USD class transfer

func (UsdClassTransferAction) MarshalEasyJSON

func (v UsdClassTransferAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (UsdClassTransferAction) MarshalJSON

func (v UsdClassTransferAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*UsdClassTransferAction) UnmarshalEasyJSON

func (v *UsdClassTransferAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*UsdClassTransferAction) UnmarshalJSON

func (v *UsdClassTransferAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type UsdTransferAction

type UsdTransferAction struct {
	Type        string `json:"type"        msgpack:"type"`
	Destination string `json:"destination" msgpack:"destination"`
	Amount      string `json:"amount"      msgpack:"amount"`
	Time        int64  `json:"time"        msgpack:"time"`
}

UsdTransferAction represents USD transfer

func (UsdTransferAction) MarshalEasyJSON

func (v UsdTransferAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (UsdTransferAction) MarshalJSON

func (v UsdTransferAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*UsdTransferAction) UnmarshalEasyJSON

func (v *UsdTransferAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*UsdTransferAction) UnmarshalJSON

func (v *UsdTransferAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type UseBigBlocksAction

type UseBigBlocksAction struct {
	Type           string `json:"type"           msgpack:"type"`
	UsingBigBlocks bool   `json:"usingBigBlocks" msgpack:"usingBigBlocks"`
}

UseBigBlocksAction represents use big blocks action

func (UseBigBlocksAction) MarshalEasyJSON

func (v UseBigBlocksAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (UseBigBlocksAction) MarshalJSON

func (v UseBigBlocksAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*UseBigBlocksAction) UnmarshalEasyJSON

func (v *UseBigBlocksAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*UseBigBlocksAction) UnmarshalJSON

func (v *UseBigBlocksAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type UserActiveAssetData

type UserActiveAssetData struct {
	User             string   `json:"user"`
	Coin             string   `json:"coin"`
	Leverage         Leverage `json:"leverage"`
	MaxTradeSzs      []string `json:"maxTradeSzs"`
	AvailableToTrade []string `json:"availableToTrade"`
	MarkPx           string   `json:"markPx"`
}

func (UserActiveAssetData) MarshalEasyJSON

func (v UserActiveAssetData) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (UserActiveAssetData) MarshalJSON

func (v UserActiveAssetData) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*UserActiveAssetData) UnmarshalEasyJSON

func (v *UserActiveAssetData) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*UserActiveAssetData) UnmarshalJSON

func (v *UserActiveAssetData) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type UserFees

type UserFees struct {
	ActiveReferralDiscount string       `json:"activeReferralDiscount"`
	DailyUserVolume        []UserVolume `json:"dailyUserVlm"`
	FeeSchedule            FeeSchedule  `json:"feeSchedule"`
	UserAddRate            string       `json:"userAddRate"`
	UserCrossRate          string       `json:"userCrossRate"`
	UserSpotCrossRate      string       `json:"userSpotCrossRate"`
	UserSpotAddRate        string       `json:"userSpotAddRate"`
}

func (UserFees) MarshalEasyJSON

func (v UserFees) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (UserFees) MarshalJSON

func (v UserFees) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*UserFees) UnmarshalEasyJSON

func (v *UserFees) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*UserFees) UnmarshalJSON

func (v *UserFees) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type UserFillsParams

type UserFillsParams struct {
	Address         string
	AggregateByTime *bool
}

func (UserFillsParams) MarshalEasyJSON

func (v UserFillsParams) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (UserFillsParams) MarshalJSON

func (v UserFillsParams) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*UserFillsParams) UnmarshalEasyJSON

func (v *UserFillsParams) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*UserFillsParams) UnmarshalJSON

func (v *UserFillsParams) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type UserFundingHistory

type UserFundingHistory struct {
	Delta Delta  `json:"delta"`
	Hash  string `json:"hash"`
	Time  int64  `json:"time"`
}

func (UserFundingHistory) MarshalEasyJSON

func (v UserFundingHistory) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (UserFundingHistory) MarshalJSON

func (v UserFundingHistory) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*UserFundingHistory) UnmarshalEasyJSON

func (v *UserFundingHistory) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*UserFundingHistory) UnmarshalJSON

func (v *UserFundingHistory) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type UserNonFundingLedgerUpdates

type UserNonFundingLedgerUpdates struct {
	Delta LedgerDelta `json:"delta"`
	Hash  string      `json:"hash"`
	Time  int64       `json:"time"`
}

func (UserNonFundingLedgerUpdates) MarshalEasyJSON

func (v UserNonFundingLedgerUpdates) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (UserNonFundingLedgerUpdates) MarshalJSON

func (v UserNonFundingLedgerUpdates) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*UserNonFundingLedgerUpdates) UnmarshalEasyJSON

func (v *UserNonFundingLedgerUpdates) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*UserNonFundingLedgerUpdates) UnmarshalJSON

func (v *UserNonFundingLedgerUpdates) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type UserState

type UserState struct {
	AssetPositions     []AssetPosition `json:"assetPositions"`
	CrossMarginSummary MarginSummary   `json:"crossMarginSummary"`
	MarginSummary      MarginSummary   `json:"marginSummary"`
	Withdrawable       string          `json:"withdrawable"`
}

func (UserState) MarshalEasyJSON

func (v UserState) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (UserState) MarshalJSON

func (v UserState) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*UserState) UnmarshalEasyJSON

func (v *UserState) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*UserState) UnmarshalJSON

func (v *UserState) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type UserVolume

type UserVolume struct {
	Date      string `json:"date"`
	Exchange  string `json:"exchange"`
	UserAdd   string `json:"userAdd"`
	UserCross string `json:"userCross"`
}

func (UserVolume) MarshalEasyJSON

func (v UserVolume) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (UserVolume) MarshalJSON

func (v UserVolume) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*UserVolume) UnmarshalEasyJSON

func (v *UserVolume) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*UserVolume) UnmarshalJSON

func (v *UserVolume) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type VIPTier

type VIPTier struct {
	Add       string `json:"add"`
	Cross     string `json:"cross"`
	NtlCutoff string `json:"ntlCutoff"`
}

func (VIPTier) MarshalEasyJSON

func (v VIPTier) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (VIPTier) MarshalJSON

func (v VIPTier) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*VIPTier) UnmarshalEasyJSON

func (v *VIPTier) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*VIPTier) UnmarshalJSON

func (v *VIPTier) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type ValidationError

type ValidationError struct {
	Field   string
	Message string
}

func (ValidationError) Error

func (e ValidationError) Error() string

func (ValidationError) MarshalEasyJSON

func (v ValidationError) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (ValidationError) MarshalJSON

func (v ValidationError) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*ValidationError) UnmarshalEasyJSON

func (v *ValidationError) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*ValidationError) UnmarshalJSON

func (v *ValidationError) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type ValidatorResponse

type ValidatorResponse struct {
	Status string `json:"status"`
	TxHash string `json:"txHash,omitempty"`
	Error  string `json:"error,omitempty"`
}

func (ValidatorResponse) MarshalEasyJSON

func (v ValidatorResponse) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (ValidatorResponse) MarshalJSON

func (v ValidatorResponse) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*ValidatorResponse) UnmarshalEasyJSON

func (v *ValidatorResponse) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*ValidatorResponse) UnmarshalJSON

func (v *ValidatorResponse) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type VaultDistributeAction

type VaultDistributeAction struct {
	Type         string `json:"type"         msgpack:"type"`
	VaultAddress string `json:"vaultAddress" msgpack:"vaultAddress"`
	Usd          int    `json:"usd"          msgpack:"usd"`
}

VaultDistributeAction represents vault distribute action

func (VaultDistributeAction) MarshalEasyJSON

func (v VaultDistributeAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (VaultDistributeAction) MarshalJSON

func (v VaultDistributeAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*VaultDistributeAction) UnmarshalEasyJSON

func (v *VaultDistributeAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*VaultDistributeAction) UnmarshalJSON

func (v *VaultDistributeAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type VaultModifyAction

type VaultModifyAction struct {
	Type                  string `json:"type"                  msgpack:"type"`
	VaultAddress          string `json:"vaultAddress"          msgpack:"vaultAddress"`
	AllowDeposits         bool   `json:"allowDeposits"         msgpack:"allowDeposits"`
	AlwaysCloseOnWithdraw bool   `json:"alwaysCloseOnWithdraw" msgpack:"alwaysCloseOnWithdraw"`
}

VaultModifyAction represents vault modify action

func (VaultModifyAction) MarshalEasyJSON

func (v VaultModifyAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (VaultModifyAction) MarshalJSON

func (v VaultModifyAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*VaultModifyAction) UnmarshalEasyJSON

func (v *VaultModifyAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*VaultModifyAction) UnmarshalJSON

func (v *VaultModifyAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type VaultUsdTransferAction

type VaultUsdTransferAction struct {
	Type         string `json:"type"         msgpack:"type"`
	VaultAddress string `json:"vaultAddress" msgpack:"vaultAddress"`
	IsDeposit    bool   `json:"isDeposit"    msgpack:"isDeposit"`
	Usd          int    `json:"usd"          msgpack:"usd"`
}

VaultUsdTransferAction represents vault USD transfer

func (VaultUsdTransferAction) MarshalEasyJSON

func (v VaultUsdTransferAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (VaultUsdTransferAction) MarshalJSON

func (v VaultUsdTransferAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*VaultUsdTransferAction) UnmarshalEasyJSON

func (v *VaultUsdTransferAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*VaultUsdTransferAction) UnmarshalJSON

func (v *VaultUsdTransferAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type WebData2

type WebData2 struct {
	ClearinghouseState     *ClearinghouseState `json:"clearinghouseState,omitempty"`
	LeadingVaults          []any               `json:"leadingVaults,omitempty"`
	TotalVaultEquity       string              `json:"totalVaultEquity,omitempty"`
	OpenOrders             []WsBasicOrder      `json:"openOrders,omitempty"`
	AgentAddress           *string             `json:"agentAddress,omitempty"`
	AgentValidUntil        *int64              `json:"agentValidUntil,omitempty"`
	CumLedger              string              `json:"cumLedger,omitempty"`
	Meta                   *WebData2Meta       `json:"meta,omitempty"`
	AssetCtxs              []AssetCtx          `json:"assetCtxs,omitempty"`
	ServerTime             int64               `json:"serverTime,omitempty"`
	IsVault                bool                `json:"isVault,omitempty"`
	User                   string              `json:"user,omitempty"`
	TwapStates             []any               `json:"twapStates,omitempty"`
	SpotState              *SpotState          `json:"spotState,omitempty"`
	SpotAssetCtxs          []SpotAssetCtx      `json:"spotAssetCtxs,omitempty"`
	PerpsAtOpenInterestCap []string            `json:"perpsAtOpenInterestCap,omitempty"`
}

func (WebData2) Key

func (w WebData2) Key() string

type WebData2AssetInfo

type WebData2AssetInfo struct {
	SzDecimals    int    `json:"szDecimals,omitempty"`
	Name          string `json:"name,omitempty"`
	MaxLeverage   int    `json:"maxLeverage,omitempty"`
	MarginTableID int    `json:"marginTableId,omitempty"`
	IsDelisted    bool   `json:"isDelisted,omitempty"`
	OnlyIsolated  bool   `json:"onlyIsolated,omitempty"`
}

func (WebData2AssetInfo) MarshalEasyJSON

func (v WebData2AssetInfo) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (WebData2AssetInfo) MarshalJSON

func (v WebData2AssetInfo) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*WebData2AssetInfo) UnmarshalEasyJSON

func (v *WebData2AssetInfo) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*WebData2AssetInfo) UnmarshalJSON

func (v *WebData2AssetInfo) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type WebData2MarginTable

type WebData2MarginTable struct {
	Description string               `json:"description,omitempty"`
	MarginTiers []WebData2MarginTier `json:"marginTiers,omitempty"`
}

func (WebData2MarginTable) MarshalEasyJSON

func (v WebData2MarginTable) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (WebData2MarginTable) MarshalJSON

func (v WebData2MarginTable) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*WebData2MarginTable) UnmarshalEasyJSON

func (v *WebData2MarginTable) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*WebData2MarginTable) UnmarshalJSON

func (v *WebData2MarginTable) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type WebData2MarginTier

type WebData2MarginTier struct {
	LowerBound  string `json:"lowerBound,omitempty"`
	MaxLeverage int    `json:"maxLeverage,omitempty"`
}

func (WebData2MarginTier) MarshalEasyJSON

func (v WebData2MarginTier) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (WebData2MarginTier) MarshalJSON

func (v WebData2MarginTier) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*WebData2MarginTier) UnmarshalEasyJSON

func (v *WebData2MarginTier) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*WebData2MarginTier) UnmarshalJSON

func (v *WebData2MarginTier) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type WebData2Meta

type WebData2Meta struct {
	Universe     []WebData2AssetInfo                `json:"universe,omitempty"`
	MarginTables []Tuple2[int, WebData2MarginTable] `json:"marginTables,omitempty"`
}

type WebData2SubscriptionParams

type WebData2SubscriptionParams struct {
	User string
}

type WebData3

type WebData3 struct {
	UserState     WebData3UserState `json:"userState"`
	PerpDexStates []PerpDexState    `json:"perpDexStates"`
}

func (WebData3) Key

func (w WebData3) Key() string

type WebData3SubscriptionParams

type WebData3SubscriptionParams struct {
	User string
	Dex  *string
}

type WebData3UserState

type WebData3UserState struct {
	AgentAddress          *string `json:"agentAddress,omitempty"`
	AgentValidUntil       *int64  `json:"agentValidUntil,omitempty"`
	ServerTime            int64   `json:"serverTime"`
	CumLedger             float64 `json:"cumLedger,string"`
	IsVault               bool    `json:"isVault"`
	User                  string  `json:"user"`
	OptOutOfSpotDusting   *bool   `json:"optOutOfSpotDusting,omitempty"`
	DexAbstractionEnabled *bool   `json:"dexAbstractionEnabled,omitempty"`
}

func (WebData3UserState) MarshalEasyJSON

func (v WebData3UserState) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (WebData3UserState) MarshalJSON

func (v WebData3UserState) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*WebData3UserState) UnmarshalEasyJSON

func (v *WebData3UserState) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*WebData3UserState) UnmarshalJSON

func (v *WebData3UserState) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type WebsocketClient

type WebsocketClient struct {
	// contains filtered or unexported fields
}

func NewWebsocketClient

func NewWebsocketClient(baseURL string, opts ...WsOpt) *WebsocketClient

func (*WebsocketClient) ActiveAssetCtx

func (w *WebsocketClient) ActiveAssetCtx(
	params ActiveAssetCtxSubscriptionParams,
	callback func(ActiveAssetCtx, error),
) (*Subscription, error)

func (*WebsocketClient) AllMids

func (w *WebsocketClient) AllMids(
	params AllMidsSubscriptionParams,
	callback func(AllMids, error),
) (*Subscription, error)

func (*WebsocketClient) Bbo

func (w *WebsocketClient) Bbo(
	params BboSubscriptionParams,
	callback func(Bbo, error),
) (*Subscription, error)

func (*WebsocketClient) Candles

func (w *WebsocketClient) Candles(
	params CandlesSubscriptionParams,
	callback func(Candle, error),
) (*Subscription, error)

func (*WebsocketClient) ClearinghouseState

func (w *WebsocketClient) ClearinghouseState(
	params ClearinghouseStateSubscriptionParams,
	callback func(ClearinghouseState, error),
) (*Subscription, error)

func (*WebsocketClient) Close

func (w *WebsocketClient) Close() error

func (*WebsocketClient) Connect

func (w *WebsocketClient) Connect(ctx context.Context) error

func (*WebsocketClient) L2Book

func (w *WebsocketClient) L2Book(
	params L2BookSubscriptionParams,
	callback func(L2Book, error),
) (*Subscription, error)

func (*WebsocketClient) Notification

func (w *WebsocketClient) Notification(
	params NotificationSubscriptionParams,
	callback func(Notification, error),
) (*Subscription, error)

func (*WebsocketClient) OpenOrders

func (w *WebsocketClient) OpenOrders(
	params OpenOrdersSubscriptionParams,
	callback func(OpenOrders, error),
) (*Subscription, error)

func (*WebsocketClient) OrderFills

func (w *WebsocketClient) OrderFills(
	params OrderFillsSubscriptionParams,
	callback func(WsOrderFills, error),
) (*Subscription, error)

func (*WebsocketClient) OrderUpdates

func (w *WebsocketClient) OrderUpdates(
	params OrderUpdatesSubscriptionParams,
	callback func([]WsOrder, error),
) (*Subscription, error)

func (*WebsocketClient) Trades

func (w *WebsocketClient) Trades(
	params TradesSubscriptionParams,
	callback func([]Trade, error),
) (*Subscription, error)

func (*WebsocketClient) TwapStates

func (w *WebsocketClient) TwapStates(
	params TwapStatesSubscriptionParams,
	callback func(TwapStates, error),
) (*Subscription, error)

func (*WebsocketClient) WebData2

func (w *WebsocketClient) WebData2(
	params WebData2SubscriptionParams,
	callback func(WebData2, error),
) (*Subscription, error)

func (*WebsocketClient) WebData3

func (w *WebsocketClient) WebData3(
	params WebData3SubscriptionParams,
	callback func(WebData3, error),
) (*Subscription, error)

type WithdrawFromBridgeAction

type WithdrawFromBridgeAction struct {
	Type        string `json:"type"        msgpack:"type"`
	Destination string `json:"destination" msgpack:"destination"`
	Amount      string `json:"amount"      msgpack:"amount"`
	Time        int64  `json:"time"        msgpack:"time"`
}

WithdrawFromBridgeAction represents withdraw from bridge action

func (WithdrawFromBridgeAction) MarshalEasyJSON

func (v WithdrawFromBridgeAction) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (WithdrawFromBridgeAction) MarshalJSON

func (v WithdrawFromBridgeAction) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*WithdrawFromBridgeAction) UnmarshalEasyJSON

func (v *WithdrawFromBridgeAction) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*WithdrawFromBridgeAction) UnmarshalJSON

func (v *WithdrawFromBridgeAction) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type WsBasicOrder

type WsBasicOrder struct {
	Coin      string  `json:"coin"`
	Side      string  `json:"side"`
	LimitPx   string  `json:"limitPx"`
	Sz        string  `json:"sz"`
	Oid       int64   `json:"oid"`
	Timestamp int64   `json:"timestamp"`
	OrigSz    string  `json:"origSz"`
	Cloid     *string `json:"cloid"`
}

func (WsBasicOrder) MarshalEasyJSON

func (v WsBasicOrder) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (WsBasicOrder) MarshalJSON

func (v WsBasicOrder) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*WsBasicOrder) UnmarshalEasyJSON

func (v *WsBasicOrder) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*WsBasicOrder) UnmarshalJSON

func (v *WsBasicOrder) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type WsMsg

type WsMsg struct {
	Channel string         `json:"channel"`
	Data    map[string]any `json:"data"`
}

WsMsg represents a WebSocket message with a channel and data payload.

func (WsMsg) MarshalEasyJSON

func (v WsMsg) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (WsMsg) MarshalJSON

func (v WsMsg) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*WsMsg) UnmarshalEasyJSON

func (v *WsMsg) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*WsMsg) UnmarshalJSON

func (v *WsMsg) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type WsOpt

type WsOpt = Opt[WebsocketClient]

func WsOptDebugMode

func WsOptDebugMode() WsOpt

func WsOptDialer

func WsOptDialer(dialer *websocket.Dialer) WsOpt

WsOptDialer allows setting a custom websocket.Dialer

func WsOptReadTimeout

func WsOptReadTimeout(timeout time.Duration) WsOpt

WsOptReadTimeout sets the maximum duration to wait for a single read from the server. If no message is received within the timeout the connection is closed and a reconnection is attempted. Must exceed the internal ping interval (50 s). Defaults to 90 s.

type WsOrder

type WsOrder struct {
	Order           WsBasicOrder     `json:"order"`
	Status          OrderStatusValue `json:"status"`
	StatusTimestamp int64            `json:"statusTimestamp"`
}

func (WsOrder) MarshalEasyJSON

func (v WsOrder) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (WsOrder) MarshalJSON

func (v WsOrder) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*WsOrder) UnmarshalEasyJSON

func (v *WsOrder) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*WsOrder) UnmarshalJSON

func (v *WsOrder) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type WsOrderFill

type WsOrderFill struct {
	Coin          string           `json:"coin"`
	Px            string           `json:"px"` // price
	Sz            string           `json:"sz"` // size
	Side          string           `json:"side"`
	Time          int64            `json:"time"`
	StartPosition string           `json:"startPosition"`
	Dir           string           `json:"dir"` // used for frontend display
	ClosedPnl     string           `json:"closedPnl"`
	Hash          string           `json:"hash"`    // L1 transaction hash
	Oid           int64            `json:"oid"`     // order id
	Crossed       bool             `json:"crossed"` // whether order crossed the spread (was taker)
	Fee           string           `json:"fee"`     // negative means rebate
	Tid           int64            `json:"tid"`     // unique trade id
	Liquidation   *FillLiquidation `json:"liquidation,omitempty"`
	FeeToken      string           `json:"feeToken"`             // the token the fee was paid in
	BuilderFee    *string          `json:"builderFee,omitempty"` // amount paid to builder, also included in fee
}

func (WsOrderFill) MarshalEasyJSON

func (v WsOrderFill) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (WsOrderFill) MarshalJSON

func (v WsOrderFill) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*WsOrderFill) UnmarshalEasyJSON

func (v *WsOrderFill) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*WsOrderFill) UnmarshalJSON

func (v *WsOrderFill) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type WsOrderFills

type WsOrderFills struct {
	IsSnapshot bool          `json:"isSnapshot"`
	User       string        `json:"user"`
	Fills      []WsOrderFill `json:"fills"`
}

func (WsOrderFills) Key

func (w WsOrderFills) Key() string

func (WsOrderFills) MarshalEasyJSON

func (v WsOrderFills) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (WsOrderFills) MarshalJSON

func (v WsOrderFills) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*WsOrderFills) UnmarshalEasyJSON

func (v *WsOrderFills) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*WsOrderFills) UnmarshalJSON

func (v *WsOrderFills) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type WsOrders

type WsOrders []WsOrder

func (WsOrders) Key

func (w WsOrders) Key() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL