diff --git a/apps/governance-e2e/src/support/proposal.functions.ts b/apps/governance-e2e/src/support/proposal.functions.ts index 42253c670..00bd0ece4 100644 --- a/apps/governance-e2e/src/support/proposal.functions.ts +++ b/apps/governance-e2e/src/support/proposal.functions.ts @@ -89,6 +89,6 @@ export function mockNetworkUpgradeProposal() { cy.mockGQL((req) => { aliasGQLQuery(req, 'Nodes', nodeData); aliasGQLQuery(req, 'Proposals', proposalsData); - aliasGQLQuery(req, 'ProtocolUpgrades', upgradeProposalsData); + aliasGQLQuery(req, 'ProtocolUpgradeProposals', upgradeProposalsData); }); } diff --git a/apps/governance/src/routes/home/index.tsx b/apps/governance/src/routes/home/index.tsx index 3f5751ccf..00ffd171c 100644 --- a/apps/governance/src/routes/home/index.tsx +++ b/apps/governance/src/routes/home/index.tsx @@ -15,7 +15,6 @@ import Routes from '../routes'; import { ExternalLinks, removePaginationWrapper } from '@vegaprotocol/utils'; import { useNodesQuery } from '../staking/home/__generated__/Nodes'; import { useProposalsQuery } from '../proposals/proposals/__generated__/Proposals'; -import { useProtocolUpgradesQuery } from '../proposals/protocol-upgrade/__generated__/ProtocolUpgradeProposals'; import { getNotRejectedProposals, getNotRejectedProtocolUpgradeProposals, @@ -25,7 +24,8 @@ import * as Schema from '@vegaprotocol/types'; import type { RouteChildProps } from '..'; import type { ProposalFieldsFragment } from '../proposals/proposals/__generated__/Proposals'; import type { NodesFragmentFragment } from '../staking/home/__generated__/Nodes'; -import type { ProtocolUpgradeProposalFieldsFragment } from '../proposals/protocol-upgrade/__generated__/ProtocolUpgradeProposals'; +import type { ProtocolUpgradeProposalFieldsFragment } from '@vegaprotocol/proposals'; +import { useProtocolUpgradeProposalsQuery } from '@vegaprotocol/proposals'; const nodesToShow = 6; @@ -181,7 +181,7 @@ const GovernanceHome = ({ name }: RouteChildProps) => { data: protocolUpgradesData, loading: protocolUpgradesLoading, error: protocolUpgradesError, - } = useProtocolUpgradesQuery({ + } = useProtocolUpgradeProposalsQuery({ pollInterval: 5000, fetchPolicy: 'network-only', errorPolicy: 'ignore', diff --git a/apps/governance/src/routes/proposals/components/proposals-list/proposals-list.tsx b/apps/governance/src/routes/proposals/components/proposals-list/proposals-list.tsx index f31921db5..c6b8e761f 100644 --- a/apps/governance/src/routes/proposals/components/proposals-list/proposals-list.tsx +++ b/apps/governance/src/routes/proposals/components/proposals-list/proposals-list.tsx @@ -12,7 +12,7 @@ import { ExternalLinks } from '@vegaprotocol/utils'; import { ExternalLink } from '@vegaprotocol/ui-toolkit'; import type { ProposalQuery } from '../../proposal/__generated__/Proposal'; import type { ProposalFieldsFragment } from '../../proposals/__generated__/Proposals'; -import type { ProtocolUpgradeProposalFieldsFragment } from '../../protocol-upgrade/__generated__/ProtocolUpgradeProposals'; +import type { ProtocolUpgradeProposalFieldsFragment } from '@vegaprotocol/proposals'; interface ProposalsListProps { proposals: Array; diff --git a/apps/governance/src/routes/proposals/components/protocol-upgrade-proposal-detail-info/protocol-upgrade-proposal-detail-info.tsx b/apps/governance/src/routes/proposals/components/protocol-upgrade-proposal-detail-info/protocol-upgrade-proposal-detail-info.tsx index 3aace79fd..95b3612f7 100644 --- a/apps/governance/src/routes/proposals/components/protocol-upgrade-proposal-detail-info/protocol-upgrade-proposal-detail-info.tsx +++ b/apps/governance/src/routes/proposals/components/protocol-upgrade-proposal-detail-info/protocol-upgrade-proposal-detail-info.tsx @@ -5,7 +5,7 @@ import { RoundedWrapper, } from '@vegaprotocol/ui-toolkit'; import { SubHeading } from '../../../../components/heading'; -import type { ProtocolUpgradeProposalFieldsFragment } from '../../protocol-upgrade/__generated__/ProtocolUpgradeProposals'; +import type { ProtocolUpgradeProposalFieldsFragment } from '@vegaprotocol/proposals'; export interface ProtocolUpgradeProposalDetailInfoProps { proposal: ProtocolUpgradeProposalFieldsFragment; diff --git a/apps/governance/src/routes/proposals/components/protocol-upgrade-proposals-list-item/protocol-upgrade-proposals-list-item.spec.tsx b/apps/governance/src/routes/proposals/components/protocol-upgrade-proposals-list-item/protocol-upgrade-proposals-list-item.spec.tsx index 65b78c073..4d0bdce7f 100644 --- a/apps/governance/src/routes/proposals/components/protocol-upgrade-proposals-list-item/protocol-upgrade-proposals-list-item.spec.tsx +++ b/apps/governance/src/routes/proposals/components/protocol-upgrade-proposals-list-item/protocol-upgrade-proposals-list-item.spec.tsx @@ -3,7 +3,7 @@ import { render, screen } from '@testing-library/react'; import { BrowserRouter } from 'react-router-dom'; import { ProtocolUpgradeProposalsListItem } from './protocol-upgrade-proposals-list-item'; import { ProtocolUpgradeProposalStatus } from '@vegaprotocol/types'; -import type { ProtocolUpgradeProposalFieldsFragment } from '../../protocol-upgrade/__generated__/ProtocolUpgradeProposals'; +import type { ProtocolUpgradeProposalFieldsFragment } from '@vegaprotocol/proposals'; const proposal = { status: diff --git a/apps/governance/src/routes/proposals/components/protocol-upgrade-proposals-list-item/protocol-upgrade-proposals-list-item.tsx b/apps/governance/src/routes/proposals/components/protocol-upgrade-proposals-list-item/protocol-upgrade-proposals-list-item.tsx index c4be5acda..e96fb5941 100644 --- a/apps/governance/src/routes/proposals/components/protocol-upgrade-proposals-list-item/protocol-upgrade-proposals-list-item.tsx +++ b/apps/governance/src/routes/proposals/components/protocol-upgrade-proposals-list-item/protocol-upgrade-proposals-list-item.tsx @@ -11,8 +11,8 @@ import { stripFullStops } from '@vegaprotocol/utils'; import { ProtocolUpgradeProposalStatus } from '@vegaprotocol/types'; import { SubHeading } from '../../../../components/heading'; import type { ReactNode } from 'react'; -import type { ProtocolUpgradeProposalFieldsFragment } from '../../protocol-upgrade/__generated__/ProtocolUpgradeProposals'; import Routes from '../../../routes'; +import type { ProtocolUpgradeProposalFieldsFragment } from '@vegaprotocol/proposals'; interface ProtocolProposalsListItemProps { proposal: ProtocolUpgradeProposalFieldsFragment; diff --git a/apps/governance/src/routes/proposals/proposals/proposals-container.tsx b/apps/governance/src/routes/proposals/proposals/proposals-container.tsx index 4a92bd5d9..7d63a91f2 100644 --- a/apps/governance/src/routes/proposals/proposals/proposals-container.tsx +++ b/apps/governance/src/routes/proposals/proposals/proposals-container.tsx @@ -13,10 +13,9 @@ import { } from '@vegaprotocol/types'; import type { NodeConnection, NodeEdge } from '@vegaprotocol/utils'; import type { ProposalFieldsFragment } from './__generated__/Proposals'; -import type { ProtocolUpgradeProposalFieldsFragment } from '../protocol-upgrade/__generated__/ProtocolUpgradeProposals'; - import orderBy from 'lodash/orderBy'; -import { useProtocolUpgradesQuery } from '../protocol-upgrade/__generated__/ProtocolUpgradeProposals'; +import type { ProtocolUpgradeProposalFieldsFragment } from '@vegaprotocol/proposals'; +import { useProtocolUpgradeProposalsQuery } from '@vegaprotocol/proposals'; const orderByDate = (arr: ProposalFieldsFragment[]) => orderBy( @@ -73,7 +72,7 @@ export const ProposalsContainer = () => { data: protocolUpgradesData, loading: protocolUpgradesLoading, error: protocolUpgradesError, - } = useProtocolUpgradesQuery({ + } = useProtocolUpgradeProposalsQuery({ pollInterval: 5000, fetchPolicy: 'network-only', errorPolicy: 'ignore', diff --git a/apps/governance/src/routes/proposals/protocol-upgrade/__generated__/ProtocolUpgradeProposals.ts b/apps/governance/src/routes/proposals/protocol-upgrade/__generated__/ProtocolUpgradeProposals.ts deleted file mode 100644 index ef5f9928f..000000000 --- a/apps/governance/src/routes/proposals/protocol-upgrade/__generated__/ProtocolUpgradeProposals.ts +++ /dev/null @@ -1,59 +0,0 @@ -import * as Types from '@vegaprotocol/types'; - -import { gql } from '@apollo/client'; -import * as Apollo from '@apollo/client'; -const defaultOptions = {} as const; -export type ProtocolUpgradeProposalFieldsFragment = { __typename?: 'ProtocolUpgradeProposal', upgradeBlockHeight: string, vegaReleaseTag: string, approvers: Array, status: Types.ProtocolUpgradeProposalStatus }; - -export type ProtocolUpgradesQueryVariables = Types.Exact<{ [key: string]: never; }>; - - -export type ProtocolUpgradesQuery = { __typename?: 'Query', lastBlockHeight: string, protocolUpgradeProposals?: { __typename?: 'ProtocolUpgradeProposalConnection', edges?: Array<{ __typename?: 'ProtocolUpgradeProposalEdge', node: { __typename?: 'ProtocolUpgradeProposal', upgradeBlockHeight: string, vegaReleaseTag: string, approvers: Array, status: Types.ProtocolUpgradeProposalStatus } }> | null } | null }; - -export const ProtocolUpgradeProposalFieldsFragmentDoc = gql` - fragment ProtocolUpgradeProposalFields on ProtocolUpgradeProposal { - upgradeBlockHeight - vegaReleaseTag - approvers - status -} - `; -export const ProtocolUpgradesDocument = gql` - query ProtocolUpgrades { - lastBlockHeight - protocolUpgradeProposals { - edges { - node { - ...ProtocolUpgradeProposalFields - } - } - } -} - ${ProtocolUpgradeProposalFieldsFragmentDoc}`; - -/** - * __useProtocolUpgradesQuery__ - * - * To run a query within a React component, call `useProtocolUpgradesQuery` and pass it any options that fit your needs. - * When your component renders, `useProtocolUpgradesQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useProtocolUpgradesQuery({ - * variables: { - * }, - * }); - */ -export function useProtocolUpgradesQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(ProtocolUpgradesDocument, options); - } -export function useProtocolUpgradesLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(ProtocolUpgradesDocument, options); - } -export type ProtocolUpgradesQueryHookResult = ReturnType; -export type ProtocolUpgradesLazyQueryHookResult = ReturnType; -export type ProtocolUpgradesQueryResult = Apollo.QueryResult; \ No newline at end of file diff --git a/apps/governance/src/routes/proposals/protocol-upgrade/protocol-upgrade-proposal-container.tsx b/apps/governance/src/routes/proposals/protocol-upgrade/protocol-upgrade-proposal-container.tsx index 72b54e039..8cbe6d03b 100644 --- a/apps/governance/src/routes/proposals/protocol-upgrade/protocol-upgrade-proposal-container.tsx +++ b/apps/governance/src/routes/proposals/protocol-upgrade/protocol-upgrade-proposal-container.tsx @@ -6,14 +6,14 @@ import * as Schema from '@vegaprotocol/types'; import { ProtocolUpgradeProposal } from './protocol-upgrade-proposal'; import { ProposalNotFound } from '../components/proposal-not-found'; -import { useProtocolUpgradesQuery } from './__generated__/ProtocolUpgradeProposals'; import { useNodesQuery } from '../../staking/home/__generated__/Nodes'; import { useRefreshAfterEpoch } from '../../../hooks/use-refresh-after-epoch'; +import { useProtocolUpgradeProposalsQuery } from '@vegaprotocol/proposals'; export const ProtocolUpgradeProposalContainer = () => { const params = useParams<{ proposalReleaseTag: string }>(); - const { data, loading, error, refetch } = useProtocolUpgradesQuery({ + const { data, loading, error, refetch } = useProtocolUpgradeProposalsQuery({ fetchPolicy: 'network-only', errorPolicy: 'ignore', skip: !params.proposalReleaseTag, diff --git a/apps/governance/src/routes/proposals/protocol-upgrade/protocol-upgrade-proposal.spec.tsx b/apps/governance/src/routes/proposals/protocol-upgrade/protocol-upgrade-proposal.spec.tsx index 8e59e8b0d..229fbf001 100644 --- a/apps/governance/src/routes/proposals/protocol-upgrade/protocol-upgrade-proposal.spec.tsx +++ b/apps/governance/src/routes/proposals/protocol-upgrade/protocol-upgrade-proposal.spec.tsx @@ -9,7 +9,7 @@ import { import { ProtocolUpgradeProposalStatus } from '@vegaprotocol/types'; import { getNormalisedVotingPower } from '../../staking/shared'; import type { NodesFragmentFragment } from '../../staking/home/__generated__/Nodes'; -import type { ProtocolUpgradeProposalFieldsFragment } from './__generated__/ProtocolUpgradeProposals'; +import type { ProtocolUpgradeProposalFieldsFragment } from '@vegaprotocol/proposals'; const mockProposal: ProtocolUpgradeProposalFieldsFragment = { vegaReleaseTag: 'v0.1.234', diff --git a/apps/governance/src/routes/proposals/protocol-upgrade/protocol-upgrade-proposal.tsx b/apps/governance/src/routes/proposals/protocol-upgrade/protocol-upgrade-proposal.tsx index 6610a17ab..30747e594 100644 --- a/apps/governance/src/routes/proposals/protocol-upgrade/protocol-upgrade-proposal.tsx +++ b/apps/governance/src/routes/proposals/protocol-upgrade/protocol-upgrade-proposal.tsx @@ -3,8 +3,8 @@ import { ProtocolUpgradeProposalDetailHeader } from '../components/protocol-upgr import { ProtocolUpdateProposalDetailApprovals } from '../components/protocol-upgrade-proposal-detail-approvals'; import { ProtocolUpgradeProposalDetailInfo } from '../components/protocol-upgrade-proposal-detail-info'; import { getNormalisedVotingPower } from '../../staking/shared'; -import type { ProtocolUpgradeProposalFieldsFragment } from './__generated__/ProtocolUpgradeProposals'; import type { NodesFragmentFragment } from '../../staking/home/__generated__/Nodes'; +import type { ProtocolUpgradeProposalFieldsFragment } from '@vegaprotocol/proposals'; export interface ProtocolUpgradeProposalProps { proposal: ProtocolUpgradeProposalFieldsFragment; diff --git a/apps/static/src/assets/mainnet-tranches.json b/apps/static/src/assets/mainnet-tranches.json index 523fcc395..b122cb499 100644 --- a/apps/static/src/assets/mainnet-tranches.json +++ b/apps/static/src/assets/mainnet-tranches.json @@ -38,7 +38,7 @@ "tranche_end": "2023-05-20T00:00:00.000Z", "total_added": "19242.125", "total_removed": "959.3245960538025", - "locked_amount": "10578.4844209587189695125", + "locked_amount": "10098.6413524305566245625", "deposits": [ { "amount": "188", @@ -845,7 +845,7 @@ "tranche_end": "2023-05-06T00:00:00.000Z", "total_added": "14520", "total_removed": "5079.76864115505", - "locked_amount": "1206.465231481482324", + "locked_amount": "844.3783333333340916", "deposits": [ { "amount": "111", @@ -4715,7 +4715,7 @@ "tranche_end": "2023-12-05T00:00:00.000Z", "total_added": "86666.297", "total_removed": "0", - "locked_amount": "51166.9974210106919556663", + "locked_amount": "50989.3639405696310624204", "deposits": [ { "amount": "86666.297", @@ -4781,7 +4781,7 @@ "tranche_end": "2023-06-01T00:00:00.000Z", "total_added": "2500", "total_removed": "0", - "locked_amount": "391.38319724257215", + "locked_amount": "381.106913919414", "deposits": [ { "amount": "2500", @@ -4814,7 +4814,7 @@ "tranche_end": "2023-11-01T00:00:00.000Z", "total_added": "15000.000000000000015", "total_removed": "0", - "locked_amount": "14795.60027928744001479560027928744", + "locked_amount": "14734.6127717391315147346127717391315", "deposits": [ { "amount": "1.5e-14", @@ -4902,7 +4902,7 @@ "tranche_end": "2023-09-01T00:00:00.000Z", "total_added": "17500", "total_removed": "0", - "locked_amount": "11459.903224386071", + "locked_amount": "11388.75113224637775", "deposits": [ { "amount": "12500", @@ -5169,7 +5169,7 @@ "tranche_end": "2023-08-01T00:00:00.000Z", "total_added": "37500", "total_removed": "17836.1796921", - "locked_amount": "18541.30457719459875", + "locked_amount": "18386.3087016574575", "deposits": [ { "amount": "7500", @@ -5577,7 +5577,7 @@ "tranche_end": "2023-12-05T00:00:00.000Z", "total_added": "129999.45", "total_removed": "0", - "locked_amount": "51120.313973942497539045", + "locked_amount": "50942.84256170164543551", "deposits": [ { "amount": "129999.45", @@ -5610,7 +5610,7 @@ "tranche_end": "2024-04-01T00:00:00.000Z", "total_added": "54144.7663", "total_removed": "0", - "locked_amount": "49335.74898575644407623565", + "locked_amount": "49225.07568900056925620748", "deposits": [ { "amount": "54144.7663", @@ -5643,7 +5643,7 @@ "tranche_end": "2023-09-03T00:00:00.000Z", "total_added": "62600", "total_removed": "0", - "locked_amount": "21008.336485286656638", + "locked_amount": "20880.029908675801182", "deposits": [ { "amount": "10000", @@ -5836,7 +5836,7 @@ "tranche_end": "2023-09-17T00:00:00.000Z", "total_added": "5000", "total_removed": "0", - "locked_amount": "1869.76296930492115", + "locked_amount": "1859.51484018264835", "deposits": [ { "amount": "5000", @@ -6894,7 +6894,7 @@ "tranche_end": "2023-06-02T00:00:00.000Z", "total_added": "1939928.38", "total_removed": "1709370.7872515768348", - "locked_amount": "156749.9162904687626235986", + "locked_amount": "152773.788985228250267064", "deposits": [ { "amount": "1852091.69", @@ -40766,7 +40766,7 @@ "tranche_end": "2023-06-05T00:00:00.000Z", "total_added": "3732368.4671", "total_removed": "715655.108029600523393", - "locked_amount": "265371.371543329369775774863", + "locked_amount": "259261.353688955187027242512", "deposits": [ { "amount": "1998.95815", @@ -42159,7 +42159,7 @@ "tranche_end": "2023-12-05T00:00:00.000Z", "total_added": "15870102.715470999700000001", "total_removed": "867610.78878511272497352", - "locked_amount": "6240677.4306629368200704822080834181008381", + "locked_amount": "6219011.6996519651564294467839700764949986", "deposits": [ { "amount": "16249.93", @@ -48748,7 +48748,7 @@ "tranche_end": "2023-05-05T00:00:00.000Z", "total_added": "14597706.0446472999", "total_removed": "6168897.174282186485373182", - "locked_amount": "39908.33059608817917720398993360406", + "locked_amount": "19906.6660637589358104620198755149", "deposits": [ { "amount": "129284.449", @@ -58847,7 +58847,7 @@ "tranche_end": "2023-06-05T00:00:00.000Z", "total_added": "472355.6199999996", "total_removed": "44078.8527972103416", - "locked_amount": "42049.610748470926039581595332312", + "locked_amount": "41081.44349309421705422120903094", "deposits": [ { "amount": "3000", diff --git a/apps/trading/components/navbar/navbar.tsx b/apps/trading/components/navbar/navbar.tsx index ccbd32b91..c2e5e7464 100644 --- a/apps/trading/components/navbar/navbar.tsx +++ b/apps/trading/components/navbar/navbar.tsx @@ -24,6 +24,10 @@ import { import { Links, Routes } from '../../pages/client-router'; import { createDocsLinks } from '@vegaprotocol/utils'; import { SettingsButton } from '../../client-pages/settings'; +import { + ProtocolUpgradeCountdown, + ProtocolUpgradeCountdownMode, +} from '@vegaprotocol/proposals'; export const Navbar = ({ theme = 'system', @@ -45,11 +49,14 @@ export const Navbar = ({ theme={theme} actions={ <> + } - breakpoints={[521, 1067]} + breakpoints={[521, 1122]} > { const { isReadOnly, pubKey, disconnect } = useVegaWallet(); return isReadOnly ? ( - ) : ( -
- ); + ) : null; }; diff --git a/apps/trading/pages/_app.page.tsx b/apps/trading/pages/_app.page.tsx index 3996631d3..4f7d6ccab 100644 --- a/apps/trading/pages/_app.page.tsx +++ b/apps/trading/pages/_app.page.tsx @@ -37,6 +37,10 @@ import { ENV } from '../lib/config'; import { useDataProvider } from '@vegaprotocol/react-helpers'; import { activeOrdersProvider } from '@vegaprotocol/orders'; import { useTelemetryApproval } from '../lib/hooks/use-telemetry-approval'; +import { + ProtocolUpgradeCountdownMode, + ProtocolUpgradeProposalNotification, +} from '@vegaprotocol/proposals'; const DEFAULT_TITLE = t('Welcome to Vega trading!'); @@ -89,7 +93,12 @@ function AppBody({ Component }: AppProps) {
- +
+ + +
diff --git a/libs/assets/src/lib/asset-option.tsx b/libs/assets/src/lib/asset-option.tsx index 0df06a490..2d67c79a8 100644 --- a/libs/assets/src/lib/asset-option.tsx +++ b/libs/assets/src/lib/asset-option.tsx @@ -1,13 +1,50 @@ import { Option } from '@vegaprotocol/ui-toolkit'; import type { AssetFieldsFragment } from './__generated__/Asset'; +import classNames from 'classnames'; +import { t } from '@vegaprotocol/i18n'; +import type { ReactNode } from 'react'; -export const AssetOption = ({ asset }: { asset: AssetFieldsFragment }) => { +type AssetOptionProps = { + asset: AssetFieldsFragment; + balance?: ReactNode; +}; + +export const Balance = ({ + balance, + symbol, +}: { + balance?: string; + symbol: string; +}) => + balance ? ( +
+ {balance} {symbol} +
+ ) : ( +
{t('Fetching balance…')}
+ ); + +export const AssetOption = ({ asset, balance }: AssetOptionProps) => { return (