├── .env ├── .eslintrc.json ├── .gitignore ├── .husky └── pre-commit ├── .prettierrc ├── README.md ├── components ├── Account │ ├── AccountSummary.js │ ├── DexOrdersData.js │ ├── Did.js │ ├── EscrowData.js │ ├── IOUData.js │ ├── LedgerData.js │ ├── NFTokenData.js │ ├── ObjectsData.js │ ├── PublicData.js │ ├── RelatedLinks.js │ ├── URITokenData.js │ ├── XahauRewardTr.js │ └── XamanData.js ├── Admin │ ├── BillingCountry.js │ └── subscriptions │ │ ├── Api.js │ │ ├── BithompPro.js │ │ └── pro │ │ └── history │ │ └── TypeToIcon.js ├── Faucet.js ├── Home │ ├── Converter.js │ ├── PriceChart.js │ ├── Products.js │ ├── Statistics.js │ └── Whales.js ├── Layout │ ├── Ads.js │ ├── BackgroundImage.js │ ├── ButtonScrollTop.js │ ├── CookieMessage.js │ ├── FiltersFrame.js │ ├── Footer.js │ ├── Header │ │ ├── CurrencyTable.js │ │ ├── LangTable.js │ │ ├── MobileMenu.js │ │ ├── NetworkTable.js │ │ ├── ProgressBar.js │ │ ├── Switch.js │ │ └── index.js │ ├── InfiniteScrolling.js │ ├── LeftFilters.js │ ├── LogoAnimated.js │ ├── LogoSmall.js │ ├── ScrollToTop.js │ ├── SearchBlock.js │ ├── SocialIcons.js │ ├── ThemeContext.js │ └── TopLinks.js ├── ListTransactions.js ├── Nft │ ├── EvernodeLease.js │ ├── EvernodeRegistartion.js │ └── ProjectMetadata.js ├── NftImageOrVideo.js ├── NftPreview.js ├── NftsComponent.js ├── Receipt.js ├── SEO.js ├── Services │ └── NftMint │ │ ├── NFTokenMint.js │ │ └── URITokenMint.js ├── SignForm.js ├── SignForms │ ├── NFTokenCreateOffer.js │ ├── NftTransfer.js │ ├── SetAvatar.js │ ├── SetDid.js │ └── SetDomain.js ├── SimpleChart.js ├── SocialShare.js ├── Table.js ├── Tabs │ ├── AdminTabs.js │ ├── NetworkPagesTabs.js │ ├── NetworkTabs.js │ ├── NftTabs.js │ ├── ProTabs.js │ ├── WhaleTabs.js │ └── index.js ├── Tiles.js ├── TopProgressBar.js ├── Transaction │ ├── TransactionAccountDelete.js │ ├── TransactionAccountSet.js │ ├── TransactionAmm.js │ ├── TransactionCard.js │ ├── TransactionCheck.js │ ├── TransactionDID.js │ ├── TransactionDetails.js │ ├── TransactionEnableAmendment.js │ ├── TransactionEscrow.js │ ├── TransactionImport.js │ ├── TransactionNFToken.js │ ├── TransactionOffer.js │ ├── TransactionPayment │ │ ├── DestinationTagProblemSolving.js │ │ ├── PaymentInstructions.js │ │ └── index.js │ ├── TransactionRemit.js │ ├── TransactionSetRegularKey.js │ ├── TransactionTrustSet.js │ ├── TransactionURIToken.js │ └── index.js ├── UI │ ├── AddressInput.js │ ├── AgeCheck.js │ ├── CheckBox.js │ ├── CopyButton.js │ ├── CountrySelect.js │ ├── CountryWithFlag.js │ ├── CurrencySelect.js │ ├── DateAndTimeRange.js │ ├── ExpirationSelect.js │ ├── FormInput.js │ ├── IssuerSelect.js │ ├── RadioOptions.js │ ├── SimpleSelect.js │ ├── TargetTableSelect.js │ └── ViewToggle.js ├── Walletconnect.js ├── WhalesTable.js └── Xaman │ └── Qr.js ├── instrumentation-client.js ├── instrumentation.js ├── middleware.js ├── next-i18next.config.js ├── next.config.js ├── package.json ├── pages ├── 404.js ├── [slug].js ├── _app.js ├── _document.js ├── _error.jsx ├── about-us.js ├── account │ └── [[...id]].js ├── activations.js ├── admin │ ├── api │ │ ├── charts.js │ │ ├── index.js │ │ ├── requests.js │ │ └── statistics.js │ ├── bots │ │ └── index.js │ ├── index.js │ ├── pro │ │ ├── history.js │ │ └── index.js │ ├── subscriptions.js │ └── watchlist.js ├── advertise.js ├── alerts.js ├── amendments.js ├── amm │ ├── [id].js │ └── index.js ├── amms.js ├── api │ └── robots.js ├── blackholed-address.js ├── blacklisted-address.js ├── build-unl.js ├── customer-support.js ├── disclaimer.js ├── distribution.js ├── domains.js ├── donate.js ├── eaas.js ├── faucet.js ├── genesis.js ├── governance │ └── [[...id]].js ├── index.js ├── jobs.js ├── last-ledger-information.js ├── ledger │ └── [[...ledgerIndex]].js ├── manifest.json.js ├── nft-distribution │ └── [[...id]].js ├── nft-explorer.js ├── nft-minters.js ├── nft-offer │ └── [[...id]].js ├── nft-offers │ └── [[...id]].js ├── nft-sales.js ├── nft-statistics.js ├── nft-volumes │ ├── [issuer].js │ └── index.js ├── nft │ └── [[...id]].js ├── nfts │ └── [[...id]].js ├── nodes.js ├── object │ ├── [id].js │ └── index.js ├── press.js ├── privacy-policy.js ├── rlusd.js ├── services │ ├── check.js │ ├── nft-mint.js │ └── send.js ├── sitemap.xml.js ├── social-share.js ├── submit-account-information.js ├── terms-and-conditions.js ├── transaction │ ├── [id].js │ └── index.js ├── unl-report.js ├── username.js ├── validators.js ├── verified-domains.js ├── whales │ ├── fee.js │ ├── index.js │ ├── receivers.js │ ├── senders.js │ └── submitters.js ├── xrp-xah-taxes.js └── xrpl-article.js ├── postcss.config.mjs ├── public ├── download │ └── bithomp-press.zip ├── favicon.ico ├── images │ ├── advertise │ │ ├── home-page-banner.png │ │ ├── new-pages-header.png │ │ └── old-pages-footer.png │ ├── chart │ │ ├── panning.svg │ │ ├── zoom-in.svg │ │ ├── zoom-out.svg │ │ └── zoom.svg │ ├── checkmark.svg │ ├── currencies │ │ ├── xah.png │ │ └── xrp.svg │ ├── donate.png │ ├── download.svg │ ├── flags │ │ ├── ae.svg │ │ ├── ar.svg │ │ ├── au.svg │ │ ├── bd.svg │ │ ├── bh.svg │ │ ├── br.svg │ │ ├── ca.svg │ │ ├── ch.svg │ │ ├── cl.svg │ │ ├── cn.svg │ │ ├── cz.svg │ │ ├── dk.svg │ │ ├── eu.svg │ │ ├── gb.svg │ │ ├── hk.svg │ │ ├── hu.svg │ │ ├── id.svg │ │ ├── il.svg │ │ ├── in.svg │ │ ├── jp.svg │ │ ├── kr.png │ │ ├── kw.svg │ │ ├── mx.svg │ │ ├── my.svg │ │ ├── ng.svg │ │ ├── no.svg │ │ ├── nz.svg │ │ ├── ph.svg │ │ ├── pl.svg │ │ ├── ru.svg │ │ ├── sa.svg │ │ ├── se.svg │ │ ├── sg.svg │ │ ├── th.svg │ │ ├── tr.svg │ │ ├── tw.svg │ │ ├── ua.svg │ │ ├── us.svg │ │ ├── vn.svg │ │ └── za.svg │ ├── fraud-alert.png │ ├── link.svg │ ├── loading.gif │ ├── logo-small.svg │ ├── nft │ │ ├── 18plus.jpg │ │ └── evernode.png │ ├── pages │ │ ├── blackholed-picture.png │ │ ├── blackholed-screen-xahau.png │ │ ├── blackholed-screen.png │ │ ├── blacklisted-picture.jpg │ │ ├── blacklisted-screen-xahau.png │ │ ├── blacklisted-screen.png │ │ ├── faucet │ │ │ └── lastLedgerIndex.png │ │ ├── jobs.png │ │ ├── rlusd │ │ │ └── rocket.png │ │ ├── verified-domains │ │ │ ├── domains-screen.png │ │ │ └── green-checkmark.jpg │ │ └── xrpl-article.jpeg │ ├── press.png │ ├── products │ │ ├── for-you.png │ │ ├── network.png │ │ ├── nft.png │ │ └── top-lists.png │ ├── qr.gif │ ├── social-share │ │ ├── instagram.svg │ │ ├── linkedIn.svg │ │ ├── x.svg │ │ └── youTube.svg │ ├── sponsored │ │ ├── btcbit.svg │ │ ├── doppler.svg │ │ ├── easybit.svg │ │ ├── moon.svg │ │ ├── nexo.svg │ │ └── xbit.png │ ├── sun.svg │ ├── verified.svg │ ├── wallets │ │ ├── crossmark-large.png │ │ ├── crossmark.png │ │ ├── ellipal-large.svg │ │ ├── gemwallet.svg │ │ ├── ledgerwallet-large.svg │ │ ├── ledgerwallet.svg │ │ ├── metamask.svg │ │ ├── trezor-large.svg │ │ ├── trezor.svg │ │ ├── walletconnect-large.svg │ │ ├── walletconnect.svg │ │ ├── xaman-large.svg │ │ └── xaman.png │ ├── xahauexplorer │ │ ├── 192.png │ │ ├── 512.png │ │ ├── apple-touch-icon.png │ │ ├── favicon.ico │ │ ├── long.svg │ │ ├── longDark.svg │ │ ├── previews │ │ │ ├── 1200x630 │ │ │ │ ├── alerts.png │ │ │ │ ├── amendments.png │ │ │ │ ├── distribution.png │ │ │ │ ├── index.png │ │ │ │ ├── nft-explorer.png │ │ │ │ ├── nft-sales.png │ │ │ │ └── validators.png │ │ │ └── 630x630 │ │ │ │ ├── alerts.png │ │ │ │ ├── amendments.png │ │ │ │ ├── distribution.png │ │ │ │ ├── index.png │ │ │ │ ├── nft-explorer.png │ │ │ │ ├── nft-sales.png │ │ │ │ └── validators.png │ │ └── verified-domains │ │ │ ├── checkmark-example-screen.png │ │ │ └── screen-account-page.png │ └── xrplexplorer │ │ ├── 192.png │ │ ├── 512.png │ │ ├── apple-touch-icon.png │ │ ├── favicon.ico │ │ ├── long.svg │ │ ├── longDark.svg │ │ ├── previews │ │ ├── 1200x630 │ │ │ ├── alerts.png │ │ │ ├── amendments.png │ │ │ ├── amms.png │ │ │ ├── distribution.png │ │ │ ├── index.png │ │ │ ├── nft-explorer.png │ │ │ ├── nft-sales.png │ │ │ ├── nft-volumes.png │ │ │ └── validators.png │ │ └── 630x630 │ │ │ ├── alerts.png │ │ │ ├── amendments.png │ │ │ ├── amms.png │ │ │ ├── distribution.png │ │ │ ├── index.png │ │ │ ├── nft-explorer.png │ │ │ ├── nft-sales.png │ │ │ ├── nft-volumes.png │ │ │ └── validators.png │ │ └── verified-domains │ │ ├── checkmark-example-screen.png │ │ └── screen-account-page.png ├── js │ └── model-viewer.min.js └── locales │ ├── de │ ├── activations.json │ ├── amendments.json │ ├── common.json │ ├── customer-support.json │ ├── distribution.json │ ├── domains.json │ ├── faucet.json │ ├── governance.json │ ├── ledger.json │ ├── nft-distribution.json │ ├── nft-minters.json │ ├── nft-volumes.json │ ├── nft.json │ ├── popups.json │ ├── products.json │ ├── submit-account-information.json │ ├── unl-report.json │ ├── username.json │ └── validators.json │ ├── en │ ├── about-us.json │ ├── account.json │ ├── activations.json │ ├── admin.json │ ├── amendments.json │ ├── common.json │ ├── customer-support.json │ ├── distribution.json │ ├── domains.json │ ├── faucet.json │ ├── governance.json │ ├── ledger.json │ ├── nft-distribution.json │ ├── nft-minters.json │ ├── nft-sort.json │ ├── nft-volumes.json │ ├── nft.json │ ├── popups.json │ ├── products.json │ ├── submit-account-information.json │ ├── unl-report.json │ ├── username.json │ └── validators.json │ ├── es │ ├── activations.json │ ├── amendments.json │ ├── common.json │ ├── customer-support.json │ ├── distribution.json │ ├── domains.json │ ├── faucet.json │ ├── governance.json │ ├── ledger.json │ ├── nft-distribution.json │ ├── nft-minters.json │ ├── nft-volumes.json │ ├── nft.json │ ├── popups.json │ ├── products.json │ ├── submit-account-information.json │ ├── unl-report.json │ ├── username.json │ └── validators.json │ ├── fr │ ├── activations.json │ ├── admin.json │ ├── amendments.json │ ├── common.json │ ├── customer-support.json │ ├── distribution.json │ ├── domains.json │ ├── faucet.json │ ├── governance.json │ ├── ledger.json │ ├── nft-distribution.json │ ├── nft-minters.json │ ├── nft-sort.json │ ├── nft-volumes.json │ ├── nft.json │ ├── popups.json │ ├── products.json │ ├── submit-account-information.json │ ├── unl-report.json │ ├── username.json │ └── validators.json │ ├── id │ ├── activations.json │ ├── amendments.json │ ├── common.json │ ├── customer-support.json │ ├── distribution.json │ ├── domains.json │ ├── faucet.json │ ├── governance.json │ ├── ledger.json │ ├── nft-distribution.json │ ├── nft-minters.json │ ├── nft-volumes.json │ ├── nft.json │ ├── popups.json │ ├── products.json │ ├── submit-account-information.json │ ├── unl-report.json │ ├── username.json │ └── validators.json │ ├── ja │ ├── amendments.json │ ├── common.json │ ├── customer-support.json │ ├── distribution.json │ ├── domains.json │ ├── faucet.json │ ├── governance.json │ ├── ledger.json │ ├── nft-distribution.json │ ├── nft-minters.json │ ├── nft-volumes.json │ ├── nft.json │ ├── popups.json │ ├── products.json │ ├── submit-account-information.json │ ├── unl-report.json │ ├── username.json │ └── validators.json │ ├── ko │ ├── activations.json │ ├── amendments.json │ ├── common.json │ ├── customer-support.json │ ├── distribution.json │ ├── domains.json │ ├── faucet.json │ ├── ledger.json │ ├── nft-distribution.json │ ├── nft-minters.json │ ├── nft-volumes.json │ ├── nft.json │ ├── popups.json │ ├── products.json │ ├── submit-account-information.json │ ├── username.json │ └── validators.json │ └── ru │ ├── about-us.json │ ├── activations.json │ ├── admin.json │ ├── amendments.json │ ├── common.json │ ├── customer-support.json │ ├── distribution.json │ ├── domains.json │ ├── faucet.json │ ├── governance.json │ ├── ledger.json │ ├── nft-distribution.json │ ├── nft-minters.json │ ├── nft-sort.json │ ├── nft-volumes.json │ ├── nft.json │ ├── popups.json │ ├── products.json │ ├── submit-account-information.json │ ├── unl-report.json │ ├── username.json │ └── validators.json ├── sentry.edge.config.js ├── sentry.server.config.js ├── styles ├── components │ ├── addressInput.scss │ ├── ads.module.scss │ ├── ageCheck.module.scss │ ├── buttonScrollTop.module.scss │ ├── checkbox.scss │ ├── converter.scss │ ├── countrySelect.scss │ ├── currencySelect.scss │ ├── dateAndTimeRange.scss │ ├── dropdown.scss │ ├── filters.scss │ ├── footer.scss │ ├── formInput.scss │ ├── header.scss │ ├── inputPrepend.scss │ ├── issuerSelect.scss │ ├── nprogress.css │ ├── pagination.scss │ ├── priceChart.scss │ ├── products.module.scss │ ├── radioOptions.scss │ ├── receipt.scss │ ├── searchBlock.scss │ ├── select.scss │ ├── signForm.scss │ ├── simpleSelect.scss │ ├── switch.scss │ ├── tabs.scss │ ├── tiles.module.scss │ ├── topLinks.scss │ ├── topSwitch.scss │ └── viewToggle.scss ├── globals.css ├── pages │ ├── account.scss │ ├── alerts.scss │ ├── genesis.scss │ ├── governance.scss │ ├── index.scss │ ├── nft-offer.scss │ ├── nft.module.scss │ ├── pro-history.scss │ └── username.scss ├── ui.scss └── variables.scss ├── utils ├── axios.js ├── blobVerifications.js ├── calc.js ├── common.js ├── crossmark.js ├── format.js ├── gemwallet.js ├── index.js ├── koinly.js ├── ledgerwallet.js ├── links.js ├── metamask.js ├── mobile.js ├── nft.js ├── pro.js ├── transaction.js ├── trezor.js ├── user.js └── xaman.js └── yarn.lock /.env: -------------------------------------------------------------------------------- 1 | # NEXT_PUBLIC_NETWORK_NAME=mainnet 2 | # NEXT_PUBLIC_NETWORK_NAME=testnet 3 | # NEXT_PUBLIC_NETWORK_NAME=devnet 4 | # NEXT_PUBLIC_NETWORK_NAME=xahau 5 | # NEXT_PUBLIC_NETWORK_NAME=xahau-testnet 6 | # NEXT_PUBLIC_NETWORK_NAME=xahau-jshooks 7 | # NEXT_PUBLIC_BITHOMP_API_TEST_KEY=key 8 | # NEXT_PUBLIC_BITHOMP_API_KEY=key 9 | # NEXT_PUBLIC_GA_MEASUREMENT_ID=key 10 | # NEXT_PUBLIC_WEB_ADDRESS=https://xrplexplorer.com 11 | # NEXT_PUBLIC_WALLETCONNECT=key -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["next", "next/core-web-vitals"], 3 | "rules": { 4 | "no-unused-vars": "error", 5 | "@next/next/no-img-element": "off", 6 | "react/no-unescaped-entities": "off" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | 25 | .next 26 | 27 | # Sentry Config File 28 | .env.sentry-build-plugin 29 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | . "$(dirname -- "$0")/_/husky.sh" 3 | 4 | yarn pre-commit 5 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 120, 3 | "trailingComma": "none", 4 | "singleQuote": true, 5 | "semi": false, 6 | "tabWidth": 2, 7 | "useTabs": false, 8 | "jsxBracketSameLine": false, 9 | "bracketSpacing": true 10 | } 11 | -------------------------------------------------------------------------------- /components/Account/EscrowData.js: -------------------------------------------------------------------------------- 1 | import { fullDateAndTime } from '../../utils/format' 2 | 3 | export default function EscrowData({ escrowList, ledgerTimestamp }) { 4 | //show the section only if there are escrows to show 5 | if (!escrowList?.length) return '' 6 | 7 | const title = ledgerTimestamp ? ( 8 | Historical Escrow data ({fullDateAndTime(ledgerTimestamp)}) 9 | ) : ( 10 | 'Escrows' 11 | ) 12 | 13 | const statusNode = !escrowList ? 'Loading...' : There are {escrowList?.length} escrows 14 | 15 | //console.log(escrowList) //delete 16 | 17 | return ( 18 | <> 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
{title}
Status{statusNode}
32 |
33 |
34 |
{title}
35 |

36 | Status {statusNode} 37 |

38 |
39 | 40 | 41 | ) 42 | } 43 | -------------------------------------------------------------------------------- /components/Layout/CookieMessage.js: -------------------------------------------------------------------------------- 1 | import { useTranslation } from 'next-i18next' 2 | import Link from 'next/link' 3 | 4 | import { useCookie } from '../../utils' 5 | 6 | export default function Footer() { 7 | const { t } = useTranslation() 8 | const [showCookie, setShowCokie] = useCookie('showCookie', true) 9 | 10 | return ( 11 | <> 12 | {showCookie && showCookie !== 'false' && ( 13 |
14 | {t('footer.cookie.we-use-cookie')}{' '} 15 | 16 | {t('menu.privacy-policy')} 17 | 18 | . 19 |
20 | setShowCokie(false)} 25 | style={{ marginTop: '10px' }} 26 | /> 27 |
28 | )} 29 | 30 | ) 31 | } 32 | -------------------------------------------------------------------------------- /components/Layout/Header/ProgressBar.js: -------------------------------------------------------------------------------- 1 | export default function ProgressBar({ goneSeconds, maxSeconds }) { 2 | 3 | let completed = parseInt((goneSeconds / maxSeconds) * 100); 4 | let minutes = Math.floor(goneSeconds / 60); 5 | let seconds = goneSeconds - minutes * 60; 6 | seconds = seconds < 10 ? "0" + seconds : seconds; 7 | 8 | const containerStyles = { 9 | height: 22, 10 | width: '60%', 11 | backgroundColor: "#e0e0de", 12 | borderRadius: 50, 13 | margin: 10, 14 | textAlign: 'center', 15 | display: "inline-block" 16 | } 17 | 18 | const fillerStyles = { 19 | height: '100%', 20 | width: `${completed}%`, 21 | backgroundColor: "#008ffb", 22 | borderRadius: 'inherit', 23 | textAlign: 'center' 24 | } 25 | 26 | const labelStyles = { 27 | padding: 5, 28 | color: 'white', 29 | fontWeight: 'bold' 30 | } 31 | 32 | return ( 33 |
34 |
35 | {`${minutes}:${seconds}`} 36 |
37 |
38 | ); 39 | }; -------------------------------------------------------------------------------- /components/Layout/Header/Switch.js: -------------------------------------------------------------------------------- 1 | import { useState, useEffect } from 'react' 2 | import { useTheme } from '../ThemeContext' 3 | import Image from 'next/image' 4 | 5 | export default function Switch() { 6 | const [rendered, setRendered] = useState(false) 7 | const { theme, toggleTheme } = useTheme() 8 | 9 | useEffect(() => { 10 | setRendered(true) 11 | }, []) 12 | 13 | if (!rendered) return null 14 | 15 | const switchOnClick = () => { 16 | toggleTheme() 17 | } 18 | 19 | return ( 20 |
21 |
22 | light mode 23 | dark mode 24 |
25 |
26 | ) 27 | } 28 | -------------------------------------------------------------------------------- /components/Layout/ScrollToTop.js: -------------------------------------------------------------------------------- 1 | import { useEffect } from "react" 2 | import { useRouter } from 'next/router' 3 | 4 | export default function ScrollToTop() { 5 | const router = useRouter() 6 | 7 | useEffect(() => { 8 | window.scrollTo({ 9 | top: 0, 10 | left: 0, 11 | behavior: 'smooth' 12 | }); 13 | }, [router.pathname]) 14 | 15 | return null 16 | } -------------------------------------------------------------------------------- /components/Layout/ThemeContext.js: -------------------------------------------------------------------------------- 1 | import { useState, useEffect, useContext, createContext } from "react" 2 | 3 | const ThemeContext = createContext("light") 4 | 5 | export function ThemeProvider({ children }) { 6 | const [theme, setTheme] = useState(global.window?.__theme || "light") 7 | const toggleTheme = () => { 8 | global.window.__setPreferredTheme(theme === "light" ? "dark" : "light") 9 | } 10 | 11 | useEffect(() => { 12 | global.window.__onThemeChange = setTheme; 13 | }, []) 14 | 15 | return ( 16 | 17 | {children} 18 | 19 | ) 20 | } 21 | 22 | export const useTheme = () => useContext(ThemeContext) -------------------------------------------------------------------------------- /components/Nft/EvernodeLease.js: -------------------------------------------------------------------------------- 1 | export default function EvernodeLease({ data }) { 2 | return ( 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 |
Evernode lease
Version{data.version}
Lease Index{data.leaseIndex}
Half Tos{data.halfTos}
Lease amount{data.leaseAmount} EVR
Identifier{data.identifier}
IP{data.ip}
36 | ) 37 | } 38 | -------------------------------------------------------------------------------- /components/SignForms/NftTransfer.js: -------------------------------------------------------------------------------- 1 | import { useTranslation } from 'next-i18next' 2 | import { isAddressValid } from '../../utils' 3 | import AddressInput from '../UI/AddressInput' 4 | 5 | export default function NftTransfer({ setSignRequest, signRequest, setStatus, setFormError }) { 6 | const { t } = useTranslation() 7 | 8 | const onAddressChange = (value) => { 9 | let newRequest = signRequest 10 | if (isAddressValid(value)) { 11 | newRequest.request.Destination = value 12 | setFormError(false) 13 | setStatus('') 14 | } else { 15 | if (newRequest.request.Destination) { 16 | delete newRequest.request.Destination 17 | } 18 | setStatus(t('form.error.address-invalid')) 19 | setFormError(true) 20 | } 21 | setSignRequest(newRequest) 22 | } 23 | 24 | return ( 25 |
26 |
27 | 28 | 35 | 36 |
37 | ) 38 | } 39 | -------------------------------------------------------------------------------- /components/SignForms/SetAvatar.js: -------------------------------------------------------------------------------- 1 | import { encode, isUrlValid } from '../../utils' 2 | 3 | export default function SetAvatar({ setSignRequest, signRequest, setStatus, setAgreedToRisks }) { 4 | const onAvatarChange = (e) => { 5 | let avatarUrl = e.target.value 6 | avatarUrl = avatarUrl.trim() 7 | 8 | if (isUrlValid(avatarUrl)) { 9 | setStatus('') 10 | } else { 11 | setStatus('Invalid URL') 12 | return 13 | } 14 | 15 | let newRequest = signRequest 16 | 17 | const command = { 18 | action: 'setAvatar', 19 | url: avatarUrl, 20 | timestamp: new Date().toISOString() 21 | } 22 | 23 | const tx = { 24 | Account: newRequest?.request.Account, 25 | TransactionType: 'AccountSet', 26 | Memos: [ 27 | { 28 | Memo: { 29 | MemoType: encode('json'), 30 | MemoData: encode(JSON.stringify(command)) 31 | } 32 | } 33 | ] 34 | } 35 | 36 | newRequest.request = tx 37 | setSignRequest(newRequest) 38 | setAgreedToRisks(true) 39 | } 40 | 41 | return ( 42 |
43 |
44 | 45 | Avatar's URL 46 | 47 | 48 |
49 | ) 50 | } 51 | -------------------------------------------------------------------------------- /components/SignForms/SetDid.js: -------------------------------------------------------------------------------- 1 | import { encode, isUrlValid } from '../../utils' 2 | import { useTranslation } from 'next-i18next' 3 | 4 | export default function SetDid({ setSignRequest, signRequest, setStatus, setAgreedToRisks }) { 5 | const { t } = useTranslation() 6 | 7 | const onUriChange = (e) => { 8 | setStatus('') 9 | let newRequest = signRequest 10 | let uri = e.target.value 11 | uri = uri.trim() 12 | if (isUrlValid(uri)) { 13 | newRequest.request.URI = encode(uri) 14 | setSignRequest(newRequest) 15 | setAgreedToRisks(true) 16 | } else { 17 | setAgreedToRisks(false) 18 | } 19 | } 20 | 21 | return ( 22 |
23 |
24 | 25 | {t('table.uri')} 26 | 32 | 33 |
34 | ) 35 | } 36 | -------------------------------------------------------------------------------- /components/SignForms/SetDomain.js: -------------------------------------------------------------------------------- 1 | import { encode, isDomainValid } from '../../utils' 2 | import { useTranslation } from 'next-i18next' 3 | 4 | export default function SetDomain({ setSignRequest, signRequest, setStatus, setAgreedToRisks }) { 5 | const { t } = useTranslation() 6 | 7 | const onDomainChange = (e) => { 8 | setStatus('') 9 | let newRequest = signRequest 10 | let domain = e.target.value 11 | domain = domain.trim() 12 | domain = String(domain).toLowerCase() 13 | if (isDomainValid(domain)) { 14 | newRequest.request.Domain = encode(domain) 15 | setSignRequest(newRequest) 16 | setAgreedToRisks(true) 17 | } else { 18 | setAgreedToRisks(false) 19 | } 20 | } 21 | 22 | return ( 23 |
24 |
25 | 26 | {t('signin.set-account.domain')} 27 | 33 | 34 |
35 | ) 36 | } 37 | -------------------------------------------------------------------------------- /components/Table.js: -------------------------------------------------------------------------------- 1 | import { BsInfoCircleFill } from 'react-icons/bs' 2 | 3 | export const TData = ({ tooltip, className, colSpan, children }) => ( 4 | <> 5 | 6 | {children} 7 | {tooltip && ( 8 | <> 9 | {' '} 10 | 11 | 12 | {tooltip} 13 | 14 | 15 | )} 16 | 17 | 46 | 47 | ) 48 | -------------------------------------------------------------------------------- /components/Tabs/NetworkPagesTabs.js: -------------------------------------------------------------------------------- 1 | import { useRouter } from 'next/router' 2 | import Tabs from '.' 3 | import { useTranslation } from 'next-i18next' 4 | 5 | export default function NetworkPagesTab({ tab }) { 6 | const router = useRouter() 7 | const { t } = useTranslation() 8 | 9 | const mainTabs = [ 10 | { value: 'validators', label: t('menu.network.validators') }, 11 | { value: 'amendments', label: t('menu.network.amendments') }, 12 | { value: 'nodes', label: t('menu.network.nodes') } 13 | ] 14 | 15 | const changePage = (tab) => { 16 | router.push('/' + tab) 17 | } 18 | 19 | return 20 | } 21 | -------------------------------------------------------------------------------- /components/Tabs/NetworkTabs.js: -------------------------------------------------------------------------------- 1 | import Tabs from '.' 2 | 3 | import { networks, network } from '../../utils' 4 | import { useRouter } from 'next/router' 5 | 6 | export default function NetworkTabs() { 7 | const router = useRouter() 8 | 9 | let apiTabs = [ 10 | { value: 'mainnet', label: networks['mainnet'].explorerName }, 11 | { value: 'testnet', label: networks['testnet'].explorerName }, 12 | { value: 'devnet', label: networks['devnet'].explorerName }, 13 | { value: 'xahau', label: networks['xahau'].explorerName }, 14 | { value: 'xahau-testnet', label: networks['xahau-testnet'].explorerName }, 15 | { value: 'xahau-jshooks', label: networks['xahau-jshooks'].explorerName } 16 | ] 17 | 18 | const changePage = (tab) => { 19 | const server = networks[tab].server 20 | location.href = server + router.asPath 21 | } 22 | 23 | return 24 | } 25 | -------------------------------------------------------------------------------- /components/Tabs/NftTabs.js: -------------------------------------------------------------------------------- 1 | import { useRouter } from 'next/router' 2 | import Tabs from '.' 3 | import { useTranslation } from 'next-i18next' 4 | import { useEffect, useState } from 'react' 5 | 6 | export default function NftTabs({ tab, url }) { 7 | const router = useRouter() 8 | const { t } = useTranslation() 9 | 10 | const [rendered, setRendered] = useState(false) 11 | 12 | useEffect(() => { 13 | setRendered(true) 14 | }, []) 15 | 16 | const mainTabs = [ 17 | { value: 'nft-explorer', label: t('nft-explorer.header') }, 18 | { value: 'nft-sales', label: t('nft-sales.header') } 19 | ] 20 | 21 | const changePage = () => { 22 | router.push(url) 23 | } 24 | 25 | if (!rendered) return
26 | 27 | return ( 28 |
29 | 30 |
31 | ) 32 | } 33 | -------------------------------------------------------------------------------- /components/Tabs/ProTabs.js: -------------------------------------------------------------------------------- 1 | import { useRouter } from 'next/router' 2 | import Tabs from '.' 3 | 4 | export default function ProTabs({ tab }) { 5 | const router = useRouter() 6 | 7 | const tabList = [ 8 | { value: 'addresses', label: 'Addresses' }, 9 | { value: 'balance-changes', label: 'Balance changes' } 10 | ] 11 | 12 | const changePage = (tab) => { 13 | if (tab === 'addresses') { 14 | router.push('/admin/pro') 15 | } else if (tab === 'balance-changes') { 16 | router.push('/admin/pro/history') 17 | } 18 | } 19 | 20 | return 21 | } 22 | -------------------------------------------------------------------------------- /components/Tabs/WhaleTabs.js: -------------------------------------------------------------------------------- 1 | import { useRouter } from 'next/router' 2 | import Tabs from '.' 3 | 4 | export default function WhaleTabs({ tab }) { 5 | const router = useRouter() 6 | 7 | const tabList = [ 8 | { value: 'transactions', label: 'The largest transactions' }, 9 | { value: 'receivers', label: 'Received the most' }, 10 | { value: 'senders', label: 'Sent the most' }, 11 | { value: 'submitters', label: 'Submitted the most' } 12 | //{ value: 'fee', label: 'Paid the most fees' } 13 | ] 14 | 15 | const changePage = (tab) => { 16 | if (tab === 'transactions') { 17 | router.push('/whales') 18 | } else if (tab === 'receivers') { 19 | router.push('/whales/receivers') 20 | } else if (tab === 'senders') { 21 | router.push('/whales/senders') 22 | } else if (tab === 'submitters') { 23 | router.push('/whales/submitters') 24 | } else if (tab === 'fee') { 25 | router.push('/whales/fee') 26 | } 27 | } 28 | 29 | return 30 | } 31 | -------------------------------------------------------------------------------- /components/Tabs/index.js: -------------------------------------------------------------------------------- 1 | export default function Tabs({ tabList, tab, setTab, name = 'radio', style = {} }) { 2 | const Changed = (e) => { 3 | setTab(e.currentTarget.value) 4 | } 5 | 6 | return ( 7 |
8 |
9 | {tabList.map((tabItem) => ( 10 | 20 | ))} 21 |
22 |
23 | ) 24 | } 25 | -------------------------------------------------------------------------------- /components/TopProgressBar.js: -------------------------------------------------------------------------------- 1 | import Router from 'next/router' 2 | import NProgress from 'nprogress' 3 | 4 | NProgress.configure({ showSpinner: false }) 5 | 6 | let timer 7 | let state 8 | let activeRequests = 0 9 | const delay = 250 10 | 11 | function load() { 12 | if (state === 'loading') { 13 | return 14 | } 15 | 16 | state = 'loading' 17 | 18 | timer = setTimeout(function () { 19 | NProgress.start() 20 | }, delay) // only show progress bar if it takes longer than the delay 21 | } 22 | 23 | function stop() { 24 | if (activeRequests > 0) { 25 | return 26 | } 27 | 28 | state = 'stop' 29 | 30 | clearTimeout(timer) 31 | NProgress.done() 32 | } 33 | 34 | Router.events.on('routeChangeStart', load) 35 | Router.events.on('routeChangeComplete', stop) 36 | Router.events.on('routeChangeError', stop) 37 | 38 | const originalFetch = window.fetch 39 | window.fetch = async function (...args) { 40 | if (activeRequests === 0) { 41 | load() 42 | } 43 | 44 | activeRequests++ 45 | 46 | try { 47 | const response = await originalFetch(...args) 48 | return response 49 | } catch (error) { 50 | return Promise.reject(error) 51 | } finally { 52 | activeRequests -= 1 53 | if (activeRequests === 0) { 54 | stop() 55 | } 56 | } 57 | } 58 | 59 | export default function TopProgressBar() { 60 | return null 61 | } 62 | -------------------------------------------------------------------------------- /components/Transaction/TransactionAmm.js: -------------------------------------------------------------------------------- 1 | import { TData } from '../Table' 2 | 3 | import { TransactionCard } from './TransactionCard' 4 | import { AddressWithIconFilled } from '../../utils/format' 5 | 6 | export const TransactionAMM = ({ data, pageFiatRate, selectedCurrency }) => { 7 | if (!data) return null 8 | const { specification } = data 9 | 10 | return ( 11 | 12 | 13 | Initiated by 14 | 15 | 16 | 17 | 18 | 19 | ) 20 | } 21 | -------------------------------------------------------------------------------- /components/Transaction/TransactionDID.js: -------------------------------------------------------------------------------- 1 | import { TData } from '../Table' 2 | 3 | import { TransactionCard } from './TransactionCard' 4 | import { AddressWithIconFilled, decodeJsonMemo } from '../../utils/format' 5 | import { decode } from '../../utils' 6 | 7 | export const TransactionDID = ({ data, pageFiatRate, selectedCurrency }) => { 8 | if (!data) return null 9 | const { specification } = data 10 | 11 | let uriStr = decode(specification?.uri) 12 | if (uriStr?.startsWith('did/json;base16,')) { 13 | uriStr = decode(uriStr.slice(16)) 14 | } 15 | 16 | return ( 17 | 18 | 19 | Initiated by 20 | 21 | 22 | 23 | 24 | {specification?.uri && ( 25 | 26 | URI 27 | {uriStr} 28 | 29 | )} 30 | {specification?.data && ( 31 | 32 | Data 33 | {decode(specification.data)} 34 | 35 | )} 36 | {specification?.didDocument && ( 37 | 38 | Data 39 | {decodeJsonMemo(decode(specification.didDocument))} 40 | 41 | )} 42 | 43 | ) 44 | } 45 | -------------------------------------------------------------------------------- /components/Transaction/TransactionDetails.js: -------------------------------------------------------------------------------- 1 | import { TData } from '../Table' 2 | 3 | import { TransactionCard } from './TransactionCard' 4 | import { AddressWithIconFilled } from '../../utils/format' 5 | 6 | export const TransactionDetails = ({ data, pageFiatRate, selectedCurrency }) => { 7 | if (!data) return null 8 | const { specification } = data 9 | 10 | return ( 11 | 17 | 18 | Initiated by 19 | 20 | 21 | 22 | 23 | 24 | ) 25 | } 26 | -------------------------------------------------------------------------------- /components/Transaction/TransactionSetRegularKey.js: -------------------------------------------------------------------------------- 1 | import { TData } from '../Table' 2 | 3 | import { TransactionCard } from './TransactionCard' 4 | import { AddressWithIconFilled } from '../../utils/format' 5 | 6 | export const TransactionSetRegularKey = ({ data, pageFiatRate, selectedCurrency }) => { 7 | if (!data) return null 8 | const { specification } = data 9 | 10 | return ( 11 | 12 | 13 | Initiated by 14 | 15 | 16 | 17 | 18 | 19 | New Regular key 20 | 21 | 22 | 23 | 24 | 25 | ) 26 | } 27 | -------------------------------------------------------------------------------- /components/Transaction/index.js: -------------------------------------------------------------------------------- 1 | export { TransactionCard } from './TransactionCard' 2 | export { TransactionDetails } from './TransactionDetails' 3 | 4 | export { TransactionAccountDelete } from './TransactionAccountDelete' 5 | export { TransactionAccountSet } from './TransactionAccountSet' 6 | export { TransactionCheck } from './TransactionCheck' 7 | export { TransactionEscrow } from './TransactionEscrow' 8 | export { TransactionNFToken } from './TransactionNFToken' 9 | export { TransactionOffer } from './TransactionOffer' 10 | export { TransactionPayment } from './TransactionPayment' 11 | export { TransactionSetRegularKey } from './TransactionSetRegularKey' 12 | export { TransactionTrustSet } from './TransactionTrustSet' 13 | export { TransactionEnableAmendment } from './TransactionEnableAmendment' 14 | 15 | //xrpl 16 | export { TransactionAMM } from './TransactionAmm' 17 | export { TransactionDID } from './TransactionDID' 18 | 19 | //xahau 20 | export { TransactionImport } from './TransactionImport' 21 | export { TransactionURIToken } from './TransactionURIToken' 22 | export { TransactionRemit } from './TransactionRemit' 23 | -------------------------------------------------------------------------------- /components/UI/AgeCheck.js: -------------------------------------------------------------------------------- 1 | import { useTranslation } from 'react-i18next' 2 | 3 | import styles from '../../styles/components/ageCheck.module.scss' 4 | 5 | export default function AgeCheck({ setShowAgeCheck }) { 6 | const { t } = useTranslation() 7 | 8 | const confirmAgeClick = () => { 9 | localStorage.setItem('isOver18', true) 10 | setShowAgeCheck(false) 11 | } 12 | 13 | return ( 14 |
15 |
16 |

18+

17 |

{t('age-check.subtitle', { ns: 'popups' })}

18 |
19 |

{t('age-check.text', { ns: 'popups' })}

20 |
21 |
22 | 25 | 28 |
29 |
30 | ) 31 | } 32 | -------------------------------------------------------------------------------- /components/UI/CheckBox.js: -------------------------------------------------------------------------------- 1 | export default function CheckBox({ children, checked, setChecked, name, outline, style, checkmarkStyle, disabled }) { 2 | const handleChange = () => { 3 | setChecked(!checked) 4 | } 5 | 6 | return ( 7 | 18 | ) 19 | } 20 | -------------------------------------------------------------------------------- /components/UI/CountryWithFlag.js: -------------------------------------------------------------------------------- 1 | import { useEffect, useState } from 'react' 2 | import { useTranslation } from 'next-i18next' 3 | 4 | import ReactCountryFlag from 'react-country-flag' 5 | 6 | import { countriesTranslated } from '../../utils' 7 | 8 | export default function CountryWithFlag({ countryCode, type }) { 9 | const { i18n } = useTranslation() 10 | const [countries, setCountries] = useState(null) 11 | 12 | useEffect(() => { 13 | const loadCountries = async () => { 14 | const data = await countriesTranslated(i18n.language) 15 | setCountries(data) 16 | } 17 | loadCountries() 18 | }, [i18n.language]) 19 | 20 | if (!countryCode) return '' 21 | if (countryCode === 'unknown') return Unknown 22 | 23 | return ( 24 | <> 25 | {' '} 32 | {type === 'code' ? countryCode : countries ? countries.getNameTranslated(countryCode) : countryCode} 33 | 34 | ) 35 | } 36 | -------------------------------------------------------------------------------- /components/UI/ExpirationSelect.js: -------------------------------------------------------------------------------- 1 | import Select from 'react-select' 2 | import { useTranslation } from "next-i18next" 3 | 4 | export default function ExpirationSelect({ onChange }) { 5 | const { t } = useTranslation() 6 | 7 | let emptyOption = { value: 0, label: t("general.no-expiration") } 8 | let expirationsArray = [ 9 | emptyOption, 10 | { value: 1, label: t("components.expiration-select.1d") }, 11 | { value: 3, label: t("components.expiration-select.3d") }, 12 | { value: 7, label: t("components.expiration-select.7d") }, 13 | { value: 14, label: t("components.expiration-select.14d") }, 14 | { value: 30, label: t("components.expiration-select.30d") }, 15 | { value: 90, label: t("components.expiration-select.90d") }, 16 | ] 17 | 18 | return ( 19 | 18 | 19 | 20 | ))} 21 | 22 | ) 23 | } 24 | -------------------------------------------------------------------------------- /components/UI/SimpleSelect.js: -------------------------------------------------------------------------------- 1 | import { useEffect, useState } from 'react' 2 | import Select from 'react-select' 3 | 4 | export default function SimpleSelect({ value, setValue, optionsList }) { 5 | const [rendered, setRendered] = useState(false) 6 | const [choosenOption, setChoosenOption] = useState() 7 | 8 | useEffect(() => { 9 | setRendered(true) 10 | if (optionsList?.length === 0) return 11 | let found = false 12 | if (value) { 13 | for (let i = 0; i < optionsList.length; i++) { 14 | if (optionsList[i].value.toLowerCase() === value.toLowerCase()) { 15 | setChoosenOption(optionsList[i]) 16 | found = true 17 | break 18 | } 19 | } 20 | } 21 | if (!found) { 22 | setValue(optionsList?.[0].value) 23 | setChoosenOption(optionsList?.[0]) 24 | } 25 | // eslint-disable-next-line react-hooks/exhaustive-deps 26 | }, [value]) 27 | 28 | if (!rendered) return '' 29 | 30 | return ( 31 | onChange(value.value)} 17 | isSearchable={false} 18 | className="simple-select" 19 | classNamePrefix="react-select" 20 | instanceId="target-table-select" 21 | /> 22 | ) 23 | } 24 | -------------------------------------------------------------------------------- /components/UI/ViewToggle.js: -------------------------------------------------------------------------------- 1 | import { MdGridView, MdOutlineFormatListBulleted } from 'react-icons/md' 2 | 3 | export default function ViewTogggle({ viewList, activeView, setActiveView, name = 'radio' }) { 4 | const Changed = (e) => { 5 | setActiveView(e.currentTarget.value) 6 | } 7 | 8 | return ( 9 |
10 |
11 | {viewList.map((view) => ( 12 |
13 | 21 | 24 |
25 | ))} 26 |
27 |
28 | ) 29 | } 30 | -------------------------------------------------------------------------------- /instrumentation-client.js: -------------------------------------------------------------------------------- 1 | // This file configures the initialization of Sentry on the client. 2 | // The added config here will be used whenever a users loads a page in their browser. 3 | // https://docs.sentry.io/platforms/javascript/guides/nextjs/ 4 | 5 | import * as Sentry from "@sentry/nextjs"; 6 | 7 | Sentry.init({ 8 | dsn: "https://d3b1dd32720f876c640f4e6287754251@o4509359897116672.ingest.de.sentry.io/4509359897509968", 9 | 10 | // Define how likely traces are sampled. Adjust this value in production, or use tracesSampler for greater control. 11 | tracesSampleRate: 0.1, 12 | 13 | // Setting this option to true will print useful information to the console while you're setting up Sentry. 14 | debug: false, 15 | }); 16 | 17 | export const onRouterTransitionStart = Sentry.captureRouterTransitionStart; -------------------------------------------------------------------------------- /instrumentation.js: -------------------------------------------------------------------------------- 1 | import * as Sentry from '@sentry/nextjs'; 2 | 3 | export async function register() { 4 | if (process.env.NEXT_RUNTIME === 'nodejs') { 5 | await import('./sentry.server.config'); 6 | } 7 | 8 | if (process.env.NEXT_RUNTIME === 'edge') { 9 | await import('./sentry.edge.config'); 10 | } 11 | } 12 | 13 | export const onRequestError = Sentry.captureRequestError; 14 | -------------------------------------------------------------------------------- /next-i18next.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | i18n: { 3 | locales: ['default', 'en', 'ko', 'ru', 'de', 'es', 'id', 'ja', 'fr'], 4 | defaultLocale: 'default', 5 | localeDetection: false 6 | }, 7 | reloadOnPrerender: process.env.NODE_ENV === 'development' 8 | } 9 | -------------------------------------------------------------------------------- /pages/404.js: -------------------------------------------------------------------------------- 1 | import { useTranslation, Trans } from 'next-i18next' 2 | import { serverSideTranslations } from 'next-i18next/serverSideTranslations' 3 | import Link from 'next/link' 4 | 5 | import SEO from '../components/SEO' 6 | 7 | export async function getStaticProps({ locale }) { 8 | return { 9 | props: { 10 | ...(await serverSideTranslations(locale, ['common'])) 11 | } 12 | } 13 | } 14 | 15 | export default function Eror404() { 16 | const { t } = useTranslation() 17 | 18 | return ( 19 | <> 20 | 21 |
22 |

{t('page-not-found.header')}

23 |

24 | 25 | Click{' '} 26 | 27 | here 28 | {' '} 29 | to check our landing page. 30 | 31 |

32 |
33 | 34 | ) 35 | } 36 | -------------------------------------------------------------------------------- /pages/_error.jsx: -------------------------------------------------------------------------------- 1 | import * as Sentry from "@sentry/nextjs"; 2 | import Error from "next/error"; 3 | 4 | const CustomErrorComponent = (props) => { 5 | return ; 6 | }; 7 | 8 | CustomErrorComponent.getInitialProps = async (contextData) => { 9 | // In case this is running in a serverless function, await this in order to give Sentry 10 | // time to send the error before the lambda exits 11 | await Sentry.captureUnderscoreErrorException(contextData); 12 | 13 | // This will contain the status code of the response 14 | return Error.getInitialProps(contextData); 15 | }; 16 | 17 | export default CustomErrorComponent; 18 | -------------------------------------------------------------------------------- /pages/admin/bots/index.js: -------------------------------------------------------------------------------- 1 | import { serverSideTranslations } from 'next-i18next/serverSideTranslations' 2 | import { useTranslation } from 'next-i18next' 3 | 4 | import SEO from '../../../components/SEO' 5 | 6 | import { ledgerName } from '../../../utils' 7 | import { getIsSsrMobile } from '../../../utils/mobile' 8 | import AdminTabs from '../../../components/Tabs/AdminTabs' 9 | 10 | export const getServerSideProps = async (context) => { 11 | const { locale } = context 12 | return { 13 | props: { 14 | isSsrMobile: getIsSsrMobile(context), 15 | ...(await serverSideTranslations(locale, ['common', 'admin'])) 16 | } 17 | } 18 | } 19 | 20 | export default function Bots() { 21 | const { t } = useTranslation() 22 | 23 | return ( 24 | <> 25 | 26 |
27 |

{t('header', { ns: 'admin' })}

28 | 29 | 30 | 31 |
32 |
33 | The page is under construction. 34 |
35 |
36 | Here you will be able to set up your {ledgerName} bots. 37 |
38 |
39 |
40 | 41 | ) 42 | } 43 | -------------------------------------------------------------------------------- /pages/api/robots.js: -------------------------------------------------------------------------------- 1 | import { server } from '../../utils' 2 | 3 | export default function Robots(req, res) { 4 | res.setHeader('Content-Type', 'text/plain') 5 | //let allow indexing all networks for now 6 | res.send('User-agent: *\nSitemap: ' + server + '/sitemap.xml\nDisallow: /go/') 7 | /* 8 | if (process.env.NEXT_PUBLIC_NETWORK_NAME === "mainnet") { 9 | res.send('User-agent: *\nDisallow: /api/\nDisallow: /go/') 10 | } else { 11 | res.send('User-agent: *\nAllow: /$\nDisallow: /\nDisallow: /go/') 12 | } 13 | */ 14 | } 15 | -------------------------------------------------------------------------------- /pages/build-unl.js: -------------------------------------------------------------------------------- 1 | import { serverSideTranslations } from 'next-i18next/serverSideTranslations' 2 | import Mailto from 'react-protected-mailto' 3 | 4 | import SEO from '../components/SEO' 5 | 6 | import { getIsSsrMobile } from '../utils/mobile' 7 | 8 | export async function getServerSideProps(context) { 9 | const { locale } = context 10 | return { 11 | props: { 12 | isSsrMobile: getIsSsrMobile(context), 13 | ...(await serverSideTranslations(locale, ['common'])), 14 | } 15 | } 16 | } 17 | 18 | export default function Unl() { 19 | return ( 20 | <> 21 | 25 |
26 |

Unique Node List (UNL)

27 |

28 | UNL is a Unique Node List of trustworthy validators, it is necessary for running rippled. 29 | Performance and operator identity make up the two main determinants of validator credibility.

30 |

31 | We can help you to Create, Sign and Publish a Unique Node List (UNL) for your XRPL sidechain. 32 |

33 |
34 |

Contact us .

35 |
36 | 37 | ) 38 | } 39 | -------------------------------------------------------------------------------- /pages/object/index.js: -------------------------------------------------------------------------------- 1 | import { serverSideTranslations } from 'next-i18next/serverSideTranslations' 2 | 3 | import SearchBlock from '../../components/Layout/SearchBlock' 4 | import SEO from '../../components/SEO' 5 | import { getIsSsrMobile } from '../../utils/mobile' 6 | 7 | export async function getServerSideProps(context) { 8 | return { 9 | props: { 10 | isSsrMobile: getIsSsrMobile(context), 11 | ...(await serverSideTranslations(context.locale, ['common'])) 12 | } 13 | } 14 | } 15 | 16 | const Container = ({ children }) => { 17 | return
{children}
18 | } 19 | 20 | const ObjectSearch = () => { 21 | return ( 22 | <> 23 | 24 | 25 | 26 |

Object search

27 |

Search objects on the Ledger.

28 |
29 | 30 | ) 31 | } 32 | 33 | export default ObjectSearch 34 | -------------------------------------------------------------------------------- /pages/press.js: -------------------------------------------------------------------------------- 1 | import { useTranslation, Trans } from 'next-i18next' 2 | import Link from 'next/link' 3 | import { serverSideTranslations } from 'next-i18next/serverSideTranslations' 4 | 5 | import SEO from '../components/SEO' 6 | 7 | import { getIsSsrMobile } from '../utils/mobile' 8 | 9 | export async function getServerSideProps(context) { 10 | const { locale } = context 11 | return { 12 | props: { 13 | isSsrMobile: getIsSsrMobile(context), 14 | ...(await serverSideTranslations(locale, ['common'])) 15 | } 16 | } 17 | } 18 | 19 | export default function Press() { 20 | const { t } = useTranslation() 21 | 22 | return ( 23 | <> 24 | 25 |
26 |

{t('menu.press')}

27 | press 28 |

29 | 30 | This is the official logo for Bithomp to use by media and press professionals for print and web (svg, png, 31 | eps, pdf, for dark and light backgrounds). For media inquiries, please{' '} 32 | contact us. 33 | 34 |

35 |

36 | 37 | {t('button.download')} 38 | 39 |

40 |
41 | 42 | ) 43 | } 44 | -------------------------------------------------------------------------------- /pages/transaction/index.js: -------------------------------------------------------------------------------- 1 | import { serverSideTranslations } from 'next-i18next/serverSideTranslations' 2 | 3 | import SearchBlock from '../../components/Layout/SearchBlock' 4 | import SEO from '../../components/SEO' 5 | 6 | import { getIsSsrMobile } from '../../utils/mobile' 7 | 8 | export async function getServerSideProps(context) { 9 | return { 10 | props: { 11 | isSsrMobile: getIsSsrMobile(context), 12 | ...(await serverSideTranslations(context.locale, ['common'])) 13 | } 14 | } 15 | } 16 | 17 | const Container = ({ children }) => { 18 | return <>{children} 19 | } 20 | 21 | const TransactionSearch = () => { 22 | return ( 23 | <> 24 | 25 | 26 | 27 |

Transaction search

28 |
29 | 30 | ) 31 | } 32 | 33 | export default TransactionSearch 34 | -------------------------------------------------------------------------------- /pages/whales/fee.js: -------------------------------------------------------------------------------- 1 | import { serverSideTranslations } from 'next-i18next/serverSideTranslations' 2 | import { getIsSsrMobile, useIsMobile } from '../../utils/mobile' 3 | 4 | import SEO from '../../components/SEO' 5 | import { axiosServer, passHeaders } from '../../utils/axios' 6 | import { ledgerName } from '../../utils' 7 | import { WhalesTable } from '../../components/WhalesTable' 8 | import WhaleTabs from '../../components/Tabs/WhaleTabs' 9 | 10 | export async function getServerSideProps(context) { 11 | const { locale, req } = context 12 | 13 | let data = [] 14 | try { 15 | const res = await axiosServer({ 16 | method: 'get', 17 | url: 'address/whale/fee?limit=100', 18 | headers: passHeaders(req) 19 | }) 20 | data = res?.data 21 | } catch (r) { 22 | data = r?.response?.data 23 | } 24 | 25 | return { 26 | props: { 27 | data, 28 | isSsrMobile: getIsSsrMobile(context), 29 | ...(await serverSideTranslations(locale, ['common'])) 30 | } 31 | } 32 | } 33 | 34 | export default function WhaleFee({ data }) { 35 | const isMobile = useIsMobile() 36 | 37 | return ( 38 | <> 39 | 40 |
41 | 42 |

{ledgerName + ' addresses that paid the most fees in the 24 hours.'}

43 | 44 |
45 | 46 | ) 47 | } 48 | -------------------------------------------------------------------------------- /pages/whales/receivers.js: -------------------------------------------------------------------------------- 1 | import { serverSideTranslations } from 'next-i18next/serverSideTranslations' 2 | import { getIsSsrMobile, useIsMobile } from '../../utils/mobile' 3 | 4 | import SEO from '../../components/SEO' 5 | import { axiosServer, passHeaders } from '../../utils/axios' 6 | import { ledgerName } from '../../utils' 7 | import { WhalesTable } from '../../components/WhalesTable' 8 | import WhaleTabs from '../../components/Tabs/WhaleTabs' 9 | 10 | export async function getServerSideProps(context) { 11 | const { locale, req } = context 12 | 13 | let data = [] 14 | try { 15 | const res = await axiosServer({ 16 | method: 'get', 17 | url: 'v2/address/whale/receivers?limit=100', 18 | headers: passHeaders(req) 19 | }) 20 | data = res?.data 21 | } catch (r) { 22 | data = r?.response?.data 23 | } 24 | 25 | return { 26 | props: { 27 | data, 28 | isSsrMobile: getIsSsrMobile(context), 29 | ...(await serverSideTranslations(locale, ['common'])) 30 | } 31 | } 32 | } 33 | 34 | export default function WhaleReceivers({ data }) { 35 | const isMobile = useIsMobile() 36 | 37 | return ( 38 | <> 39 | 40 |
41 | 42 |

{ledgerName + ' addresses that received the most in the last 24 hours'}

43 | 44 |
45 | 46 | ) 47 | } 48 | -------------------------------------------------------------------------------- /pages/whales/senders.js: -------------------------------------------------------------------------------- 1 | import { serverSideTranslations } from 'next-i18next/serverSideTranslations' 2 | import { getIsSsrMobile, useIsMobile } from '../../utils/mobile' 3 | 4 | import SEO from '../../components/SEO' 5 | import { axiosServer, passHeaders } from '../../utils/axios' 6 | import { ledgerName } from '../../utils' 7 | import { WhalesTable } from '../../components/WhalesTable' 8 | import WhaleTabs from '../../components/Tabs/WhaleTabs' 9 | 10 | export async function getServerSideProps(context) { 11 | const { locale, req } = context 12 | let data = [] 13 | try { 14 | const res = await axiosServer({ 15 | method: 'get', 16 | url: 'v2/address/whale/senders?limit=100', 17 | headers: passHeaders(req) 18 | }) 19 | data = res?.data 20 | } catch (r) { 21 | data = r?.response?.data 22 | } 23 | 24 | return { 25 | props: { 26 | data, 27 | isSsrMobile: getIsSsrMobile(context), 28 | ...(await serverSideTranslations(locale, ['common'])) 29 | } 30 | } 31 | } 32 | 33 | export default function WhaleSenders({ data }) { 34 | const isMobile = useIsMobile() 35 | 36 | return ( 37 | <> 38 | 39 |
40 | 41 |

{ledgerName + ' addresses that are sending the most in the last 24 hours'}

42 | 43 |
44 | 45 | ) 46 | } 47 | -------------------------------------------------------------------------------- /postcss.config.mjs: -------------------------------------------------------------------------------- 1 | const config = { 2 | plugins: { 3 | "@tailwindcss/postcss": {}, 4 | }, 5 | }; 6 | export default config; -------------------------------------------------------------------------------- /public/download/bithomp-press.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/download/bithomp-press.zip -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/favicon.ico -------------------------------------------------------------------------------- /public/images/advertise/home-page-banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/advertise/home-page-banner.png -------------------------------------------------------------------------------- /public/images/advertise/new-pages-header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/advertise/new-pages-header.png -------------------------------------------------------------------------------- /public/images/advertise/old-pages-footer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/advertise/old-pages-footer.png -------------------------------------------------------------------------------- /public/images/chart/panning.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/images/chart/zoom-in.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/images/chart/zoom-out.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/images/chart/zoom.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/images/checkmark.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/images/currencies/xah.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/currencies/xah.png -------------------------------------------------------------------------------- /public/images/currencies/xrp.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/images/donate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/donate.png -------------------------------------------------------------------------------- /public/images/download.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /public/images/flags/ae.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /public/images/flags/au.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /public/images/flags/bd.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /public/images/flags/bh.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /public/images/flags/ca.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/images/flags/ch.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /public/images/flags/cl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /public/images/flags/cn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /public/images/flags/cz.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /public/images/flags/dk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /public/images/flags/eu.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/images/flags/gb.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /public/images/flags/hu.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /public/images/flags/id.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /public/images/flags/il.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /public/images/flags/in.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /public/images/flags/jp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /public/images/flags/kr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/flags/kr.png -------------------------------------------------------------------------------- /public/images/flags/kw.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /public/images/flags/my.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /public/images/flags/ng.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /public/images/flags/no.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /public/images/flags/pl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /public/images/flags/ru.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /public/images/flags/se.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /public/images/flags/sg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /public/images/flags/th.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /public/images/flags/tr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /public/images/flags/ua.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /public/images/flags/vn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /public/images/flags/za.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /public/images/fraud-alert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/fraud-alert.png -------------------------------------------------------------------------------- /public/images/link.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /public/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/loading.gif -------------------------------------------------------------------------------- /public/images/logo-small.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | -------------------------------------------------------------------------------- /public/images/nft/18plus.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/nft/18plus.jpg -------------------------------------------------------------------------------- /public/images/nft/evernode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/nft/evernode.png -------------------------------------------------------------------------------- /public/images/pages/blackholed-picture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/pages/blackholed-picture.png -------------------------------------------------------------------------------- /public/images/pages/blackholed-screen-xahau.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/pages/blackholed-screen-xahau.png -------------------------------------------------------------------------------- /public/images/pages/blackholed-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/pages/blackholed-screen.png -------------------------------------------------------------------------------- /public/images/pages/blacklisted-picture.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/pages/blacklisted-picture.jpg -------------------------------------------------------------------------------- /public/images/pages/blacklisted-screen-xahau.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/pages/blacklisted-screen-xahau.png -------------------------------------------------------------------------------- /public/images/pages/blacklisted-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/pages/blacklisted-screen.png -------------------------------------------------------------------------------- /public/images/pages/faucet/lastLedgerIndex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/pages/faucet/lastLedgerIndex.png -------------------------------------------------------------------------------- /public/images/pages/jobs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/pages/jobs.png -------------------------------------------------------------------------------- /public/images/pages/rlusd/rocket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/pages/rlusd/rocket.png -------------------------------------------------------------------------------- /public/images/pages/verified-domains/domains-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/pages/verified-domains/domains-screen.png -------------------------------------------------------------------------------- /public/images/pages/verified-domains/green-checkmark.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/pages/verified-domains/green-checkmark.jpg -------------------------------------------------------------------------------- /public/images/pages/xrpl-article.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/pages/xrpl-article.jpeg -------------------------------------------------------------------------------- /public/images/press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/press.png -------------------------------------------------------------------------------- /public/images/products/for-you.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/products/for-you.png -------------------------------------------------------------------------------- /public/images/products/network.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/products/network.png -------------------------------------------------------------------------------- /public/images/products/nft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/products/nft.png -------------------------------------------------------------------------------- /public/images/products/top-lists.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/products/top-lists.png -------------------------------------------------------------------------------- /public/images/qr.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/qr.gif -------------------------------------------------------------------------------- /public/images/social-share/linkedIn.svg: -------------------------------------------------------------------------------- 1 | 6 | 10 | -------------------------------------------------------------------------------- /public/images/social-share/x.svg: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /public/images/social-share/youTube.svg: -------------------------------------------------------------------------------- 1 | 9 | 10 | 14 | 15 | -------------------------------------------------------------------------------- /public/images/sponsored/btcbit.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /public/images/sponsored/easybit.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 9 | -------------------------------------------------------------------------------- /public/images/sponsored/moon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/images/sponsored/xbit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/sponsored/xbit.png -------------------------------------------------------------------------------- /public/images/sun.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/images/verified.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | -------------------------------------------------------------------------------- /public/images/wallets/crossmark-large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/wallets/crossmark-large.png -------------------------------------------------------------------------------- /public/images/wallets/crossmark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/wallets/crossmark.png -------------------------------------------------------------------------------- /public/images/wallets/gemwallet.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/images/wallets/ledgerwallet.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /public/images/wallets/trezor-large.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/images/wallets/trezor.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /public/images/wallets/walletconnect.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /public/images/wallets/xaman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/wallets/xaman.png -------------------------------------------------------------------------------- /public/images/xahauexplorer/192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xahauexplorer/192.png -------------------------------------------------------------------------------- /public/images/xahauexplorer/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xahauexplorer/512.png -------------------------------------------------------------------------------- /public/images/xahauexplorer/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xahauexplorer/apple-touch-icon.png -------------------------------------------------------------------------------- /public/images/xahauexplorer/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xahauexplorer/favicon.ico -------------------------------------------------------------------------------- /public/images/xahauexplorer/previews/1200x630/alerts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xahauexplorer/previews/1200x630/alerts.png -------------------------------------------------------------------------------- /public/images/xahauexplorer/previews/1200x630/amendments.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xahauexplorer/previews/1200x630/amendments.png -------------------------------------------------------------------------------- /public/images/xahauexplorer/previews/1200x630/distribution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xahauexplorer/previews/1200x630/distribution.png -------------------------------------------------------------------------------- /public/images/xahauexplorer/previews/1200x630/index.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xahauexplorer/previews/1200x630/index.png -------------------------------------------------------------------------------- /public/images/xahauexplorer/previews/1200x630/nft-explorer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xahauexplorer/previews/1200x630/nft-explorer.png -------------------------------------------------------------------------------- /public/images/xahauexplorer/previews/1200x630/nft-sales.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xahauexplorer/previews/1200x630/nft-sales.png -------------------------------------------------------------------------------- /public/images/xahauexplorer/previews/1200x630/validators.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xahauexplorer/previews/1200x630/validators.png -------------------------------------------------------------------------------- /public/images/xahauexplorer/previews/630x630/alerts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xahauexplorer/previews/630x630/alerts.png -------------------------------------------------------------------------------- /public/images/xahauexplorer/previews/630x630/amendments.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xahauexplorer/previews/630x630/amendments.png -------------------------------------------------------------------------------- /public/images/xahauexplorer/previews/630x630/distribution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xahauexplorer/previews/630x630/distribution.png -------------------------------------------------------------------------------- /public/images/xahauexplorer/previews/630x630/index.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xahauexplorer/previews/630x630/index.png -------------------------------------------------------------------------------- /public/images/xahauexplorer/previews/630x630/nft-explorer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xahauexplorer/previews/630x630/nft-explorer.png -------------------------------------------------------------------------------- /public/images/xahauexplorer/previews/630x630/nft-sales.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xahauexplorer/previews/630x630/nft-sales.png -------------------------------------------------------------------------------- /public/images/xahauexplorer/previews/630x630/validators.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xahauexplorer/previews/630x630/validators.png -------------------------------------------------------------------------------- /public/images/xahauexplorer/verified-domains/checkmark-example-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xahauexplorer/verified-domains/checkmark-example-screen.png -------------------------------------------------------------------------------- /public/images/xahauexplorer/verified-domains/screen-account-page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xahauexplorer/verified-domains/screen-account-page.png -------------------------------------------------------------------------------- /public/images/xrplexplorer/192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xrplexplorer/192.png -------------------------------------------------------------------------------- /public/images/xrplexplorer/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xrplexplorer/512.png -------------------------------------------------------------------------------- /public/images/xrplexplorer/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xrplexplorer/apple-touch-icon.png -------------------------------------------------------------------------------- /public/images/xrplexplorer/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xrplexplorer/favicon.ico -------------------------------------------------------------------------------- /public/images/xrplexplorer/previews/1200x630/alerts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xrplexplorer/previews/1200x630/alerts.png -------------------------------------------------------------------------------- /public/images/xrplexplorer/previews/1200x630/amendments.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xrplexplorer/previews/1200x630/amendments.png -------------------------------------------------------------------------------- /public/images/xrplexplorer/previews/1200x630/amms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xrplexplorer/previews/1200x630/amms.png -------------------------------------------------------------------------------- /public/images/xrplexplorer/previews/1200x630/distribution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xrplexplorer/previews/1200x630/distribution.png -------------------------------------------------------------------------------- /public/images/xrplexplorer/previews/1200x630/index.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xrplexplorer/previews/1200x630/index.png -------------------------------------------------------------------------------- /public/images/xrplexplorer/previews/1200x630/nft-explorer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xrplexplorer/previews/1200x630/nft-explorer.png -------------------------------------------------------------------------------- /public/images/xrplexplorer/previews/1200x630/nft-sales.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xrplexplorer/previews/1200x630/nft-sales.png -------------------------------------------------------------------------------- /public/images/xrplexplorer/previews/1200x630/nft-volumes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xrplexplorer/previews/1200x630/nft-volumes.png -------------------------------------------------------------------------------- /public/images/xrplexplorer/previews/1200x630/validators.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xrplexplorer/previews/1200x630/validators.png -------------------------------------------------------------------------------- /public/images/xrplexplorer/previews/630x630/alerts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xrplexplorer/previews/630x630/alerts.png -------------------------------------------------------------------------------- /public/images/xrplexplorer/previews/630x630/amendments.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xrplexplorer/previews/630x630/amendments.png -------------------------------------------------------------------------------- /public/images/xrplexplorer/previews/630x630/amms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xrplexplorer/previews/630x630/amms.png -------------------------------------------------------------------------------- /public/images/xrplexplorer/previews/630x630/distribution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xrplexplorer/previews/630x630/distribution.png -------------------------------------------------------------------------------- /public/images/xrplexplorer/previews/630x630/index.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xrplexplorer/previews/630x630/index.png -------------------------------------------------------------------------------- /public/images/xrplexplorer/previews/630x630/nft-explorer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xrplexplorer/previews/630x630/nft-explorer.png -------------------------------------------------------------------------------- /public/images/xrplexplorer/previews/630x630/nft-sales.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xrplexplorer/previews/630x630/nft-sales.png -------------------------------------------------------------------------------- /public/images/xrplexplorer/previews/630x630/nft-volumes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xrplexplorer/previews/630x630/nft-volumes.png -------------------------------------------------------------------------------- /public/images/xrplexplorer/previews/630x630/validators.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xrplexplorer/previews/630x630/validators.png -------------------------------------------------------------------------------- /public/images/xrplexplorer/verified-domains/checkmark-example-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xrplexplorer/verified-domains/checkmark-example-screen.png -------------------------------------------------------------------------------- /public/images/xrplexplorer/verified-domains/screen-account-page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bithomp/frontend-react/b58cd0c0a551e5ab4646e0ad8fb354332d26347b/public/images/xrplexplorer/verified-domains/screen-account-page.png -------------------------------------------------------------------------------- /public/locales/de/activations.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "Aktivierte Konten", 3 | "account-activations-for-that-period": "In diesem Zeitraum wurden <1>{{count}} Konten aktiviert." 4 | } -------------------------------------------------------------------------------- /public/locales/de/amendments.json: -------------------------------------------------------------------------------- 1 | { 2 | "soon": "Änderung mit einer Mehrheit", 3 | "new": "Neue Änderungen", 4 | "not-available": "Nicht verfügbare Änderungen", 5 | "obsolete": "Obsolete Änderungen", 6 | "enabled": "Aktivierte Änderungen", 7 | "majority": "Mehrheit", 8 | "eta": "Geschätzte Aktivierung" 9 | } -------------------------------------------------------------------------------- /public/locales/de/distribution.json: -------------------------------------------------------------------------------- 1 | { 2 | "desc": "Hier finden Sie die TOP 100 Konten nach {{nativeCurrency}} Kontostand.", 3 | "summary": "Es gibt <1>{{activeAccounts}} aktive Konten. Insgesamt verfügbar: <3>{{totalCoins}}" 4 | } -------------------------------------------------------------------------------- /public/locales/de/ledger.json: -------------------------------------------------------------------------------- 1 | { 2 | "no-transactions": "Wir konnten keine Transaktionen zum Anzeigen finden.", 3 | "ledger-not-found": "Wir können diesen Ledger noch nicht finden", 4 | "earliest-ledger": "Der Ledger <1>{{minLedger}} ist der früheste verfügbare Ledger.", 5 | "earliest-ledger-mainnet": "Der Ledger <1>32570 ist der früheste verfügbare Ledger. Ungefähr in der ersten Woche der XRPL Geschichte wurden die <3>Ledger 1 bis 32569 in 2012 durch eine Panne verloren.", 6 | "ledger-continue": "Weil der Zustand des {{ledgerName}} mit jeder Ledgerversion aufgezeichnet wird, kann der Ledger trotz fehlender Geschichte weitergeführt werden.", 7 | "ledger_unix_close_time": "Ledger Unix-Schlusszeit: {data.close_time}", 8 | "ledger_utc_close_time": "Ledger UTC-Schlusszeit: {data.closeTime}" 9 | } -------------------------------------------------------------------------------- /public/locales/de/nft-distribution.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "NFT Verteilung", 3 | "desc": "Hier können Sie die Verteilung von NFTs eines bestimmten NFT Emittenten überprüfen. Geben Sie die Adresse des NFT Emittenten oder einen Benutzernamen ein und klicken Sie auf die Suchschaltfläche.", 4 | "no-nfts": "Wir konnten keine von dieser Adresse emittierten NFTs finden", 5 | "total": "{{users}} Konten besitzen {{nfts}} NFTs", 6 | "nonSelfIssued": "{{users}} Konten besitzen {{nfts}} nicht selbst emittierte NFTs", 7 | "selfIssued": "{{users}} Konten besitzen {{nfts}} selbst emittierte NFTs", 8 | "table": { 9 | "non-self-issued": "Nicht selbst emittiert", 10 | "self-issued": "Selbst emittiert", 11 | "total": "Total" 12 | } 13 | } -------------------------------------------------------------------------------- /public/locales/de/nft-minters.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "NFT Minter", 3 | "desc": "Hier finden Sie die Liste aller identifizierten NFT Minter. Wenn Sie möchten, dass Ihr Projekt erkannt wird, fügen Sie den Mint-Transaktionen ein Memo mit Ihrer Webseite hinzu.", 4 | "summary-period": "In diesem Zeitraum wurden <1>{{minted}} minted, von denen <4>{{mintedAndBurned}} NFTs bereits im selben Zeitraum vernichtet wurden. Total während diesem Zeitraum vernichtet: <11>{{burned}} NFTs.", 5 | "summary-all": "Es gibt <1>{{minted}} minted NFTs, von denen <4>{{mintedAndBurned}} NFTs {{percentMintedAndBurned}} vernichtet sind.", 6 | "mint-chart": "Mint Diagramm", 7 | "table": { 8 | "minted-total": "Total minted", 9 | "minted-with-metadata": "Minted NFTs mit Metadaten", 10 | "minted-and-burned": "Minted und vernichtet", 11 | "burned-total": "Total vernichtet" 12 | } 13 | } -------------------------------------------------------------------------------- /public/locales/de/nft-volumes.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "NFT Verkaufsvolumen", 3 | "text0": "In diesem Zeitraum hatte {{explorerName}} {{allSales}} {{currency}} NFT {{saleType}} Verkäufe für {{allVolume}}.", 4 | "collections": { 5 | "desc": "Dies ist die Liste der NFT-Sammlungen. In den Volumen sind hier die Primärverkäufe (Mints) nicht enthalten, die innerhalb von 2 Transaktionen (Zahlung und NFT Transfer) getätigt wurden." 6 | }, 7 | "brokers": { 8 | "desc": "Dies ist die Liste der NFT Vermittlerkonten. Hier finden Sie zahlreiche Angebots-Matching-Bots. Marktplätze verwenden gemischte Handelsmodelle, hier können Sie nur die Volumen durch das Vermittler-Modell sehen.", 9 | "no-broker": "Kein Vermittler", 10 | "text0": "In diesem Zeitraum hatte XRPL {{allSales}} <3>{{currency}} NFT {{saleType}} Verkäufe für {{allVolume}}, wobei <13>{{brokerSales}} {{percentBrokerSales}} der Geschäfte für <19>{{brokerVolume}} {{percentBrokerVolume}} über das Vermittler-Modell erfolgten." 11 | }, 12 | "marketplaces": { 13 | "desc": "Dies ist die Liste der NFT Marktplätze auf {{explorerName}}. In den Volumen sind hier die Primärverkäufe (Mints) nicht enthalten, die innerhalb von 2 Transaktionen (Zahlung und NFT Transfer) getätigt wurden." 14 | }, 15 | "issuers": { 16 | "desc": "Dies ist die Liste der NFT Emittenten auf {{explorerName}}. Um die Volumen der NFT Kollektionen nach Emittenten und Taxon anzuzeigen, klicken Sie auf den Link in der Spalte Volumen" 17 | }, 18 | "sales-chart": "Verkaufsdiagramm", 19 | "volumes-chart": "Volumen Diagramm" 20 | } -------------------------------------------------------------------------------- /public/locales/de/nft.json: -------------------------------------------------------------------------------- 1 | { 2 | "desc": "Hier können Sie nach NFTs suchen, eine NFT ID eingeben und den Suchknopf drücken.", 3 | "enter-nft-id": "Eine NFT ID eingeben", 4 | "holders": "Verteilung (Halter)", 5 | "nft-id-decoded-data": "NFT ID dekodierte Daten", 6 | "nft-not-found-on-that-network": "Dieser NFT wurde im Netzwerk <1>{{network}} nicht gefunden.", 7 | "table": { 8 | "digest": "Digest", 9 | "attention": "Achtung", 10 | "attention-texts": { 11 | "no-uri": "Da dieser NFT keine URI hat, ist er nicht mit allgemein anerkannten Standards kompatibel.", 12 | "no-metadata": "Der angegebenen URI fehlen die Metadaten für diesen NFT. Es verstößt gegen allgemein anerkannte Standards.", 13 | "not-transferable": "Dieser NFT ist nicht übertragbar; es kann nur an und von dem Emittenten übertragen werden.", 14 | "burnable": "Der Emittent (oder eine vom Emittenten autorisierte Stelle) kann den NFT vernichten.", 15 | "no-digest": "Für diesen NFT ist kein Digest angegeben. Die NFT-Integrität kann nicht überprüft werden.", 16 | "invalid-digest": "Die Integritätsprüfung des NFTs ist fehlgeschlagen. Der Digest stimmt nicht mit den NFT-Metadaten überein." 17 | }, 18 | "warnings": { 19 | "nft-crawler-delay": "Einige Daten sind veraltet, letztes Update: {{lastUpdate}}. Unsere Server holen auf, prüfen Sie später erneut für genauere Daten." 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /public/locales/de/popups.json: -------------------------------------------------------------------------------- 1 | { 2 | "age-check": { 3 | "subtitle": "Explizite Inhalte", 4 | "text": "Dies wird explizite und sensible Inhalte aktivieren. Sie müssen volljährig sein, um dies ansehen zu dürfen.", 5 | "button-true": "Ja, ich bin über 18", 6 | "button-false": "Nein, ich bin es nicht" 7 | } 8 | } -------------------------------------------------------------------------------- /public/locales/de/products.json: -------------------------------------------------------------------------------- 1 | { 2 | "titles": { 3 | "for-you": "Für Dich", 4 | "top-lists": "Top-Listen", 5 | "nft": "NFT", 6 | "network": "Netzwerk", 7 | "developer": "Entwickler" 8 | }, 9 | "items": { 10 | "watchlist": "Beobachtungsliste", 11 | "tx-export": "Transaktions-Export", 12 | "set-avatar": "Avatar festlegen", 13 | "username-registration": "Benutzernamen registrieren", 14 | "project-registration": "Projekt registrieren", 15 | "amms": "AMMs", 16 | "distribution": "{{nativeCurrency}} Verteilung", 17 | "nft-marketplaces": "NFT-Marktplätze", 18 | "nft-collections": "NFT-Kollektionen", 19 | "nft-distribution": "NFT-Besitzer", 20 | "nft-explorer": "NFT-Explorer", 21 | "nft-sales": "NFT-Verkäufe", 22 | "nft-minters": "NFT-Präger", 23 | "nft-statistics": "NFT-Statistiken", 24 | "nft-mint": "NFT prägen", 25 | "validators": "Validatoren", 26 | "amendments": "Änderungen", 27 | "last-ledger-information": "Live-Ledger-Info", 28 | "ledger": "Letzte Ledger-Txs", 29 | "nodes": "Knoten", 30 | "governance": "Verwaltung", 31 | "faucet": "{{nativeCurrency}} Faucet", 32 | "api-docs": "API-Dokumentation", 33 | "get-api-key": "API-Schlüssel erhalten", 34 | "nft-cdn": "NFT-Inhaltspläne", 35 | "tools": "Bithomp Tools" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /public/locales/de/unl-report.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "UNL Report", 3 | "desc": "Hier können Sie den UNL Report für den Ledger <1>#{{ledgerIndex}} sehen, ledger entry: 61E32E...6F28DC.", 4 | "summary": "Es sind <1>{{activeValidators}} aktive Validatoren vorhanden." 5 | } -------------------------------------------------------------------------------- /public/locales/de/validators.json: -------------------------------------------------------------------------------- 1 | { 2 | "table": { 3 | "validator": "Validator", 4 | "server-country": "Serverland", 5 | "server-location": "Serverstandort", 6 | "cloud-private": "Cloud/Privat", 7 | "network-asn": "Netzwerk ASN", 8 | "owner-country": "Land Eigentümer", 9 | "votes-for": "Stimmen für", 10 | "last-seen": "Zuletzt gesehen", 11 | "text": { 12 | "domain-verified-toml": "Verifizierte Domain (TOML Datei)", 13 | "unl": "In der Unique Node List (UNL)", 14 | "negative-unl": "in der negativen UNL" 15 | } 16 | }, 17 | "domain-legacy": "Domain (alte Verifizierung)", 18 | "text0": "Die Liste der Validatoren <1>{{url}} hat die Sequenz {{sequence}} und läuft am {{expiration}} ab.
Sie beinhaltet {{validatorCount}} nachfolgend aufgelistete Validatoren." 19 | } -------------------------------------------------------------------------------- /public/locales/en/about-us.json: -------------------------------------------------------------------------------- 1 | { 2 | "seo-header": "About us", 3 | "seo-description": "Our story, our mission, what we offer and our plans.", 4 | "header": "Welcome to Bithomp" 5 | } -------------------------------------------------------------------------------- /public/locales/en/account.json: -------------------------------------------------------------------------------- 1 | { 2 | "button": { 3 | "set-did": "Set a DID", 4 | "update-did": "Update DID", 5 | "delete-did": "Delete DID" 6 | } 7 | } -------------------------------------------------------------------------------- /public/locales/en/activations.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "Activated accounts", 3 | "account-activations-for-that-period": "For that period <1>{{count}} accounts were activated." 4 | } -------------------------------------------------------------------------------- /public/locales/en/admin.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "Admin" 3 | } -------------------------------------------------------------------------------- /public/locales/en/amendments.json: -------------------------------------------------------------------------------- 1 | { 2 | "soon": "Amendments with a majority", 3 | "new": "New amendments", 4 | "not-available": "Not available amendments", 5 | "obsolete": "Obsolete amendments", 6 | "enabled": "Enabled amendments", 7 | "majority": "Majority", 8 | "eta": "Estimated activation time" 9 | } -------------------------------------------------------------------------------- /public/locales/en/distribution.json: -------------------------------------------------------------------------------- 1 | { 2 | "desc": "Here you can find the TOP 100 accounts by {{nativeCurrency}} balance.", 3 | "summary": "There are <1>{{activeAccounts}} active accounts, total available: <3>{{totalCoins}}" 4 | } -------------------------------------------------------------------------------- /public/locales/en/governance.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "{{ledgerName}} Governance Game", 3 | "summary": "There are <1>{{ countTables }} seats.", 4 | "reward-rate": "Reward rate: <1>{{ rewardRate }}.", 5 | "reward-delay": "Reward delay: <2>{{ rewardDelay }} ({{ rewardDelaySeconds }} seconds).", 6 | "button": { 7 | "show-main-table": "Show the Main Table", 8 | "vote-seat": "Vote for a seat", 9 | "vote-reward-rate": "Vote for a reward rate", 10 | "vote-reward-delay": "Vote for a Reward delay", 11 | "vote-hook": "Vote for a hook" 12 | }, 13 | "table": { 14 | "cast-first-vote": "Cast the first vote", 15 | "members": "Members", 16 | "seat": "Seat", 17 | "no-seat": "No seat", 18 | "layer": "Layer", 19 | "hooks": "Hooks", 20 | "place": "Place", 21 | "hook": "Hook", 22 | "target": "Target", 23 | "votes": "Votes", 24 | "voter": "Voter", 25 | "rate": "Rate", 26 | "value": "Value", 27 | "delay": "Delay", 28 | "in-seconds": "In seconds", 29 | "seat-votes": "Seat votes", 30 | "seat-votes-count": "Seat votes count", 31 | "reward-rate-votes": "Reward rate votes", 32 | "reward-rate-votes-count": "Reward rate votes count", 33 | "reward-delay-votes": "Reward delay votes", 34 | "reward-delay-votes-count": "Reward delay votes count", 35 | "hook-votes": "Hook votes", 36 | "hook-votes-count": "Hook votes count", 37 | "text": { 38 | "vacate-seat": "Vacate the seat", 39 | "vacate-place": "Vacate the place" 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /public/locales/en/ledger.json: -------------------------------------------------------------------------------- 1 | { 2 | "no-transactions": "We could not find any transactions to show.", 3 | "ledger-not-found": "We can not find that ledger yet", 4 | "earliest-ledger": "The ledger <1>{{minLedger}} is the earliest ledger available.", 5 | "earliest-ledger-mainnet": "The ledger <1>32570 is the earliest ledger available, approximately the first week of XRPL history, <3>ledgers 1 through 32569 were lost due to a mishap in 2012.", 6 | "ledger-continue": "Because the {{ledgerName}}'s state is recorded in every ledger version, the ledger can continue without the missing history.", 7 | "ledger_unix_close_time": "Ledger Unix close time: {data.close_time}", 8 | "ledger_utc_close_time": "Ledger UTC close time: {data.closeTime}" 9 | } -------------------------------------------------------------------------------- /public/locales/en/nft-distribution.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "NFT distribution", 3 | "desc": "Here you can check the distribution of NFTs of a particilar NFT issuer. Enter the NFT issuer address or a username and press the search button.", 4 | "no-nfts": "We couldn't find any NFTs issued by that address.", 5 | "total": "{{users}} accounts own {{nfts}} NFTs", 6 | "nonSelfIssued": "{{users}} accounts own {{nfts}} non-self-issued NFTs", 7 | "selfIssued": "{{users}} accounts own {{nfts}} self-issued NFTs", 8 | "table": { 9 | "non-self-issued": "Non-self-issued", 10 | "self-issued": "Self-issued", 11 | "total": "Total" 12 | } 13 | } -------------------------------------------------------------------------------- /public/locales/en/nft-minters.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "NFT minters", 3 | "desc": "Here you can find the list of all identified NFT minters. If you want your project to be recognised, add a memo with your website address to your mint transactions.", 4 | "summary-period": "For that period <1>{{minted}} NFTs were minted, from which <4>{{mintedAndBurned}} NFTs {{percentMintedAndBurned}} were already burned during the same period of time, total burned during this period: <11>{{burned}} NFTs.", 5 | "summary-all": "There are <1>{{minted}} minted NFTs, from which <4>{{mintedAndBurned}} NFTs {{percentMintedAndBurned}} are burned.", 6 | "mint-chart": "Mint chart", 7 | "table": { 8 | "minted-total": "Total minted", 9 | "minted-with-metadata": "Minted NFTs with metadata", 10 | "minted-and-burned": "Minted and burned", 11 | "burned-total": "Total burned" 12 | } 13 | } -------------------------------------------------------------------------------- /public/locales/en/nft-sort.json: -------------------------------------------------------------------------------- 1 | { 2 | "dropdown": { 3 | "priceHigh": "Price high to low", 4 | "priceLow": "Price low to high", 5 | "soldNew": "Recent sales", 6 | "soldOld": "Oldest sales", 7 | "mintedNew": "Latest mints", 8 | "mintedOld": "Oldest mints", 9 | "rating": "Most viewed", 10 | "offerCreatedNew": "Newest offers", 11 | "offerCreatedOld": "Oldest offers" 12 | } 13 | } -------------------------------------------------------------------------------- /public/locales/en/nft-volumes.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "NFT sales volumes", 3 | "text0": "For that period {{explorerName}} had {{allSales}} {{currency}} NFT {{saleType}} sales for {{allVolume}}.", 4 | "collections": { 5 | "desc": "This is the list of NFT collections. The volumes here do not include the primary sales (mints) which were done within 2 transactions (payment and NFT transfer)." 6 | }, 7 | "brokers": { 8 | "desc": "This is the list of NFT broker accounts. You can find here volumes of offer matching bots. Marketplaces use mixed trade models, here you can see only the volumes through the brokerage model.", 9 | "no-broker": "No broker", 10 | "text0": "For that period XRPL had {{allSales}} <3>{{currency}} NFT {{saleType}} sales for {{allVolume}}, from which <13>{{brokerSales}} {{percentBrokerSales}} of trades for <19>{{brokerVolume}} {{percentBrokerVolume}} were through the brokerage model." 11 | }, 12 | "marketplaces": { 13 | "desc": "This is the list of NFT Marketplaces on {{explorerName}}. The volumes here do not include the primary sales (mints) which were done within 2 transactions (payment and NFT transfer)." 14 | }, 15 | "issuers": { 16 | "desc": "This the list of NFT issuers on {{explorerName}}. To see volumes of NFT collections identified by issuer and taxon click on the link in the Sales volume column." 17 | }, 18 | "sales-chart": "Sales chart", 19 | "volumes-chart": "Volume chart" 20 | } -------------------------------------------------------------------------------- /public/locales/en/nft.json: -------------------------------------------------------------------------------- 1 | { 2 | "desc": "Here you can search for NFTs, enter an NFT ID and press the search button.", 3 | "enter-nft-id": "Enter an NFT ID", 4 | "holders": "Distribution (Holders)", 5 | "nft-id-decoded-data": "NFT ID decoded data", 6 | "nft-not-found-on-that-network": "This NFT wasn't found on the <1>{{network}} network.", 7 | "table": { 8 | "digest": "Digest", 9 | "attention": "Attention", 10 | "attention-texts": { 11 | "no-uri": "That NFT lacks an URI, it is incompatible with commonly accepted standards.", 12 | "no-metadata": "The given URI is missing the metadata for that NFT. It goes against commonly accepted standards.", 13 | "not-transferable": "This NFT is not transferable; it can only be transferred to and from the issuer.", 14 | "burnable": "The issuer (or an entity authorized by the issuer) can destroy the NFT.", 15 | "no-digest": "There is no Digest provided for that NFT. The NFT integrity cannot be verified.", 16 | "invalid-digest": "The NFT integrity check failed. The Digest does not match the NFT metadata." 17 | }, 18 | "warnings": { 19 | "nft-crawler-delay": "Some data is outdated, the last update: {{lastUpdate}}. Our servers are catching up, check later for more accurate data." 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /public/locales/en/popups.json: -------------------------------------------------------------------------------- 1 | { 2 | "age-check": { 3 | "subtitle": "Explicit content", 4 | "text": "This will enable explicit and sensitive content. You must be of the legal age to view this.", 5 | "button-true": "Yes, I'm over 18", 6 | "button-false": "No, I'm not" 7 | } 8 | } -------------------------------------------------------------------------------- /public/locales/en/products.json: -------------------------------------------------------------------------------- 1 | { 2 | "titles": { 3 | "for-you": "For You", 4 | "top-lists": "TOP Lists", 5 | "nft": "NFT", 6 | "network": "Network", 7 | "developer": "Developer" 8 | }, 9 | "items": { 10 | "watchlist": "Watchlist", 11 | "tx-export": "Transactions export", 12 | "set-avatar": "Set Avatar", 13 | "username-registration": "Register a Username", 14 | "project-registration": "Register a Project", 15 | "amms": "AMMs", 16 | "distribution": "{{nativeCurrency}} distribution", 17 | "nft-marketplaces": "NFT Marketplaces", 18 | "nft-collections": "NFT Collections", 19 | "nft-distribution": "NFT Holders", 20 | "nft-explorer": "NFT Explorer", 21 | "nft-sales": "NFT Sales", 22 | "nft-minters": "NFT Minters", 23 | "nft-statistics": "NFT Statistics", 24 | "nft-mint": "Mint NFT", 25 | "validators": "Validators", 26 | "amendments": "Amendments", 27 | "last-ledger-information": "Live Ledger info", 28 | "ledger": "Last Ledger txs", 29 | "nodes": "Nodes", 30 | "governance": "Governance", 31 | "faucet": "{{nativeCurrency}} Faucet", 32 | "api-docs": "API Documentation", 33 | "get-api-key": "Get API key", 34 | "nft-cdn": "NFT Content Plans", 35 | "tools": "Bithomp Tools" 36 | } 37 | } -------------------------------------------------------------------------------- /public/locales/en/unl-report.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "UNL report", 3 | "desc": "Here you can see the UNL report for Ledger <1>#{{ledgerIndex}}, ledger entry: 61E32E...6F28DC.", 4 | "summary": "There are <1>{{activeValidators}} active validators." 5 | } -------------------------------------------------------------------------------- /public/locales/en/validators.json: -------------------------------------------------------------------------------- 1 | { 2 | "table": { 3 | "validator": "Validator", 4 | "server-country": "Server country", 5 | "server-location": "Server location", 6 | "cloud-private": "Cloud/private", 7 | "network-asn": "Network ASN", 8 | "owner-country": "Owner country", 9 | "votes-for": "Votes for", 10 | "last-seen": "Last seen", 11 | "text": { 12 | "domain-verified-toml": "Verified domain (TOML file)", 13 | "unl": "In the Unique Node List (UNL)", 14 | "negative-unl": "in the Negative UNL" 15 | } 16 | }, 17 | "domain-legacy": "Domain (old verification)", 18 | "text0": "The validator list <1>{{url}} has sequence {{sequence}} and expiration on {{expiration}}.
It includes {{validatorCount}} validators which are listed below." 19 | } -------------------------------------------------------------------------------- /public/locales/es/activations.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "Cuentas activadas", 3 | "account-activations-for-that-period": "<1>{{count}} cuentas fueron activadas para ese periodo." 4 | } -------------------------------------------------------------------------------- /public/locales/es/amendments.json: -------------------------------------------------------------------------------- 1 | { 2 | "soon": "Enmiendas con una mayoría", 3 | "new": "Nuevas enmiendas", 4 | "not-available": "Enmiendas no disponibles", 5 | "obsolete": "Enmiendas obsoletas", 6 | "enabled": "Enmiendas activadas", 7 | "majority": "Mayoría", 8 | "eta": "Estimación de tiempo en ser activada" 9 | } -------------------------------------------------------------------------------- /public/locales/es/distribution.json: -------------------------------------------------------------------------------- 1 | { 2 | "desc": "Aquí puedes encontrar el TOP 100 de cuentas por balance {{nativeCurrency}}.", 3 | "summary": "Hay <1>{{activeAccounts}} cuentas activas, total disponible: <3>{{totalCoins}}" 4 | } -------------------------------------------------------------------------------- /public/locales/es/ledger.json: -------------------------------------------------------------------------------- 1 | { 2 | "no-transactions": "No encontramos ninguna transacción que mostrar.", 3 | "ledger-not-found": "No podemos encontrar ese libro contable todavía", 4 | "earliest-ledger": "El libro contable <1>{{minLedger}} es el libro contable más antiguo disponible.", 5 | "earliest-ledger-mainnet": "El libro contable <1>32570 es el libro contable más antiguo disponible, aproximadamente la primera semana del histórico de XRPL, <3>libros contables del 1 hasta 32569, se perdió debido a un percance en 2012.", 6 | "ledger-continue": "Debido a que el estado del {{ledgerName}} se guarda en cada versión del libro contable, el Ledger puede continuar sin la necesidad del histórico perdido.", 7 | "ledger_unix_close_time": "Hora de cierre Unix de Ledger: {data.close_time}", 8 | "ledger_utc_close_time": "Hora de cierre UTC de Ledger: {data.closeTime}" 9 | } -------------------------------------------------------------------------------- /public/locales/es/nft-distribution.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "Distribución NFT", 3 | "desc": "Aquí puedes comprobar la distribución de NFTs de un emisor particular. Introduce la dirección del emisor NFT o el nombre de usuario y presiona el botón de búsqueda.", 4 | "no-nfts": "No pudimos encontrar ningún NFT acuñado por esa cuenta.", 5 | "total": "{{users}} cuentas poseen {{nfts}} NFTs", 6 | "nonSelfIssued": "{{users}} cuentas son dueñas de {{nfts}} NFTs de otros", 7 | "selfIssued": "{{users}} cuentas son dueñas de {{nfts}} NFTs suyos", 8 | "table": { 9 | "non-self-issued": "De otros", 10 | "self-issued": "Propios", 11 | "total": "Total" 12 | } 13 | } -------------------------------------------------------------------------------- /public/locales/es/nft-minters.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "Acuñadores NFT", 3 | "desc": "Aquí puedes encontrar la lista de todos los acuñadores NFT identificados. Si quieres que tu proyecto sea reconocido, añade un memo con tu dirección web en tus transacciones de acuñación.", 4 | "summary-period": "Para este periodo, <1>{{minted}} NFTs fueron acuñados, de los cuales <4>{{mintedAndBurned}} NFTs {{percentMintedAndBurned}} fueron quemados durante el mismo periodo de tiempo, quemados totales durante este periodo: <11>{{burned}} NFTs.", 5 | "summary-all": "Hay <1>{{minted}} NFTs acuñados, de los cuales <4>{{mintedAndBurned}} NFTs {{percentMintedAndBurned}} fueron quemados.", 6 | "mint-chart": "Gráfica Acuñación", 7 | "table": { 8 | "minted-total": "Acuñados totales", 9 | "minted-with-metadata": "NFTs acuñados con metadata", 10 | "minted-and-burned": "Acuñado y quemado", 11 | "burned-total": "Quemados totales" 12 | } 13 | } -------------------------------------------------------------------------------- /public/locales/es/nft.json: -------------------------------------------------------------------------------- 1 | { 2 | "desc": "Aquí puedes buscar por NFTs, introduce un ID de NFT y presiona el botón de buscar.", 3 | "enter-nft-id": "Introduce el ID del NFT", 4 | "holders": "Distribución (Poseedores)", 5 | "nft-id-decoded-data": "NFT ID Información Decodificada", 6 | "nft-not-found-on-that-network": "Este NFT no se ha encontrado en la red <1>{{network}}.", 7 | "table": { 8 | "digest": "Resumen (Digest)", 9 | "attention": "Atención", 10 | "attention-texts": { 11 | "no-uri": "Ese NFT carece de una URI, es incompatible con los estándares comunes aceptados.", 12 | "no-metadata": "La URI dada falta en el metadata para ese NFT. Esto va en contra de los estándares comunes aceptados.", 13 | "not-transferable": "Este NFT no es transferible; solo puede ser transferido a y por el emisor.", 14 | "burnable": "El emisor (o la entidad autorizada por el emisor) puede destruir el NFT.", 15 | "no-digest": "No se facilita Resumen (Digest) para este NFT. La integridad del NFT no puede ser varificada.", 16 | "invalid-digest": "La comprobación de la integridad del NFT ha fallado. El Resumen (Digest) no oncuerda con el metadata del NFT." 17 | }, 18 | "warnings": { 19 | "nft-crawler-delay": "Alguna información está desactualizada, última actualización: {{lastUpdate}}. Nuestros servidores están poniéndose al día, comprueba más tarde para tener información más actualizada." 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /public/locales/es/popups.json: -------------------------------------------------------------------------------- 1 | { 2 | "age-check": { 3 | "subtitle": "Contenido explícito", 4 | "text": "Esto activará contenido explícito y sensible. Debes tener la edad legal para verlo.", 5 | "button-true": "Sí, tengo más de 18 años", 6 | "button-false": "No, no la tengo" 7 | } 8 | } -------------------------------------------------------------------------------- /public/locales/es/products.json: -------------------------------------------------------------------------------- 1 | { 2 | "titles": { 3 | "for-you": "Para ti", 4 | "top-lists": "Principales", 5 | "nft": "NFT", 6 | "network": "Red", 7 | "developer": "Desarrollador" 8 | }, 9 | "items": { 10 | "watchlist": "Lista de seguimiento", 11 | "tx-export": "Exportación de transacciones", 12 | "set-avatar": "Establecer Avatar", 13 | "username-registration": "Nombre de usuario", 14 | "project-registration": "Registrar un proyecto", 15 | "amms": "AMMs", 16 | "distribution": "Distribución de {{nativeCurrency}}", 17 | "nft-marketplaces": "Mercados de NFT", 18 | "nft-collections": "Colecciones de NFT", 19 | "nft-distribution": "Titulares de NFT", 20 | "nft-explorer": "Explorador de NFT", 21 | "nft-sales": "Ventas de NFT", 22 | "nft-minters": "Creadores de NFT", 23 | "nft-statistics": "Estadísticas de NFT", 24 | "nft-mint": "Acuñar NFT", 25 | "validators": "Validadores", 26 | "amendments": "Enmiendas", 27 | "last-ledger-information": "Ledger en Vivo", 28 | "ledger": "Transacciones", 29 | "nodes": "Nodos", 30 | "governance": "Gobernanza", 31 | "faucet": "Grifo de {{nativeCurrency}}", 32 | "api-docs": "Documentación de la API", 33 | "get-api-key": "Obtener Clave de API", 34 | "nft-cdn": "Planes de Contenido NFT", 35 | "tools": "Herramientas de Bithomp" 36 | } 37 | } -------------------------------------------------------------------------------- /public/locales/es/unl-report.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "Reporte UNL", 3 | "desc": "Aquí puedes ver el reporte UNL para el libro contable <1>#{{ledgerIndex}}, entrada del libro contable: 61E32E...6F28DC.", 4 | "summary": "Hay activos <1>{{activeValidators}} validadores." 5 | } -------------------------------------------------------------------------------- /public/locales/es/validators.json: -------------------------------------------------------------------------------- 1 | { 2 | "table": { 3 | "validator": "Validador", 4 | "server-country": "País del servidor", 5 | "server-location": "Localización del servidor", 6 | "cloud-private": "Nube/privado", 7 | "network-asn": "ASN de red", 8 | "owner-country": "País del dueño", 9 | "votes-for": "Votos para", 10 | "last-seen": "Última vez visto", 11 | "text": { 12 | "domain-verified-toml": "Dominio verificado (fichero TOML)", 13 | "unl": "En la Lísta Única de Nodos (UNL)", 14 | "negative-unl": "en la UNL negativa" 15 | } 16 | }, 17 | "domain-legacy": "Dominio (antigua verificación)", 18 | "text0": "La lista de validadores <1>{{url}} tiene la secuencia {{sequence}} y fecha de caducidad el {{expiration}}.
Incluye {{validatorCount}} los validadores que hay listados debajo." 19 | } -------------------------------------------------------------------------------- /public/locales/fr/activations.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "Comptes activés", 3 | "account-activations-for-that-period": "Pour cette période, <1>{{count}} comptes ont été activés." 4 | } -------------------------------------------------------------------------------- /public/locales/fr/admin.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "Admin" 3 | } -------------------------------------------------------------------------------- /public/locales/fr/amendments.json: -------------------------------------------------------------------------------- 1 | { 2 | "soon": "Amendements avec une majorité", 3 | "new": "Nouveaux amendements", 4 | "not-available": "Amendements non disponibles", 5 | "obsolete": "Amendements obsolètes", 6 | "enabled": "Amendements activés", 7 | "majority": "Majorité", 8 | "eta": "Temps d'activation estimé" 9 | } -------------------------------------------------------------------------------- /public/locales/fr/distribution.json: -------------------------------------------------------------------------------- 1 | { 2 | "desc": "Ici, vous pouvez trouver les 100 MEILLEURES comptes par solde de {{nativeCurrency}}.", 3 | "summary": "Il y a <1>{{activeAccounts}} comptes actifs, total disponible : <3>{{totalCoins}}" 4 | } -------------------------------------------------------------------------------- /public/locales/fr/ledger.json: -------------------------------------------------------------------------------- 1 | { 2 | "no-transactions": "Nous n'avons trouvé aucune transaction à afficher.", 3 | "ledger-not-found": "Nous ne pouvons pas encore trouver ce ledger.", 4 | "earliest-ledger": "Le ledger <1>{{minLedger}} est le premier ledger disponible.", 5 | "earliest-ledger-mainnet": "Le ledger <1>32570 est le premier ledger disponible, environ la première semaine de l'histoire de XRPL, <3>les ledgers 1 à 32569 ont été perdus en raison d'un incident en 2012.", 6 | "ledger-continue": "Puisque l'état de {{ledgerName}} est enregistré dans chaque version de ledger, le ledger peut continuer sans l'historique manquant.", 7 | "ledger_unix_close_time": "Heure de fermeture Unix de Ledger : {data.close_time}", 8 | "ledger_utc_close_time": "Heure de fermeture UTC de Ledger : {data.closeTime}" 9 | } -------------------------------------------------------------------------------- /public/locales/fr/nft-distribution.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "Distribution des NFT", 3 | "desc": "Ici, vous pouvez vérifier la distribution des NFT d'un émetteur de NFT particulier. Entrez l'adresse de l'émetteur de NFT ou un nom d'utilisateur et appuyez sur le bouton de recherche.", 4 | "no-nfts": "Nous n'avons trouvé aucun NFT émis par cette adresse.", 5 | "total": "{{users}} comptes possèdent {{nfts}} NFT", 6 | "nonSelfIssued": "{{users}} comptes possèdent {{nfts}} NFT non auto-émis", 7 | "selfIssued": "{{users}} comptes possèdent {{nfts}} NFT auto-émis", 8 | "table": { 9 | "non-self-issued": "Non auto-émis", 10 | "self-issued": "Auto-émis", 11 | "total": "Total" 12 | } 13 | } -------------------------------------------------------------------------------- /public/locales/fr/nft-minters.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "Émetteurs de NFT", 3 | "desc": "Ici, vous pouvez trouver la liste de tous les émetteurs de NFT identifiés. Si vous souhaitez que votre projet soit reconnu, ajoutez un mémo avec l'adresse de votre site web à vos transactions de mint.", 4 | "summary-period": "Pour cette période, <1>{{minted}} NFTs ont été mintés, dont <4>{{mintedAndBurned}} NFTs {{percentMintedAndBurned}} ont déjà été brûlés pendant la même période, total brûlé pendant cette période : <11>{{burned}} NFTs.", 5 | "summary-all": "Il y a <1>{{minted}} NFTs mintés, dont <4>{{mintedAndBurned}} NFTs {{percentMintedAndBurned}} sont brûlés.", 6 | "mint-chart": "Graphique de mint", 7 | "table": { 8 | "minted-total": "Total minté", 9 | "minted-with-metadata": "NFTs mintés avec métadonnées", 10 | "minted-and-burned": "Mintés et brûlés", 11 | "burned-total": "Total brûlé" 12 | } 13 | } -------------------------------------------------------------------------------- /public/locales/fr/nft-sort.json: -------------------------------------------------------------------------------- 1 | { 2 | "dropdown": { 3 | "priceHigh": "Prix du plus élevé au plus bas", 4 | "priceLow": "Prix du plus bas au plus élevé", 5 | "soldNew": "Ventes récentes", 6 | "soldOld": "Ventes les plus anciennes", 7 | "mintedNew": "Derniers mint", 8 | "mintedOld": "Mint les plus anciens", 9 | "rating": "Les plus vus", 10 | "offerCreatedNew": "Offres les plus récentes", 11 | "offerCreatedOld": "Offres les plus anciennes" 12 | } 13 | } -------------------------------------------------------------------------------- /public/locales/fr/nft.json: -------------------------------------------------------------------------------- 1 | { 2 | "desc": "Ici, vous pouvez rechercher des NFT, entrez un ID de NFT et appuyez sur le bouton de recherche.", 3 | "enter-nft-id": "Entrez un ID de NFT", 4 | "holders": "Distribution (Détenteurs)", 5 | "nft-id-decoded-data": "Données décodées de l'ID NFT", 6 | "nft-not-found-on-that-network": "Ce NFT n'a pas été trouvé sur le réseau <1>{{network}}.", 7 | "table": { 8 | "digest": "Résumé", 9 | "attention": "Attention", 10 | "attention-texts": { 11 | "no-uri": "Ce NFT n'a pas d'URI, il est incompatible avec les normes communément acceptées.", 12 | "no-metadata": "L'URI donnée manque de métadonnées pour ce NFT. Cela va à l'encontre des normes communément acceptées.", 13 | "not-transferable": "Ce NFT n'est pas transférable ; il ne peut être transféré qu'à l'émetteur et depuis celui-ci.", 14 | "burnable": "L'émetteur (ou une entité autorisée par l'émetteur) peut détruire le NFT.", 15 | "no-digest": "Aucun résumé fourni pour ce NFT. L'intégrité du NFT ne peut pas être vérifiée.", 16 | "invalid-digest": "La vérification de l'intégrité du NFT a échoué. Le résumé ne correspond pas aux métadonnées du NFT." 17 | }, 18 | "warnings": { 19 | "nft-crawler-delay": "Certaines données sont obsolètes, la dernière mise à jour : {{lastUpdate}}. Nos serveurs sont en train de rattraper leur retard, vérifiez plus tard pour des données plus précises." 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /public/locales/fr/popups.json: -------------------------------------------------------------------------------- 1 | { 2 | "age-check": { 3 | "subtitle": "Contenu explicite", 4 | "text": "Cela activera le contenu explicite et sensible. Vous devez être en âge légal pour le visionner.", 5 | "button-true": "Oui, j'ai plus de 18 ans", 6 | "button-false": "Non, je ne suis pas" 7 | } 8 | } -------------------------------------------------------------------------------- /public/locales/fr/products.json: -------------------------------------------------------------------------------- 1 | { 2 | "titles": { 3 | "for-you": "Pour Vous", 4 | "top-lists": "LISTES TOP", 5 | "nft": "NFT", 6 | "network": "Réseau", 7 | "developer": "Développeur" 8 | }, 9 | "items": { 10 | "watchlist": "Liste de Surveillance", 11 | "tx-export": "Export des transactions", 12 | "set-avatar": "Définir un Avatar", 13 | "username-registration": "Enregistrer le surnom", 14 | "project-registration": "Enregistrer un Projet", 15 | "amms": "AMMs", 16 | "distribution": "Distribution {{nativeCurrency}}", 17 | "nft-marketplaces": "Marchés NFT", 18 | "nft-collections": "Collections NFT", 19 | "nft-distribution": "Détenteurs de NFT", 20 | "nft-explorer": "Explorateur de NFT", 21 | "nft-sales": "Ventes de NFT", 22 | "nft-minters": "Créateurs de NFT", 23 | "nft-statistics": "Statistiques NFT", 24 | "nft-mint": "Frappé de NFT", 25 | "validators": "Validateurs", 26 | "amendments": "Amendements", 27 | "last-ledger-information": "Infos Ledger en Direct", 28 | "ledger": "Derniers txs Ledger", 29 | "nodes": "Nœuds", 30 | "governance": "Gouvernance", 31 | "faucet": "Robinet {{nativeCurrency}}", 32 | "api-docs": "Documentation de l'API", 33 | "get-api-key": "Obtenir une clé API", 34 | "nft-cdn": "Plans de Contenu NFT", 35 | "tools": "Outils Bithomp" 36 | } 37 | } -------------------------------------------------------------------------------- /public/locales/fr/unl-report.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "Rapport UNL", 3 | "desc": "Ici, vous pouvez voir le rapport UNL pour le Ledger <1>#{{ledgerIndex}}, entrée du grand livre : 61E32E...6F28DC.", 4 | "summary": "Il y a <1>{{activeValidators}} validateurs actifs." 5 | } -------------------------------------------------------------------------------- /public/locales/fr/validators.json: -------------------------------------------------------------------------------- 1 | { 2 | "table": { 3 | "validator": "Validateur", 4 | "server-country": "Pays du serveur", 5 | "server-location": "Emplacement du serveur", 6 | "cloud-private": "Cloud/privé", 7 | "network-asn": "ASN du réseau", 8 | "owner-country": "Pays du propriétaire", 9 | "votes-for": "Votes pour", 10 | "last-seen": "Dernière vue", 11 | "text": { 12 | "domain-verified-toml": "Domaine vérifié (fichier TOML)", 13 | "unl": "Dans la liste unique des nœuds (UNL)", 14 | "negative-unl": "dans la liste UNL négative" 15 | } 16 | }, 17 | "domain-legacy": "Domaine (ancienne vérification)", 18 | "text0": "La liste des validateurs <1>{{url}} a une séquence {{sequence}} et une expiration le {{expiration}}.
Elle comprend {{validatorCount}} validateurs qui sont listés ci-dessous." 19 | } -------------------------------------------------------------------------------- /public/locales/id/activations.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "Akun Aktif", 3 | "account-activations-for-that-period": "Pada periode tersebut, <1>{{count}} akun telah diaktifkan." 4 | } 5 | -------------------------------------------------------------------------------- /public/locales/id/amendments.json: -------------------------------------------------------------------------------- 1 | { 2 | "soon": "Amandemen dengan mayoritas", 3 | "new": "Amandemen baru", 4 | "not-available": "Amandemen tidak tersedia", 5 | "obsolete": "Amandemen kadaluwarsa", 6 | "enabled": "Amandemen Aktif", 7 | "majority": "Mayoritas", 8 | "eta": "Perkiraan Waktu Estimasi" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/id/distribution.json: -------------------------------------------------------------------------------- 1 | { 2 | "desc": "Di sini Anda dapat menemukan 100 akun TERATAS berdasarkan saldo {{nativeCurrency}}.", 3 | "summary": "Terdapat <1>{{activeAccounts}} akun aktif, total yang tersedia: <3>{{totalCoins}}" 4 | } 5 | -------------------------------------------------------------------------------- /public/locales/id/governance.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "Permainan Tata Kelola {{ledgerName}}", 3 | "summary": "Terdapat <1>{{ countTables }} posisi.", 4 | "reward-rate": "Tingkat Hadiah: <1>{{ rewardRate }}.", 5 | "reward-delay": "Penundaan Hadiah: <2>{{ rewardDelay }} ({{ rewardDelaySeconds }} detik).", 6 | "button": { 7 | "show-main-table": "Tampilkan Tabel Utama", 8 | "vote-seat": "Usulkan sebuah posisi", 9 | "vote-reward-rate": "Usulkan Tingkat Hadiah", 10 | "vote-reward-delay": "Usulkan Penundaan Hadiah", 11 | "vote-hook": "Usulkan sebuah Hook" 12 | }, 13 | "table": { 14 | "cast-first-vote": "Lakukan usulan pertama", 15 | "members": "Anggota", 16 | "seat": "Posisi", 17 | "no-seat": "Tidak ada posisi", 18 | "layer": "Layer", 19 | "hooks": "Hooks", 20 | "place": "Tempat", 21 | "hook": "Hook", 22 | "target": "Target", 23 | "votes": "Usulan", 24 | "voter": "Pemilih", 25 | "rate": "Tingkat", 26 | "value": "Nilai", 27 | "delay": "Penundaan", 28 | "in-seconds": "Dalam detik", 29 | "seat-votes": "Usulan Posisi", 30 | "seat-votes-count": "Jumlah Usulan Posisi", 31 | "reward-rate-votes": "Usulan Tingkat Hadiah", 32 | "reward-rate-votes-count": "Jumlah Usulan Tingkat Hadiah", 33 | "reward-delay-votes": "Usulan Penundaan Hadiah", 34 | "reward-delay-votes-count": "Jumlah Usulan Penundaan Hadiah", 35 | "hook-votes": "Usulan Hook", 36 | "hook-votes-count": "Jumlah Usulan Hook" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /public/locales/id/ledger.json: -------------------------------------------------------------------------------- 1 | { 2 | "no-transactions": "Kami tidak dapat menemukan transaksi apa pun untuk ditampilkan.", 3 | "ledger-not-found": "Kami tidak dapat menemukan ledger tersebut saat ini", 4 | "earliest-ledger": "Ledger <1>{{minLedger}} adalah ledger tertua yang tersedia.", 5 | "earliest-ledger-mainnet": "Ledger <1>32570 adalah ledger tertua yang tersedia, sekitar pada minggu pertama sejarah XRPL, <3>ledger 1 hingga 32569 hilang karena insiden pada tahun 2012.", 6 | "ledger-continue": "Karena status {{ledgerName}} dicatat dalam setiap versi ledger, ledger dapat melanjutkan tanpa sejarah yang hilang.", 7 | "ledger_unix_close_time": "Waktu tutup Unix Ledger: {data.close_time}", 8 | "ledger_utc_close_time": "Waktu tutup UTC Ledger: {data.closeTime}" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/id/nft-distribution.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "Distribusi NFT", 3 | "desc": "Di sini Anda dapat memeriksa distribusi NFT dari penerbit NFT tertentu. Masukkan alamat penerbit NFT atau username dan tekan tombol pencarian.", 4 | "no-nfts": "Kami tidak dapat menemukan NFT yang diterbitkan oleh alamat tersebut.", 5 | "total": "{{users}} akun memiliki {{nfts}} NFT", 6 | "nonSelfIssued": "{{users}} akun memiliki {{nfts}} NFT yang diterbitkan oleh pihak lain", 7 | "selfIssued": "{{users}} akun memiliki {{nfts}} NFT yang diterbitkan sendiri", 8 | "table": { 9 | "non-self-issued": "Diterbitkan oleh pihak lain", 10 | "self-issued": "Diterbitkan sendiri", 11 | "total": "Total" 12 | } 13 | } -------------------------------------------------------------------------------- /public/locales/id/nft-minters.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "Pembuat NFT", 3 | "desc": "Di sini Anda dapat menemukan daftar semua pembuat NFT yang terverifikasi. Jika Anda ingin proyek Anda diakui, tambahkan memo dengan alamat situs web Anda ke transaksi pembuatan NFT Anda.", 4 | "summary-period": "Selama periode tersebut, sebanyak <1>{{minted}} NFT telah dibuat. Dari jumlah tersebut, <4>{{mintedAndBurned}} NFT {{percentMintedAndBurned}} sudah dihapus dalam periode yang sama. Total NFT yang dihapus selama periode ini: <11>{{burned}} NFT.", 5 | "summary-all": "Total NFT yang telah dibuat adalah <1>{{minted}}. Dari jumlah tersebut, <4>{{mintedAndBurned}} NFT {{percentMintedAndBurned}} sudah dihapus.", 6 | "mint-chart": "Mint chart", 7 | "table": { 8 | "minted-total": "Total dibuat", 9 | "minted-with-metadata": "NFT yang Dibuat dengan Metadata", 10 | "minted-and-burned": "Dibuat dan Terhapus", 11 | "burned-total": "Total terhapus" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /public/locales/id/nft.json: -------------------------------------------------------------------------------- 1 | { 2 | "desc": "Di sini Anda dapat mencari NFT, masukkan ID NFT dan tekan tombol pencarian.", 3 | "enter-nft-id": "Masukkan ID NFT", 4 | "holders": "Distribusi (Pemilik)", 5 | "nft-id-decoded-data": "Data NFT ID yang telah diterjemahkan", 6 | "nft-not-found-on-that-network": "NFT ini tidak ditemukan pada jaringan <1>{{network}}.", 7 | "table": { 8 | "digest": "Digest", 9 | "attention": "Perhatian", 10 | "attention-texts": { 11 | "no-uri": "NFT ini tidak memiliki URI, tidak kompatibel dengan standar umum.", 12 | "no-metadata": "URI yang diberikan tidak menyertakan metadata NFT tersebut. Hal ini melanggar standar umum.", 13 | "not-transferable": "NFT ini tidak dapat ditransfer; hanya dapat ditransfer kepada penerbit dan dari penerbit.", 14 | "burnable": "Penerbit (atau entitas yang diizinkan oleh penerbit) dapat menghapus NFT ini.", 15 | "no-digest": "Tidak ada Digest yang disediakan untuk NFT ini. Integritas NFT tidak dapat diverifikasi.", 16 | "invalid-digest": "Pemeriksaan integritas NFT tidak berhasil. Digest tidak cocok dengan metadata NFT." 17 | }, 18 | "warnings": { 19 | "nft-crawler-delay": "Beberapa data sudah usang, pembaruan terakhir: {{lastUpdate}}. Server kami sedang mengejar, cek nanti untuk data yang lebih akurat." 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /public/locales/id/popups.json: -------------------------------------------------------------------------------- 1 | { 2 | "age-check": { 3 | "subtitle": "Konten eksplisit", 4 | "text": "Ini akan mengaktifkan konten eksplisit dan sensitif. Anda harus berusia legal untuk melihat ini.", 5 | "button-true": "Ya, saya di atas 18 tahun", 6 | "button-false": "Tidak, saya belum" 7 | } 8 | } -------------------------------------------------------------------------------- /public/locales/id/products.json: -------------------------------------------------------------------------------- 1 | { 2 | "titles": { 3 | "for-you": "Untuk Kamu", 4 | "top-lists": "Daftar Teratas", 5 | "nft": "NFT", 6 | "network": "Jaringan", 7 | "developer": "Pengembang" 8 | }, 9 | "items": { 10 | "watchlist": "Daftar Pantauan", 11 | "tx-export": "Ekspor Transaksi", 12 | "set-avatar": "Setel Avatar", 13 | "username-registration": "Nama Pengguna", 14 | "project-registration": "Daftarkan Proyek", 15 | "amms": "AMMs", 16 | "distribution": "Distribusi {{nativeCurrency}}", 17 | "nft-marketplaces": "Pasar NFT", 18 | "nft-collections": "Koleksi NFT", 19 | "nft-distribution": "Pemegang NFT", 20 | "nft-explorer": "Eksplorasi NFT", 21 | "nft-sales": "Penjualan NFT", 22 | "nft-minters": "Pencetak NFT", 23 | "nft-statistics": "Statistik NFT", 24 | "nft-mint": "Cetak NFT", 25 | "validators": "Validator", 26 | "amendments": "Amandemen", 27 | "last-ledger-information": "Info Ledger Terkini", 28 | "ledger": "Transaksi", 29 | "nodes": "Node", 30 | "governance": "Pemerintahan", 31 | "faucet": "Faucet {{nativeCurrency}}", 32 | "api-docs": "Dokumentasi API", 33 | "get-api-key": "Dapatkan Kunci API", 34 | "nft-cdn": "Rencana Konten NFT", 35 | "tools": "Alat Bithomp" 36 | } 37 | } -------------------------------------------------------------------------------- /public/locales/id/unl-report.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "Laporan UNL", 3 | "desc": "Di sini Anda dapat melihat laporan UNL untuk Ledger <1>#{{ledgerIndex}}, entri ledger: 61E32E...6F28DC.", 4 | "summary": "Terdapat <1>{{activeValidators}} validator aktif." 5 | } 6 | -------------------------------------------------------------------------------- /public/locales/id/validators.json: -------------------------------------------------------------------------------- 1 | { 2 | "table": { 3 | "validator": "Validator", 4 | "server-country": "Negara Server", 5 | "server-location": "Lokasi Server", 6 | "cloud-private": "Cloud/pribadi", 7 | "network-asn": "ASN Jaringan", 8 | "owner-country": "Negara Pemilik", 9 | "votes-for": "Usulan untuk", 10 | "last-seen": "Terakhir dilihat", 11 | "text": { 12 | "domain-verified-toml": "Domain terverifikasi (file TOML)", 13 | "unl": "Dalam Daftar Node Unik (UNL)", 14 | "negative-unl": "dalam Daftar Node Negatif (Negative UNL)" 15 | } 16 | }, 17 | "domain-legacy": "Domain (verifikasi lampau)", 18 | "text0": "Daftar validator <1>{{url}} memiliki urutan {{sequence}} dan berakhir pada {{expiration}}.
Daftar ini mencakup {{validatorCount}} validator yang tercantum di bawah ini." 19 | } 20 | -------------------------------------------------------------------------------- /public/locales/ja/amendments.json: -------------------------------------------------------------------------------- 1 | { 2 | "soon": "大多数の支持を得ているamendment", 3 | "new": "新しいamendment", 4 | "not-available": "現在利用できないamendment", 5 | "obsolete": "廃止されたamendment", 6 | "enabled": "有効なamendment", 7 | "majority": "大多数", 8 | "eta": "推定有効時刻" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/ja/distribution.json: -------------------------------------------------------------------------------- 1 | { 2 | "desc": "{{nativeCurrency}}残高の上位100アカウントを見ることができます。", 3 | "summary": "<1>{{activeAccounts}} のアクティブアカウント、合計 <3>{{totalCoins}}です。" 4 | } 5 | -------------------------------------------------------------------------------- /public/locales/ja/domains.json: -------------------------------------------------------------------------------- 1 | { 2 | "domain-verification": "ドメイン検証", 3 | "domain-verification-desc": "ドメイン検証は、同じ組織が特定のXRP Ledgerアドレスと特定のドメインを管理していることを証明することを目的としています。", 4 | "reason-to-verify": "透明性の観点から、XRPLサービスの信頼できるプロバイダであることを証明するために、ドメインの検証を行うことをおすすめします。", 5 | "two-sides-verification": "誰でも自分のXRPLアドレスに任意のドメインを設定できるため、ドメイン検証にはドメインとアドレスの間の双方向の関係が必要です。", 6 | "domain-claims-address": "アドレスはドメインによって指定されている必要があります。", 7 | "serve-toml": "Webサーバは、次のURLから入手できるxrp-ledger.tomlファイルを配信する必要があります:", 8 | "address-in-toml": "検証したいアドレスは、[[ACCOUNTS]]項目で指定する必要があります。", 9 | "read-about-toml": "XRPL TOMLについて詳しく読む", 10 | "toml-editor": "<0>TOML editor 作者:<3>SchlaubiD", 11 | "address-claims-domain": "ドメインはアドレスによって指定されている必要があります。", 12 | "set-domain": "XRPLアドレスに<1>ドメインを設定します。これはTOMLファイルが配信されるドメインと一致する必要があります。", 13 | "verify": "検証", 14 | "verify-desc": "ツールですべてが正しく設定されていることを確認できます: <2>TOML Checker. このページのリストは午前3時から午前4時(ストックホルム時間)に更新されます。もしあなたのドメインがチェッカーツールで確認済みであるにもかかわらず、24時間以内に私たちのリストにない場合は、あなたのTOMLファイルを解析できていない可能性があります。", 15 | "desc": "下記はXRPLで確認されたすべてのドメインのリストです(ページは毎日更新されます)。", 16 | "table": { 17 | "addresses": "アドレス" 18 | } 19 | } -------------------------------------------------------------------------------- /public/locales/ja/governance.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "{{ledgerName}} ガバナンスゲーム", 3 | "summary": "現在<1>{{ countTables }}つの議席が存在しています。", 4 | "reward-rate": "報酬レート: <1>{{ rewardRate }}.", 5 | "reward-delay": "報酬間隔: <2>{{ rewardDelay }} ({{ rewardDelaySeconds }}秒).", 6 | "button": { 7 | "show-main-table": "メインテーブルを見る", 8 | "vote-seat": "議席に投票する", 9 | "vote-reward-rate": "報酬レート(Reward rate)に投票する", 10 | "vote-reward-delay": "報酬間隔(Reward delay)に投票する", 11 | "vote-hook": "Hookに投票する" 12 | }, 13 | "table": { 14 | "cast-first-vote": "最初の一票を投票する", 15 | "members": "メンバー", 16 | "seat": "議席", 17 | "no-seat": "議席なし", 18 | "layer": "レイヤー", 19 | "hooks": "Hooks", 20 | "place": "位置", 21 | "hook": "Hook", 22 | "target": "対象", 23 | "votes": "投票", 24 | "voter": "投票者", 25 | "rate": "レート", 26 | "value": "値", 27 | "delay": "間隔", 28 | "in-seconds": "秒数", 29 | "seat-votes": "議席への投票", 30 | "seat-votes-count": "議席への投票数", 31 | "reward-rate-votes": "報酬レート(Reward rate)への投票", 32 | "reward-rate-votes-count": "報酬間隔(Reward rate)への投票数", 33 | "reward-delay-votes": "報酬間隔(Reward delay)への投票", 34 | "reward-delay-votes-count": "報酬間隔(Reward delay)への投票数", 35 | "hook-votes": "Hookへの投票", 36 | "hook-votes-count": "Hookへの投票数", 37 | "text": { 38 | "vacate-seat": "空席", 39 | "vacate-place": "設定解除" 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /public/locales/ja/ledger.json: -------------------------------------------------------------------------------- 1 | { 2 | "no-transactions": "表示可能なトランザクションが見つかりませんでした。", 3 | "ledger-not-found": "そのレジャーは見つかっていません。", 4 | "earliest-ledger": "レジャー<1>{{minLedger}}は、利用可能な最も古いレジャーです。", 5 | "earliest-ledger-mainnet": "レジャー<1>32570は、XRPLの歴史のおよそ1週間目、利用可能な最も古いレジャーです。<3>レジャー1から32569までは、2012年の不慮の事故で失われました。", 6 | "ledger-continue": "{{ledgerName}}の状態はすべてのレジャーのバージョンに記録されているため、レジャーは履歴が欠けていても継続することができます。", 7 | "ledger_unix_close_time": "台帳のUnix閉鎖時間: {data.close_time}", 8 | "ledger_utc_close_time": "台帳のUTC閉鎖時間: {data.closeTime}" 9 | } 10 | -------------------------------------------------------------------------------- /public/locales/ja/nft-distribution.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "NFTの分布", 3 | "desc": "ここでは、特定のNFT発行者のNFTの分布を確認することができます。NFT発行者のアドレスまたはユーザネームを入力し、検索ボタンを押してください。", 4 | "no-nfts": "そのアドレスから発行されたNFTは見つかりませんでした。", 5 | "total": "{{users}} アカウントが {{nfts}} NFTを保有しています。", 6 | "nonSelfIssued": "{{users}} アカウントが {{nfts}} 非自己発行NFTを保有しています", 7 | "selfIssued": "{{users}} アカウントが {{nfts}} 自己発行NFTを保有しています", 8 | "table": { 9 | "non-self-issued": "非自己発行", 10 | "self-issued": "自己発行", 11 | "total": "合計" 12 | } 13 | } -------------------------------------------------------------------------------- /public/locales/ja/nft-minters.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "NFTの発行者", 3 | "desc": "ここでは、識別されたすべてのNFT作成者のリストを確認できます。プロジェクトを登録したい場合は、NFTをミントするトランザクションにウェブサイトのアドレスを記載したメモを追加してください。", 4 | "summary-period": "対象期間に<1>{{minted}}NFTが発行され、そのうち<4>{{mintedAndBurned}}NFTが同じ期間にバーンされました。この期間にバーンされた合計枚数は<11>{{burned}}NFTです。", 5 | "summary-all": "これまで<1>{{minted}}NFTが発行され、そのうち<4>{{mintedAndBurned}} NFT {{percentMintedAndBurned}} がバーンされました。", 6 | 7 | "mint-chart": "ミント数のチャート", 8 | "table": { 9 | "minted-total": "合計ミント数", 10 | "minted-with-metadata": "メタデータありのミント数", 11 | "minted-and-burned": "ミントおよびバーン", 12 | "burned-total": "合計バーン" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /public/locales/ja/nft-volumes.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "NFTの取引量", 3 | "text0": "対象期間中に{{explorerName}}では{{saleType}}にて{{allSales}} {{currency}} NFT({{allVolume}})の取引が行われました。", 4 | "collections": { 5 | "desc": "これはNFTコレクションのリストです。2つの取引(支払いとNFT送金)によって行われた一次販売(ミント)は含まれていません。" 6 | }, 7 | "brokers": { 8 | "desc": "NFTブローカーアカウントのリストです。ここでは、オファーマッチングボットの取引量を確認できます。マーケットプレイスではさまざまな取引モデルを使用していますが、ここではブローカーモデルによる取引量のみを見ることができます。", 9 | "no-broker": "非ブローカー", 10 | "text0": "対象期間中にXRPLでは{{saleType}}にて{{allSales}}<3>{{currency}} NFT/{{allVolume}}の売上があり、そのうちの<13>{{brokerSales}} {{percentBrokerSales}}/<19>{{brokerVolume}} {{percentBrokerVolume}}はブローカー取引によるものでした。" 11 | }, 12 | "marketplaces": { 13 | "desc": "{{explorerName}}のNFTマーケットプレイス一覧です。ここでの取引量には、2つの取引(支払いとNFT送金)によって行われた一次販売(ミント)は含まれていません。" 14 | }, 15 | "issuers": { 16 | "desc": "{{explorerName}}のNFT発行者リストです。発行者とTaxon毎に分類されたNFTコレクションの販売量を見るには、販売量欄のリンクをクリックしてください。" 17 | }, 18 | "sales-chart": "販売数チャート", 19 | "volumes-chart": "取引高チャート" 20 | } 21 | -------------------------------------------------------------------------------- /public/locales/ja/nft.json: -------------------------------------------------------------------------------- 1 | { 2 | "desc": "NFT IDを入力して、NFTを検索できます。", 3 | "enter-nft-id": "NFT IDを入力", 4 | "holders": "分布 (保有者)", 5 | "nft-id-decoded-data": "NFT IDからの解析データ", 6 | "nft-not-found-on-that-network": "このNFTは<1>{{network}}では見つかりませんでした。", 7 | "table": { 8 | "digest": "ダイジェスト", 9 | "attention": "注意", 10 | "attention-texts": { 11 | "no-uri": "URIが設定されていません。一般的に採用されている規格との互換性がありません。", 12 | "no-metadata": "URIにメタデータが設定されていません。一般的に採用されている規格に反しています。", 13 | "not-transferable": "このNFTは売買・譲渡不可に設定されています。発行者との間でのみ売買・譲渡が可能です。", 14 | "burnable": "発行者(または発行者が承認した主体)はこのNFTをバーンすることができます。", 15 | "no-digest": "Digestが設定されていません。NFTの整合性を検証できません。", 16 | "invalid-digest": "NFTの整合性チェックに失敗しました。DigestがNFTのメタデータと一致しません。" 17 | }, 18 | "warnings": { 19 | "nft-crawler-delay": "一部のデータは古くなっています。最後の更新: {{lastUpdate}}。サーバーが追いついていますので、後で再度確認してください。" 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /public/locales/ja/popups.json: -------------------------------------------------------------------------------- 1 | { 2 | "age-check": { 3 | "subtitle": "過激なコンテンツ", 4 | "text": "これにより、過激で敏感なコンテンツが表示されます。これを表示するには18歳以上である必要があります。", 5 | "button-true": "はい、私は18歳以上です", 6 | "button-false": "いいえ、そうではありません" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /public/locales/ja/products.json: -------------------------------------------------------------------------------- 1 | { 2 | "titles": { 3 | "for-you": "おすすめ", 4 | "top-lists": "トップリスト", 5 | "nft": "NFT", 6 | "network": "ネットワーク", 7 | "developer": "開発者" 8 | }, 9 | "items": { 10 | "watchlist": "ウォッチリスト", 11 | "tx-export": "トランザクションエクスポート", 12 | "set-avatar": "アバターを設定", 13 | "username-registration": "ユーザ名を登録", 14 | "project-registration": "プロジェクトを登録", 15 | "amms": "AMM", 16 | "distribution": "{{nativeCurrency}}の分布", 17 | "nft-marketplaces": "NFTマーケットプレイス", 18 | "nft-collections": "NFTコレクション", 19 | "nft-distribution": "NFT保有者", 20 | "nft-explorer": "NFTエクスプローラ", 21 | "nft-sales": "NFT販売", 22 | "nft-minters": "NFTの発行者", 23 | "nft-statistics": "NFTの統計", 24 | "nft-mint": "NFTをミント", 25 | "validators": "バリデータ", 26 | "amendments": "改正案", 27 | "last-ledger-information": "ライブレジャー情報", 28 | "ledger": "最新レジャーの取引", 29 | "nodes": "ノード", 30 | "governance": "ガバナンス", 31 | "faucet": "{{nativeCurrency}} Faucet", 32 | "api-docs": "APIドキュメント", 33 | "get-api-key": "APIキーを取得", 34 | "nft-cdn": "NFTコンテンツプラン", 35 | "tools": "Bithompツール" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /public/locales/ja/submit-account-information.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "アカウントを登録", 3 | "heading": "アカウント情報を登録", 4 | "cross-chain": "サービスはクロスチェーンで使用されます。<2>XRPLメインネットでサービスを登録し、他のBithompエクスプローラでも利用可能にします。", 5 | "desc": "Bithompは、エクスプローラで提供される情報の質を向上させ、ユーザがレジャー上の関係を迅速に識別できるよう努めています。レジャーを使用してサービス(取引所、金融サービス提供者、非営利団体、その他の事業)を運営している場合、またはそのようなサービスを利用している場合は、ここからサービス情報を登録してください。", 6 | "no-private": "個人のアカウントは対象外です。このフォームを介して登録された個人アカウント情報は破棄されます。", 7 | "subtitle": "入力者の情報", 8 | "info": "情報の確認のため連絡を行う場合があります。メールアドレスを入力してください。", 9 | "placeholders": { 10 | "email": "あなたの個人メール", 11 | "name": "サービス名", 12 | "address": "アドレス", 13 | "domain": "Webサイト", 14 | "twitter": "Xユーザ名", 15 | "instagram": "Instagramユーザ名", 16 | "facebook": "Facebookユーザ名", 17 | "youtube": "Youtubeユーザ名", 18 | "linkedin": "LinkedInユーザ名", 19 | "reddit": "Redditユーザ名", 20 | "medium": "Mediumユーザ名", 21 | "telegram": "Telegramユーザ名" 22 | }, 23 | "form": { 24 | "error": { 25 | "service-name-empty": "サービス名を入力してください。" 26 | }, 27 | "success": "フォームが正常に送信されました。" 28 | }, 29 | "error": { 30 | "Account exist": "そのアドレスに対する情報はすでに提出されています。" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /public/locales/ja/unl-report.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "UNLレポート", 3 | "desc": "こちらはレジャー<1>#{{ledgerIndex}}におけるUNLレポート(ledger entry: 61E32E…6F28DC)です。", 4 | "summary": "現在<1>{{activeValidators}}のアクティブなバリデータが確認されています。" 5 | } 6 | -------------------------------------------------------------------------------- /public/locales/ja/validators.json: -------------------------------------------------------------------------------- 1 | { 2 | "table": { 3 | "validator": "バリデータ", 4 | "server-country": "サーバの国", 5 | "server-location": "サーバの場所", 6 | "cloud-private": "クラウド/プライベート", 7 | "network-asn": "ネットワークASN", 8 | "owner-country": "運用者の国", 9 | "votes-for": "支持", 10 | "last-seen": "最終更新", 11 | "text": { 12 | "domain-verified-toml": "検証済みドメイン(TOMLファイル)", 13 | "unl": "Unique Node List (UNL)", 14 | "negative-unl": "Negative UNL" 15 | } 16 | }, 17 | "domain-legacy": "ドメイン (古い検証方法)", 18 | "text0": "バリデータリスト <1>{{url}} はシーケンス {{sequence}} と、有効期限 {{expiration}} が設定されています。
次の{{validatorCount}}バリデータを含んでいます。" 19 | } 20 | -------------------------------------------------------------------------------- /public/locales/ko/activations.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "활성화된 계정", 3 | "account-activations-for-that-period": "해당 기간 동안 <1>{{count}}개의 계정이 활성화되었습니다." 4 | } -------------------------------------------------------------------------------- /public/locales/ko/amendments.json: -------------------------------------------------------------------------------- 1 | { 2 | "soon": "과반수가 찬성하는 수정안", 3 | "new": "New amendments", 4 | "not-available": "Not available amendments", 5 | "obsolete": "Obsolete amendments", 6 | "enabled": "활성화된 수정사항", 7 | "majority": "다수", 8 | "eta": "예상되는 활성화 시간" 9 | } -------------------------------------------------------------------------------- /public/locales/ko/distribution.json: -------------------------------------------------------------------------------- 1 | { 2 | "desc": "여기에서 {{nativeCurrency}} 잔액 기준 상위 100개 계정을 확인할 수 있습니다.", 3 | "summary": "총 사용 가능한 활성 계정은 <1>{{activeAccounts}}개입니다: <3>{{총코인}}" 4 | } -------------------------------------------------------------------------------- /public/locales/ko/domains.json: -------------------------------------------------------------------------------- 1 | { 2 | "domain-verification": "도메인을 증명합니다", 3 | "domain-verification-desc": "도메인 검증은 동일한 조직이 특정 XRP 원장 주소와 특정 도메인을 관리하고 있음을 증명하는 것을 목표로 합니다.", 4 | "reason-to-verify": "투명성을 위해 신뢰할 수 있는 XRPL 서비스 제공업체로 자리매김하기 위해 도메인의 유효성을 검사하는 것이 좋습니다.", 5 | "two-sides-verification": "누구나 자신의 XRPL 주소에 도메인을 설정할 수 있으므로 도메인 확인을 위해서는 도메인과 주소 간의 양방향 관계가 필요합니다.", 6 | "domain-claims-address": "주소는 도메인에서 소유권을 주장해야 합니다.", 7 | "serve-toml": "웹 서버는 다음 URL에서 사용할 수 있는 xrp-ledger.toml 파일을 제공해야 합니다:", 8 | "address-in-toml": "확인하려는 주소는 [계정] 항목에 지정해야 합니다", 9 | "read-about-toml": "XRPL TOML에 대해서 더 알아보세요", 10 | "toml-editor": "<0>TOML editor 저자:<3>SchlaubiD", 11 | "address-claims-domain": "다음 주소로 도메인 소유권을 저장합니다", 12 | "set-domain": "XRPL 주소에 <1>도메인을 설정합니다. 이는 TOML 파일이 전달되는 도메인과 일치해야 합니다.", 13 | "verify": "인증", 14 | "verify-desc": "이 도구를 사용하여 모든 것이 올바르게 설정되었는지 확인할 수 있습니다: <2>TOML 검사기. 이 페이지의 목록은 오전 3시부터 4시(스톡홀름 시간)까지 업데이트되며, 확인 도구에서 도메인이 확인되었지만 24시간 이내에 목록에 없는 경우 TOML 파일을 구문 분석할 수 없는 것일 수 있습니다.", 15 | "desc": "아래에서 XRPL에서 확인된 모든 도메인 목록을 확인할 수 있습니다", 16 | "table": { 17 | "addresses": "주소" 18 | } 19 | } -------------------------------------------------------------------------------- /public/locales/ko/ledger.json: -------------------------------------------------------------------------------- 1 | { 2 | "no-transactions": "트랜잭션을 찾을 수 없습니다.", 3 | "ledger-not-found": "레저를 찾을 수 없습니다", 4 | "earliest-ledger": "<1>{{minLedger}} 원장은 역사상 가장 초기의 원장으로.", 5 | "earliest-ledger-mainnet": "<1>32570 원장은 XRPL 역사상 가장 초기의 원장으로, 2012년 사고로 인해 <3>1부터 32569까지의 원장이 손실되었습니다.", 6 | "ledger-continue": "{{ledgerName}} 상태는 모든 원장 버전에 기록되므로 누락된 내역 없이 원장을 계속 유지할 수 있습니다.", 7 | "ledger_unix_close_time": "레저 유닉스 종료 시간: {data.close_time}", 8 | "ledger_utc_close_time": "레저 UTC 종료 시간: {data.closeTime}" 9 | } -------------------------------------------------------------------------------- /public/locales/ko/nft-distribution.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "NFT 분배", 3 | "desc": "여기에서 특정 NFT 발행자의 NFT 분포를 확인할 수 있습니다. NFT 발행자 주소 또는 사용자 이름을 입력하고 검색 버튼을 누릅니다", 4 | "no-nfts": "해당 주소에서 발행된 NFT를 찾을 수 없습니다", 5 | "total": "{{users}} 계정이 {{nfts}} NFT를 보유하고 있습니다.", 6 | "nonSelfIssued": "{{users}} 계정이 {{nfts}} 비자기 발행 NFT를 보유하고 있습니다.", 7 | "selfIssued": "{{users}} 계정이 {{nfts}} 자기 발행 NFT를 보유하고 있습니다.", 8 | "table": { 9 | "non-self-issued": "비자기 발행", 10 | "self-issued": "자기 발행", 11 | "total": "총계" 12 | } 13 | } -------------------------------------------------------------------------------- /public/locales/ko/nft-minters.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "NFT 채굴자", 3 | "desc": "여기에서 확인된 모든 NFT 민팅 계정 목록을 확인할 수 있습니다. 프로젝트가 인식되길 원하신다면, 민팅 거래에 웹사이트 주소가 포함된 메모를 추가하세요.", 4 | "summary-period": "해당 기간 동안 <1>{{minted}}개의 NFT가 민팅되었으며, 그중 <4>{{mintedAndBurned}}개의 NFT({{percentMintedAndBurned}})는 같은 기간 내에 이미 소각되었습니다. 해당 기간 동안 총 소각된 수량: <11>{{burned}}개의 NFT.", 5 | "summary-all": "현재까지 <1>{{minted}}개의 NFT가 민팅되었으며, 그중 <4>{{mintedAndBurned}}개의 NFT({{percentMintedAndBurned}})가 소각되었습니다.", 6 | "mint-chart": "민팅 차트", 7 | "table": { 8 | "minted-total": "전체 발행량", 9 | "minted-with-metadata": "메타 데이터 - 발행된 NFT", 10 | "minted-and-burned": "발행 및 소각", 11 | "burned-total": "전체 소각량" 12 | } 13 | } -------------------------------------------------------------------------------- /public/locales/ko/nft-volumes.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "NFT 판매량", 3 | "text0": "해당 기간 동안 {{explorerName}}은 {{saleType}}에서 {{allSales}} {{currency}} NFT({{allVolume}}) 거래가 이루어졌습니다.", 4 | "collections": { 5 | "desc": "이것은 NFT 컬렉션 목록입니다. 여기 거래량에는 2번의 거래(결제 및 NFT 전송) 내에서 이루어진 1차 판매(채굴)는 포함되지 않습니다" 6 | }, 7 | "brokers": { 8 | "desc": "NFT 브로커 계좌 목록입니다. 여기에서 제안 매칭 봇의 거래량을 확인할 수 있습니다. 마켓플레이스는 혼합 거래 모델을 사용하므로 여기에서는 중개 모델을 통한 거래량만 볼 수 있습니다", 9 | "no-broker": "브로커 없음", 10 | "text0": "해당 기간 동안 XRPL은 {{saleType}}에서 {{allSales}}<3>{{currency}} NFT/{{allVolume}}의 매출이 있었으며, 그 중 <13>{{brokerSales}} {{percentBrokerSales}}/<19>{{brokerVolume}} {{percentBrokerVolume}}은 브로커 거래로 인한 매출입니다." 11 | }, 12 | "marketplaces": { 13 | "desc": "다음은 {{explorerName}}의 NFT 마켓플레이스 목록입니다. 여기 거래량에는 2번의 거래(결제 및 NFT 전송) 내에서 이루어진 1차 판매(채굴)는 포함되지 않습니다" 14 | }, 15 | "issuers": { 16 | "desc": "{{explorerName}}의 NFT 발행자 목록입니다. 발행자 및 분류군별로 식별된 NFT 컬렉션의 거래량을 확인하려면 판매량 열의 링크를 클릭하세요" 17 | }, 18 | "sales-chart": "판매 차트", 19 | "volumes-chart": "거래량 차트" 20 | } -------------------------------------------------------------------------------- /public/locales/ko/nft.json: -------------------------------------------------------------------------------- 1 | { 2 | "desc": "여기에서 NFT를 검색하고 NFT ID를 입력한 다음 검색 버튼을 누를 수 있습니다", 3 | "enter-nft-id": "NFT ID 입력하세요", 4 | "holders": "배포 (홀더)", 5 | "nft-id-decoded-data": "NFT ID 디코딩 데이터", 6 | "nft-not-found-on-that-network": "이 NFT는 <1>{{network}} 네트워크에서 찾을 수 없습니다.", 7 | "table": { 8 | "digest": "다이제스트", 9 | "attention": "주의", 10 | "attention-texts": { 11 | "no-uri": "해당 NFT에는 URI가 없습니다. 이는 일반적으로 인정된 표준과 호환되지 않습니다.", 12 | "no-metadata": "제공된 URI에 해당 NFT의 메타데이터가 없습니다. 이는 일반적으로 인정된 표준에 맞지 않습니다.", 13 | "not-transferable": "이 NFT는 전송할 수 없습니다. 발행자와 발행자로부터만 전송 가능합니다.", 14 | "burnable": "발행자(또는 발행자가 승인한 엔티티)가 NFT를 파괴할 수 있습니다.", 15 | "no-digest": "해당 NFT에 대한 다이제스트가 제공되지 않았습니다. NFT의 무결성을 확인할 수 없습니다.", 16 | "invalid-digest": "NFT 무결성 검사에 실패했습니다. 다이제스트가 NFT 메타데이터와 일치하지 않습니다." 17 | }, 18 | "warnings": { 19 | "nft-crawler-delay": "일부 데이터가 오래되었습니다. 마지막 업데이트: {{lastUpdate}}. 서버가 데이터를 업데이트 중입니다. 더 정확한 데이터를 확인하려면 나중에 다시 확인하십시오." 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /public/locales/ko/popups.json: -------------------------------------------------------------------------------- 1 | { 2 | "age-check": { 3 | "subtitle": "노골적인 콘텐츠", 4 | "text": "이것은 노골적이고 민감한 콘텐츠를 활성화합니다. 이를 보려면 법적 연령이 되어야 합니다.", 5 | "button-true": "네, 저는 18세 이상입니다", 6 | "button-false": "아니요, 그렇지 않습니다" 7 | } 8 | } -------------------------------------------------------------------------------- /public/locales/ko/products.json: -------------------------------------------------------------------------------- 1 | { 2 | "titles": { 3 | "for-you": "당신을 위한", 4 | "top-lists": "TOP 리스트", 5 | "nft": "NFT", 6 | "network": "네트워크", 7 | "developer": "개발자" 8 | }, 9 | "items": { 10 | "watchlist": "관심목록", 11 | "tx-export": "거래 내보내기", 12 | "set-avatar": "아바타 설정", 13 | "username-registration": "사용자 이름 등록", 14 | "project-registration": "프로젝트 등록", 15 | "amms": "AMMs", 16 | "distribution": "{{nativeCurrency}} 배포", 17 | "nft-marketplaces": "NFT 마켓플레이스", 18 | "nft-collections": "NFT 컬렉션", 19 | "nft-distribution": "NFT 보유자", 20 | "nft-explorer": "NFT 탐색기", 21 | "nft-sales": "NFT 판매", 22 | "nft-minters": "NFT 민터", 23 | "nft-statistics": "NFT 통계", 24 | "nft-mint": "NFT 발행", 25 | "validators": "검증자", 26 | "amendments": "개정", 27 | "last-ledger-information": "라이브 원장 정보", 28 | "ledger": "마지막 원장 거래", 29 | "nodes": "노드", 30 | "governance": "거버넌스", 31 | "faucet": "{{nativeCurrency}} 수도꼭지", 32 | "api-docs": "API 문서", 33 | "get-api-key": "API 키 받기", 34 | "nft-cdn": "NFT 콘텐츠 계획", 35 | "tools": "Bithomp 도구" 36 | } 37 | } -------------------------------------------------------------------------------- /public/locales/ko/submit-account-information.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "계정 제출", 3 | "heading": "계정 정보 제출", 4 | "cross-chain": "서비스는 크로스체인에서 사용됩니다. <2>XRPL 메인넷에서 서비스를 등록하세요 그러면 다른 Bithomp 탐색기에서도 사용할 수 있습니다.", 5 | "desc": "Bithomp는 탐색기를 통해 제공되는 정보의 품질을 높이고 사용자가 원장(Ledger)에서 관계를 신속하게 식별할 수 있도록 노력합니다. 원장을 사용하는 서비스(거래소, 금융 서비스 제공업체, 비영리 단체 또는 기타 사업)를 운영 중이거나 이러한 서비스를 이용하는 경우, 이곳에 서비스 정보를 제출해 주세요.", 6 | "no-private": "제출은 개인 계정이 아닌 서비스용 계정을 위한 것입니다. 이 양식을 통해 제출된 개인 계정 정보는 폐기됩니다.", 7 | "subtitle": "귀하의 정보", 8 | "info": "제출 검증을 위해 필요할 경우 연락할 이메일 주소를 제공해 주세요.", 9 | "placeholders": { 10 | "email": "개인 이메일", 11 | "name": "서비스 이름", 12 | "address": "주소", 13 | "domain": "웹 도메인", 14 | "twitter": "X 사용자 이름", 15 | "instagram": "인스타그램 사용자 이름", 16 | "facebook": "페이스북 사용자 이름", 17 | "youtube": "유튜브 사용자 이름", 18 | "linkedin": "링크드인 사용자 이름", 19 | "reddit": "레딧 사용자 이름", 20 | "medium": "미디엄 사용자 이름", 21 | "telegram": "텔레그램 사용자 이름" 22 | }, 23 | "form": { 24 | "error": { 25 | "service-name-empty": "서비스 이름을 입력하세요." 26 | }, 27 | "success": "양식이 성공적으로 제출되었습니다." 28 | }, 29 | "error": { 30 | "Account exist": "해당 주소에 대한 정보가 이미 제출되었습니다." 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /public/locales/ko/validators.json: -------------------------------------------------------------------------------- 1 | { 2 | "table": { 3 | "validator": "검증자", 4 | "server-country": "서버 국가", 5 | "server-location": "서버 위치", 6 | "cloud-private": "클라우드/프라이빗", 7 | "network-asn": "네트워크 ASN", 8 | "owner-country": "소유자 국가", 9 | "votes-for": "찬성 투표", 10 | "last-seen": "마지막 확인", 11 | "text": { 12 | "domain-verified-toml": "검증된 도메인 (TOML 파일)", 13 | "unl": "In the Unique Node List (UNL)", 14 | "negative-unl": "in the Negative UNL" 15 | } 16 | }, 17 | "domain-legacy": "도메인 (증명 오래됨)", 18 | "text0": "벨리데이터 목록 <1>{{url}}에는 {{sequence}} 시퀀스와 {{expiration}} 만료가 있습니다.
이 목록에는 아래에 나열된 {{validatorCount}} 벨리데이터가 포함되어 있습니다." 19 | } -------------------------------------------------------------------------------- /public/locales/ru/about-us.json: -------------------------------------------------------------------------------- 1 | { 2 | "seo-header": "О нас", 3 | "seo-description": "Об продуктах Bithomp, наша история, миссия и планы.", 4 | "header": "Добро пожаловать в Bithomp" 5 | } -------------------------------------------------------------------------------- /public/locales/ru/activations.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "Активированные аккаунты", 3 | "account-activations-for-that-period": "За этот период <1>{{count}} адресов было активировано." 4 | } -------------------------------------------------------------------------------- /public/locales/ru/admin.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "Панель управления" 3 | } -------------------------------------------------------------------------------- /public/locales/ru/amendments.json: -------------------------------------------------------------------------------- 1 | { 2 | "soon": "Поправки, набравшие большинство", 3 | "new": "Новые поправки", 4 | "not-available": "Недоступные поправки", 5 | "obsolete": "Устаревшие поправки", 6 | "enabled": "Включенные поправки", 7 | "majority": "Большинство", 8 | "eta": "Расчетное время активации" 9 | } -------------------------------------------------------------------------------- /public/locales/ru/distribution.json: -------------------------------------------------------------------------------- 1 | { 2 | "desc": "Здесь представлены ТОП 100 адресов по {{nativeCurrency}} балансу.", 3 | "summary": "Всего существует <1>{{activeAccounts}} активных адресов, общее сумма всех балансов и эксроу: <3>{{totalCoins}}" 4 | } -------------------------------------------------------------------------------- /public/locales/ru/ledger.json: -------------------------------------------------------------------------------- 1 | { 2 | "no-transactions": "Мы не смогли найти ни одной транзакции для отображения.", 3 | "ledger-not-found": "Мы пока не можем найти леджер с таким номером", 4 | "earliest-ledger": "Леджер <1>{{minLedger}} это самый ранний леджер из доступных в истории.", 5 | "earliest-ledger-mainnet": "Леджер <1>32570 это самый ранний леджер из доступных в истории, созданный примерно через неделю после запуска сети, <3>леджеры с 1 по 32569 были потеряны в 2012 году.", 6 | "ledger-continue": "Из-за того что состояние {{ledgerName}} зарисывается в каждой версии леджера, система может продолжить свою работу и без потерянный леджеров.", 7 | "ledger_unix_close_time": "Unix время закрытия леджера: {data.close_time}", 8 | "ledger_utc_close_time": "UTC время закрытия леджера: {data.closeTime}" 9 | } -------------------------------------------------------------------------------- /public/locales/ru/nft-distribution.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "NFT распределение", 3 | "desc": "Здесь вы можете проверить распределение NFT, выпущенных конкретным эмитентом. Введите адрес NFT эмитента или его ник и нажмите кнопку поиска.", 4 | "no-nfts": "Мы не смогли найти ни одного NFT у этого эмитента.", 5 | "total": "У {{users}} аккаунтов нашлось {{nfts}} NFT", 6 | "nonSelfIssued": "У {{users}} аккаунтов нашлось {{nfts}} несамовыпущенных NFTs", 7 | "selfIssued": "У {{users}} аккаунтов нашлось {{nfts}} самовыпущенных NFTs", 8 | "table": { 9 | "non-self-issued": "Несамовыпущенные", 10 | "self-issued": "Самовыпущенные", 11 | "total": "Всего" 12 | } 13 | } -------------------------------------------------------------------------------- /public/locales/ru/nft-minters.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "NFT чеканщики", 3 | "desc": "Здесь представлен список всех распознаных нами NFT чеканщиков. Если вы хотите чтобы ваш проект был в этом списке, то укажите в memo транзакции чеканки адрес вашего веб-сайта.", 4 | "summary-period": "За этот период отчеканено <1>{{minted}} NFT, из которых <4>{{mintedAndBurned}} NFT {{percentMintedAndBurned}} были уже сожжены в этот же период времени, всего сожжено за этот период: <11>{{burned}} NFT.", 5 | "summary-all": "Всего отчеканено <1>{{minted}} NFT, из которых <4>{{mintedAndBurned}} NFT {{percentMintedAndBurned}} сожжены.", 6 | "mint-chart": "График чеканок", 7 | "table": { 8 | "minted-total": "Всего отчеканено", 9 | "minted-with-metadata": "Отчеканенные NFT с метаданными", 10 | "minted-and-burned": "Отчеканено и сожжено", 11 | "burned-total": "Всего сожжено" 12 | } 13 | } -------------------------------------------------------------------------------- /public/locales/ru/nft-sort.json: -------------------------------------------------------------------------------- 1 | { 2 | "dropdown": { 3 | "priceHigh": "Цена от высокой к низкой", 4 | "priceLow": "Цена от низкой к высокой", 5 | "soldNew": "Последние продажи", 6 | "soldOld": "Самые старые продажи", 7 | "mintedNew": "Последние минты", 8 | "mintedOld": "Самые старые минты", 9 | "rating": "Популярные", 10 | "offerCreatedNew": "Новые предложения", 11 | "offerCreatedOld": "Старые предложения" 12 | } 13 | } -------------------------------------------------------------------------------- /public/locales/ru/nft-volumes.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "Объёмы продаж NFT", 3 | "text0": "За указанный период на {{explorerName}} было {{allSales}} {{currency}} NFT продаж {{saleType}} в общую сумму {{allVolume}}.", 4 | "collections": { 5 | "desc": "Это список NFT коллекций. Данные объёмы не включают себя первичные продажи (выпуски), которые прошли в две транзакции (отдельная оплата и последуюший трансфер)." 6 | }, 7 | "brokers": { 8 | "desc": "Это список аккаунтов-брокеров. Одни маркетплейсы не используют брокер-модель, другие используют ее лишь для части своих торгов.", 9 | "no-broker": "Без брокера", 10 | "text0": "За указанный период на XRPL было {{allSales}} <3>{{currency}} NFT продаж {{saleType}} в общую сумму {{allVolume}}, из которых <13>{{brokerSales}} {{percentBrokerSales}} продаж на сумму <19>{{brokerVolume}} {{percentBrokerVolume}} были совершены через брокерную модель." 11 | }, 12 | "marketplaces": { 13 | "desc": "Это список NFT Маркетплейсов на {{explorerName}}. Данные объёмы не включают себя первичные продажи (выпуски), которые прошли в две транзакции (отдельная оплата и последуюший трансфер)." 14 | }, 15 | "issuers": { 16 | "desc": "Это список NFT эмитентов на {{explorerName}}. Чтобы посмотреть объёмы продаж у NFT коллекций использующих таксон, нажмите на ссылку в колонке Объём продаж." 17 | }, 18 | "sales-chart": "Чарт продаж", 19 | "volumes-chart": "Чарт объёмов продаж" 20 | } -------------------------------------------------------------------------------- /public/locales/ru/nft.json: -------------------------------------------------------------------------------- 1 | { 2 | "desc": "Здесь можно посмотреть информацию по NFT, введите идентификатор NFT и намите кнопку поиска.", 3 | "enter-nft-id": "Введите идентификатор NFT", 4 | "holders": "Распределение (Держатели)", 5 | "nft-id-decoded-data": "Декодированные данные NFT ID", 6 | "nft-not-found-on-that-network": "Мы не нашли этот NFT в сети <1>{{network}}.", 7 | "table": { 8 | "digest": "Дайджест", 9 | "attention": "Внимание", 10 | "attention-texts": { 11 | "no-uri": "В NFT отсутствует URI, что противоречит общепринятым стандартам.", 12 | "no-metadata": "В данном URI отсутствуют метаданные для этого NFT. Это противоречит общепринятым стандартам.", 13 | "not-transferable": "Этот NFT нельзя передовать; его лишь можно получить от эмитента или вернуть эмитенту.", 14 | "burnable": "Эмитент (или организация, уполномоченная эмитентом) может уничтожить NFT.", 15 | "no-digest": "У этого NFT нет Дайджеста. Целостность NFT не может быть проверена.", 16 | "invalid-digest": "Проверка целостности NFT не удалась. Дайджест не соответствует метаданным NFT." 17 | }, 18 | "warnings": { 19 | "nft-crawler-delay": "Некоторые данные устарели, последнее обновление было {{lastUpdate}}. Вернитесь попозже, чтобы увидеть актуальные данные." 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /public/locales/ru/popups.json: -------------------------------------------------------------------------------- 1 | { 2 | "age-check": { 3 | "subtitle": "Откровенный контент", 4 | "text": "Здесь будет представлен откровенный и деликатный контент. Для его просмотра вы должны быть совершеннолетними.", 5 | "button-true": "Да, мне есть 18", 6 | "button-false": "Нет, мне нет 18" 7 | } 8 | } -------------------------------------------------------------------------------- /public/locales/ru/products.json: -------------------------------------------------------------------------------- 1 | { 2 | "titles": { 3 | "for-you": "Для вас", 4 | "top-lists": "Топ списки", 5 | "nft": "NFT", 6 | "network": "Сеть", 7 | "developer": "Разработчикам" 8 | }, 9 | "items": { 10 | "watchlist": "Списки отслеживания", 11 | "tx-export": "Экспорт транзакций", 12 | "set-avatar": "Добавить аватар", 13 | "username-registration": "Регистрация ника", 14 | "project-registration": "Регистрация проекта", 15 | "amms": "АММ", 16 | "distribution": "Держатели {{nativeCurrency}}", 17 | "nft-marketplaces": "NFT маркетплейсы", 18 | "nft-collections": "NFT коллекции", 19 | "nft-distribution": "Держатели NFT", 20 | "nft-explorer": "NFT эксплорер", 21 | "nft-sales": "Продажи NFT", 22 | "nft-minters": "Минтеры NFT", 23 | "nft-statistics": "Статистика NFT", 24 | "nft-mint": "Чеканка NFT", 25 | "validators": "Валидаторы", 26 | "amendments": "Поправки", 27 | "last-ledger-information": "Текущие данные сети", 28 | "ledger": "Последний леджер", 29 | "nodes": "Сетевые ноды", 30 | "governance": "Правление", 31 | "faucet": "Фаусет {{nativeCurrency}}", 32 | "api-docs": "Документация по API", 33 | "get-api-key": "Получить API ключ", 34 | "nft-cdn": "Bithomp-tools" 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /public/locales/ru/submit-account-information.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Регистрация Сервиса на Bithomp", 3 | "heading": "Отправьте информацию об адресе", 4 | "cross-chain": "Имена Сервисов используются во всех сетях, <2>зарегистрируйте Сервис на XRPL mainnet и он будет так же доступен на всех других bithomp эксплорерах.", 5 | "desc": "Bithomp стремится повысить качество предоставляемой информации. Если вы запускаете Сервис или если он у вас уже запущен, пожалуйста, отправьте информацию о ваших адресах здесь.", 6 | "no-private": "Эта форма не предназначена для частных адресов, такие заявки будут удалены.", 7 | "subtitle": "Ваша информация", 8 | "info": "Пожалуйста, укажите свой адрес электронной почты на случай, если нам понадобится связаться с вами для проверки вашей заявки.", 9 | "placeholders": { 10 | "email": "Ваш личный адрес электронной почты", 11 | "name": "Имя сервиса", 12 | "address": "Адрес", 13 | "domain": "Домен", 14 | "twitter": "X", 15 | "instagram": "Instagram", 16 | "facebook": "Facebook", 17 | "youtube": "Youtube", 18 | "linkedin": "LinkedIn", 19 | "reddit": "Reddit", 20 | "medium": "Medium", 21 | "telegram": "Telegram" 22 | }, 23 | "form": { 24 | "error": { 25 | "service-name-empty": "Введите имя сервиса" 26 | }, 27 | "success": "Форма успешно отправлена" 28 | }, 29 | "error": { 30 | "Account exist": "Кто-то уже отправлял нам информацию по данному адресу." 31 | } 32 | } -------------------------------------------------------------------------------- /public/locales/ru/unl-report.json: -------------------------------------------------------------------------------- 1 | { 2 | "header": "UNL репорт", 3 | "desc": "Здесь вы можете посмотреть UNL репорт для Леджера <1>#{{ledgerIndex}}, номер записи: 61E32E...6F28DC.", 4 | "summary": "В репорте всего <1>{{activeValidators}} активных валидаторов." 5 | } -------------------------------------------------------------------------------- /public/locales/ru/validators.json: -------------------------------------------------------------------------------- 1 | { 2 | "table": { 3 | "validator": "Валидатор", 4 | "server-country": "Страна сервера", 5 | "server-location": "Местоположение сервера", 6 | "cloud-private": "Частный сервер / облако", 7 | "network-asn": "Сеть ASN", 8 | "owner-country": "Страна владельца", 9 | "votes-for": "Голосует за", 10 | "last-seen": "Видили", 11 | "text": { 12 | "domain-verified-toml": "Верифицированный домен (TOML файл)", 13 | "unl": "в UNL (Unique Node List)", 14 | "negative-unl": "в негативном UNL" 15 | } 16 | }, 17 | "domain-legacy": "Домен (старая верификация)", 18 | "text0": "Список валидаторов <1>{{url}} с порядковым номером {{sequence}} истекает {{expiration}}.
В данном списке {{validatorCount}} валидаторов, которые перечислены ниже." 19 | } -------------------------------------------------------------------------------- /sentry.edge.config.js: -------------------------------------------------------------------------------- 1 | // This file configures the initialization of Sentry for edge features (middleware, edge routes, and so on). 2 | // The config you add here will be used whenever one of the edge features is loaded. 3 | // Note that this config is unrelated to the Vercel Edge Runtime and is also required when running locally. 4 | // https://docs.sentry.io/platforms/javascript/guides/nextjs/ 5 | 6 | import * as Sentry from "@sentry/nextjs"; 7 | 8 | Sentry.init({ 9 | dsn: "https://d3b1dd32720f876c640f4e6287754251@o4509359897116672.ingest.de.sentry.io/4509359897509968", 10 | 11 | // Define how likely traces are sampled. Adjust this value in production, or use tracesSampler for greater control. 12 | tracesSampleRate: 0.1, 13 | 14 | // Setting this option to true will print useful information to the console while you're setting up Sentry. 15 | debug: false, 16 | }); 17 | -------------------------------------------------------------------------------- /sentry.server.config.js: -------------------------------------------------------------------------------- 1 | // This file configures the initialization of Sentry on the server. 2 | // The config you add here will be used whenever the server handles a request. 3 | // https://docs.sentry.io/platforms/javascript/guides/nextjs/ 4 | 5 | import * as Sentry from "@sentry/nextjs"; 6 | 7 | Sentry.init({ 8 | dsn: "https://d3b1dd32720f876c640f4e6287754251@o4509359897116672.ingest.de.sentry.io/4509359897509968", 9 | 10 | // Define how likely traces are sampled. Adjust this value in production, or use tracesSampler for greater control. 11 | tracesSampleRate: 0.1, 12 | 13 | // Setting this option to true will print useful information to the console while you're setting up Sentry. 14 | debug: false, 15 | }); 16 | -------------------------------------------------------------------------------- /styles/components/addressInput.scss: -------------------------------------------------------------------------------- 1 | @use "select.scss"; 2 | 3 | .address-input { 4 | @include select.react-select; 5 | } -------------------------------------------------------------------------------- /styles/components/ageCheck.module.scss: -------------------------------------------------------------------------------- 1 | .age_check { 2 | position: fixed; 3 | z-index: 5; 4 | top: 50%; 5 | left: 50%; 6 | transform: translate(-50%, -50%); 7 | background: var(--background-menu); 8 | width: 400px; 9 | padding: 20px 40px 40px; 10 | color: #fff; 11 | text-align: center; 12 | 13 | @media(max-width: 650px) { 14 | max-width: 280px; 15 | padding: 24px 20px; 16 | } 17 | 18 | h3 { 19 | font-weight: 700; 20 | line-height: 1; 21 | font-size: 110px; 22 | color: var(--accent-link); 23 | margin: -5px 0; 24 | 25 | @media(max-width: 650px) { 26 | font-size: 90px; 27 | } 28 | } 29 | } 30 | 31 | .age_check__subtitle { 32 | font-weight: 700; 33 | font-size: 24px; 34 | margin: 5px 0; 35 | 36 | @media(max-width: 650px) { 37 | font-size: 20px; 38 | } 39 | } 40 | 41 | .age_check__text { 42 | font-size: 18px; 43 | 44 | @media(max-width: 650px) { 45 | font-size: 14px; 46 | } 47 | } 48 | 49 | .age_check__btns { 50 | display: flex; 51 | gap: 20px; 52 | justify-content: center; 53 | } 54 | 55 | .age_check__btn { 56 | background: none; 57 | border: 1px solid var(--accent-icon); 58 | color: #fff; 59 | font-size: 18px; 60 | flex-basis: 40%; 61 | padding: 10px 0; 62 | transition: background-color 0.3s ease-in-out; 63 | cursor: pointer; 64 | 65 | @media(max-width: 650px) { 66 | font-size: 14px; 67 | min-width: 45%; 68 | } 69 | 70 | &:hover { 71 | background: var(--accent-icon); 72 | } 73 | } -------------------------------------------------------------------------------- /styles/components/buttonScrollTop.module.scss: -------------------------------------------------------------------------------- 1 | .buttonArrowScroll :global { 2 | .button-arrow-scroll { 3 | height: 42px; 4 | width: 42px; 5 | z-index: 2; 6 | border: none; 7 | border-radius: 50%; 8 | background-color: var(--button-additional); 9 | position: fixed; 10 | right: 80px; 11 | bottom: 40px; 12 | box-shadow: 0 0 7px 0 var(--shadow); 13 | transition: box-shadow 0.3s ease-in-out, opacity 0.25s ease-in-out; 14 | cursor: pointer; 15 | opacity: 0; 16 | -webkit-tap-highlight-color: transparent; // Remove the blue highlight on mobile 17 | 18 | @media only screen and (max-width: 816px) { 19 | right: 15px; 20 | bottom: 60px; 21 | } 22 | 23 | &.is-shown { 24 | opacity: 1; 25 | } 26 | 27 | &.is-fixed { 28 | position: absolute; 29 | top: -40px; 30 | transform: translateY(-100%); 31 | } 32 | 33 | svg { 34 | transition: transform 0.3s ease-in-out; 35 | color: var(--accent-icon); 36 | width: 28px; 37 | height: 28px; 38 | left: calc(50% - 14px); 39 | position: absolute; 40 | top: calc(50% - 14px); 41 | } 42 | 43 | &:hover { 44 | box-shadow: 0 0 7px 0 rgba(0, 0, 0, 0.4); 45 | 46 | svg { 47 | transform: scale(0.9); 48 | } 49 | } 50 | } 51 | } -------------------------------------------------------------------------------- /styles/components/checkbox.scss: -------------------------------------------------------------------------------- 1 | .checkbox { 2 | display: block; 3 | position: relative; 4 | margin-top: 20px; 5 | padding-left: 28px; 6 | cursor: pointer; 7 | -webkit-user-select: none; 8 | -moz-user-select: none; 9 | -ms-user-select: none; 10 | user-select: none; 11 | 12 | .checkmark { 13 | position: absolute; 14 | top: 0; 15 | left: 0; 16 | height: 23px; 17 | width: 23px; 18 | background-color: #ccc; 19 | &:after { 20 | content: ""; 21 | position: absolute; 22 | display: none; 23 | left: 8px; 24 | top: 3px; 25 | width: 6px; 26 | height: 12px; 27 | border: solid white; 28 | border-width: 0 2px 2px 0; 29 | -webkit-transform: rotate(45deg); 30 | -ms-transform: rotate(45deg); 31 | transform: rotate(45deg); 32 | } 33 | } 34 | 35 | &--outline { 36 | padding-left: 35px; 37 | 38 | .checkmark { 39 | background-color: transparent; 40 | border: 1px solid #ccc; 41 | } 42 | } 43 | 44 | input { 45 | position: absolute; 46 | opacity: 0; 47 | cursor: pointer; 48 | &:checked ~ .checkmark { 49 | background-color: var(--accent-icon); 50 | &:after { 51 | display: block; 52 | } 53 | } 54 | &:disabled ~ .checkmark { 55 | background-color: #ccc; 56 | cursor: not-allowed; 57 | } 58 | } 59 | } -------------------------------------------------------------------------------- /styles/components/countrySelect.scss: -------------------------------------------------------------------------------- 1 | @use "select.scss"; 2 | 3 | .country-select { 4 | @include select.react-select; 5 | } -------------------------------------------------------------------------------- /styles/components/currencySelect.scss: -------------------------------------------------------------------------------- 1 | @use "select.scss"; 2 | 3 | .currency-select { 4 | @include select.react-select; 5 | 6 | .react-select__control { 7 | min-width: 125px; 8 | .react-select__input { 9 | padding-left: 29.5px !important; 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /styles/components/inputPrepend.scss: -------------------------------------------------------------------------------- 1 | .input-prepend { 2 | position: relative; 3 | margin-top: 20px; 4 | max-width: 766px; 5 | width: 100%; 6 | 7 | @media only screen and (max-width: 816px) { 8 | max-width: 378px; 9 | margin: 0 auto 20px; 10 | } 11 | 12 | input { 13 | padding-left: 40px; 14 | max-width: 704px; 15 | 16 | @media only screen and (max-width: 816px) { 17 | width: calc(100% - 52px); 18 | max-width: 378px; 19 | } 20 | 21 | &::placeholder { 22 | color: var(--text-main); 23 | opacity: 0.5; 24 | } 25 | 26 | &[value=""] + label { 27 | opacity: 0.5; 28 | } 29 | } 30 | 31 | label { 32 | color: var(--accent-icon); 33 | position: absolute; 34 | inset: 0 auto 0 11px; 35 | display: flex; 36 | align-items: center; 37 | width: 20px; 38 | transition: opacity 0.4s; 39 | 40 | svg { 41 | width: 100%; 42 | } 43 | } 44 | } -------------------------------------------------------------------------------- /styles/components/issuerSelect.scss: -------------------------------------------------------------------------------- 1 | @use "select.scss"; 2 | 3 | .issuer-select { 4 | @include select.react-select; 5 | max-width: 400px; 6 | width: 100%; 7 | display: inline-block; 8 | 9 | .filters & { 10 | display: block; 11 | margin-top: 7px; 12 | } 13 | } -------------------------------------------------------------------------------- /styles/components/pagination.scss: -------------------------------------------------------------------------------- 1 | .MuiTablePagination-root { 2 | display: inline-block; 3 | background-color: var(--background-input); 4 | transition: background-color .5s, color .5s; 5 | border: 1px solid var(--unaccent-icon); 6 | color: var(--text-main) !important; 7 | @media screen and (max-width: 920px) and (min-width: 440px) { 8 | margin-right: 0px; 9 | margin-left: auto; 10 | &:hover { 11 | border-color: var(--accent-link); 12 | box-shadow: 0 0 5px var(--unaccent-icon); 13 | } 14 | } 15 | @media screen and (max-width: 440px) { 16 | min-width: 200px; 17 | } 18 | } 19 | 20 | .MuiSvgIcon-root { 21 | color: var(--text-main) !important; 22 | } 23 | 24 | .MuiToolbar-root { 25 | min-height: unset !important; 26 | } 27 | 28 | .MuiTablePagination-selectLabel, 29 | .MuiTablePagination-displayedRows { 30 | margin: 0 !important; 31 | } 32 | 33 | .MuiButtonBase-root { 34 | padding: 7px !important; 35 | @media screen and (max-width: 440px) { 36 | padding: 3px !important; 37 | } 38 | } -------------------------------------------------------------------------------- /styles/components/priceChart.scss: -------------------------------------------------------------------------------- 1 | .chart-toolbar { 2 | position: relative; 3 | margin-bottom: -23px; 4 | margin-left: 68px; 5 | z-index: 1; 6 | button { 7 | cursor: pointer; 8 | margin-right: 5px; 9 | background-color: var(--accent-icon); 10 | border: 0px; 11 | color: var(--text-contrast); 12 | transition: background-color 0.5s; 13 | &.active { 14 | font-weight: bold; 15 | background-color: var(--unaccent-icon); 16 | } 17 | &:hover { 18 | background-color: var(--unaccent-icon); 19 | } 20 | } 21 | @media only screen and (max-width: 650px) { 22 | margin-bottom: 20px; 23 | margin-left: unset; 24 | text-align: center; 25 | } 26 | } 27 | 28 | .apexcharts-toolbar { 29 | z-index: 1 !important; 30 | div[class*="-icon"] { 31 | transform: scale(1) !important; 32 | } 33 | .apexcharts-zoomout-icon { 34 | margin-right: unset; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /styles/components/simpleSelect.scss: -------------------------------------------------------------------------------- 1 | @use "select.scss"; 2 | 3 | .simple-select { 4 | @include select.react-select; 5 | max-width: 400px; 6 | display: inline-block; 7 | } 8 | 9 | .quarter, 10 | .halv { 11 | .simple-select { 12 | width: 100%; 13 | } 14 | } -------------------------------------------------------------------------------- /styles/components/switch.scss: -------------------------------------------------------------------------------- 1 | .theme-switch { 2 | display: inline-block; 3 | vertical-align: middle; 4 | z-index: 2; 5 | .switch-container { 6 | display: flex; 7 | margin-left: auto; 8 | width: 52px; 9 | height: 30px; 10 | background-color: var(--background-menu); 11 | border: 1px solid var(--background-header); 12 | border-radius: 30px; 13 | justify-content: space-between; 14 | align-items: center; 15 | padding: 0 7px; 16 | cursor: pointer; 17 | position: relative; 18 | box-sizing: border-box; 19 | transition: background-color .5s; 20 | .switch-icon { 21 | opacity: 0.2; 22 | transition: opacity .5s; 23 | } 24 | &.dark .sun, 25 | &.light .moon { 26 | opacity: 1; 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /styles/components/tabs.scss: -------------------------------------------------------------------------------- 1 | .tabs { 2 | display: flex; 3 | justify-content: center; 4 | align-items: center; 5 | margin: 10px; 6 | margin-bottom: 20px; 7 | .tabs-list { 8 | padding: 1px; 9 | position: relative; 10 | border: 1px solid var(--accent-link); 11 | input { 12 | width: auto; 13 | height: 100%; 14 | -webkit-appearance: none; 15 | -moz-appearance: none; 16 | appearance: none; 17 | outline: none; 18 | cursor: pointer; 19 | padding: 4px 8px; 20 | color: var(--accent-link); 21 | font-size: 14px; 22 | margin: 0; 23 | &:checked { 24 | background-color: var(--accent-link); 25 | color: #fff; 26 | } 27 | &:before { 28 | content: attr(label); 29 | display: inline-block; 30 | text-align: center; 31 | width: 100%; 32 | } 33 | } 34 | } 35 | } 36 | 37 | .tabs-inline { 38 | text-align: center; 39 | .tabs { 40 | display: inline-block; 41 | } 42 | } 43 | 44 | .content-center { 45 | .tabs { 46 | margin-left: 0; 47 | margin-right: 0; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /styles/components/topLinks.scss: -------------------------------------------------------------------------------- 1 | .top-links { 2 | border-top: 1px solid var(--background-menu); 3 | border-bottom: 1px solid var(--background-menu); 4 | background-color: var(--background-header); 5 | text-align: center; 6 | line-height: 29px; 7 | z-index: 1; 8 | position: relative; 9 | margin-top: -1px; 10 | color: var(--text-contrast); 11 | .top-link { 12 | color: var(--text-contrast); 13 | font-weight: 400; 14 | } 15 | } -------------------------------------------------------------------------------- /styles/components/viewToggle.scss: -------------------------------------------------------------------------------- 1 | $button-size: 38px; 2 | $button-size-mobile: 30px; 3 | 4 | .view-toggle { 5 | &__wrap { 6 | position: sticky; 7 | top: 94px; 8 | right: 0; 9 | display: flex; 10 | justify-content: space-between; 11 | width: fit-content; 12 | gap: 1px; 13 | border: 1px solid var(--unaccent-icon); 14 | 15 | @media (max-width: 1300px) { 16 | top: 90px; 17 | } 18 | } 19 | 20 | &__button { 21 | transition: background-color 0.3s; 22 | 23 | label { 24 | cursor: pointer; 25 | width: $button-size; 26 | height: $button-size; 27 | display: flex; 28 | align-items: center; 29 | justify-content: center; 30 | color: var(--text-main); 31 | background-color: var(--background-input); 32 | font-size: 18px; 33 | 34 | @media(max-width: 440px) { 35 | width: $button-size-mobile; 36 | height: $button-size-mobile; 37 | } 38 | } 39 | 40 | input:checked + label { 41 | background: var(--accent-link); 42 | color: #fff; 43 | } 44 | 45 | svg { 46 | padding-bottom: 2px; 47 | } 48 | 49 | input { 50 | display: none; 51 | } 52 | 53 | &:hover { 54 | background-color: var(--background-input-hover); 55 | } 56 | 57 | &--is-selected { 58 | background-color: var(--background-input-selected); 59 | } 60 | } 61 | } -------------------------------------------------------------------------------- /styles/globals.css: -------------------------------------------------------------------------------- 1 | @layer theme, base, components, utilities; 2 | 3 | @import "tailwindcss/theme.css" layer(theme); 4 | @import "tailwindcss/utilities.css" layer(utilities); 5 | 6 | @custom-variant dark (&:where(.dark, .dark *)); 7 | 8 | @plugin "@tailwindcss/typography"; -------------------------------------------------------------------------------- /styles/pages/alerts.scss: -------------------------------------------------------------------------------- 1 | .page-alerts { 2 | table { 3 | tr { 4 | th { 5 | &:nth-child(2), 6 | &:nth-child(6), 7 | &:nth-child(7) { 8 | text-align: right; 9 | } 10 | } 11 | td { 12 | &:nth-child(1), 13 | &:nth-child(3) { 14 | text-align: center; 15 | } 16 | &:nth-child(2), 17 | &:nth-child(6), 18 | &:nth-child(7) { 19 | text-align: right; 20 | } 21 | } 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /styles/pages/genesis.scss: -------------------------------------------------------------------------------- 1 | .page-genesis { 2 | table { 3 | tr { 4 | td { 5 | padding: 5px; 6 | } 7 | } 8 | } 9 | } -------------------------------------------------------------------------------- /styles/pages/governance.scss: -------------------------------------------------------------------------------- 1 | .page-governance { 2 | .div-with-table { 3 | min-width: 640px; 4 | @media screen and (max-width: 800px) { 5 | min-width: 100%; 6 | } 7 | } 8 | table { 9 | &.table-large { 10 | &.shrink { 11 | min-width: 640px; 12 | @media screen and (max-width: 800px) { 13 | min-width: 100%; 14 | } 15 | } 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /styles/pages/nft-offer.scss: -------------------------------------------------------------------------------- 1 | .nft-offer { 2 | .column-left { 3 | display: inline-block; 4 | position: relative; 5 | width: calc(40% - 10px); 6 | padding-right: 10px; 7 | } 8 | .column-right { 9 | display: inline-block; 10 | width: calc(60% - 32px); 11 | padding: 0 15px; 12 | vertical-align: top; 13 | } 14 | @media only screen and (max-width: 600px) { 15 | font-size: 14px; 16 | .column-left { 17 | width: 100%; 18 | margin: auto; 19 | } 20 | .column-right { 21 | width: 100%; 22 | padding: 0; 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /styles/pages/pro-history.scss: -------------------------------------------------------------------------------- 1 | .page-pro-history { 2 | @media (min-width: 1300px) { 3 | .filters + .content-text { 4 | min-height: unset !important; 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /styles/pages/username.scss: -------------------------------------------------------------------------------- 1 | .page-username { 2 | .payment-instructions { 3 | padding: 20px; 4 | word-break: break-word; 5 | } 6 | .payment-awaiting { 7 | padding: 20px; 8 | } 9 | } -------------------------------------------------------------------------------- /utils/axios.js: -------------------------------------------------------------------------------- 1 | import axios from 'axios' 2 | import { server } from '.' 3 | 4 | export const axiosServer = axios.create({ 5 | headers: { 6 | common: { 'x-bithomp-token': process.env.NEXT_PUBLIC_BITHOMP_API_KEY } 7 | }, 8 | baseURL: server + '/api/' 9 | }) 10 | 11 | export const axiosAdmin = axios.create({ 12 | baseURL: server + '/api/partner/' 13 | }) 14 | 15 | //keep it here, for when page is refreshed. 16 | axiosAdmin.interceptors.request.use( 17 | (config) => { 18 | const sessionToken = localStorage.getItem('sessionToken')?.replace(/['"]+/g, '') 19 | if (sessionToken && !config.headers.common['Authorization']) { 20 | config.headers.common['Authorization'] = `Bearer ${sessionToken}` 21 | } 22 | return config 23 | }, 24 | (error) => Promise.reject(error) 25 | ) 26 | 27 | export const passHeaders = (req) => { 28 | let headers = {} 29 | //we need to pass only some headers, otherwise axios error 30 | if (req.headers['x-real-ip']) { 31 | headers['x-real-ip'] = req.headers['x-real-ip'] 32 | } 33 | if (req.headers['x-forwarded-for']) { 34 | headers['x-forwarded-for'] = req.headers['x-forwarded-for'] 35 | } 36 | if (req.headers['user-agent']) { 37 | headers['user-agent'] = req.headers['user-agent'] 38 | } 39 | return headers 40 | } 41 | -------------------------------------------------------------------------------- /utils/blobVerifications.js: -------------------------------------------------------------------------------- 1 | import axios from 'axios' 2 | 3 | export const setAvatar = async (data, callback) => { 4 | const response = await axios.post('v2/avatar/' + data.address, { blob: data.blob }).catch((error) => { 5 | if (callback) { 6 | callback({ error: error.response?.data?.error || error.message }) 7 | } 8 | }) 9 | const json = response?.data 10 | /* {"result": "success"} */ 11 | if (json?.result === 'success') { 12 | if (callback) { 13 | callback(json) 14 | } 15 | } else if (json?.error) { 16 | if (callback) { 17 | callback({ error: json.error }) 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /utils/calc.js: -------------------------------------------------------------------------------- 1 | import BigNumber from 'bignumber.js' 2 | 3 | BigNumber.config({ 4 | DECIMAL_PLACES: 15, // Up to 15 decimal places, IOUs 5 | ROUNDING_MODE: BigNumber.ROUND_HALF_UP // Standard rounding mode 6 | }) 7 | 8 | export const add = (a, b) => new BigNumber(a).plus(new BigNumber(b)).toFixed().toString() 9 | 10 | export const subtract = (a, b) => new BigNumber(a).minus(new BigNumber(b)).toString() 11 | 12 | export const multiply = (a, b) => new BigNumber(a).times(new BigNumber(b)).toString() 13 | 14 | export const divide = (a, b) => { 15 | if (new BigNumber(b).isZero()) { 16 | return 'Cannot divide by zero' 17 | } 18 | return new BigNumber(a).div(new BigNumber(b)).toString() 19 | } 20 | -------------------------------------------------------------------------------- /utils/common.js: -------------------------------------------------------------------------------- 1 | import axios from 'axios' 2 | import { devNet } from '.' 3 | 4 | export const fetchCurrentFiatRate = async (currency, setRate) => { 5 | if (devNet) return 0 6 | const response = await axios('v2/rates/current/' + currency) 7 | setRate(response?.data[currency]) 8 | } 9 | 10 | export const fetchHistoricalRate = async ({ timestamp, selectedCurrency, setPageFiatRate }) => { 11 | if (!timestamp || !selectedCurrency || devNet) return 12 | const response = await axios( 13 | 'v2/rates/history/nearest/' + selectedCurrency + '?date=' + new Date(timestamp).valueOf() 14 | ).catch(() => { 15 | console.log("ERROR: can't get historical rate") 16 | }) 17 | if (response?.data?.[selectedCurrency]) { 18 | setPageFiatRate(response.data[selectedCurrency]) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /utils/mobile.js: -------------------------------------------------------------------------------- 1 | import MobileDetect from 'mobile-detect' 2 | import { createContext, useContext } from 'react' 3 | import { useWidth } from '.' 4 | 5 | export const IsSsrMobileContext = createContext(false) 6 | 7 | export const getIsSsrMobile = (context) => { 8 | const md = new MobileDetect(context.req.headers['user-agent']) 9 | return Boolean(md.mobile()) 10 | } 11 | 12 | export const useIsMobile = () => { 13 | const isSsrMobile = useContext(IsSsrMobileContext) 14 | const windowWidth = useWidth() 15 | const isBrowserMobile = !!windowWidth && windowWidth < 992 16 | return isSsrMobile || isBrowserMobile 17 | } 18 | --------------------------------------------------------------------------------