Commit fca19356 authored by tom's avatar tom

Merge branch 'main' of github.com:tom2drum/block-scout into tx-page-details

parents bfc01d4f dcb4632b
......@@ -44,5 +44,6 @@ The app instance could be customized by passing following variables to NodeJS en
| group | `mainnets \| testnets \| other` | Indicates in which tab network appears in the menu | `"mainnets"` |
| isAccountSupported | `boolean` *(optional)* | Set to true if network has account feature | `true` |
| icon | `string` *(optional)* | 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 30px by 30px | `"https://www.fillmurray.com/60/60"` |
| logo | `string` *(optional)* | 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://www.fillmurray.com/240/40"` |
*Note* the base path for the network is built up from its `type` and `subType` like so `https://blockscout.com/<type>/<subType>`
\ No newline at end of file
const parseNetworkConfig = require('../../lib/networks/parseNetworkConfig');
async function rewrites() {
// there can be networks without subtype
// routing in nextjs allows optional params only at the end of the path
// if there are paths with subtype and subsubtype, we will change the routing
// but so far we think we're ok with this hack
const networksFromConfig = parseNetworkConfig();
return networksFromConfig.filter(n => !n.subType).map(n => ({
source: `/${ n.type }/:slug*`,
destination: `/${ n.type }/mainnet/:slug*`,
}));
}
module.exports = rewrites;
<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.12c.002.01.002.02 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-.018c.028-.02.057-.042.082-.065a2.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.118 0-.313.054-.583.16-.81.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.237-.265.159-.471.385-.618.678-.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>
This diff is collapsed.
<svg viewBox="0 0 114 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.21 0a1 1 0 0 1 1 1v2.167a1 1 0 0 1-1 1H5.687a1 1 0 0 0-1 1V19a1 1 0 0 1-1 1H1.5a1 1 0 0 1-1-1V5.167a1 1 0 0 1 1-1h1.521a1 1 0 0 0 1-1V1a1 1 0 0 1 1-1H7.21Zm8.404 0a1 1 0 0 1 1 1v2.167a1 1 0 0 0 1 1h1.376a1 1 0 0 1 1 1V19a1 1 0 0 1-1 1H16.8a1 1 0 0 1-1-1V5.167a1 1 0 0 0-1-1h-1.375a1 1 0 0 1-1-1V1a1 1 0 0 1 1-1h2.188Zm-4.246 7.976a1 1 0 0 1 1 1v6.095a1 1 0 0 1-1 1H9.18a1 1 0 0 1-1-1V8.976a1 1 0 0 1 1-1h2.188Zm26.776-2.131h1.035l-.005 9.71h1.821V4.181h-2.851v1.664ZM33.15 4.533h-4.948v11.03h5.223c2.225 0 3.452-1.396 3.452-3.17a2.825 2.825 0 0 0-.529-1.726 2.81 2.81 0 0 0-1.463-1.049v-.052a2.456 2.456 0 0 0 1.494-2.343c0-1.588-1.134-2.69-3.23-2.69Zm1.391 3.005c0 .891-.567 1.477-1.357 1.477h-3.139V6.061h3.139c.79 0 1.357.586 1.357 1.477Zm.498 4.734c0 1.05-.687 1.774-1.632 1.774h-3.362v-3.532h3.362c.945 0 1.632.707 1.632 1.758Zm7.642-.793c0-2.498 1.84-4.342 4.383-4.342s4.398 1.826 4.398 4.342c0 2.516-1.838 4.325-4.398 4.325-2.56 0-4.383-1.827-4.383-4.325Zm3.902 2.688h.982c1.117 0 2.096-1.189 2.096-2.688 0-1.5-.982-2.708-2.096-2.708h-.982c-1.116 0-2.095 1.231-2.095 2.708s.979 2.688 2.095 2.688Zm10.342-7.03c-2.525 0-4.28 1.775-4.28 4.325 0 2.55 1.735 4.342 4.253 4.357 2.071 0 3.681-1.103 3.927-3.223h-1.77a1.75 1.75 0 0 1-1.752 1.602h-.859c-1.1 0-1.993-1.22-1.993-2.722 0-1.501.893-2.707 1.993-2.707h.859c.79 0 1.563.482 1.735 1.568h1.77c-.258-2.149-1.856-3.2-3.883-3.2Zm5.53-2.956h1.803v6.274h1.308l2.44-3.084h2.06l-3.006 3.808 3.144 4.376H68.04l-2.629-3.618h-1.153v3.618h-1.804V4.181Zm10.309 8.918h-1.735c.066 1.792 1.227 2.705 3.62 2.702 2.473 0 3.59-.93 3.59-2.619 0-1.31-.722-2.154-2.285-2.343l-1.926-.246c-.74-.104-1.083-.465-1.083-1 0-.534.361-.947 1.134-.947h1.033c.894 0 1.186.5 1.272 1.206h1.735c-.067-1.878-1.338-2.722-3.436-2.722-2.192 0-3.419.896-3.419 2.55 0 1.257.722 2.222 2.337 2.412l1.909.246c.739.106 1.048.433 1.048.985 0 .551-.378.964-1.186.964h-1.136c-.94 0-1.386-.465-1.472-1.188Zm6.609-1.637c0-2.55 1.752-4.325 4.28-4.325 2.027 0 3.624 1.051 3.882 3.2h-1.77c-.171-1.086-.944-1.568-1.734-1.568h-.86c-1.101 0-1.995 1.206-1.995 2.707 0 1.502.894 2.723 1.996 2.723h.859a1.75 1.75 0 0 0 1.752-1.602h1.77c-.246 2.119-1.856 3.222-3.927 3.222-2.516-.015-4.253-1.807-4.253-4.357Zm13.706-4.325c-2.543 0-4.38 1.844-4.38 4.342 0 2.498 1.818 4.325 4.38 4.325s4.4-1.81 4.4-4.325c0-2.516-1.858-4.342-4.4-4.342Zm.5 7.03h-.976c-1.117 0-2.101-1.211-2.101-2.688s.98-2.708 2.096-2.708h.981c1.117 0 2.099 1.209 2.099 2.708s-.982 2.688-2.099 2.688Zm5.397-1.637V7.38h1.804v4.842c0 1.19.601 1.896 1.391 1.896h.982c.842 0 1.598-.776 1.598-1.896V7.381h1.806v8.184h-1.755v-1.12c-.491.844-1.357 1.361-2.68 1.361-1.978-.002-3.146-1.157-3.146-3.276Zm10.582-3.557v4.677c0 1.223.736 1.913 2.057 1.915h1.963v-1.637h-1.443c-.584 0-.756-.258-.756-.792v-4.17h2.13V7.38h-2.13V5.086h-1.821v2.295h-1.58v1.592h1.58Z" fill="#2B6CB0"/>
</svg>
This diff is collapsed.
<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-.592c-.319.22-.586.505-.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.479ZM3.087 5.08l4.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.542c0 .44-.156.813-.467 1.116-.312.304-.68.456-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.116v5.451h2.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>
This diff is collapsed.
<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.027c.587 0 1.109.266 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.902.489 0 .886-.404.886-.902a.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.903.489 0 .886-.404.886-.902a.894.894 0 0 0-.886-.903Zm1.374 2.346c-.23.225-.512.39-.82.48v4.072c.36.11.68.314.923.595l3.436-2.014a2.37 2.37 0 0 1-.073-.549c0-.172.027-.346.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.434c.075.168.098.34.07.518a.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-.406-.42-.28-.7-.649-.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.196.15.121.238.285.266.49.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.504 0 .261.089.476.266.644.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-.266-.252 0-.527.033-.826.098-.29.056-.611.154-.966.294-.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.891c1.324-.378 2.444-.49 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.479S2.97 10.31 3.13 7.752Z" 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.892c-1.325.377-2.445.49-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.769.333.329.593.721.78 1.177.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-.66.103-.259.154-.547.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.532.604.355 1.07.861 1.394 1.52.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-.206c.168 0 .313.064.436.19a.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-.532c-.208-.137-.354-.266-.441-.386a.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.23L9.016 3.838Zm8.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.701l-2.606-9.475Zm2.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.802c.773.441 1.65.668 2.54.655a4.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>
This diff is collapsed.
......@@ -7,9 +7,9 @@ export default function getUrlWithNetwork(_req: NextApiRequest, path: string) {
const networkType = _req.cookies[cookies.NAMES.NETWORK_TYPE];
const networkSubType = _req.cookies[cookies.NAMES.NETWORK_SUB_TYPE];
if (!networkType || !networkSubType) {
if (!networkType) {
Sentry.captureException(new Error('Incorrect network'), { extra: { networkType, networkSubType } });
}
return `/${ networkType }/${ networkSubType }/${ path }`;
return `/${ networkType }${ networkSubType ? '/' + networkSubType : '' }/${ path }`;
}
import { useRouter } from 'next/router';
import NETWORKS from 'lib/networks/availableNetworks';
export default function useNetwork() {
const router = useRouter();
const selectedNetwork = NETWORKS.find((network) => router.query.network_type === network.type && router.query.network_sub_type === network.subType);
return selectedNetwork;
}
import type { Network } from 'types/networks';
import arbitrumIcon from 'icons/networks/arbitrum.svg';
import artisIcon from 'icons/networks/artis.svg';
import ethereumClassicIcon from 'icons/networks/ethereum-classic.svg';
import ethereumIcon from 'icons/networks/ethereum.svg';
import gnosisIcon from 'icons/networks/gnosis.svg';
import optimismIcon from 'icons/networks/optimism.svg';
import poaSokolIcon from 'icons/networks/poa-sokol.svg';
import poaIcon from 'icons/networks/poa.svg';
import rskIcon from 'icons/networks/rsk.svg';
import arbitrumIcon from 'icons/networks/icons/arbitrum.svg';
import artisIcon from 'icons/networks/icons/artis.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 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 parseNetworkConfig from './parseNetworkConfig';
......@@ -26,9 +26,28 @@ const ICONS: Record<string, React.FunctionComponent<React.SVGAttributes<SVGEleme
'artis/sigma1': artisIcon,
};
const LOGOS: Record<string, React.FunctionComponent<React.SVGAttributes<SVGElement>>> = {
'xdai/mainnet': require('icons/networks/logos/gnosis.svg'),
'eth/mainnet': require('icons/networks/logos/eth.svg'),
'etc/mainnet': require('icons/networks/logos/etc.svg'),
'poa/core': require('icons/networks/logos/poa.svg'),
'rsk/mainnet': require('icons/networks/logos/rsk.svg'),
'xdai/testnet': require('icons/networks/logos/gnosis.svg'),
'poa/sokol': require('icons/networks/logos/sokol.svg'),
'artis/sigma1': require('icons/networks/logos/artis.svg'),
'lukso/l14': require('icons/networks/logos/lukso.svg'),
astar: require('icons/networks/logos/astar.svg'),
shiden: require('icons/networks/logos/shiden.svg'),
shibuya: require('icons/networks/logos/shibuya.svg'),
};
const NETWORKS: Array<Network> = (() => {
const networksFromConfig: Array<Network> = parseNetworkConfig();
return networksFromConfig.map((network) => ({ ...network, icon: network.icon || ICONS[`${ network.type }/${ network.subType }`] }));
return networksFromConfig.map((network) => ({
...network,
logo: network.logo || LOGOS[network.type + (network.subType ? `/${ network.subType }` : '')],
icon: network.icon || ICONS[network.type + (network.subType ? `/${ network.subType }` : '')],
}));
})();
export default NETWORKS;
......
......@@ -3,6 +3,7 @@ const withReactSvg = require('next-react-svg');
const path = require('path');
const headers = require('./configs/nextjs/headers');
const rewrites = require('./configs/nextjs/rewrites');
const moduleExports = {
include: path.resolve(__dirname, 'icons'),
......@@ -27,6 +28,7 @@ const moduleExports = {
];
},
headers,
rewrites,
output: 'standalone',
};
......
......@@ -7,8 +7,9 @@ export interface Network {
shortName?: string;
// basePath = /<type>/<subType>, e.g. /xdai/mainnet
type: string;
subType: string;
subType?: string;
group: 'mainnets' | 'testnets' | 'other';
icon?: FunctionComponent<SVGAttributes<SVGElement>> | string;
logo?: FunctionComponent<SVGAttributes<SVGElement>> | string;
isAccountSupported?: boolean;
}
import { Icon, Box, useColorModeValue } from '@chakra-ui/react';
import { Icon, Box, Image, useColorModeValue } from '@chakra-ui/react';
import NextLink from 'next/link';
import React from 'react';
import type { FunctionComponent, SVGAttributes } from 'react';
import logoIcon from 'icons/logo.svg';
import blockscoutLogo from 'icons/logo.svg';
import useBasePath from 'lib/hooks/useBasePath';
import useNetwork from 'lib/hooks/useNetwork';
import getDefaultTransitionProps from 'theme/utils/getDefaultTransitionProps';
interface Props {
......@@ -14,6 +16,41 @@ interface Props {
const NetworkLogo = ({ isCollapsed, onClick }: Props) => {
const logoColor = useColorModeValue('blue.600', 'white');
const href = useBasePath();
const network = useNetwork();
const logo = network?.logo;
const style = useColorModeValue({}, { filter: 'brightness(0) invert(1)' });
let logoEl;
if (logo && typeof logo === 'string') {
logoEl = (
<Image
h="20px"
src={ logo }
alt={ `${ network.type } ${ network.subType ? network.subType : '' } network icon` }
/>
);
} else if (typeof logo !== undefined) {
logoEl = (
<Icon
as={ logo as FunctionComponent<SVGAttributes<SVGElement>> }
width="auto"
height="20px"
{ ...getDefaultTransitionProps() }
style={ style }
/>
);
} else {
<Icon
as={ blockscoutLogo }
width="113px"
height="20px"
color={ logoColor }
{ ...getDefaultTransitionProps() }
style={ style }
/>;
}
return (
<NextLink href={ href } passHref>
......@@ -26,13 +63,7 @@ const NetworkLogo = ({ isCollapsed, onClick }: Props) => {
{ ...getDefaultTransitionProps({ transitionProperty: 'width' }) }
aria-label="Link to main page"
>
<Icon
as={ logoIcon }
width="113px"
height="20px"
color={ logoColor }
{ ...getDefaultTransitionProps() }
/>
{ logoEl }
</Box>
</NextLink>
);
......
......@@ -4,6 +4,7 @@ import React from 'react';
import type { NetworkGroup } from 'types/networks';
import useNetwork from 'lib/hooks/useNetwork';
import NETWORKS from 'lib/networks/availableNetworks';
import NetworkMenuLink from './NetworkMenuLink';
......@@ -14,7 +15,7 @@ const availableTabs = TABS.filter((tab) => NETWORKS.some(({ group }) => group ==
const NetworkMenuPopup = () => {
const router = useRouter();
const routeName = router.pathname.replace('/[network_type]/[network_sub_type]', '');
const selectedNetwork = NETWORKS.find((network) => router.query.network_type === network.type && router.query.network_sub_type === network.subType);
const selectedNetwork = useNetwork();
const selectedTab = availableTabs.findIndex((tab) => selectedNetwork?.group === tab);
return (
......
......@@ -5,6 +5,7 @@ import React from 'react';
import type { NetworkGroup } from 'types/networks';
import useNetwork from 'lib/hooks/useNetwork';
import NETWORKS from 'lib/networks/availableNetworks';
import NetworkMenuLink from './NetworkMenuLink';
......@@ -14,7 +15,7 @@ const TABS: Array<NetworkGroup> = [ 'mainnets', 'testnets', 'other' ];
const NetworkMenuContentMobile = () => {
const router = useRouter();
const routeName = router.pathname.replace('/[network_type]/[network_sub_type]', '');
const selectedNetwork = NETWORKS.find((network) => router.query.network_type === network.type && router.query.network_sub_type === network.subType);
const selectedNetwork = useNetwork();
const [ selectedTab, setSelectedTab ] = React.useState<NetworkGroup>(TABS.find((tab) => selectedNetwork?.group === tab) || 'mainnets');
const handleSelectChange = React.useCallback((event: React.ChangeEvent<HTMLSelectElement>) => {
......
......@@ -5,7 +5,7 @@ import React from 'react';
import type { Network } from 'types/networks';
import checkIcon from 'icons/check.svg';
import placeholderIcon from 'icons/networks/placeholder.svg';
import placeholderIcon from 'icons/networks/icons/placeholder.svg';
import isAccountRoute from 'lib/networks/isAccountRoute';
import useColors from './useColors';
......@@ -30,7 +30,7 @@ const NetworkMenuLink = ({ name, type, subType, icon, isActive, isMobile, routeN
// will change when blocks&transaction is implemented
return routeName;
})();
const pathName = `/${ type }/${ subType }${ localPath }`;
const pathName = `/${ type }${ subType ? '/' + subType : '' }${ localPath }`;
// will fix later after we agree on CI/CD workflow
const href = type === 'xdai' && subType === 'testnet' ? pathName : 'https://blockscout.com' + pathName;
......@@ -38,7 +38,7 @@ const NetworkMenuLink = ({ name, type, subType, icon, isActive, isMobile, routeN
const colors = useColors({ hasIcon });
const iconEl = typeof icon === 'string' ? (
<Image w="30px" h="30px" src={ icon } alt={ `${ type } ${ subType } network icon` }/>
<Image w="30px" h="30px" src={ icon } alt={ `${ type } ${ subType ? subType : '' } network icon` }/>
) : (
<Icon
as={ hasIcon ? icon : placeholderIcon }
......
import { Text } from '@chakra-ui/react';
import React from 'react';
import { Box, Text, useColorModeValue } from '@chakra-ui/react';
import _debounce from 'lodash/debounce';
import React, { useRef, useEffect, useState, useCallback } from 'react';
const CUT_HEIGHT = 144;
const AccountPageDescription = ({ children }: {children: React.ReactNode}) => {
const ref = useRef<HTMLParagraphElement>(null);
const [ needCut, setNeedCut ] = useState(false);
const [ expanded, setExpanded ] = useState(false);
const calculateCut = useCallback(() => {
const textHeight = ref.current?.offsetHeight;
if (!needCut && textHeight && textHeight > CUT_HEIGHT) {
setNeedCut(true);
} else if (needCut && textHeight && textHeight < CUT_HEIGHT) {
setNeedCut(false);
}
}, [ needCut ]);
useEffect(() => {
calculateCut();
const resizeHandler = _debounce(calculateCut, 300);
window.addEventListener('resize', resizeHandler);
return function cleanup() {
window.removeEventListener('resize', resizeHandler);
};
}, [ calculateCut ]);
const expand = useCallback(() => {
setExpanded(true);
}, []);
const gradient = useColorModeValue(
'linear-gradient(360deg, rgba(255, 255, 255, 0.8) 38.1%, rgba(255, 255, 255, 0) 166.67%)',
'linear-gradient(360deg, rgba(16, 17, 18, 0.8) 38.1%, rgba(16, 17, 18, 0) 166.67%)',
);
return (
<Text marginBottom={{ base: 6, lg: 12 }}>
{ children }
</Text>
<Box position="relative" marginBottom={{ base: 6, lg: 12 }}>
<Text
ref={ ref }
maxHeight={ needCut && !expanded ? `${ CUT_HEIGHT }px` : 'auto' }
overflow="hidden"
style={ needCut && !expanded ? { WebkitLineClamp: '6', WebkitBoxOrient: 'vertical', display: '-webkit-box' } : {} }
>
{ children }
</Text>
{ needCut && !expanded && (
<Box
position="absolute"
bottom="-16px"
left={ 0 }
width="100%"
height="63px"
style={{ background: gradient }}
onClick={ expand }
>
</Box>
) }
</Box>
);
};
......
......@@ -23,7 +23,7 @@ const WatchListAddressItem = ({ item }: {item: TWatchlistItem}) => {
<VStack spacing={ 2 } align="stretch" overflow="hidden" fontWeight={ 500 } color="gray.700">
<AddressSnippet address={ item.address_hash }/>
<HStack spacing={ 0 } fontSize="sm" h={ 6 } pl={ infoItemsPaddingLeft }>
<Image src="/xdai.png" alt="chain-logo" marginRight="10px" w="16px" h="16px"/>
<Image src="/xdai.png" srcSet="/xdai@2x.png 2x" alt="chain-logo" marginRight="10px" w="16px" h="16px"/>
<Text color={ mainTextColor }>{ `xDAI balance:${ nbsp }` + nativeBalance }</Text>
<Text variant="secondary">{ `${ nbsp }(${ nativeBalanceUSD })` }</Text>
</HStack>
......
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