Commit 271e351c authored by tom goriunov's avatar tom goriunov Committed by GitHub

Merge pull request #781 from blockscout/network-customization

app env and config changes
parents 1e1b07b8 951c89de
......@@ -10,9 +10,10 @@ NEXT_PUBLIC_AUTH_URL=__PLACEHOLDER_FOR_NEXT_PUBLIC_AUTH_URL__
NEXT_PUBLIC_NETWORK_NAME=__PLACEHOLDER_FOR_NEXT_PUBLIC_NETWORK_NAME__
NEXT_PUBLIC_NETWORK_SHORT_NAME=__PLACEHOLDER_FOR_NEXT_PUBLIC_NETWORK_SHORT_NAME__
NEXT_PUBLIC_NETWORK_LOGO=__PLACEHOLDER_FOR_NEXT_PUBLIC_NETWORK_LOGO__
NEXT_PUBLIC_NETWORK_SMALL_LOGO=__PLACEHOLDER_FOR_NEXT_PUBLIC_NETWORK_SMALL_LOGO__
NEXT_PUBLIC_NETWORK_LOGO_DARK=__PLACEHOLDER_FOR_NEXT_PUBLIC_NETWORK_LOGO_DARK__
NEXT_PUBLIC_NETWORK_ICON=__PLACEHOLDER_FOR_NEXT_PUBLIC_NETWORK_ICON__
NEXT_PUBLIC_NETWORK_ICON_DARK=__PLACEHOLDER_FOR_NEXT_PUBLIC_NETWORK_ICON_DARK__
NEXT_PUBLIC_NETWORK_ASSETS_PATHNAME=__PLACEHOLDER_FOR_NEXT_PUBLIC_NETWORK_ASSETS_PATHNAME__
NEXT_PUBLIC_NETWORK_TYPE=__PLACEHOLDER_FOR_NEXT_PUBLIC_NETWORK_TYPE__
NEXT_PUBLIC_NETWORK_ID=__PLACEHOLDER_FOR_NEXT_PUBLIC_NETWORK_ID__
NEXT_PUBLIC_NETWORK_CURRENCY_NAME=__PLACEHOLDER_FOR_NEXT_PUBLIC_NETWORK_CURRENCY_NAME__
NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL=__PLACEHOLDER_FOR_NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL__
......@@ -36,6 +37,7 @@ NEXT_PUBLIC_MARKETPLACE_SUBMIT_FORM=__PLACEHOLDER_FOR_NEXT_PUBLIC_MARKETPLACE_SU
NEXT_PUBLIC_LOGOUT_URL=__PLACEHOLDER_FOR_NEXT_PUBLIC_LOGOUT_URL__
NEXT_PUBLIC_LOGOUT_RETURN_URL=__PLACEHOLDER_FOR_NEXT_PUBLIC_LOGOUT_RETURN_URL__
NEXT_PUBLIC_HOMEPAGE_CHARTS=__PLACEHOLDER_FOR_NEXT_PUBLIC_HOMEPAGE_CHARTS__
NEXT_PUBLIC_HOMEPAGE_PLATE_TEXT_COLOR=__PLACEHOLDER_FOR_NEXT_PUBLIC_HOMEPAGE_PLATE_TEXT_COLOR__
NEXT_PUBLIC_HOMEPAGE_PLATE_GRADIENT=__PLACEHOLDER_FOR_NEXT_PUBLIC_HOMEPAGE_PLATE_GRADIENT__
NEXT_PUBLIC_HOMEPAGE_SHOW_GAS_TRACKER=__PLACEHOLDER_FOR_NEXT_PUBLIC_HOMEPAGE_SHOW_GAS_TRACKER__
NEXT_PUBLIC_HOMEPAGE_SHOW_AVG_BLOCK_TIME=__PLACEHOLDER_FOR_NEXT_PUBLIC_HOMEPAGE_SHOW_AVG_BLOCK_TIME__
......
/* eslint-disable no-restricted-properties */
import type { FeaturedNetwork, NetworkExplorer, PreDefinedNetwork } from 'types/networks';
import type { NetworkExplorer } from 'types/networks';
import type { ChainIndicatorId } from 'ui/home/indicators/types';
const getEnvValue = (env: string | undefined) => env?.replaceAll('\'', '"');
......@@ -59,9 +59,14 @@ const config = Object.freeze({
env,
isDev,
network: {
type: getEnvValue(process.env.NEXT_PUBLIC_NETWORK_TYPE) as PreDefinedNetwork | undefined,
logo: getEnvValue(process.env.NEXT_PUBLIC_NETWORK_LOGO),
smallLogo: getEnvValue(process.env.NEXT_PUBLIC_NETWORK_SMALL_LOGO),
logo: {
'default': getEnvValue(process.env.NEXT_PUBLIC_NETWORK_LOGO),
dark: getEnvValue(process.env.NEXT_PUBLIC_NETWORK_LOGO_DARK),
},
icon: {
'default': getEnvValue(process.env.NEXT_PUBLIC_NETWORK_ICON),
dark: getEnvValue(process.env.NEXT_PUBLIC_NETWORK_ICON_DARK),
},
name: getEnvValue(process.env.NEXT_PUBLIC_NETWORK_NAME),
id: getEnvValue(process.env.NEXT_PUBLIC_NETWORK_ID),
shortName: getEnvValue(process.env.NEXT_PUBLIC_NETWORK_SHORT_NAME),
......@@ -83,7 +88,7 @@ const config = Object.freeze({
telegram: getEnvValue(process.env.NEXT_PUBLIC_FOOTER_TELEGRAM_LINK),
staking: getEnvValue(process.env.NEXT_PUBLIC_FOOTER_STAKING_LINK),
},
featuredNetworks: parseEnvJson<Array<FeaturedNetwork>>(getEnvValue(process.env.NEXT_PUBLIC_FEATURED_NETWORKS)) || [],
featuredNetworks: getEnvValue(process.env.NEXT_PUBLIC_FEATURED_NETWORKS),
blockScoutVersion: getEnvValue(process.env.NEXT_PUBLIC_BLOCKSCOUT_VERSION),
isAccountSupported: getEnvValue(process.env.NEXT_PUBLIC_IS_ACCOUNT_SUPPORTED) === 'true',
marketplaceConfigUrl: getEnvValue(process.env.NEXT_PUBLIC_MARKETPLACE_CONFIG_URL),
......@@ -119,8 +124,11 @@ const config = Object.freeze({
},
homepage: {
charts: parseEnvJson<Array<ChainIndicatorId>>(getEnvValue(process.env.NEXT_PUBLIC_HOMEPAGE_CHARTS)) || [],
plateGradient: getEnvValue(process.env.NEXT_PUBLIC_HOMEPAGE_PLATE_GRADIENT) ||
'radial-gradient(103.03% 103.03% at 0% 0%, rgba(183, 148, 244, 0.8) 0%, rgba(0, 163, 196, 0.8) 100%)',
plate: {
gradient: getEnvValue(process.env.NEXT_PUBLIC_HOMEPAGE_PLATE_GRADIENT) ||
'radial-gradient(103.03% 103.03% at 0% 0%, rgba(183, 148, 244, 0.8) 0%, rgba(0, 163, 196, 0.8) 100%)',
textColor: getEnvValue(process.env.NEXT_PUBLIC_HOMEPAGE_PLATE_TEXT_COLOR) || 'white',
},
showGasTracker: getEnvValue(process.env.NEXT_PUBLIC_HOMEPAGE_SHOW_GAS_TRACKER) === 'false' ? false : true,
showAvgBlockTime: getEnvValue(process.env.NEXT_PUBLIC_HOMEPAGE_SHOW_AVG_BLOCK_TIME) === 'false' ? false : true,
},
......
# ui config
NEXT_PUBLIC_FEATURED_NETWORKS=[{'title':'Ethereum','url':'https://blockscout.com/eth/mainnet','group':'mainnets','type':'eth_mainnet'},{'title':'Ethereum Classic','url':'https://blockscout.com/etx/mainnet','group':'mainnets','type':'etc_mainnet'},{'title':'Gnosis Chain','url':'https://blockscout.com/xdai/mainnet','group':'mainnets','type':'xdai_mainnet'},{'title':'Astar (EVM)','url':'https://blockscout.com/astar','group':'mainnets','type':'astar'},{'title':'Shiden (EVM)','url':'https://blockscout.com/shiden','group':'mainnets','type':'astar'},{'title':'Klaytn Mainnet (Cypress)','url':'https://klaytn-mainnet.aws-k8s.blockscout.com/','group':'mainnets','type':'klaytn'},{'title':'Goerli','url':'https://blockscout.com/eth/goerli/','group':'testnets','type':'goerli'},{'title':'Optimism Goerli','url':'https://blockscout.com/optimism/goerli/','group':'testnets','type':'optimism_goerli'},{'title':'Optimism Bedrock Alpha','url':'https://blockscout.com/optimism/bedrock-alpha','group':'testnets','type':'optimism_bedrock_alpha'},{'title':'Gnosis Chiado','url':'https://blockscout.com/gnosis/chiado/','group':'testnets','type':'gnosis_chiado'},{'title':'Shibuya (EVM)','url':'https://blockscout.com/shibuya','group':'testnets','type':'shibuya'},{'title':'Optimism Opcraft','url':'https://blockscout.com/optimism/opcraft','group':'other','type':'optimism_opcraft'},{'title':'Optimism on Gnosis Chain','url':'https://blockscout.com/xdai/optimism','group':'other','type':'optimism_gnosis'},{'title':'ARTIS-Σ1','url':'https://blockscout.com/artis/sigma1','group':'other','type':'artis_sigma1'},{'title':'LUKSO L14','url':'https://blockscout.com/lukso/l14','group':'other','type':'lukso_l14'},{'title':'POA','url':'https://blockscout.com/poa/core','group':'other','type':'poa_core'},{'title':'POA Sokol','url':'https://blockscout.com/poa/sokol','group':'other','type':'poa_sokol'}]
NEXT_PUBLIC_FEATURED_NETWORKS=https://raw.githubusercontent.com/blockscout/frontend-configs/dev/configs/featured-networks/eth-goerli.json
NEXT_PUBLIC_NETWORK_EXPLORERS=[{'title':'Anyblock','baseUrl':'https://explorer.anyblock.tools','paths':{'tx':'/ethereum/ethereum/goerli/transaction','address':'/ethereum/ethereum/goerli/address'}},{'title':'Etherscan','baseUrl':'https://goerli.etherscan.io/','paths':{'tx':'/tx','address':'/address'}}]
NEXT_PUBLIC_GRAPHIQL_TRANSACTION=0xf7d4972356e6ae44ae948d0cf19ef2beaf0e574c180997e969a2837da15e349d
......@@ -7,7 +7,8 @@ NEXT_PUBLIC_GRAPHIQL_TRANSACTION=0xf7d4972356e6ae44ae948d0cf19ef2beaf0e574c18099
NEXT_PUBLIC_NETWORK_NAME=Goerli
NEXT_PUBLIC_NETWORK_SHORT_NAME=Goerli
NEXT_PUBLIC_NETWORK_ASSETS_PATHNAME=ethereum
NEXT_PUBLIC_NETWORK_TYPE=goerli
NEXT_PUBLIC_NETWORK_LOGO=https://raw.githubusercontent.com/blockscout/frontend-configs/dev/configs/network-logos/goerli.svg
NEXT_PUBLIC_NETWORK_ICON=https://raw.githubusercontent.com/blockscout/frontend-configs/dev/configs/network-icons/goerli.svg
NEXT_PUBLIC_NETWORK_ID=5
NEXT_PUBLIC_NETWORK_CURRENCY_NAME=Ether
NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL=ETH
......
# ui config
NEXT_PUBLIC_FEATURED_NETWORKS=[{'title':'Göerli','url':'https://eth-goerli.blockscout.com/','group':'testnets','type':'goerli'},{'title':'Base Göerli','url':'https://l2-goerli.blockscout.com/','group':'testnets','type':'base_goerli'}]
NEXT_PUBLIC_FEATURED_NETWORKS=https://raw.githubusercontent.com/blockscout/frontend-configs/dev/configs/featured-networks/base-goerli.json
NEXT_PUBLIC_NETWORK_EXPLORERS=
NEXT_PUBLIC_HOMEPAGE_PLATE_GRADIENT=linear-gradient(136.9deg,rgb(107 94 236) 1.5%,rgb(0 82 255) 56.84%,rgb(82 62 231) 98.54%)
NEXT_PUBLIC_GRAPHIQL_TRANSACTION=0x4a0ed8ddf751a7cb5297f827699117b0f6d21a0b2907594d300dc9fed75c7e62
......@@ -8,7 +8,8 @@ NEXT_PUBLIC_GRAPHIQL_TRANSACTION=0x4a0ed8ddf751a7cb5297f827699117b0f6d21a0b29075
NEXT_PUBLIC_NETWORK_NAME=Base Göerli
NEXT_PUBLIC_NETWORK_SHORT_NAME=Base
NEXT_PUBLIC_NETWORK_ASSETS_PATHNAME=optimism
NEXT_PUBLIC_NETWORK_TYPE=base_goerli
NEXT_PUBLIC_NETWORK_LOGO=https://raw.githubusercontent.com/blockscout/frontend-configs/dev/configs/network-logos/base.svg
NEXT_PUBLIC_NETWORK_ICON=https://raw.githubusercontent.com/blockscout/frontend-configs/dev/configs/network-icons/base.svg
NEXT_PUBLIC_NETWORK_ID=420
NEXT_PUBLIC_NETWORK_CURRENCY_NAME=Ether
NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL=ETH
......
......@@ -11,19 +11,15 @@ NEXT_PUBLIC_FOOTER_TELEGRAM_LINK=https://t.me/poa_network
NEXT_PUBLIC_FOOTER_STAKING_LINK=https://duneanalytics.com/maxaleks/xdai-staking
NEXT_PUBLIC_FOOTER_GITHUB_LINK=https://github.com/blockscout/blockscout
NEXT_PUBLIC_FOOTER_TWITTER_LINK=https://www.twitter.com/blockscoutcom
NEXT_PUBLIC_FEATURED_NETWORKS=[{'title':'Gnosis Chain','url':'https://blockscout.com/xdai/mainnet','group':'mainnets','type':'xdai_mainnet'},{'title':'Optimism on Gnosis Chain','url':'https://blockscout.com/xdai/optimism','group':'mainnets','type':'xdai_optimism'},{'title':'Arbitrum on xDai','url':'https://blockscout.com/xdai/aox','group':'mainnets'},{'title':'Ethereum','url':'https://blockscout.com/eth/mainnet','group':'mainnets','type':'eth_mainnet'},{'title':'Ethereum Classic','url':'https://blockscout.com/etx/mainnet','group':'mainnets','type':'etc_mainnet'},{'title':'POA','url':'https://blockscout.com/poa/core','group':'mainnets','type':'poa_core'},{'title':'RSK','url':'https://blockscout.com/rsk/mainnet','group':'mainnets','type':'rsk_mainnet'},{'title':'Gnosis Chain Testnet','url':'https://blockscout.com/xdai/testnet','group':'testnets','type':'xdai_testnet'},{'title':'POA Sokol','url':'https://blockscout.com/poa/sokol','group':'testnets','type':'poa_sokol'},{'title':'ARTIS Σ1','url':'https://blockscout.com/artis/sigma1','group':'other','type':'artis_sigma1'},{'title':'LUKSO L14','url':'https://blockscout.com/lukso/l14','group':'other','type':'lukso_l14'},{'title':'Astar','url':'https://blockscout.com/astar','group':'other','type':'astar'}]
NEXT_PUBLIC_FEATURED_NETWORKS=https://raw.githubusercontent.com/blockscout/frontend-configs/dev/configs/featured-networks/eth-goerli.json
NEXT_PUBLIC_NETWORK_EXPLORERS=[{'title':'Anyblock','baseUrl':'https://explorer.anyblock.tools','paths':{'tx':'/ethereum/poa/core/transaction','address':'/ethereum/poa/core/address'}}]
NEXT_PUBLIC_HOMEPAGE_CHARTS=['daily_txs','coin_price','market_cup']
NEXT_PUBLIC_HOMEPAGE_PLATE_GRADIENT=radial-gradient(at 12% 37%, hsla(324,73%,67%,1) 0px, transparent 50%), radial-gradient(at 62% 14%, hsla(256,87%,73%,1) 0px, transparent 50%), radial-gradient(at 84% 80%, hsla(128,75%,73%,1) 0px, transparent 50%), radial-gradient(at 57% 46%, hsla(285,63%,72%,1) 0px, transparent 50%), radial-gradient(at 37% 30%, hsla(174,70%,61%,1) 0px, transparent 50%), radial-gradient(at 15% 86%, hsla(350,65%,70%,1) 0px, transparent 50%), radial-gradient(at 67% 57%, hsla(14,95%,76%,1) 0px, transparent 50%)
#NEXT_PUBLIC_NETWORK_LOGO=https://placekitten.com/300/60
#NEXT_PUBLIC_NETWORK_SMALL_LOGO=https://placekitten.com/300/300
NEXT_PUBLIC_API_SPEC_URL=https://raw.githubusercontent.com/blockscout/blockscout-api-v2-swagger/main/swagger.yaml
# network config
NEXT_PUBLIC_NETWORK_NAME=POA
NEXT_PUBLIC_NETWORK_SHORT_NAME=POA
NEXT_PUBLIC_NETWORK_ASSETS_PATHNAME=poa
NEXT_PUBLIC_NETWORK_TYPE=poa_core
NEXT_PUBLIC_NETWORK_ID=99
NEXT_PUBLIC_NETWORK_CURRENCY_NAME=POA
NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL=POA
......
# ui config
NEXT_PUBLIC_FOOTER_TELEGRAM_LINK=https://t.me/poa_network
NEXT_PUBLIC_FOOTER_STAKING_LINK=https://duneanalytics.com/maxaleks/xdai-staking
NEXT_PUBLIC_FEATURED_NETWORKS=[{'title':'Gnosis Chain','url':'https://blockscout.com/xdai/mainnet','group':'mainnets','type':'xdai_mainnet'},{'title':'Optimism on Gnosis Chain','url':'https://blockscout.com/xdai/optimism','group':'mainnets','type':'xdai_optimism'},{'title':'Arbitrum on xDai','url':'https://blockscout.com/xdai/aox','group':'mainnets'},{'title':'Ethereum','url':'https://blockscout.com/eth/mainnet','group':'mainnets','type':'eth_mainnet'},{'title':'Ethereum Classic','url':'https://blockscout.com/etx/mainnet','group':'mainnets','type':'etc_mainnet'},{'title':'POA','url':'https://blockscout.com/poa/core','group':'mainnets','type':'poa_core'},{'title':'RSK','url':'https://blockscout.com/rsk/mainnet','group':'mainnets','type':'rsk_mainnet'},{'title':'Gnosis Chain Testnet','url':'https://blockscout.com/xdai/testnet','group':'testnets','type':'xdai_testnet'},{'title':'POA Sokol','url':'https://blockscout.com/poa/sokol','group':'testnets','type':'poa_sokol'},{'title':'ARTIS Σ1','url':'https://blockscout.com/artis/sigma1','group':'other','type':'artis_sigma1'},{'title':'LUKSO L14','url':'https://blockscout.com/lukso/l14','group':'other','type':'lukso_l14'},{'title':'Astar','url':'https://blockscout.com/astar','group':'other','type':'astar'}]
NEXT_PUBLIC_FEATURED_NETWORKS=https://raw.githubusercontent.com/blockscout/frontend-configs/dev/configs/featured-networks/eth-goerli.json
NEXT_PUBLIC_NETWORK_EXPLORERS=[{'title':'Anyblock','baseUrl':'https://explorer.anyblock.tools','paths':{'tx':'/ethereum/poa/core/transaction','address':'/ethereum/poa/core/address'}}]
NEXT_PUBLIC_HOMEPAGE_CHARTS=['daily_txs','coin_price','market_cup']
NEXT_PUBLIC_HOMEPAGE_PLATE_GRADIENT=radial-gradient(at 12% 37%, hsla(324,73%,67%,1) 0px, transparent 50%), radial-gradient(at 62% 14%, hsla(256,87%,73%,1) 0px, transparent 50%), radial-gradient(at 84% 80%, hsla(128,75%,73%,1) 0px, transparent 50%), radial-gradient(at 57% 46%, hsla(285,63%,72%,1) 0px, transparent 50%), radial-gradient(at 37% 30%, hsla(174,70%,61%,1) 0px, transparent 50%), radial-gradient(at 15% 86%, hsla(350,65%,70%,1) 0px, transparent 50%), radial-gradient(at 67% 57%, hsla(14,95%,76%,1) 0px, transparent 50%)
#NEXT_PUBLIC_NETWORK_LOGO=https://placekitten.com/300/60
#NEXT_PUBLIC_NETWORK_SMALL_LOGO=https://placekitten.com/300/300
#NEXT_PUBLIC_HOMEPAGE_PLATE_GRADIENT='linear-gradient(136.9deg, #235643 1.5%, #16191E 77.77%)'
#NEXT_PUBLIC_HOMEPAGE_PLATE_TEXT_COLOR='#DCFE76'
NEXT_PUBLIC_NETWORK_LOGO=https://raw.githubusercontent.com/blockscout/frontend-configs/dev/configs/network-logos/poa.svg
NEXT_PUBLIC_NETWORK_ICON=https://raw.githubusercontent.com/blockscout/frontend-configs/dev/configs/network-icons/poa.svg
# network config
NEXT_PUBLIC_NETWORK_NAME=POA
NEXT_PUBLIC_NETWORK_SHORT_NAME=POA
NEXT_PUBLIC_NETWORK_ASSETS_PATHNAME=poa
NEXT_PUBLIC_NETWORK_TYPE=poa_core
NEXT_PUBLIC_NETWORK_ID=99
NEXT_PUBLIC_NETWORK_CURRENCY_NAME=POA
NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL=POA
......
......@@ -9,16 +9,37 @@ NEXT_PUBLIC_APP_ENV=testing
NEXT_PUBLIC_BLOCKSCOUT_VERSION=v4.1.7-beta
NEXT_PUBLIC_FOOTER_GITHUB_LINK=https://github.com/blockscout/blockscout
NEXT_PUBLIC_FOOTER_TWITTER_LINK=https://www.twitter.com/blockscoutcom
NEXT_PUBLIC_FOOTER_TELEGRAM_LINK=https://t.me/poa_network
NEXT_PUBLIC_FOOTER_STAKING_LINK=https://duneanalytics.com/maxaleks/xdai-staking
NEXT_PUBLIC_NETWORK_EXPLORERS=[{'title':'Anyblock','baseUrl':'https://explorer.anyblock.tools','paths':{'tx':'/ethereum/poa/core/transaction','address':'/ethereum/poa/core/address'}}]
NEXT_PUBLIC_HOMEPAGE_CHARTS=['daily_txs','coin_price','market_cup']
NEXT_PUBLIC_HOMEPAGE_SHOW_AVG_BLOCK_TIME=true
NEXT_PUBLIC_HOMEPAGE_SHOW_GAS_TRACKER=true
NEXT_PUBLIC_FEATURED_NETWORKS=
NEXT_PUBLIC_NETWORK_LOGO=
NEXT_PUBLIC_NETWORK_SMALL_LOGO=
NEXT_PUBLIC_NETWORK_RPC_URL=https://core.poa.network
NEXT_PUBLIC_NETWORK_LOGO_DARK=
NEXT_PUBLIC_NETWORK_ICON=
NEXT_PUBLIC_NETWORK_ICON_DARK=
NEXT_PUBLIC_NETWORK_RPC_URL=https://localhost:1111
NEXT_PUBLIC_IS_TESTNET=true
NEXT_PUBLIC_MARKETPLACE_CONFIG_URL=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/marketplace/eth-goerli.json
NEXT_PUBLIC_MARKETPLACE_CONFIG_URL=https://localhost:3000/marketplace-config.json
NEXT_PUBLIC_IS_L2_NETWORK=false
# network config
NEXT_PUBLIC_NETWORK_NAME=Blockscout
NEXT_PUBLIC_NETWORK_SHORT_NAME=Blockscout
NEXT_PUBLIC_NETWORK_ASSETS_PATHNAME=ethereum
NEXT_PUBLIC_NETWORK_ID=1
NEXT_PUBLIC_NETWORK_CURRENCY_NAME=Ether
NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL=ETH
NEXT_PUBLIC_NETWORK_CURRENCY_DECIMALS=18
NEXT_PUBLIC_NETWORK_TOKEN_ADDRESS=
NEXT_PUBLIC_IS_ACCOUNT_SUPPORTED=true
NEXT_PUBLIC_NETWORK_VERIFICATION_TYPE=validation
NEXT_PUBLIC_MARKETPLACE_SUBMIT_FORM=https://localhost:3000/marketplace-submit-form
# api config
NEXT_PUBLIC_API_HOST=blockscout.com
NEXT_PUBLIC_STATS_API_HOST=https://stats-test.aws-k8s.blockscout.com
NEXT_PUBLIC_API_HOST=https://localhost:3003
NEXT_PUBLIC_STATS_API_HOST=https://localhost:3004
NEXT_PUBLIC_RE_CAPTCHA_APP_SITE_KEY=xxx
NEXT_PUBLIC_API_BASE_PATH=/
......@@ -349,8 +349,6 @@ frontend:
_default: Base
NEXT_PUBLIC_NETWORK_ASSETS_PATHNAME:
_default: optimism
NEXT_PUBLIC_NETWORK_TYPE:
_default: base_goerli
NEXT_PUBLIC_NETWORK_ID:
_default: 420
NEXT_PUBLIC_NETWORK_CURRENCY_NAME:
......@@ -363,8 +361,12 @@ frontend:
_default: validation
NEXT_PUBLIC_IS_ACCOUNT_SUPPORTED:
_default: 'true'
NEXT_PUBLIC_NETWORK_LOGO:
_default: https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-logos/base.svg
NEXT_PUBLIC_NETWORK_ICON:
_default: https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-icons/base.svg
NEXT_PUBLIC_FEATURED_NETWORKS:
_default: "[{'title':'Göerli','url':'https://eth-goerli.blockscout.com/','group':'testnets','type':'goerli'},{'title':'Base Göerli','url':'https://l2-goerli.blockscout.com/','group':'testnets','type':'base_goerli'}]"
_default: https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/featured-networks/base-goerli.json
NEXT_PUBLIC_API_HOST:
_default: blockscout-optimism-goerli.test.aws-k8s.blockscout.com
NEXT_PUBLIC_APP_HOST:
......
......@@ -306,7 +306,7 @@ frontend:
environment:
# ui config
NEXT_PUBLIC_FEATURED_NETWORKS:
_default: "[{'title':'Gnosis Chain','url':'https://blockscout.com/xdai/mainnet','group':'mainnets','type':'xdai_mainnet'},{'title':'Optimism on Gnosis Chain','url':'https://blockscout.com/xdai/optimism','group':'mainnets','type':'xdai_optimism'},{'title':'Arbitrum on xDai','url':'https://blockscout.com/xdai/aox','group':'mainnets'},{'title':'Ethereum','url':'https://blockscout.com/eth/mainnet','group':'mainnets','type':'eth_mainnet'},{'title':'Ethereum Classic','url':'https://blockscout.com/etx/mainnet','group':'mainnets','type':'etc_mainnet'},{'title':'POA','url':'https://blockscout.com/poa/core','group':'mainnets','type':'poa_core'},{'title':'RSK','url':'https://blockscout.com/rsk/mainnet','group':'mainnets','type':'rsk_mainnet'},{'title':'Gnosis Chain Testnet','url':'https://blockscout.com/xdai/testnet','group':'testnets','type':'xdai_testnet'},{'title':'POA Sokol','url':'https://blockscout.com/poa/sokol','group':'testnets','type':'poa_sokol'},{'title':'ARTIS Σ1','url':'https://blockscout.com/artis/sigma1','group':'other','type':'artis_sigma1'},{'title':'LUKSO L14','url':'https://blockscout.com/lukso/l14','group':'other','type':'lukso_l14'},{'title':'Astar','url':'https://blockscout.com/astar','group':'other','type':'astar'}]"
_default: https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/featured-networks/eth-goerli.json
NEXT_PUBLIC_NETWORK_EXPLORERS:
_default: "[{'title':'Anyblock','baseUrl':'https://explorer.anyblock.tools','paths':{'tx':'/ethereum/ethereum/goerli/transaction','address':'/ethereum/ethereum/goerli/address'}},{'title':'Etherscan','baseUrl':'https://goerli.etherscan.io/','paths':{'tx':'/tx','address':'/address'}}]"
# network config
......@@ -316,8 +316,10 @@ frontend:
_default: Goerli
NEXT_PUBLIC_NETWORK_ASSETS_PATHNAME:
_default: ethereum
NEXT_PUBLIC_NETWORK_TYPE:
_default: goerli
NEXT_PUBLIC_NETWORK_LOGO:
_default: https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-logos/goerli.svg
NEXT_PUBLIC_NETWORK_ICON:
_default: https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-icons/goerli.svg
NEXT_PUBLIC_NETWORK_ID:
_default: 5
NEXT_PUBLIC_NETWORK_CURRENCY_NAME:
......
......@@ -73,8 +73,6 @@ frontend:
_default: Base
NEXT_PUBLIC_NETWORK_ASSETS_PATHNAME:
_default: optimism
NEXT_PUBLIC_NETWORK_TYPE:
_default: base_goerli
NEXT_PUBLIC_NETWORK_ID:
_default: 420
NEXT_PUBLIC_NETWORK_CURRENCY_NAME:
......@@ -87,8 +85,12 @@ frontend:
_default: validation
NEXT_PUBLIC_IS_ACCOUNT_SUPPORTED:
_default: 'true'
NEXT_PUBLIC_NETWORK_LOGO:
_default: https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-logos/base.svg
NEXT_PUBLIC_NETWORK_ICON:
_default: https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-icons/base.svg
NEXT_PUBLIC_FEATURED_NETWORKS:
_default: "[{'title':'Göerli','url':'https://eth-goerli.blockscout.com/','group':'testnets','type':'goerli'},{'title':'Base Göerli','url':'https://l2-goerli.blockscout.com/','group':'testnets','type':'base_goerli'}]"
_default: https://raw.githubusercontent.com/blockscout/frontend-configs/dev/configs/featured-networks/base-goerli.json
NEXT_PUBLIC_API_HOST:
_default: blockscout-optimism-goerli.test.aws-k8s.blockscout.com
review: blockscout-optimism-goerli.test.aws-k8s.blockscout.com
......
......@@ -72,8 +72,10 @@ frontend:
_default: Goerli
NEXT_PUBLIC_NETWORK_ASSETS_PATHNAME:
_default: ethereum
NEXT_PUBLIC_NETWORK_TYPE:
_default: goerli
NEXT_PUBLIC_NETWORK_LOGO:
_default: https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-logos/goerli.svg
NEXT_PUBLIC_NETWORK_ICON:
_default: https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-icons/goerli.svg
NEXT_PUBLIC_NETWORK_ID:
_default: 5
NEXT_PUBLIC_NETWORK_CURRENCY_NAME:
......@@ -87,7 +89,7 @@ frontend:
NEXT_PUBLIC_IS_ACCOUNT_SUPPORTED:
_default: 'true'
NEXT_PUBLIC_FEATURED_NETWORKS:
_default: "[{'title':'Gnosis Chain','url':'https://blockscout.com/xdai/mainnet','group':'mainnets','type':'xdai_mainnet'},{'title':'Optimism on Gnosis Chain','url':'https://blockscout.com/xdai/optimism','group':'mainnets','type':'xdai_optimism'},{'title':'Arbitrum on xDai','url':'https://blockscout.com/xdai/aox','group':'mainnets'},{'title':'Ethereum','url':'https://blockscout.com/eth/mainnet','group':'mainnets','type':'eth_mainnet'},{'title':'Ethereum Classic','url':'https://blockscout.com/etx/mainnet','group':'mainnets','type':'etc_mainnet'},{'title':'POA','url':'https://blockscout.com/poa/core','group':'mainnets','type':'poa_core'},{'title':'RSK','url':'https://blockscout.com/rsk/mainnet','group':'mainnets','type':'rsk_mainnet'},{'title':'Gnosis Chain Testnet','url':'https://blockscout.com/xdai/testnet','group':'testnets','type':'xdai_testnet'},{'title':'POA Sokol','url':'https://blockscout.com/poa/sokol','group':'testnets','type':'poa_sokol'},{'title':'ARTIS Σ1','url':'https://blockscout.com/artis/sigma1','group':'other','type':'artis_sigma1'},{'title':'LUKSO L14','url':'https://blockscout.com/lukso/l14','group':'other','type':'lukso_l14'},{'title':'Astar','url':'https://blockscout.com/astar','group':'other','type':'astar'}]"
_default: https://raw.githubusercontent.com/blockscout/frontend-configs/dev/configs/featured-networks/eth-goerli.json
NEXT_PUBLIC_API_HOST:
_default: blockscout.com
review: blockscout-main.test.aws-k8s.blockscout.com
......
......@@ -10,7 +10,6 @@ The app instance could be customized by passing following variables to NodeJS en
| --- | --- | --- | --- | --- | --- |
| NEXT_PUBLIC_NETWORK_NAME | `string` | Displayed name of the network | yes | - | `Gnosis Chain` |
| NEXT_PUBLIC_NETWORK_SHORT_NAME | `string` | Used for SEO attributes (page title and description) | - | - | `OoG` |
| NEXT_PUBLIC_NETWORK_TYPE | `string` | Network type (used for matching pre-defined assets, e.g network logo and icon, which are stored in the project). See all possible values here | - | - | `xdai_mainnet` |
| NEXT_PUBLIC_NETWORK_ID | `number` | Chain id, see [https://chainlist.org](https://chainlist.org) for the reference | yes | - | `99` |
| NEXT_PUBLIC_NETWORK_RPC_URL | `string` | Chain server RPC url, see [https://chainlist.org](https://chainlist.org) for the reference. If not provided, some functionality of the explorer, related to smart contracts interaction and third-party apps integration, will be unavailable | - | - | `https://core.poa.network` |
| NEXT_PUBLIC_NETWORK_CURRENCY_NAME | `string` | Network currency name | - | - | `Ether` |
......@@ -18,8 +17,10 @@ The app instance could be customized by passing following variables to NodeJS en
| NEXT_PUBLIC_NETWORK_CURRENCY_DECIMALS | `string` | Network currency decimals | - | `18` | `6` |
| NEXT_PUBLIC_NETWORK_TOKEN_ADDRESS | `string` | Address of network's native token | - | - | `0x029a799563238d0e75e20be2f4bda0ea68d00172` |
| NEXT_PUBLIC_NETWORK_ASSETS_PATHNAME | `string` | Network name for constructing url of token logos according to template `https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/${assetsNamePath}/assets/${tokenAddress}/logo.png`. It should match network name in TrustWallet assets repo, see the full list [here](https://github.com/trustwallet/assets/tree/master/blockchains) | - | - | `ethereum` |
| NEXT_PUBLIC_NETWORK_LOGO | `string` | Network logo; if not provided, will fallback to logo predefined in the project; if the project doesn't have logo for such network then the common placeholder will be shown; *Note* that logo height should be 20px and width less than 120px | - | - | `https://placekitten.com/240/40` |
| NEXT_PUBLIC_NETWORK_SMALL_LOGO | `string` | Small version of network logo; if not provided, will fallback to logo predefined in the project; if the project doesn't have logo for such network then the common placeholder will be shown; *Note* that logo should have square format (e.g 60px by 60px) | - | - | `https://placekitten.com/60/60` |
| NEXT_PUBLIC_NETWORK_LOGO | `string` | Network logo; if not provided, placeholder will be shown; *Note* the logo height should be 20px and width less than 120px | - | - | `https://placekitten.com/240/40` |
| NEXT_PUBLIC_NETWORK_LOGO_DARK | `string` | Network logo for dark color mode; if not provided, **inverted** regular logo will be used instead | - | - | `https://placekitten.com/240/40` |
| NEXT_PUBLIC_NETWORK_ICON | `string` | Network icon; used as a replacement for regular network logo when nav bar is collapsed; if not provided, placeholder will be shown; *Note* the icon size should be at least 60px by 60px | - | - | `https://placekitten.com/60/60` |
| NEXT_PUBLIC_NETWORK_ICON_DARK | `string` | Network icon for dark color mode; if not provided, **inverted** regular icon will be used instead | - | - | `https://placekitten.com/60/60` |
| NEXT_PUBLIC_IS_ACCOUNT_SUPPORTED | `boolean` | Set to true if network has account feature | - | `false` | `true` |
| NEXT_PUBLIC_IS_TESTNET | `boolean`| Set to true if network is testnet | - | `false` | `true` |
......@@ -27,7 +28,7 @@ The app instance could be customized by passing following variables to NodeJS en
| Variable | Type| Description | Is required | Default value | Example value |
| --- | --- | --- | --- | --- | --- |
| NEXT_PUBLIC_FEATURED_NETWORKS | `Array<FeaturedNetwork>` where `FeaturedNetwork` can have following [properties](#featured-network-configuration-properties) | Configuration of featured networks that will be shown in the network menu | - | - | `[{'title':'Gnosis Chain','url':'https://blockscout.com/xdai/mainnet','group':'mainnets'}]` |
| NEXT_PUBLIC_FEATURED_NETWORKS | `string` | URL of configuration file (`.json` format only) which contains list of featured networks that will be shown in the network menu. See [below](#featured-network-configuration-properties) list of available properties for particular network | - | - | `https://example.com/featured_networks_config.json` |
| NEXT_PUBLIC_BLOCKSCOUT_VERSION | `string` | Current running version of Blockscout (used to display link to release in the footer) | - | - | `v.5.1.0-beta`
| NEXT_PUBLIC_FOOTER_GITHUB_LINK | `string` | Link to Github in the footer | - | - | `https://github.com/blockscout/blockscout` |
| NEXT_PUBLIC_FOOTER_TWITTER_LINK | `string` | Link to Twitter in the footer | - | - | `https://www.twitter.com/blockscoutcom` |
......@@ -41,6 +42,7 @@ The app instance could be customized by passing following variables to NodeJS en
| NEXT_PUBLIC_LOGOUT_URL | `string` | Account logout url. Required if account is supported for the app instance. | - | - | `https://blockscoutcom.us.auth0.com/v2/logout` |
| NEXT_PUBLIC_LOGOUT_RETURN_URL | `string` | Account logout return url. Required if account is supported for the app instance. | - | - | `https://blockscout.com/poa/core/auth/logout` |
| NEXT_PUBLIC_HOMEPAGE_CHARTS | `Array<'daily_txs' \| 'coin_price' \| 'market_cup'>` | List of charts displayed on the home page | - | - | `['daily_txs','coin_price','market_cup']` |
| NEXT_PUBLIC_HOMEPAGE_PLATE_TEXT_COLOR | `string` | Text color of the hero plate on the homepage | `#FFFFFF` | `'#DCFE76'` |
| NEXT_PUBLIC_HOMEPAGE_PLATE_GRADIENT | `string` | Gradient value for hero plate on the homepage | - | `radial-gradient(103.03% 103.03% at 0% 0%, rgba(183, 148, 244, 0.8) 0%, rgba(0, 163, 196, 0.8) 100%)` | `radial-gradient(at 15% 86%, hsla(350,65%,70%,1) 0px, transparent 50%), radial-gradient(at 72% 57%, hsla(14,95%,76%,1) 0px, transparent 50%)` |
| NEXT_PUBLIC_HOMEPAGE_SHOW_GAS_TRACKER | `boolean` | Set to false if network doesn't have gas tracker | - | `true` | `false` |
| NEXT_PUBLIC_HOMEPAGE_SHOW_AVG_BLOCK_TIME | `boolean` | Set to false if average block time is useless for the network | - | `true` | `false` |
......@@ -88,9 +90,9 @@ For each application, you need to specify the `MarketplaceCategoryId` to which i
| --- | --- | --- | --- | --- | --- |
| title | `string` | Displayed name of the network | yes | - | `Gnosis Chain` |
| url | `string` | Network explorer main page url | yes | - | `https://blockscout.com/xdai/mainnet` |
| group | `mainnets \| testnets \| other` | Indicates in which tab network appears in the menu | yes | - | `mainnets` |
| icon | `string` | Network icon; if not provided, will fallback to icon predefined in the project; if the project doesn't have icon for such network then the common placeholder will be shown; *Note* that icon size should be at least 30px by 30px | - | - | `https://placekitten.com/60/60` |
| type | `string` | Network type (used for matching pre-defined network icon, which is stored in the project). See all possible values here | - | - | `xdai_mainnet` |
| group | `Mainnets \| Testnets \| Other` | Indicates in which tab network appears in the menu | yes | - | `Mainnets` |
| icon | `string` | Network icon; if not provided, the common placeholder will be shown; *Note* that icon size should be at least 60px by 60px | - | - | `https://placekitten.com/60/60` |
| isActive | `boolean` | Pass `true` if item should be shonw as active in the menu | - | - | `true` |
### Network explorer configuration properties
......
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30">
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.461 4H4v5.176h8.461V4ZM26 4h-8.462v5.176H26V4Zm0 12.51h-5.077v4.313h-3.385V26H26v-9.49Zm-16.923 0H4V26h8.461v-5.177H9.077V16.51Z" fill="#48A9A6"/>
</svg>
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30">
<path d="m4 15.793 7.071-6.472M4 15.793l7.857 4.921M4 15.793 8.15 5.415M4 15.793l6.226 8.716m.845-15.188L19.358 5m-8.287 4.321-2.92-3.906M19.358 5l2.076 8.643M19.358 5 26 13.302M19.358 5l-11.207.415m13.283 8.228v10.036m0-10.036L26 13.302m-4.566 10.377-9.577-2.965m9.577 2.965-11.208.83m11.208-.83L26 13.302m-14.143 7.412-1.63 3.795m7.471-13.283h-5.396l3.32 3.321-3.32 3.736h5.396" stroke="#129C6B" stroke-width="1.4" stroke-linejoin="round"/>
</svg>
<svg viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.978 26C21.066 26 26 21.075 26 15S21.066 4 14.978 4C9.29 4 4.608 8.3 4.02 13.821h14.502v2.161H4C4.498 21.597 9.223 26 14.978 26Z" fill="#2151F5"/>
</svg>
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30">
<rect x="4" y="4" width="22" height="22" rx="11" fill="#328332"/>
<path opacity=".6" d="M10.325 15.703c1.714.91 3.503 1.862 4.884 2.6l4.843-2.6a2325.737 2325.737 0 0 1-4.843 7.175c-1.632-2.396-3.433-5.039-4.884-7.175Zm.187-.72 4.702-2.508 4.641 2.49-4.638 2.513-4.706-2.494Zm4.697-3.313-4.884 2.571 4.863-7.119 4.864 7.135-4.843-2.586Z" fill="#fff"/>
<path opacity=".7" d="m15.209 18.303 4.843-2.6c-1.753 2.605-4.843 7.175-4.843 7.175v-4.575Zm.005-5.829 4.641 2.492-4.638 2.512-.003-5.004Zm-.005-.803-.021-4.549 4.864 7.135-4.843-2.586Z" fill="#fff"/>
<path opacity=".7" d="m10.512 14.984 4.703.386 4.64-.402-4.638 2.512-4.705-2.496Z" fill="#fff"/>
<path d="m15.214 15.37 4.642-.402-4.639 2.512-.003-2.11Z" fill="#fff"/>
</svg>
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30">
<rect x="4" y="4" width="22" height="22" rx="11" fill="#627EEA"/>
<path d="M15.224 12.912V6.998c-.01 0-.015.004-.022.009a.07.07 0 0 1-.049.016c-.186.364-.384.715-.585 1.072l-.24.426c-.378.66-.755 1.345-1.133 2.03-.202.372-.41.743-.619 1.115-.204.364-.409.73-.608 1.094a87.06 87.06 0 0 1-.578 1.028c-.194.343-.389.686-.578 1.028-.034.063-.07.119-.104.175a4.41 4.41 0 0 0-.108.18h.024c.014.016.02.013.027.007.005-.003.01-.006.02-.006a8.69 8.69 0 0 0 .26-.127c.088-.045.176-.09.259-.127.225-.121.428-.219.63-.316l.03-.014.779-.381.637-.305.778-.38c.166-.1.345-.183.517-.263l.144-.067c.085-.04.164-.079.243-.118.075-.037.149-.074.229-.111.024 0 .047-.025.047-.05Zm-.021 10.153c.005.002.011.002.021.002V19.08c0-.025 0-.051-.024-.051a5.308 5.308 0 0 0-.188-.114c-.065-.038-.13-.076-.189-.114a68.01 68.01 0 0 0-1.099-.705c-.375-.237-.75-.474-1.119-.717a140.9 140.9 0 0 0-.967-.61c-.324-.202-.649-.405-.967-.608-.012 0-.018-.007-.024-.013-.006-.006-.011-.012-.023-.012 0 .012.006.018.011.025.006.006.012.012.012.025l.354.533c.285.453.58.895.873 1.333.166.25.332.5.495.749l1.416 2.132.674 1.02c.237.36.474.72.718 1.087.014.015.02.021.026.024Z" fill="#fff"/>
<path d="M15.22 6.933v8.292h4.62l-4.62-8.292Zm-4.62 8.195 4.62-2.217v5.206l-4.62-2.989Zm4.62 3.953v3.953l4.53-6.749-4.53 2.796Z" fill="#C0CBF6"/>
<path d="M15.22 18.117v-5.206l4.62 2.314-4.62 2.892Z" fill="#8197EE"/>
</svg>
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30">
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.809 9.496c.034.03.062.054.088.079.276.268.55.538.83.803.064.06.064.1.019.168-.587.888-.8 1.861-.605 2.892.263 1.383 1.068 2.391 2.383 2.998.776.36 1.6.451 2.447.326a4.14 4.14 0 0 0 1.588-.578c.08-.05.125-.044.19.02.715.703 1.435 1.401 2.149 2.104.078.078.12.087.204.004.816-.797 1.639-1.589 2.455-2.386.09-.088.146-.103.264-.034.713.415 1.491.582 2.322.544 1.65-.074 3.158-1.191 3.67-2.724.387-1.161.243-2.263-.388-3.311-.041-.069-.045-.11.018-.17.23-.214.454-.435.68-.653.021-.02.045-.038.067-.058a10.323 10.323 0 0 1-1.13 13.055c-4.03 4.223-10.68 4.551-15.12.927-4.51-3.68-5.046-9.723-2.131-14.006Z" fill="#276749"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M22.566 8.13C18.24 3.846 11.203 4.21 7.45 7.96c.022.023.043.049.066.071 2.48 2.407 4.961 4.814 7.44 7.222.07.068.11.06.173-.003.32-.314.643-.626.967-.937 2.091-2.012 4.183-4.025 6.276-6.036.056-.054.126-.095.195-.147Zm-7.53 8.643L5.968 7.961c.022-.028.04-.055.061-.078C7.12 6.71 8.387 5.763 9.865 5.089a11.91 11.91 0 0 1 2.518-.828 12.308 12.308 0 0 1 3.046-.25A12.06 12.06 0 0 1 19.725 5c1.645.711 3.034 1.75 4.212 3.063.069.076.03.11-.023.16l-4.397 4.237-4.386 4.228c-.027.026-.055.05-.095.086Zm-3.899-2.061c-.614.545-1.979.67-2.883-.204-.906-.877-.782-2.174-.187-2.849l3.07 3.053Zm7.943-.21c1.027-.999 2.05-1.993 3.074-2.986.433.469.634 1.666-.115 2.548-.833.981-2.208.976-2.96.438Z" fill="#276749"/>
</svg>
<svg viewBox="0 0 30 30" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M13.822 15.052h-6.9v2.731h3.19l-.01 3.433c-.123.132-.269.24-.43.319-.21.108-.43.197-.656.267a5.653 5.653 0 0 1-1.656.247 3.012 3.012 0 0 1-2.715-1.424 7.746 7.746 0 0 1-.9-4.064v-2.6a9.44 9.44 0 0 1 .265-2.36 5.76 5.76 0 0 1 .715-1.71c.267-.427.63-.785 1.06-1.047.4-.237.858-.36 1.323-.357a2.922 2.922 0 0 1 2.191.735c.526.615.84 1.383.895 2.191h3.627a8.472 8.472 0 0 0-.615-2.458 5.315 5.315 0 0 0-1.304-1.857 5.626 5.626 0 0 0-2.047-1.164 9.016 9.016 0 0 0-2.84-.4 6.71 6.71 0 0 0-2.774.572A6.354 6.354 0 0 0 2.016 7.77a7.927 7.927 0 0 0-1.483 2.659 10.954 10.954 0 0 0-.532 3.557v2.575a11.475 11.475 0 0 0 .51 3.557c.3.97.793 1.871 1.45 2.646a6.251 6.251 0 0 0 2.264 1.65 7.406 7.406 0 0 0 2.966.573c.765.005 1.529-.07 2.278-.221a10.497 10.497 0 0 0 1.914-.58 7.636 7.636 0 0 0 1.477-.8 5.2 5.2 0 0 0 .98-.87l-.018-7.464Zm2.66 2.783c-.01.97.143 1.935.451 2.855.281.837.73 1.61 1.317 2.269a5.985 5.985 0 0 0 2.133 1.5 7.278 7.278 0 0 0 2.88.54 7.194 7.194 0 0 0 2.86-.54 5.935 5.935 0 0 0 2.118-1.5 6.602 6.602 0 0 0 1.311-2.27c.308-.92.46-1.884.45-2.854v-.274a8.673 8.673 0 0 0-.45-2.84 6.532 6.532 0 0 0-1.317-2.27 6.078 6.078 0 0 0-2.125-1.508 7.812 7.812 0 0 0-5.74 0 6.082 6.082 0 0 0-2.12 1.508 6.516 6.516 0 0 0-1.317 2.27 8.647 8.647 0 0 0-.45 2.84v.274Zm3.681-.273a7.394 7.394 0 0 1 .174-1.625c.1-.478.284-.936.541-1.352a2.633 2.633 0 0 1 2.357-1.26c.495-.016.984.1 1.418.337.387.224.712.542.947.923.253.417.435.874.535 1.352a7.4 7.4 0 0 1 .173 1.625v.273a7.613 7.613 0 0 1-.172 1.659c-.1.478-.281.935-.537 1.352a2.622 2.622 0 0 1-2.337 1.255 2.818 2.818 0 0 1-1.424-.338 2.759 2.759 0 0 1-.96-.917 4.143 4.143 0 0 1-.541-1.352 7.6 7.6 0 0 1-.174-1.659v-.274.001Zm-1.747-10.3c.086.196.212.37.37.514.167.147.36.262.57.338.472.164.985.164 1.456 0 .21-.076.404-.19.57-.338.16-.143.285-.318.37-.514a1.594 1.594 0 0 0 0-1.274 1.562 1.562 0 0 0-.37-.52 1.7 1.7 0 0 0-.57-.344 2.206 2.206 0 0 0-1.456 0 1.7 1.7 0 0 0-.57.345 1.562 1.562 0 0 0-.502 1.157c0 .219.045.436.133.637v-.001Zm6.357.013c.086.197.212.374.37.52a1.7 1.7 0 0 0 .57.345c.47.165.984.165 1.456 0a1.7 1.7 0 0 0 .57-.345c.157-.146.283-.323.37-.52.089-.205.134-.427.132-.65a1.561 1.561 0 0 0-.503-1.151 1.761 1.761 0 0 0-.57-.338 2.206 2.206 0 0 0-1.456 0c-.21.075-.403.19-.57.338a1.546 1.546 0 0 0-.503 1.151c-.002.224.043.446.134.65Z" fill="currentColor"/>
</svg>
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30">
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.809 9.496c.034.03.062.054.088.079.276.268.55.538.83.803.064.06.064.1.019.168-.587.888-.8 1.861-.605 2.892.263 1.383 1.068 2.391 2.383 2.998.776.36 1.6.451 2.447.326a4.14 4.14 0 0 0 1.588-.578c.08-.05.125-.044.19.02.715.703 1.435 1.401 2.149 2.104.078.078.12.087.204.004.816-.797 1.639-1.589 2.455-2.386.09-.088.146-.103.264-.034.713.415 1.491.582 2.322.544 1.65-.074 3.158-1.191 3.67-2.724.387-1.161.243-2.263-.388-3.311-.041-.069-.045-.11.018-.17.23-.214.454-.435.68-.653.021-.02.045-.038.067-.058a10.323 10.323 0 0 1-1.13 13.055c-4.03 4.223-10.68 4.551-15.12.927-4.51-3.68-5.046-9.723-2.131-14.006Z" fill="#DD6B20"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M22.566 8.13C18.24 3.846 11.203 4.21 7.45 7.96c.022.023.043.049.066.071 2.48 2.407 4.961 4.814 7.44 7.222.07.068.11.06.173-.003.32-.314.643-.626.967-.937 2.091-2.012 4.183-4.025 6.276-6.036.056-.054.126-.095.195-.147Zm-7.53 8.643L5.968 7.961c.022-.028.04-.055.061-.078C7.12 6.71 8.387 5.763 9.865 5.089a11.91 11.91 0 0 1 2.518-.828 12.308 12.308 0 0 1 3.046-.25A12.06 12.06 0 0 1 19.725 5c1.645.711 3.034 1.75 4.212 3.063.069.076.03.11-.023.16l-4.397 4.237-4.386 4.228c-.027.026-.055.05-.095.086Zm-3.899-2.061c-.614.545-1.979.67-2.883-.204-.906-.877-.782-2.174-.187-2.849l3.07 3.053Zm7.943-.21c1.027-.999 2.05-1.993 3.074-2.986.433.469.634 1.666-.115 2.548-.833.981-2.208.976-2.96.438Z" fill="#DD6B20"/>
</svg>
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 12a2 2 0 0 1 2-2h15.753a2 2 0 0 1 1.92 1.436L26 19.35H14.45l-.825-3.85H4V12Zm0 5.35v-.75h8.8l.55 2.75H6a2 2 0 0 1-2-2Zm4.4-6.25H5.65l1.1 3.3H9.5l-1.1-3.3Zm4.4 0h-2.75l1.1 3.3h2.75l-1.1-3.3Zm6.05 5.5h1.336l.314 1.1h-1.336l-.314-1.1Zm5.186 0H22.7l.314 1.1h1.336l-.314-1.1Zm-7.386-5.5h5.5l1.65 4.95h-5.5l-1.65-4.95Z" fill="#38B2AC"/>
</svg>
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30">
<path fill-rule="evenodd" clip-rule="evenodd" d="M15.502 13.858v1.071a.5.5 0 0 1-.5.5h-3.806a.5.5 0 0 1-.5-.5V6.048c0-.027.021-.048.048-.048h5.634a3.929 3.929 0 1 1 0 7.858h-.876ZM9.07 15.32a.5.5 0 0 1 .848 0l4.994 7.986a.5.5 0 0 1-.424.765H4.501a.5.5 0 0 1-.424-.765L9.07 15.32Zm11.638 9.537c2.875 0 5.206-2.287 5.206-5.107 0-2.821-2.331-5.108-5.206-5.108-2.876 0-5.206 2.287-5.206 5.108 0 2.82 2.33 5.107 5.206 5.107Z" fill="#5B2DA4"/>
</svg>
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30">
<path fill-rule="evenodd" clip-rule="evenodd" d="M15.214 7.4c.749 0 1.288-.574 1.288-1.2S15.962 5 15.214 5s-1.288.574-1.288 1.2.54 1.2 1.288 1.2Zm.534.94a2.282 2.282 0 0 0 1.483-1.1l3.964 2.2a2.131 2.131 0 0 0-.25 1.785l-3.741 2.078c-.33-.64-.847-1.115-1.456-1.299V8.34Zm-1.144 3.667V8.321a2.28 2.28 0 0 1-1.402-1.073L9.239 9.449c.334.525.43 1.171.244 1.776l3.691 2.05c.328-.623.835-1.084 1.43-1.268Zm-1.78 2.343-3.93-2.182a2.319 2.319 0 0 1-1.154.589v4.486c.454.088.88.308 1.209.643l3.913-2.173a3.727 3.727 0 0 1-.039-1.363Zm.45 2.404-3.77 2.093a2.133 2.133 0 0 1-.271 1.714l3.964 2.2a2.28 2.28 0 0 1 1.407-1.082v-3.833c-.537-.166-1.003-.558-1.33-1.092Zm2.475 4.906c.645.149 1.184.56 1.488 1.11l3.963-2.2a2.133 2.133 0 0 1-.276-1.721l-3.82-2.12c-.329.55-.806.954-1.356 1.121v3.811Zm1.759-5.98 3.972 2.206c.33-.335.754-.554 1.208-.643v-4.486a2.32 2.32 0 0 1-1.153-.589l-3.99 2.215a3.765 3.765 0 0 1-.037 1.297Zm-.006-9.48v.004l4.49 2.493.004-.002c1.094-.608 2.494-.247 3.125.805.632 1.052.257 2.398-.837 3.005-.17.095-.348.166-.528.214v4.562c.18.048.358.12.528.214 1.095.607 1.47 1.953.838 3.005-.63 1.05-2.026 1.411-3.119.809l-4.5 2.5c-.007 1.21-1.029 2.191-2.29 2.191-1.263 0-2.288-.985-2.288-2.2v-.003l-4.49-2.494-.004.002c-1.094.608-2.493.247-3.125-.805-.632-1.052-.257-2.398.837-3.005.17-.095.348-.166.528-.214v-4.562a2.345 2.345 0 0 1-.527-.214c-1.095-.607-1.47-1.953-.838-3.005.632-1.052 2.031-1.413 3.125-.805l.016.008 4.478-2.488V6.2c0-1.215 1.025-2.2 2.288-2.2 1.264 0 2.288.985 2.288 2.2ZM15.214 25c.749 0 1.288-.574 1.288-1.2s-.54-1.2-1.288-1.2-1.288.574-1.288 1.2.54 1.2 1.288 1.2ZM8.396 11.215c.338-.563.15-1.314-.478-1.663-.628-.348-1.399-.13-1.737.433-.338.563-.15 1.315.478 1.663.628.348 1.399.13 1.737-.433Zm15.851 8.8c.338-.563.15-1.314-.477-1.663-.628-.348-1.399-.13-1.737.433-.338.563-.15 1.314.478 1.663.628.348 1.399.13 1.736-.433ZM6.66 18.352c.628-.348 1.398-.13 1.736.433.339.563.15 1.314-.477 1.663-.628.348-1.399.13-1.737-.433-.338-.563-.15-1.314.478-1.663Zm15.852-8.8c.628-.348 1.398-.13 1.736.433.338.563.15 1.314-.478 1.663-.627.348-1.398.13-1.736-.433-.338-.563-.15-1.315.478-1.663ZM14.605 15v1.738c-.433-.288-.826-.895-.826-1.811 0-1.33.826-2.007 1.402-2.007.577 0 1.403.677 1.403 2.007 0 .923-.399 1.532-.835 1.818V15h-1.144Z" fill="#27AA8B"/>
</svg>
<svg viewBox="0 0 87 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M22.017 8.474a.652.652 0 0 1 .103.292.517.517 0 0 1-.052.263L17.75 18.6v.046a.573.573 0 0 1-.13.137.856.856 0 0 1-.166.074h-.085l-10.445 1h-.057a.568.568 0 0 1-.24-.057.57.57 0 0 1-.164-.148l-6.4-8.263v-.069A.538.538 0 0 1 0 11.114h.051a.573.573 0 0 1 0-.194.08.08 0 0 0 0-.034.046.046 0 0 0 0-.029l4.24-9.525a.571.571 0 0 1 .142-.189l.086-.034a.603.603 0 0 1 .222-.075L15.174 0h.08a.46.46 0 0 1 .273.08.514.514 0 0 1 .171.12.07.07 0 0 1 0 .029l6.32 8.245Zm-5.55-5.36 1.294 5.11h2.632l-3.926-5.11ZM9.214 15.326l7.532 2.189V8.863l-1.874-7.429-7.641 4.28L1.533 11l7.68 4.326ZM7.123 4.474l5.458-3.068-6.843.68 1.385 2.388Zm-.93.67L4.867 2.856l-2.65 5.96 3.932-3.64.046-.034Zm-3.447 7.85 4.092 5.292 1.361-2.223-5.453-3.068Zm11.556 4.995-5.066-1.474-1.259 2.108 6.325-.634Zm3.584-8.623V15.6l2.786-6.234h-2.786ZM13.322 6a.57.57 0 0 1 0 1.143h-3.34l2.07 2.492a.573.573 0 0 1 0 .731l-2.07 2.492h3.34a.57.57 0 0 1 0 1.142H8.764a.573.573 0 0 1-.439-.937L10.872 10 8.325 6.938A.573.573 0 0 1 8.764 6h4.558Zm49.305-2.009-2.389-1.058v9.095h2.389V3.99Zm-30.26-1.235L29.87 3.835l-2.092 8.193h2.424l.557-2.265.436-2.016 1.171-4.991Zm3.976 9.272h2.625L34.241 0l-1.954 1.145 4.056 10.883Zm20.322-9.539h9.519V.42h-9.52v2.07Zm13.964 9.539h2.391V.42h-2.39v11.607Zm9.676-8.688c-.227-.514-.942-1.717-1.273-2.07-.506.282-1.184 1.15-1.184 2.636 0 1.893.68 2.583 2.563 3.061l2.18.566c1.603.425 1.69.672 1.69 1.132a2.136 2.136 0 0 1-.056.4c-.068.25-.273.671-1.081.939a6.102 6.102 0 0 1-1.635.236c-1.08 0-2.79-.194-3.487-.354v1.93c.628.229 2.18.406 3.295.406.333 0 .75-.015 1.153-.05.24-.008 1.812-.089 2.926-.89l.024-.018a.867.867 0 0 0 .082-.065 2.64 2.64 0 0 0 .74-.887l.015-.034.008-.018c.234-.451.402-1.052.402-1.861 0-1.823-.715-2.496-3.19-3.15l-1.884-.477c-1.259-.337-1.36-.55-1.36-1.062.006-.127.03-.252.07-.371l.002.001Zm2.822-1.134v.001c-1.255 0-2.197.16-2.824.425.104-.567.54-1.822.854-2.212.65-.125 1.309-.19 1.97-.195 1.046 0 2.32.142 2.93.283v1.946a23.339 23.339 0 0 0-2.93-.248ZM50.113 12.06l-1.349-3.716c-.406.027-.82.026-1.225.025h-2.166v3.687H42.98V2.909l2.393.976v2.5h1.817c.873 0 1.939-.125 2.288-.337.401-.249.646-.905.646-1.614 0-1.276-.611-1.931-2.603-1.931H44.36l-1.991-.284V.429h5.365c3.878 0 4.804 1.523 4.804 4.077 0 .887-.323 2.475-1.482 3.28l1.828 4.271-2.77.004Zm-19.321 4.85c-.298-.533-.784-.8-1.459-.8-.282 0-.53.05-.743.152a1.18 1.18 0 0 0-.492.409.99.99 0 0 0-.171.56c0 .294.104.522.314.686.21.164.566.29 1.07.378.388.068.659.152.812.251.152.1.228.233.228.4a.513.513 0 0 1-.263.461c-.175.109-.412.163-.709.163-.301 0-.552-.062-.752-.186a1.173 1.173 0 0 1-.455-.523l-.394.32c.14.248.346.446.615.595.268.149.593.223.975.223.29 0 .545-.045.766-.134a1.16 1.16 0 0 0 .512-.378c.12-.162.18-.35.18-.563 0-.298-.104-.53-.312-.698-.207-.168-.561-.293-1.06-.377a3.323 3.323 0 0 1-.627-.158.77.77 0 0 1-.323-.208.466.466 0 0 1-.097-.303c0-.187.083-.34.249-.46.166-.12.393-.181.683-.181.275 0 .49.053.65.157.157.105.294.283.408.535l.395-.32Zm1.505 3.032h.458v-3.775h-.458v3.775Zm5.275 0v-1.905h-1.619v.43h1.201v.13c0 .314-.104.554-.311.721-.208.168-.476.252-.804.252-.415 0-.734-.132-.955-.397-.221-.265-.332-.638-.332-1.118a1.9 1.9 0 0 1 .16-.81c.107-.226.257-.401.45-.523.192-.122.416-.183.671-.183.267 0 .495.057.684.172a.974.974 0 0 1 .409.491l.417-.228a1.524 1.524 0 0 0-.586-.652c-.242-.141-.55-.212-.924-.212-.35 0-.658.08-.923.237a1.614 1.614 0 0 0-.618.678c-.146.294-.22.637-.22 1.03 0 .396.072.74.215 1.032.142.291.346.516.609.675.263.158.572.237.926.237.282 0 .523-.049.724-.146.2-.097.355-.237.466-.42l.017.509h.343Zm4.794 0h.435v-3.775h-.704l-.823 2.3-.292.937h-.011l-.286-.943-.83-2.294h-.703v3.775h.435v-2.374l-.052-.995h.006l1.24 3.369h.39l1.24-3.369h.006l-.051.995v2.374Zm2.592-1.047h1.71l.4 1.047h.487l-1.464-3.775h-.544l-1.47 3.775h.481l.4-1.047Zm1.035-1.767.51 1.338h-1.379l.515-1.355.166-.51h.011l.177.527Zm8.285 2.814h.434v-3.775h-.703l-.824 2.3-.291.937h-.012l-.286-.943-.829-2.294h-.703v3.775h.434v-2.374l-.051-.995h.006l1.24 3.369h.39l1.24-3.369h.006l-.051.995v2.374Zm2.592-1.047h1.71l.4 1.047h.487l-1.465-3.775h-.543l-1.47 3.775h.48l.401-1.047Zm1.035-1.767.51 1.338h-1.38l.516-1.355.166-.51h.01l.178.527Zm2.838 2.814h.458v-3.775h-.458v3.775Zm4.6 0h.566v-3.775h-.434v2.665l.023.607h-.006l-.406-.755-1.573-2.517h-.566v3.775h.434v-2.665l-.022-.606h.005l.4.743 1.58 2.528Zm4.709 0h.566v-3.775h-.435v2.665l.023.607H70.2l-.406-.755-1.573-2.517h-.566v3.775h.435v-2.665l-.023-.606h.006l.4.743 1.579 2.528Zm5.045 0v-.43h-2.276v-1.269h1.704v-.429h-1.704v-1.218h2.19v-.429h-2.647v3.775h2.733Zm2.764-3.346h1.316v-.429h-3.089v.43h1.316v3.345h.457v-3.346Z" fill="#129C6B"/>
</svg>
<svg viewBox="0 0 63 20" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<path fill="url(#astar_svg__a)" d="M0 0h62.025v20H0z"/>
<defs>
<pattern id="astar_svg__a" patternContentUnits="objectBoundingBox" width="1" height="1">
<use xlink:href="#astar_svg__b" transform="matrix(.00136 0 0 .00422 -.31 -.363)"/>
</pattern>
<image id="astar_svg__b" width="1188" height="408" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABKQAAAGYCAYAAAB8ozqhAAAAAXNSR0IArs4c6QAAIABJREFUeF7svQt4JGd55/t/v25d5mK7x8Zjjy8zErYBYxM0CXcD1hAgmATQZJOcZJOzaE6Sc2ADWAokxNllR5M8hGQDkQw2ZskmEicXQwjMJM9h4SSclWBjLjEg+RI7QLAENtjYxpLtGV276zvPV1Vf9VfV1a2W1F3d0vz1PDNqdVfX5VfV1dW/ft//J+APCZAACZAACZAACZAACZAACZAACZAACZAACWRIQDJcFhdFAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAqCQ4kFAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiSQKQEKqUxxc2EkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIUUjwGSIAESIAESIAESIAESIAESIAESIAESIAEMiVAIZUpbi6MBEiABEiABEiABEiABEiABEiABEiABEiAQorHAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQQKYEKKQyxc2FkQAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJUEjxGCABEiABEiABEiABEiABEiABEiABEiABEsiUAIVUpri5MBIgARIgARIgARIgARIgARIgARIgARIgAQopHgMkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAKZEqCQyhQ3F0YCJEACJEACJEACJEACJEACJEACJEACJEAhxWOABEiABEiABEiABEiABEiABEiABEiABEggUwIUUpni5sJIgARIgARIgARIgARIgARIgARIgARIgAQopHgMkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJZEqAQipT3FwYCZAACZAACZAACZAACZAACZAACZAACZAAhRSPARIgARIgARIgARIgARIgARIgARIgARIggUwJUEhlipsLIwESIAESIAESIAESIAESIAESIAESIAESoJDiMUACJEACJEACJEACJEACJEACJEACJEACJJApAQqpTHFzYSRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAhRSPAZIgARIgARIgARIgARIgARIgARIgARIgAQyJUAhlSluLowESIAESIAESIAESIAESIAESIAESIAESIBCiscACZAACZAACZAACZAACZAACZAACZAACZBApgQopDLFzYWRAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAlQSPEYIAESIAESIAESIAESIAESIAESIAESIAESyJQAhVSmuLkwEiABEiABEiABEiABEiABEiABEiABEiABCikeAyRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAApkSoJDKFDcXRgIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQCHFY4AESIAESIAESIAESIAESIAESIAESIAESCBTAhRSmeLmwkiABEiABEiABEiABEiABEiABEiABEiABCikeAyQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAlkSoBCKlPcXBgJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkACFFI8BEiABEiABEiABEiABEiABEiABEiABEiCBTAlQSGWKmwsjARIgARIgARIgARIgARIgARIgARIgARKgkOIxQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkkCkBCqlMcXNhJEACJEACJEACJEACJEACJEACJEACJEACFFI8BkiABEiABEiABEiABEiABEiABEiABEiABDIlQCGVKW4ujARIgARIgARIgARIgARIgARIgARIgARIgEKKxwAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkECmBCikMsXNhZEACZAACZAACZAACZAACZAACZAACZAACVBI8RggARIgARIgARIgARIgARIgARIgARIgARLIlACFVKa4uTASIAESIAESIAESIAESIAESIAESIAESIAEKKR4DJEACJEACJEACJEACJEACJEACJEACJEACmRKgkMoUNxdGAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAIcVjgARIgARIgARIgARIgARIgARIgARIgARIIFMCFFKZ4ubCSIAESIAESIAESIAESIAESIAESIAESIAEKKR4DJAACZAACZAACZAACZAACZAACZAACZAACWRKgEIqU9xcGAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAIUUjwESIAESIAESIAESIAESIAESIAESIAESIIFMCVBIZYqbCyMBEiABEiABEiABEiABEiABEiABEiABEqCQ4jFAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiSQKQEKqUxxc2EkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIUUjwGSIAESIAESIAESIAESIAESIAESIAESIAEMiVAIZUpbi6MBEiABEiABEiABEiABEiABEiABEiABEiAQorHAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQQKYEKKQyxc2FkQAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJUEjxGCABEiABEiABEiABEiABEiABEiABEiABEsiUAIVUpri5MBIgARIgARIgARIgARIgARIgARIgARIgAQopHgMkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAKZEqCQyhQ3F0YCJEACJEACJEACJEACJEACJEACJEACJEAhxWOABEiABEiABEiABEiABEiABEiABEiABEggUwIUUpni5sJIgARIgARIgARIgARIgARIgARIgARIgAQopHgMkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJZEqAQipT3FwYCZAACZAACZAACZAACZAACZAACZAACZAAhRSPARIgARIgARIgARIgARIgARIgARIgARIggUwJUEhlipsLIwESIAESIAESIAESIAESIAESIAESIAESoJDiMUACJEACJEACJEACJEACJEACJEACJEACJJApAQqpTHFzYSRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAhRSPAZIgARIgARIgARIgARIgARIgARIgARIgAQyJUAhlSluLowESIAESIAESIAESIAESIAESIAESIAESIBCiscACZAACZAACZAACZAACZAACZAACZAACZBApgQopDLFzYWRAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAlQSPEYIAESIAESIAESIAESIAESIAESIAESIAESyJQAhVSmuLkwEiABEiABEiABEiABEiABEiABEiABEiABCikeAyRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAApkSoJDKFDcXRgIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQCHFY4AESIAESIAESIAESIAESIAESIAESIAESCBTAhRSmeLmwkiABEiABEiABEiABEiABEiABEiABEiABCikeAyQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAlkSoBCKlPcXBgJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkACFFI8BEiABEiABEiABEiABEiABEiABEiABEiCBTAlQSGWKmwsjARIgARIgARIgARIgARIgARIgARIgARKgkOIxQAIkQAIkQAIkQAIkQAIkQAIkQAIk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a/aDl9tPAiRAAiRAAiRAAiRAAi1IgEKqBQeVu0QCJLAwgVEtqIKgFwJXKIie0Lb4JflTTSSlxpSQ4wrRgyHE+PAYBdTCo88lSIAESIAESIAESIAESIAE1psAhdR6jwCfnwRIoGEI/MNp9/YgQE8I2a0grg5tFVVPY8y+h/EQclJI/CgSajwKg8m//h9v5Ix4DXP0cENIgARIgARIgARIgARIgAQWQ4BCajG0uCwJkMCGJHDwzPu6USh0R0J2RwLdESSUEFdHQppZ6yJAtwLan70vVeW+KlVYU5GpcBIIhZhSWjhBIpRiXMlgamYG4/vHd01tSPDcaRIgARIgARIgARIgARIggZYlQCHVskPLHSMBEiABEiABEiABEiABEiABEiABEiCBxiRAIdWY48KtIgESIAESIAESIAESIAESIAESIAESIIGWJUAh1bJDyx0jARIgARIgARIgARIgARIgARIgARIggcYkQCHVmOPCrSIBEiABEiABEiABEiABEiABEiABEiCBliVAIdWyQ8sdIwESIAESIAESIAESIAESIAESIAESIIHGJEAh1Zjjwq0iARIgARIgARIgARIgARIgARIgARIggZYlQCHVskPLHSMBEiABEiABEiABEiABEiABEiABEiCBxiRAIdWY48KtIgESIAESIAESIAESIAESIAESIAESIIGWJUAh1bJDyx0jARIgARIgARIgARIgARIgARIgARIggcYkQCHVmOPCrSIBEiABEiABEiABEiABEiABEiABEiCBliVAIdWyQ8sdIwESIAESIAESIAESIAESIAESIAESIIHGJEAh1Zjjwq0iARIgARIgARIgARIgARIgARIgARIggZYlQCHVskPLHSMBEiABEiABEiABEiABEiABEiABEiCBxiRAIdWY48KtIgESIAESIAESIAESIAESIAESIAESIIGWJUAh1bJDyx0jARIgARIgARIgARIgARIgARIgARIggcYkQCHVmOPCrSIBEiABEiABEiABEiABEiABEiABEiCBliVAIdWyQ8sdIwESIAESIAESIAESIAESIAESIAESIIHGJEAh1Zjjwq0iARIgARIgARIgARIgARIgARIgARIggZYlQCHVskPLHSMBEiABEiABEiABEiABEiABEiABEiCBxiRAIdWY48KtIgESIAESIAESIAESIAESIAESIAESIIGWJUAh1bJDyx0jARIgARIgARIgARIgARIgARIgARIggcYkQCHVmOPCrSIBEiABEiABEiABEiABEiABEiABEiCBliVAIdWyQ8sdIwESIAESIAESIAESIAESIAESIAESIIHGJEAh1Zjjwq0iARIgARIgARIgARIgARIgARIgARIggZYlQCHVskPLHSMBEiABEiABEiABEiABEiABEiABEiCBxiRAIdWY48KtIgESIAESIAESIAESIAESIAESIAESIIGWJUAh1bJDyx0jARIgARIgARIgARIgARIgARIgARIggcYkQCHVmOPCrSIBEiABEiABEiABEiABEiABEiABEiCBliVAIdWyQ8sdIwESIAESIAESIAESIAESIAESIAESIIHGJEAh1Zjjwq0iARIgARIgARIgARIgARIgARIgARIggZYlQCHVskPLHSMBEiABEiABEiABEiABEiABEiABEiCBxiRAIdWY48KtIgESIAESIAESIAESIAESIAESIAESIIGWJUAh1bJDyx0jARIgARIgARIgARIgARIgARIgARIggcYkQCHVmOPCrSIBEiABEiABEiABEiABEiABEiABEiCBliVAIdWyQ8sdIwESIAESIAESIAESIAESIAESIAESIIHGJEAh1Zjjwq0iARIgARIgARIgARIgARIgARIgARIggZYlQCHVskPLHSMBEiABEiABEiABEiABEiABEiABEiCBxiRAIdWY48KtIgESIAESIAESIAESIAESIAESIAESIIGWJUAh1bJDyx0jARIgARIgARIgARIgARIgARIgARIggcYkQCHVmOPCrSIBEiABEiABEiABEiABEiABEiABEiCBliVAIdWyQ8sdIwESIAESIAESIAESIAESIAESIAESIIHGJEAh1Zjjwq0iARIgARIgARIgARIgARIgARIgARIggZYlQCHVskPLHSMBEiABEiABEiABEiABEiABEiABEiCBxiRAIdWY48KtIgESIAESIAESIAESIAESIAESIAESIIGWJUAh1bJDyx0jARIgARIgARIgARIgARIgARIgARIggcYkQCHVmOPCrSIBEiABEiABEiABEiABEiABEiABEiCBliVAIdWyQ8sdIwESIAESIAESIAESIAESIAESIAESIIHGJEAh1Zjjwq0iARIgARIgARIgARIgARIgARIgARIggZYlQCHVskPLHSMBEiABEiABEiABEiABEiABEiABEiCBxiRAIdWY48KtIgESIAESIAESIAESIAESIAESIAESIIGWJUAh1bJDyx0jARIgARIgARIgARIgARIgARIgARIggcYkQCHVmOPCrSIBEiABEiABEiABEiABEiABEiABEiCBliVAIdWyQ8sdIwESIAESIAESIAESIAESIAESIAESIIHGJEAh1Zjjwq0iARIgARIgARIgARIgARIgARIgARIggZYlQCHVskPLHSMBEiABEiABEiABEiABEiABEiABEiCBxiRAIdWY48KtIgESIAESIAESIAESIAESIAESIAESIIGWJUAh1bJDyx0jARIgARIgARIgARIgARIgARIgARIggcYkQCHVmOPCrSIBEiABEiABEiABEiABEiABEiABEiCBliVAIdWyQ8sdIwESIAESIAESIAESIAESIAESIAESIIHGJEAh1Zjjwq0iARIgARIgARIgARIgARIgARIgARIggZYlQCHVskPLHSMBEiABEiABEiABEiABEiABEiABEiCBxiRAIdWY48KtIgESIAESIAESIAESIAESIAESIAESIIGWJUAh1bJDyx0jARIgARIgARIgARIgARIgARIgARIggcYkQCHVmOPCrSIBEiABEiABEiABEiABEiABEiABEiCBliVAIdWyQ8sdIwESIAESIAESIAESIAESIAESIAESIIHGJEAh1Zjjwq0iARIgARIgARIgARIgARIgARIgARIggZYlQCHVskPLHSMBEiABEiABEiABEiABEiABEiABEiCBxiRAIdWY48KtIgESIAESIAESIAESIAESIAESIAESIIGWJUAh1bJDyx0jARIgARIgARIgARIgARIgARIgARIggcYkQCHVmOPCrSIBEiABEiABEiABEiABEiABEiABEiCBliVAIdWyQ8sdIwESIAESIAESIAESIAESIAESIAESIIHGJEAh1Zjjwq0iARIgARIgARIgARIgARIgARIgARIggZYlQCHVskPLHSMBEiABEiABEiABEiABEiABEiABEiCBxiRAIdWY48KtIgESIAESIAESIAESIAESIAESIAESIIGWJUAh1bJDyx0jARIgARIgARIgARIgARIgARIgARIggcYkQCHVmOPCrSIBEiABEiABEiABEiABEiABEiABEiCBliVAIdWyQ8sdIwESIAESIAESIAESIAESIAESIAESIIHGJEAh1Zjjwq0iARIgARIgARIgARIgARIgARIgARIggZYlQCHVskPLHSMBEiABEiABEiABV2Fu6AAAARVJREFUEiABEiABEiABEiCBxiRAIdWY48KtIgESIAESIAESIAESIAESIAESIAESIIGWJUAh1bJDyx0jARIgARIgARIgARIgARIgARIgARIggcYkQCHVmOPCrSIBEiABEiABEiABEiABEiABEiABEiCBliVAIdWyQ8sdIwESIAESIAESIAESIAESIAESIAESIIHGJEAh1Zjjwq0iARIgARIgARIgARIgARIgARIgARIggZYlQCHVskPLHSMBEiABEiABEiABEiABEiABEiABEiCBxiRAIdWY48KtIgESIAESIAESIAESIAESIAESIAESIIGWJUAh1bJDyx0jARIgARIgARIgARIgARIgARIgARIggcYk8P8DmGlaY9Z1Zz8AAAAASUVORK5CYII="/>
</defs>
</svg>
<svg viewBox="0 0 404 112" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M112 56c0 30.928-25.121 56-56.11 56C26.59 112 2.534 89.586 0 61h73.925V50H.098c3-28.107 26.834-50 55.792-50C86.879 0 112 25.072 112 56Zm212.983-22.244c-.492-4.27-2.487-7.586-5.985-9.945-3.498-2.36-7.788-3.54-12.87-3.54-3.717 0-6.969.618-9.756 1.854-2.76 1.236-4.918 2.936-6.476 5.099-1.53 2.163-2.295 4.621-2.295 7.374 0 2.304.532 4.285 1.598 5.942a14.364 14.364 0 0 0 4.181 4.088 29.617 29.617 0 0 0 5.328 2.655 64.816 64.816 0 0 0 5.124 1.643l8.526 2.36c2.186.59 4.618 1.405 7.296 2.444 2.705 1.04 5.288 2.458 7.747 4.256 2.487 1.77 4.536 4.046 6.149 6.827 1.612 2.781 2.418 6.195 2.418 10.24 0 4.664-1.189 8.878-3.566 12.642-2.35 3.765-5.793 6.757-10.329 8.976-4.509 2.22-9.988 3.329-16.437 3.329-6.012 0-11.218-.997-15.617-2.992-4.372-1.995-7.815-4.776-10.33-8.344-2.486-3.568-3.893-7.711-4.221-12.431h10.493c.273 3.259 1.339 5.956 3.197 8.091 1.886 2.107 4.263 3.68 7.132 4.72 2.897 1.01 6.012 1.517 9.346 1.517 3.88 0 7.364-.646 10.452-1.939 3.088-1.32 5.534-3.146 7.337-5.478 1.804-2.36 2.705-5.113 2.705-8.26 0-2.865-.778-5.197-2.336-6.995-1.557-1.798-3.607-3.259-6.148-4.382-2.542-1.124-5.288-2.107-8.239-2.95l-10.329-3.034c-6.559-1.939-11.751-4.706-15.577-8.302-3.825-3.596-5.738-8.302-5.738-14.117 0-4.832 1.271-9.046 3.812-12.642 2.569-3.624 6.012-6.433 10.329-8.428C296.249 12.011 301.1 11 306.456 11c5.41 0 10.22.997 14.428 2.992 4.208 1.966 7.542 4.663 10.001 8.09 2.487 3.428 3.799 7.32 3.935 11.674h-9.837ZM126 12.18v86.303h30.332c6.613 0 11.983-1.011 16.109-3.034 4.126-2.023 7.146-4.762 9.059-8.218 1.912-3.455 2.869-7.346 2.869-11.672 0-4.551-.875-8.4-2.623-11.547-1.749-3.146-3.922-5.562-6.518-7.248-2.596-1.685-5.178-2.612-7.747-2.781v-.843a22.47 22.47 0 0 0 6.682-3.118c2.076-1.405 3.743-3.315 5-5.731 1.285-2.416 1.927-5.478 1.927-9.187 0-4.214-.929-8.049-2.788-11.504-1.858-3.484-4.686-6.25-8.484-8.302-3.799-2.079-8.622-3.118-14.47-3.118H126Zm30.332 77.032h-20.167V59.208h20.659c3.662 0 6.832.759 9.509 2.276 2.678 1.489 4.742 3.483 6.19 5.984 1.448 2.472 2.172 5.169 2.172 8.09 0 3.793-1.407 7.024-4.222 9.693-2.787 2.64-7.501 3.961-14.141 3.961Zm-1.311-39.106h-18.856V21.451h19.183c5.575 0 9.647 1.334 12.215 4.003 2.569 2.641 3.853 5.857 3.853 9.65 0 3.034-.738 5.675-2.213 7.923-1.449 2.247-3.416 3.989-5.903 5.225-2.459 1.236-5.219 1.854-8.279 1.854Zm38.837 48.377h10.657l8.44-24.441h33.947l8.44 24.44h10.657L235.175 12.18h-10.493l-30.824 86.303Zm49.843-33.712-13.445-38.938h-.655l-13.445 38.938h27.545Zm108.98-52.591v86.303H404v-9.27h-41.153v-29.33h37.874v-9.271h-37.874V21.45h40.497v-9.27h-50.663Z" fill="#2151F5"/>
</svg>
<svg viewBox="0 0 57 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.018 9.929a.73.73 0 0 1 0 .142c-.002.02-.006.04-.009.059a.1.1 0 0 0-.002.01v.008l-.005.016a.66.66 0 0 1-.08.234c-.009.016-.022.029-.032.044l-5.194 9.076a.705.705 0 0 1-.312.39.689.689 0 0 1-.329.091c-.015.002-.03 0-.045 0s-.03.002-.045 0a.687.687 0 0 1-.64-.481L.13 10.442c-.01-.015-.024-.028-.033-.044a.643.643 0 0 1-.08-.235l-.004-.016-.001-.006c0-.004 0-.008-.002-.011l-.008-.059a.717.717 0 0 1 0-.142L.01 9.87l.002-.01.001-.007.004-.015a.652.652 0 0 1 .08-.236c.01-.016.022-.029.033-.044L5.325.482c.054-.16.158-.3.312-.39A.687.687 0 0 1 5.965 0c.015-.002.03 0 .045 0s.03-.002.046 0c.112.003.224.03.328.09.154.09.258.231.312.391l5.194 9.076c.01.015.023.028.033.044a.637.637 0 0 1 .08.235l.004.016v.006l.002.011c.003.02.007.04.008.059ZM6.01 17.795l3.412-5.962-3.031 1.726c-.016.01-.033.015-.05.023a.77.77 0 0 1-.58.042.698.698 0 0 1-.212-.11L2.6 11.832l3.411 5.962Zm0-15.59L2.598 8.167 5.63 6.441c.016-.01.033-.015.049-.022.028-.014.052-.034.082-.043l.008-.003c.02-.006.042-.006.063-.01a.813.813 0 0 1 .137-.023h.02a.73.73 0 0 1 .483.147l.444.253 2.506 1.427L6.01 2.205Zm0 5.632L4.152 8.895 2.212 10l3.798 2.163.756-.43L9.808 10 6.01 7.837Z" fill="#4AD7A7"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M56.45 13.897a.373.373 0 0 1-.169-.042 2.405 2.405 0 0 1-.215-.127 2.587 2.587 0 0 0-.434-.228 1.307 1.307 0 0 0-.481-.08c-.424 0-.752.143-.986.43-.233.287-.35.685-.35 1.196 0 .511.115.905.346 1.182.23.278.557.416.98.416.187 0 .352-.028.496-.084.153-.061.3-.136.439-.224.068-.044.136-.081.205-.112a.452.452 0 0 1 .187-.047.26.26 0 0 1 .215.107.42.42 0 0 1 .084.267.426.426 0 0 1-.07.238.832.832 0 0 1-.238.22 2.31 2.31 0 0 1-.654.29 2.89 2.89 0 0 1-.757.102c-.442 0-.83-.096-1.163-.29a1.977 1.977 0 0 1-.775-.822c-.184-.355-.276-.766-.276-1.234 0-.473.095-.89.285-1.252a2.06 2.06 0 0 1 .799-.84c.342-.2.734-.3 1.177-.3.236 0 .474.035.714.103.226.063.441.157.64.28.2.137.3.296.3.477a.42.42 0 0 1-.085.266.261.261 0 0 1-.215.108Zm-.337-5.856a.486.486 0 0 1-.336-.117.421.421 0 0 1-.131-.332v-2.42c0-.38-.069-.656-.206-.827-.136-.171-.351-.257-.644-.257-.342 0-.613.117-.813.35-.199.234-.298.553-.298.958v2.196a.422.422 0 0 1-.131.332.5.5 0 0 1-.346.117.487.487 0 0 1-.337-.117.422.422 0 0 1-.13-.332v-2.42c0-.38-.069-.656-.206-.827-.137-.171-.351-.257-.644-.257-.343 0-.615.117-.818.35-.202.234-.303.553-.303.958v2.196a.422.422 0 0 1-.13.332.487.487 0 0 1-.337.117.503.503 0 0 1-.341-.117.414.414 0 0 1-.136-.332V3.79a.41.41 0 0 1 .14-.327.496.496 0 0 1 .337-.122c.13 0 .238.04.322.117a.417.417 0 0 1 .126.322v.346c.137-.261.327-.46.57-.598a1.68 1.68 0 0 1 .84-.205c.35 0 .637.071.865.215.227.143.397.364.51.663a1.55 1.55 0 0 1 .606-.64 1.76 1.76 0 0 1 .916-.238c1.021 0 1.532.613 1.532 1.84v2.43a.422.422 0 0 1-.131.332.5.5 0 0 1-.346.117Zm-6.427 3.576a.6.6 0 0 1-.43.15.602.602 0 0 1-.43-.15.515.515 0 0 1-.158-.393.5.5 0 0 1 .159-.388.613.613 0 0 1 .43-.145c.174 0 .316.049.424.145a.49.49 0 0 1 .164.388.515.515 0 0 1-.159.393ZM48.033 8.04a.439.439 0 0 1-.318-.117.415.415 0 0 1-.121-.313v-.355a1.466 1.466 0 0 1-.593.598 1.74 1.74 0 0 1-.846.206c-1.108 0-1.663-.611-1.663-1.832v-2.43c0-.143.043-.255.127-.336a.483.483 0 0 1 .35-.122.47.47 0 0 1 .34.122.445.445 0 0 1 .127.336v2.42c0 .368.075.64.224.814.15.174.38.261.692.261.367 0 .661-.118.882-.355.221-.237.332-.551.332-.944V3.798a.44.44 0 0 1 .13-.331.476.476 0 0 1 .346-.127.47.47 0 0 1 .341.122.446.446 0 0 1 .126.336v3.803a.414.414 0 0 1-.13.318.49.49 0 0 1-.346.122Zm-2.775 5.005c.206.137.309.296.309.477 0 .1-.03.184-.09.252a.268.268 0 0 1-.21.103.41.41 0 0 1-.167-.037 2.193 2.193 0 0 1-.224-.122 3.13 3.13 0 0 0-.472-.233 1.531 1.531 0 0 0-.547-.085c-.262 0-.472.057-.63.169a.531.531 0 0 0-.239.457c0 .175.074.31.22.407.146.097.422.189.827.276.417.087.744.186.98.299.237.112.407.25.51.416.102.165.154.375.154.63 0 .405-.17.73-.51.977-.339.246-.792.369-1.358.369-.636 0-1.156-.13-1.56-.392a.71.71 0 0 1-.239-.215.463.463 0 0 1-.07-.253c0-.1.028-.183.084-.252a.264.264 0 0 1 .215-.103c.081 0 .209.05.383.15.187.1.369.18.547.243.177.062.4.093.667.093.3 0 .533-.053.701-.159a.502.502 0 0 0 .252-.449.436.436 0 0 0-.098-.298c-.065-.075-.179-.142-.34-.201a5.827 5.827 0 0 0-.72-.192c-.548-.118-.942-.279-1.182-.481-.24-.202-.36-.478-.36-.827 0-.268.078-.51.234-.724.156-.215.37-.382.644-.5a2.33 2.33 0 0 1 .935-.178c.246 0 .491.033.729.098.223.06.434.156.625.285Zm-2.12-7.173h-2.886c.062.965.526 1.448 1.391 1.448.23 0 .43-.03.598-.093.183-.07.36-.15.533-.243.05-.03.101-.056.154-.08a.507.507 0 0 1 .21-.06c.087 0 .159.034.215.103a.4.4 0 0 1 .084.261c0 .181-.112.333-.336.458a2.947 2.947 0 0 1-.715.29 2.96 2.96 0 0 1-.743.103c-.722 0-1.292-.21-1.71-.631-.416-.42-.625-.996-.625-1.724 0-.468.092-.882.276-1.243.183-.362.442-.642.775-.841a2.17 2.17 0 0 1 1.135-.3c.61 0 1.093.197 1.448.59.355.392.532.921.532 1.588 0 .25-.112.374-.336.374Zm-.799-1.519c-.196-.227-.471-.34-.826-.34-.362 0-.651.114-.87.345-.217.23-.348.554-.392.972h2.41c-.018-.424-.126-.75-.322-.977ZM37.253 17.4c-.635 0-1.156-.13-1.56-.392a.713.713 0 0 1-.238-.215.466.466 0 0 1-.07-.253c0-.1.028-.183.084-.252a.264.264 0 0 1 .215-.103c.08 0 .208.05.383.15.186.1.368.18.546.243.178.062.4.093.668.093.299 0 .532-.053.7-.159a.502.502 0 0 0 .253-.449.438.438 0 0 0-.098-.298c-.066-.075-.18-.142-.341-.201a5.82 5.82 0 0 0-.72-.192c-.548-.118-.942-.279-1.181-.481-.24-.202-.36-.478-.36-.827 0-.268.078-.51.234-.724.155-.215.37-.382.644-.5.274-.119.585-.178.934-.178.247 0 .492.033.729.098.223.06.435.156.626.285.205.137.308.296.308.477 0 .1-.03.184-.089.252a.27.27 0 0 1-.21.103.41.41 0 0 1-.168-.037 2.193 2.193 0 0 1-.224-.122 3.13 3.13 0 0 0-.472-.233 1.531 1.531 0 0 0-.546-.085c-.262 0-.472.057-.63.169a.531.531 0 0 0-.24.457c0 .175.074.31.22.407.147.097.422.189.827.276.417.087.744.186.98.299.237.112.407.25.51.416.103.165.154.375.154.63 0 .405-.17.73-.509.977-.34.246-.793.369-1.36.369Zm1.373-13.248-.28.029c-.392.037-.684.174-.874.41a1.33 1.33 0 0 0-.285.86v2.14c0 .15-.043.262-.13.337a.5.5 0 0 1-.337.112.516.516 0 0 1-.34-.112c-.09-.075-.136-.187-.136-.337V3.79c0-.143.045-.254.136-.332a.503.503 0 0 1 .34-.117c.125 0 .23.04.313.117a.418.418 0 0 1 .127.322v.45a1.37 1.37 0 0 1 .541-.627c.237-.143.505-.227.804-.252l.13-.01c.3-.018.449.11.449.383 0 .138-.035.24-.103.309-.069.068-.187.109-.355.121Zm-3.755 1.72h-2.887c.063.965.527 1.448 1.392 1.448.23 0 .43-.03.598-.093.183-.07.36-.15.533-.243.05-.03.1-.056.154-.08a.507.507 0 0 1 .21-.06c.087 0 .159.034.215.103a.4.4 0 0 1 .084.261c0 .181-.112.333-.337.458a2.945 2.945 0 0 1-.714.29 2.96 2.96 0 0 1-.743.103c-.722 0-1.292-.21-1.71-.631-.416-.42-.625-.996-.625-1.724 0-.468.092-.882.275-1.243.184-.362.442-.642.776-.841a2.17 2.17 0 0 1 1.135-.3c.61 0 1.093.197 1.448.59.355.392.532.921.532 1.588 0 .25-.112.374-.336.374Zm-.799-1.519c-.196-.227-.472-.34-.827-.34-.36 0-.65.114-.868.345-.218.23-.349.554-.393.972h2.41c-.018-.424-.126-.75-.322-.977Zm-2.195 8.767c.296.305.444.77.444 1.393v2.42a.44.44 0 0 1-.122.332.466.466 0 0 1-.336.116.442.442 0 0 1-.327-.121.442.442 0 0 1-.122-.327v-.346a1.318 1.318 0 0 1-.527.603c-.234.14-.506.21-.818.21a1.85 1.85 0 0 1-.822-.182 1.41 1.41 0 0 1-.584-.51 1.32 1.32 0 0 1-.21-.729c0-.33.086-.59.257-.78.171-.19.454-.325.85-.406.396-.081.939-.122 1.63-.122h.215v-.27c0-.35-.072-.602-.215-.758-.143-.155-.373-.233-.691-.233-.218 0-.424.028-.616.084a4.633 4.633 0 0 0-.636.243c-.168.093-.286.14-.355.14a.289.289 0 0 1-.229-.103.385.385 0 0 1-.088-.261.4.4 0 0 1 .08-.248.838.838 0 0 1 .256-.21c.218-.118.473-.214.766-.285a3.58 3.58 0 0 1 .85-.108c.604 0 1.054.153 1.35.458Zm-.64 2.084c-.486 0-.86.022-1.121.066-.262.043-.448.116-.56.219-.113.103-.169.25-.169.444 0 .224.081.408.243.551a.882.882 0 0 0 .607.215 1.1 1.1 0 0 0 .841-.35c.218-.234.327-.534.327-.902v-.243h-.168Zm-1.7-7.164a.472.472 0 0 1-.34-.122.433.433 0 0 1-.127-.327v-2.42c0-.374-.076-.648-.229-.822-.153-.175-.39-.262-.714-.262-.38 0-.686.118-.916.355-.23.237-.345.555-.345.953v2.196a.433.433 0 0 1-.127.327.472.472 0 0 1-.34.122.488.488 0 0 1-.346-.122.425.425 0 0 1-.131-.327V1.808c0-.137.045-.246.136-.327a.503.503 0 0 1 .35-.122.47.47 0 0 1 .331.117.406.406 0 0 1 .127.313v2.336c.147-.254.364-.461.625-.598.262-.137.56-.205.897-.205 1.084 0 1.626.613 1.626 1.84v2.43a.426.426 0 0 1-.131.327.49.49 0 0 1-.346.122Zm-5.497-.972c.121.137.306.215.556.234l.261.018c.137.013.235.049.294.108.06.06.09.141.09.247 0 .125-.05.22-.146.285-.096.066-.238.092-.425.08l-.252-.019c-.504-.037-.881-.191-1.13-.463-.25-.27-.374-.67-.374-1.2V4.163h-.56c-.275 0-.412-.122-.412-.365 0-.112.036-.2.108-.266a.434.434 0 0 1 .304-.098h.56V2.47c0-.143.042-.255.126-.336a.471.471 0 0 1 .341-.122.49.49 0 0 1 .346.122c.087.08.13.193.13.336v.963h.925c.131 0 .232.033.304.098a.343.343 0 0 1 .107.266c0 .119-.036.209-.107.271a.45.45 0 0 1-.304.094h-.924v2.261c0 .293.06.508.182.645Zm-2.742-1.196h-2.887c.063.965.527 1.448 1.392 1.448.23 0 .43-.03.598-.093.183-.07.36-.15.533-.243.05-.03.101-.056.154-.08a.507.507 0 0 1 .21-.06c.087 0 .159.034.215.103a.4.4 0 0 1 .084.261c0 .181-.112.333-.336.458a2.958 2.958 0 0 1-.715.29 2.96 2.96 0 0 1-.743.103c-.722 0-1.292-.21-1.71-.631-.416-.42-.625-.996-.625-1.724 0-.468.092-.882.276-1.243.183-.362.442-.642.775-.841.333-.2.711-.3 1.135-.3.61 0 1.093.197 1.448.59.355.392.532.921.532 1.588 0 .25-.112.374-.336.374Zm-.799-1.519c-.196-.227-.471-.34-.826-.34-.362 0-.651.114-.87.345-.217.23-.348.554-.392.972h2.41c-.018-.424-.126-.75-.322-.977Zm-1.947 8.608a2.296 2.296 0 0 1 1.177-.299c.236 0 .474.035.714.103.226.063.441.157.64.28.2.137.299.296.299.477a.42.42 0 0 1-.084.266.261.261 0 0 1-.215.108.373.373 0 0 1-.168-.042 2.405 2.405 0 0 1-.215-.127 2.587 2.587 0 0 0-.434-.228 1.307 1.307 0 0 0-.481-.08c-.424 0-.752.143-.986.43-.233.287-.35.685-.35 1.196 0 .511.115.905.345 1.182.23.278.558.416.981.416.187 0 .352-.028.495-.084.153-.061.3-.136.44-.224.068-.044.136-.081.205-.112a.452.452 0 0 1 .187-.047.26.26 0 0 1 .215.107.42.42 0 0 1 .084.267.426.426 0 0 1-.07.238.832.832 0 0 1-.238.22 2.31 2.31 0 0 1-.654.29 2.846 2.846 0 0 1-.757.102c-.442 0-.83-.096-1.163-.29a1.977 1.977 0 0 1-.775-.822c-.184-.355-.276-.766-.276-1.234 0-.473.095-.89.285-1.252a2.06 2.06 0 0 1 .799-.84Zm6.22-2.261c.138 0 .25.039.337.117.087.077.13.191.13.34v5.776c0 .15-.043.261-.13.336a.498.498 0 0 1-.336.112.518.518 0 0 1-.341-.112c-.09-.075-.136-.187-.136-.336v-5.775c0-.15.045-.264.136-.341a.503.503 0 0 1 .34-.117Zm24.484 1.98c.138 0 .25.04.337.118.087.078.13.191.13.34v3.795c0 .15-.043.261-.13.336a.498.498 0 0 1-.337.112.518.518 0 0 1-.34-.112c-.09-.075-.136-.187-.136-.336V13.14c0-.15.045-.263.135-.341a.505.505 0 0 1 .341-.117Z" fill="#333"/>
</svg>
<svg viewBox="0 0 71 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M6 7.467 0 10.4 6 0v7.467Z" fill="#828083"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m6 7.188-6 2.945 6 3.477V7.188Z" fill="#353336"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m6 15.046-6-3.854L6 20v-4.954Z" fill="#848285"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m6 7.467 6 2.933L6 0v7.467Z" fill="#2F2D30"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m6 7.188 6 2.942-6 3.476V7.189Z" fill="#121212"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="m6 15.046 6-3.854L6 20v-4.954Z" fill="#302E31"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M19.783 8.886a2.945 2.945 0 0 0 .008 3.904 2.578 2.578 0 0 0 4.056-.333.222.222 0 0 0-.192-.334.233.233 0 0 0-.193.11 2.16 2.16 0 0 1-1.847.93 1.933 1.933 0 0 1-1.445-.614 2.37 2.37 0 0 1-.675-1.467h4.48a.206.206 0 0 0 .24-.225 2.858 2.858 0 0 0-.744-1.962 2.455 2.455 0 0 0-3.688-.009Zm.387.251a1.995 1.995 0 0 1 2.89 0 2.4 2.4 0 0 1 .675 1.477h-4.24a2.4 2.4 0 0 1 .675-1.477Zm7.467-2.697a.224.224 0 1 0-.448 0v1.742h-1.152a.233.233 0 1 0 0 .467h1.152v4.673a.224.224 0 1 0 .448 0V8.65h1.2a.233.233 0 0 0 0-.467h-1.2V6.44Zm3.776 2.782V3.926a.224.224 0 1 0-.448 0v9.36a.224.224 0 1 0 .448 0v-2.328a2.613 2.613 0 0 1 .4-1.675 1.68 1.68 0 0 1 1.481-.749 1.409 1.409 0 0 1 1.195.606c.284.376.43.838.414 1.308v2.839a.224.224 0 0 0 .448 0v-2.849a2.511 2.511 0 0 0-.544-1.632 1.837 1.837 0 0 0-1.52-.733 2.031 2.031 0 0 0-1.872 1.152l-.002-.003Zm6.72-.333a2.944 2.944 0 0 0 .008 3.904 2.578 2.578 0 0 0 4.056-.333.221.221 0 0 0-.303-.303.234.234 0 0 0-.083.08 2.16 2.16 0 0 1-1.847.93 1.934 1.934 0 0 1-1.445-.615 2.365 2.365 0 0 1-.674-1.467h4.479a.204.204 0 0 0 .177-.053.206.206 0 0 0 .064-.172 2.858 2.858 0 0 0-.744-1.963 2.456 2.456 0 0 0-3.688-.01v.002Zm.386.251a1.996 1.996 0 0 1 2.891 0 2.4 2.4 0 0 1 .675 1.477h-4.24c.046-.557.285-1.08.677-1.48l-.003.003Zm7.406-.592a2.69 2.69 0 0 0-.784.837V8.4a.224.224 0 1 0-.448 0v4.867a.224.224 0 0 0 .448 0v-2.133a2.765 2.765 0 0 1 .466-1.643 1.967 1.967 0 0 1 1.44-.862.22.22 0 0 0 .208-.239.199.199 0 0 0-.149-.205.2.2 0 0 0-.09-.002c-.392.009-.77.135-1.089.363l-.002.002Zm3.44.34a2.944 2.944 0 0 0 .008 3.905 2.578 2.578 0 0 0 4.056-.333.221.221 0 0 0-.303-.303.235.235 0 0 0-.083.08 2.159 2.159 0 0 1-1.847.93 1.934 1.934 0 0 1-1.445-.615 2.365 2.365 0 0 1-.674-1.467h4.479a.204.204 0 0 0 .177-.053.206.206 0 0 0 .064-.172 2.858 2.858 0 0 0-.744-1.963 2.456 2.456 0 0 0-3.686-.01l-.002.002Zm.386.252a1.996 1.996 0 0 1 2.891 0 2.4 2.4 0 0 1 .675 1.477h-4.24c.046-.557.285-1.08.677-1.48l-.003.003Zm10.03-.733v1.824c0 1.973-.62 2.96-1.857 2.96a1.43 1.43 0 0 1-1.215-.608 2.105 2.105 0 0 1-.4-1.312V8.404a.223.223 0 0 0-.31-.207.225.225 0 0 0-.138.207v2.872a2.52 2.52 0 0 0 .544 1.637 1.83 1.83 0 0 0 1.52.738 1.988 1.988 0 0 0 1.856-1.267v.928a.224.224 0 1 0 .448 0V8.407a.224.224 0 0 0-.448 0Zm6.863 1.088A1.867 1.867 0 0 0 64.74 8.07a2.035 2.035 0 0 0-1.872 1.133V8.4a.224.224 0 1 0-.448 0v4.887a.224.224 0 0 0 .448 0V11.02a3.047 3.047 0 0 1 .4-1.786 1.685 1.685 0 0 1 1.472-.702 1.431 1.431 0 0 1 1.2.59c.285.375.432.837.416 1.308v2.857a.224.224 0 0 0 .448 0v-2.2a3.346 3.346 0 0 1 .416-1.707 1.6 1.6 0 0 1 1.44-.845 1.404 1.404 0 0 1 1.2.59c.285.375.432.837.416 1.308v2.854a.224.224 0 0 0 .448 0V10.42a2.56 2.56 0 0 0-.56-1.656 1.83 1.83 0 0 0-1.504-.696 2.095 2.095 0 0 0-2.016 1.424v.003Z" fill="#1B1635"/>
</svg>
<svg viewBox="0 0 85 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#gnosis_svg__a)">
<path d="M2.634 9.03c0-.485.159-.925.434-1.274l2.916 2.915a2.067 2.067 0 0 1-1.274.434A2.07 2.07 0 0 1 2.634 9.03Zm8.673 2.069a2.07 2.07 0 0 0 2.077-2.076c0-.478-.16-.918-.435-1.274l-2.916 2.915c.35.275.79.435 1.274.435Zm2.254-3.95a2.94 2.94 0 0 1-4.14 4.139l-1.415 1.414-1.415-1.414a2.94 2.94 0 0 1-4.14-4.139l-.663-.66-.63-.631A7.997 7.997 0 0 0 8 18c4.416 0 8-3.582 8-7.997a7.805 7.805 0 0 0-1.146-4.145L13.56 7.149ZM8 11.48 1.653 5.134a9.34 9.34 0 0 1 .564-.655A7.986 7.986 0 0 1 8.006 2c2.278 0 4.336.955 5.788 2.48.202.202.393.428.552.649L8 11.479Zm-4.913-6.4 4.918 4.917 4.918-4.917a6.856 6.856 0 0 0-4.918-2.039A6.868 6.868 0 0 0 3.087 5.08Zm14.685 4.926v.018c0 4.405 3.574 7.975 7.982 7.975h3.373V15.93h-3.32a5.917 5.917 0 0 1-5.917-6.044c.069-3.233 2.79-5.784 6.026-5.784h3.21V2.053h-3.395c-4.395 0-7.959 3.561-7.959 7.953ZM60.19 2.053h8.57V18h-8.57V2.053Zm1.517 4.804a2.769 2.769 0 1 0 5.537 0 2.769 2.769 0 0 0-5.537 0Zm-20.953.542a1.5 1.5 0 0 1-.467 1.116 1.53 1.53 0 0 1-1.106.456h-4.742c-.441 0-.814-.151-1.117-.456a1.515 1.515 0 0 1-.456-1.116V2.053h-2.052V18h2.052v-5.451c0-.44.152-.813.456-1.116a1.52 1.52 0 0 1 1.117-.456h4.742c.425 0 .794.152 1.106.456a1.5 1.5 0 0 1 .467 1.116V18h2.03V2.053h-2.03V7.4Zm37.132-5.346h-7.44V18h2.052V9.475a5.375 5.375 0 0 1 5.377-5.373 5.375 5.375 0 0 1 5.377 5.373v8.524h2.034V9.45a7.397 7.397 0 0 0-7.4-7.396Zm-25.207.848L59.444 18h-15.9l6.834-15.098c.27-.6.654-.901 1.15-.901.496 0 .88.3 1.15.901Zm-1.15 6.942a2.769 2.769 0 1 0 0 5.537 2.769 2.769 0 0 0 0-5.537Z" fill="#133629"/>
</g>
<defs>
<clipPath id="gnosis_svg__a">
<path fill="#fff" d="M0 0h85v20H0z"/>
</clipPath>
</defs>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 20">
<path data-name="-e-logo_top" d="M13.82 10.054h-6.9v2.731h3.191l-.011 3.432a1.456 1.456 0 0 1-.43.319 4 4 0 0 1-.655.267 5.306 5.306 0 0 1-.795.182 5.647 5.647 0 0 1-.861.065 3.012 3.012 0 0 1-2.715-1.424 7.745 7.745 0 0 1-.9-4.063v-2.6a9.439 9.439 0 0 1 .265-2.36 5.76 5.76 0 0 1 .715-1.71 3.229 3.229 0 0 1 1.059-1.047 2.57 2.57 0 0 1 1.324-.357 2.922 2.922 0 0 1 2.191.735 3.762 3.762 0 0 1 .894 2.191h3.628a8.468 8.468 0 0 0-.616-2.458A5.315 5.315 0 0 0 11.9 2.1 5.626 5.626 0 0 0 9.854.936a9.017 9.017 0 0 0-2.84-.4 6.711 6.711 0 0 0-2.774.572 6.354 6.354 0 0 0-2.225 1.664A7.926 7.926 0 0 0 .532 5.431 10.952 10.952 0 0 0 0 8.988v2.575a11.473 11.473 0 0 0 .51 3.556 7.5 7.5 0 0 0 1.45 2.646 6.25 6.25 0 0 0 2.264 1.651 7.406 7.406 0 0 0 2.966.572 11.15 11.15 0 0 0 2.278-.221 10.5 10.5 0 0 0 1.913-.579 7.641 7.641 0 0 0 1.477-.8 5.159 5.159 0 0 0 .98-.871zm2.661 2.783a8.686 8.686 0 0 0 .451 2.854 6.513 6.513 0 0 0 1.317 2.269 5.984 5.984 0 0 0 2.132 1.5 7.277 7.277 0 0 0 2.88.54 7.194 7.194 0 0 0 2.86-.54 5.934 5.934 0 0 0 2.119-1.5 6.6 6.6 0 0 0 1.311-2.269 8.713 8.713 0 0 0 .45-2.854v-.274a8.673 8.673 0 0 0-.45-2.841 6.532 6.532 0 0 0-1.318-2.269 6.078 6.078 0 0 0-2.125-1.508 7.813 7.813 0 0 0-5.74 0 6.082 6.082 0 0 0-2.119 1.508 6.515 6.515 0 0 0-1.317 2.269 8.647 8.647 0 0 0-.451 2.841v.273zm3.681-.273a7.394 7.394 0 0 1 .173-1.625 4.223 4.223 0 0 1 .542-1.352 2.633 2.633 0 0 1 2.357-1.261 2.777 2.777 0 0 1 1.417.338 2.693 2.693 0 0 1 .947.923 4.31 4.31 0 0 1 .536 1.352 7.394 7.394 0 0 1 .173 1.625v.273a7.606 7.606 0 0 1-.173 1.658 4.227 4.227 0 0 1-.536 1.352 2.621 2.621 0 0 1-2.337 1.255 2.818 2.818 0 0 1-1.424-.338 2.758 2.758 0 0 1-.96-.917 4.143 4.143 0 0 1-.542-1.352 7.606 7.606 0 0 1-.173-1.658v-.274zm-1.747-10.3a1.492 1.492 0 0 0 .37.514 1.761 1.761 0 0 0 .57.338 2.207 2.207 0 0 0 1.456 0 1.761 1.761 0 0 0 .57-.338 1.492 1.492 0 0 0 .37-.514 1.593 1.593 0 0 0 0-1.274 1.562 1.562 0 0 0-.37-.52 1.7 1.7 0 0 0-.57-.344 2.206 2.206 0 0 0-1.456 0 1.7 1.7 0 0 0-.57.345 1.562 1.562 0 0 0-.37.52 1.593 1.593 0 0 0 0 1.274zm6.356.013a1.558 1.558 0 0 0 .37.52 1.7 1.7 0 0 0 .57.345 2.207 2.207 0 0 0 1.456 0 1.7 1.7 0 0 0 .57-.345 1.558 1.558 0 0 0 .37-.52 1.593 1.593 0 0 0 .133-.65 1.562 1.562 0 0 0-.133-.637 1.492 1.492 0 0 0-.37-.514 1.762 1.762 0 0 0-.57-.338 2.206 2.206 0 0 0-1.456 0 1.762 1.762 0 0 0-.57.338 1.492 1.492 0 0 0-.37.514 1.546 1.546 0 0 0-.133.637 1.576 1.576 0 0 0 .133.651z" fill="currentColor" fill-rule="evenodd"/>
</svg>
<svg viewBox="0 0 111 20" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<path fill="url(#lukso_svg__a)" d="M0 2h88.889v16H0z"/>
<defs>
<pattern id="lukso_svg__a" patternContentUnits="objectBoundingBox" width="1" height="1">
<use xlink:href="#lukso_svg__b" transform="scale(.00333 .01852)"/>
</pattern>
<image id="lukso_svg__b" width="300" height="54" xlink:href="data:image/png;base64,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"/>
</defs>
</svg>
<svg viewBox="0 0 67 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#poa_svg__a)">
<path opacity=".8" fill-rule="evenodd" clip-rule="evenodd" d="M10.316 15.436h-.938v2.658h-.003l.003.015c0 .492-.42.89-.939.89H.937C.42 19 0 18.602 0 18.11l.003-.015H0V1.932h.003L0 1.917c0-.492.42-.891.937-.891h9.379c4.143 0 7.5 3.226 7.5 7.205 0 3.98-3.357 7.205-7.5 7.205ZM29.07 1.026c5.18 0 9.377 4.024 9.377 8.988 0 4.963-4.198 8.986-9.377 8.986-5.178 0-9.377-4.023-9.377-8.986 0-4.964 4.198-8.988 9.377-8.988ZM60.016 18.43c0 .307-.26.556-.58.556H38.161c-.025.003-.047.014-.073.014a.569.569 0 0 1-.578-.562c0-.123.048-.23.116-.322l-.009-.018L48.178 1.444h.023A.566.566 0 0 1 48.758 1c.28 0 .502.192.557.444h.024L60.016 18.21l-.037.048a.51.51 0 0 1 .037.173Z" fill="#5C34A2"/>
</g>
<defs>
<clipPath id="poa_svg__a">
<path fill="#fff" d="M0 0h66.667v20H0z"/>
</clipPath>
</defs>
</svg>
<svg viewBox="0 0 43 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M42.493 14.318h-2.018l-2.002-3.523-1.066.117v3.406h-1.788V2.498h1.788v6.828l1.018-.1L40.36 5.97h2.002l-2.363 3.907 2.494 4.441ZM31.378 9.351c.913.161 1.562.415 1.944.76.383.345.575.957.575 1.836 0 .88-.277 1.525-.829 1.937-.552.412-1.359.617-2.42.617-.667 0-1.509-.094-2.526-.284l-.509-.083.066-1.519c1.313.178 2.258.267 2.838.267.58 0 .992-.072 1.239-.217.245-.144.368-.384.368-.718 0-.333-.117-.564-.352-.692-.235-.129-.798-.268-1.69-.418-.892-.15-1.544-.386-1.96-.71-.416-.322-.623-.912-.623-1.77 0-.856.287-1.496.86-1.92.575-.423 1.31-.634 2.207-.634.7 0 1.558.09 2.576.268l.508.1-.032 1.519c-1.291-.178-2.226-.268-2.806-.268-.58 0-.982.07-1.206.21-.224.139-.336.359-.336.659 0 .3.123.512.37.634.245.123.825.264 1.738.426Zm-7.587-.86v5.827h-1.788V5.97h1.771v1.002c.93-.612 1.86-1.008 2.79-1.186v1.82c-.942.19-1.745.434-2.412.735l-.361.15ZM18 13.959c0 1.111-.885 2.013-1.977 2.013a1.95 1.95 0 0 1-1.374-.569l-3.716 2.179c.026.131.044.265.044.404C10.977 19.099 10.092 20 9 20s-1.977-.901-1.977-2.014c0-.142.019-.277.046-.41l-3.717-2.174a1.95 1.95 0 0 1-1.374.57C.885 15.972 0 15.07 0 13.959a2.002 2.002 0 0 1 1.438-1.929V7.97A2.002 2.002 0 0 1 0 6.042C0 4.93.885 4.027 1.978 4.027a1.95 1.95 0 0 1 1.471.68L7.11 2.55a2.05 2.05 0 0 1-.079-.534C7.031.901 7.913 0 9 0c1.088 0 1.969.902 1.969 2.015 0 .158-.022.31-.055.456l3.69 2.171a1.953 1.953 0 0 1 1.419-.614c1.092 0 1.977.902 1.977 2.014a2.002 2.002 0 0 1-1.438 1.928v4.06A2.002 2.002 0 0 1 18 13.959Zm-3.89.483a2.028 2.028 0 0 1-.064-.483c0-.138.014-.272.039-.402l-3.372-1.972c-.342.605-.806 1.141-1.166 1.51v2.965c.339.1.638.292.876.544l3.687-2.162ZM9 9.937c.302 0 .547.245.547.548v1.261c.38-.432.816-1.063.816-1.677C10.364 8.986 9 7.848 9 7.848s-1.363 1.14-1.363 2.222c0 .614.437 1.245.816 1.677v-1.261c0-.303.245-.547.547-.547Zm0 8.952c.49 0 .887-.404.887-.903A.895.895 0 0 0 9 17.084a.895.895 0 0 0-.886.902c0 .498.397.903.886.903Zm-1.421-2.288c.239-.254.54-.44.874-.541v-2.965c-.348-.357-.795-.87-1.135-1.451l-3.395 1.991c.017.106.032.213.032.324 0 .168-.026.329-.065.485L7.579 16.6Zm-6.488-2.642c0 .498.397.902.887.902a.894.894 0 0 0 .886-.902.894.894 0 0 0-.886-.903.894.894 0 0 0-.887.903Zm.887-8.82a.894.894 0 0 0-.887.902c0 .5.397.903.887.903a.894.894 0 0 0 .886-.902.894.894 0 0 0-.886-.903Zm1.374 2.346a1.96 1.96 0 0 1-.82.48v4.072c.36.11.68.314.923.595l3.436-2.014a2.37 2.37 0 0 1-.073-.549 2.3 2.3 0 0 1 .067-.518L3.352 7.485ZM7.68 3.502 3.923 5.718c.017.106.032.214.032.325 0 .168-.026.329-.065.485l3.413 1.996c.342-.593.796-1.114 1.15-1.478V3.942a1.976 1.976 0 0 1-.773-.44ZM9 .973a.895.895 0 0 0-.886.903c0 .498.397.903.886.903.49 0 .887-.405.887-.903A.895.895 0 0 0 9 .972Zm5.09 4.65-3.703-2.177c-.23.235-.52.402-.84.498v3.102c.355.364.81.886 1.151 1.48l3.412-2a2.032 2.032 0 0 1-.064-.484c0-.144.016-.283.043-.419Zm.559 1.864-3.532 2.071c.038.17.065.342.065.512 0 .161-.024.322-.059.483l3.466 2.027c.24-.256.543-.443.88-.543V7.965a1.972 1.972 0 0 1-.82-.479Zm2.26-1.444a.894.894 0 0 0-.886-.903.875.875 0 0 0-.682.332l-.147.26a.894.894 0 0 0 .829 1.213c.49 0 .886-.404.886-.903Zm-.886 7.014a.894.894 0 0 0-.886.903c0 .498.396.902.886.902s.886-.404.886-.902a.894.894 0 0 0-.886-.903Z" fill="#27AA8B"/>
</svg>
<svg viewBox="0 0 53 19" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.522 14.154c-.392 0-.793-.033-1.204-.098a7.78 7.78 0 0 1-1.162-.252 4.695 4.695 0 0 1-.98-.42.974.974 0 0 1-.434-.434 1.084 1.084 0 0 1-.098-.56c.028-.187.098-.35.21-.49a.77.77 0 0 1 .448-.28c.187-.047.392-.014.616.098.383.215.798.373 1.246.476.457.103.91.154 1.358.154.681 0 1.167-.103 1.456-.308.29-.215.434-.48.434-.798a.771.771 0 0 0-.308-.644c-.205-.159-.565-.294-1.078-.406l-1.582-.336c-.896-.187-1.563-.504-2.002-.952-.43-.457-.644-1.055-.644-1.792 0-.467.098-.891.294-1.274.196-.383.471-.714.826-.994s.775-.495 1.26-.644a5.6 5.6 0 0 1 1.624-.224c.523 0 1.036.065 1.54.196.504.121.947.303 1.33.546a.845.845 0 0 1 .378.434.9.9 0 0 1 .07.518.77.77 0 0 1-.21.448.76.76 0 0 1-.434.252c-.177.037-.392-.005-.644-.126a3.955 3.955 0 0 0-.98-.35 5.02 5.02 0 0 0-1.064-.112c-.392 0-.728.051-1.008.154-.27.103-.48.247-.63.434-.14.187-.21.401-.21.644 0 .27.098.49.294.658.196.168.537.303 1.022.406l1.582.336c.915.196 1.596.513 2.044.952.448.43.672.999.672 1.708 0 .467-.093.891-.28 1.274a2.763 2.763 0 0 1-.812.966c-.355.27-.78.48-1.274.63-.495.14-1.05.21-1.666.21Zm6.323-.028c-.346 0-.612-.093-.798-.28-.178-.187-.266-.453-.266-.798V5.082c0-.355.088-.62.266-.798.186-.187.452-.28.798-.28.336 0 .592.093.77.28.186.177.28.443.28.798v3.332h-.196c.214-.457.532-.807.952-1.05.43-.252.914-.378 1.456-.378.55 0 1.003.107 1.358.322.354.205.62.523.798.952.177.42.266.957.266 1.61v3.178c0 .345-.094.611-.28.798-.178.187-.439.28-.784.28-.336 0-.598-.093-.784-.28-.178-.187-.266-.453-.266-.798v-3.08c0-.476-.089-.817-.266-1.022-.168-.215-.43-.322-.784-.322-.448 0-.808.14-1.078.42-.262.28-.392.653-.392 1.12v2.884c0 .719-.35 1.078-1.05 1.078Zm8.326-.014c-.345 0-.611-.098-.798-.294-.177-.205-.266-.49-.266-.854V8.176c0-.373.089-.658.266-.854.187-.205.453-.308.798-.308.336 0 .593.103.77.308.187.196.28.48.28.854v4.788c0 .364-.089.649-.266.854-.177.196-.439.294-.784.294Zm0-8.246c-.392 0-.695-.089-.91-.266-.205-.187-.308-.448-.308-.784 0-.345.103-.607.308-.784.215-.187.518-.28.91-.28s.69.093.896.28c.205.177.308.439.308.784 0 .336-.103.597-.308.784-.205.177-.504.266-.896.266Zm6.924 8.288c-.55 0-1.04-.135-1.47-.406a2.01 2.01 0 0 1-.84-1.106l.154-.462v.868c0 .345-.089.611-.266.798-.177.187-.434.28-.77.28s-.597-.093-.784-.28c-.177-.187-.266-.453-.266-.798V5.082c0-.355.089-.62.266-.798.187-.187.453-.28.798-.28.336 0 .593.093.77.28.187.177.28.443.28.798V8.4h-.168c.15-.42.434-.76.854-1.022.42-.261.9-.392 1.442-.392.607 0 1.134.145 1.582.434.448.29.798.7 1.05 1.232s.378 1.167.378 1.904c0 .737-.126 1.377-.378 1.918-.252.541-.607.957-1.064 1.246-.448.29-.97.434-1.568.434Zm-.63-1.582c.299 0 .56-.075.784-.224.233-.15.41-.369.532-.658.13-.299.196-.677.196-1.134 0-.681-.14-1.18-.42-1.498-.28-.327-.644-.49-1.092-.49-.299 0-.565.07-.798.21-.224.14-.401.36-.532.658-.13.29-.196.663-.196 1.12 0 .681.14 1.19.42 1.526.28.327.649.49 1.106.49Zm7.467 1.582c-.579 0-1.06-.107-1.442-.322a1.972 1.972 0 0 1-.854-.966c-.177-.439-.266-.98-.266-1.624V8.078c0-.355.089-.62.266-.798.187-.177.448-.266.784-.266s.597.089.784.266c.187.177.28.443.28.798v3.22c0 .41.084.719.252.924.168.196.434.294.798.294.401 0 .728-.14.98-.42.261-.29.392-.667.392-1.134V8.078c0-.355.089-.62.266-.798.187-.177.448-.266.784-.266.345 0 .607.089.784.266.187.177.28.443.28.798v4.97c0 .719-.34 1.078-1.022 1.078-.336 0-.593-.093-.77-.28-.177-.187-.266-.453-.266-.798v-.938l.21.546c-.205.476-.5.845-.882 1.106-.383.261-.835.392-1.358.392Zm7.6 2.492a.915.915 0 0 1-.602-.196.775.775 0 0 1-.28-.518c-.028-.205.01-.425.112-.658l.938-2.072v.868l-2.478-5.684a1.357 1.357 0 0 1-.098-.672.756.756 0 0 1 .308-.504c.177-.13.42-.196.728-.196.252 0 .452.06.602.182.158.112.303.331.434.658l1.652 4.2H41.4l1.708-4.214c.13-.317.275-.532.434-.644.168-.121.392-.182.672-.182.242 0 .434.065.574.196a.73.73 0 0 1 .266.49c.037.205 0 .43-.112.672l-3.29 7.462c-.14.317-.299.532-.476.644-.168.112-.383.168-.644.168Zm7.776-2.492c-.504 0-.957-.098-1.358-.294a2.321 2.321 0 0 1-.938-.798 1.998 1.998 0 0 1-.336-1.134c0-.504.13-.9.392-1.19.261-.299.686-.509 1.274-.63.588-.13 1.367-.196 2.338-.196h.742v1.092h-.728c-.476 0-.864.028-1.162.084-.29.047-.5.13-.63.252-.121.121-.182.29-.182.504a.85.85 0 0 0 .266.644c.187.168.453.252.798.252.27 0 .508-.06.714-.182.215-.13.383-.303.504-.518.121-.224.182-.476.182-.756v-1.61c0-.41-.093-.7-.28-.868-.187-.177-.504-.266-.952-.266a3.91 3.91 0 0 0-.826.098 5.52 5.52 0 0 0-.966.294c-.205.093-.387.117-.546.07a.69.69 0 0 1-.364-.28.856.856 0 0 1-.126-.448c0-.168.046-.327.14-.476.093-.159.247-.275.462-.35a6.01 6.01 0 0 1 2.31-.462c.718 0 1.306.107 1.764.322a2.12 2.12 0 0 1 1.05.966c.233.43.35.985.35 1.666v3.108c0 .345-.084.611-.252.798-.168.187-.41.28-.728.28-.317 0-.565-.093-.742-.28-.168-.187-.252-.453-.252-.798v-.518l.098.084a1.799 1.799 0 0 1-1.05 1.358 2.41 2.41 0 0 1-.966.182Z" fill="#000"/>
</svg>
<svg viewBox="0 0 74 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.44 4.331c-1.658.473-4.105 1.461-6.347 3.487-2.253 2.12-.723 4.01-.708 4.03 0 0-.825-1.523 1.172-3.4.025-.021 2.574-2.223 6.28-3.278.473-.135.95-.247 1.42-.334l.033-.006.597-.967-.146.01c-.01.001-.941.071-2.301.458Z" fill="#5928B1"/>
<path d="M14.991 1.62c-.382-.32-.763-.575-.767-.578l-.023-.015-.027.004c-.01 0-1.04.127-2.457.531-2.535.722-5.945 2.204-7.792 5.157-.877 1.34-.17 2.946-.17 2.946l-.022-.409c-.002-.043-.123-4.37 8.746-6.897.777-.221 1.61-.425 2.48-.607l.151-.031-.119-.1Z" fill="#764BC4"/>
<path d="M15.527 2.186c-.011.001-1.178.125-2.804.588-1.72.49-4.225 1.441-6.389 3.185-1.275.99-2.083 2.186-2.215 3.28-.065.534.561 1.667.561 1.667l-.132-.403c-.006-.018-.565-1.851 2.268-3.978 1.587-1.192 3.241-2.008 5.205-2.567 1.013-.288 1.983-.478 3.055-.678l.038-.007.016-.035c.081-.174.468-.935.472-.942l.062-.124-.137.014Z" fill="#764BC4"/>
<path d="M3.13 7.751c.107-1.717 1.407-3.304 3.869-4.718a16.835 16.835 0 0 1 4.31-1.891 15.596 15.596 0 0 1 2.444-.49l-.9-.652c-.009.001-.839.103-2.025.441C3.22 2.608 2.278 6.342 2.36 7.843c.148 2.617 3.23 4.479 3.23 4.479s-2.62-2.012-2.46-4.57Z" fill="#BBA5E1"/>
<path d="M3.224 15.67c1.659-.473 4.106-1.462 6.347-3.487 2.253-2.12.724-4.01.708-4.03 0 0 .825 1.523-1.171 3.399-.026.022-2.574 2.223-6.281 3.279-.473.135-.95.247-1.42.333l-.033.006-.597.967.147-.01c.009 0 .94-.07 2.3-.458Z" fill="#5928B1"/>
<path d="M.673 18.38c.382.32.763.575.767.578l.023.015.027-.004c.01 0 1.04-.128 2.457-.531 2.535-.723 5.945-2.204 7.792-5.157.877-1.341.171-2.946.171-2.946l.021.408c.003.044.124 4.371-8.746 6.898-.777.221-1.61.425-2.48.606l-.151.032.12.1Z" fill="#764BC4"/>
<path d="M.137 17.814c.011-.002 1.178-.126 2.804-.589 1.72-.49 4.226-1.44 6.389-3.184 1.276-.991 2.083-2.187 2.215-3.28.065-.534-.56-1.667-.56-1.667l.13.402c.007.019.566 1.852-2.267 3.979-1.587 1.191-3.241 2.007-5.205 2.567-1.012.288-1.983.477-3.055.678l-.038.007-.016.035c-.081.174-.467.934-.471.942L0 17.828l.137-.014Z" fill="#764BC4"/>
<path d="M12.534 12.25c-.107 1.717-1.407 3.304-3.869 4.717a16.84 16.84 0 0 1-4.309 1.892 15.76 15.76 0 0 1-2.445.49l.9.651a14.67 14.67 0 0 0 2.026-.44c7.607-2.168 8.55-5.902 8.466-7.403-.147-2.617-3.23-4.478-3.23-4.478s2.62 2.011 2.461 4.57Z" fill="#BBA5E1"/>
<path d="M28.754 12.002c0 .316-.04.602-.122.858a2.562 2.562 0 0 1-.32.67 2.11 2.11 0 0 1-.468.494 2.74 2.74 0 0 1-.552.336 2.79 2.79 0 0 1-1.138.253h-6.238v-1.608h6.238c.311 0 .553-.092.724-.275.172-.181.258-.424.258-.729 0-.147-.023-.284-.07-.409a.864.864 0 0 0-.507-.53 1.074 1.074 0 0 0-.405-.074h-3.72c-.26 0-.542-.047-.844-.14a2.574 2.574 0 0 1-.844-.45 2.475 2.475 0 0 1-.647-.81c-.172-.334-.258-.743-.258-1.225 0-.482.086-.89.258-1.223.173-.332.389-.602.647-.81.26-.208.542-.358.844-.452.302-.093.584-.14.844-.14h5.506v1.608h-5.506c-.306 0-.545.094-.717.28-.173.185-.26.43-.26.737 0 .31.087.554.26.734.172.178.41.267.717.267h3.733a2.786 2.786 0 0 1 1.133.275c.193.09.377.204.552.343.173.137.327.302.462.496.136.195.243.418.32.668.08.252.12.537.12.855Zm2.972-6.264v3.626h5.678V5.738h1.616v8.875h-1.616v-3.625h-5.678v3.625H30.11V5.738h1.616Zm10.815 0v8.875h-1.618V5.738h1.618ZM53.33 9.451v1.45a3.84 3.84 0 0 1-.284 1.491 3.536 3.536 0 0 1-.78 1.173 3.591 3.591 0 0 1-1.18.77 3.923 3.923 0 0 1-1.487.278h-4.365a.805.805 0 0 1-.584-.232.776.776 0 0 1-.17-.257.838.838 0 0 1-.06-.322V6.55a.817.817 0 0 1 .23-.576.786.786 0 0 1 .584-.235H49.6c.535 0 1.03.094 1.486.28.457.185.85.441 1.181.769a3.5 3.5 0 0 1 .78 1.177c.19.456.284.952.284 1.487Zm-1.616 1.45V9.45c0-.313-.051-.6-.154-.858a1.85 1.85 0 0 0-.432-.666 1.91 1.91 0 0 0-.669-.427 2.32 2.32 0 0 0-.86-.154h-3.563v5.659h3.563c.315 0 .602-.051.86-.153.26-.1.483-.243.669-.428.187-.183.332-.403.432-.66a2.32 2.32 0 0 0 .154-.864Zm10.534-1.537v1.624h-5.105V9.364h5.105Zm.727 3.64v1.609h-5.832c-.225 0-.47-.04-.735-.119a2.119 2.119 0 0 1-.735-.385 2.178 2.178 0 0 1-.568-.7c-.15-.287-.225-.638-.225-1.054V6.55a.815.815 0 0 1 .233-.576.792.792 0 0 1 .581-.235h7.281v1.608h-6.48v5.01c0 .209.056.369.168.48.113.113.278.169.493.169h5.82Zm10.473-7.266v8.188a.82.82 0 0 1-.064.323.842.842 0 0 1-.175.256.816.816 0 0 1-.575.232.89.89 0 0 1-.303-.055.711.711 0 0 1-.27-.18l-5.907-6.139v6.25h-1.616V6.425c0-.166.046-.315.138-.449a.862.862 0 0 1 .358-.298.805.805 0 0 1 .889.18l5.91 6.13v-6.25h1.615Z" fill="#5928B1"/>
</svg>
<svg viewBox="0 0 101 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M90.748 14.993a.697.697 0 0 1-.488.18.718.718 0 0 1-.505-.18c-.132-.12-.197-.29-.197-.507v-10.9c0-.218.065-.387.197-.507.13-.12.3-.18.505-.18.193 0 .356.06.487.18s.197.29.197.506v10.901c0 .218-.066.386-.197.507Zm-5.142-.318c-.605.355-1.3.532-2.088.532-.787 0-1.48-.177-2.079-.532a3.54 3.54 0 0 1-1.386-1.52c-.325-.657-.487-1.421-.487-2.291 0-.87.162-1.633.487-2.292a3.545 3.545 0 0 1 1.386-1.519c.6-.355 1.292-.532 2.08-.532.786 0 1.482.177 2.087.532A3.52 3.52 0 0 1 87 8.573c.326.658.488 1.421.488 2.291 0 .87-.162 1.634-.488 2.292a3.521 3.521 0 0 1-1.394 1.519ZM85.4 8.504c-.444-.555-1.072-.833-1.882-.833-.81 0-1.437.278-1.882.833-.445.555-.667 1.342-.667 2.36 0 1.03.219 1.82.659 2.369.438.55 1.07.824 1.89.824.822 0 1.452-.272 1.891-.816.44-.543.659-1.335.659-2.377 0-1.018-.223-1.805-.668-2.36Zm-8.137 6.669c-.145 0-.296-.07-.453-.206l-4.385-3.863v3.382c0 .218-.064.386-.193.507a.676.676 0 0 1-.479.18.699.699 0 0 1-.495-.18c-.13-.12-.194-.29-.194-.507v-10.9c0-.218.065-.387.194-.507a.7.7 0 0 1 .495-.18c.19 0 .35.06.48.18.128.12.192.29.192.506v6.97l4.015-3.76a.62.62 0 0 1 .454-.206.59.59 0 0 1 .436.19.617.617 0 0 1 .185.446.69.69 0 0 1-.235.515l-3.309 3.021 3.628 3.227c.18.172.269.355.269.55 0 .171-.059.32-.176.446a.566.566 0 0 1-.429.189Zm-11.525-.498c-.607.355-1.305.532-2.094.532-.79 0-1.485-.177-2.086-.532a3.543 3.543 0 0 1-1.39-1.52c-.327-.657-.49-1.421-.49-2.291 0-.87.163-1.633.49-2.292a3.548 3.548 0 0 1 1.39-1.519c.6-.355 1.296-.532 2.086-.532.79 0 1.487.177 2.094.532a3.53 3.53 0 0 1 1.399 1.52c.326.658.489 1.421.489 2.291 0 .87-.163 1.634-.49 2.292a3.525 3.525 0 0 1-1.398 1.519Zm-.206-6.171c-.446-.555-1.076-.833-1.888-.833-.813 0-1.443.278-1.889.833-.446.555-.67 1.342-.67 2.36 0 1.03.221 1.82.662 2.369.44.55 1.072.824 1.897.824.824 0 1.456-.272 1.896-.816.44-.543.661-1.335.661-2.377 0-1.018-.223-1.805-.67-2.36ZM52.654 9.997c.283.12.689.238 1.22.352.783.172 1.39.36 1.823.567.432.206.74.457.925.755.184.298.276.675.276 1.133 0 .72-.305 1.302-.916 1.742-.61.44-1.417.661-2.42.661a5.917 5.917 0 0 1-1.513-.189 4.627 4.627 0 0 1-1.27-.532 1.695 1.695 0 0 1-.441-.386.73.73 0 0 1-.13-.438c0-.149.044-.271.13-.369a.43.43 0 0 1 .337-.146c.139 0 .34.086.605.257.346.206.689.37 1.029.49.34.12.763.18 1.27.18.623 0 1.107-.108 1.453-.326a1.05 1.05 0 0 0 .518-.944c0-.252-.063-.455-.19-.61-.127-.154-.346-.291-.657-.412-.311-.12-.767-.242-1.366-.368-1.014-.218-1.74-.51-2.178-.876-.438-.366-.657-.864-.657-1.493 0-.493.139-.927.415-1.305.277-.378.66-.675 1.15-.893.49-.217 1.046-.326 1.668-.326.45 0 .884.06 1.305.18.396.11.773.28 1.115.507.392.274.588.56.588.858a.547.547 0 0 1-.285.491.426.426 0 0 1-.182.04c-.138 0-.346-.096-.622-.29a5.527 5.527 0 0 0-.917-.481c-.288-.115-.645-.172-1.07-.172-.543 0-.978.12-1.306.36-.329.24-.493.561-.493.962 0 .252.06.455.181.609.122.154.323.292.605.412ZM40.737 19H20.842l-1.895-6.632h-18c-.93 0-.947-.947-.947-.947V2.895C0 1.083 1.895 1 1.895 1h35.052c1.109 0 1.895 2.842 1.895 2.842l3.79 13.263S42.654 19 40.737 19ZM9.015 3.838h-5.23l1.401 5.696h5.23l-1.4-5.696Zm8.53 0h-5.23l1.402 5.696h5.23l-1.402-5.696ZM29.97 16.153h2.238l-.601-1.884h-2.238l.601 1.884ZM36.23 3.84h-9.701l2.605 9.475h9.701L36.229 3.84Zm2.962 10.43h-2.237l.6 1.884h2.238l-.6-1.884ZM18.474 19H1.894C.056 19 0 17.105 0 17.105v-2.842h17.053L18.473 19Z" fill="#40BFB2"/>
</svg>
<svg viewBox="0 0 78 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.346 5.51 6.368.355A.234.234 0 0 1 6.572 0H9.21a.219.219 0 0 1 .204.12l1.658 2.896a.219.219 0 0 1 0 .233l-1.32 2.262a.234.234 0 0 1-.406 0ZM14.35.355l1.304 2.284a.22.22 0 0 0 .204.098h2.623a.234.234 0 0 0 .204-.354L17.366.121A.24.24 0 0 0 17.178 0H14.54a.234.234 0 0 0-.189.354Zm-3.015 8.602-1.32-2.262a.234.234 0 0 1 0-.241l3.31-5.752a.234.234 0 0 1 .407 0l1.32 2.262a.219.219 0 0 1 0 .233l-3.31 5.737a.233.233 0 0 1-.407.023Zm3.852.701h-2.639a.234.234 0 0 1-.21-.354l3.316-5.737a.219.219 0 0 1 .204-.12h2.638a.241.241 0 0 1 .204.361l-3.31 5.73a.24.24 0 0 1-.203.12Zm1.342 0h5.948a.234.234 0 0 0 .203-.354l-1.32-2.262a.226.226 0 0 0-.225-.143h-3.287a.226.226 0 0 0-.204.12L16.326 9.28a.234.234 0 0 0 .204.377Zm-.79 6.896a.226.226 0 0 0 .119.032h2.638a.233.233 0 0 0 .204-.355l-3.31-5.736a.24.24 0 0 0-.203-.121h-2.639a.234.234 0 0 0-.21.354l3.316 5.737c.02.037.05.068.085.089Zm-5.723-2.984 3.309 5.73a.234.234 0 0 0 .407 0l1.32-2.262a.219.219 0 0 0 0-.234l-3.31-5.737a.234.234 0 0 0-.407 0l-1.32 2.262a.234.234 0 0 0 0 .241Zm7.279 6.397a.242.242 0 0 1-.118.034H14.54a.234.234 0 0 1-.211-.355l1.319-2.261a.24.24 0 0 1 .21-.12h2.64a.233.233 0 0 1 .203.354l-1.32 2.261a.241.241 0 0 1-.085.087ZM9.21 20H6.572a.234.234 0 0 1-.204-.355l2.978-5.126a.234.234 0 0 1 .407 0l1.319 2.262a.219.219 0 0 1 0 .233L9.414 19.88a.219.219 0 0 1-.204.12Zm-3.438-.702 2.97-5.148a.234.234 0 0 0-.203-.355H5.901a.249.249 0 0 0-.204.113L4.04 16.78a.256.256 0 0 0 0 .234l1.319 2.262a.241.241 0 0 0 .414.022Zm15.364-6.196h-3.287a.241.241 0 0 1-.204-.114l-1.319-2.261a.233.233 0 0 1 .204-.354h5.925a.234.234 0 0 1 .204.354l-1.32 2.261a.242.242 0 0 1-.203.114Zm-11.926 0H2.591a.233.233 0 0 1-.203-.347l1.319-2.261a.226.226 0 0 1 .203-.121h6.62a.234.234 0 0 1 .21.354L9.414 12.99a.226.226 0 0 1-.204.113ZM3.707 9.536l-1.32-2.262a.234.234 0 0 1 .204-.354H9.21a.241.241 0 0 1 .211.12l1.32 2.262a.233.233 0 0 1-.212.354H3.91a.226.226 0 0 1-.203-.12Zm-3.679.58 1.35 2.285a.241.241 0 0 0 .384-.023l1.32-2.261a.256.256 0 0 0 0-.234l-1.32-2.261a.241.241 0 0 0-.415 0L.028 9.883a.256.256 0 0 0 0 .234Zm5.67-4.025L4.037 3.22a.256.256 0 0 1 0-.234L5.359.724a.241.241 0 0 1 .414 0l2.97 5.148a.234.234 0 0 1-.203.355H5.901a.249.249 0 0 1-.204-.136Zm28.253 7.915h-1.168a1.46 1.46 0 0 1-1.086-.407 1.448 1.448 0 0 1-.377-1.07V8.835h2.593v-2.05h-2.608v-2.48h-.49l-3.77 3.987v.573h1.72v4.018a3.354 3.354 0 0 0 .904 2.48 3.311 3.311 0 0 0 2.458.905h1.824v-2.262Zm12.74-7.221h2.54l-3.105 9.506h-2.058l-2.149-4.908-2.095 4.908h-2.066l-3.136-9.506h2.6l1.87 5.646 2.465-5.579h.754l2.54 5.594 1.84-5.661Zm13.373 0H58.15l-.294.92a4.523 4.523 0 0 0-3.105-1.161 5.08 5.08 0 0 0-2.548.648 4.62 4.62 0 0 0-1.78 1.794 5.097 5.097 0 0 0-.64 2.548 5.157 5.157 0 0 0 .656 2.593 4.59 4.59 0 0 0 1.779 1.802 5.013 5.013 0 0 0 2.548.656 4.523 4.523 0 0 0 3.083-1.16l.226.843h1.99V6.785Zm-5.612 7.324a2.579 2.579 0 0 1-1.33-.728v.008a2.533 2.533 0 0 1-.755-1.847 2.511 2.511 0 0 1 .754-1.855 2.48 2.48 0 0 1 1.847-.754 2.51 2.51 0 0 1 2.578 2.601 2.578 2.578 0 0 1-3.094 2.575Zm8.07 2.182V3.392h2.563v12.899h-2.563Zm14.662-9.507h-1.922l-.272.95a4.523 4.523 0 0 0-3.113-1.16 5.051 5.051 0 0 0-2.54.648 4.644 4.644 0 0 0-1.787 1.794 5.096 5.096 0 0 0-.641 2.548 5.157 5.157 0 0 0 .64 2.563 4.615 4.615 0 0 0 1.787 1.802 4.98 4.98 0 0 0 2.54.655 4.523 4.523 0 0 0 3.069-1.16l.226.844h2.013V6.784Zm-5.1 7.335a2.668 2.668 0 0 1-1.843-.738v.007a2.54 2.54 0 0 1-.754-1.87 2.52 2.52 0 0 1 .754-1.854 2.457 2.457 0 0 1 1.84-.754 2.488 2.488 0 0 1 1.846.754 2.525 2.525 0 0 1 .754 1.862 2.51 2.51 0 0 1-.754 1.855 2.668 2.668 0 0 1-1.843.738Z" fill="#7A13CE"/>
</svg>
import type { FeaturedNetwork } from 'types/networks';
import appConfig from 'configs/app/config';
import ASSETS from 'lib/networks/networkAssets';
// for easy .env.example update
// const FEATURED_NETWORKS = JSON.stringify([
// {
// title: 'Ethereum',
// url: 'https://blockscout.com/eth/mainnet',
// group: 'mainnets',
// type: 'eth_mainnet',
// },
// {
// title: 'Ethereum Classic',
// url: 'https://blockscout.com/etx/mainnet',
// group: 'mainnets',
// type: 'etc_mainnet',
// },
// {
// title: 'Gnosis Chain',
// url: 'https://blockscout.com/xdai/mainnet',
// group: 'mainnets',
// type: 'xdai_mainnet',
// },
// {
// title: 'Astar (EVM)',
// url: 'https://blockscout.com/astar',
// group: 'mainnets',
// type: 'astar',
// },
// {
// title: 'Shiden (EVM)',
// url: 'https://blockscout.com/shiden',
// group: 'mainnets',
// type: 'astar',
// },
// {
// title: 'Klaytn Mainnet (Cypress)',
// url: 'https://klaytn-mainnet.aws-k8s.blockscout.com/',
// group: 'mainnets',
// type: 'klaytn',
// },
// {
// title: 'Goerli',
// url: 'https://blockscout.com/eth/goerli/',
// group: 'testnets',
// type: 'goerli',
// },
// {
// title: 'Optimism Goerli',
// url: 'https://blockscout.com/optimism/goerli/',
// group: 'testnets',
// type: 'optimism_goerli',
// },
// {
// title: 'Optimism Bedrock Alpha',
// url: 'https://blockscout.com/optimism/bedrock-alpha',
// group: 'testnets',
// type: 'optimism_bedrock_alpha',
// },
// {
// title: 'Gnosis Chiado',
// url: 'https://blockscout.com/gnosis/chiado/',
// group: 'testnets',
// type: 'gnosis_chiado',
// },
// {
// title: 'Shibuya (EVM)',
// url: 'https://blockscout.com/shibuya',
// group: 'testnets',
// type: 'shibuya',
// },
// {
// title: 'Optimism Opcraft',
// url: 'https://blockscout.com/optimism/opcraft',
// group: 'other',
// type: 'optimism_opcraft',
// },
// {
// title: 'Optimism on Gnosis Chain',
// url: 'https://blockscout.com/xdai/optimism',
// group: 'other',
// type: 'optimism_gnosis',
// },
// {
// title: 'ARTIS-Σ1',
// url: 'https://blockscout.com/artis/sigma1',
// group: 'other',
// type: 'artis_sigma1',
// },
// {
// title: 'LUKSO L14',
// url: 'https://blockscout.com/lukso/l14',
// group: 'other',
// type: 'lukso_l14',
// },
// {
// title: 'POA',
// url: 'https://blockscout.com/poa/core',
// group: 'other',
// type: 'poa_core',
// },
// {
// title: 'POA Sokol',
// url: 'https://blockscout.com/poa/sokol',
// group: 'other',
// type: 'poa_sokol',
// },
// ]).replaceAll('"', '\'');
const featuredNetworks: Array<FeaturedNetwork> = (() => {
return appConfig.featuredNetworks.map((network) => ({
...network,
icon: network.icon || (network.type ? ASSETS[network.type]?.icon : undefined),
}));
})();
export default featuredNetworks;
import type React from 'react';
import type { PreDefinedNetwork } from 'types/networks';
import arbitrumIcon from 'icons/networks/icons/arbitrum.svg';
import artisIcon from 'icons/networks/icons/artis.svg';
import baseIcon from 'icons/networks/icons/base.svg';
import ethereumClassicIcon from 'icons/networks/icons/ethereum-classic.svg';
import ethereumIcon from 'icons/networks/icons/ethereum.svg';
import gnosisIcon from 'icons/networks/icons/gnosis.svg';
import goerliIcon from 'icons/networks/icons/goerli.svg';
import optimismIcon from 'icons/networks/icons/optimism.svg';
import poaSokolIcon from 'icons/networks/icons/poa-sokol.svg';
import poaIcon from 'icons/networks/icons/poa.svg';
import rskIcon from 'icons/networks/icons/rsk.svg';
import artisLogo from 'icons/networks/logos/artis.svg';
import astarLogo from 'icons/networks/logos/astar.svg';
import baseLogo from 'icons/networks/logos/base.svg';
import etcLogo from 'icons/networks/logos/etc.svg';
import ethLogo from 'icons/networks/logos/eth.svg';
import gnosisLogo from 'icons/networks/logos/gnosis.svg';
import goerliLogo from 'icons/networks/logos/goerli.svg';
import luksoLogo from 'icons/networks/logos/lukso.svg';
import poaLogo from 'icons/networks/logos/poa.svg';
import rskLogo from 'icons/networks/logos/rsk.svg';
import shibuyaLogo from 'icons/networks/logos/shibuya.svg';
import shidenLogo from 'icons/networks/logos/shiden.svg';
import sokolLogo from 'icons/networks/logos/sokol.svg';
interface NetworkAssets {
icon?: React.FunctionComponent<React.SVGAttributes<SVGElement>>;
logo?: React.FunctionComponent<React.SVGAttributes<SVGElement>>;
smallLogo?: React.FunctionComponent<React.SVGAttributes<SVGElement>>;
}
const networkAssets: Partial<Record<PreDefinedNetwork, NetworkAssets>> = {
xdai_mainnet: {
icon: gnosisIcon,
logo: gnosisLogo,
},
xdai_optimism: {
icon: optimismIcon,
},
xdai_aox: {
icon: arbitrumIcon,
},
eth_mainnet: {
icon: ethereumIcon,
logo: ethLogo,
},
etc_mainnet: {
icon: ethereumClassicIcon,
logo: etcLogo,
},
poa_core: {
icon: poaIcon,
logo: poaLogo,
},
rsk_mainnet: {
icon: rskIcon,
logo: rskLogo,
},
xdai_testnet: {
icon: arbitrumIcon,
logo: gnosisLogo,
},
poa_sokol: {
icon: poaSokolIcon,
logo: sokolLogo,
},
artis_sigma1: {
icon: artisIcon,
logo: artisLogo,
},
lukso_l14: {
logo: luksoLogo,
},
astar: {
logo: astarLogo,
},
shiden: {
logo: shidenLogo,
},
shibuya: {
logo: shibuyaLogo,
},
goerli: {
logo: goerliLogo,
icon: goerliIcon,
},
base_goerli: {
logo: baseLogo,
icon: baseIcon,
},
};
export default networkAssets;
import React from 'react';
import appConfig from 'configs/app/config';
import featuredNetworks from 'lib/networks/featuredNetworks';
export default function useNetworkNavigationItems() {
return React.useMemo(() => {
return featuredNetworks.map((network) => {
return {
...network,
isActive: network.type ? appConfig.network.type === network.type : false,
};
});
}, []);
}
import type { FeaturedNetwork } from 'types/networks';
const FEATURED_NETWORKS: Array<FeaturedNetwork> = [
{ title: 'Gnosis Chain', url: 'https://blockscout.com/xdai/mainnet', group: 'mainnets', type: 'xdai_mainnet' },
{ title: 'Optimism on Gnosis Chain', url: 'https://blockscout.com/xdai/optimism', group: 'mainnets', type: 'xdai_optimism' },
{ title: 'Arbitrum on xDai', url: 'https://blockscout.com/xdai/aox', group: 'mainnets' },
{ title: 'Ethereum', url: 'https://blockscout.com/eth/mainnet', group: 'mainnets', type: 'eth_mainnet' },
{ title: 'Ethereum Classic', url: 'https://blockscout.com/etx/mainnet', group: 'mainnets', type: 'etc_mainnet', icon: 'https://example.com/my-logo.png' },
{ title: 'POA', url: 'https://blockscout.com/poa/core', group: 'mainnets', type: 'poa_core' },
{ title: 'RSK', url: 'https://blockscout.com/rsk/mainnet', group: 'mainnets', type: 'rsk_mainnet' },
{ title: 'Gnosis Chain Testnet', url: 'https://blockscout.com/xdai/testnet', group: 'testnets', type: 'xdai_testnet' },
{ title: 'POA Sokol', url: 'https://blockscout.com/poa/sokol', group: 'testnets', type: 'poa_sokol' },
{ title: 'ARTIS Σ1', url: 'https://blockscout.com/artis/sigma1', group: 'other', type: 'artis_sigma1' },
{ title: 'LUKSO L14', url: 'https://blockscout.com/lukso/l14', group: 'other', type: 'lukso_l14' },
{ title: 'Astar', url: 'https://blockscout.com/astar', group: 'other', type: 'astar' },
{ title: 'Gnosis Chain', url: 'https://blockscout.com/xdai/mainnet', group: 'Mainnets', isActive: true },
{ title: 'Arbitrum on xDai', url: 'https://blockscout.com/xdai/aox', group: 'Mainnets' },
{ title: 'Ethereum', url: 'https://blockscout.com/eth/mainnet', group: 'Mainnets' },
{ title: 'Ethereum Classic', url: 'https://blockscout.com/etx/mainnet', group: 'Mainnets', icon: 'https://localhost:3000/my-logo.png' },
{ title: 'POA', url: 'https://blockscout.com/poa/core', group: 'Mainnets' },
{ title: 'RSK', url: 'https://blockscout.com/rsk/mainnet', group: 'Mainnets' },
{ title: 'Gnosis Chain Testnet', url: 'https://blockscout.com/xdai/testnet', group: 'Testnets' },
{ title: 'POA Sokol', url: 'https://blockscout.com/poa/sokol', group: 'Testnets' },
{ title: 'ARTIS Σ1', url: 'https://blockscout.com/artis/sigma1', group: 'Other' },
{ title: 'LUKSO L14', url: 'https://blockscout.com/lukso/l14', group: 'Other' },
{ title: 'Astar', url: 'https://blockscout.com/astar', group: 'Other' },
];
export const FEATURED_NETWORKS_MOCK = JSON.stringify(FEATURED_NETWORKS).replaceAll('"', '\'');
export const FEATURED_NETWORKS_MOCK = JSON.stringify(FEATURED_NETWORKS);
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="0 0 209.322 209.322">
<path d="M105.572 101.811c9.889-6.368 27.417-16.464 28.106-42.166.536-20.278-9.971-49.506-49.155-50.878C53.041 7.659 39.9 28.251 36.071 46.739l-.928-.126c-1.932 0-3.438 1.28-5.34 2.889-2.084 1.784-4.683 3.979-7.792 4.308-3.573.361-8.111-1.206-11.698-2.449-4.193-1.431-6.624-2.047-8.265-.759C.545 51.765-.13 53.864.02 56.828c.331 6.326 4.971 18.917 16.016 25.778 7.67 4.765 16.248 5.482 20.681 5.482h.006c2.37 0 4.945-.239 7.388-.726 2.741 4.218 5.228 7.476 6.037 9.752 2.054 5.851-27.848 25.087-27.848 55.01 0 29.916 22.013 48.475 56.727 48.475h55.004c30.593 0 70.814-29.908 75.291-92.48-28.541 24.072-42.294-9.969-103.75-6.308zM18.941 77.945C8.775 71.617 4.992 58.922 5.294 55.525c.897.24 2.194.689 3.228 1.042 4.105 1.415 9.416 3.228 14.068 2.707 4.799-.499 8.253-3.437 10.778-5.574.607-.509 1.393-1.176 1.872-1.491.87.315.962.693 1.176 3.14.196 2.26.473 5.37 2.362 9.006 1.437 2.761 3.581 5.705 5.646 8.542 1.701 2.336 4.278 5.871 4.535 6.404-.445 1.184-4.907 3.282-12.229 3.282-6.553.008-13.04-1.679-17.789-4.638zM56.86 49.368c0-4.938 4.001-8.943 8.931-8.943a8.942 8.942 0 0 1 8.942 8.943c0 4.931-4.001 8.942-8.942 8.942-4.937.001-8.931-4.011-8.931-8.942zm92.299 106.03-20.63 11.169 13.408 9.293s-49.854 15.813-72.198-6.885c-11.006-11.16-13.06-28.533 4.124-38.84 17.184-10.312 84.609 3.943 84.609 3.943L134.295 147.8l14.864 7.598z" fill="#ffef07"/>
</svg>
import type { test } from '@playwright/experimental-ct-react';
import type { Browser } from '@playwright/test';
interface Env {
name: string;
......@@ -6,18 +7,22 @@ interface Env {
}
// keep in mind that all passed variables here should be present in env config files (.env.pw or .env.poa)
export default function createContextWithEnvs(envs: Array<Env>): Parameters<typeof test.extend>[0]['context'] {
export default function contextWithEnvs(envs: Array<Env>): Parameters<typeof test.extend>[0]['context'] {
return async({ browser }, use) => {
const context = await browser.newContext({
storageState: {
origins: [
{ origin: 'http://localhost:3100', localStorage: envs },
],
cookies: [],
},
});
const context = await createContextWithEnvs(browser, envs);
await use(context);
await context.close();
};
}
export async function createContextWithEnvs(browser: Browser, envs: Array<Env>) {
return browser.newContext({
storageState: {
origins: [
{ origin: 'http://localhost:3100', localStorage: envs },
],
cookies: [],
},
});
}
......@@ -2,7 +2,7 @@
targetFile='./playwright/envs.js'
declare -a envFiles=('./configs/envs/.env.pw' './configs/envs/.env.poa_core')
declare -a envFiles=('./configs/envs/.env.pw')
touch $targetFile;
truncate -s 0 $targetFile;
......@@ -26,7 +26,7 @@ do
# if there is a value, escape it and add line to target file
escapedConfigValue=$(echo $configValue | sed s/\'/\"/g);
echo "window.process.env.${configName} = localStorage.getItem('${configName}') || '${escapedConfigValue}';" >> $targetFile;
echo "window.process.env.${configName} = localStorage.getItem('${configName}') ?? '${escapedConfigValue}';" >> $targetFile;
done < $envFile
done
......
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 123 24">
<g clip-path="url(#network-logo_svg__a)">
<mask id="network-logo_svg__b" width="123" height="22" x="0" y="1" maskUnits="userSpaceOnUse" style="mask-type:luminance">
<path fill="#fff" d="M122.375 1H0v22h122.375V1Z"/>
</mask>
<g fill="#51AA8F" mask="url(#network-logo_svg__b)">
<path d="M22.28 18.796V4.093h6.204c1.1 0 2.038.169 2.798.506.759.337 1.338.803 1.728 1.398.39.595.58 1.289.58 2.082 0 .615-.11 1.16-.34 1.656-.23.495-.57.902-1.03 1.239-.459.337-1.008.565-1.668.694v.129c.5.119.92.317 1.26.595.339.277.619.614.838 1.001.23.396.43.872.61 1.447l1.269 3.946h-3.157l-1.12-3.51c-.16-.564-.35-1-.569-1.318a1.82 1.82 0 0 0-.86-.684c-.359-.139-.819-.218-1.398-.218h-2.058v5.72h-3.088v.02Zm5.674-8.09c.52 0 .97-.08 1.36-.228.379-.149.679-.387.889-.704.21-.317.32-.714.32-1.17 0-.466-.11-.852-.32-1.16a1.795 1.795 0 0 0-.89-.674 3.98 3.98 0 0 0-1.358-.218h-2.588v4.164h2.587v-.01Zm12.691 8.338c-1.12 0-2.128-.248-3.028-.733a5.355 5.355 0 0 1-2.138-2.073c-.52-.892-.779-1.913-.779-3.063 0-1.14.26-2.162.77-3.054a5.443 5.443 0 0 1 2.127-2.092c.91-.505 1.929-.753 3.068-.753s2.158.248 3.057.753c.9.496 1.609 1.2 2.118 2.092.51.893.77 1.914.77 3.064 0 1.14-.26 2.161-.78 3.053a5.486 5.486 0 0 1-2.128 2.082c-.909.476-1.928.724-3.057.724Zm0-2.449a2.85 2.85 0 0 0 1.528-.416c.45-.278.81-.674 1.08-1.19.26-.515.4-1.12.4-1.814 0-.684-.13-1.29-.39-1.815a2.937 2.937 0 0 0-1.07-1.2 2.892 2.892 0 0 0-1.538-.425c-.57 0-1.08.138-1.529.426-.45.277-.81.684-1.069 1.2-.26.515-.39 1.13-.39 1.824 0 .684.13 1.289.4 1.804.26.516.62.912 1.07 1.19.429.277.938.416 1.508.416Zm12.748 2.449c-1.119 0-2.128-.248-3.027-.733a5.354 5.354 0 0 1-2.138-2.073c-.52-.892-.78-1.913-.78-3.063 0-1.14.26-2.162.77-3.054a5.442 5.442 0 0 1 2.128-2.092c.909-.505 1.928-.753 3.067-.753 1.14 0 2.158.248 3.058.753a5.426 5.426 0 0 1 2.118 2.092c.51.893.769 1.914.769 3.064 0 1.14-.26 2.161-.78 3.053a5.485 5.485 0 0 1-2.128 2.082c-.909.476-1.928.724-3.057.724Zm0-2.449c.57 0 1.08-.139 1.529-.416a2.98 2.98 0 0 0 1.079-1.19c.26-.515.4-1.12.4-1.814 0-.684-.13-1.29-.39-1.815a2.937 2.937 0 0 0-1.07-1.2 2.892 2.892 0 0 0-1.538-.425c-.57 0-1.079.138-1.529.426-.45.277-.809.684-1.069 1.2-.26.515-.39 1.13-.39 1.824 0 .684.13 1.289.4 1.804.26.516.62.912 1.07 1.19.43.277.939.416 1.508.416Zm12.06 2.38c-.949 0-1.708-.149-2.258-.446-.56-.298-.949-.704-1.169-1.2-.23-.506-.34-1.1-.34-1.785v-5.74h-2.008v-2.31h2.009V4.668h2.927v2.826h2.638v2.3h-2.638v5.592c0 .386.12.684.36.892.24.208.63.307 1.169.307.34 0 .699-.04 1.079-.109v2.221a5.416 5.416 0 0 1-1.769.278Zm7.355.079c-1.259 0-2.308-.278-3.147-.833-.84-.555-1.409-1.348-1.709-2.39l2.398-.802c.2.585.51 1.04.92 1.358.41.317.919.476 1.508.476.6 0 1.05-.11 1.36-.317.309-.209.459-.496.459-.833 0-.278-.07-.506-.21-.664-.14-.169-.38-.308-.71-.437-.329-.119-.809-.248-1.418-.386-.96-.208-1.719-.446-2.268-.714-.55-.268-.96-.605-1.219-1.031-.26-.426-.4-.952-.4-1.606 0-.724.19-1.349.56-1.894.37-.545.899-.962 1.598-1.269.7-.297 1.499-.446 2.408-.446.8 0 1.509.109 2.128.337.62.228 1.12.565 1.519 1.011.4.446.68.992.83 1.626l-2.379.793a2.55 2.55 0 0 0-.789-1.17 2.056 2.056 0 0 0-1.289-.426c-.35 0-.65.04-.91.129-.258.09-.459.218-.599.387a.904.904 0 0 0-.21.595c0 .257.06.466.19.614.12.149.35.278.67.387.32.109.79.228 1.399.357 1.008.218 1.808.456 2.378.724.57.257.999.604 1.268 1.02.27.427.41.962.41 1.637 0 .763-.18 1.417-.55 1.982-.369.556-.909.992-1.618 1.31-.709.316-1.568.475-2.578.475Zm10.918-.079c-.95 0-1.709-.149-2.258-.446-.56-.298-.95-.704-1.17-1.2-.229-.506-.339-1.1-.339-1.785v-5.74h-2.008v-2.31h2.008V4.668h2.927v2.826h2.638v2.3h-2.638v5.592c0 .386.12.684.36.892.24.208.63.307 1.17.307.34 0 .699-.04 1.078-.109v2.221a5.401 5.401 0 0 1-1.768.278Zm8.454.069c-1.119 0-2.128-.248-3.027-.733a5.357 5.357 0 0 1-2.138-2.073c-.52-.892-.78-1.913-.78-3.063 0-1.14.26-2.162.77-3.054a5.44 5.44 0 0 1 2.128-2.092c.91-.505 1.928-.753 3.068-.753 1.139 0 2.158.248 3.057.753.9.496 1.609 1.2 2.118 2.092.51.893.77 1.914.77 3.064 0 1.14-.26 2.161-.78 3.053a5.482 5.482 0 0 1-2.128 2.082c-.91.476-1.919.724-3.057.724Zm0-2.449a2.85 2.85 0 0 0 1.529-.416c.45-.278.81-.674 1.08-1.19.26-.515.399-1.12.399-1.814 0-.684-.13-1.29-.39-1.815a2.919 2.919 0 0 0-1.07-1.2 2.89 2.89 0 0 0-1.538-.425c-.569 0-1.078.138-1.528.426-.45.277-.81.684-1.07 1.2-.259.515-.389 1.13-.389 1.824 0 .684.13 1.289.4 1.804.26.516.619.912 1.069 1.19.44.277.939.416 1.509.416Zm13.01 2.459c-1.059 0-2.038-.218-2.937-.664-.91-.446-1.629-1.11-2.178-1.993-.55-.882-.82-1.943-.82-3.173 0-1.219.26-2.27.789-3.172a5.42 5.42 0 0 1 2.138-2.072c.9-.486 1.899-.724 2.988-.724.9 0 1.709.169 2.428.506.72.337 1.329.793 1.809 1.378a5.274 5.274 0 0 1 1.028 1.992l-2.527.724a3.355 3.355 0 0 0-.55-1.1 2.723 2.723 0 0 0-.889-.764c-.35-.188-.76-.277-1.209-.277-.6 0-1.139.148-1.608.436a2.91 2.91 0 0 0-1.1 1.22 4.043 4.043 0 0 0-.399 1.804c0 .704.139 1.309.419 1.824.28.516.66.912 1.129 1.18.47.268.98.406 1.539.406.449 0 .85-.089 1.209-.267.36-.179.659-.427.909-.724.25-.307.44-.644.57-1.011l2.518.743a5.096 5.096 0 0 1-.959 1.854c-.46.565-1.06 1.021-1.799 1.369-.729.327-1.559.505-2.498.505Zm6.685-.258V4.093h2.927v7.912l4.596-4.511h3.387l-4.896 4.7 4.866 6.602h-3.417l-3.527-4.838-1.019.952v3.886h-2.917ZM9.06 6.82a2.747 2.747 0 0 0 2.758-2.737 2.747 2.747 0 0 0-2.757-2.736 2.747 2.747 0 0 0-2.758 2.736A2.747 2.747 0 0 0 9.061 6.82Z"/>
<path d="M16.724 12.54c-1.319-.753-3.007-.307-3.766 1.002a2.72 2.72 0 0 0-.37 1.427c.03 1.21-1.07 1.835-2.108 1.21-.04-.02-.08-.05-.13-.07-1.05-.584-1.05-1.824 0-2.399a2.744 2.744 0 0 0 1.449-2.409v-.06c-.03-1.209 1.069-1.834 2.108-1.209.83.506 1.908.545 2.807.03a2.726 2.726 0 0 0 1.01-3.738 2.77 2.77 0 0 0-3.767-1.001 2.74 2.74 0 0 0-1.379 2.429c.03 1.21-1.07 1.834-2.098 1.21a2.732 2.732 0 0 0-1.439-.407c-.53 0-1.02.148-1.439.396-1.039.615-2.128-.01-2.098-1.21a2.73 2.73 0 0 0-1.379-2.428A2.774 2.774 0 0 0 .358 6.324a2.73 2.73 0 0 0 1.02 3.738 2.785 2.785 0 0 0 2.807-.03c1.04-.625 2.128 0 2.098 1.21v.059c0 1.041.58 1.943 1.45 2.41 1.048.584 1.048 1.823 0 2.399-.04.02-.08.05-.12.069-1.04.615-2.129-.01-2.099-1.21.01-.486-.11-.981-.37-1.437-.759-1.309-2.448-1.755-3.766-1.002-1.32.774-1.769 2.45-1.01 3.758a2.77 2.77 0 0 0 3.767 1.001c.02-.01.03-.02.05-.03 1.04-.624 2.128 0 2.098 1.21v.07c0 1.506 1.24 2.736 2.758 2.736 1.519 0 2.758-1.23 2.758-2.736v-.06c-.03-1.21 1.069-1.834 2.108-1.21.02.01.04.02.06.04 1.319.754 3.007.307 3.766-1.001.76-1.339.31-3.014-1.009-3.768Z"/>
</g>
</g>
<defs>
<clipPath id="network-logo_svg__a">
<path fill="#fff" d="M0 1h122.375v22H0z"/>
</clipPath>
</defs>
</svg>
......@@ -5,5 +5,5 @@ import { RESOURCES } from 'lib/api/resources';
export default function buildApiUrl<R extends ResourceName>(resourceName: R, pathParams?: ResourcePathParams<R>) {
const resource = RESOURCES[resourceName];
return compile('/node-api/proxy/poa/core' + resource.path)(pathParams);
return compile('/node-api/proxy' + resource.path)(pathParams);
}
import type { FunctionComponent, SVGAttributes } from 'react';
export type NetworkGroup = 'mainnets' | 'testnets' | 'other';
export type PreDefinedNetwork = 'xdai_mainnet' | 'xdai_optimism' | 'xdai_aox' | 'eth_mainnet' | 'etc_mainnet' | 'poa_core' |
'rsk_mainnet' | 'xdai_testnet' | 'poa_sokol' | 'artis_sigma1' | 'lukso_l14' | 'astar' | 'shiden' | 'shibuya' | 'goerli' | 'base_goerli';
export type NetworkGroup = 'Mainnets' | 'Testnets' | 'Other';
export interface FeaturedNetwork {
title: string;
url: string;
group: NetworkGroup;
icon?: FunctionComponent<SVGAttributes<SVGElement>> | string;
type?: PreDefinedNetwork;
icon?: string;
isActive?: boolean;
invertIconInDarkMode?: boolean;
}
export interface NetworkExplorer {
......
......@@ -11,7 +11,7 @@ import MockAddressPage from 'ui/address/testUtils/MockAddressPage';
import TokenSelect from './TokenSelect';
const ASSET_URL = 'https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/poa/assets/0xb2a90505dc6680a7a695f7975d0d32EeF610f456/logo.png';
const ASSET_URL = 'https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xb2a90505dc6680a7a695f7975d0d32EeF610f456/logo.png';
const TOKENS_ERC20_API_URL = buildApiUrl('address_tokens', { hash: '1' }) + '?type=ERC-20';
const TOKENS_ERC721_API_URL = buildApiUrl('address_tokens', { hash: '1' }) + '?type=ERC-721';
const TOKENS_ER1155_API_URL = buildApiUrl('address_tokens', { hash: '1' }) + '?type=ERC-1155';
......
......@@ -17,7 +17,7 @@ const Home = () => {
<Page isHomePage>
<Box
w="100%"
backgroundImage={ appConfig.homepage.plateGradient }
backgroundImage={ appConfig.homepage.plate.gradient }
backgroundColor="blue.400"
borderRadius="24px"
padding={{ base: '24px', lg: '48px' }}
......@@ -29,7 +29,7 @@ const Home = () => {
size={{ base: 'md', lg: 'xl' }}
lineHeight={{ base: '32px', lg: '50px' }}
fontWeight={ 600 }
color="white"
color={ appConfig.homepage.plate.textColor }
>
Welcome to { appConfig.network.name } explorer
</Heading>
......@@ -39,7 +39,7 @@ const Home = () => {
columnGap={ 12 }
pl={ 4 }
>
<ColorModeToggler trackBg="whiteAlpha.500"/>
<ColorModeToggler trackBg="blackAlpha.900"/>
{ appConfig.isAccountSupported && <ProfileMenuDesktop/> }
</Flex>
</Flex>
......
......@@ -5,7 +5,7 @@ import TestApp from 'playwright/TestApp';
import TokenSnippet from './TokenSnippet';
const API_URL = 'https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/poa/assets/0x363574E6C5C71c343d7348093D84320c76d5Dd29/logo.png';
const API_URL = 'https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0x363574E6C5C71c343d7348093D84320c76d5Dd29/logo.png';
test.use(devices['iPhone 13 Pro']);
......@@ -43,7 +43,5 @@ test('with logo', async({ mount, page }) => {
</TestApp>,
);
await page.waitForResponse(API_URL),
await expect(component).toHaveScreenshot();
});
import { test, expect, devices } from '@playwright/experimental-ct-react';
import { test as base, expect, devices } from '@playwright/experimental-ct-react';
import React from 'react';
import { FEATURED_NETWORKS_MOCK } from 'mocks/config/network';
import authFixture from 'playwright/fixtures/auth';
import contextWithEnvs, { createContextWithEnvs } from 'playwright/fixtures/contextWithEnvs';
import TestApp from 'playwright/TestApp';
import Burger from './Burger';
test.use({ viewport: devices['iPhone 13 Pro'].viewport });
const FEATURED_NETWORKS_URL = 'https://localhost:3000/featured-networks.json';
const LOGO_URL = 'https://localhost:3000/my-logo.png';
base.use({ viewport: devices['iPhone 13 Pro'].viewport });
const hooksConfig = {
router: {
......@@ -16,7 +21,26 @@ const hooksConfig = {
},
};
const test = base.extend({
context: contextWithEnvs([
{ name: 'NEXT_PUBLIC_FEATURED_NETWORKS', value: FEATURED_NETWORKS_URL },
// eslint-disable-next-line @typescript-eslint/no-explicit-any
]) as any,
});
test('base view', async({ mount, page }) => {
await page.route(FEATURED_NETWORKS_URL, (route) => {
return route.fulfill({
body: FEATURED_NETWORKS_MOCK,
});
});
await page.route(LOGO_URL, (route) => {
return route.fulfill({
status: 200,
path: './playwright/image_s.jpg',
});
});
const component = await mount(
<TestApp>
<Burger/>
......@@ -35,6 +59,18 @@ test.describe('dark mode', () => {
test.use({ colorScheme: 'dark' });
test('base view', async({ mount, page }) => {
await page.route(FEATURED_NETWORKS_URL, (route) => {
return route.fulfill({
body: FEATURED_NETWORKS_MOCK,
});
});
await page.route(LOGO_URL, (route) => {
return route.fulfill({
status: 200,
path: './playwright/image_s.jpg',
});
});
const component = await mount(
<TestApp>
<Burger/>
......@@ -64,8 +100,11 @@ test('submenu', async({ mount, page }) => {
});
test.describe('auth', () => {
const extendedTest = test.extend({
context: ({ context }, use) => {
const extendedTest = base.extend({
context: async({ browser }, use) => {
const context = await createContextWithEnvs(browser, [
{ name: 'NEXT_PUBLIC_FEATURED_NETWORKS', value: FEATURED_NETWORKS_URL },
]);
authFixture(context);
use(context);
},
......
......@@ -8,20 +8,21 @@ import NavigationMobile from 'ui/snippets/navigation/NavigationMobile';
import NetworkLogo from 'ui/snippets/networkMenu/NetworkLogo';
import NetworkMenuButton from 'ui/snippets/networkMenu/NetworkMenuButton';
import NetworkMenuContentMobile from 'ui/snippets/networkMenu/NetworkMenuContentMobile';
import useNetworkMenu from 'ui/snippets/networkMenu/useNetworkMenu';
const Burger = () => {
const iconColor = useColorModeValue('gray.600', 'white');
const { isOpen, onOpen, onClose } = useDisclosure();
const [ isNetworkMenuOpened, setNetworkMenuVisibility ] = React.useState(false);
const networkMenu = useNetworkMenu();
const handleNetworkMenuButtonClick = React.useCallback(() => {
setNetworkMenuVisibility((flag) => !flag);
}, []);
networkMenu.onToggle();
}, [ networkMenu ]);
const handleNetworkLogoClick = React.useCallback((event: React.SyntheticEvent) => {
isNetworkMenuOpened && event.preventDefault();
setNetworkMenuVisibility(false);
}, [ isNetworkMenuOpened ]);
networkMenu.isOpen && event.preventDefault();
networkMenu.onClose();
}, [ networkMenu ]);
return (
<>
......@@ -46,15 +47,15 @@ const Burger = () => {
<Icon as={ testnetIcon } h="14px" w="auto" color="red.400" alignSelf="flex-start"/>
<Flex alignItems="center" justifyContent="space-between">
<NetworkLogo onClick={ handleNetworkLogoClick }/>
{ appConfig.featuredNetworks.length > 0 ? (
{ appConfig.featuredNetworks ? (
<NetworkMenuButton
isMobile
isActive={ isNetworkMenuOpened }
isActive={ networkMenu.isOpen }
onClick={ handleNetworkMenuButtonClick }
/>
) : <Box boxSize={ 9 }/> }
</Flex>
{ isNetworkMenuOpened ? <NetworkMenuContentMobile/> : <NavigationMobile/> }
{ networkMenu.isOpen ? <NetworkMenuContentMobile tabs={ networkMenu.availableTabs } items={ networkMenu.data }/> : <NavigationMobile/> }
</DrawerBody>
</DrawerContent>
</Drawer>
......
......@@ -36,8 +36,8 @@ const ColorModeToggler = forwardRef<ColorModeTogglerProps, 'input'>((props, ref)
getRootProps,
} = useCheckbox({ ...ownProps, isChecked: colorMode === 'light' });
const trackBg = useColorModeValue('blackAlpha.100', 'whiteAlpha.200');
const thumbBg = useColorModeValue('white', 'black');
const trackBg = useColorModeValue('blackAlpha.100', 'whiteAlpha.100');
const thumbBg = 'white';
const transitionProps = getDefaultTransitionProps();
const trackStyles: SystemStyleObject = React.useMemo(() => ({
......@@ -96,7 +96,7 @@ const ColorModeToggler = forwardRef<ColorModeTogglerProps, 'input'>((props, ref)
margin={ 2 }
zIndex="docked"
as={ moonIcon }
color={ useColorModeValue('blue.600', 'white') }
color={ useColorModeValue('blue.300', 'blackAlpha.900') }
{ ...transitionProps }
/>
<chakra.div
......@@ -109,7 +109,7 @@ const ColorModeToggler = forwardRef<ColorModeTogglerProps, 'input'>((props, ref)
margin={ 1.5 }
zIndex="docked"
as={ sunIcon }
color={ useColorModeValue('gray.500', 'blue.600') }
color={ useColorModeValue('blackAlpha.900', 'blue.300') }
{ ...transitionProps }
/>
</chakra.div>
......
import { Box, Flex } from '@chakra-ui/react';
import { test, expect } from '@playwright/experimental-ct-react';
import { test as base, expect } from '@playwright/experimental-ct-react';
import React from 'react';
import * as cookies from 'lib/cookies';
import authFixture from 'playwright/fixtures/auth';
import contextWithEnvs, { createContextWithEnvs } from 'playwright/fixtures/contextWithEnvs';
import TestApp from 'playwright/TestApp';
import NavigationDesktop from './NavigationDesktop';
......@@ -16,6 +17,15 @@ const hooksConfig = {
},
};
const FEATURED_NETWORKS_URL = 'https://localhost:3000/featured-networks.json';
const test = base.extend({
context: contextWithEnvs([
{ name: 'NEXT_PUBLIC_FEATURED_NETWORKS', value: FEATURED_NETWORKS_URL },
// eslint-disable-next-line @typescript-eslint/no-explicit-any
]) as any,
});
test('no auth +@desktop-xl +@dark-mode-xl', async({ mount }) => {
const component = await mount(
<TestApp>
......@@ -30,15 +40,18 @@ test('no auth +@desktop-xl +@dark-mode-xl', async({ mount }) => {
await expect(component).toHaveScreenshot();
});
test.describe('auth', () => {
const extendedTest = test.extend({
context: ({ context }, use) => {
base.describe('auth', () => {
const test = base.extend({
context: async({ browser }, use) => {
const context = await createContextWithEnvs(browser, [
{ name: 'NEXT_PUBLIC_FEATURED_NETWORKS', value: FEATURED_NETWORKS_URL },
]);
authFixture(context);
use(context);
},
});
extendedTest('+@desktop-xl +@dark-mode-xl', async({ mount }) => {
test('+@desktop-xl +@dark-mode-xl', async({ mount }) => {
const component = await mount(
<TestApp>
<Flex w="100%" minH="100vh" alignItems="stretch">
......@@ -85,15 +98,18 @@ test('with submenu +@desktop-xl +@dark-mode', async({ mount, page }) => {
await expect(component).toHaveScreenshot();
});
test.describe('cookie set to false', () => {
const extendedTest = test.extend({
context: ({ context }, use) => {
base.describe('cookie set to false', () => {
const test = base.extend({
context: async({ browser }, use) => {
const context = await createContextWithEnvs(browser, [
{ name: 'NEXT_PUBLIC_FEATURED_NETWORKS', value: FEATURED_NETWORKS_URL },
]);
context.addCookies([ { name: cookies.NAMES.NAV_BAR_COLLAPSED, value: 'false', domain: 'localhost', path: '/' } ]);
use(context);
},
});
extendedTest('navbar is opened +@desktop-xl', async({ mount }) => {
test('navbar is opened +@desktop-xl', async({ mount }) => {
const component = await mount(
<TestApp>
<Flex w="100%" minH="100vh" alignItems="stretch">
......@@ -109,15 +125,18 @@ test.describe('cookie set to false', () => {
});
});
test.describe('cookie set to true', () => {
const extendedTest = test.extend({
context: ({ context }, use) => {
base.describe('cookie set to true', () => {
const test = base.extend({
context: async({ browser }, use) => {
const context = await createContextWithEnvs(browser, [
{ name: 'NEXT_PUBLIC_FEATURED_NETWORKS', value: FEATURED_NETWORKS_URL },
]);
context.addCookies([ { name: cookies.NAMES.NAV_BAR_COLLAPSED, value: 'true', domain: 'localhost', path: '/' } ]);
use(context);
},
});
extendedTest('navbar is collapsed', async({ mount }) => {
test('navbar is collapsed', async({ mount }) => {
const component = await mount(
<TestApp>
<Flex w="100%" minH="100vh" alignItems="stretch">
......
......@@ -77,7 +77,7 @@ const NavigationDesktop = () => {
transitionTimingFunction="ease"
>
<NetworkLogo isCollapsed={ isCollapsed }/>
{ appConfig.featuredNetworks.length > 0 && <NetworkMenu isCollapsed={ isCollapsed }/> }
{ Boolean(appConfig.featuredNetworks) && <NetworkMenu isCollapsed={ isCollapsed }/> }
</Box>
<Box as="nav" mt={ 8 } w="100%">
<VStack as="ul" spacing="1" alignItems="flex-start">
......
......@@ -6,20 +6,11 @@ import TestApp from 'playwright/TestApp';
import NetworkLogo from './NetworkLogo';
test('fallback logo +@desktop-xl +@dark-mode +@dark-mode-xl', async({ mount }) => {
const component = await mount(
<TestApp>
<NetworkLogo/>
</TestApp>,
);
await expect(component.locator('a')).toHaveScreenshot();
});
test.describe('placeholder logo', () => {
const extendedTest = test.extend({
context: contextWithEnvs([
{ name: 'NEXT_PUBLIC_NETWORK_TYPE', value: 'unknown' },
{ name: 'NEXT_PUBLIC_NETWORK_LOGO', value: '' },
{ name: 'NEXT_PUBLIC_NETWORK_ICON', value: '' },
// eslint-disable-next-line @typescript-eslint/no-explicit-any
]) as any,
});
......@@ -36,24 +27,61 @@ test.describe('placeholder logo', () => {
});
test.describe('custom logo', () => {
const LOGO_URL = 'https://example.com/my-logo.png';
const SMALL_LOGO_URL = 'https://example.com/my-logo-short.png';
const LOGO_URL = 'https://localhost:3000/my-logo.png';
const ICON_URL = 'https://localhost:3000/my-icon.png';
const extendedTest = test.extend({
context: contextWithEnvs([
{ name: 'NEXT_PUBLIC_NETWORK_LOGO', value: LOGO_URL },
{ name: 'NEXT_PUBLIC_NETWORK_SMALL_LOGO', value: SMALL_LOGO_URL },
{ name: 'NEXT_PUBLIC_NETWORK_ICON', value: ICON_URL },
// eslint-disable-next-line @typescript-eslint/no-explicit-any
]) as any,
});
extendedTest('+@desktop-xl +@dark-mode +@dark-mode-xl', async({ mount, page }) => {
await page.route(LOGO_URL, (route) => {
return route.fulfill({
status: 200,
path: './playwright/network-logo.svg',
});
});
await page.route(ICON_URL, (route) => {
return route.fulfill({
status: 200,
path: './playwright/duck.svg',
});
});
const component = await mount(
<TestApp>
<NetworkLogo/>
</TestApp>,
);
await expect(component.locator('a')).toHaveScreenshot();
});
});
test.describe('custom logo with dark option', () => {
const LOGO_URL = 'https://localhost:3000/my-logo.png';
const ICON_URL = 'https://localhost:3000/my-icon.png';
const extendedTest = test.extend({
context: contextWithEnvs([
{ name: 'NEXT_PUBLIC_NETWORK_LOGO', value: LOGO_URL },
{ name: 'NEXT_PUBLIC_NETWORK_LOGO_DARK', value: LOGO_URL },
{ name: 'NEXT_PUBLIC_NETWORK_ICON', value: ICON_URL },
{ name: 'NEXT_PUBLIC_NETWORK_ICON_DARK', value: ICON_URL },
// eslint-disable-next-line @typescript-eslint/no-explicit-any
]) as any,
});
extendedTest('-@default +@dark-mode +@dark-mode-xl', async({ mount, page }) => {
await page.route(LOGO_URL, (route) => {
return route.fulfill({
status: 200,
path: './playwright/giant_duck_long.jpg',
});
});
await page.route(SMALL_LOGO_URL, (route) => {
await page.route(ICON_URL, (route) => {
return route.fulfill({
status: 200,
path: './playwright/image_s.jpg',
......
import { Icon, Box, Image, useColorModeValue } from '@chakra-ui/react';
import { Icon, Box, Image, useColorModeValue, Skeleton } from '@chakra-ui/react';
import { route } from 'nextjs-routes';
import React from 'react';
import appConfig from 'configs/app/config';
import smallLogoPlaceholder from 'icons/networks/icons/placeholder.svg';
import logoPlaceholder from 'icons/networks/logos/blockscout.svg';
import ASSETS from 'lib/networks/networkAssets';
import iconPlaceholder from 'icons/networks/icon-placeholder.svg';
import logoPlaceholder from 'icons/networks/logo-placeholder.svg';
interface Props {
isCollapsed?: boolean;
onClick?: (event: React.SyntheticEvent) => void;
}
const NetworkLogo = ({ isCollapsed, onClick }: Props) => {
const LogoFallback = ({ isCollapsed, isSmall }: { isCollapsed?: boolean; isSmall?: boolean }) => {
const field = isSmall ? 'icon' : 'logo';
const logoColor = useColorModeValue('blue.600', 'white');
const href = route({ pathname: '/' });
const [ isLogoError, setLogoError ] = React.useState(false);
const [ isSmallLogoError, setSmallLogoError ] = React.useState(false);
const style = useColorModeValue({}, { filter: 'brightness(0) invert(1)' });
const handleSmallLogoError = React.useCallback(() => {
setSmallLogoError(true);
}, []);
const display = isSmall ? {
base: 'none',
lg: isCollapsed === false ? 'none' : 'block',
xl: isCollapsed ? 'block' : 'none',
} : {
base: 'block',
lg: isCollapsed === false ? 'block' : 'none',
xl: isCollapsed ? 'none' : 'block',
};
const handleLogoError = React.useCallback(() => {
setLogoError(true);
}, []);
if (appConfig.network[field].default) {
return <Skeleton w="100%" borderRadius="sm" display={ display }/>;
}
const logoEl = (() => {
const fallbackLogoSrc = appConfig.network.type ? ASSETS[appConfig.network.type]?.logo : undefined;
const fallbackSmallLogoSrc = appConfig.network.type ? ASSETS[appConfig.network.type]?.smallLogo || ASSETS[appConfig.network.type]?.icon : undefined;
const logo = appConfig.network.logo;
const smallLogo = appConfig.network.smallLogo;
return (
<Icon
as={ isSmall ? iconPlaceholder : logoPlaceholder }
width="auto"
height="100%"
color={ logoColor }
display={ display }
/>
);
};
const fallbackLogo = (
<Icon
as={ fallbackLogoSrc || logoPlaceholder }
width="auto"
height="100%"
color={ fallbackLogoSrc ? undefined : logoColor }
display={{ base: 'block', lg: isCollapsed === false ? 'block' : 'none', xl: isCollapsed ? 'none' : 'block' }}
style={ style }
/>
);
const fallbackSmallLogo = (
<Icon
as={ fallbackSmallLogoSrc || smallLogoPlaceholder }
width="auto"
height="100%"
color={ fallbackSmallLogoSrc ? undefined : logoColor }
display={{ base: 'none', lg: isCollapsed === false ? 'none' : 'block', xl: isCollapsed ? 'block' : 'none' }}
style={ style }
/>
);
const NetworkLogo = ({ isCollapsed, onClick }: Props) => {
return (
<>
{ /* big logo */ }
<Image
w="auto"
h="100%"
src={ logo }
display={{ base: 'block', lg: isCollapsed === false ? 'block' : 'none', xl: isCollapsed ? 'none' : 'block' }}
alt={ `${ appConfig.network.name } network logo` }
fallback={ isLogoError || !logo ? fallbackLogo : undefined }
onError={ handleLogoError }
/>
{ /* small logo */ }
<Image
w="auto"
h="100%"
src={ smallLogo }
display={{ base: 'none', lg: isCollapsed === false ? 'none' : 'block', xl: isCollapsed ? 'block' : 'none' }}
alt={ `${ appConfig.network.name } network logo` }
fallback={ isSmallLogoError || !smallLogo ? fallbackSmallLogo : undefined }
onError={ handleSmallLogoError }
/>
</>
);
})();
const logoSrc = useColorModeValue(appConfig.network.logo.default, appConfig.network.logo.dark || appConfig.network.logo.default);
const iconSrc = useColorModeValue(appConfig.network.icon.default, appConfig.network.icon.dark || appConfig.network.icon.default);
const darkModeFilter = { filter: 'brightness(0) invert(1)' };
const logoStyle = useColorModeValue({}, !appConfig.network.logo.dark ? darkModeFilter : {});
const iconStyle = useColorModeValue({}, !appConfig.network.icon.dark ? darkModeFilter : {});
return (
// TODO switch to <NextLink href={ href } passHref> when main page for network will be ready
<Box
as="a"
href={ href }
width={{ base: 'auto', lg: isCollapsed === false ? '113px' : '30px', xl: isCollapsed ? '30px' : '113px' }}
href={ route({ pathname: '/' }) }
width={{ base: 'auto', lg: isCollapsed === false ? '120px' : '30px', xl: isCollapsed ? '30px' : '120px' }}
height={{ base: '20px', lg: isCollapsed === false ? '20px' : '30px', xl: isCollapsed ? '30px' : '20px' }}
display="inline-flex"
overflow="hidden"
......@@ -95,7 +61,26 @@ const NetworkLogo = ({ isCollapsed, onClick }: Props) => {
flexShrink={ 0 }
aria-label="Link to main page"
>
{ logoEl }
{ /* big logo */ }
<Image
w="auto"
h="100%"
src={ logoSrc }
alt={ `${ appConfig.network.name } network logo` }
fallback={ <LogoFallback isCollapsed={ isCollapsed }/> }
display={{ base: 'block', lg: isCollapsed === false ? 'block' : 'none', xl: isCollapsed ? 'none' : 'block' }}
style={ logoStyle }
/>
{ /* small logo */ }
<Image
w="auto"
h="100%"
src={ iconSrc }
alt={ `${ appConfig.network.name } network logo` }
fallback={ <LogoFallback isCollapsed={ isCollapsed } isSmall/> }
display={{ base: 'none', lg: isCollapsed === false ? 'none' : 'block', xl: isCollapsed ? 'block' : 'none' }}
style={ iconStyle }
/>
</Box>
);
};
......
......@@ -7,9 +7,11 @@ import TestApp from 'playwright/TestApp';
import NetworkMenu from './NetworkMenu';
const FEATURED_NETWORKS_URL = 'https://localhost:3000/featured-networks.json';
const extendedTest = test.extend({
context: contextWithEnvs([
{ name: 'NEXT_PUBLIC_FEATURED_NETWORKS', value: FEATURED_NETWORKS_MOCK },
{ name: 'NEXT_PUBLIC_FEATURED_NETWORKS', value: FEATURED_NETWORKS_URL },
// eslint-disable-next-line @typescript-eslint/no-explicit-any
]) as any,
});
......@@ -17,13 +19,19 @@ const extendedTest = test.extend({
extendedTest.use({ viewport: { width: 1600, height: 1000 } });
extendedTest('base view +@dark-mode', async({ mount, page }) => {
const LOGO_URL = 'https://example.com/my-logo.png';
const LOGO_URL = 'https://localhost:3000/my-logo.png';
await page.route(LOGO_URL, (route) => {
return route.fulfill({
status: 200,
path: './playwright/image_s.jpg',
});
});
await page.route(FEATURED_NETWORKS_URL, (route) => {
return route.fulfill({
status: 200,
body: FEATURED_NETWORKS_MOCK,
});
});
const component = await mount(
<TestApp>
......@@ -39,6 +47,6 @@ extendedTest('base view +@dark-mode', async({ mount, page }) => {
await component.locator('button[aria-label="Network menu"]').click();
await expect(page).toHaveScreenshot({ clip: { x: 0, y: 0, width: 450, height: 550 } });
await component.getByText(/optimism/i).hover();
await component.getByText(/poa/i).hover();
await expect(page).toHaveScreenshot({ clip: { x: 0, y: 0, width: 450, height: 550 } });
});
......@@ -3,26 +3,27 @@ import React from 'react';
import NetworkMenuButton from './NetworkMenuButton';
import NetworkMenuContentDesktop from './NetworkMenuContentDesktop';
import useNetworkMenu from './useNetworkMenu';
interface Props {
isCollapsed?: boolean;
}
const NetworkMenu = ({ isCollapsed }: Props) => {
const menu = useNetworkMenu();
return (
<Popover openDelay={ 300 } placement="right-start" gutter={ 8 } isLazy>
{ ({ isOpen }) => (
<>
<PopoverTrigger>
<NetworkMenuButton
marginLeft="auto"
overflow="hidden"
width={{ base: 'auto', lg: isCollapsed === false ? 'auto' : '0px', xl: isCollapsed ? '0px' : 'auto' }}
isActive={ isOpen }
/>
</PopoverTrigger>
<NetworkMenuContentDesktop/>
</>
) }
<Popover openDelay={ 300 } placement="right-start" gutter={ 8 } isLazy isOpen={ menu.isOpen } onClose={ menu.onClose }>
<PopoverTrigger>
<NetworkMenuButton
marginLeft="auto"
overflow="hidden"
width={{ base: 'auto', lg: isCollapsed === false ? 'auto' : '0px', xl: isCollapsed ? '0px' : 'auto' }}
isActive={ menu.isOpen }
onClick={ menu.onToggle }
/>
</PopoverTrigger>
<NetworkMenuContentDesktop items={ menu.data } tabs={ menu.availableTabs }/>
</Popover>
);
};
......
import { PopoverContent, PopoverBody, Text, Tabs, TabList, TabPanels, TabPanel, Tab, VStack } from '@chakra-ui/react';
import { PopoverContent, PopoverBody, Text, Tabs, TabList, TabPanels, TabPanel, Tab, VStack, Skeleton, Flex } from '@chakra-ui/react';
import React from 'react';
import type { NetworkGroup } from 'types/networks';
import featuredNetworks from 'lib/networks/featuredNetworks';
import useNetworkNavigationItems from 'lib/networks/useNetworkNavigationItems';
import type { FeaturedNetwork, NetworkGroup } from 'types/networks';
import NetworkMenuLink from './NetworkMenuLink';
const TABS: Array<NetworkGroup> = [ 'mainnets', 'testnets', 'other' ];
const availableTabs = TABS.filter((tab) => featuredNetworks.some(({ group }) => group === tab));
interface Props {
tabs: Array<NetworkGroup>;
items?: Array<FeaturedNetwork>;
}
const NetworkMenuPopup = ({ items, tabs }: Props) => {
const selectedNetwork = items?.find(({ isActive }) => isActive);
const selectedTab = tabs.findIndex((tab) => selectedNetwork?.group === tab);
const NetworkMenuPopup = () => {
const items = useNetworkNavigationItems();
const selectedNetwork = items.find(({ isActive }) => isActive);
const selectedTab = availableTabs.findIndex((tab) => selectedNetwork?.group === tab);
const content = !items || items.length === 0 ? (
<>
<Skeleton h="30px" w="120px"/>
<Flex mt={ 4 } alignItems="center">
<Skeleton h="40px" w="105px"/>
<Skeleton h="24px" w="68px" mx={ 4 }/>
<Skeleton h="24px" w="45px" mx={ 4 }/>
</Flex>
<Flex mt={ 8 } flexDir="column" rowGap={ 2 }>
<Flex mx={ 4 } my={ 2 } alignItems="center">
<Skeleton h="30px" w="30px" borderRadius="full"/>
<Skeleton h="24px" w="120px" ml={ 3 }/>
</Flex>
<Flex mx={ 4 } my={ 2 } alignItems="center">
<Skeleton h="30px" w="30px" borderRadius="full"/>
<Skeleton h="24px" w="180px" ml={ 3 }/>
</Flex>
<Flex mx={ 4 } my={ 2 } alignItems="center">
<Skeleton h="30px" w="30px" borderRadius="full"/>
<Skeleton h="24px" w="150px" ml={ 3 }/>
</Flex>
</Flex>
</>
) : (
<>
<Text as="h4" fontSize="18px" lineHeight="30px" fontWeight="500">Networks</Text>
<Tabs variant="soft-rounded" mt={ 4 } isLazy defaultIndex={ selectedTab !== -1 ? selectedTab : undefined }>
{ tabs.length > 1 && (
<TabList>
{ tabs.map((tab) => <Tab key={ tab } textTransform="capitalize">{ tab }</Tab>) }
</TabList>
) }
<TabPanels mt={ 8 }>
{ tabs.map((tab) => (
<TabPanel key={ tab } p={ 0 }>
<VStack as="ul" spacing={ 2 } alignItems="stretch" mt={ 4 }>
{ items
.filter((network) => network.group === tab)
.map((network) => (
<NetworkMenuLink
key={ network.title }
{ ...network }
/>
)) }
</VStack>
</TabPanel>
)) }
</TabPanels>
</Tabs>
</>
);
return (
<PopoverContent w="382px">
<PopoverBody>
<Text as="h4" fontSize="18px" lineHeight="30px" fontWeight="500">Networks</Text>
<Tabs variant="soft-rounded" mt={ 4 } isLazy defaultIndex={ selectedTab !== -1 ? selectedTab : undefined }>
{ availableTabs.length > 1 && (
<TabList>
{ availableTabs.map((tab) => <Tab key={ tab } textTransform="capitalize">{ tab }</Tab>) }
</TabList>
) }
<TabPanels mt={ 8 }>
{ availableTabs.map((tab) => (
<TabPanel key={ tab } p={ 0 }>
<VStack as="ul" spacing={ 2 } alignItems="stretch" mt={ 4 }>
{ items
.filter((network) => network.group === tab)
.map((network) => (
<NetworkMenuLink
key={ network.title }
{ ...network }
/>
)) }
</VStack>
</TabPanel>
)) }
</TabPanels>
</Tabs>
{ content }
</PopoverBody>
</PopoverContent>
);
};
export default NetworkMenuPopup;
export default React.memo(NetworkMenuPopup);
import { Box, Select, VStack } from '@chakra-ui/react';
import { Box, Select, VStack, Skeleton, Flex } from '@chakra-ui/react';
import capitalize from 'lodash/capitalize';
import React from 'react';
import type { NetworkGroup } from 'types/networks';
import useNetworkNavigationItems from 'lib/networks/useNetworkNavigationItems';
import type { NetworkGroup, FeaturedNetwork } from 'types/networks';
import NetworkMenuLink from './NetworkMenuLink';
const TABS: Array<NetworkGroup> = [ 'mainnets', 'testnets', 'other' ];
interface Props {
tabs: Array<NetworkGroup>;
items?: Array<FeaturedNetwork>;
}
const NetworkMenuContentMobile = ({ items, tabs }: Props) => {
const selectedNetwork = items?.find(({ isActive }) => isActive);
const [ selectedTab, setSelectedTab ] = React.useState<NetworkGroup>('Mainnets');
const NetworkMenuContentMobile = () => {
const items = useNetworkNavigationItems();
const selectedNetwork = items.find(({ isActive }) => isActive);
const [ selectedTab, setSelectedTab ] = React.useState<NetworkGroup>(TABS.find((tab) => selectedNetwork?.group === tab) || 'mainnets');
React.useEffect(() => {
if (items) {
setSelectedTab(tabs.find((tab) => selectedNetwork?.group === tab) || 'Mainnets');
}
}, [ items, selectedNetwork?.group, tabs ]);
const handleSelectChange = React.useCallback((event: React.ChangeEvent<HTMLSelectElement>) => {
setSelectedTab(event.target.value as NetworkGroup);
}, []);
return (
<Box mt={ 6 }>
const content = !items || items.length === 0 ? (
<>
<Skeleton h="32px" w="100%"/>
<Flex mt={ 6 } flexDir="column" rowGap={ 2 }>
<Flex mx={ 3 } my={ 2 } alignItems="center">
<Skeleton h="30px" w="30px" borderRadius="full"/>
<Skeleton h="20px" w="60px" ml={ 3 }/>
</Flex>
<Flex mx={ 3 } my={ 2 } alignItems="center">
<Skeleton h="30px" w="30px" borderRadius="full"/>
<Skeleton h="20px" w="120px" ml={ 3 }/>
</Flex>
<Flex mx={ 3 } my={ 2 } alignItems="center">
<Skeleton h="30px" w="30px" borderRadius="full"/>
<Skeleton h="20px" w="80px" ml={ 3 }/>
</Flex>
</Flex>
</>
) : (
<>
<Select size="xs" borderRadius="base" value={ selectedTab } onChange={ handleSelectChange } focusBorderColor="none">
{ TABS.map((tab) => <option key={ tab } value={ tab }>{ capitalize(tab) }</option>) }
{ tabs.map((tab) => <option key={ tab } value={ tab }>{ capitalize(tab) }</option>) }
</Select>
<VStack as="ul" spacing={ 2 } alignItems="stretch" mt={ 6 }>
{ items
......@@ -36,8 +60,14 @@ const NetworkMenuContentMobile = () => {
))
}
</VStack>
</>
);
return (
<Box mt={ 6 }>
{ content }
</Box>
);
};
export default NetworkMenuContentMobile;
export default React.memo(NetworkMenuContentMobile);
import { Box, Flex, Icon, Text, Image } from '@chakra-ui/react';
import { Box, Flex, Icon, Text, Image, useColorModeValue } from '@chakra-ui/react';
import React from 'react';
import type { FeaturedNetwork } from 'types/networks';
import checkIcon from 'icons/check.svg';
import placeholderIcon from 'icons/networks/icons/placeholder.svg';
import placeholderIcon from 'icons/networks/icon-placeholder.svg';
import useColors from './useColors';
interface Props extends FeaturedNetwork {
isActive: boolean;
isActive?: boolean;
isMobile?: boolean;
}
const NetworkMenuLink = ({ title, icon, isActive, isMobile, url }: Props) => {
const hasIcon = Boolean(icon);
const colors = useColors({ hasIcon });
const NetworkMenuLink = ({ title, icon, isActive, isMobile, url, invertIconInDarkMode }: Props) => {
const colors = useColors();
const darkModeFilter = { filter: 'brightness(0) invert(1)' };
const style = useColorModeValue({}, invertIconInDarkMode ? darkModeFilter : {});
const iconEl = typeof icon === 'string' ? (
<Image w="30px" h="30px" src={ icon } alt={ `${ title } network icon` }/>
const iconEl = icon ? (
<Image w="30px" h="30px" src={ icon } alt={ `${ title } network icon` } style={ style }/>
) : (
<Icon
as={ hasIcon ? icon : placeholderIcon }
as={ placeholderIcon }
boxSize="30px"
color={ isActive ? colors.icon.active : colors.icon.default }
color={ colors.iconPlaceholder.default }
/>
);
......
import { useColorModeValue } from '@chakra-ui/react';
export default function useColors({ hasIcon }: {hasIcon: boolean}) {
const iconDefaultColor = useColorModeValue('blackAlpha.600', 'whiteAlpha.600');
const iconPlaceholderDefaultColor = useColorModeValue('blackAlpha.100', 'whiteAlpha.100');
export default function useColors() {
return {
text: {
'default': useColorModeValue('gray.600', 'gray.400'),
active: useColorModeValue('blackAlpha.900', 'whiteAlpha.900'),
hover: useColorModeValue('blue.600', 'link_hovered'),
},
icon: {
'default': hasIcon ? iconDefaultColor : iconPlaceholderDefaultColor,
active: useColorModeValue('blackAlpha.900', 'whiteAlpha.900'),
iconPlaceholder: {
'default': useColorModeValue('blackAlpha.100', 'whiteAlpha.300'),
},
bg: {
'default': 'transparent',
......
import { useDisclosure } from '@chakra-ui/react';
import { useQuery } from '@tanstack/react-query';
import React from 'react';
import type { FeaturedNetwork, NetworkGroup } from 'types/networks';
import appConfig from 'configs/app/config';
import type { ResourceError } from 'lib/api/resources';
import useApiFetch from 'lib/hooks/useFetch';
const TABS: Array<NetworkGroup> = [ 'Mainnets', 'Testnets', 'Other' ];
export default function useNetworkMenu() {
const { isOpen, onClose, onOpen, onToggle } = useDisclosure();
const apiFetch = useApiFetch();
const { isLoading, data } = useQuery<unknown, ResourceError<unknown>, Array<FeaturedNetwork>>(
[ 'featured-network' ],
async() => apiFetch(appConfig.featuredNetworks || ''),
{
enabled: Boolean(appConfig.featuredNetworks) && isOpen,
staleTime: Infinity,
});
return React.useMemo(() => ({
isOpen,
onClose,
onOpen,
onToggle,
isLoading,
data,
availableTabs: TABS.filter((tab) => data?.some(({ group }) => group === tab)),
}), [ isOpen, onClose, onOpen, onToggle, data, isLoading ]);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment