Merge branch 'develop' of github.com:vegaprotocol/frontend-monorepo into develop
This commit is contained in:
commit
5692d4e74c
@ -2,7 +2,6 @@ import { removeDecimal } from '@vegaprotocol/cypress';
|
|||||||
import * as Schema from '@vegaprotocol/types';
|
import * as Schema from '@vegaprotocol/types';
|
||||||
import {
|
import {
|
||||||
OrderStatusMapping,
|
OrderStatusMapping,
|
||||||
OrderTimeInForceMapping,
|
|
||||||
OrderTypeMapping,
|
OrderTypeMapping,
|
||||||
Side,
|
Side,
|
||||||
} from '@vegaprotocol/types';
|
} from '@vegaprotocol/types';
|
||||||
@ -17,7 +16,6 @@ const orderStatus = 'status';
|
|||||||
const orderRemaining = 'remaining';
|
const orderRemaining = 'remaining';
|
||||||
const orderPrice = 'price';
|
const orderPrice = 'price';
|
||||||
const orderTimeInForce = 'timeInForce';
|
const orderTimeInForce = 'timeInForce';
|
||||||
const orderCreatedAt = 'createdAt';
|
|
||||||
const orderUpdatedAt = 'updatedAt';
|
const orderUpdatedAt = 'updatedAt';
|
||||||
const assetSelectField = 'select[name="asset"]';
|
const assetSelectField = 'select[name="asset"]';
|
||||||
const amountField = 'input[name="amount"]';
|
const amountField = 'input[name="amount"]';
|
||||||
@ -260,10 +258,7 @@ describe('capsule', { tags: '@slow', testIsolation: true }, () => {
|
|||||||
OrderStatusMapping.STATUS_ACTIVE
|
OrderStatusMapping.STATUS_ACTIVE
|
||||||
);
|
);
|
||||||
|
|
||||||
cy.get(`[col-id='${orderRemaining}']`).should(
|
cy.get(`[col-id='${orderRemaining}']`).should('contain.text', '0.00');
|
||||||
'contain.text',
|
|
||||||
`0.00/${order.size}`
|
|
||||||
);
|
|
||||||
|
|
||||||
cy.get(`[col-id='${orderPrice}']`).then(($price) => {
|
cy.get(`[col-id='${orderPrice}']`).then(($price) => {
|
||||||
expect(parseFloat($price.text())).to.equal(parseFloat(order.price));
|
expect(parseFloat($price.text())).to.equal(parseFloat(order.price));
|
||||||
@ -271,10 +266,10 @@ describe('capsule', { tags: '@slow', testIsolation: true }, () => {
|
|||||||
|
|
||||||
cy.get(`[col-id='${orderTimeInForce}']`).should(
|
cy.get(`[col-id='${orderTimeInForce}']`).should(
|
||||||
'contain.text',
|
'contain.text',
|
||||||
OrderTimeInForceMapping[order.timeInForce]
|
'GTC'
|
||||||
);
|
);
|
||||||
|
|
||||||
checkIfDataAndTimeOfCreationAndUpdateIsEqual(orderCreatedAt);
|
checkIfDataAndTimeOfCreationAndUpdateIsEqual(orderUpdatedAt);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -68,14 +68,15 @@ describe('market info is displayed', { tags: '@smoke' }, () => {
|
|||||||
|
|
||||||
validateMarketDataRow(0, 'Name', 'BTCUSD Monthly (30 Jun 2022)');
|
validateMarketDataRow(0, 'Name', 'BTCUSD Monthly (30 Jun 2022)');
|
||||||
validateMarketDataRow(1, 'Market ID', 'market-0');
|
validateMarketDataRow(1, 'Market ID', 'market-0');
|
||||||
|
validateMarketDataRow(2, 'Parent Market ID', 'market-1');
|
||||||
validateMarketDataRow(
|
validateMarketDataRow(
|
||||||
2,
|
3,
|
||||||
'Trading Mode',
|
'Trading Mode',
|
||||||
MarketTradingModeMapping.TRADING_MODE_CONTINUOUS
|
MarketTradingModeMapping.TRADING_MODE_CONTINUOUS
|
||||||
);
|
);
|
||||||
validateMarketDataRow(3, 'Market Decimal Places', '5');
|
validateMarketDataRow(4, 'Market Decimal Places', '5');
|
||||||
validateMarketDataRow(4, 'Position Decimal Places', '0');
|
validateMarketDataRow(5, 'Position Decimal Places', '0');
|
||||||
validateMarketDataRow(5, 'Settlement Asset Decimal Places', '5');
|
validateMarketDataRow(6, 'Settlement Asset Decimal Places', '5');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('instrument displayed', () => {
|
it('instrument displayed', () => {
|
||||||
|
@ -27,6 +27,7 @@ import {
|
|||||||
import { TradingViews } from './trade-views';
|
import { TradingViews } from './trade-views';
|
||||||
import { MarketSelector } from './market-selector';
|
import { MarketSelector } from './market-selector';
|
||||||
import { HeaderStats } from './header-stats';
|
import { HeaderStats } from './header-stats';
|
||||||
|
import { MarketSuccessorBanner } from '../../components/market-banner';
|
||||||
|
|
||||||
interface TradeGridProps {
|
interface TradeGridProps {
|
||||||
market: Market | null;
|
market: Market | null;
|
||||||
@ -317,6 +318,7 @@ export const TradeGrid = ({ market, pinnedAsset }: TradeGridProps) => {
|
|||||||
<HeaderStats market={market} />
|
<HeaderStats market={market} />
|
||||||
</div>
|
</div>
|
||||||
<div className="col-span-2">
|
<div className="col-span-2">
|
||||||
|
<MarketSuccessorBanner market={market} />
|
||||||
<OracleBanner marketId={market?.id || ''} />
|
<OracleBanner marketId={market?.id || ''} />
|
||||||
</div>
|
</div>
|
||||||
{sidebarOpen && (
|
{sidebarOpen && (
|
||||||
|
@ -21,6 +21,7 @@ import { HeaderStats } from './header-stats';
|
|||||||
import * as DialogPrimitives from '@radix-ui/react-dialog';
|
import * as DialogPrimitives from '@radix-ui/react-dialog';
|
||||||
import { HeaderTitle } from '../../components/header';
|
import { HeaderTitle } from '../../components/header';
|
||||||
import { MarketSelector } from './market-selector';
|
import { MarketSelector } from './market-selector';
|
||||||
|
import { MarketSuccessorBanner } from '../../components/market-banner';
|
||||||
|
|
||||||
interface TradePanelsProps {
|
interface TradePanelsProps {
|
||||||
market: Market | null;
|
market: Market | null;
|
||||||
@ -92,6 +93,7 @@ export const TradePanels = ({
|
|||||||
<HeaderStats market={market} />
|
<HeaderStats market={market} />
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
|
<MarketSuccessorBanner market={market} />
|
||||||
<OracleBanner marketId={market?.id || ''} />
|
<OracleBanner marketId={market?.id || ''} />
|
||||||
</div>
|
</div>
|
||||||
<div className="h-full">
|
<div className="h-full">
|
||||||
|
1
apps/trading/components/market-banner/index.ts
Normal file
1
apps/trading/components/market-banner/index.ts
Normal file
@ -0,0 +1 @@
|
|||||||
|
export * from './market-successor-banner';
|
@ -0,0 +1,188 @@
|
|||||||
|
import { render, screen } from '@testing-library/react';
|
||||||
|
import { MockedProvider } from '@apollo/react-testing';
|
||||||
|
import * as dataProviders from '@vegaprotocol/data-provider';
|
||||||
|
import { MarketSuccessorBanner } from './market-successor-banner';
|
||||||
|
import * as Types from '@vegaprotocol/types';
|
||||||
|
import * as allUtils from '@vegaprotocol/utils';
|
||||||
|
import type { Market } from '@vegaprotocol/markets';
|
||||||
|
import type { PartialDeep } from 'type-fest';
|
||||||
|
|
||||||
|
const market = {
|
||||||
|
id: 'marketId',
|
||||||
|
tradableInstrument: {
|
||||||
|
instrument: {
|
||||||
|
metadata: {
|
||||||
|
tags: [],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
marketTimestamps: {
|
||||||
|
close: null,
|
||||||
|
},
|
||||||
|
successorMarketID: 'successorMarketID',
|
||||||
|
} as unknown as Market;
|
||||||
|
|
||||||
|
let mockDataSuccessorMarket: PartialDeep<Market> | null = null;
|
||||||
|
jest.mock('@vegaprotocol/data-provider', () => ({
|
||||||
|
...jest.requireActual('@vegaprotocol/data-provider'),
|
||||||
|
useDataProvider: jest.fn().mockImplementation((args) => {
|
||||||
|
if (args.skip) {
|
||||||
|
return {
|
||||||
|
data: null,
|
||||||
|
error: null,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
data: mockDataSuccessorMarket,
|
||||||
|
error: null,
|
||||||
|
};
|
||||||
|
}),
|
||||||
|
}));
|
||||||
|
jest.mock('@vegaprotocol/utils', () => ({
|
||||||
|
...jest.requireActual('@vegaprotocol/utils'),
|
||||||
|
getMarketExpiryDate: jest.fn(),
|
||||||
|
}));
|
||||||
|
let mockCandles = {};
|
||||||
|
jest.mock('@vegaprotocol/markets', () => ({
|
||||||
|
...jest.requireActual('@vegaprotocol/markets'),
|
||||||
|
useCandles: () => mockCandles,
|
||||||
|
}));
|
||||||
|
|
||||||
|
describe('MarketSuccessorBanner', () => {
|
||||||
|
beforeEach(() => {
|
||||||
|
jest.clearAllMocks();
|
||||||
|
mockDataSuccessorMarket = {
|
||||||
|
id: 'successorMarketID',
|
||||||
|
state: Types.MarketState.STATE_ACTIVE,
|
||||||
|
tradingMode: Types.MarketTradingMode.TRADING_MODE_CONTINUOUS,
|
||||||
|
tradableInstrument: {
|
||||||
|
instrument: {
|
||||||
|
name: 'Successor Market Name',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
});
|
||||||
|
describe('should be hidden', () => {
|
||||||
|
it('when no market', () => {
|
||||||
|
const { container } = render(<MarketSuccessorBanner market={null} />, {
|
||||||
|
wrapper: MockedProvider,
|
||||||
|
});
|
||||||
|
expect(container).toBeEmptyDOMElement();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('when no successorMarketID', () => {
|
||||||
|
const amendedMarket = {
|
||||||
|
...market,
|
||||||
|
successorMarketID: null,
|
||||||
|
};
|
||||||
|
const { container } = render(
|
||||||
|
<MarketSuccessorBanner market={amendedMarket} />,
|
||||||
|
{
|
||||||
|
wrapper: MockedProvider,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
expect(container).toBeEmptyDOMElement();
|
||||||
|
expect(dataProviders.useDataProvider).lastCalledWith(
|
||||||
|
expect.objectContaining({ skip: true })
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('no successor market data', () => {
|
||||||
|
mockDataSuccessorMarket = null;
|
||||||
|
const { container } = render(<MarketSuccessorBanner market={market} />, {
|
||||||
|
wrapper: MockedProvider,
|
||||||
|
});
|
||||||
|
expect(container).toBeEmptyDOMElement();
|
||||||
|
expect(dataProviders.useDataProvider).lastCalledWith(
|
||||||
|
expect.objectContaining({
|
||||||
|
variables: { marketId: 'successorMarketID' },
|
||||||
|
skip: false,
|
||||||
|
})
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('successor market not in continuous mode', () => {
|
||||||
|
mockDataSuccessorMarket = {
|
||||||
|
...mockDataSuccessorMarket,
|
||||||
|
tradingMode: Types.MarketTradingMode.TRADING_MODE_NO_TRADING,
|
||||||
|
};
|
||||||
|
const { container } = render(<MarketSuccessorBanner market={market} />, {
|
||||||
|
wrapper: MockedProvider,
|
||||||
|
});
|
||||||
|
expect(container).toBeEmptyDOMElement();
|
||||||
|
expect(dataProviders.useDataProvider).lastCalledWith(
|
||||||
|
expect.objectContaining({
|
||||||
|
variables: { marketId: 'successorMarketID' },
|
||||||
|
skip: false,
|
||||||
|
})
|
||||||
|
);
|
||||||
|
expect(allUtils.getMarketExpiryDate).toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('successor market is not active', () => {
|
||||||
|
mockDataSuccessorMarket = {
|
||||||
|
...mockDataSuccessorMarket,
|
||||||
|
state: Types.MarketState.STATE_PENDING,
|
||||||
|
};
|
||||||
|
const { container } = render(<MarketSuccessorBanner market={market} />, {
|
||||||
|
wrapper: MockedProvider,
|
||||||
|
});
|
||||||
|
expect(container).toBeEmptyDOMElement();
|
||||||
|
expect(dataProviders.useDataProvider).lastCalledWith(
|
||||||
|
expect.objectContaining({
|
||||||
|
variables: { marketId: 'successorMarketID' },
|
||||||
|
skip: false,
|
||||||
|
})
|
||||||
|
);
|
||||||
|
expect(allUtils.getMarketExpiryDate).toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('should be displayed', () => {
|
||||||
|
it('should be rendered', () => {
|
||||||
|
render(<MarketSuccessorBanner market={market} />, {
|
||||||
|
wrapper: MockedProvider,
|
||||||
|
});
|
||||||
|
expect(
|
||||||
|
screen.getByText('This market has been succeeded')
|
||||||
|
).toBeInTheDocument();
|
||||||
|
expect(
|
||||||
|
screen.getByRole('link', { name: 'Successor Market Name' })
|
||||||
|
).toHaveAttribute('href', '/#/markets/successorMarketID');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should display optionally successor volume', () => {
|
||||||
|
mockDataSuccessorMarket = {
|
||||||
|
...mockDataSuccessorMarket,
|
||||||
|
positionDecimalPlaces: 3,
|
||||||
|
};
|
||||||
|
mockCandles = {
|
||||||
|
oneDayCandles: [
|
||||||
|
{ volume: 123 },
|
||||||
|
{ volume: 456 },
|
||||||
|
{ volume: 789 },
|
||||||
|
{ volume: 99999 },
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
render(<MarketSuccessorBanner market={market} />, {
|
||||||
|
wrapper: MockedProvider,
|
||||||
|
});
|
||||||
|
expect(screen.getByText('has 101.367 24h vol.')).toBeInTheDocument();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should display optionally duration', () => {
|
||||||
|
jest
|
||||||
|
.spyOn(allUtils, 'getMarketExpiryDate')
|
||||||
|
.mockReturnValue(
|
||||||
|
new Date(Date.now() + 24 * 60 * 60 * 1000 + 60 * 1000)
|
||||||
|
);
|
||||||
|
render(<MarketSuccessorBanner market={market} />, {
|
||||||
|
wrapper: MockedProvider,
|
||||||
|
});
|
||||||
|
expect(
|
||||||
|
screen.getByText(/^This market expires in 1 day/)
|
||||||
|
).toBeInTheDocument();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
@ -0,0 +1,115 @@
|
|||||||
|
import { useState } from 'react';
|
||||||
|
import { isBefore, formatDuration, intervalToDuration } from 'date-fns';
|
||||||
|
import { useDataProvider } from '@vegaprotocol/data-provider';
|
||||||
|
import type { Market } from '@vegaprotocol/markets';
|
||||||
|
import {
|
||||||
|
calcCandleVolume,
|
||||||
|
marketProvider,
|
||||||
|
useCandles,
|
||||||
|
} from '@vegaprotocol/markets';
|
||||||
|
import {
|
||||||
|
ExternalLink,
|
||||||
|
Intent,
|
||||||
|
NotificationBanner,
|
||||||
|
} from '@vegaprotocol/ui-toolkit';
|
||||||
|
import {
|
||||||
|
addDecimalsFormatNumber,
|
||||||
|
getMarketExpiryDate,
|
||||||
|
isNumeric,
|
||||||
|
} from '@vegaprotocol/utils';
|
||||||
|
import { t } from '@vegaprotocol/i18n';
|
||||||
|
import * as Types from '@vegaprotocol/types';
|
||||||
|
|
||||||
|
const getExpiryDate = (tags: string[], close?: string): Date | null => {
|
||||||
|
const expiryDate = getMarketExpiryDate(tags);
|
||||||
|
return expiryDate || (close && new Date(close)) || null;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const MarketSuccessorBanner = ({
|
||||||
|
market,
|
||||||
|
}: {
|
||||||
|
market: Market | null;
|
||||||
|
}) => {
|
||||||
|
const { data: successorData } = useDataProvider({
|
||||||
|
dataProvider: marketProvider,
|
||||||
|
variables: {
|
||||||
|
marketId: market?.successorMarketID || '',
|
||||||
|
},
|
||||||
|
skip: !market?.successorMarketID,
|
||||||
|
});
|
||||||
|
const [visible, setVisible] = useState(true);
|
||||||
|
|
||||||
|
const expiry = market
|
||||||
|
? getExpiryDate(
|
||||||
|
market.tradableInstrument.instrument.metadata.tags || [],
|
||||||
|
market.marketTimestamps.close
|
||||||
|
)
|
||||||
|
: null;
|
||||||
|
|
||||||
|
const duration =
|
||||||
|
expiry && isBefore(new Date(), expiry)
|
||||||
|
? intervalToDuration({ start: new Date(), end: expiry })
|
||||||
|
: null;
|
||||||
|
|
||||||
|
const isInContinuesMode =
|
||||||
|
successorData?.state === Types.MarketState.STATE_ACTIVE &&
|
||||||
|
successorData?.tradingMode ===
|
||||||
|
Types.MarketTradingMode.TRADING_MODE_CONTINUOUS;
|
||||||
|
|
||||||
|
const { oneDayCandles } = useCandles({
|
||||||
|
marketId: successorData?.id,
|
||||||
|
});
|
||||||
|
|
||||||
|
const candleVolume = oneDayCandles?.length
|
||||||
|
? calcCandleVolume(oneDayCandles)
|
||||||
|
: null;
|
||||||
|
|
||||||
|
const successorVolume =
|
||||||
|
candleVolume && isNumeric(successorData?.positionDecimalPlaces)
|
||||||
|
? addDecimalsFormatNumber(
|
||||||
|
candleVolume,
|
||||||
|
successorData?.positionDecimalPlaces as number
|
||||||
|
)
|
||||||
|
: null;
|
||||||
|
|
||||||
|
if (isInContinuesMode && visible) {
|
||||||
|
return (
|
||||||
|
<NotificationBanner
|
||||||
|
intent={Intent.Primary}
|
||||||
|
onClose={() => {
|
||||||
|
setVisible(false);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div className="uppercase mb-1">
|
||||||
|
{t('This market has been succeeded')}
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
{duration && (
|
||||||
|
<span>
|
||||||
|
{t('This market expires in %s.', [
|
||||||
|
formatDuration(duration, {
|
||||||
|
format: [
|
||||||
|
'years',
|
||||||
|
'months',
|
||||||
|
'weeks',
|
||||||
|
'days',
|
||||||
|
'hours',
|
||||||
|
'minutes',
|
||||||
|
],
|
||||||
|
}),
|
||||||
|
])}
|
||||||
|
</span>
|
||||||
|
)}{' '}
|
||||||
|
{t('The successor market')}{' '}
|
||||||
|
<ExternalLink href={`/#/markets/${successorData?.id}`}>
|
||||||
|
{successorData?.tradableInstrument.instrument.name}
|
||||||
|
</ExternalLink>
|
||||||
|
{successorVolume && (
|
||||||
|
<span> {t('has %s 24h vol.', [successorVolume])}</span>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
</NotificationBanner>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
};
|
5
libs/markets/src/lib/__generated__/markets.ts
generated
5
libs/markets/src/lib/__generated__/markets.ts
generated
@ -7,12 +7,12 @@ export type DataSourceFilterFragment = { __typename?: 'Filter', key: { __typenam
|
|||||||
|
|
||||||
export type DataSourceSpecFragment = { __typename?: 'DataSourceDefinition', sourceType: { __typename?: 'DataSourceDefinitionExternal', sourceType: { __typename?: 'DataSourceSpecConfiguration', signers?: Array<{ __typename?: 'Signer', signer: { __typename?: 'ETHAddress', address?: string | null } | { __typename?: 'PubKey', key?: string | null } }> | null, filters?: Array<{ __typename?: 'Filter', key: { __typename?: 'PropertyKey', name?: string | null, type: Types.PropertyKeyType, numberDecimalPlaces?: number | null } }> | null } } | { __typename?: 'DataSourceDefinitionInternal' } };
|
export type DataSourceSpecFragment = { __typename?: 'DataSourceDefinition', sourceType: { __typename?: 'DataSourceDefinitionExternal', sourceType: { __typename?: 'DataSourceSpecConfiguration', signers?: Array<{ __typename?: 'Signer', signer: { __typename?: 'ETHAddress', address?: string | null } | { __typename?: 'PubKey', key?: string | null } }> | null, filters?: Array<{ __typename?: 'Filter', key: { __typename?: 'PropertyKey', name?: string | null, type: Types.PropertyKeyType, numberDecimalPlaces?: number | null } }> | null } } | { __typename?: 'DataSourceDefinitionInternal' } };
|
||||||
|
|
||||||
export type MarketFieldsFragment = { __typename?: 'Market', id: string, decimalPlaces: number, positionDecimalPlaces: number, state: Types.MarketState, tradingMode: Types.MarketTradingMode, fees: { __typename?: 'Fees', factors: { __typename?: 'FeeFactors', makerFee: string, infrastructureFee: string, liquidityFee: string } }, tradableInstrument: { __typename?: 'TradableInstrument', instrument: { __typename?: 'Instrument', id: string, name: string, code: string, metadata: { __typename?: 'InstrumentMetadata', tags?: Array<string> | null }, product: { __typename?: 'Future', quoteName: string, settlementAsset: { __typename?: 'Asset', id: string, symbol: string, name: string, decimals: number, quantum: string }, dataSourceSpecForTradingTermination: { __typename?: 'DataSourceSpec', id: string, data: { __typename?: 'DataSourceDefinition', sourceType: { __typename?: 'DataSourceDefinitionExternal', sourceType: { __typename?: 'DataSourceSpecConfiguration', signers?: Array<{ __typename?: 'Signer', signer: { __typename?: 'ETHAddress', address?: string | null } | { __typename?: 'PubKey', key?: string | null } }> | null, filters?: Array<{ __typename?: 'Filter', key: { __typename?: 'PropertyKey', name?: string | null, type: Types.PropertyKeyType, numberDecimalPlaces?: number | null } }> | null } } | { __typename?: 'DataSourceDefinitionInternal' } } }, dataSourceSpecForSettlementData: { __typename?: 'DataSourceSpec', id: string, data: { __typename?: 'DataSourceDefinition', sourceType: { __typename?: 'DataSourceDefinitionExternal', sourceType: { __typename?: 'DataSourceSpecConfiguration', signers?: Array<{ __typename?: 'Signer', signer: { __typename?: 'ETHAddress', address?: string | null } | { __typename?: 'PubKey', key?: string | null } }> | null, filters?: Array<{ __typename?: 'Filter', key: { __typename?: 'PropertyKey', name?: string | null, type: Types.PropertyKeyType, numberDecimalPlaces?: number | null } }> | null } } | { __typename?: 'DataSourceDefinitionInternal' } } }, dataSourceSpecBinding: { __typename?: 'DataSourceSpecToFutureBinding', settlementDataProperty: string, tradingTerminationProperty: string } } } }, marketTimestamps: { __typename?: 'MarketTimestamps', open: any, close: any } };
|
export type MarketFieldsFragment = { __typename?: 'Market', id: string, decimalPlaces: number, positionDecimalPlaces: number, state: Types.MarketState, tradingMode: Types.MarketTradingMode, successorMarketID?: string | null, fees: { __typename?: 'Fees', factors: { __typename?: 'FeeFactors', makerFee: string, infrastructureFee: string, liquidityFee: string } }, tradableInstrument: { __typename?: 'TradableInstrument', instrument: { __typename?: 'Instrument', id: string, name: string, code: string, metadata: { __typename?: 'InstrumentMetadata', tags?: Array<string> | null }, product: { __typename?: 'Future', quoteName: string, settlementAsset: { __typename?: 'Asset', id: string, symbol: string, name: string, decimals: number, quantum: string }, dataSourceSpecForTradingTermination: { __typename?: 'DataSourceSpec', id: string, data: { __typename?: 'DataSourceDefinition', sourceType: { __typename?: 'DataSourceDefinitionExternal', sourceType: { __typename?: 'DataSourceSpecConfiguration', signers?: Array<{ __typename?: 'Signer', signer: { __typename?: 'ETHAddress', address?: string | null } | { __typename?: 'PubKey', key?: string | null } }> | null, filters?: Array<{ __typename?: 'Filter', key: { __typename?: 'PropertyKey', name?: string | null, type: Types.PropertyKeyType, numberDecimalPlaces?: number | null } }> | null } } | { __typename?: 'DataSourceDefinitionInternal' } } }, dataSourceSpecForSettlementData: { __typename?: 'DataSourceSpec', id: string, data: { __typename?: 'DataSourceDefinition', sourceType: { __typename?: 'DataSourceDefinitionExternal', sourceType: { __typename?: 'DataSourceSpecConfiguration', signers?: Array<{ __typename?: 'Signer', signer: { __typename?: 'ETHAddress', address?: string | null } | { __typename?: 'PubKey', key?: string | null } }> | null, filters?: Array<{ __typename?: 'Filter', key: { __typename?: 'PropertyKey', name?: string | null, type: Types.PropertyKeyType, numberDecimalPlaces?: number | null } }> | null } } | { __typename?: 'DataSourceDefinitionInternal' } } }, dataSourceSpecBinding: { __typename?: 'DataSourceSpecToFutureBinding', settlementDataProperty: string, tradingTerminationProperty: string } } } }, marketTimestamps: { __typename?: 'MarketTimestamps', open: any, close: any } };
|
||||||
|
|
||||||
export type MarketsQueryVariables = Types.Exact<{ [key: string]: never; }>;
|
export type MarketsQueryVariables = Types.Exact<{ [key: string]: never; }>;
|
||||||
|
|
||||||
|
|
||||||
export type MarketsQuery = { __typename?: 'Query', marketsConnection?: { __typename?: 'MarketConnection', edges: Array<{ __typename?: 'MarketEdge', node: { __typename?: 'Market', id: string, decimalPlaces: number, positionDecimalPlaces: number, state: Types.MarketState, tradingMode: Types.MarketTradingMode, fees: { __typename?: 'Fees', factors: { __typename?: 'FeeFactors', makerFee: string, infrastructureFee: string, liquidityFee: string } }, tradableInstrument: { __typename?: 'TradableInstrument', instrument: { __typename?: 'Instrument', id: string, name: string, code: string, metadata: { __typename?: 'InstrumentMetadata', tags?: Array<string> | null }, product: { __typename?: 'Future', quoteName: string, settlementAsset: { __typename?: 'Asset', id: string, symbol: string, name: string, decimals: number, quantum: string }, dataSourceSpecForTradingTermination: { __typename?: 'DataSourceSpec', id: string, data: { __typename?: 'DataSourceDefinition', sourceType: { __typename?: 'DataSourceDefinitionExternal', sourceType: { __typename?: 'DataSourceSpecConfiguration', signers?: Array<{ __typename?: 'Signer', signer: { __typename?: 'ETHAddress', address?: string | null } | { __typename?: 'PubKey', key?: string | null } }> | null, filters?: Array<{ __typename?: 'Filter', key: { __typename?: 'PropertyKey', name?: string | null, type: Types.PropertyKeyType, numberDecimalPlaces?: number | null } }> | null } } | { __typename?: 'DataSourceDefinitionInternal' } } }, dataSourceSpecForSettlementData: { __typename?: 'DataSourceSpec', id: string, data: { __typename?: 'DataSourceDefinition', sourceType: { __typename?: 'DataSourceDefinitionExternal', sourceType: { __typename?: 'DataSourceSpecConfiguration', signers?: Array<{ __typename?: 'Signer', signer: { __typename?: 'ETHAddress', address?: string | null } | { __typename?: 'PubKey', key?: string | null } }> | null, filters?: Array<{ __typename?: 'Filter', key: { __typename?: 'PropertyKey', name?: string | null, type: Types.PropertyKeyType, numberDecimalPlaces?: number | null } }> | null } } | { __typename?: 'DataSourceDefinitionInternal' } } }, dataSourceSpecBinding: { __typename?: 'DataSourceSpecToFutureBinding', settlementDataProperty: string, tradingTerminationProperty: string } } } }, marketTimestamps: { __typename?: 'MarketTimestamps', open: any, close: any } } }> } | null };
|
export type MarketsQuery = { __typename?: 'Query', marketsConnection?: { __typename?: 'MarketConnection', edges: Array<{ __typename?: 'MarketEdge', node: { __typename?: 'Market', id: string, decimalPlaces: number, positionDecimalPlaces: number, state: Types.MarketState, tradingMode: Types.MarketTradingMode, successorMarketID?: string | null, fees: { __typename?: 'Fees', factors: { __typename?: 'FeeFactors', makerFee: string, infrastructureFee: string, liquidityFee: string } }, tradableInstrument: { __typename?: 'TradableInstrument', instrument: { __typename?: 'Instrument', id: string, name: string, code: string, metadata: { __typename?: 'InstrumentMetadata', tags?: Array<string> | null }, product: { __typename?: 'Future', quoteName: string, settlementAsset: { __typename?: 'Asset', id: string, symbol: string, name: string, decimals: number, quantum: string }, dataSourceSpecForTradingTermination: { __typename?: 'DataSourceSpec', id: string, data: { __typename?: 'DataSourceDefinition', sourceType: { __typename?: 'DataSourceDefinitionExternal', sourceType: { __typename?: 'DataSourceSpecConfiguration', signers?: Array<{ __typename?: 'Signer', signer: { __typename?: 'ETHAddress', address?: string | null } | { __typename?: 'PubKey', key?: string | null } }> | null, filters?: Array<{ __typename?: 'Filter', key: { __typename?: 'PropertyKey', name?: string | null, type: Types.PropertyKeyType, numberDecimalPlaces?: number | null } }> | null } } | { __typename?: 'DataSourceDefinitionInternal' } } }, dataSourceSpecForSettlementData: { __typename?: 'DataSourceSpec', id: string, data: { __typename?: 'DataSourceDefinition', sourceType: { __typename?: 'DataSourceDefinitionExternal', sourceType: { __typename?: 'DataSourceSpecConfiguration', signers?: Array<{ __typename?: 'Signer', signer: { __typename?: 'ETHAddress', address?: string | null } | { __typename?: 'PubKey', key?: string | null } }> | null, filters?: Array<{ __typename?: 'Filter', key: { __typename?: 'PropertyKey', name?: string | null, type: Types.PropertyKeyType, numberDecimalPlaces?: number | null } }> | null } } | { __typename?: 'DataSourceDefinitionInternal' } } }, dataSourceSpecBinding: { __typename?: 'DataSourceSpecToFutureBinding', settlementDataProperty: string, tradingTerminationProperty: string } } } }, marketTimestamps: { __typename?: 'MarketTimestamps', open: any, close: any } } }> } | null };
|
||||||
|
|
||||||
export const DataSourceFilterFragmentDoc = gql`
|
export const DataSourceFilterFragmentDoc = gql`
|
||||||
fragment DataSourceFilter on Filter {
|
fragment DataSourceFilter on Filter {
|
||||||
@ -104,6 +104,7 @@ export const MarketFieldsFragmentDoc = gql`
|
|||||||
open
|
open
|
||||||
close
|
close
|
||||||
}
|
}
|
||||||
|
successorMarketID
|
||||||
}
|
}
|
||||||
${DataSourceSpecFragmentDoc}`;
|
${DataSourceSpecFragmentDoc}`;
|
||||||
export const MarketsDocument = gql`
|
export const MarketsDocument = gql`
|
||||||
|
@ -142,5 +142,6 @@ query MarketInfo($marketId: ID!) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
parentMarketID
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@ export type MarketInfoQueryVariables = Types.Exact<{
|
|||||||
}>;
|
}>;
|
||||||
|
|
||||||
|
|
||||||
export type MarketInfoQuery = { __typename?: 'Query', market?: { __typename?: 'Market', id: string, decimalPlaces: number, positionDecimalPlaces: number, state: Types.MarketState, tradingMode: Types.MarketTradingMode, lpPriceRange: string, proposal?: { __typename?: 'Proposal', id?: string | null, rationale: { __typename?: 'ProposalRationale', title: string, description: string } } | null, marketTimestamps: { __typename?: 'MarketTimestamps', open: any, close: any }, openingAuction: { __typename?: 'AuctionDuration', durationSecs: number, volume: number }, accountsConnection?: { __typename?: 'AccountsConnection', edges?: Array<{ __typename?: 'AccountEdge', node: { __typename?: 'AccountBalance', type: Types.AccountType, balance: string, asset: { __typename?: 'Asset', id: string } } } | null> | null } | null, fees: { __typename?: 'Fees', factors: { __typename?: 'FeeFactors', makerFee: string, infrastructureFee: string, liquidityFee: string } }, priceMonitoringSettings: { __typename?: 'PriceMonitoringSettings', parameters?: { __typename?: 'PriceMonitoringParameters', triggers?: Array<{ __typename?: 'PriceMonitoringTrigger', horizonSecs: number, probability: number, auctionExtensionSecs: number }> | null } | null }, riskFactors?: { __typename?: 'RiskFactor', market: string, short: string, long: string } | null, liquidityMonitoringParameters: { __typename?: 'LiquidityMonitoringParameters', triggeringRatio: string, targetStakeParameters: { __typename?: 'TargetStakeParameters', timeWindow: number, scalingFactor: number } }, tradableInstrument: { __typename?: 'TradableInstrument', instrument: { __typename?: 'Instrument', id: string, name: string, code: string, metadata: { __typename?: 'InstrumentMetadata', tags?: Array<string> | null }, product: { __typename?: 'Future', quoteName: string, settlementAsset: { __typename?: 'Asset', id: string, symbol: string, name: string, decimals: number }, dataSourceSpecForSettlementData: { __typename?: 'DataSourceSpec', id: string, data: { __typename?: 'DataSourceDefinition', sourceType: { __typename?: 'DataSourceDefinitionExternal', sourceType: { __typename?: 'DataSourceSpecConfiguration', signers?: Array<{ __typename?: 'Signer', signer: { __typename?: 'ETHAddress', address?: string | null } | { __typename?: 'PubKey', key?: string | null } }> | null } } | { __typename?: 'DataSourceDefinitionInternal' } } }, dataSourceSpecForTradingTermination: { __typename?: 'DataSourceSpec', id: string, data: { __typename?: 'DataSourceDefinition', sourceType: { __typename?: 'DataSourceDefinitionExternal', sourceType: { __typename?: 'DataSourceSpecConfiguration', signers?: Array<{ __typename?: 'Signer', signer: { __typename?: 'ETHAddress', address?: string | null } | { __typename?: 'PubKey', key?: string | null } }> | null } } | { __typename?: 'DataSourceDefinitionInternal' } } }, dataSourceSpecBinding: { __typename?: 'DataSourceSpecToFutureBinding', settlementDataProperty: string, tradingTerminationProperty: string } } }, riskModel: { __typename?: 'LogNormalRiskModel', tau: number, riskAversionParameter: number, params: { __typename?: 'LogNormalModelParams', r: number, sigma: number, mu: number } } | { __typename?: 'SimpleRiskModel', params: { __typename?: 'SimpleRiskModelParams', factorLong: number, factorShort: number } }, marginCalculator?: { __typename?: 'MarginCalculator', scalingFactors: { __typename?: 'ScalingFactors', searchLevel: number, initialMargin: number, collateralRelease: number } } | null } } | null };
|
export type MarketInfoQuery = { __typename?: 'Query', market?: { __typename?: 'Market', id: string, decimalPlaces: number, positionDecimalPlaces: number, state: Types.MarketState, tradingMode: Types.MarketTradingMode, lpPriceRange: string, parentMarketID?: string | null, proposal?: { __typename?: 'Proposal', id?: string | null, rationale: { __typename?: 'ProposalRationale', title: string, description: string } } | null, marketTimestamps: { __typename?: 'MarketTimestamps', open: any, close: any }, openingAuction: { __typename?: 'AuctionDuration', durationSecs: number, volume: number }, accountsConnection?: { __typename?: 'AccountsConnection', edges?: Array<{ __typename?: 'AccountEdge', node: { __typename?: 'AccountBalance', type: Types.AccountType, balance: string, asset: { __typename?: 'Asset', id: string } } } | null> | null } | null, fees: { __typename?: 'Fees', factors: { __typename?: 'FeeFactors', makerFee: string, infrastructureFee: string, liquidityFee: string } }, priceMonitoringSettings: { __typename?: 'PriceMonitoringSettings', parameters?: { __typename?: 'PriceMonitoringParameters', triggers?: Array<{ __typename?: 'PriceMonitoringTrigger', horizonSecs: number, probability: number, auctionExtensionSecs: number }> | null } | null }, riskFactors?: { __typename?: 'RiskFactor', market: string, short: string, long: string } | null, liquidityMonitoringParameters: { __typename?: 'LiquidityMonitoringParameters', triggeringRatio: string, targetStakeParameters: { __typename?: 'TargetStakeParameters', timeWindow: number, scalingFactor: number } }, tradableInstrument: { __typename?: 'TradableInstrument', instrument: { __typename?: 'Instrument', id: string, name: string, code: string, metadata: { __typename?: 'InstrumentMetadata', tags?: Array<string> | null }, product: { __typename?: 'Future', quoteName: string, settlementAsset: { __typename?: 'Asset', id: string, symbol: string, name: string, decimals: number }, dataSourceSpecForSettlementData: { __typename?: 'DataSourceSpec', id: string, data: { __typename?: 'DataSourceDefinition', sourceType: { __typename?: 'DataSourceDefinitionExternal', sourceType: { __typename?: 'DataSourceSpecConfiguration', signers?: Array<{ __typename?: 'Signer', signer: { __typename?: 'ETHAddress', address?: string | null } | { __typename?: 'PubKey', key?: string | null } }> | null } } | { __typename?: 'DataSourceDefinitionInternal' } } }, dataSourceSpecForTradingTermination: { __typename?: 'DataSourceSpec', id: string, data: { __typename?: 'DataSourceDefinition', sourceType: { __typename?: 'DataSourceDefinitionExternal', sourceType: { __typename?: 'DataSourceSpecConfiguration', signers?: Array<{ __typename?: 'Signer', signer: { __typename?: 'ETHAddress', address?: string | null } | { __typename?: 'PubKey', key?: string | null } }> | null } } | { __typename?: 'DataSourceDefinitionInternal' } } }, dataSourceSpecBinding: { __typename?: 'DataSourceSpecToFutureBinding', settlementDataProperty: string, tradingTerminationProperty: string } } }, riskModel: { __typename?: 'LogNormalRiskModel', tau: number, riskAversionParameter: number, params: { __typename?: 'LogNormalModelParams', r: number, sigma: number, mu: number } } | { __typename?: 'SimpleRiskModel', params: { __typename?: 'SimpleRiskModelParams', factorLong: number, factorShort: number } }, marginCalculator?: { __typename?: 'MarginCalculator', scalingFactors: { __typename?: 'ScalingFactors', searchLevel: number, initialMargin: number, collateralRelease: number } } | null } } | null };
|
||||||
|
|
||||||
export const DataSourceFragmentDoc = gql`
|
export const DataSourceFragmentDoc = gql`
|
||||||
fragment DataSource on DataSourceDefinition {
|
fragment DataSource on DataSourceDefinition {
|
||||||
@ -158,6 +158,7 @@ export const MarketInfoDocument = gql`
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
parentMarketID
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
${DataSourceFragmentDoc}`;
|
${DataSourceFragmentDoc}`;
|
||||||
|
@ -144,6 +144,7 @@ export const KeyDetailsInfoPanel = ({ market }: MarketInfoProps) => {
|
|||||||
data={{
|
data={{
|
||||||
name: market.tradableInstrument.instrument.name,
|
name: market.tradableInstrument.instrument.name,
|
||||||
marketID: market.id,
|
marketID: market.id,
|
||||||
|
parentMarketID: market.parentMarketID,
|
||||||
tradingMode:
|
tradingMode:
|
||||||
market.tradingMode && MarketTradingModeMapping[market.tradingMode],
|
market.tradingMode && MarketTradingModeMapping[market.tradingMode],
|
||||||
marketDecimalPlaces: market.decimalPlaces,
|
marketDecimalPlaces: market.decimalPlaces,
|
||||||
|
@ -191,6 +191,7 @@ export const marketInfoQuery = (
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
parentMarketID: 'market-1',
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -102,4 +102,5 @@ export const tooltipMapping: Record<string, ReactNode> = {
|
|||||||
`The market's liquidity requirement which is derived from the maximum open interest observed over a rolling time window.`
|
`The market's liquidity requirement which is derived from the maximum open interest observed over a rolling time window.`
|
||||||
),
|
),
|
||||||
suppliedStake: t('The current amount of liquidity supplied for this market.'),
|
suppliedStake: t('The current amount of liquidity supplied for this market.'),
|
||||||
|
parentMarketID: t('The ID of the market this market succeeds'),
|
||||||
};
|
};
|
||||||
|
@ -85,6 +85,7 @@ fragment MarketFields on Market {
|
|||||||
open
|
open
|
||||||
close
|
close
|
||||||
}
|
}
|
||||||
|
successorMarketID
|
||||||
}
|
}
|
||||||
|
|
||||||
query Markets {
|
query Markets {
|
||||||
|
328
libs/types/src/__generated__/types.ts
generated
328
libs/types/src/__generated__/types.ts
generated
@ -356,6 +356,13 @@ export enum BusEventType {
|
|||||||
Withdrawal = 'Withdrawal'
|
Withdrawal = 'Withdrawal'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Allows for cancellation of an existing governance transfer */
|
||||||
|
export type CancelTransfer = {
|
||||||
|
__typename?: 'CancelTransfer';
|
||||||
|
/** The governance transfer to cancel */
|
||||||
|
transferId: Scalars['ID'];
|
||||||
|
};
|
||||||
|
|
||||||
/** Candle stick representation of trading */
|
/** Candle stick representation of trading */
|
||||||
export type Candle = {
|
export type Candle = {
|
||||||
__typename?: 'Candle';
|
__typename?: 'Candle';
|
||||||
@ -367,6 +374,8 @@ export type Candle = {
|
|||||||
lastUpdateInPeriod: Scalars['Timestamp'];
|
lastUpdateInPeriod: Scalars['Timestamp'];
|
||||||
/** Low price (uint64) */
|
/** Low price (uint64) */
|
||||||
low: Scalars['String'];
|
low: Scalars['String'];
|
||||||
|
/** Total notional value of trades (uint64) */
|
||||||
|
notional: Scalars['String'];
|
||||||
/** Open price (uint64) */
|
/** Open price (uint64) */
|
||||||
open: Scalars['String'];
|
open: Scalars['String'];
|
||||||
/** RFC3339Nano formatted date and time for the candle start time */
|
/** RFC3339Nano formatted date and time for the candle start time */
|
||||||
@ -1123,6 +1132,17 @@ export type FutureProduct = {
|
|||||||
settlementAsset: Asset;
|
settlementAsset: Asset;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export type GovernanceTransferKind = OneOffGovernanceTransfer | RecurringGovernanceTransfer;
|
||||||
|
|
||||||
|
export enum GovernanceTransferType {
|
||||||
|
/** Transfers the specified amount or does not transfer anything */
|
||||||
|
GOVERNANCE_TRANSFER_TYPE_ALL_OR_NOTHING = 'GOVERNANCE_TRANSFER_TYPE_ALL_OR_NOTHING',
|
||||||
|
/** Transfers the specified amount or the max allowable amount if this is less than the specified amount */
|
||||||
|
GOVERNANCE_TRANSFER_TYPE_BEST_EFFORT = 'GOVERNANCE_TRANSFER_TYPE_BEST_EFFORT',
|
||||||
|
/** Default value, always invalid */
|
||||||
|
GOVERNANCE_TRANSFER_TYPE_UNSPECIFIED = 'GOVERNANCE_TRANSFER_TYPE_UNSPECIFIED'
|
||||||
|
}
|
||||||
|
|
||||||
/** A segment of data node history */
|
/** A segment of data node history */
|
||||||
export type HistorySegment = {
|
export type HistorySegment = {
|
||||||
__typename?: 'HistorySegment';
|
__typename?: 'HistorySegment';
|
||||||
@ -1134,6 +1154,17 @@ export type HistorySegment = {
|
|||||||
toHeight: Scalars['Int'];
|
toHeight: Scalars['Int'];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** Details of the iceberg order */
|
||||||
|
export type IcebergOrder = {
|
||||||
|
__typename?: 'IcebergOrder';
|
||||||
|
/** If the visible size of the order falls below this value, it will be replenished back to the peak size using the reserved amount */
|
||||||
|
minimumVisibleSize: Scalars['String'];
|
||||||
|
/** Size of the order that will be made visible if the iceberg order is replenished after trading */
|
||||||
|
peakSize: Scalars['String'];
|
||||||
|
/** Size of the order that is reserved and used to restore the iceberg's peak when it is refreshed */
|
||||||
|
reservedRemaining: Scalars['String'];
|
||||||
|
};
|
||||||
|
|
||||||
/** Describes something that can be traded on Vega */
|
/** Describes something that can be traded on Vega */
|
||||||
export type Instrument = {
|
export type Instrument = {
|
||||||
__typename?: 'Instrument';
|
__typename?: 'Instrument';
|
||||||
@ -1305,10 +1336,12 @@ export type LiquidityProviderFeeShare = {
|
|||||||
averageEntryValuation: Scalars['String'];
|
averageEntryValuation: Scalars['String'];
|
||||||
/** The average liquidity score */
|
/** The average liquidity score */
|
||||||
averageScore: Scalars['String'];
|
averageScore: Scalars['String'];
|
||||||
/** The share owned by this liquidity provider (float) */
|
/** The share owned by this liquidity provider */
|
||||||
equityLikeShare: Scalars['String'];
|
equityLikeShare: Scalars['String'];
|
||||||
/** The liquidity provider party ID */
|
/** The liquidity provider party ID */
|
||||||
party: Party;
|
party: Party;
|
||||||
|
/** The virtual stake for this liquidity provider */
|
||||||
|
virtualStake: Scalars['String'];
|
||||||
};
|
};
|
||||||
|
|
||||||
/** The command to be sent to the chain for a liquidity provision submission */
|
/** The command to be sent to the chain for a liquidity provision submission */
|
||||||
@ -1323,7 +1356,7 @@ export type LiquidityProvision = {
|
|||||||
/** Nominated liquidity fee factor, which is an input to the calculation of liquidity fees on the market, as per setting fees and rewarding liquidity providers. */
|
/** Nominated liquidity fee factor, which is an input to the calculation of liquidity fees on the market, as per setting fees and rewarding liquidity providers. */
|
||||||
fee: Scalars['String'];
|
fee: Scalars['String'];
|
||||||
/** Unique identifier for the order (set by the system after consensus) */
|
/** Unique identifier for the order (set by the system after consensus) */
|
||||||
id?: Maybe<Scalars['ID']>;
|
id: Scalars['ID'];
|
||||||
/** Market for the order */
|
/** Market for the order */
|
||||||
market: Market;
|
market: Market;
|
||||||
/** The party making this commitment */
|
/** The party making this commitment */
|
||||||
@ -1372,7 +1405,7 @@ export type LiquidityProvisionUpdate = {
|
|||||||
/** Nominated liquidity fee factor, which is an input to the calculation of liquidity fees on the market, as per setting fees and rewarding liquidity providers. */
|
/** Nominated liquidity fee factor, which is an input to the calculation of liquidity fees on the market, as per setting fees and rewarding liquidity providers. */
|
||||||
fee: Scalars['String'];
|
fee: Scalars['String'];
|
||||||
/** Unique identifier for the order (set by the system after consensus) */
|
/** Unique identifier for the order (set by the system after consensus) */
|
||||||
id?: Maybe<Scalars['ID']>;
|
id: Scalars['ID'];
|
||||||
/** Market for the order */
|
/** Market for the order */
|
||||||
marketID: Scalars['ID'];
|
marketID: Scalars['ID'];
|
||||||
/** The party making this commitment */
|
/** The party making this commitment */
|
||||||
@ -1546,6 +1579,8 @@ export type Market = {
|
|||||||
fees: Fees;
|
fees: Fees;
|
||||||
/** Market ID */
|
/** Market ID */
|
||||||
id: Scalars['ID'];
|
id: Scalars['ID'];
|
||||||
|
/** Optional: When a successor market is created, a fraction of the parent market's insurance pool can be transferred to the successor market */
|
||||||
|
insurancePoolFraction?: Maybe<Scalars['String']>;
|
||||||
/** Linear slippage factor is used to cap the slippage component of maintainence margin - it is applied to the slippage volume */
|
/** Linear slippage factor is used to cap the slippage component of maintainence margin - it is applied to the slippage volume */
|
||||||
linearSlippageFactor: Scalars['String'];
|
linearSlippageFactor: Scalars['String'];
|
||||||
/** Liquidity monitoring parameters for the market */
|
/** Liquidity monitoring parameters for the market */
|
||||||
@ -1563,6 +1598,11 @@ export type Market = {
|
|||||||
openingAuction: AuctionDuration;
|
openingAuction: AuctionDuration;
|
||||||
/** Orders on a market */
|
/** Orders on a market */
|
||||||
ordersConnection?: Maybe<OrderConnection>;
|
ordersConnection?: Maybe<OrderConnection>;
|
||||||
|
/**
|
||||||
|
* Optional: Parent market ID. A market can be a successor to another market. If this market is a successor to a previous market,
|
||||||
|
* this field will be populated with the ID of the previous market.
|
||||||
|
*/
|
||||||
|
parentMarketID?: Maybe<Scalars['ID']>;
|
||||||
/**
|
/**
|
||||||
* The number of decimal places that an integer must be shifted in order to get a correct size (uint64).
|
* The number of decimal places that an integer must be shifted in order to get a correct size (uint64).
|
||||||
* i.e. 0 means there are no fractional orders for the market, and order sizes are always whole sizes.
|
* i.e. 0 means there are no fractional orders for the market, and order sizes are always whole sizes.
|
||||||
@ -1580,6 +1620,8 @@ export type Market = {
|
|||||||
riskFactors?: Maybe<RiskFactor>;
|
riskFactors?: Maybe<RiskFactor>;
|
||||||
/** Current state of the market */
|
/** Current state of the market */
|
||||||
state: MarketState;
|
state: MarketState;
|
||||||
|
/** Optional: Market ID of the successor to this market if one exists */
|
||||||
|
successorMarketID?: Maybe<Scalars['ID']>;
|
||||||
/** An instance of, or reference to, a tradable instrument. */
|
/** An instance of, or reference to, a tradable instrument. */
|
||||||
tradableInstrument: TradableInstrument;
|
tradableInstrument: TradableInstrument;
|
||||||
/** @deprecated Simplify and consolidate trades query and remove nesting. Use trades query instead */
|
/** @deprecated Simplify and consolidate trades query and remove nesting. Use trades query instead */
|
||||||
@ -1672,12 +1714,16 @@ export type MarketData = {
|
|||||||
indicativePrice: Scalars['String'];
|
indicativePrice: Scalars['String'];
|
||||||
/** Indicative volume if the auction ended now, 0 if not in auction mode */
|
/** Indicative volume if the auction ended now, 0 if not in auction mode */
|
||||||
indicativeVolume: Scalars['String'];
|
indicativeVolume: Scalars['String'];
|
||||||
|
/** The last traded price (an unsigned integer) */
|
||||||
|
lastTradedPrice: Scalars['String'];
|
||||||
/** The equity like share of liquidity fee for each liquidity provider */
|
/** The equity like share of liquidity fee for each liquidity provider */
|
||||||
liquidityProviderFeeShare?: Maybe<Array<LiquidityProviderFeeShare>>;
|
liquidityProviderFeeShare?: Maybe<Array<LiquidityProviderFeeShare>>;
|
||||||
/** The mark price (an unsigned integer) */
|
/** The mark price (an unsigned integer) */
|
||||||
markPrice: Scalars['String'];
|
markPrice: Scalars['String'];
|
||||||
/** Market of the associated mark price */
|
/** Market of the associated mark price */
|
||||||
market: Market;
|
market: Market;
|
||||||
|
/** The market growth factor for the last market time window */
|
||||||
|
marketGrowth: Scalars['String'];
|
||||||
/** Current state of the market */
|
/** Current state of the market */
|
||||||
marketState: MarketState;
|
marketState: MarketState;
|
||||||
/** What mode the market is in (auction, continuous, etc) */
|
/** What mode the market is in (auction, continuous, etc) */
|
||||||
@ -1775,7 +1821,7 @@ export type MarketDepthUpdate = {
|
|||||||
sequenceNumber: Scalars['String'];
|
sequenceNumber: Scalars['String'];
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Edge type containing the order and cursor information returned by a OrderConnection */
|
/** Edge type containing the market and cursor information returned by a MarketConnection */
|
||||||
export type MarketEdge = {
|
export type MarketEdge = {
|
||||||
__typename?: 'MarketEdge';
|
__typename?: 'MarketEdge';
|
||||||
/** The cursor for this market */
|
/** The cursor for this market */
|
||||||
@ -1932,7 +1978,7 @@ export type NewMarket = {
|
|||||||
decimalPlaces: Scalars['Int'];
|
decimalPlaces: Scalars['Int'];
|
||||||
/** New market instrument configuration */
|
/** New market instrument configuration */
|
||||||
instrument: InstrumentConfiguration;
|
instrument: InstrumentConfiguration;
|
||||||
/** Linear slippage factor is used to cap the slippage component of maintainence margin - it is applied to the slippage volume */
|
/** Linear slippage factor is used to cap the slippage component of maintenance margin - it is applied to the slippage volume */
|
||||||
linearSlippageFactor: Scalars['String'];
|
linearSlippageFactor: Scalars['String'];
|
||||||
/** Liquidity monitoring parameters */
|
/** Liquidity monitoring parameters */
|
||||||
liquidityMonitoringParameters: LiquidityMonitoringParameters;
|
liquidityMonitoringParameters: LiquidityMonitoringParameters;
|
||||||
@ -1944,10 +1990,34 @@ export type NewMarket = {
|
|||||||
positionDecimalPlaces: Scalars['Int'];
|
positionDecimalPlaces: Scalars['Int'];
|
||||||
/** Price monitoring parameters */
|
/** Price monitoring parameters */
|
||||||
priceMonitoringParameters: PriceMonitoringParameters;
|
priceMonitoringParameters: PriceMonitoringParameters;
|
||||||
/** Quadratic slippage factor is used to cap the slippage component of maintainence margin - it is applied to the square of the slippage volume */
|
/** Quadratic slippage factor is used to cap the slippage component of maintenance margin - it is applied to the square of the slippage volume */
|
||||||
quadraticSlippageFactor: Scalars['String'];
|
quadraticSlippageFactor: Scalars['String'];
|
||||||
/** New market risk configuration */
|
/** New market risk configuration */
|
||||||
riskParameters: RiskModel;
|
riskParameters: RiskModel;
|
||||||
|
/** Successor market configuration. If this proposed market is meant to succeed a given market, then this needs to be set. */
|
||||||
|
successorConfiguration?: Maybe<SuccessorConfiguration>;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type NewTransfer = {
|
||||||
|
__typename?: 'NewTransfer';
|
||||||
|
/** The maximum amount to be transferred */
|
||||||
|
amount: Scalars['String'];
|
||||||
|
/** The asset to transfer */
|
||||||
|
asset: Asset;
|
||||||
|
/** The destination account */
|
||||||
|
destination: Scalars['String'];
|
||||||
|
/** The type of destination account */
|
||||||
|
destinationType: AccountType;
|
||||||
|
/** The fraction of the balance to be transferred */
|
||||||
|
fraction_of_balance: Scalars['String'];
|
||||||
|
/** The type of governance transfer being made, i.e. a one-off or recurring transfer */
|
||||||
|
kind: GovernanceTransferKind;
|
||||||
|
/** The source account */
|
||||||
|
source: Scalars['String'];
|
||||||
|
/** The type of source account */
|
||||||
|
sourceType: AccountType;
|
||||||
|
/** The type of the governance transfer */
|
||||||
|
transferType: GovernanceTransferType;
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Information available for a node */
|
/** Information available for a node */
|
||||||
@ -2161,10 +2231,14 @@ export type ObservableMarketData = {
|
|||||||
indicativePrice: Scalars['String'];
|
indicativePrice: Scalars['String'];
|
||||||
/** Indicative volume if the auction ended now, 0 if not in auction mode */
|
/** Indicative volume if the auction ended now, 0 if not in auction mode */
|
||||||
indicativeVolume: Scalars['String'];
|
indicativeVolume: Scalars['String'];
|
||||||
|
/** The last traded price (an unsigned integer) */
|
||||||
|
lastTradedPrice: Scalars['String'];
|
||||||
/** The equity like share of liquidity fee for each liquidity provider */
|
/** The equity like share of liquidity fee for each liquidity provider */
|
||||||
liquidityProviderFeeShare?: Maybe<Array<ObservableLiquidityProviderFeeShare>>;
|
liquidityProviderFeeShare?: Maybe<Array<ObservableLiquidityProviderFeeShare>>;
|
||||||
/** The mark price (an unsigned integer) */
|
/** The mark price (an unsigned integer) */
|
||||||
markPrice: Scalars['String'];
|
markPrice: Scalars['String'];
|
||||||
|
/** The market growth factor for the last market time window */
|
||||||
|
marketGrowth: Scalars['String'];
|
||||||
/** Market ID of the associated mark price */
|
/** Market ID of the associated mark price */
|
||||||
marketId: Scalars['ID'];
|
marketId: Scalars['ID'];
|
||||||
/** Current state of the market */
|
/** Current state of the market */
|
||||||
@ -2229,6 +2303,13 @@ export type ObservableMarketDepthUpdate = {
|
|||||||
sequenceNumber: Scalars['String'];
|
sequenceNumber: Scalars['String'];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** The specific details for a one-off governance transfer */
|
||||||
|
export type OneOffGovernanceTransfer = {
|
||||||
|
__typename?: 'OneOffGovernanceTransfer';
|
||||||
|
/** An optional time when the transfer should be delivered */
|
||||||
|
deliverOn?: Maybe<Scalars['Timestamp']>;
|
||||||
|
};
|
||||||
|
|
||||||
/** The specific details for a one-off transfer */
|
/** The specific details for a one-off transfer */
|
||||||
export type OneOffTransfer = {
|
export type OneOffTransfer = {
|
||||||
__typename?: 'OneOffTransfer';
|
__typename?: 'OneOffTransfer';
|
||||||
@ -2293,6 +2374,8 @@ export type Order = {
|
|||||||
createdAt: Scalars['Timestamp'];
|
createdAt: Scalars['Timestamp'];
|
||||||
/** Expiration time of this order (ISO-8601 RFC3339+Nano formatted date) */
|
/** Expiration time of this order (ISO-8601 RFC3339+Nano formatted date) */
|
||||||
expiresAt?: Maybe<Scalars['Timestamp']>;
|
expiresAt?: Maybe<Scalars['Timestamp']>;
|
||||||
|
/** Details of an iceberg order */
|
||||||
|
icebergOrder?: Maybe<IcebergOrder>;
|
||||||
/** Hash of the order data */
|
/** Hash of the order data */
|
||||||
id: Scalars['ID'];
|
id: Scalars['ID'];
|
||||||
/** The liquidity provision this order was created from */
|
/** The liquidity provision this order was created from */
|
||||||
@ -2537,6 +2620,35 @@ export enum OrderStatus {
|
|||||||
STATUS_STOPPED = 'STATUS_STOPPED'
|
STATUS_STOPPED = 'STATUS_STOPPED'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Details of the order that will be submitted when the stop order is triggered. */
|
||||||
|
export type OrderSubmission = {
|
||||||
|
__typename?: 'OrderSubmission';
|
||||||
|
/** Expiration time of this order (ISO-8601 RFC3339+Nano formatted date) */
|
||||||
|
expiresAt: Scalars['Timestamp'];
|
||||||
|
/** Details of an iceberg order */
|
||||||
|
icebergOrder?: Maybe<IcebergOrder>;
|
||||||
|
/** Market the order is for. */
|
||||||
|
marketId: Scalars['ID'];
|
||||||
|
/** PeggedOrder contains the details about a pegged order */
|
||||||
|
peggedOrder?: Maybe<PeggedOrder>;
|
||||||
|
/** Is this a post only order */
|
||||||
|
postOnly?: Maybe<Scalars['Boolean']>;
|
||||||
|
/** The worst price the order will trade at (e.g. buy for price or less, sell for price or more) (uint64) */
|
||||||
|
price: Scalars['String'];
|
||||||
|
/** Is this a reduce only order */
|
||||||
|
reduceOnly?: Maybe<Scalars['Boolean']>;
|
||||||
|
/** The external reference (if available) for the order */
|
||||||
|
reference?: Maybe<Scalars['String']>;
|
||||||
|
/** Whether the order is to buy or sell */
|
||||||
|
side: Side;
|
||||||
|
/** Total number of units that may be bought or sold (immutable) (uint64) */
|
||||||
|
size: Scalars['String'];
|
||||||
|
/** The timeInForce of order (determines how and if it executes, and whether it persists on the book) */
|
||||||
|
timeInForce: OrderTimeInForce;
|
||||||
|
/** The order type */
|
||||||
|
type: OrderType;
|
||||||
|
};
|
||||||
|
|
||||||
/** Valid order types, these determine what happens when an order is added to the book */
|
/** Valid order types, these determine what happens when an order is added to the book */
|
||||||
export enum OrderTimeInForce {
|
export enum OrderTimeInForce {
|
||||||
/** Fill or Kill: The order either trades completely (remainingSize == 0 after adding) or not at all, does not remain on the book if it doesn't trade */
|
/** Fill or Kill: The order either trades completely (remainingSize == 0 after adding) or not at all, does not remain on the book if it doesn't trade */
|
||||||
@ -2576,6 +2688,8 @@ export type OrderUpdate = {
|
|||||||
createdAt: Scalars['Timestamp'];
|
createdAt: Scalars['Timestamp'];
|
||||||
/** Expiration time of this order (ISO-8601 RFC3339+Nano formatted date) */
|
/** Expiration time of this order (ISO-8601 RFC3339+Nano formatted date) */
|
||||||
expiresAt?: Maybe<Scalars['Timestamp']>;
|
expiresAt?: Maybe<Scalars['Timestamp']>;
|
||||||
|
/** Details of an iceberg order */
|
||||||
|
icebergOrder?: Maybe<IcebergOrder>;
|
||||||
/** Hash of the order data */
|
/** Hash of the order data */
|
||||||
id: Scalars['ID'];
|
id: Scalars['ID'];
|
||||||
/** The liquidity provision this order was created from */
|
/** The liquidity provision this order was created from */
|
||||||
@ -3089,7 +3203,7 @@ export type Proposal = {
|
|||||||
votes: ProposalVotes;
|
votes: ProposalVotes;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type ProposalChange = NewAsset | NewFreeform | NewMarket | UpdateAsset | UpdateMarket | UpdateNetworkParameter;
|
export type ProposalChange = CancelTransfer | NewAsset | NewFreeform | NewMarket | NewTransfer | UpdateAsset | UpdateMarket | UpdateNetworkParameter;
|
||||||
|
|
||||||
export type ProposalDetail = {
|
export type ProposalDetail = {
|
||||||
__typename?: 'ProposalDetail';
|
__typename?: 'ProposalDetail';
|
||||||
@ -3160,6 +3274,12 @@ export enum ProposalRejectionReason {
|
|||||||
PROPOSAL_ERROR_ENACT_TIME_TOO_SOON = 'PROPOSAL_ERROR_ENACT_TIME_TOO_SOON',
|
PROPOSAL_ERROR_ENACT_TIME_TOO_SOON = 'PROPOSAL_ERROR_ENACT_TIME_TOO_SOON',
|
||||||
/** The ERC-20 address specified by this proposal is already in use by another asset */
|
/** The ERC-20 address specified by this proposal is already in use by another asset */
|
||||||
PROPOSAL_ERROR_ERC20_ADDRESS_ALREADY_IN_USE = 'PROPOSAL_ERROR_ERC20_ADDRESS_ALREADY_IN_USE',
|
PROPOSAL_ERROR_ERC20_ADDRESS_ALREADY_IN_USE = 'PROPOSAL_ERROR_ERC20_ADDRESS_ALREADY_IN_USE',
|
||||||
|
/** The proposal for cancellation of an active governance transfer has failed */
|
||||||
|
PROPOSAL_ERROR_GOVERNANCE_CANCEL_TRANSFER_PROPOSAL_INVALID = 'PROPOSAL_ERROR_GOVERNANCE_CANCEL_TRANSFER_PROPOSAL_INVALID',
|
||||||
|
/** The governance transfer proposal has failed */
|
||||||
|
PROPOSAL_ERROR_GOVERNANCE_TRANSFER_PROPOSAL_FAILED = 'PROPOSAL_ERROR_GOVERNANCE_TRANSFER_PROPOSAL_FAILED',
|
||||||
|
/** The governance transfer proposal is invalid */
|
||||||
|
PROPOSAL_ERROR_GOVERNANCE_TRANSFER_PROPOSAL_INVALID = 'PROPOSAL_ERROR_GOVERNANCE_TRANSFER_PROPOSAL_INVALID',
|
||||||
/** Proposal terms timestamps are not compatible (Validation < Closing < Enactment) */
|
/** Proposal terms timestamps are not compatible (Validation < Closing < Enactment) */
|
||||||
PROPOSAL_ERROR_INCOMPATIBLE_TIMESTAMPS = 'PROPOSAL_ERROR_INCOMPATIBLE_TIMESTAMPS',
|
PROPOSAL_ERROR_INCOMPATIBLE_TIMESTAMPS = 'PROPOSAL_ERROR_INCOMPATIBLE_TIMESTAMPS',
|
||||||
/** The proposal is rejected because the party does not have enough equity like share in the market */
|
/** The proposal is rejected because the party does not have enough equity like share in the market */
|
||||||
@ -3184,6 +3304,10 @@ export enum ProposalRejectionReason {
|
|||||||
PROPOSAL_ERROR_INVALID_RISK_PARAMETER = 'PROPOSAL_ERROR_INVALID_RISK_PARAMETER',
|
PROPOSAL_ERROR_INVALID_RISK_PARAMETER = 'PROPOSAL_ERROR_INVALID_RISK_PARAMETER',
|
||||||
/** Market proposal has one or more invalid liquidity shapes */
|
/** Market proposal has one or more invalid liquidity shapes */
|
||||||
PROPOSAL_ERROR_INVALID_SHAPE = 'PROPOSAL_ERROR_INVALID_SHAPE',
|
PROPOSAL_ERROR_INVALID_SHAPE = 'PROPOSAL_ERROR_INVALID_SHAPE',
|
||||||
|
/** Validation of spot market proposal failed */
|
||||||
|
PROPOSAL_ERROR_INVALID_SPOT = 'PROPOSAL_ERROR_INVALID_SPOT',
|
||||||
|
/** Validation of successor market has failed */
|
||||||
|
PROPOSAL_ERROR_INVALID_SUCCESSOR_MARKET = 'PROPOSAL_ERROR_INVALID_SUCCESSOR_MARKET',
|
||||||
/** Proposal declined because the majority threshold was not reached */
|
/** Proposal declined because the majority threshold was not reached */
|
||||||
PROPOSAL_ERROR_MAJORITY_THRESHOLD_NOT_REACHED = 'PROPOSAL_ERROR_MAJORITY_THRESHOLD_NOT_REACHED',
|
PROPOSAL_ERROR_MAJORITY_THRESHOLD_NOT_REACHED = 'PROPOSAL_ERROR_MAJORITY_THRESHOLD_NOT_REACHED',
|
||||||
/** Market proposal is missing a liquidity commitment */
|
/** Market proposal is missing a liquidity commitment */
|
||||||
@ -3499,6 +3623,12 @@ export type Query = {
|
|||||||
protocolUpgradeStatus?: Maybe<ProtocolUpgradeStatus>;
|
protocolUpgradeStatus?: Maybe<ProtocolUpgradeStatus>;
|
||||||
/** Get statistics about the Vega node */
|
/** Get statistics about the Vega node */
|
||||||
statistics: Statistics;
|
statistics: Statistics;
|
||||||
|
/** Get stop order by ID */
|
||||||
|
stopOrder?: Maybe<StopOrder>;
|
||||||
|
/** Get a list of stop orders. If provided, the filter will be applied to the list of stop orders to restrict the results. */
|
||||||
|
stopOrders?: Maybe<StopOrderConnection>;
|
||||||
|
/** List markets in a succession line */
|
||||||
|
successorMarkets?: Maybe<SuccessorMarketConnection>;
|
||||||
/** Get a list of all trades and apply any given filters to the results */
|
/** Get a list of all trades and apply any given filters to the results */
|
||||||
trades?: Maybe<TradeConnection>;
|
trades?: Maybe<TradeConnection>;
|
||||||
/** Get a list of all transfers for a public key */
|
/** Get a list of all transfers for a public key */
|
||||||
@ -3558,6 +3688,7 @@ export type QueryentitiesArgs = {
|
|||||||
|
|
||||||
/** Queries allow a caller to read data and filter data via GraphQL. */
|
/** Queries allow a caller to read data and filter data via GraphQL. */
|
||||||
export type QueryepochArgs = {
|
export type QueryepochArgs = {
|
||||||
|
block?: InputMaybe<Scalars['String']>;
|
||||||
id?: InputMaybe<Scalars['ID']>;
|
id?: InputMaybe<Scalars['ID']>;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -3803,6 +3934,27 @@ export type QueryprotocolUpgradeProposalsArgs = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/** Queries allow a caller to read data and filter data via GraphQL. */
|
||||||
|
export type QuerystopOrderArgs = {
|
||||||
|
id: Scalars['ID'];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/** Queries allow a caller to read data and filter data via GraphQL. */
|
||||||
|
export type QuerystopOrdersArgs = {
|
||||||
|
filter?: InputMaybe<StopOrderFilter>;
|
||||||
|
pagination?: InputMaybe<Pagination>;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/** Queries allow a caller to read data and filter data via GraphQL. */
|
||||||
|
export type QuerysuccessorMarketsArgs = {
|
||||||
|
fullHistory?: InputMaybe<Scalars['Boolean']>;
|
||||||
|
marketId: Scalars['ID'];
|
||||||
|
pagination?: InputMaybe<Pagination>;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/** Queries allow a caller to read data and filter data via GraphQL. */
|
/** Queries allow a caller to read data and filter data via GraphQL. */
|
||||||
export type QuerytradesArgs = {
|
export type QuerytradesArgs = {
|
||||||
dateRange?: InputMaybe<DateRange>;
|
dateRange?: InputMaybe<DateRange>;
|
||||||
@ -3847,6 +3999,15 @@ export type RankingScore = {
|
|||||||
votingPower: Scalars['String'];
|
votingPower: Scalars['String'];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** The specific details for a recurring governance transfer */
|
||||||
|
export type RecurringGovernanceTransfer = {
|
||||||
|
__typename?: 'RecurringGovernanceTransfer';
|
||||||
|
/** An optional epoch at which this transfer will stop */
|
||||||
|
endEpoch?: Maybe<Scalars['Int']>;
|
||||||
|
/** The epoch at which this recurring transfer will start */
|
||||||
|
startEpoch: Scalars['Int'];
|
||||||
|
};
|
||||||
|
|
||||||
/** The specific details for a recurring transfer */
|
/** The specific details for a recurring transfer */
|
||||||
export type RecurringTransfer = {
|
export type RecurringTransfer = {
|
||||||
__typename?: 'RecurringTransfer';
|
__typename?: 'RecurringTransfer';
|
||||||
@ -4182,6 +4343,117 @@ export type Statistics = {
|
|||||||
vegaTime: Scalars['Timestamp'];
|
vegaTime: Scalars['Timestamp'];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** A stop order in Vega */
|
||||||
|
export type StopOrder = {
|
||||||
|
__typename?: 'StopOrder';
|
||||||
|
/** Time the stop order was created. */
|
||||||
|
createdAt: Scalars['Timestamp'];
|
||||||
|
/** Time at which the order will expire if an expiry time is set. */
|
||||||
|
expiresAt?: Maybe<Scalars['Timestamp']>;
|
||||||
|
/** If an expiry is set, what should the stop order do when it expires. */
|
||||||
|
expiryStrategy?: Maybe<StopOrderExpiryStrategy>;
|
||||||
|
/** Hash of the stop order data */
|
||||||
|
id: Scalars['ID'];
|
||||||
|
/** Market the stop order is for. */
|
||||||
|
marketId: Scalars['ID'];
|
||||||
|
/** If OCO (one-cancels-other) order, the ID of the associated order. */
|
||||||
|
ocoLinkId?: Maybe<Scalars['ID']>;
|
||||||
|
/** Party that submitted the stop order. */
|
||||||
|
partyId: Scalars['ID'];
|
||||||
|
/** Status of the stop order */
|
||||||
|
status: StopOrderStatus;
|
||||||
|
/** Order to submit when the stop order is triggered. */
|
||||||
|
submission: OrderSubmission;
|
||||||
|
/** Price movement that will trigger the stop order */
|
||||||
|
trigger?: Maybe<StopOrderTrigger>;
|
||||||
|
/** Direction the price is moving to trigger the stop order. */
|
||||||
|
triggerDirection: StopOrderTriggerDirection;
|
||||||
|
/** Time the stop order was last updated. */
|
||||||
|
updatedAt?: Maybe<Scalars['Timestamp']>;
|
||||||
|
};
|
||||||
|
|
||||||
|
/** Connection type for retrieving cursory-based paginated stop order information */
|
||||||
|
export type StopOrderConnection = {
|
||||||
|
__typename?: 'StopOrderConnection';
|
||||||
|
/** The stop orders in this connection */
|
||||||
|
edges?: Maybe<Array<StopOrderEdge>>;
|
||||||
|
/** The pagination information */
|
||||||
|
pageInfo?: Maybe<PageInfo>;
|
||||||
|
};
|
||||||
|
|
||||||
|
/** Edge type containing the stop order and cursor information returned by a StopOrderConnection */
|
||||||
|
export type StopOrderEdge = {
|
||||||
|
__typename?: 'StopOrderEdge';
|
||||||
|
/** The cursor for this stop order */
|
||||||
|
cursor?: Maybe<Scalars['String']>;
|
||||||
|
/** The stop order */
|
||||||
|
node?: Maybe<StopOrder>;
|
||||||
|
};
|
||||||
|
|
||||||
|
/** Valid stop order expiry strategies. The expiry strategy determines what happens to a stop order when it expires. */
|
||||||
|
export enum StopOrderExpiryStrategy {
|
||||||
|
/** The stop order will be cancelled when it expires. */
|
||||||
|
EXPIRY_STRATEGY_CANCELS = 'EXPIRY_STRATEGY_CANCELS',
|
||||||
|
/** The stop order will be submitted when the expiry time is reached. */
|
||||||
|
EXPIRY_STRATEGY_SUBMIT = 'EXPIRY_STRATEGY_SUBMIT',
|
||||||
|
/** The stop order expiry strategy has not been specified by the trader. */
|
||||||
|
EXPIRY_STRATEGY_UNSPECIFIED = 'EXPIRY_STRATEGY_UNSPECIFIED'
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Filter to be applied when querying a list of stop orders. If multiple criteria are specified, e.g. parties and markets, then the filter is applied as an AND. */
|
||||||
|
export type StopOrderFilter = {
|
||||||
|
/** Date range to retrieve order from/to. Start and end time should be expressed as an integer value of nano-seconds past the Unix epoch */
|
||||||
|
dateRange?: InputMaybe<DateRange>;
|
||||||
|
/** Zero or more expiry strategies to filter by */
|
||||||
|
expiryStrategy?: InputMaybe<Array<StopOrderExpiryStrategy>>;
|
||||||
|
/** Zero or more market IDs to filter by */
|
||||||
|
markets?: InputMaybe<Array<Scalars['ID']>>;
|
||||||
|
/** Zero or more party IDs to filter by */
|
||||||
|
parties?: InputMaybe<Array<Scalars['ID']>>;
|
||||||
|
/** Zero or more order status to filter by */
|
||||||
|
status?: InputMaybe<Array<StopOrderStatus>>;
|
||||||
|
};
|
||||||
|
|
||||||
|
/** Price at which a stop order will trigger */
|
||||||
|
export type StopOrderPrice = {
|
||||||
|
__typename?: 'StopOrderPrice';
|
||||||
|
price: Scalars['String'];
|
||||||
|
};
|
||||||
|
|
||||||
|
/** Valid stop order statuses, these determine several states for a stop order that cannot be expressed with other fields in StopOrder. */
|
||||||
|
export enum StopOrderStatus {
|
||||||
|
/** Stop order has been cancelled. This could be by the trader or by the network. */
|
||||||
|
STATUS_CANCELLED = 'STATUS_CANCELLED',
|
||||||
|
/** Stop order has expired. This means the trigger conditions have not been met and the stop order has expired. */
|
||||||
|
STATUS_EXPIRED = 'STATUS_EXPIRED',
|
||||||
|
/** Stop order is pending. This means the stop order has been accepted in the network, but the trigger conditions have not been met. */
|
||||||
|
STATUS_PENDING = 'STATUS_PENDING',
|
||||||
|
/** Stop order has been rejected. This means the stop order was not accepted by the network. */
|
||||||
|
STATUS_REJECTED = 'STATUS_REJECTED',
|
||||||
|
/** Stop order has been stopped. This means the trigger conditions have been met, but the stop order was not executed, and stopped. */
|
||||||
|
STATUS_STOPPED = 'STATUS_STOPPED',
|
||||||
|
/** Stop order has been triggered. This means the trigger conditions have been met, and the stop order was executed. */
|
||||||
|
STATUS_TRIGGERED = 'STATUS_TRIGGERED',
|
||||||
|
/** Stop order has been submitted to the network but does not have a status yet */
|
||||||
|
STATUS_UNSPECIFIED = 'STATUS_UNSPECIFIED'
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Percentage movement in the price at which a stop order will trigger. */
|
||||||
|
export type StopOrderTrailingPercentOffset = {
|
||||||
|
__typename?: 'StopOrderTrailingPercentOffset';
|
||||||
|
trailingPercentOffset: Scalars['String'];
|
||||||
|
};
|
||||||
|
|
||||||
|
export type StopOrderTrigger = StopOrderPrice | StopOrderTrailingPercentOffset;
|
||||||
|
|
||||||
|
/** Valid stop order trigger direction. The trigger direction determines whether the price should rise above or fall below the stop order trigger. */
|
||||||
|
export enum StopOrderTriggerDirection {
|
||||||
|
/** The price should fall below the trigger. */
|
||||||
|
TRIGGER_DIRECTION_FALLS_BELOW = 'TRIGGER_DIRECTION_FALLS_BELOW',
|
||||||
|
/** The price should rise above the trigger. */
|
||||||
|
TRIGGER_DIRECTION_RISES_ABOVE = 'TRIGGER_DIRECTION_RISES_ABOVE'
|
||||||
|
}
|
||||||
|
|
||||||
/** Subscriptions allow a caller to receive new information as it is available from the Vega network. */
|
/** Subscriptions allow a caller to receive new information as it is available from the Vega network. */
|
||||||
export type Subscription = {
|
export type Subscription = {
|
||||||
__typename?: 'Subscription';
|
__typename?: 'Subscription';
|
||||||
@ -4314,6 +4586,40 @@ export type SubscriptionvotesArgs = {
|
|||||||
proposalId?: InputMaybe<Scalars['ID']>;
|
proposalId?: InputMaybe<Scalars['ID']>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export type SuccessorConfiguration = {
|
||||||
|
__typename?: 'SuccessorConfiguration';
|
||||||
|
/** Decimal value between 0 and 1, specifying the fraction of the insurance pool balance is carried over from the parent market to the successor. */
|
||||||
|
insurancePoolFraction: Scalars['String'];
|
||||||
|
/** ID of the market this proposal will succeed */
|
||||||
|
parentMarketId: Scalars['String'];
|
||||||
|
};
|
||||||
|
|
||||||
|
export type SuccessorMarket = {
|
||||||
|
__typename?: 'SuccessorMarket';
|
||||||
|
/** The market */
|
||||||
|
market: Market;
|
||||||
|
/** Proposals for child markets */
|
||||||
|
proposals?: Maybe<Array<Maybe<Proposal>>>;
|
||||||
|
};
|
||||||
|
|
||||||
|
/** Connection type for retrieving cursor-based paginated market information */
|
||||||
|
export type SuccessorMarketConnection = {
|
||||||
|
__typename?: 'SuccessorMarketConnection';
|
||||||
|
/** The markets in this connection */
|
||||||
|
edges: Array<SuccessorMarketEdge>;
|
||||||
|
/** The pagination information */
|
||||||
|
pageInfo: PageInfo;
|
||||||
|
};
|
||||||
|
|
||||||
|
/** Edge type containing the market and cursor information returned by a MarketConnection */
|
||||||
|
export type SuccessorMarketEdge = {
|
||||||
|
__typename?: 'SuccessorMarketEdge';
|
||||||
|
/** The cursor for this market */
|
||||||
|
cursor: Scalars['String'];
|
||||||
|
/** The market */
|
||||||
|
node: SuccessorMarket;
|
||||||
|
};
|
||||||
|
|
||||||
/** TargetStakeParameters contains parameters used in target stake calculation */
|
/** TargetStakeParameters contains parameters used in target stake calculation */
|
||||||
export type TargetStakeParameters = {
|
export type TargetStakeParameters = {
|
||||||
__typename?: 'TargetStakeParameters';
|
__typename?: 'TargetStakeParameters';
|
||||||
@ -4546,7 +4852,7 @@ export type TransferEdge = {
|
|||||||
node: Transfer;
|
node: Transfer;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type TransferKind = OneOffTransfer | RecurringTransfer;
|
export type TransferKind = OneOffGovernanceTransfer | OneOffTransfer | RecurringGovernanceTransfer | RecurringTransfer;
|
||||||
|
|
||||||
export type TransferResponse = {
|
export type TransferResponse = {
|
||||||
__typename?: 'TransferResponse';
|
__typename?: 'TransferResponse';
|
||||||
@ -4593,6 +4899,10 @@ export enum TransferType {
|
|||||||
TRANSFER_TYPE_CLEAR_ACCOUNT = 'TRANSFER_TYPE_CLEAR_ACCOUNT',
|
TRANSFER_TYPE_CLEAR_ACCOUNT = 'TRANSFER_TYPE_CLEAR_ACCOUNT',
|
||||||
/** Funds deposited to general account */
|
/** Funds deposited to general account */
|
||||||
TRANSFER_TYPE_DEPOSIT = 'TRANSFER_TYPE_DEPOSIT',
|
TRANSFER_TYPE_DEPOSIT = 'TRANSFER_TYPE_DEPOSIT',
|
||||||
|
/** An internal instruction to transfer a quantity corresponding to an active spot order from a general account into a party holding account */
|
||||||
|
TRANSFER_TYPE_HOLDING_LOCK = 'TRANSFER_TYPE_HOLDING_LOCK',
|
||||||
|
/** An internal instruction to transfer an excess quantity corresponding to an active spot order from a holding account into a party general account */
|
||||||
|
TRANSFER_TYPE_HOLDING_RELEASE = 'TRANSFER_TYPE_HOLDING_RELEASE',
|
||||||
/** Infrastructure fee received into general account */
|
/** Infrastructure fee received into general account */
|
||||||
TRANSFER_TYPE_INFRASTRUCTURE_FEE_DISTRIBUTE = 'TRANSFER_TYPE_INFRASTRUCTURE_FEE_DISTRIBUTE',
|
TRANSFER_TYPE_INFRASTRUCTURE_FEE_DISTRIBUTE = 'TRANSFER_TYPE_INFRASTRUCTURE_FEE_DISTRIBUTE',
|
||||||
/** Infrastructure fee paid from general account */
|
/** Infrastructure fee paid from general account */
|
||||||
@ -4619,6 +4929,8 @@ export enum TransferType {
|
|||||||
TRANSFER_TYPE_MTM_WIN = 'TRANSFER_TYPE_MTM_WIN',
|
TRANSFER_TYPE_MTM_WIN = 'TRANSFER_TYPE_MTM_WIN',
|
||||||
/** Reward payout received */
|
/** Reward payout received */
|
||||||
TRANSFER_TYPE_REWARD_PAYOUT = 'TRANSFER_TYPE_REWARD_PAYOUT',
|
TRANSFER_TYPE_REWARD_PAYOUT = 'TRANSFER_TYPE_REWARD_PAYOUT',
|
||||||
|
/** Spot trade delivery */
|
||||||
|
TRANSFER_TYPE_SPOT = 'TRANSFER_TYPE_SPOT',
|
||||||
/** A network internal instruction for the collateral engine to move funds from the pending transfers pool account into the destination account */
|
/** A network internal instruction for the collateral engine to move funds from the pending transfers pool account into the destination account */
|
||||||
TRANSFER_TYPE_TRANSFER_FUNDS_DISTRIBUTE = 'TRANSFER_TYPE_TRANSFER_FUNDS_DISTRIBUTE',
|
TRANSFER_TYPE_TRANSFER_FUNDS_DISTRIBUTE = 'TRANSFER_TYPE_TRANSFER_FUNDS_DISTRIBUTE',
|
||||||
/** A network internal instruction for the collateral engine to move funds from a user's general account into the pending transfers pool */
|
/** A network internal instruction for the collateral engine to move funds from a user's general account into the pending transfers pool */
|
||||||
|
@ -321,6 +321,15 @@ export const ProposalRejectionReasonMapping: {
|
|||||||
PROPOSAL_ERROR_UNSUPPORTED_TRADING_MODE: 'Unsupported trading mode',
|
PROPOSAL_ERROR_UNSUPPORTED_TRADING_MODE: 'Unsupported trading mode',
|
||||||
PROPOSAL_ERROR_ERC20_ADDRESS_ALREADY_IN_USE:
|
PROPOSAL_ERROR_ERC20_ADDRESS_ALREADY_IN_USE:
|
||||||
'ERC20 address already in use by an existing asset',
|
'ERC20 address already in use by an existing asset',
|
||||||
|
PROPOSAL_ERROR_GOVERNANCE_CANCEL_TRANSFER_PROPOSAL_INVALID:
|
||||||
|
'PROPOSAL_ERROR_GOVERNANCE_CANCEL_TRANSFER_PROPOSAL_INVALID',
|
||||||
|
PROPOSAL_ERROR_GOVERNANCE_TRANSFER_PROPOSAL_FAILED:
|
||||||
|
'PROPOSAL_ERROR_GOVERNANCE_TRANSFER_PROPOSAL_FAILED',
|
||||||
|
PROPOSAL_ERROR_GOVERNANCE_TRANSFER_PROPOSAL_INVALID:
|
||||||
|
'PROPOSAL_ERROR_GOVERNANCE_TRANSFER_PROPOSAL_INVALID',
|
||||||
|
PROPOSAL_ERROR_INVALID_SPOT: 'PROPOSAL_ERROR_INVALID_SPOT',
|
||||||
|
PROPOSAL_ERROR_INVALID_SUCCESSOR_MARKET:
|
||||||
|
'PROPOSAL_ERROR_INVALID_SUCCESSOR_MARKET',
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -419,6 +428,9 @@ export const TransferTypeMapping: TransferTypeMap = {
|
|||||||
TRANSFER_TYPE_TRANSFER_FUNDS_DISTRIBUTE: 'Transfer received',
|
TRANSFER_TYPE_TRANSFER_FUNDS_DISTRIBUTE: 'Transfer received',
|
||||||
TRANSFER_TYPE_CLEAR_ACCOUNT: 'Market accounts cleared',
|
TRANSFER_TYPE_CLEAR_ACCOUNT: 'Market accounts cleared',
|
||||||
TRANSFER_TYPE_CHECKPOINT_BALANCE_RESTORE: 'Balances restored',
|
TRANSFER_TYPE_CHECKPOINT_BALANCE_RESTORE: 'Balances restored',
|
||||||
|
TRANSFER_TYPE_HOLDING_LOCK: 'TRANSFER_TYPE_HOLDING_LOCK',
|
||||||
|
TRANSFER_TYPE_HOLDING_RELEASE: 'TRANSFER_TYPE_HOLDING_RELEASE',
|
||||||
|
TRANSFER_TYPE_SPOT: 'TRANSFER_TYPE_SPOT',
|
||||||
};
|
};
|
||||||
|
|
||||||
export const DescriptionTransferTypeMapping: TransferTypeMap = {
|
export const DescriptionTransferTypeMapping: TransferTypeMap = {
|
||||||
@ -446,6 +458,9 @@ export const DescriptionTransferTypeMapping: TransferTypeMap = {
|
|||||||
TRANSFER_TYPE_CLEAR_ACCOUNT: `Market-related accounts emptied, and balances moved, because the market has closed`,
|
TRANSFER_TYPE_CLEAR_ACCOUNT: `Market-related accounts emptied, and balances moved, because the market has closed`,
|
||||||
TRANSFER_TYPE_UNSPECIFIED: 'Default value, always invalid',
|
TRANSFER_TYPE_UNSPECIFIED: 'Default value, always invalid',
|
||||||
TRANSFER_TYPE_CHECKPOINT_BALANCE_RESTORE: `Balances are being restored to the user's account following a checkpoint restart of the network`,
|
TRANSFER_TYPE_CHECKPOINT_BALANCE_RESTORE: `Balances are being restored to the user's account following a checkpoint restart of the network`,
|
||||||
|
TRANSFER_TYPE_HOLDING_LOCK: '-',
|
||||||
|
TRANSFER_TYPE_HOLDING_RELEASE: '-',
|
||||||
|
TRANSFER_TYPE_SPOT: '-',
|
||||||
};
|
};
|
||||||
|
|
||||||
type DispatchMetricLabel = {
|
type DispatchMetricLabel = {
|
||||||
|
Loading…
Reference in New Issue
Block a user