Add orders endpoint
This commit is contained in:
@@ -5,7 +5,7 @@ import { examples } from './examples';
|
||||
import { md } from './md';
|
||||
import { generateParameters } from './parameters';
|
||||
import { generateResponses } from './responses';
|
||||
// We need to replace the `$ref`s to be openAPI compliant.
|
||||
// We need to replace the `$ref`s to be OpenAPI compliant.
|
||||
const openApiSchemas = JSON.parse(JSON.stringify(schemas).replace(/(\/\w+)/g, match => `#/components/schemas${match}`));
|
||||
|
||||
export const api: OpenApiSpec = {
|
||||
@@ -55,6 +55,131 @@ export const api: OpenApiSpec = {
|
||||
),
|
||||
},
|
||||
},
|
||||
'/v2/orders': {
|
||||
get: {
|
||||
description:
|
||||
'Retrieves a list of orders given query parameters. This endpoint should be [paginated](#section/Pagination). For querying an entire orderbook snapshot, the [orderbook endpoint](#operation/getOrderbook) is recommended. If both makerAssetData and takerAssetData are specified, returned orders will be sorted by price determined by (takerTokenAmount/makerTokenAmount) in ascending order. By default, orders returned by this endpoint are unsorted.',
|
||||
operationId: 'getOrders',
|
||||
parameters: generateParameters(
|
||||
[
|
||||
{
|
||||
name: 'makerAssetProxyId',
|
||||
in: 'query',
|
||||
description: `The maker [asset proxy id](https://0xproject.com/docs/0x.js#types-AssetProxyId) (example: "0xf47261b0" for ERC20, "0x02571792" for ERC721).`,
|
||||
example: '0xf47261b0',
|
||||
schema: {
|
||||
$ref: '#/components/schemas/hexSchema',
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'takerAssetProxyId',
|
||||
in: 'query',
|
||||
description: `The taker asset [asset proxy id](https://0xproject.com/docs/0x.js#types-AssetProxyId) (example: "0xf47261b0" for ERC20, "0x02571792" for ERC721).`,
|
||||
example: '0x02571792',
|
||||
schema: {
|
||||
$ref: '#/components/schemas/hexSchema',
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'makerAssetAddress',
|
||||
in: 'query',
|
||||
description: `The contract address for the maker asset.`,
|
||||
example: '0xe41d2489571d322189246dafa5ebde1f4699f498',
|
||||
schema: {
|
||||
$ref: '#/components/schemas/addressSchema',
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'takerAssetAddress',
|
||||
in: 'query',
|
||||
description: `The contract address for the taker asset.`,
|
||||
example: '0xe41d2489571d322189246dafa5ebde1f4699f498',
|
||||
schema: {
|
||||
$ref: '#/components/schemas/addressSchema',
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'exchangeAddress',
|
||||
in: 'query',
|
||||
description: `Same as exchangeAddress in the [0x Protocol v2 Specification](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#order-message-format)`,
|
||||
example: '0xe41d2489571d322189246dafa5ebde1f4699f498',
|
||||
schema: {
|
||||
$ref: '#/components/schemas/addressSchema',
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'senderAddress',
|
||||
in: 'query',
|
||||
description: `Same as senderAddress in the [0x Protocol v2 Specification](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#order-message-format)`,
|
||||
example: '0xe41d2489571d322189246dafa5ebde1f4699f498',
|
||||
schema: {
|
||||
$ref: '#/components/schemas/addressSchema',
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'makerAssetData',
|
||||
in: 'query',
|
||||
description: `Same as makerAssetData in the [0x Protocol v2 Specification](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#order-message-format)`,
|
||||
example: '0xe41d2489571d322189246dafa5ebde1f4699f498',
|
||||
schema: {
|
||||
$ref: '#/components/schemas/hexSchema',
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'takerAssetData',
|
||||
in: 'query',
|
||||
description: `Same as takerAssetData in the [0x Protocol v2 Specification](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#order-message-format)`,
|
||||
example: '0xe41d2489571d322189246dafa5ebde1f4699f498',
|
||||
schema: {
|
||||
$ref: '#/components/schemas/hexSchema',
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'traderAssetData',
|
||||
in: 'query',
|
||||
description: `Same as traderAssetData in the [0x Protocol v2 Specification](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#order-message-format)`,
|
||||
example: '0xe41d2489571d322189246dafa5ebde1f4699f498',
|
||||
schema: {
|
||||
$ref: '#/components/schemas/hexSchema',
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'makerAddress',
|
||||
in: 'query',
|
||||
description: `Same as makerAddress in the [0x Protocol v2 Specification](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#order-message-format)`,
|
||||
example: '0xe41d2489571d322189246dafa5ebde1f4699f498',
|
||||
schema: {
|
||||
$ref: '#/components/schemas/addressSchema',
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'traderAddress',
|
||||
in: 'query',
|
||||
description: `Same as traderAddress in the [0x Protocol v2 Specification](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#order-message-format)`,
|
||||
example: '0xe41d2489571d322189246dafa5ebde1f4699f498',
|
||||
schema: {
|
||||
$ref: '#/components/schemas/addressSchema',
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'feeRecipientAddress',
|
||||
in: 'query',
|
||||
description: `Same as feeRecipientAddress in the [0x Protocol v2 Specification](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#order-message-format)`,
|
||||
example: '0xe41d2489571d322189246dafa5ebde1f4699f498',
|
||||
schema: {
|
||||
$ref: '#/components/schemas/addressSchema',
|
||||
},
|
||||
},
|
||||
],
|
||||
true,
|
||||
),
|
||||
responses: generateResponses(
|
||||
'relayerApiOrdersResponseSchema',
|
||||
examples.relayerApiOrdersResponse,
|
||||
`Returns a collection of 0x orders with meta-data as specified by query params`,
|
||||
),
|
||||
},
|
||||
},
|
||||
},
|
||||
components: {
|
||||
schemas: openApiSchemas,
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
import { validationError } from './errors';
|
||||
import { relayerApiAssetDataPairsResponse } from './relayerApiAssetDataPairsResponse';
|
||||
import { relayerApiOrdersResponse } from './relayerApiOrdersResponse';
|
||||
|
||||
export const examples = {
|
||||
validationError,
|
||||
relayerApiAssetDataPairsResponse,
|
||||
relayerApiOrdersResponse,
|
||||
};
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
export const relayerApiAssetDataPairsResponse = {
|
||||
total: 43,
|
||||
page: 1,
|
||||
perPage: 100,
|
||||
records: [
|
||||
{
|
||||
assetDataA: {
|
||||
minAmount: '0',
|
||||
maxAmount: '10000000000000000000',
|
||||
precision: 5,
|
||||
assetData: '0xf47261b04c32345ced77393b3530b1eed0f346429d',
|
||||
},
|
||||
assetDataB: {
|
||||
minAmount: '0',
|
||||
maxAmount: '50000000000000000000',
|
||||
precision: 5,
|
||||
assetData: '0x0257179264389b814a946f3e92105513705ca6b990',
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
26
packages/sra-api/src/examples/relayerApiOrdersResponse.ts
Normal file
26
packages/sra-api/src/examples/relayerApiOrdersResponse.ts
Normal file
@@ -0,0 +1,26 @@
|
||||
export const relayerApiOrdersResponse = {
|
||||
total: 984,
|
||||
page: 1,
|
||||
perPage: 100,
|
||||
records: [
|
||||
{
|
||||
order: {
|
||||
makerAddress: '0x9e56625509c2f60af937f23b7b532600390e8c8b',
|
||||
takerAddress: '0xa2b31dacf30a9c50ca473337c01d8a201ae33e32',
|
||||
feeRecipientAddress: '0xb046140686d052fff581f63f8136cce132e857da',
|
||||
senderAddress: '0xa2b31dacf30a9c50ca473337c01d8a201ae33e32',
|
||||
makerAssetAmount: '10000000000000000',
|
||||
takerAssetAmount: '20000000000000000',
|
||||
makerFee: '100000000000000',
|
||||
takerFee: '200000000000000',
|
||||
expirationTimeSeconds: '1532560590',
|
||||
salt: '1532559225',
|
||||
makerAssetData: '0xf47261b04c32345ced77393b3530b1eed0f346429d',
|
||||
takerAssetData: '0x0257179264389b814a946f3e92105513705ca6b990',
|
||||
exchangeAddress: '0x12459c951127e0c374ff9105dda097662a027093',
|
||||
signature: '0x012761a3ed31b43c8780e905a260a35faefcc527be7516aa11c0256729b5b351bc33',
|
||||
},
|
||||
metaData: {},
|
||||
},
|
||||
],
|
||||
};
|
||||
Reference in New Issue
Block a user