chore: use generated types from vega protos - get rid of convertDealTicketToOrderAmendment
This commit is contained in:
@@ -11,6 +11,7 @@ import { forwardRef } from 'react';
|
||||
import type { VegaWalletContextShape } from '@vegaprotocol/wallet';
|
||||
import { VegaWalletContext } from '@vegaprotocol/wallet';
|
||||
import { MockedProvider } from '@apollo/client/testing';
|
||||
import { vega as vegaProtos } from '@vegaprotocol/protos';
|
||||
|
||||
// @ts-ignore OrderList is read only but we need to override with the forwardRef to
|
||||
// avoid warnings about padding refs
|
||||
@@ -63,9 +64,9 @@ describe('normalizeOrderAmendment', () => {
|
||||
const orderAmendment = normalizeOrderAmendment(order, market, '1', '1');
|
||||
expect(orderAmendment.orderId).toEqual('123');
|
||||
expect(orderAmendment.marketId).toEqual('456');
|
||||
expect(orderAmendment.expiresAt).toEqual('1640995200000000000');
|
||||
expect(orderAmendment.expiresAt).toEqual(BigInt('1640995200000000000'));
|
||||
expect(orderAmendment.timeInForce).toEqual(
|
||||
Schema.OrderTimeInForce.TIME_IN_FORCE_GTT
|
||||
vegaProtos.Order.TimeInForce.TIME_IN_FORCE_GTT
|
||||
);
|
||||
});
|
||||
|
||||
@@ -84,9 +85,9 @@ describe('normalizeOrderAmendment', () => {
|
||||
});
|
||||
|
||||
it.each([
|
||||
['9', 1, -10],
|
||||
['90', 2, 8900],
|
||||
['0.001', 8, 99900],
|
||||
['9', 1, BigInt(-10)],
|
||||
['90', 2, BigInt(8900)],
|
||||
['0.001', 8, BigInt(99900)],
|
||||
])('sets and formats size delta', (size, positionDecimalPlaces, output) => {
|
||||
const orderAmendment = normalizeOrderAmendment(
|
||||
order,
|
||||
|
||||
@@ -3,7 +3,6 @@ import { useCallback, useRef, useState } from 'react';
|
||||
import { Button } from '@vegaprotocol/ui-toolkit';
|
||||
import type { AgGridReact } from 'ag-grid-react';
|
||||
import type { GridReadyEvent, FilterChangedEvent } from 'ag-grid-community';
|
||||
|
||||
import { OrderListTable } from '../order-list/order-list';
|
||||
import { useHasAmendableOrder } from '../../order-hooks/use-has-amendable-order';
|
||||
import { useBottomPlaceholder } from '@vegaprotocol/datagrid';
|
||||
@@ -51,49 +50,28 @@ export interface OrderListManagerProps {
|
||||
storeKey?: string;
|
||||
}
|
||||
|
||||
export interface DealTicketOrderAmendment {
|
||||
marketId: string;
|
||||
orderId: string;
|
||||
reference?: string;
|
||||
timeInForce: Schema.OrderTimeInForce;
|
||||
sizeDelta?: number;
|
||||
price?: string;
|
||||
expiresAt?: string;
|
||||
}
|
||||
|
||||
export const normalizeOrderAmendment = <T extends Exact<OrderAmendment, T>>(
|
||||
order: Pick<Order, 'id' | 'timeInForce' | 'size' | 'expiresAt'>,
|
||||
market: Pick<Schema.Market, 'id' | 'decimalPlaces' | 'positionDecimalPlaces'>,
|
||||
price: string,
|
||||
size: string
|
||||
): DealTicketOrderAmendment => ({
|
||||
): OrderAmendment => ({
|
||||
orderId: order.id,
|
||||
marketId: market.id,
|
||||
price: removeDecimal(price, market.decimalPlaces),
|
||||
timeInForce: order.timeInForce,
|
||||
sizeDelta: size
|
||||
? new BigNumber(removeDecimal(size, market.positionDecimalPlaces))
|
||||
.minus(order.size)
|
||||
.toNumber()
|
||||
: 0,
|
||||
timeInForce: TimeInForceMap[order.timeInForce],
|
||||
sizeDelta: BigInt(
|
||||
size
|
||||
? new BigNumber(removeDecimal(size, market.positionDecimalPlaces))
|
||||
.minus(order.size)
|
||||
.toNumber()
|
||||
: 0
|
||||
),
|
||||
expiresAt: order.expiresAt
|
||||
? toNanoSeconds(order.expiresAt) // Wallet expects timestamp in nanoseconds
|
||||
? BigInt(toNanoSeconds(order.expiresAt)) // Wallet expects timestamp in nanoseconds
|
||||
: undefined,
|
||||
});
|
||||
|
||||
export const convertDealTicketToOrderAmendment = (
|
||||
dealTicketOrder: DealTicketOrderAmendment
|
||||
) => {
|
||||
return {
|
||||
...dealTicketOrder,
|
||||
expiresAt: dealTicketOrder.expiresAt
|
||||
? BigInt(dealTicketOrder.expiresAt)
|
||||
: null,
|
||||
timeInForce: TimeInForceMap[dealTicketOrder.timeInForce],
|
||||
sizeDelta: BigInt(dealTicketOrder.sizeDelta || 0),
|
||||
} as OrderAmendment;
|
||||
};
|
||||
|
||||
const CancelAllOrdersButton = ({ onClick }: { onClick: () => void }) => (
|
||||
<div className="dark:bg-black/75 bg-white/75 h-auto flex justify-end px-[11px] py-2 absolute bottom-0 right-3 rounded">
|
||||
<Button
|
||||
@@ -239,8 +217,7 @@ export const OrderListManager = ({
|
||||
};
|
||||
create(
|
||||
{
|
||||
orderAmendment:
|
||||
convertDealTicketToOrderAmendment(orderAmendment),
|
||||
orderAmendment,
|
||||
},
|
||||
originalOrder
|
||||
);
|
||||
|
||||
@@ -20,7 +20,7 @@ const mockWithdrawAsset = {
|
||||
delay: 10,
|
||||
handleSelectAsset: jest.fn(),
|
||||
};
|
||||
const mockUseWithdrawAsset = jest.fn(() => mockWithdrawAsset);
|
||||
|
||||
jest.mock('./use-withdraw-asset', () => ({
|
||||
useWithdrawAsset: () => mockWithdrawAsset,
|
||||
}));
|
||||
|
||||
Reference in New Issue
Block a user