diff --git a/e2e-tests/popup/buy-cspr/buy-cspr.spec.ts b/e2e-tests/popup/buy-cspr/buy-cspr.spec.ts index 15ee207df..ea073682c 100644 --- a/e2e-tests/popup/buy-cspr/buy-cspr.spec.ts +++ b/e2e-tests/popup/buy-cspr/buy-cspr.spec.ts @@ -39,7 +39,7 @@ popup.describe('Popup UI: buy cspr', () => { } ); - popup( + popup.skip( 'should redirect to Ramp provider page', async ({ popupPage, unlockVault, context }) => { await unlockVault(); diff --git a/package-lock.json b/package-lock.json index 40b28dbc3..e59c9331c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -42,7 +42,7 @@ "micro-aes-gcm": "0.3.3", "qrcode.react": "^3.1.0", "react": "^18.2.0", - "react-dom": "^18.0.2", + "react-dom": "^18.3.1", "react-hook-form": "7.48.2", "react-i18next": "14.1.0", "react-infinite-scroll-hook": "^4.1.1", @@ -82,7 +82,7 @@ "@types/md5": "^2.3.5", "@types/node": "^20.9.0", "@types/react": "^18.2.55", - "@types/react-dom": "^18.2.18", + "@types/react-dom": "^18.3.0", "@types/react-virtualized": "^9.21.30", "@types/styled-components": "^5.1.26", "@typescript-eslint/parser": "^5.62.0", @@ -7484,9 +7484,9 @@ } }, "node_modules/@types/react-dom": { - "version": "18.2.18", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.18.tgz", - "integrity": "sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==", + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", "devOptional": true, "dependencies": { "@types/react": "*" @@ -24356,23 +24356,15 @@ } }, "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "dependencies": { "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" + "scheduler": "^0.23.2" }, "peerDependencies": { - "react": "^18.2.0" - } - }, - "node_modules/react-dom/node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", - "dependencies": { - "loose-envify": "^1.1.0" + "react": "^18.3.1" } }, "node_modules/react-fast-compare": { @@ -25501,6 +25493,14 @@ "integrity": "sha512-MgUIvuca+90fBrCWY5LdlU9YUWjlkPFwdpvmomcwQEu3t2id/6YHdG2nhB6o7nhRp4ocfmcXQTh00r/tJtynSg==", "dev": true }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, "node_modules/schema-utils": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", @@ -35363,9 +35363,9 @@ } }, "@types/react-dom": { - "version": "18.2.18", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.18.tgz", - "integrity": "sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==", + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", "devOptional": true, "requires": { "@types/react": "*" @@ -48009,22 +48009,12 @@ } }, "react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "requires": { "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" - }, - "dependencies": { - "scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", - "requires": { - "loose-envify": "^1.1.0" - } - } + "scheduler": "^0.23.2" } }, "react-fast-compare": { @@ -48869,6 +48859,14 @@ "integrity": "sha512-MgUIvuca+90fBrCWY5LdlU9YUWjlkPFwdpvmomcwQEu3t2id/6YHdG2nhB6o7nhRp4ocfmcXQTh00r/tJtynSg==", "dev": true }, + "scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "requires": { + "loose-envify": "^1.1.0" + } + }, "schema-utils": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", diff --git a/package.json b/package.json index 389ba938a..54646437b 100644 --- a/package.json +++ b/package.json @@ -86,7 +86,7 @@ "micro-aes-gcm": "0.3.3", "qrcode.react": "^3.1.0", "react": "^18.2.0", - "react-dom": "^18.0.2", + "react-dom": "^18.3.1", "react-hook-form": "7.48.2", "react-i18next": "14.1.0", "react-infinite-scroll-hook": "^4.1.1", @@ -126,7 +126,7 @@ "@types/md5": "^2.3.5", "@types/node": "^20.9.0", "@types/react": "^18.2.55", - "@types/react-dom": "^18.2.18", + "@types/react-dom": "^18.3.0", "@types/react-virtualized": "^9.21.30", "@types/styled-components": "^5.1.26", "@typescript-eslint/parser": "^5.62.0", diff --git a/src/apps/connect-to-app/pages/switch-account/content.tsx b/src/apps/connect-to-app/pages/switch-account/content.tsx index ce479aef8..af4446c11 100644 --- a/src/apps/connect-to-app/pages/switch-account/content.tsx +++ b/src/apps/connect-to-app/pages/switch-account/content.tsx @@ -47,7 +47,7 @@ type SwitchAccountContentProps = { requestId: string }; export function SwitchAccountContent({ requestId }: SwitchAccountContentProps) { const activeOrigin = useSelector(selectActiveOrigin); const activeAccount = useSelector(selectVaultActiveAccount); - const publicKeys = useSelector(selectVaultAccountsPublicKeys); + const accountsPublicKeys = useSelector(selectVaultAccountsPublicKeys); const connectedAccountsToActiveTab = useSelector( selectConnectedAccountsWithActiveOrigin ); @@ -77,7 +77,7 @@ export function SwitchAccountContent({ requestId }: SwitchAccountContentProps) { account => account.name !== activeAccount?.name ); - const accountsInfo = useFetchAccountsInfo(publicKeys); + const accountsInfo = useFetchAccountsInfo(accountsPublicKeys); return ( @@ -141,7 +141,7 @@ export function SwitchAccountContent({ requestId }: SwitchAccountContentProps) { {account.name} diff --git a/src/apps/onboarding/pages/create-vault-password/index.tsx b/src/apps/onboarding/pages/create-vault-password/index.tsx index efbd80f11..0c08c95e0 100644 --- a/src/apps/onboarding/pages/create-vault-password/index.tsx +++ b/src/apps/onboarding/pages/create-vault-password/index.tsx @@ -3,7 +3,7 @@ import { useWatch } from 'react-hook-form'; import { Trans, useTranslation } from 'react-i18next'; import { useSelector } from 'react-redux'; -import { TermsLink } from '@src/constants'; +import { TERMS_URLS } from '@src/constants'; import { Stepper } from '@onboarding/components/stepper'; import { RouterPath } from '@onboarding/router'; @@ -69,7 +69,7 @@ export function CreateVaultPasswordPage({ onClick={event => { event.stopPropagation(); event.preventDefault(); - window.open(TermsLink.Tos, '_blank'); + window.open(TERMS_URLS.tos, '_blank'); }} color="contentAction" > @@ -80,7 +80,7 @@ export function CreateVaultPasswordPage({ onClick={event => { event.stopPropagation(); event.preventDefault(); - window.open(TermsLink.Privacy, '_blank'); + window.open(TERMS_URLS.privacy, '_blank'); }} color="contentAction" > diff --git a/src/apps/popup/pages/account-settings/content.tsx b/src/apps/popup/pages/account-settings/content.tsx index fd964cc6a..b43a6fbcc 100644 --- a/src/apps/popup/pages/account-settings/content.tsx +++ b/src/apps/popup/pages/account-settings/content.tsx @@ -12,6 +12,7 @@ import { dispatchToMainStore } from '@background/redux/utils'; import { hideAccountFromListChanged } from '@background/redux/vault/actions'; import { selectVaultAccount, + selectVaultAccountsPublicKeys, selectVaultHiddenAccountsNames, selectVaultImportedAccountNames, selectVaultLedgerAccountNames @@ -42,13 +43,14 @@ export function AccountSettingsPageContent() { const account = useSelector((state: RootState) => selectVaultAccount(state, accountName || '') ); + const accountsPublicKeys = useSelector(selectVaultAccountsPublicKeys); if (!account) { throw new Error("Account doesn't exist"); } + const accountsInfo = useFetchAccountsInfo(accountsPublicKeys); const accountHash = getAccountHashFromPublicKey(account.publicKey); - const accountsInfo = useFetchAccountsInfo([account.publicKey]); const csprName = accountsInfo && accountsInfo[accountHash]?.csprName; diff --git a/src/apps/popup/pages/connect-another-account/index.tsx b/src/apps/popup/pages/connect-another-account/index.tsx index f5dcb115f..3c5e3d0b2 100644 --- a/src/apps/popup/pages/connect-another-account/index.tsx +++ b/src/apps/popup/pages/connect-another-account/index.tsx @@ -58,7 +58,7 @@ export function ConnectAnotherAccountPageContent() { const { targetAccountName } = useParams(); const activeOrigin = useSelector(selectActiveOrigin); - const publicKeys = useSelector(selectVaultAccountsPublicKeys); + const accountsPublicKeys = useSelector(selectVaultAccountsPublicKeys); const { connectAnotherAccountWithEvent: connectAccount, @@ -87,7 +87,7 @@ export function ConnectAnotherAccountPageContent() { targetAccount?.publicKey ); - const accountsInfo = useFetchAccountsInfo(publicKeys); + const accountsInfo = useFetchAccountsInfo(accountsPublicKeys); const targetAccountCsprName = accountsInfo && accountsInfo[targetAccountHash]?.csprName; diff --git a/src/apps/popup/pages/connected-sites/index.tsx b/src/apps/popup/pages/connected-sites/index.tsx index c3ec3879e..b2560728d 100644 --- a/src/apps/popup/pages/connected-sites/index.tsx +++ b/src/apps/popup/pages/connected-sites/index.tsx @@ -32,11 +32,11 @@ export function ConnectedSitesPage() { const accountsByOrigin = useSelector(selectAccountsByOriginDict); const siteNameByOriginDict = useSelector(selectSiteNameByOriginDict); - const publicKeys = useSelector(selectVaultAccountsPublicKeys); + const accountsPublicKeys = useSelector(selectVaultAccountsPublicKeys); const isNoSitesConnected = !Object.entries(accountsByOrigin).length; - const accountsInfo = useFetchAccountsInfo(publicKeys); + const accountsInfo = useFetchAccountsInfo(accountsPublicKeys); if (isNoSitesConnected) { return ( diff --git a/src/apps/popup/pages/contact-details/details.tsx b/src/apps/popup/pages/contact-details/details.tsx index 3655ce83b..5482d06a5 100644 --- a/src/apps/popup/pages/contact-details/details.tsx +++ b/src/apps/popup/pages/contact-details/details.tsx @@ -1,14 +1,19 @@ import React from 'react'; import { Trans, useTranslation } from 'react-i18next'; +import { useSelector } from 'react-redux'; import styled from 'styled-components'; +import { selectAllContactsPublicKeys } from '@background/redux/contacts/selectors'; import { Contact } from '@background/redux/contacts/types'; +import { getAccountHashFromPublicKey } from '@libs/entities/Account'; import { ContentContainer, + FlexColumn, LeftAlignedFlexColumn, SpacingSize } from '@libs/layout'; +import { useFetchAccountsInfo } from '@libs/services/account-info'; import { Avatar, Hash, @@ -32,6 +37,13 @@ interface ContactDetailsProps { export const ContactDetails = ({ contact }: ContactDetailsProps) => { const { t } = useTranslation(); + const contactPublicKeys = useSelector(selectAllContactsPublicKeys); + + const accountsInfo = useFetchAccountsInfo(contactPublicKeys); + + const accountHash = getAccountHashFromPublicKey(contact.publicKey); + const csprName = accountsInfo && accountsInfo[accountHash]?.csprName; + return ( @@ -44,6 +56,16 @@ export const ContactDetails = ({ contact }: ContactDetailsProps) => { variant={HashVariant.CaptionHash} color="contentPrimary" /> + {csprName ? ( + + + CSPR.name + + + {csprName} + + + ) : null} Last edited: {formatShortTimestamp(contact.lastModified)} diff --git a/src/apps/popup/pages/contacts/components/contacts-plate.tsx b/src/apps/popup/pages/contacts/components/contacts-plate.tsx index 8e0a3b226..421ca3a82 100644 --- a/src/apps/popup/pages/contacts/components/contacts-plate.tsx +++ b/src/apps/popup/pages/contacts/components/contacts-plate.tsx @@ -1,13 +1,10 @@ +import { Maybe } from 'casper-wallet-core/src/typings/common'; import React from 'react'; -import { useSelector } from 'react-redux'; import styled from 'styled-components'; import { RouterPath, useTypedNavigate } from '@popup/router'; -import { selectAllContactsPublicKeys } from '@background/redux/contacts/selectors'; - import { AlignedFlexRow, FlexColumn, SpacingSize } from '@libs/layout'; -import { useFetchAccountsInfo } from '@libs/services/account-info'; import { Avatar, Hash, HashVariant, Typography } from '@libs/ui/components'; const Container = styled(AlignedFlexRow)` @@ -19,22 +16,18 @@ const Container = styled(AlignedFlexRow)` interface ContactsPlateProps { publicKey: string; name: string; - accountHash: string; + csprName: Maybe | undefined; + brandingLogo: Maybe | undefined; } export const ContactsPlate = ({ publicKey, name, - accountHash + csprName, + brandingLogo }: ContactsPlateProps) => { const navigate = useTypedNavigate(); - const contactPublicKeys = useSelector(selectAllContactsPublicKeys); - const accountsInfo = useFetchAccountsInfo(contactPublicKeys); - - const csprName = accountsInfo && accountsInfo[accountHash]?.csprName; - const brandingLogo = accountsInfo && accountsInfo[accountHash]?.brandingLogo; - return ( { const contacts = useSelector(selectAllContacts); const lastModified = useSelector(selectLastModified); + const contactPublicKeys = useSelector(selectAllContactsPublicKeys); const contactsWithId = contacts.map((contact, index) => ({ ...contact, @@ -31,6 +34,8 @@ export const ContactsBookPageContent = () => { accountHash: getAccountHashFromPublicKey(contact.publicKey) })); + const accountsInfo = useFetchAccountsInfo(contactPublicKeys); + if (contactsWithId.length === 0) { return ; } @@ -53,13 +58,20 @@ export const ContactsBookPageContent = () => { )} ( - - )} + renderRow={({ publicKey, name, accountHash }) => { + const csprName = accountsInfo && accountsInfo[accountHash]?.csprName; + const brandingLogo = + accountsInfo && accountsInfo[accountHash]?.brandingLogo; + + return ( + + ); + }} marginLeftForItemSeparatorLine={54} /> diff --git a/src/apps/popup/pages/navigation-menu/index.tsx b/src/apps/popup/pages/navigation-menu/index.tsx index ac068c39a..fc5377a18 100644 --- a/src/apps/popup/pages/navigation-menu/index.tsx +++ b/src/apps/popup/pages/navigation-menu/index.tsx @@ -3,6 +3,12 @@ import { useTranslation } from 'react-i18next'; import { useSelector } from 'react-redux'; import styled from 'styled-components'; +import { + ABOUT_US_URL, + SHARE_FEEDBACK_URL, + TERMS_URLS, + USER_GUIDES_URL +} from '@src/constants'; import { isLedgerAvailable, isSafariBuild } from '@src/utils'; import { TimeoutDurationSetting } from '@popup/constants'; @@ -320,23 +326,37 @@ export function NavigationMenuPageContent() { items: [ { id: 1, + title: t('Terms & Conditions'), + iconPath: 'assets/icons/books.svg', + href: TERMS_URLS.tos, + disabled: false + }, + { + id: 2, + title: t('Privacy Policy'), + iconPath: 'assets/icons/books.svg', + href: TERMS_URLS.privacy, + disabled: false + }, + { + id: 3, title: t('Share feedback'), iconPath: 'assets/icons/chat.svg', - href: 'https://casper-wallet.canny.io/feature-requests', + href: SHARE_FEEDBACK_URL, disabled: false }, { - id: 2, + id: 4, title: t('User guides'), iconPath: 'assets/icons/books.svg', - href: 'https://casperwallet.io/user-guide', + href: USER_GUIDES_URL, disabled: false }, { - id: 3, + id: 5, title: t('About us'), iconPath: 'assets/icons/team.svg', - href: 'https://make.services/', + href: ABOUT_US_URL, disabled: false } ] diff --git a/src/apps/popup/pages/nft-details/content.tsx b/src/apps/popup/pages/nft-details/content.tsx index f24a017b4..3253b1e05 100644 --- a/src/apps/popup/pages/nft-details/content.tsx +++ b/src/apps/popup/pages/nft-details/content.tsx @@ -154,7 +154,7 @@ export const NftDetailsContent = ({ ); if (extendedDeployInfo) { - if (extendedDeployInfo.status === Status.Executed) { + if (extendedDeployInfo.status !== Status.Pending) { dispatchToMainStore( accountTrackingIdOfSentNftTokensRemoved(nftToken?.tracking_id!) ); diff --git a/src/constants.ts b/src/constants.ts index 918356617..a52b7fc0c 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -1,17 +1,10 @@ const SECOND = 1000; -export const FETCH_QUERY_OPTIONS = { - // cached for 30 sec - apiCacheTime: 30 * SECOND -}; - export const BALANCE_REFRESH_RATE = 15 * SECOND; export const CURRENCY_REFRESH_RATE = 30 * SECOND; export const TOKENS_REFRESH_RATE = 15 * SECOND; export const NFT_TOKENS_REFRESH_RATE = 60 * SECOND; -export const ACCOUNT_DEPLOY_REFRESH_RATE = 30 * SECOND; export const ACCOUNT_CASPER_ACTIVITY_REFRESH_RATE = 30 * SECOND; -export const ERC20_TOKEN_ACTIVITY_REFRESH_RATE = 30 * SECOND; export const VALIDATORS_REFRESH_RATE = 30 * SECOND; export const PENDING_DEPLOY_REFETCH_INTERVAL = 5 * SECOND; export const DEPLOY_DETAILS_REFRESH_RATE = 30 * SECOND; @@ -29,6 +22,16 @@ export const STAKE_COST_MOTES = '2500000000'; // 2.5 CSPR export const DELEGATION_MIN_AMOUNT_MOTES = '500000000000'; // 500 CSPR export const MAX_DELEGATORS = 1200; +export const USER_GUIDES_URL = 'https://casperwallet.io/user-guide'; +export const SHARE_FEEDBACK_URL = + 'https://casper-wallet.canny.io/feature-requests'; +export const ABOUT_US_URL = 'https://make.services'; +export const TERMS_URLS = { + tos: 'https://www.casperwallet.io/tos', + privacy: 'https://www.casperwallet.io/privacy' +}; +export const REFERRER_URL = 'https://casperwallet.io'; + export const getBlockExplorerAccountUrl = ( casperLiveUrl: string, publicKey: string @@ -84,18 +87,11 @@ export enum Browser { Edge = 'edge' } -export enum TermsLink { - Tos = 'https://www.casperwallet.io/tos', - Privacy = 'https://www.casperwallet.io/privacy' -} - export enum CasperNodeUrl { MainnetUrl = 'https://node.cspr.cloud/rpc', TestnetUrl = 'https://node.testnet.cspr.cloud/rpc' } -export const ReferrerUrl = 'https://casperwallet.io'; - export enum NetworkName { Mainnet = 'casper', Testnet = 'casper-test' diff --git a/src/libs/layout/header/header-connection-status.tsx b/src/libs/layout/header/header-connection-status.tsx index 1f1ce3af0..839c02459 100644 --- a/src/libs/layout/header/header-connection-status.tsx +++ b/src/libs/layout/header/header-connection-status.tsx @@ -1,7 +1,10 @@ import React from 'react'; import { useSelector } from 'react-redux'; -import { selectVaultActiveAccount } from '@background/redux/vault/selectors'; +import { + selectVaultAccountsPublicKeys, + selectVaultActiveAccount +} from '@background/redux/vault/selectors'; import { getAccountHashFromPublicKey } from '@libs/entities/Account'; import { @@ -30,8 +33,9 @@ export function HeaderConnectionStatus({ isConnected }: HeaderConnectionStatusProps) { const activeAccount = useSelector(selectVaultActiveAccount); + const accountsPublicKeys = useSelector(selectVaultAccountsPublicKeys); - const accountsInfo = useFetchAccountsInfo([activeAccount?.publicKey!]); + const accountsInfo = useFetchAccountsInfo(accountsPublicKeys); const accountHash = getAccountHashFromPublicKey(activeAccount?.publicKey); diff --git a/src/libs/services/account-info/use-fetch-accounts-info.ts b/src/libs/services/account-info/use-fetch-accounts-info.ts index c550555fa..273eb8817 100644 --- a/src/libs/services/account-info/use-fetch-accounts-info.ts +++ b/src/libs/services/account-info/use-fetch-accounts-info.ts @@ -19,7 +19,7 @@ export const useFetchAccountsInfo = (accountPublicKeys: string[]) => { const accountHashesString = accountHashes.toString(); const { data: accountsInfo } = useQuery({ - queryKey: ['ACCOUNT_INFO', accountHashesString], + queryKey: ['ACCOUNT_INFO', accountHashesString, network], queryFn: async () => { return await accountInfoRepository.getAccountsInfo({ accountHashes, diff --git a/src/libs/services/deployer-service/index.ts b/src/libs/services/deployer-service/index.ts index 6dbe61b04..c97b42706 100644 --- a/src/libs/services/deployer-service/index.ts +++ b/src/libs/services/deployer-service/index.ts @@ -13,7 +13,7 @@ import { AuctionManagerEntryPoint, CasperNodeUrl, NetworkName, - ReferrerUrl, + REFERRER_URL, STAKE_COST_MOTES, TRANSFER_COST_MOTES } from '@src/constants'; @@ -51,7 +51,7 @@ export const getDateForDeploy = async (nodeUrl: CasperNodeUrl) => { const casperNodeTimestamp: ICasperNodeStatusResponse = await fetch( `${nodeUrl}/info_get_status`, { - referrer: ReferrerUrl + referrer: REFERRER_URL } ).then(toJson); @@ -274,7 +274,7 @@ export const sendSignDeploy = ( return fetch(nodeUrl, { method: 'POST', - referrer: ReferrerUrl, + referrer: REFERRER_URL, body: JSON.stringify({ jsonrpc: '2.0', method: 'account_put_deploy', diff --git a/src/libs/ui/components/active-account-plate/active-account-plate.tsx b/src/libs/ui/components/active-account-plate/active-account-plate.tsx index 439e6327c..0886945e6 100644 --- a/src/libs/ui/components/active-account-plate/active-account-plate.tsx +++ b/src/libs/ui/components/active-account-plate/active-account-plate.tsx @@ -3,7 +3,10 @@ import { Trans, useTranslation } from 'react-i18next'; import { useSelector } from 'react-redux'; import styled from 'styled-components'; -import { selectVaultActiveAccount } from '@background/redux/vault/selectors'; +import { + selectVaultAccountsPublicKeys, + selectVaultActiveAccount +} from '@background/redux/vault/selectors'; import { getAccountHashFromPublicKey } from '@libs/entities/Account'; import { @@ -56,11 +59,11 @@ export const ActiveAccountPlate = ({ const { t } = useTranslation(); const activeAccount = useSelector(selectVaultActiveAccount); + const accountsPublicKeys = useSelector(selectVaultAccountsPublicKeys); - const accountsInfo = useFetchAccountsInfo([activeAccount?.publicKey!]); + const accountsInfo = useFetchAccountsInfo(accountsPublicKeys); const accountHash = getAccountHashFromPublicKey(activeAccount?.publicKey); - const csprName = accountsInfo && accountsInfo[accountHash]?.csprName; const brandingLogo = accountsInfo && accountsInfo[accountHash]?.brandingLogo; diff --git a/src/libs/ui/forms/form-validation-rules.ts b/src/libs/ui/forms/form-validation-rules.ts index 09ca5a2aa..1732c8eeb 100644 --- a/src/libs/ui/forms/form-validation-rules.ts +++ b/src/libs/ui/forms/form-validation-rules.ts @@ -137,7 +137,9 @@ export const useRecipientPublicKeyRule = () => { return false; }, - message: t('Recipient should be a valid public key or cspr name') + message: t( + 'The recipient should be a valid public key, CSPR.name or contact name' + ) }); };