2023-07-24 08:37:18 +00:00
|
|
|
import { matchFilter, lpAggregatedDataProvider } from '@vegaprotocol/liquidity';
|
2023-05-08 01:01:07 +00:00
|
|
|
import { useDataProvider } from '@vegaprotocol/data-provider';
|
2023-07-24 08:37:18 +00:00
|
|
|
import { Tab, Tabs } from '@vegaprotocol/ui-toolkit';
|
2024-03-01 14:25:56 +00:00
|
|
|
import { useVegaWallet } from '@vegaprotocol/wallet-react';
|
2023-07-24 08:37:18 +00:00
|
|
|
import { useEffect, useState } from 'react';
|
|
|
|
import { useParams } from 'react-router-dom';
|
2023-06-27 00:10:22 +00:00
|
|
|
import { LiquidityContainer } from '../../components/liquidity-container';
|
2023-11-16 03:10:39 +00:00
|
|
|
import { useT } from '../../lib/use-t';
|
2023-12-06 13:31:40 +00:00
|
|
|
import { ErrorBoundary } from '../../components/error-boundary';
|
2023-03-31 10:41:16 +00:00
|
|
|
|
|
|
|
const enum LiquidityTabs {
|
|
|
|
Active = 'active',
|
|
|
|
Inactive = 'inactive',
|
|
|
|
MyLiquidityProvision = 'myLP',
|
|
|
|
}
|
feat: liquidity provisions view (#1133)
* feat(#473): add positions metrics data provider
* feat(#473) add positions stats
* feat(#473) add positions stats
* feat(#473): add positions stats
* feat(#473): add positions stats
* feat(#473): position metrics, test and refactoring
* feat(#473): add unit tests to positions table
* feat(#473): fix spelling, order positions by updated at desc
* feat(#473): protect from division by 0
* feat(#473): fix trading positions e2e tests
* feat(#473): fix e2e data mocks
* feat(#473): post code review clean up
* feat(#993): dependencies handling in data provider
* feat(#993): fix e2e tests data mocks
* feat(#993): remove position metrics mocks, add market data market id
* feat: #994 add price monitoring bounds and candles update interface
* fix: move best bid price to diff section
* feat(#993): add missing mocks, fix combine function
* fix: add insurance pool and calc volume 24h
* feat: display some oracle min info, asset id, insurance pool, move open interest and 24hVol
* fix: add market-info.cy.ts case
* fix: remove # from numbered price monitoring settings
* fix: add insurance pool test
* fix: format 24hvol
* feat(#993): set loading initially to true, add unit tests
* feat(#993): cleanup, add comments
* feat(#993): remove undefined from client type
* fix: remove indicativeVolume and oracleSpecBinding from market info
* feat(#993): cosmetic changes
* fix: add oracleSpecBinding back
* Update libs/deal-ticket/src/components/info-market.tsx
Co-authored-by: botond <105208209+notbot00@users.noreply.github.com>
* feat: add initial queries
* fix: memo yesterday's timestamp
* fix: add back info
* fix: update query
* fix: add view full oracle details link and update mappings
* fix: regen code, make link reactnode, fix index.ts
* feat: add liquidity lib, refactor info market
* fix: remove liquidity query from deal-ticket
* feat:(#993): pass informaton about update callback cause
* fix: small ui tweaks
* fix: display in grid
* feat: navigate to oracle by termination id
* feat: #491 add use liquidity provision merging
* fix: remove logs, add extra check on my liquidity provision
* fix: type number trivially inferred from a number literal, remove type annotation
* fix: cypress tests and formatting for market info
* Update libs/deal-ticket/src/components/market-info/info-market.tsx
* fix: use position decimal places for stake and market value proxy
* fix: #491 use size/position decimal places for obligation, supplied and commitment amount
* fix: add size component and use decimal places
* fix: update readme liquidity
* fix: #491 add correct asset decimal formatters
* Update libs/deal-ticket/src/components/market-info/tooltip-mapping.tsx
Co-authored-by: candida-d <62548908+candida-d@users.noreply.github.com>
* fix: make link instead of button to open liquidity
* fix: #491 add liquidity page, link to trading mode tooltip, tabs hidden or choose active
* fix: remove LP dialog, use only link to page
* fix: add market id in LP view
* fix: follow trade grid design
* fix: add one line tabs , remove link styling, remove any, add value formatters
* fix: remove falsy check LP undefined
* fix: keep date formatter in LP table
* fix: add generic type market info, hooks in body function
* fix: revert number formatters
* fix: use one param only in network params query
* fix: use network param in web3 lib
* fix: move lp container to trading app
* fix: remove resizable panel
* feat: add header component, remove isEstimate
* chore: remove unnecessary type cast
* fix: fix build with children map clone element
* chore: lint
* fix: move use network params to react helpers
* fix: add const for LP tabs
* fix: fix formatting on LP page
* fix: only show tilde for liquidity monitoring auction end date
* fix: market id being rendered twice in market info
* chore: fix lint
* fix: types for generate withdraw form query
* chore: fix intermittent failing withdrawal test
* Update libs/deal-ticket/src/components/market-info/info-market.tsx
* chore: add another wait for market
Co-authored-by: Bartłomiej Głownia <bglownia@gmail.com>
Co-authored-by: botond <105208209+notbot00@users.noreply.github.com>
Co-authored-by: candida-d <62548908+candida-d@users.noreply.github.com>
Co-authored-by: Matthew Russell <mattrussell36@gmail.com>
Co-authored-by: Joe <joe@vega.xyz>
2022-09-07 11:05:28 +00:00
|
|
|
|
2022-11-08 07:23:38 +00:00
|
|
|
export const Liquidity = () => {
|
|
|
|
const params = useParams();
|
2022-12-12 09:44:58 +00:00
|
|
|
const marketId = params.marketId;
|
|
|
|
return <LiquidityViewContainer marketId={marketId} />;
|
|
|
|
};
|
|
|
|
|
|
|
|
export const LiquidityViewContainer = ({
|
|
|
|
marketId,
|
|
|
|
}: {
|
|
|
|
marketId: string | undefined;
|
|
|
|
}) => {
|
2023-11-16 03:10:39 +00:00
|
|
|
const t = useT();
|
2023-04-03 13:02:43 +00:00
|
|
|
const [tab, setTab] = useState<string | undefined>(undefined);
|
2022-12-12 09:44:58 +00:00
|
|
|
const { pubKey } = useVegaWallet();
|
2022-10-24 19:42:53 +00:00
|
|
|
|
2023-04-03 13:02:43 +00:00
|
|
|
const { data } = useDataProvider({
|
2022-10-24 19:42:53 +00:00
|
|
|
dataProvider: lpAggregatedDataProvider,
|
2023-04-03 13:02:43 +00:00
|
|
|
skipUpdates: true,
|
2023-03-09 10:03:50 +00:00
|
|
|
variables: { marketId: marketId || '' },
|
|
|
|
skip: !marketId,
|
2022-10-24 19:42:53 +00:00
|
|
|
});
|
feat: liquidity provisions view (#1133)
* feat(#473): add positions metrics data provider
* feat(#473) add positions stats
* feat(#473) add positions stats
* feat(#473): add positions stats
* feat(#473): add positions stats
* feat(#473): position metrics, test and refactoring
* feat(#473): add unit tests to positions table
* feat(#473): fix spelling, order positions by updated at desc
* feat(#473): protect from division by 0
* feat(#473): fix trading positions e2e tests
* feat(#473): fix e2e data mocks
* feat(#473): post code review clean up
* feat(#993): dependencies handling in data provider
* feat(#993): fix e2e tests data mocks
* feat(#993): remove position metrics mocks, add market data market id
* feat: #994 add price monitoring bounds and candles update interface
* fix: move best bid price to diff section
* feat(#993): add missing mocks, fix combine function
* fix: add insurance pool and calc volume 24h
* feat: display some oracle min info, asset id, insurance pool, move open interest and 24hVol
* fix: add market-info.cy.ts case
* fix: remove # from numbered price monitoring settings
* fix: add insurance pool test
* fix: format 24hvol
* feat(#993): set loading initially to true, add unit tests
* feat(#993): cleanup, add comments
* feat(#993): remove undefined from client type
* fix: remove indicativeVolume and oracleSpecBinding from market info
* feat(#993): cosmetic changes
* fix: add oracleSpecBinding back
* Update libs/deal-ticket/src/components/info-market.tsx
Co-authored-by: botond <105208209+notbot00@users.noreply.github.com>
* feat: add initial queries
* fix: memo yesterday's timestamp
* fix: add back info
* fix: update query
* fix: add view full oracle details link and update mappings
* fix: regen code, make link reactnode, fix index.ts
* feat: add liquidity lib, refactor info market
* fix: remove liquidity query from deal-ticket
* feat:(#993): pass informaton about update callback cause
* fix: small ui tweaks
* fix: display in grid
* feat: navigate to oracle by termination id
* feat: #491 add use liquidity provision merging
* fix: remove logs, add extra check on my liquidity provision
* fix: type number trivially inferred from a number literal, remove type annotation
* fix: cypress tests and formatting for market info
* Update libs/deal-ticket/src/components/market-info/info-market.tsx
* fix: use position decimal places for stake and market value proxy
* fix: #491 use size/position decimal places for obligation, supplied and commitment amount
* fix: add size component and use decimal places
* fix: update readme liquidity
* fix: #491 add correct asset decimal formatters
* Update libs/deal-ticket/src/components/market-info/tooltip-mapping.tsx
Co-authored-by: candida-d <62548908+candida-d@users.noreply.github.com>
* fix: make link instead of button to open liquidity
* fix: #491 add liquidity page, link to trading mode tooltip, tabs hidden or choose active
* fix: remove LP dialog, use only link to page
* fix: add market id in LP view
* fix: follow trade grid design
* fix: add one line tabs , remove link styling, remove any, add value formatters
* fix: remove falsy check LP undefined
* fix: keep date formatter in LP table
* fix: add generic type market info, hooks in body function
* fix: revert number formatters
* fix: use one param only in network params query
* fix: use network param in web3 lib
* fix: move lp container to trading app
* fix: remove resizable panel
* feat: add header component, remove isEstimate
* chore: remove unnecessary type cast
* fix: fix build with children map clone element
* chore: lint
* fix: move use network params to react helpers
* fix: add const for LP tabs
* fix: fix formatting on LP page
* fix: only show tilde for liquidity monitoring auction end date
* fix: market id being rendered twice in market info
* chore: fix lint
* fix: types for generate withdraw form query
* chore: fix intermittent failing withdrawal test
* Update libs/deal-ticket/src/components/market-info/info-market.tsx
* chore: add another wait for market
Co-authored-by: Bartłomiej Głownia <bglownia@gmail.com>
Co-authored-by: botond <105208209+notbot00@users.noreply.github.com>
Co-authored-by: candida-d <62548908+candida-d@users.noreply.github.com>
Co-authored-by: Matthew Russell <mattrussell36@gmail.com>
Co-authored-by: Joe <joe@vega.xyz>
2022-09-07 11:05:28 +00:00
|
|
|
|
2023-03-31 10:41:16 +00:00
|
|
|
useEffect(() => {
|
2023-04-03 13:02:43 +00:00
|
|
|
if (data) {
|
|
|
|
if (pubKey && data.some((lp) => matchFilter({ partyId: pubKey }, lp))) {
|
|
|
|
setTab(LiquidityTabs.MyLiquidityProvision);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (data.some((lp) => matchFilter({ active: true }, lp))) {
|
|
|
|
setTab(LiquidityTabs.Active);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
setTab(LiquidityTabs.Inactive);
|
2023-03-31 10:41:16 +00:00
|
|
|
}
|
2023-04-03 13:02:43 +00:00
|
|
|
}, [data, pubKey]);
|
2023-01-09 14:39:03 +00:00
|
|
|
|
feat: liquidity provisions view (#1133)
* feat(#473): add positions metrics data provider
* feat(#473) add positions stats
* feat(#473) add positions stats
* feat(#473): add positions stats
* feat(#473): add positions stats
* feat(#473): position metrics, test and refactoring
* feat(#473): add unit tests to positions table
* feat(#473): fix spelling, order positions by updated at desc
* feat(#473): protect from division by 0
* feat(#473): fix trading positions e2e tests
* feat(#473): fix e2e data mocks
* feat(#473): post code review clean up
* feat(#993): dependencies handling in data provider
* feat(#993): fix e2e tests data mocks
* feat(#993): remove position metrics mocks, add market data market id
* feat: #994 add price monitoring bounds and candles update interface
* fix: move best bid price to diff section
* feat(#993): add missing mocks, fix combine function
* fix: add insurance pool and calc volume 24h
* feat: display some oracle min info, asset id, insurance pool, move open interest and 24hVol
* fix: add market-info.cy.ts case
* fix: remove # from numbered price monitoring settings
* fix: add insurance pool test
* fix: format 24hvol
* feat(#993): set loading initially to true, add unit tests
* feat(#993): cleanup, add comments
* feat(#993): remove undefined from client type
* fix: remove indicativeVolume and oracleSpecBinding from market info
* feat(#993): cosmetic changes
* fix: add oracleSpecBinding back
* Update libs/deal-ticket/src/components/info-market.tsx
Co-authored-by: botond <105208209+notbot00@users.noreply.github.com>
* feat: add initial queries
* fix: memo yesterday's timestamp
* fix: add back info
* fix: update query
* fix: add view full oracle details link and update mappings
* fix: regen code, make link reactnode, fix index.ts
* feat: add liquidity lib, refactor info market
* fix: remove liquidity query from deal-ticket
* feat:(#993): pass informaton about update callback cause
* fix: small ui tweaks
* fix: display in grid
* feat: navigate to oracle by termination id
* feat: #491 add use liquidity provision merging
* fix: remove logs, add extra check on my liquidity provision
* fix: type number trivially inferred from a number literal, remove type annotation
* fix: cypress tests and formatting for market info
* Update libs/deal-ticket/src/components/market-info/info-market.tsx
* fix: use position decimal places for stake and market value proxy
* fix: #491 use size/position decimal places for obligation, supplied and commitment amount
* fix: add size component and use decimal places
* fix: update readme liquidity
* fix: #491 add correct asset decimal formatters
* Update libs/deal-ticket/src/components/market-info/tooltip-mapping.tsx
Co-authored-by: candida-d <62548908+candida-d@users.noreply.github.com>
* fix: make link instead of button to open liquidity
* fix: #491 add liquidity page, link to trading mode tooltip, tabs hidden or choose active
* fix: remove LP dialog, use only link to page
* fix: add market id in LP view
* fix: follow trade grid design
* fix: add one line tabs , remove link styling, remove any, add value formatters
* fix: remove falsy check LP undefined
* fix: keep date formatter in LP table
* fix: add generic type market info, hooks in body function
* fix: revert number formatters
* fix: use one param only in network params query
* fix: use network param in web3 lib
* fix: move lp container to trading app
* fix: remove resizable panel
* feat: add header component, remove isEstimate
* chore: remove unnecessary type cast
* fix: fix build with children map clone element
* chore: lint
* fix: move use network params to react helpers
* fix: add const for LP tabs
* fix: fix formatting on LP page
* fix: only show tilde for liquidity monitoring auction end date
* fix: market id being rendered twice in market info
* chore: fix lint
* fix: types for generate withdraw form query
* chore: fix intermittent failing withdrawal test
* Update libs/deal-ticket/src/components/market-info/info-market.tsx
* chore: add another wait for market
Co-authored-by: Bartłomiej Głownia <bglownia@gmail.com>
Co-authored-by: botond <105208209+notbot00@users.noreply.github.com>
Co-authored-by: candida-d <62548908+candida-d@users.noreply.github.com>
Co-authored-by: Matthew Russell <mattrussell36@gmail.com>
Co-authored-by: Joe <joe@vega.xyz>
2022-09-07 11:05:28 +00:00
|
|
|
return (
|
2023-07-24 08:37:18 +00:00
|
|
|
<div className="h-full p-1.5">
|
|
|
|
<div className="h-full border border-default">
|
|
|
|
<Tabs value={tab || LiquidityTabs.Active} onValueChange={setTab}>
|
|
|
|
<Tab
|
|
|
|
id={LiquidityTabs.MyLiquidityProvision}
|
|
|
|
name={t('My liquidity provision')}
|
|
|
|
hidden={!pubKey}
|
|
|
|
>
|
2023-12-06 13:31:40 +00:00
|
|
|
<ErrorBoundary feature="liquidity-party">
|
|
|
|
<LiquidityContainer
|
|
|
|
marketId={marketId}
|
|
|
|
filter={{ partyId: pubKey || undefined }}
|
|
|
|
/>
|
|
|
|
</ErrorBoundary>
|
2023-07-24 08:37:18 +00:00
|
|
|
</Tab>
|
|
|
|
<Tab id={LiquidityTabs.Active} name={t('Active')}>
|
2023-12-06 13:31:40 +00:00
|
|
|
<ErrorBoundary feature="liquidity-active">
|
|
|
|
<LiquidityContainer
|
|
|
|
marketId={marketId}
|
|
|
|
filter={{ active: true }}
|
|
|
|
/>
|
|
|
|
</ErrorBoundary>
|
2023-07-24 08:37:18 +00:00
|
|
|
</Tab>
|
|
|
|
<Tab id={LiquidityTabs.Inactive} name={t('Inactive')}>
|
2023-12-06 13:31:40 +00:00
|
|
|
<ErrorBoundary feature="liquidity-inactive">
|
|
|
|
<LiquidityContainer
|
|
|
|
marketId={marketId}
|
|
|
|
filter={{ active: false }}
|
|
|
|
/>
|
|
|
|
</ErrorBoundary>
|
2023-07-24 08:37:18 +00:00
|
|
|
</Tab>
|
|
|
|
</Tabs>
|
|
|
|
</div>
|
2023-04-03 13:02:43 +00:00
|
|
|
</div>
|
feat: liquidity provisions view (#1133)
* feat(#473): add positions metrics data provider
* feat(#473) add positions stats
* feat(#473) add positions stats
* feat(#473): add positions stats
* feat(#473): add positions stats
* feat(#473): position metrics, test and refactoring
* feat(#473): add unit tests to positions table
* feat(#473): fix spelling, order positions by updated at desc
* feat(#473): protect from division by 0
* feat(#473): fix trading positions e2e tests
* feat(#473): fix e2e data mocks
* feat(#473): post code review clean up
* feat(#993): dependencies handling in data provider
* feat(#993): fix e2e tests data mocks
* feat(#993): remove position metrics mocks, add market data market id
* feat: #994 add price monitoring bounds and candles update interface
* fix: move best bid price to diff section
* feat(#993): add missing mocks, fix combine function
* fix: add insurance pool and calc volume 24h
* feat: display some oracle min info, asset id, insurance pool, move open interest and 24hVol
* fix: add market-info.cy.ts case
* fix: remove # from numbered price monitoring settings
* fix: add insurance pool test
* fix: format 24hvol
* feat(#993): set loading initially to true, add unit tests
* feat(#993): cleanup, add comments
* feat(#993): remove undefined from client type
* fix: remove indicativeVolume and oracleSpecBinding from market info
* feat(#993): cosmetic changes
* fix: add oracleSpecBinding back
* Update libs/deal-ticket/src/components/info-market.tsx
Co-authored-by: botond <105208209+notbot00@users.noreply.github.com>
* feat: add initial queries
* fix: memo yesterday's timestamp
* fix: add back info
* fix: update query
* fix: add view full oracle details link and update mappings
* fix: regen code, make link reactnode, fix index.ts
* feat: add liquidity lib, refactor info market
* fix: remove liquidity query from deal-ticket
* feat:(#993): pass informaton about update callback cause
* fix: small ui tweaks
* fix: display in grid
* feat: navigate to oracle by termination id
* feat: #491 add use liquidity provision merging
* fix: remove logs, add extra check on my liquidity provision
* fix: type number trivially inferred from a number literal, remove type annotation
* fix: cypress tests and formatting for market info
* Update libs/deal-ticket/src/components/market-info/info-market.tsx
* fix: use position decimal places for stake and market value proxy
* fix: #491 use size/position decimal places for obligation, supplied and commitment amount
* fix: add size component and use decimal places
* fix: update readme liquidity
* fix: #491 add correct asset decimal formatters
* Update libs/deal-ticket/src/components/market-info/tooltip-mapping.tsx
Co-authored-by: candida-d <62548908+candida-d@users.noreply.github.com>
* fix: make link instead of button to open liquidity
* fix: #491 add liquidity page, link to trading mode tooltip, tabs hidden or choose active
* fix: remove LP dialog, use only link to page
* fix: add market id in LP view
* fix: follow trade grid design
* fix: add one line tabs , remove link styling, remove any, add value formatters
* fix: remove falsy check LP undefined
* fix: keep date formatter in LP table
* fix: add generic type market info, hooks in body function
* fix: revert number formatters
* fix: use one param only in network params query
* fix: use network param in web3 lib
* fix: move lp container to trading app
* fix: remove resizable panel
* feat: add header component, remove isEstimate
* chore: remove unnecessary type cast
* fix: fix build with children map clone element
* chore: lint
* fix: move use network params to react helpers
* fix: add const for LP tabs
* fix: fix formatting on LP page
* fix: only show tilde for liquidity monitoring auction end date
* fix: market id being rendered twice in market info
* chore: fix lint
* fix: types for generate withdraw form query
* chore: fix intermittent failing withdrawal test
* Update libs/deal-ticket/src/components/market-info/info-market.tsx
* chore: add another wait for market
Co-authored-by: Bartłomiej Głownia <bglownia@gmail.com>
Co-authored-by: botond <105208209+notbot00@users.noreply.github.com>
Co-authored-by: candida-d <62548908+candida-d@users.noreply.github.com>
Co-authored-by: Matthew Russell <mattrussell36@gmail.com>
Co-authored-by: Joe <joe@vega.xyz>
2022-09-07 11:05:28 +00:00
|
|
|
);
|
|
|
|
};
|