Relay Types—v1.2.1

Custom type definitions used by the Radar API and SDK.

Enums

UserOrderType

The order type specified by the user.

enum UserOrderType {
BUY = 'BUY',
SELL = 'SELL'
}

RadarOrderType

The order type used by Radar on the backend.

enum RadarOrderType {
BID = 'BID',
ASK = 'ASK'
}

RadarOrderState

Various order states used by Radar.

enum RadarOrderState {
OPEN = 'OPEN',
FILLED = 'FILLED',
CANCELED = 'CANCELLED',
EXPIRED = 'EXPIRED',
UNFUNDED = 'UNFUNDED'
}

WebsocketAction

The order book WebSocket action.

enum WebsocketAction {
FILL = 'FILL',
NEW = 'NEW',
CANCEL = 'CANCEL',
REMOVE = 'REMOVE'
}

WebsocketRequestTopic

The WebSocket request topic.

enum WebsocketRequestTopic {
BOOK = 'BOOK',
TICKER = 'TICKER',
CANDLE = 'CANDLE'
}

WebsocketRequestType

The type of WebSocket request.

enum WebsocketRequestType {
SUBSCRIBE = 'SUBSCRIBE',
UNSUBSCRIBE = 'UNSUBSCRIBE'
}

Interfaces

RadarToken

Information specific to a single token.

interface RadarToken {
address: string;
symbol: string;
name: string;
decimals: number;
zeroex_official: boolean;
active: boolean;
createdDate: string;
quote: boolean;
}

RadarTicker

Top-Level information about the most recent trade and best bid/ask for a given market.

interface RadarTicker {
transactionHash: string; // Last trade tx hash
price: BigNumber; // Last trade price
size: BigNumber; // Last trade size (in quote)
timestamp: number; // Timestamp of last trade
bestBid: BigNumber; // Best bid on the book
bestAsk: BigNumber; // Best ask on the book
spreadPercentage: BigNumber; // The bid-ask spread percentage
}

RadarStats

Order book depth information and 24 hour volume statistics for a given market.

interface RadarStats {
numBidsWithinRange: number; // Number of bids within a defined range (Example: Within 20% of the best bid)
numAsksWithinRange: number; // Number of asks within a defined range (Example: Within 20% of the best ask)
baseTokenAvailable: BigNumber; // Amount of base token available on the book
quoteTokenAvailable: BigNumber; // Amount of quote token available on the book
volume24Hour: BigNumber; // 24 hour volume
percentChange24Hour: BigNumber; // 24 hour price change percentage
}

RadarHistory

Historial information for a given market.

interface RadarHistory {
price24Hour: BigNumber[]; // The 24 hour price history
}

RadarMarketBase

General Market Information

interface RadarMarketBase {
displayName: string; // Example: ZRX/WETH
baseTokenAddress: string;
quoteTokenAddress: string;
baseTokenDecimals: number;
quoteTokenDecimals: number;
quoteIncrement: number; // Maximum precision allowed for the market. Example: 7 (decimal places)
minOrderSize: BigNumber; // Calculated min base token size based on last trade price
maxOrderSize: BigNumber; // Calculated max base token size
score: number; // A score used to rank most active markets
}

RadarMarket

Market information for a base/quote token pair.

interface RadarMarket extends Partial<RadarMarketBase> {
id: string; // Example: ZRX-WETH. (Mandatory)
ticker?: RadarTicker; // (Optional)
stats?: RadarStats; // (Optional)
history?: RadarHistory; // (Optional)
}

Order

ZeroEx Order

interface Order {
senderAddress: string;
makerAddress: string;
takerAddress: string;
makerFee: BigNumber;
takerFee: BigNumber;
makerAssetAmount: BigNumber;
takerAssetAmount: BigNumber;
makerAssetData: string;
takerAssetData: string;
salt: BigNumber;
exchangeAddress: string;
feeRecipientAddress: string;
expirationTimeSeconds: BigNumber;
}

SignedOrder

ZeroEx Signed Order

interface SignedOrder extends Order {
signature: string;
}

RadarSignedOrder

ZRX Signed Order with included order state.

interface RadarSignedOrder {
orderHash: string;
type: RadarOrderType;
state: RadarOrderState;
baseTokenAddress: string;
quoteTokenAddress: string;
remainingBaseTokenAmount: BigNumber, // converted amount
remainingQuoteTokenAmount: BigNumber // converted amount
price: BigNumber;
createdDate: BigNumber; // unix
signedOrder: SignedOrder;
}

RadarLimitOrderRequest

A request for an unsigned order at the specified quantity and price, which can then be signed and POSTed back.

interface RadarLimitOrder {
type: UserOrderType;
quantity: BigNumber;
price: BigNumber;
expiration: BigNumber;
}

UnsignedOrder

An unsigned order at the specified quantity and price.

interface UnsignedOrder {
senderAddress: string;
makerAddress: 'SET';
takerAddress: string;
makerFee: BigNumber;
takerFee: BigNumber;
makerAssetAmount: BigNumber;
takerAssetAmount: BigNumber;
makerAssetData: string;
takerAssetData: string;
salt: BigNumber;
exchangeAddress: string;
feeRecipientAddress: string;
expirationTimeSeconds: BigNumber;
signature: 'SET';
}

RadarMarketOrderRequest

A request for fillable orders, up to the specified quantity, at the best price.

interface RadarMarketOrder {
type: UserOrderType;
quantity : BigNumber;
}

RadarMarketOrderResponse

A response with price information and fillable orders at the best price.

interface RadarMarketOrderResponse {
averagePrice: BigNumber;
bestPrice: BigNumber;
worstPrice: BigNumber;
spread: BigNumber;
orders: SignedOrder[];
}

RadarOrderFeeResponse

Fee information for a given market.

interface RadarOrderFeeResponse {
makerFee: BigNumber;
takerFee: BigNumber;
feeRecipientAddress: string;
gasEstimate?: BigNumber;
}

RadarBook

The order book for a given market.

interface RadarBook {
baseTokenAddress: string;
quoteTokenAddress: string;
bids: RadarSignedOrder[];
asks: RadarSignedOrder[];
}

RadarCandle

Open-high-low-close chart data.

interface Ohlc {
open: BigNumber;
high: BigNumber;
low: BigNumber;
close: BigNumber;
}
interface RadarCandle extends Ohlc {
startBlock: number;
startBlockTimestamp: number;
endBlock: number; // the last block included in this candle (inclusive)
endBlockTimestamp: number;
baseTokenVolume: BigNumber;
quoteTokenVolume: BigNumber;
}

RadarFill

A fill without the RadarSignedOrder information.

interface RadarFill extends MarketEvent, OnChainEvent {
type: UserOrderType;
blockNumber: number;
makerAddress: string;
takerAddress: string;
feeRecipientAddress: string;
makerFeePaid: BigNumber; // converted
takerFeePaid: BigNumber; // converted
filledBaseTokenAmount: BigNumber; // converted
filledQuoteTokenAmount: BigNumber; // converted
orderHash: string;
timestamp: number;
outlier: boolean; // Whether or not the fill is an outlier
}

Radar Websocket Events

MarketEvent

An event tied to a market (base/quote).

interface MarketEvent {
baseTokenAddress: string;
quoteTokenAddress: string;
}

OrderEvent

An event containing a RadarSignedOrder.

interface OrderEvent {
order: RadarSignedOrder;
}

OnChainEvent

An on-chain event (transaction).

interface OnChainEvent {
transactionHash: string;
}

Book Events

interface RadarNewOrder extends MarketEvent, OrderEvent { }
interface RadarRemoveOrder extends MarketEvent {
reason: string;
orderType: RadarOrderType;
orderHash: string;
}
interface RadarCancelOrder extends MarketEvent, OnChainEvent {
orderType: RadarOrderType;
orderHash: string;
}
interface RadarFillOrder extends RadarFill, OrderEvent {
}

WebsocketEvent

interface WebsocketEvent {
action: WebsocketAction;
event: RadarFillOrder | RadarNewOrder | RadarCancelOrder | RadarRemoveOrder;
}

Radar WebSocket Request Types

Radar Request Types utilized by the WebSocket Endpoint.

RadarWebsocketRequest

interface RadarWebsocketRequest {
type: WebsocketRequestType;
requestId?: number;
}

RadarSubscribeRequest

interface RadarSubscribeRequest extends RadarWebsocketRequest {
type: WebsocketRequestType.SUBSCRIBE;
topic: WebsocketRequestTopic;
market: string;
}

RadarUnsubscribeRequest

interface RadarUnsubscribeRequest extends RadarWebsocketRequest {
type: WebsocketRequestType.UNSUBSCRIBE;
topic: WebsocketRequestTopic;
market: string;
}

Radar WebSocket Response Types

Radar Response Types utilized by the WebSocket Endpoint.

RadarWebsocketResponse

interface RadarWebsocketResponse {
type: WebsocketRequestType | 'ERROR';
requestId?: number;
}