From 5f3b88d5bf1d614d2ac6992aaf097f4cd23f5037 Mon Sep 17 00:00:00 2001 From: Max Alekseenko Date: Fri, 19 Jul 2024 18:40:23 +0200 Subject: [PATCH 01/12] add get gas button --- configs/app/features/getGasButton.ts | 36 ++++++++ configs/app/features/index.ts | 1 + configs/envs/.env.eth | 3 +- deploy/tools/envs-validator/schema.ts | 15 +++ deploy/tools/envs-validator/test/.env.base | 1 + docs/ENVS.md | 24 ++++- types/client/gasRefuelProviderConfig.ts | 7 ++ ui/address/details/AddressBalance.pw.tsx | 85 +++++++++++++++++ ui/address/details/AddressBalance.tsx | 86 ++++++++++++++++-- ...th-get-gas-button-internal-dark-mode-1.png | Bin 0 -> 6514 bytes ...ressBalance.pw.tsx_default_base-view-1.png | Bin 0 -> 7638 bytes ...ance.pw.tsx_default_mobile-base-view-1.png | Bin 0 -> 6136 bytes ...default_with-get-gas-button-external-1.png | Bin 0 -> 6407 bytes ...th-get-gas-button-internal-dark-mode-1.png | Bin 0 -> 6256 bytes 14 files changed, 250 insertions(+), 8 deletions(-) create mode 100644 configs/app/features/getGasButton.ts create mode 100644 types/client/gasRefuelProviderConfig.ts create mode 100644 ui/address/details/AddressBalance.pw.tsx create mode 100644 ui/address/details/__screenshots__/AddressBalance.pw.tsx_dark-color-mode_with-get-gas-button-internal-dark-mode-1.png create mode 100644 ui/address/details/__screenshots__/AddressBalance.pw.tsx_default_base-view-1.png create mode 100644 ui/address/details/__screenshots__/AddressBalance.pw.tsx_default_mobile-base-view-1.png create mode 100644 ui/address/details/__screenshots__/AddressBalance.pw.tsx_default_with-get-gas-button-external-1.png create mode 100644 ui/address/details/__screenshots__/AddressBalance.pw.tsx_default_with-get-gas-button-internal-dark-mode-1.png diff --git a/configs/app/features/getGasButton.ts b/configs/app/features/getGasButton.ts new file mode 100644 index 0000000000..da66e7bee5 --- /dev/null +++ b/configs/app/features/getGasButton.ts @@ -0,0 +1,36 @@ +import type { Feature } from './types'; +import type { GasRefuelProviderConfig } from 'types/client/gasRefuelProviderConfig'; + +import { getEnvValue, parseEnvJson } from '../utils'; +import marketplace from './marketplace'; + +const value = parseEnvJson(getEnvValue('NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG')); + +const title = 'Get gas button'; + +const config: Feature<{ + name: string; + logoUrl?: string; + urlTemplate: string; + dappId?: string; + usdThreshold: number; +}> = (() => { + if (value) { + return Object.freeze({ + title, + isEnabled: true, + name: value.name, + logoUrl: value.logo, + urlTemplate: value.url_template, + dappId: marketplace.isEnabled ? value.dapp_id : undefined, + usdThreshold: value.usd_threshold || 1, + }); + } + + return Object.freeze({ + title, + isEnabled: false, + }); +})(); + +export default config; diff --git a/configs/app/features/index.ts b/configs/app/features/index.ts index b2ac272980..8014b8bc04 100644 --- a/configs/app/features/index.ts +++ b/configs/app/features/index.ts @@ -11,6 +11,7 @@ export { default as dataAvailability } from './dataAvailability'; export { default as deFiDropdown } from './deFiDropdown'; export { default as faultProofSystem } from './faultProofSystem'; export { default as gasTracker } from './gasTracker'; +export { default as getGasButton } from './getGasButton'; export { default as googleAnalytics } from './googleAnalytics'; export { default as graphqlApiDocs } from './graphqlApiDocs'; export { default as growthBook } from './growthBook'; diff --git a/configs/envs/.env.eth b/configs/envs/.env.eth index 09150ec6a5..463ad3542b 100644 --- a/configs/envs/.env.eth +++ b/configs/envs/.env.eth @@ -39,6 +39,7 @@ NEXT_PUBLIC_MARKETPLACE_SUGGEST_IDEAS_FORM=https://airtable.com/appiy5yijZpMMSKj NEXT_PUBLIC_METADATA_SERVICE_API_HOST=https://metadata.services.blockscout.com NEXT_PUBLIC_METASUITES_ENABLED=true NEXT_PUBLIC_MULTICHAIN_BALANCE_PROVIDER_CONFIG={'name': 'zerion', 'dapp_id': 'zerion', 'url_template': 'https://app.zerion.io/{address}/overview?utm_source=blockscout&utm_medium=address', 'logo': 'https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/marketplace-logos/zerion.svg'} +NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG={'name': 'Get gas', 'dapp_id': 'smol-refuel', 'url_template': 'https://smolrefuel.com/?outboundChain={chainId}&partner=blockscout&utm_source=blockscout&utm_medium=address&disableBridges=true', 'logo': 'https://blockscout-content.s3.amazonaws.com/smolrefuel-logo-action-button.png', 'usd_threshold': 10} NEXT_PUBLIC_NAME_SERVICE_API_HOST=https://bens.services.blockscout.com NEXT_PUBLIC_NAVIGATION_HIGHLIGHTED_ROUTES=['/apps'] NEXT_PUBLIC_NETWORK_CURRENCY_DECIMALS=18 @@ -59,4 +60,4 @@ NEXT_PUBLIC_SEO_ENHANCED_DATA_ENABLED=true NEXT_PUBLIC_STATS_API_HOST=https://stats-eth-main.k8s-prod-1.blockscout.com NEXT_PUBLIC_TRANSACTION_INTERPRETATION_PROVIDER=blockscout NEXT_PUBLIC_VIEWS_CONTRACT_SOLIDITYSCAN_ENABLED=true -NEXT_PUBLIC_VISUALIZE_API_HOST=https://visualizer.services.blockscout.com \ No newline at end of file +NEXT_PUBLIC_VISUALIZE_API_HOST=https://visualizer.services.blockscout.com diff --git a/deploy/tools/envs-validator/schema.ts b/deploy/tools/envs-validator/schema.ts index 12c35f6392..0f7ac489d9 100644 --- a/deploy/tools/envs-validator/schema.ts +++ b/deploy/tools/envs-validator/schema.ts @@ -13,6 +13,7 @@ import { SUPPORTED_AD_TEXT_PROVIDERS, SUPPORTED_AD_BANNER_PROVIDERS, SUPPORTED_A import type { AdTextProviders, AdBannerProviders, AdBannerAdditionalProviders } from '../../../types/client/adProviders'; import type { ContractCodeIde } from '../../../types/client/contract'; import type { DeFiDropdownItem } from '../../../types/client/deFiDropdown'; +import type { GasRefuelProviderConfig } from '../../../types/client/gasRefuelProviderConfig'; import { GAS_UNITS } from '../../../types/client/gasTracker'; import type { GasUnit } from '../../../types/client/gasTracker'; import type { MarketplaceAppOverview, MarketplaceAppSecurityReportRaw, MarketplaceAppSecurityReport } from '../../../types/client/marketplace'; @@ -638,6 +639,20 @@ const schema = yup dapp_id: yup.string(), }); + return isUndefined || valueSchema.isValidSync(data); + }), + NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG: yup + .mixed() + .test('shape', 'Invalid schema were provided for NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG, it should have name and url template', (data) => { + const isUndefined = data === undefined; + const valueSchema = yup.object().transform(replaceQuotes).json().shape({ + name: yup.string().required(), + url_template: yup.string().required(), + logo: yup.string(), + dapp_id: yup.string(), + usd_threshold: yup.number(), + }); + return isUndefined || valueSchema.isValidSync(data); }), NEXT_PUBLIC_VALIDATORS_CHAIN_TYPE: yup.string().oneOf(VALIDATORS_CHAIN_TYPE), diff --git a/deploy/tools/envs-validator/test/.env.base b/deploy/tools/envs-validator/test/.env.base index 71798d55ab..f4d096a553 100644 --- a/deploy/tools/envs-validator/test/.env.base +++ b/deploy/tools/envs-validator/test/.env.base @@ -78,3 +78,4 @@ NEXT_PUBLIC_WEB3_WALLETS=['coinbase','metamask','token_pocket'] NEXT_PUBLIC_VALIDATORS_CHAIN_TYPE=stability NEXT_PUBLIC_DEFI_DROPDOWN_ITEMS=[{'text':'Swap','icon':'swap','dappId':'uniswap'},{'text':'Payment link','icon':'payment_link','url':'https://example.com'}] NEXT_PUBLIC_MULTICHAIN_BALANCE_PROVIDER_CONFIG={'name': 'zerion', 'url_template': 'https://app.zerion.io/{address}/overview', 'logo': 'https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/marketplace-logos/zerion.svg'} +NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG={'name': 'Get gas', 'dapp_id': 'smol-refuel', 'url_template': 'https://smolrefuel.com/?outboundChain={chainId}&partner=blockscout&utm_source=blockscout&utm_medium=address&disableBridges=true', 'logo': 'https://blockscout-content.s3.amazonaws.com/smolrefuel-logo-action-button.png', 'usd_threshold': 10} diff --git a/docs/ENVS.md b/docs/ENVS.md index 1d7cfe7829..5be7ebb2d7 100644 --- a/docs/ENVS.md +++ b/docs/ENVS.md @@ -702,7 +702,29 @@ If the feature is enabled, a Multichain balance button will be displayed on the | name | `string` | Multichain portfolio application name | Required | - | `zerion` | | url_template | `string` | Url template to the portfolio. Should be a template with `{address}` variable | Required | - | `https://app.zerion.io/{address}/overview` | | dapp_id | `string` | Set for open a Blockscout dapp page with the portfolio instead of opening external app page | - | - | `zerion` | -| logo | `string` | Multichain portfolio application logo (.svg) url | - | - | `https://example.com/icon.svg` | +| logo | `string` | Multichain portfolio application logo url | - | - | `https://example.com/icon.svg` | + +  + +### Get gas button + +If the feature is enabled, a Get gas button will be displayed on the address page, which will take you to the gas refuel application in the marketplace or to an external site. + +| Variable | Type| Description | Compulsoriness | Default value | Example value | Version | +| --- | --- | --- | --- | --- | --- | --- | +| NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG | `{ name: string; url_template: string; dapp_id?: string; logo?: string, usd_threshold: number }` | Get gas button config. See [below](#get-gas-button-configuration-properties) | - | - | `{ name: 'Get gas', dapp_id: 'smol-refuel', url_template: 'https://smolrefuel.com/?outboundChain={chainId}&partner=blockscout&utm_source=blockscout&utm_medium=address&disableBridges=true', logo: 'https://blockscout-content.s3.amazonaws.com/smolrefuel-logo-action-button.png', usd_threshold: 10 }` | v1.33.0+ | + +  + +#### Get gas button configuration properties + +| Variable | Type| Description | Compulsoriness | Default value | Example value | +| --- | --- | --- | --- | --- | --- | +| name | `string` | Gas refuel application name | Required | - | `zerion` | +| url_template | `string` | Url template to the portfolio. Should be a template with `{address}` variable | Required | - | `https://app.zerion.io/{address}/overview` | +| dapp_id | `string` | Set for open a Blockscout dapp page with the portfolio instead of opening external app page | - | - | `zerion` | +| logo | `string` | Gas refuel application logo (.svg) url | - | - | `https://example.com/icon.png` | +| usd_threshold | `number` | Value in USD, at balance less than which the button will be displayed | - | `1` | `10` |   diff --git a/types/client/gasRefuelProviderConfig.ts b/types/client/gasRefuelProviderConfig.ts new file mode 100644 index 0000000000..865ddb8de0 --- /dev/null +++ b/types/client/gasRefuelProviderConfig.ts @@ -0,0 +1,7 @@ +export type GasRefuelProviderConfig = { + name: string; + dapp_id?: string; + url_template: string; + logo?: string; + usd_threshold?: number; +}; diff --git a/ui/address/details/AddressBalance.pw.tsx b/ui/address/details/AddressBalance.pw.tsx new file mode 100644 index 0000000000..d03bf28dc4 --- /dev/null +++ b/ui/address/details/AddressBalance.pw.tsx @@ -0,0 +1,85 @@ +import { Grid, Box } from '@chakra-ui/react'; +import React from 'react'; + +import * as addressMock from 'mocks/address/address'; +import { test, expect, devices } from 'playwright/lib'; + +import AddressBalance from './AddressBalance'; + +const ICON_URL = 'https://localhost:3000/my-icon.png'; + +const eoaWithSmallBalance = { + ...addressMock.eoa, + coin_balance: '500000000000000000', // 0.5 * 10^18 + exchange_rate: '1', // 1 USD +}; + +test('base view', async({ render }) => { + const component = await render( + + + , + ); + + await expect(component).toHaveScreenshot(); +}); + +test('with get gas button internal +@dark-mode', async({ render, mockEnvs, mockAssetResponse }) => { + await mockEnvs([ + [ + 'NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG', + `{"name": "Get gas", "dapp_id": "duck", "url_template": "https://duck.url/{chainId}", "logo": "${ ICON_URL }", "usd_threshold": 1}`, + ], + ]); + await mockAssetResponse(ICON_URL, './playwright/mocks/image_svg.svg'); + + const component = await render( + + + , + ); + + await expect(component).toHaveScreenshot(); +}); + +test('with get gas button external', async({ render, mockEnvs, mockAssetResponse }) => { + await mockEnvs([ + [ + 'NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG', + `{"name": "Get gas", "url_template": "https://duck.url/{chainId}", "logo": "${ ICON_URL }", "usd_threshold": 1}`, + ], + ]); + await mockAssetResponse(ICON_URL, './playwright/mocks/image_svg.svg'); + + const component = await render( + + + , + ); + + await expect(component).toHaveScreenshot(); +}); + +test.describe('mobile', () => { + test.use({ viewport: devices['iPhone 13 Pro'].viewport }); + + test('base view', async({ render, mockEnvs, mockAssetResponse }) => { + await mockEnvs([ + [ + 'NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG', + `{"name": "Get gas", "dapp_id": "duck", "url_template": "https://duck.url/{chainId}", "logo": "${ ICON_URL }", "usd_threshold": 1}`, + ], + ]); + await mockAssetResponse(ICON_URL, './playwright/mocks/image_svg.svg'); + + const component = await render( + + + + + , + ); + + await expect(component).toHaveScreenshot(); + }); +}); diff --git a/ui/address/details/AddressBalance.tsx b/ui/address/details/AddressBalance.tsx index 59ca449214..4c5792d044 100644 --- a/ui/address/details/AddressBalance.tsx +++ b/ui/address/details/AddressBalance.tsx @@ -1,20 +1,32 @@ +import { Image } from '@chakra-ui/react'; import { useQueryClient } from '@tanstack/react-query'; import React from 'react'; import type { SocketMessage } from 'lib/socket/types'; import type { Address } from 'types/api/address'; +import { route } from 'nextjs-routes'; + import config from 'configs/app'; import { getResourceKey } from 'lib/api/useApiQuery'; +import getCurrencyValue from 'lib/getCurrencyValue'; +import * as mixpanel from 'lib/mixpanel/index'; import useSocketChannel from 'lib/socket/useSocketChannel'; import useSocketMessage from 'lib/socket/useSocketMessage'; import { currencyUnits } from 'lib/units'; import CurrencyValue from 'ui/shared/CurrencyValue'; import * as DetailsInfoItem from 'ui/shared/DetailsInfoItem'; +import LinkExternal from 'ui/shared/links/LinkExternal'; +import LinkInternal from 'ui/shared/links/LinkInternal'; import NativeTokenIcon from 'ui/shared/NativeTokenIcon'; +import TextSeparator from 'ui/shared/TextSeparator'; + +const TEMPLATE_CHAIN_ID = '{chainId}'; + +const getGasFeature = config.features.getGasButton; interface Props { - data: Pick; + data: Pick; isLoading: boolean; } @@ -65,6 +77,67 @@ const AddressBalance = ({ data, isLoading }: Props) => { handler: handleNewCoinBalanceMessage, }); + const value = data.coin_balance || '0'; + const exchangeRate = data.exchange_rate; + const decimals = String(config.chain.currency.decimals); + const accuracyUsd = 2; + const accuracy = 8; + + const onGetGasClick = React.useCallback(() => { + mixpanel.logEvent(mixpanel.EventTypes.BUTTON_CLICK, { Content: 'Get gas', Source: 'address' }); + }, []); + + let getGasButton = null; + const { usd: usdResult } = getCurrencyValue({ value, accuracy, accuracyUsd, exchangeRate, decimals }); + + if (getGasFeature.isEnabled && !data?.is_contract && Number(usdResult) < getGasFeature.usdThreshold) { + const buttonContent = ( + <> + { getGasFeature.logoUrl && ( + { + ) } + { getGasFeature.name } + + ); + + const linkProps = { + display: 'flex', + alignItems: 'center', + fontSize: 'sm', + lineHeight: 5, + onClick: onGetGasClick, + }; + + try { + const getGasUrlString = getGasFeature.urlTemplate.replace(TEMPLATE_CHAIN_ID, config.chain.id || ''); + const getGasUrl = new URL(getGasUrlString); + getGasUrl.searchParams.append('utm_source', 'blockscout'); + getGasUrl.searchParams.append('utm_medium', 'address'); + const dappId = getGasFeature.dappId; + getGasButton = ( + <> + + { typeof dappId === 'string' ? ( + + { buttonContent } + + ) : ( + + { buttonContent } + + ) } + + ); + } catch (error) {} + + } + return ( <> { + { !isLoading && getGasButton } ); diff --git a/ui/address/details/__screenshots__/AddressBalance.pw.tsx_dark-color-mode_with-get-gas-button-internal-dark-mode-1.png b/ui/address/details/__screenshots__/AddressBalance.pw.tsx_dark-color-mode_with-get-gas-button-internal-dark-mode-1.png new file mode 100644 index 0000000000000000000000000000000000000000..ea9a6d2affaa00dced83dabfcf66dc844cfe3932 GIT binary patch literal 6514 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 E0h*7z00000 literal 0 HcmV?d00001 diff --git a/ui/address/details/__screenshots__/AddressBalance.pw.tsx_default_base-view-1.png b/ui/address/details/__screenshots__/AddressBalance.pw.tsx_default_base-view-1.png new file mode 100644 index 0000000000000000000000000000000000000000..3fb32b2b8c87f0886814bac913c04ae30489fdfd GIT binary patch literal 7638 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 literal 0 HcmV?d00001 diff --git a/ui/address/details/__screenshots__/AddressBalance.pw.tsx_default_mobile-base-view-1.png b/ui/address/details/__screenshots__/AddressBalance.pw.tsx_default_mobile-base-view-1.png new file mode 100644 index 0000000000000000000000000000000000000000..6801ea9059160d1eb47c47d3604110a285e8cd3c GIT binary patch literal 6136 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 Vv9&M)aa2A)RS~36@!CA>e*nLzEBXKc literal 0 HcmV?d00001 diff --git a/ui/address/details/__screenshots__/AddressBalance.pw.tsx_default_with-get-gas-button-external-1.png b/ui/address/details/__screenshots__/AddressBalance.pw.tsx_default_with-get-gas-button-external-1.png new file mode 100644 index 0000000000000000000000000000000000000000..3518e3c6d7139b979e2719b2df8b45974123e56d GIT binary patch literal 6407 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 BrlSA= literal 0 HcmV?d00001 diff --git a/ui/address/details/__screenshots__/AddressBalance.pw.tsx_default_with-get-gas-button-internal-dark-mode-1.png b/ui/address/details/__screenshots__/AddressBalance.pw.tsx_default_with-get-gas-button-internal-dark-mode-1.png new file mode 100644 index 0000000000000000000000000000000000000000..98b7bd5b8355df4db086a74e540104545062069f GIT binary patch literal 6256 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 Date: Mon, 22 Jul 2024 19:18:24 +0200 Subject: [PATCH 02/12] Update ENVS.md --- docs/ENVS.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/ENVS.md b/docs/ENVS.md index 5be7ebb2d7..0660c23bac 100644 --- a/docs/ENVS.md +++ b/docs/ENVS.md @@ -712,7 +712,7 @@ If the feature is enabled, a Get gas button will be displayed on the address pag | Variable | Type| Description | Compulsoriness | Default value | Example value | Version | | --- | --- | --- | --- | --- | --- | --- | -| NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG | `{ name: string; url_template: string; dapp_id?: string; logo?: string, usd_threshold: number }` | Get gas button config. See [below](#get-gas-button-configuration-properties) | - | - | `{ name: 'Get gas', dapp_id: 'smol-refuel', url_template: 'https://smolrefuel.com/?outboundChain={chainId}&partner=blockscout&utm_source=blockscout&utm_medium=address&disableBridges=true', logo: 'https://blockscout-content.s3.amazonaws.com/smolrefuel-logo-action-button.png', usd_threshold: 10 }` | v1.33.0+ | +| NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG | `{ name: string; url_template: string; dapp_id?: string; logo?: string, usd_threshold: number }` | Get gas button config. See [below](#get-gas-button-configuration-properties) | - | - | `{ name: 'Get gas', dapp_id: 'smol-refuel', url_template: 'https://smolrefuel.com/?outboundChain={chainId}', logo: 'https://example.com/icon.png', usd_threshold: 10 }` | v1.33.0+ |   @@ -720,11 +720,11 @@ If the feature is enabled, a Get gas button will be displayed on the address pag | Variable | Type| Description | Compulsoriness | Default value | Example value | | --- | --- | --- | --- | --- | --- | -| name | `string` | Gas refuel application name | Required | - | `zerion` | -| url_template | `string` | Url template to the portfolio. Should be a template with `{address}` variable | Required | - | `https://app.zerion.io/{address}/overview` | -| dapp_id | `string` | Set for open a Blockscout dapp page with the portfolio instead of opening external app page | - | - | `zerion` | -| logo | `string` | Gas refuel application logo (.svg) url | - | - | `https://example.com/icon.png` | -| usd_threshold | `number` | Value in USD, at balance less than which the button will be displayed | - | `1` | `10` | +| name | `string` | Text on the button | Required | - | `Get gas` | +| url_template | `string` | Url template, may contain `{chainId}` variable | Required | - | `https://smolrefuel.com/?outboundChain={chainId}` | +| dapp_id | `string` | Set for open a Blockscout dapp page instead of opening external app page | - | - | `smol-refuel` | +| logo | `string` | Gas refuel application logo url | - | - | `https://example.com/icon.png` | +| usd_threshold | `number` | Native token balance value in USD below which the button will be displayed | - | `1` | `10` |   From fdbf1dec459ca172744776cce4fe6ddac6bb8ebd Mon Sep 17 00:00:00 2001 From: Max Alekseenko Date: Mon, 22 Jul 2024 19:31:44 +0200 Subject: [PATCH 03/12] replace chain id at init --- configs/app/features/getGasButton.ts | 5 +++-- ui/address/details/AddressBalance.tsx | 5 +---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/configs/app/features/getGasButton.ts b/configs/app/features/getGasButton.ts index da66e7bee5..364ed7fcef 100644 --- a/configs/app/features/getGasButton.ts +++ b/configs/app/features/getGasButton.ts @@ -1,6 +1,7 @@ import type { Feature } from './types'; import type { GasRefuelProviderConfig } from 'types/client/gasRefuelProviderConfig'; +import chain from '../chain'; import { getEnvValue, parseEnvJson } from '../utils'; import marketplace from './marketplace'; @@ -11,7 +12,7 @@ const title = 'Get gas button'; const config: Feature<{ name: string; logoUrl?: string; - urlTemplate: string; + url: string; dappId?: string; usdThreshold: number; }> = (() => { @@ -21,7 +22,7 @@ const config: Feature<{ isEnabled: true, name: value.name, logoUrl: value.logo, - urlTemplate: value.url_template, + url: value.url_template.replace('{chainId}', chain.id || ''), dappId: marketplace.isEnabled ? value.dapp_id : undefined, usdThreshold: value.usd_threshold || 1, }); diff --git a/ui/address/details/AddressBalance.tsx b/ui/address/details/AddressBalance.tsx index 4c5792d044..66f51c9a56 100644 --- a/ui/address/details/AddressBalance.tsx +++ b/ui/address/details/AddressBalance.tsx @@ -21,8 +21,6 @@ import LinkInternal from 'ui/shared/links/LinkInternal'; import NativeTokenIcon from 'ui/shared/NativeTokenIcon'; import TextSeparator from 'ui/shared/TextSeparator'; -const TEMPLATE_CHAIN_ID = '{chainId}'; - const getGasFeature = config.features.getGasButton; interface Props { @@ -109,8 +107,7 @@ const AddressBalance = ({ data, isLoading }: Props) => { }; try { - const getGasUrlString = getGasFeature.urlTemplate.replace(TEMPLATE_CHAIN_ID, config.chain.id || ''); - const getGasUrl = new URL(getGasUrlString); + const getGasUrl = new URL(getGasFeature.url); getGasUrl.searchParams.append('utm_source', 'blockscout'); getGasUrl.searchParams.append('utm_medium', 'address'); const dappId = getGasFeature.dappId; From 589d58f56daaa467e67ffa1bcb7528dd59655688 Mon Sep 17 00:00:00 2001 From: Max Alekseenko Date: Tue, 23 Jul 2024 15:34:51 +0200 Subject: [PATCH 04/12] make usd_threshold required --- configs/app/features/getGasButton.ts | 2 +- deploy/tools/envs-validator/schema.ts | 2 +- types/client/gasRefuelProviderConfig.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/configs/app/features/getGasButton.ts b/configs/app/features/getGasButton.ts index 364ed7fcef..84b2a429bc 100644 --- a/configs/app/features/getGasButton.ts +++ b/configs/app/features/getGasButton.ts @@ -24,7 +24,7 @@ const config: Feature<{ logoUrl: value.logo, url: value.url_template.replace('{chainId}', chain.id || ''), dappId: marketplace.isEnabled ? value.dapp_id : undefined, - usdThreshold: value.usd_threshold || 1, + usdThreshold: value.usd_threshold, }); } diff --git a/deploy/tools/envs-validator/schema.ts b/deploy/tools/envs-validator/schema.ts index 0f7ac489d9..5b56c3d0da 100644 --- a/deploy/tools/envs-validator/schema.ts +++ b/deploy/tools/envs-validator/schema.ts @@ -650,7 +650,7 @@ const schema = yup url_template: yup.string().required(), logo: yup.string(), dapp_id: yup.string(), - usd_threshold: yup.number(), + usd_threshold: yup.number().required(), }); return isUndefined || valueSchema.isValidSync(data); diff --git a/types/client/gasRefuelProviderConfig.ts b/types/client/gasRefuelProviderConfig.ts index 865ddb8de0..1fecdf4554 100644 --- a/types/client/gasRefuelProviderConfig.ts +++ b/types/client/gasRefuelProviderConfig.ts @@ -3,5 +3,5 @@ export type GasRefuelProviderConfig = { dapp_id?: string; url_template: string; logo?: string; - usd_threshold?: number; + usd_threshold: number; }; From 995e5630fe0bdd05c06ba0265042558a9bfb8645 Mon Sep 17 00:00:00 2001 From: Max Alekseenko Date: Tue, 23 Jul 2024 16:13:14 +0200 Subject: [PATCH 05/12] move get gas button to a separate file and refactor --- ui/address/details/AddressBalance.tsx | 65 ++----------------------- ui/address/details/GetGasButton.tsx | 69 +++++++++++++++++++++++++++ 2 files changed, 73 insertions(+), 61 deletions(-) create mode 100644 ui/address/details/GetGasButton.tsx diff --git a/ui/address/details/AddressBalance.tsx b/ui/address/details/AddressBalance.tsx index 66f51c9a56..0c547ba5ff 100644 --- a/ui/address/details/AddressBalance.tsx +++ b/ui/address/details/AddressBalance.tsx @@ -1,27 +1,20 @@ -import { Image } from '@chakra-ui/react'; import { useQueryClient } from '@tanstack/react-query'; import React from 'react'; import type { SocketMessage } from 'lib/socket/types'; import type { Address } from 'types/api/address'; -import { route } from 'nextjs-routes'; - import config from 'configs/app'; import { getResourceKey } from 'lib/api/useApiQuery'; import getCurrencyValue from 'lib/getCurrencyValue'; -import * as mixpanel from 'lib/mixpanel/index'; import useSocketChannel from 'lib/socket/useSocketChannel'; import useSocketMessage from 'lib/socket/useSocketMessage'; import { currencyUnits } from 'lib/units'; import CurrencyValue from 'ui/shared/CurrencyValue'; import * as DetailsInfoItem from 'ui/shared/DetailsInfoItem'; -import LinkExternal from 'ui/shared/links/LinkExternal'; -import LinkInternal from 'ui/shared/links/LinkInternal'; import NativeTokenIcon from 'ui/shared/NativeTokenIcon'; -import TextSeparator from 'ui/shared/TextSeparator'; -const getGasFeature = config.features.getGasButton; +import GetGasButton from './GetGasButton'; interface Props { data: Pick; @@ -81,60 +74,8 @@ const AddressBalance = ({ data, isLoading }: Props) => { const accuracyUsd = 2; const accuracy = 8; - const onGetGasClick = React.useCallback(() => { - mixpanel.logEvent(mixpanel.EventTypes.BUTTON_CLICK, { Content: 'Get gas', Source: 'address' }); - }, []); - - let getGasButton = null; const { usd: usdResult } = getCurrencyValue({ value, accuracy, accuracyUsd, exchangeRate, decimals }); - if (getGasFeature.isEnabled && !data?.is_contract && Number(usdResult) < getGasFeature.usdThreshold) { - const buttonContent = ( - <> - { getGasFeature.logoUrl && ( - { - ) } - { getGasFeature.name } - - ); - - const linkProps = { - display: 'flex', - alignItems: 'center', - fontSize: 'sm', - lineHeight: 5, - onClick: onGetGasClick, - }; - - try { - const getGasUrl = new URL(getGasFeature.url); - getGasUrl.searchParams.append('utm_source', 'blockscout'); - getGasUrl.searchParams.append('utm_medium', 'address'); - const dappId = getGasFeature.dappId; - getGasButton = ( - <> - - { typeof dappId === 'string' ? ( - - { buttonContent } - - ) : ( - - { buttonContent } - - ) } - - ); - } catch (error) {} - - } - return ( <> { flexWrap="wrap" isLoading={ isLoading } /> - { !isLoading && getGasButton } + { !isLoading && ( + + ) } ); diff --git a/ui/address/details/GetGasButton.tsx b/ui/address/details/GetGasButton.tsx new file mode 100644 index 0000000000..f0238f8805 --- /dev/null +++ b/ui/address/details/GetGasButton.tsx @@ -0,0 +1,69 @@ +import { Image } from '@chakra-ui/react'; +import React from 'react'; + +import { route } from 'nextjs-routes'; + +import config from 'configs/app'; +import * as mixpanel from 'lib/mixpanel/index'; +import LinkExternal from 'ui/shared/links/LinkExternal'; +import LinkInternal from 'ui/shared/links/LinkInternal'; +import TextSeparator from 'ui/shared/TextSeparator'; + +const getGasFeature = config.features.getGasButton; + +interface Props { + usdValue?: string; + isContract?: boolean; +} + +const GetGasButton = ({ usdValue, isContract }: Props) => { + const onGetGasClick = React.useCallback(() => { + mixpanel.logEvent(mixpanel.EventTypes.BUTTON_CLICK, { Content: 'Get gas', Source: 'address' }); + }, []); + + if (getGasFeature.isEnabled && !isContract && usdValue && Number(usdValue) < getGasFeature.usdThreshold) { + try { + const dappId = getGasFeature.dappId; + const urlObj = new URL(getGasFeature.url); + + urlObj.searchParams.append('utm_source', 'blockscout'); + urlObj.searchParams.append('utm_medium', 'address'); + + const url = urlObj.toString(); + const isInternal = typeof dappId === 'string'; + + const Link = isInternal ? LinkInternal : LinkExternal; + const href = isInternal ? route({ pathname: '/apps/[id]', query: { id: dappId, url } }) : url; + + return ( + <> + + + { getGasFeature.logoUrl && ( + { + ) } + { getGasFeature.name } + + + ); + } catch (error) {} + } + + return null; +}; + +export default GetGasButton; From 2faf4182464881bfba023a157e2ab1d238f15488 Mon Sep 17 00:00:00 2001 From: Max Alekseenko Date: Tue, 23 Jul 2024 19:50:49 +0200 Subject: [PATCH 06/12] change button text --- configs/envs/.env.eth | 2 +- deploy/tools/envs-validator/test/.env.base | 2 +- docs/ENVS.md | 4 ++-- ui/address/details/AddressBalance.pw.tsx | 6 +++--- ...th-get-gas-button-internal-dark-mode-1.png | Bin 6514 -> 6630 bytes ...ance.pw.tsx_default_mobile-base-view-1.png | Bin 6136 -> 6276 bytes ...default_with-get-gas-button-external-1.png | Bin 6407 -> 6532 bytes ...th-get-gas-button-internal-dark-mode-1.png | Bin 6256 -> 6378 bytes 8 files changed, 7 insertions(+), 7 deletions(-) diff --git a/configs/envs/.env.eth b/configs/envs/.env.eth index 463ad3542b..685d2f9402 100644 --- a/configs/envs/.env.eth +++ b/configs/envs/.env.eth @@ -39,7 +39,7 @@ NEXT_PUBLIC_MARKETPLACE_SUGGEST_IDEAS_FORM=https://airtable.com/appiy5yijZpMMSKj NEXT_PUBLIC_METADATA_SERVICE_API_HOST=https://metadata.services.blockscout.com NEXT_PUBLIC_METASUITES_ENABLED=true NEXT_PUBLIC_MULTICHAIN_BALANCE_PROVIDER_CONFIG={'name': 'zerion', 'dapp_id': 'zerion', 'url_template': 'https://app.zerion.io/{address}/overview?utm_source=blockscout&utm_medium=address', 'logo': 'https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/marketplace-logos/zerion.svg'} -NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG={'name': 'Get gas', 'dapp_id': 'smol-refuel', 'url_template': 'https://smolrefuel.com/?outboundChain={chainId}&partner=blockscout&utm_source=blockscout&utm_medium=address&disableBridges=true', 'logo': 'https://blockscout-content.s3.amazonaws.com/smolrefuel-logo-action-button.png', 'usd_threshold': 10} +NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG={'name': 'Need gas?', 'dapp_id': 'smol-refuel', 'url_template': 'https://smolrefuel.com/?outboundChain={chainId}&partner=blockscout&utm_source=blockscout&utm_medium=address&disableBridges=true', 'logo': 'https://blockscout-content.s3.amazonaws.com/smolrefuel-logo-action-button.png', 'usd_threshold': 10} NEXT_PUBLIC_NAME_SERVICE_API_HOST=https://bens.services.blockscout.com NEXT_PUBLIC_NAVIGATION_HIGHLIGHTED_ROUTES=['/apps'] NEXT_PUBLIC_NETWORK_CURRENCY_DECIMALS=18 diff --git a/deploy/tools/envs-validator/test/.env.base b/deploy/tools/envs-validator/test/.env.base index f4d096a553..6fae4d9864 100644 --- a/deploy/tools/envs-validator/test/.env.base +++ b/deploy/tools/envs-validator/test/.env.base @@ -78,4 +78,4 @@ NEXT_PUBLIC_WEB3_WALLETS=['coinbase','metamask','token_pocket'] NEXT_PUBLIC_VALIDATORS_CHAIN_TYPE=stability NEXT_PUBLIC_DEFI_DROPDOWN_ITEMS=[{'text':'Swap','icon':'swap','dappId':'uniswap'},{'text':'Payment link','icon':'payment_link','url':'https://example.com'}] NEXT_PUBLIC_MULTICHAIN_BALANCE_PROVIDER_CONFIG={'name': 'zerion', 'url_template': 'https://app.zerion.io/{address}/overview', 'logo': 'https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/marketplace-logos/zerion.svg'} -NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG={'name': 'Get gas', 'dapp_id': 'smol-refuel', 'url_template': 'https://smolrefuel.com/?outboundChain={chainId}&partner=blockscout&utm_source=blockscout&utm_medium=address&disableBridges=true', 'logo': 'https://blockscout-content.s3.amazonaws.com/smolrefuel-logo-action-button.png', 'usd_threshold': 10} +NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG={'name': 'Need gas?', 'dapp_id': 'smol-refuel', 'url_template': 'https://smolrefuel.com/?outboundChain={chainId}&partner=blockscout&utm_source=blockscout&utm_medium=address&disableBridges=true', 'logo': 'https://blockscout-content.s3.amazonaws.com/smolrefuel-logo-action-button.png', 'usd_threshold': 10} diff --git a/docs/ENVS.md b/docs/ENVS.md index 0660c23bac..a803e75f10 100644 --- a/docs/ENVS.md +++ b/docs/ENVS.md @@ -712,7 +712,7 @@ If the feature is enabled, a Get gas button will be displayed on the address pag | Variable | Type| Description | Compulsoriness | Default value | Example value | Version | | --- | --- | --- | --- | --- | --- | --- | -| NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG | `{ name: string; url_template: string; dapp_id?: string; logo?: string, usd_threshold: number }` | Get gas button config. See [below](#get-gas-button-configuration-properties) | - | - | `{ name: 'Get gas', dapp_id: 'smol-refuel', url_template: 'https://smolrefuel.com/?outboundChain={chainId}', logo: 'https://example.com/icon.png', usd_threshold: 10 }` | v1.33.0+ | +| NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG | `{ name: string; url_template: string; dapp_id?: string; logo?: string, usd_threshold: number }` | Get gas button config. See [below](#get-gas-button-configuration-properties) | - | - | `{ name: 'Need gas?', dapp_id: 'smol-refuel', url_template: 'https://smolrefuel.com/?outboundChain={chainId}', logo: 'https://example.com/icon.png', usd_threshold: 10 }` | v1.33.0+ |   @@ -720,7 +720,7 @@ If the feature is enabled, a Get gas button will be displayed on the address pag | Variable | Type| Description | Compulsoriness | Default value | Example value | | --- | --- | --- | --- | --- | --- | -| name | `string` | Text on the button | Required | - | `Get gas` | +| name | `string` | Text on the button | Required | - | `Need gas?` | | url_template | `string` | Url template, may contain `{chainId}` variable | Required | - | `https://smolrefuel.com/?outboundChain={chainId}` | | dapp_id | `string` | Set for open a Blockscout dapp page instead of opening external app page | - | - | `smol-refuel` | | logo | `string` | Gas refuel application logo url | - | - | `https://example.com/icon.png` | diff --git a/ui/address/details/AddressBalance.pw.tsx b/ui/address/details/AddressBalance.pw.tsx index d03bf28dc4..c6ecc74e98 100644 --- a/ui/address/details/AddressBalance.pw.tsx +++ b/ui/address/details/AddressBalance.pw.tsx @@ -28,7 +28,7 @@ test('with get gas button internal +@dark-mode', async({ render, mockEnvs, mockA await mockEnvs([ [ 'NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG', - `{"name": "Get gas", "dapp_id": "duck", "url_template": "https://duck.url/{chainId}", "logo": "${ ICON_URL }", "usd_threshold": 1}`, + `{"name": "Need gas?", "dapp_id": "duck", "url_template": "https://duck.url/{chainId}", "logo": "${ ICON_URL }", "usd_threshold": 1}`, ], ]); await mockAssetResponse(ICON_URL, './playwright/mocks/image_svg.svg'); @@ -46,7 +46,7 @@ test('with get gas button external', async({ render, mockEnvs, mockAssetResponse await mockEnvs([ [ 'NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG', - `{"name": "Get gas", "url_template": "https://duck.url/{chainId}", "logo": "${ ICON_URL }", "usd_threshold": 1}`, + `{"name": "Need gas?", "url_template": "https://duck.url/{chainId}", "logo": "${ ICON_URL }", "usd_threshold": 1}`, ], ]); await mockAssetResponse(ICON_URL, './playwright/mocks/image_svg.svg'); @@ -67,7 +67,7 @@ test.describe('mobile', () => { await mockEnvs([ [ 'NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG', - `{"name": "Get gas", "dapp_id": "duck", "url_template": "https://duck.url/{chainId}", "logo": "${ ICON_URL }", "usd_threshold": 1}`, + `{"name": "Need gas?", "dapp_id": "duck", "url_template": "https://duck.url/{chainId}", "logo": "${ ICON_URL }", "usd_threshold": 1}`, ], ]); await mockAssetResponse(ICON_URL, './playwright/mocks/image_svg.svg'); diff --git a/ui/address/details/__screenshots__/AddressBalance.pw.tsx_dark-color-mode_with-get-gas-button-internal-dark-mode-1.png b/ui/address/details/__screenshots__/AddressBalance.pw.tsx_dark-color-mode_with-get-gas-button-internal-dark-mode-1.png index ea9a6d2affaa00dced83dabfcf66dc844cfe3932..dbef675d0c114a80fc5f948c083acb724fafea3a 100644 GIT binary patch literal 6630 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 Fe*j$3B47Xj literal 6514 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 E0h*7z00000 diff --git a/ui/address/details/__screenshots__/AddressBalance.pw.tsx_default_mobile-base-view-1.png b/ui/address/details/__screenshots__/AddressBalance.pw.tsx_default_mobile-base-view-1.png index 6801ea9059160d1eb47c47d3604110a285e8cd3c..61e169a41b511bdd079edb79926d2b17e25e04d8 100644 GIT binary patch literal 6276 zcmaKRby!qS*!BX_rJ$5FNOww0NQWXJ3rpA1-6cp$*U}{`D9zFfNGZY+(!$cPbR#7! zy!-pE_xta=zVpY-nRDjM%=4W4iMc2KjjkFg5gic#03g*+SJ4LmuwpRxvIKaT()tU7 z5~jlP)>l&k)Q-{b0su7f8Y+qg0R@Lkfo2A%`<~PB0}>g6gt)TERqV2Lb2nQjjlIKc zbBMO+g}qUB%Tji}Ymh0Q)>MaG?!F;Hd{ms9_}$w929CQzaU+ep58{7CWI`^g7IOkK~09mPx#X{q)I z57X>TCLqD|iez{~^9a+FIU6R-vt~GrAF@SJS&QUW@s+0{PR=jN^&mpBi)M6Xh5rqS zlV;GFQd+4pn4-W*F;gnekCV4rrf*=PULomq1C-Ek5cGVAsBQaZ*t`J#B#}l2?(UXf zTxz8j91F~w?d5kyzjm9x*+akrtryCH5NgcC)dw-@$pvk%3~pzeh{-(Yo&wAai28t% z74P8L>;)ZfwhMy;+9-clb1$10ZEkHf*dbHy4%gzJKBby%*Tt-RZT1gtOm(MHp5%q! zFI%BJAyYoG-BEOCThY6#jB8QRiVP1A!3v6SyWU%OEDt%}{H5UaJ+lgo;2zEg*vj!n zDW4`ADpIr4w1BF$${qPt31t+ZE-~9bsWiy#VZGg#o@Zhyx`F9rZ$k-pe@6w!$o*<` zHKYSiZUwV)~P}DSs@6iV1ekltuam+P6)NVf}veu zGk>eoAzp1c=rs%E^VGfxJdCZ@t+w;x7*bNrDH<~UvJvK;stIlD_$C#&N1`WpD*~)Z zKDA-OX6BWNy=A0P-n!u9dM+SS9F*4X{$0;YlZR=f*i=tV2eZ6O53^d}55w!+X`l3m zHlt&i@ZjaxCPzw*+p*AVmt7GcUbE%Q8T63^c|A%hJ0P;MlE518a$|D>r$G9Ww=38e ze|6t|?qvU$AqVw}oW*S=CLk{M)Gm=__q+pz$Kf>f9ej`yB5P3;RMK?87+1lCRym?>g z3G{bG$O(mT$;;2)WR+h1^pM?sYGNYQau|GtCh4h6>n8*w=^~`Y1vl^^iUI?;lUo zf76^r8*|snKJf{bbC;y$MN%V~8XN9F3lKtTYG95!f)~8o(sXb@FX6t_JImy^Fo~UK zvTgH4;ht-kTJPnZ?9~XRuN%g1C@I$ylejrOdjafH{t{Q8{jrtMM_rI-V(kd1;4i<8 zLY*V(P65}3Z9EFW0<;lihy6Q`my;JeLofq-PW{^hj^%zpA7if$f^M%jCZF+95g&&) z<P=(#P)HAn|%gTj!Pehtd))5c+C@yP>D)O1-76HrYdBe5K~fRlxoQwja%U>Fff9w z3CPc4cTPU@)mh5HUO^_RFgT1=P_Q^mxS_4Bl8d`Rz@hMTe8}&{?{I1SqS^(Ilr|bt zQE?d4rOVL2I|Bg_&BID`&Eyj*@jF3#_9ZORqxIevvZajDYB zW}mrP+0Lagz~Rc$lveXw-ymPM8s0o(DSl17O(|N>Bp@JwF~3}qKv})5&ADQ z_)DD1|G#1Y>;HM{r(%hT7LO0&dNA@b|M~v~k3!YZx8xDMj$hQBdu&B)#7ycJHwhW^ z;~zzvB`68>>(r=xeLU_&@kp^!FX^(nT)(75J@!l69{$BlW^6u@`_;cd&X4~oRb5#_ zH6uFFWt1Nu7ogKnlt@pingKOm;J9l>Z9Y5OxbLS){9;;FDaJIS))Ug$oyS2CPMbtQ zli-V|z4cEf?YRzBf^SSvmEQIK@DQ)9@#2%jRtg%;FUpDl$0Ix)|6f

4PO=b$HRZ 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 Km0Bgs$o~QDzib=; literal 6136 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 Vv9&M)aa2A)RS~36@!CA>e*nLzEBXKc diff --git a/ui/address/details/__screenshots__/AddressBalance.pw.tsx_default_with-get-gas-button-external-1.png b/ui/address/details/__screenshots__/AddressBalance.pw.tsx_default_with-get-gas-button-external-1.png index 3518e3c6d7139b979e2719b2df8b45974123e56d..039b0ee592abac2c2ed8f1b7a3ea98940fced724 100644 GIT binary patch literal 6532 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 BrlSA= diff --git a/ui/address/details/__screenshots__/AddressBalance.pw.tsx_default_with-get-gas-button-internal-dark-mode-1.png b/ui/address/details/__screenshots__/AddressBalance.pw.tsx_default_with-get-gas-button-internal-dark-mode-1.png index 98b7bd5b8355df4db086a74e540104545062069f..3796de60fa51055e9748b1d4dc48ea3f2957c94f 100644 GIT binary patch literal 6378 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 Date: Thu, 25 Jul 2024 13:05:13 +0200 Subject: [PATCH 07/12] remove get gas button from address page --- ui/address/details/AddressBalance.pw.tsx | 85 ------------------ ui/address/details/AddressBalance.tsx | 26 ++---- ...th-get-gas-button-internal-dark-mode-1.png | Bin 6630 -> 0 bytes ...ressBalance.pw.tsx_default_base-view-1.png | Bin 7638 -> 0 bytes ...ance.pw.tsx_default_mobile-base-view-1.png | Bin 6276 -> 0 bytes ...default_with-get-gas-button-external-1.png | Bin 6532 -> 0 bytes ...th-get-gas-button-internal-dark-mode-1.png | Bin 6378 -> 0 bytes 7 files changed, 6 insertions(+), 105 deletions(-) delete mode 100644 ui/address/details/AddressBalance.pw.tsx delete mode 100644 ui/address/details/__screenshots__/AddressBalance.pw.tsx_dark-color-mode_with-get-gas-button-internal-dark-mode-1.png delete mode 100644 ui/address/details/__screenshots__/AddressBalance.pw.tsx_default_base-view-1.png delete mode 100644 ui/address/details/__screenshots__/AddressBalance.pw.tsx_default_mobile-base-view-1.png delete mode 100644 ui/address/details/__screenshots__/AddressBalance.pw.tsx_default_with-get-gas-button-external-1.png delete mode 100644 ui/address/details/__screenshots__/AddressBalance.pw.tsx_default_with-get-gas-button-internal-dark-mode-1.png diff --git a/ui/address/details/AddressBalance.pw.tsx b/ui/address/details/AddressBalance.pw.tsx deleted file mode 100644 index c6ecc74e98..0000000000 --- a/ui/address/details/AddressBalance.pw.tsx +++ /dev/null @@ -1,85 +0,0 @@ -import { Grid, Box } from '@chakra-ui/react'; -import React from 'react'; - -import * as addressMock from 'mocks/address/address'; -import { test, expect, devices } from 'playwright/lib'; - -import AddressBalance from './AddressBalance'; - -const ICON_URL = 'https://localhost:3000/my-icon.png'; - -const eoaWithSmallBalance = { - ...addressMock.eoa, - coin_balance: '500000000000000000', // 0.5 * 10^18 - exchange_rate: '1', // 1 USD -}; - -test('base view', async({ render }) => { - const component = await render( - - - , - ); - - await expect(component).toHaveScreenshot(); -}); - -test('with get gas button internal +@dark-mode', async({ render, mockEnvs, mockAssetResponse }) => { - await mockEnvs([ - [ - 'NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG', - `{"name": "Need gas?", "dapp_id": "duck", "url_template": "https://duck.url/{chainId}", "logo": "${ ICON_URL }", "usd_threshold": 1}`, - ], - ]); - await mockAssetResponse(ICON_URL, './playwright/mocks/image_svg.svg'); - - const component = await render( - - - , - ); - - await expect(component).toHaveScreenshot(); -}); - -test('with get gas button external', async({ render, mockEnvs, mockAssetResponse }) => { - await mockEnvs([ - [ - 'NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG', - `{"name": "Need gas?", "url_template": "https://duck.url/{chainId}", "logo": "${ ICON_URL }", "usd_threshold": 1}`, - ], - ]); - await mockAssetResponse(ICON_URL, './playwright/mocks/image_svg.svg'); - - const component = await render( - - - , - ); - - await expect(component).toHaveScreenshot(); -}); - -test.describe('mobile', () => { - test.use({ viewport: devices['iPhone 13 Pro'].viewport }); - - test('base view', async({ render, mockEnvs, mockAssetResponse }) => { - await mockEnvs([ - [ - 'NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG', - `{"name": "Need gas?", "dapp_id": "duck", "url_template": "https://duck.url/{chainId}", "logo": "${ ICON_URL }", "usd_threshold": 1}`, - ], - ]); - await mockAssetResponse(ICON_URL, './playwright/mocks/image_svg.svg'); - - const component = await render( - - - - - , - ); - - await expect(component).toHaveScreenshot(); - }); -}); diff --git a/ui/address/details/AddressBalance.tsx b/ui/address/details/AddressBalance.tsx index 0c547ba5ff..59ca449214 100644 --- a/ui/address/details/AddressBalance.tsx +++ b/ui/address/details/AddressBalance.tsx @@ -6,7 +6,6 @@ import type { Address } from 'types/api/address'; import config from 'configs/app'; import { getResourceKey } from 'lib/api/useApiQuery'; -import getCurrencyValue from 'lib/getCurrencyValue'; import useSocketChannel from 'lib/socket/useSocketChannel'; import useSocketMessage from 'lib/socket/useSocketMessage'; import { currencyUnits } from 'lib/units'; @@ -14,10 +13,8 @@ import CurrencyValue from 'ui/shared/CurrencyValue'; import * as DetailsInfoItem from 'ui/shared/DetailsInfoItem'; import NativeTokenIcon from 'ui/shared/NativeTokenIcon'; -import GetGasButton from './GetGasButton'; - interface Props { - data: Pick; + data: Pick; isLoading: boolean; } @@ -68,14 +65,6 @@ const AddressBalance = ({ data, isLoading }: Props) => { handler: handleNewCoinBalanceMessage, }); - const value = data.coin_balance || '0'; - const exchangeRate = data.exchange_rate; - const decimals = String(config.chain.currency.decimals); - const accuracyUsd = 2; - const accuracy = 8; - - const { usd: usdResult } = getCurrencyValue({ value, accuracy, accuracyUsd, exchangeRate, decimals }); - return ( <> { - { !isLoading && ( - - ) } ); diff --git a/ui/address/details/__screenshots__/AddressBalance.pw.tsx_dark-color-mode_with-get-gas-button-internal-dark-mode-1.png b/ui/address/details/__screenshots__/AddressBalance.pw.tsx_dark-color-mode_with-get-gas-button-internal-dark-mode-1.png deleted file mode 100644 index dbef675d0c114a80fc5f948c083acb724fafea3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6630 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 Fe*j$3B47Xj diff --git a/ui/address/details/__screenshots__/AddressBalance.pw.tsx_default_base-view-1.png b/ui/address/details/__screenshots__/AddressBalance.pw.tsx_default_base-view-1.png deleted file mode 100644 index 3fb32b2b8c87f0886814bac913c04ae30489fdfd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7638 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 diff --git a/ui/address/details/__screenshots__/AddressBalance.pw.tsx_default_mobile-base-view-1.png b/ui/address/details/__screenshots__/AddressBalance.pw.tsx_default_mobile-base-view-1.png deleted file mode 100644 index 61e169a41b511bdd079edb79926d2b17e25e04d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6276 zcmaKRby!qS*!BX_rJ$5FNOww0NQWXJ3rpA1-6cp$*U}{`D9zFfNGZY+(!$cPbR#7! zy!-pE_xta=zVpY-nRDjM%=4W4iMc2KjjkFg5gic#03g*+SJ4LmuwpRxvIKaT()tU7 z5~jlP)>l&k)Q-{b0su7f8Y+qg0R@Lkfo2A%`<~PB0}>g6gt)TERqV2Lb2nQjjlIKc zbBMO+g}qUB%Tji}Ymh0Q)>MaG?!F;Hd{ms9_}$w929CQzaU+ep58{7CWI`^g7IOkK~09mPx#X{q)I z57X>TCLqD|iez{~^9a+FIU6R-vt~GrAF@SJS&QUW@s+0{PR=jN^&mpBi)M6Xh5rqS zlV;GFQd+4pn4-W*F;gnekCV4rrf*=PULomq1C-Ek5cGVAsBQaZ*t`J#B#}l2?(UXf zTxz8j91F~w?d5kyzjm9x*+akrtryCH5NgcC)dw-@$pvk%3~pzeh{-(Yo&wAai28t% z74P8L>;)ZfwhMy;+9-clb1$10ZEkHf*dbHy4%gzJKBby%*Tt-RZT1gtOm(MHp5%q! zFI%BJAyYoG-BEOCThY6#jB8QRiVP1A!3v6SyWU%OEDt%}{H5UaJ+lgo;2zEg*vj!n zDW4`ADpIr4w1BF$${qPt31t+ZE-~9bsWiy#VZGg#o@Zhyx`F9rZ$k-pe@6w!$o*<` zHKYSiZUwV)~P}DSs@6iV1ekltuam+P6)NVf}veu zGk>eoAzp1c=rs%E^VGfxJdCZ@t+w;x7*bNrDH<~UvJvK;stIlD_$C#&N1`WpD*~)Z zKDA-OX6BWNy=A0P-n!u9dM+SS9F*4X{$0;YlZR=f*i=tV2eZ6O53^d}55w!+X`l3m zHlt&i@ZjaxCPzw*+p*AVmt7GcUbE%Q8T63^c|A%hJ0P;MlE518a$|D>r$G9Ww=38e ze|6t|?qvU$AqVw}oW*S=CLk{M)Gm=__q+pz$Kf>f9ej`yB5P3;RMK?87+1lCRym?>g z3G{bG$O(mT$;;2)WR+h1^pM?sYGNYQau|GtCh4h6>n8*w=^~`Y1vl^^iUI?;lUo zf76^r8*|snKJf{bbC;y$MN%V~8XN9F3lKtTYG95!f)~8o(sXb@FX6t_JImy^Fo~UK zvTgH4;ht-kTJPnZ?9~XRuN%g1C@I$ylejrOdjafH{t{Q8{jrtMM_rI-V(kd1;4i<8 zLY*V(P65}3Z9EFW0<;lihy6Q`my;JeLofq-PW{^hj^%zpA7if$f^M%jCZF+95g&&) z<P=(#P)HAn|%gTj!Pehtd))5c+C@yP>D)O1-76HrYdBe5K~fRlxoQwja%U>Fff9w z3CPc4cTPU@)mh5HUO^_RFgT1=P_Q^mxS_4Bl8d`Rz@hMTe8}&{?{I1SqS^(Ilr|bt zQE?d4rOVL2I|Bg_&BID`&Eyj*@jF3#_9ZORqxIevvZajDYB zW}mrP+0Lagz~Rc$lveXw-ymPM8s0o(DSl17O(|N>Bp@JwF~3}qKv})5&ADQ z_)DD1|G#1Y>;HM{r(%hT7LO0&dNA@b|M~v~k3!YZx8xDMj$hQBdu&B)#7ycJHwhW^ z;~zzvB`68>>(r=xeLU_&@kp^!FX^(nT)(75J@!l69{$BlW^6u@`_;cd&X4~oRb5#_ zH6uFFWt1Nu7ogKnlt@pingKOm;J9l>Z9Y5OxbLS){9;;FDaJIS))Ug$oyS2CPMbtQ zli-V|z4cEf?YRzBf^SSvmEQIK@DQ)9@#2%jRtg%;FUpDl$0Ix)|6f

4PO=b$HRZ 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 Km0Bgs$o~QDzib=; diff --git a/ui/address/details/__screenshots__/AddressBalance.pw.tsx_default_with-get-gas-button-external-1.png b/ui/address/details/__screenshots__/AddressBalance.pw.tsx_default_with-get-gas-button-external-1.png deleted file mode 100644 index 039b0ee592abac2c2ed8f1b7a3ea98940fced724..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6532 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 Date: Thu, 25 Jul 2024 13:09:25 +0200 Subject: [PATCH 08/12] remove usd_threshold prop --- configs/app/features/getGasButton.ts | 2 -- configs/envs/.env.eth | 2 +- deploy/tools/envs-validator/schema.ts | 1 - deploy/tools/envs-validator/test/.env.base | 2 +- docs/ENVS.md | 5 ++--- types/client/gasRefuelProviderConfig.ts | 1 - ui/address/details/GetGasButton.tsx | 9 ++------- 7 files changed, 6 insertions(+), 16 deletions(-) diff --git a/configs/app/features/getGasButton.ts b/configs/app/features/getGasButton.ts index 84b2a429bc..db392f3c9a 100644 --- a/configs/app/features/getGasButton.ts +++ b/configs/app/features/getGasButton.ts @@ -14,7 +14,6 @@ const config: Feature<{ logoUrl?: string; url: string; dappId?: string; - usdThreshold: number; }> = (() => { if (value) { return Object.freeze({ @@ -24,7 +23,6 @@ const config: Feature<{ logoUrl: value.logo, url: value.url_template.replace('{chainId}', chain.id || ''), dappId: marketplace.isEnabled ? value.dapp_id : undefined, - usdThreshold: value.usd_threshold, }); } diff --git a/configs/envs/.env.eth b/configs/envs/.env.eth index 685d2f9402..2e2e1715b4 100644 --- a/configs/envs/.env.eth +++ b/configs/envs/.env.eth @@ -39,7 +39,7 @@ NEXT_PUBLIC_MARKETPLACE_SUGGEST_IDEAS_FORM=https://airtable.com/appiy5yijZpMMSKj NEXT_PUBLIC_METADATA_SERVICE_API_HOST=https://metadata.services.blockscout.com NEXT_PUBLIC_METASUITES_ENABLED=true NEXT_PUBLIC_MULTICHAIN_BALANCE_PROVIDER_CONFIG={'name': 'zerion', 'dapp_id': 'zerion', 'url_template': 'https://app.zerion.io/{address}/overview?utm_source=blockscout&utm_medium=address', 'logo': 'https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/marketplace-logos/zerion.svg'} -NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG={'name': 'Need gas?', 'dapp_id': 'smol-refuel', 'url_template': 'https://smolrefuel.com/?outboundChain={chainId}&partner=blockscout&utm_source=blockscout&utm_medium=address&disableBridges=true', 'logo': 'https://blockscout-content.s3.amazonaws.com/smolrefuel-logo-action-button.png', 'usd_threshold': 10} +NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG={'name': 'Need gas?', 'dapp_id': 'smol-refuel', 'url_template': 'https://smolrefuel.com/?outboundChain={chainId}&partner=blockscout&utm_source=blockscout&utm_medium=address&disableBridges=true', 'logo': 'https://blockscout-content.s3.amazonaws.com/smolrefuel-logo-action-button.png'} NEXT_PUBLIC_NAME_SERVICE_API_HOST=https://bens.services.blockscout.com NEXT_PUBLIC_NAVIGATION_HIGHLIGHTED_ROUTES=['/apps'] NEXT_PUBLIC_NETWORK_CURRENCY_DECIMALS=18 diff --git a/deploy/tools/envs-validator/schema.ts b/deploy/tools/envs-validator/schema.ts index 5b56c3d0da..2211ef3578 100644 --- a/deploy/tools/envs-validator/schema.ts +++ b/deploy/tools/envs-validator/schema.ts @@ -650,7 +650,6 @@ const schema = yup url_template: yup.string().required(), logo: yup.string(), dapp_id: yup.string(), - usd_threshold: yup.number().required(), }); return isUndefined || valueSchema.isValidSync(data); diff --git a/deploy/tools/envs-validator/test/.env.base b/deploy/tools/envs-validator/test/.env.base index 6fae4d9864..30c947300e 100644 --- a/deploy/tools/envs-validator/test/.env.base +++ b/deploy/tools/envs-validator/test/.env.base @@ -78,4 +78,4 @@ NEXT_PUBLIC_WEB3_WALLETS=['coinbase','metamask','token_pocket'] NEXT_PUBLIC_VALIDATORS_CHAIN_TYPE=stability NEXT_PUBLIC_DEFI_DROPDOWN_ITEMS=[{'text':'Swap','icon':'swap','dappId':'uniswap'},{'text':'Payment link','icon':'payment_link','url':'https://example.com'}] NEXT_PUBLIC_MULTICHAIN_BALANCE_PROVIDER_CONFIG={'name': 'zerion', 'url_template': 'https://app.zerion.io/{address}/overview', 'logo': 'https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/marketplace-logos/zerion.svg'} -NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG={'name': 'Need gas?', 'dapp_id': 'smol-refuel', 'url_template': 'https://smolrefuel.com/?outboundChain={chainId}&partner=blockscout&utm_source=blockscout&utm_medium=address&disableBridges=true', 'logo': 'https://blockscout-content.s3.amazonaws.com/smolrefuel-logo-action-button.png', 'usd_threshold': 10} +NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG={'name': 'Need gas?', 'dapp_id': 'smol-refuel', 'url_template': 'https://smolrefuel.com/?outboundChain={chainId}&partner=blockscout&utm_source=blockscout&utm_medium=address&disableBridges=true', 'logo': 'https://blockscout-content.s3.amazonaws.com/smolrefuel-logo-action-button.png'} diff --git a/docs/ENVS.md b/docs/ENVS.md index a803e75f10..b02f9f6209 100644 --- a/docs/ENVS.md +++ b/docs/ENVS.md @@ -708,11 +708,11 @@ If the feature is enabled, a Multichain balance button will be displayed on the ### Get gas button -If the feature is enabled, a Get gas button will be displayed on the address page, which will take you to the gas refuel application in the marketplace or to an external site. +If the feature is enabled, a Get gas button will be displayed in the top bar, which will take you to the gas refuel application in the marketplace or to an external site. | Variable | Type| Description | Compulsoriness | Default value | Example value | Version | | --- | --- | --- | --- | --- | --- | --- | -| NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG | `{ name: string; url_template: string; dapp_id?: string; logo?: string, usd_threshold: number }` | Get gas button config. See [below](#get-gas-button-configuration-properties) | - | - | `{ name: 'Need gas?', dapp_id: 'smol-refuel', url_template: 'https://smolrefuel.com/?outboundChain={chainId}', logo: 'https://example.com/icon.png', usd_threshold: 10 }` | v1.33.0+ | +| NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG | `{ name: string; url_template: string; dapp_id?: string; logo?: string }` | Get gas button config. See [below](#get-gas-button-configuration-properties) | - | - | `{ name: 'Need gas?', dapp_id: 'smol-refuel', url_template: 'https://smolrefuel.com/?outboundChain={chainId}', logo: 'https://example.com/icon.png' }` | v1.33.0+ |   @@ -724,7 +724,6 @@ If the feature is enabled, a Get gas button will be displayed on the address pag | url_template | `string` | Url template, may contain `{chainId}` variable | Required | - | `https://smolrefuel.com/?outboundChain={chainId}` | | dapp_id | `string` | Set for open a Blockscout dapp page instead of opening external app page | - | - | `smol-refuel` | | logo | `string` | Gas refuel application logo url | - | - | `https://example.com/icon.png` | -| usd_threshold | `number` | Native token balance value in USD below which the button will be displayed | - | `1` | `10` |   diff --git a/types/client/gasRefuelProviderConfig.ts b/types/client/gasRefuelProviderConfig.ts index 1fecdf4554..d135952480 100644 --- a/types/client/gasRefuelProviderConfig.ts +++ b/types/client/gasRefuelProviderConfig.ts @@ -3,5 +3,4 @@ export type GasRefuelProviderConfig = { dapp_id?: string; url_template: string; logo?: string; - usd_threshold: number; }; diff --git a/ui/address/details/GetGasButton.tsx b/ui/address/details/GetGasButton.tsx index f0238f8805..23ca09660c 100644 --- a/ui/address/details/GetGasButton.tsx +++ b/ui/address/details/GetGasButton.tsx @@ -11,17 +11,12 @@ import TextSeparator from 'ui/shared/TextSeparator'; const getGasFeature = config.features.getGasButton; -interface Props { - usdValue?: string; - isContract?: boolean; -} - -const GetGasButton = ({ usdValue, isContract }: Props) => { +const GetGasButton = () => { const onGetGasClick = React.useCallback(() => { mixpanel.logEvent(mixpanel.EventTypes.BUTTON_CLICK, { Content: 'Get gas', Source: 'address' }); }, []); - if (getGasFeature.isEnabled && !isContract && usdValue && Number(usdValue) < getGasFeature.usdThreshold) { + if (getGasFeature.isEnabled) { try { const dappId = getGasFeature.dappId; const urlObj = new URL(getGasFeature.url); From 1cf91f6a77d0293d88b80059338970643582a589 Mon Sep 17 00:00:00 2001 From: Max Alekseenko Date: Thu, 25 Jul 2024 13:33:19 +0200 Subject: [PATCH 09/12] move get gas button to top bar --- .../topBar}/GetGasButton.tsx | 18 ++++++++-------- ui/snippets/topBar/TopBarStats.tsx | 21 ++++++++++++------- 2 files changed, 22 insertions(+), 17 deletions(-) rename ui/{address/details => snippets/topBar}/GetGasButton.tsx (82%) diff --git a/ui/address/details/GetGasButton.tsx b/ui/snippets/topBar/GetGasButton.tsx similarity index 82% rename from ui/address/details/GetGasButton.tsx rename to ui/snippets/topBar/GetGasButton.tsx index 23ca09660c..8025a29ae4 100644 --- a/ui/address/details/GetGasButton.tsx +++ b/ui/snippets/topBar/GetGasButton.tsx @@ -1,22 +1,24 @@ -import { Image } from '@chakra-ui/react'; +import { Image, Box } from '@chakra-ui/react'; import React from 'react'; import { route } from 'nextjs-routes'; import config from 'configs/app'; +import useIsMobile from 'lib/hooks/useIsMobile'; import * as mixpanel from 'lib/mixpanel/index'; import LinkExternal from 'ui/shared/links/LinkExternal'; import LinkInternal from 'ui/shared/links/LinkInternal'; -import TextSeparator from 'ui/shared/TextSeparator'; const getGasFeature = config.features.getGasButton; const GetGasButton = () => { + const isMobile = useIsMobile(false); + const onGetGasClick = React.useCallback(() => { mixpanel.logEvent(mixpanel.EventTypes.BUTTON_CLICK, { Content: 'Get gas', Source: 'address' }); }, []); - if (getGasFeature.isEnabled) { + if (getGasFeature.isEnabled && !isMobile) { try { const dappId = getGasFeature.dappId; const urlObj = new URL(getGasFeature.url); @@ -32,12 +34,12 @@ const GetGasButton = () => { return ( <> - + @@ -45,10 +47,8 @@ const GetGasButton = () => { { ) } { getGasFeature.name } diff --git a/ui/snippets/topBar/TopBarStats.tsx b/ui/snippets/topBar/TopBarStats.tsx index 885b7e76c7..d6ec93a891 100644 --- a/ui/snippets/topBar/TopBarStats.tsx +++ b/ui/snippets/topBar/TopBarStats.tsx @@ -10,6 +10,8 @@ import GasInfoTooltip from 'ui/shared/gas/GasInfoTooltip'; import GasPrice from 'ui/shared/gas/GasPrice'; import TextSeparator from 'ui/shared/TextSeparator'; +import GetGasButton from './GetGasButton'; + const TopBarStats = () => { const isMobile = useIsMobile(); @@ -76,14 +78,17 @@ const TopBarStats = () => { ) } { data?.coin_price && config.features.gasTracker.isEnabled && } { data?.gas_prices && data.gas_prices.average !== null && config.features.gasTracker.isEnabled && ( - - Gas - - - - - - + <> + + Gas + + + + + + + { !isPlaceholderData && } + ) } ); From 50ea26042ba32fd89d2624622693067e213a3211 Mon Sep 17 00:00:00 2001 From: Max Alekseenko Date: Thu, 25 Jul 2024 13:43:32 +0200 Subject: [PATCH 10/12] add test --- ui/snippets/topBar/TopBar.pw.tsx | 16 ++++++++++++++++ ...Bar.pw.tsx_default_with-Get-gas-button-1.png | Bin 0 -> 7540 bytes 2 files changed, 16 insertions(+) create mode 100644 ui/snippets/topBar/__screenshots__/TopBar.pw.tsx_default_with-Get-gas-button-1.png diff --git a/ui/snippets/topBar/TopBar.pw.tsx b/ui/snippets/topBar/TopBar.pw.tsx index dfbf1d2443..c99e5d30d0 100644 --- a/ui/snippets/topBar/TopBar.pw.tsx +++ b/ui/snippets/topBar/TopBar.pw.tsx @@ -61,3 +61,19 @@ test('with DeFi dropdown +@dark-mode +@mobile', async({ render, page, mockApiRes await component.getByText(/DeFi/i).click(); await expect(page).toHaveScreenshot({ clip: { x: 0, y: 0, width: 1500, height: 220 } }); }); + +test('with Get gas button', async({ render, mockApiResponse, mockEnvs, mockAssetResponse }) => { + const ICON_URL = 'https://localhost:3000/my-icon.png'; + + await mockEnvs([ + [ + 'NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG', + `{"name": "Need gas?", "dapp_id": "duck", "url_template": "https://duck.url/{chainId}", "logo": "${ ICON_URL }"}`, + ], + ]); + await mockApiResponse('stats', statsMock.base); + await mockAssetResponse(ICON_URL, './playwright/mocks/image_svg.svg'); + + const component = await render(); + await expect(component).toHaveScreenshot(); +}); diff --git a/ui/snippets/topBar/__screenshots__/TopBar.pw.tsx_default_with-Get-gas-button-1.png b/ui/snippets/topBar/__screenshots__/TopBar.pw.tsx_default_with-Get-gas-button-1.png new file mode 100644 index 0000000000000000000000000000000000000000..b93f026cee542cda376430f3766efb9a5abdf978 GIT binary patch literal 7540 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 literal 0 HcmV?d00001 From 64a3944a748817986f2aeca042238b442474293c Mon Sep 17 00:00:00 2001 From: Max Alekseenko Date: Thu, 25 Jul 2024 13:46:21 +0200 Subject: [PATCH 11/12] Update ENVS.md --- docs/ENVS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ENVS.md b/docs/ENVS.md index b02f9f6209..1585e013dc 100644 --- a/docs/ENVS.md +++ b/docs/ENVS.md @@ -702,7 +702,7 @@ If the feature is enabled, a Multichain balance button will be displayed on the | name | `string` | Multichain portfolio application name | Required | - | `zerion` | | url_template | `string` | Url template to the portfolio. Should be a template with `{address}` variable | Required | - | `https://app.zerion.io/{address}/overview` | | dapp_id | `string` | Set for open a Blockscout dapp page with the portfolio instead of opening external app page | - | - | `zerion` | -| logo | `string` | Multichain portfolio application logo url | - | - | `https://example.com/icon.svg` | +| logo | `string` | Multichain portfolio application logo (.svg) url | - | - | `https://example.com/icon.svg` |   From 0dfb125524f1d8994f7429557d7252f73a54871a Mon Sep 17 00:00:00 2001 From: Max Alekseenko Date: Mon, 29 Jul 2024 15:10:05 +0200 Subject: [PATCH 12/12] add item to the table of contents --- docs/ENVS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/ENVS.md b/docs/ENVS.md index 1585e013dc..b549ec6f51 100644 --- a/docs/ENVS.md +++ b/docs/ENVS.md @@ -61,6 +61,7 @@ Please be aware that all environment variables prefixed with `NEXT_PUBLIC_` will - [OpenTelemetry](ENVS.md#opentelemetry) - [Swap button](ENVS.md#defi-dropdown) - [Multichain balance button](ENVS.md#multichain-balance-button) + - [Get gas button](ENVS.md#get-gas-button) - [3rd party services configuration](ENVS.md#external-services-configuration)