diff --git a/.env.example b/.env.example index 25101eb..7c6b24d 100644 --- a/.env.example +++ b/.env.example @@ -1,2 +1 @@ -NEXT_PUBLIC_FINALITY_GADGET_API_URL=http://localhost:8080 -NEXT_PUBLIC_DISPLAY_TESTING_MESSAGES=true \ No newline at end of file +NEXT_PUBLIC_FINALITY_GADGET_API_URL=http://localhost:8080 \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b397693..1e1e8b5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,8 +6,26 @@ on: - "**" jobs: - lint_test: - uses: babylonlabs-io/.github/.github/workflows/reusable_node_lint_test.yml@v0.3.0 - with: - run-build: true - run-unit-tests: true + build_lint_format: + runs-on: ubuntu-24.04 + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: ${{ inputs.node-version }} + + - name: Install dependencies + run: npm install + + - name: Run lint + run: npm run lint + + - name: Run format + run: npm run format + + - name: Run build + run: npm run build diff --git a/Dockerfile b/Dockerfile index 6858f4a..83bc8dd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,40 +13,9 @@ COPY next.config.mjs . COPY tsconfig.json . COPY tailwind.config.ts . COPY postcss.config.js . -COPY .env.example ./.env -# Replace the variables in the .env file -ARG NEXT_PUBLIC_FINALITY_GADGET_API_URL -ARG NEXT_PUBLIC_DISPLAY_TESTING_MESSAGES -RUN sed -i "s|NEXT_PUBLIC_FINALITY_GADGET_API_URL=.*|NEXT_PUBLIC_FINALITY_GADGET_API_URL=${NEXT_PUBLIC_FINALITY_GADGET_API_URL}|g" .env -RUN sed -i "s|NEXT_PUBLIC_DISPLAY_TESTING_MESSAGES=.*|NEXT_PUBLIC_DISPLAY_TESTING_MESSAGES=${NEXT_PUBLIC_DISPLAY_TESTING_MESSAGES}|g" .env -RUN npm run build +EXPOSE 13000 -# Step 2. Production image, copy all the files and run next -FROM node:22-alpine3.19 AS runner +COPY entrypoint.sh . -WORKDIR /app - -# Don't run production as root -RUN addgroup --system --gid 1001 nodejs -RUN adduser --system --uid 1001 nextjs - -COPY --from=builder /app/public ./public - -# Automatically leverage output traces to reduce image size -# https://nextjs.org/docs/advanced-features/output-file-tracing -COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./ -COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static - -# Copy the .env file -COPY --from=builder --chown=nextjs:nodejs /app/.env ./.env - -RUN chown -R nextjs:nodejs . - -USER nextjs - -# Uncomment the following line to disable telemetry at run time -ENV NEXT_TELEMETRY_DISABLED=1 - -CMD ["node", "server.js"] -STOPSIGNAL SIGTERM +ENTRYPOINT ["./entrypoint.sh"] diff --git a/LICENSE b/LICENSE deleted file mode 100644 index bf18d72..0000000 --- a/LICENSE +++ /dev/null @@ -1,169 +0,0 @@ -Business Source License 1.1 - -License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved. -"Business Source License" is a trademark of MariaDB Corporation Ab. - - ------------------------------------------------------------------------------ - -Parameters - -Licensor: Babylon Labs Ltd. - -Licensed Work: Simple Staking - The Licensed Work is (c) 2024 Babylon Labs Ltd. - -Additional Use Grant: - -In addition to the uses permitted under the non-production license below, -we grant you a limited, non-exclusive, non-transferable, non-sublicensable, -revocable license, limited as set forth below, to use the Licensed Work -in this repository for production commercial uses built on or using and integrated -with the Babylon Protocol, not including Competing Uses. - -Any use beyond the scope of this license, including uses that are not built on or -using and integrated with the Babylon Protocol, or are Competing Uses, -will terminate this license to you, automatically and without notice. - -This License applies separately and solely to the specific versions of the Licensed Work -in the specified repository on or before the date of this License, and we may require a -different license and different provisions for each subsequent version of the -Licensed Work released by us. - -"Babylon Labs", "we", "our", or "us" means Babylon Labs Ltd. - -"Babylon Protocol" means the Bitcoin staking protocol as further described in the documentation -here (https://docs.babylonlabs.io/docs/introduction/babylon-overview), as updated from time to time. - -"Competing Use" means any use of the Licensed Work in any product, software, protocol, network, -application, or service that is made available to any party and that -(i) substitutes for the use of the Babylon Protocol, -(ii) offers the same or substantially similar functionality as the Babylon Protocol or -(iii) is built on or uses a protocol with substantially similar functionality as the Babylon Protocol -or otherwise facilitates the staking of bitcoin other than by utilizing the Babylon Protocol. - -The provisions in this License apply to each individual, entity, group, or association -(each and collectively, "you" or "your") who uses the Licensed Work for production, -and you agree to such provisions. Your production use of the Licensed Work is conditional on your -agreement to this License. If you do not agree and consent to be bound to this License, -do not so use the Software. - -If you do not fall within the limited scope of this license as described above or below, -or are otherwise not in strict compliance with this License, then this production license does not -extend to you and does not grant you any production use, including any copying, distributing, or -making any derivative use of the Licensed Work for production purposes. - -Limited Scope of License. Your commercial production license to the Licensed Work -under this License does not extend to any use: - -1. unless you have legal capacity to consent and agree to be bound by this License; -2. unless you have the technical knowledge necessary or advisable to understand and evaluate the - risks of using the Licensed Work and the Babylon Protocol; -3. if you are a resident or agent of, or an entity organized, incorporated or doing business in, - Afghanistan, Belarus, Bosnia and Herzegovina, Burundi, Central African Republic, Crimea, Cuba, - Democratic People's Republic of Korea, Democratic Republic of the Congo, - Donetsk or Luhansk Regions of Ukraine, Eritrea, Guinea, Guinea-Bissau, Haiti, Iran, Iraq, Lebanon, - Libya, Mali, Myanmar, Nicaragua, Russia, Somalia, South Sudan, Sudan, Syria, Venezuela, Yemen, - or Zimbabwe or any other country to which the United States, the United Kingdom, - the European Union or any of its member states or the United Nations or any of its member states - (collectively, the "Major Jurisdictions") embargoes goods or imposes sanctions - (such embargoed or sanctioned territories, collectively, the "Restricted Territories"); -4. if you are, or if you directly or indirectly own or control, from any person or entity that is - listed on any sanctions list or equivalent maintained by any of the Major Jurisdictions - (collectively, "Sanctions Lists Persons"); -5. to transact in or with any Restricted Territories or Sanctions List Persons; -6. if you are a U.S. Person as defined in 17 CFR § 230.902, or currently or ordinarily located or - resident in (or incorporated or organized in) the United States of America, Canada, or - Australia (collectively, "Excluded Jurisdictions"), or to transact in or with Excluded Jurisdictions; -7. to defraud, or otherwise materially mislead, any person; -8. in violation of applicable laws, rules or regulations in your relevant jurisdiction; -9. that circumvents any sanctions or export controls targeting you or the country or territory where - you are located; or -10. in any activity that transmits, exchanges, or is otherwise supported by the direct or indirect - proceeds of criminal or fraudulent activity. - -Any production use of the Licensed Work by you confirms your agreement to the foregoing limitations, -and your understanding and agreement that they are limitations and not restrictions. - -Change Date: 2027-03-15 (March 15th, 2027) - -Change License: Apache 2.0 - ------------------------------------------------------------------------------ - -Terms - -The Licensor hereby grants you the right to copy, modify, create derivative -works, redistribute, and make non-production use of the Licensed Work. The -Licensor may make an Additional Use Grant, above, permitting limited -production use. - -Effective on the Change Date, or the fourth anniversary of the first publicly -available distribution of a specific version of the Licensed Work under this -License, whichever comes first, the Licensor hereby grants you rights under -the terms of the Change License, and the rights granted in the paragraph -above terminate. - -If your use of the Licensed Work does not comply with the requirements -currently in effect as described in this License, you must purchase a -commercial license from the Licensor, its affiliated entities, or authorized -resellers, or you must refrain from using the Licensed Work. - -All copies of the original and modified Licensed Work, and derivative works -of the Licensed Work, are subject to this License. This License applies -separately for each version of the Licensed Work and the Change Date may vary -for each version of the Licensed Work released by Licensor. - -You must conspicuously display this License on each original or modified copy -of the Licensed Work. If you receive the Licensed Work in original or -modified form from a third party, the terms and conditions set forth in this -License apply to your use of that work. - -Any use of the Licensed Work in violation of this License will automatically -terminate your rights under this License for the current and all other -versions of the Licensed Work. - -This License does not grant you any right in any trademark or logo of -Licensor or its affiliates (provided that you may use a trademark or logo of -Licensor as expressly required by this License). - -TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON -AN "AS IS" BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, -EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND -TITLE. - -MariaDB hereby grants you permission to use this License’s text to license -your works, and to refer to it using the trademark "Business Source License", -as long as you comply with the Covenants of Licensor below. - ------------------------------------------------------------------------------ - -Covenants of Licensor - -In consideration of the right to use this License’s text and the "Business -Source License" name and trademark, Licensor covenants to MariaDB, and to all -other recipients of the licensed work to be provided by Licensor: - -1. To specify as the Change License the GPL Version 2.0 or any later version, - or a license that is compatible with GPL Version 2.0 or a later version, - where "compatible" means that software provided under the Change License can - be included in a program with software provided under GPL Version 2.0 or a - later version. Licensor may specify additional Change Licenses without - limitation. - -2. To either: (a) specify an additional grant of rights to use that does not - impose any additional restriction on the right granted in this License, as - the Additional Use Grant; or (b) insert the text "None". - -3. To specify a Change Date. - -4. Not to modify this License in any other way. - ------------------------------------------------------------------------------ - -Notice - -The Business Source License (this document, or the "License") is not an Open -Source license. However, the Licensed Work will eventually be made available -under an Open Source License, as stated in this License. diff --git a/Makefile b/Makefile deleted file mode 100644 index b2e06b1..0000000 --- a/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -DOCKER ?= $(shell which docker) -GIT_ROOT := $(shell git rev-parse --show-toplevel) - -build: npm run build - -build-docker: - $(DOCKER) build \ - --tag snapchain/finality-explorer \ - --build-arg NEXT_PUBLIC_FINALITY_GADGET_API_URL=$$(grep NEXT_PUBLIC_FINALITY_GADGET_API_URL .env | cut -d '=' -f2) \ - --build-arg NEXT_PUBLIC_DISPLAY_TESTING_MESSAGES=$$(grep NEXT_PUBLIC_DISPLAY_TESTING_MESSAGES .env | cut -d '=' -f2) \ - -f Dockerfile \ - $(GIT_ROOT) -.PHONY: build build-docker \ No newline at end of file diff --git a/README.md b/README.md index 77f29f6..675ae8a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# Babylon Finality Explorer +# Finality Explorer -A simple web application to allow users of OP Stack L2 chains to view the finality status of transactions. +A simple web application to allow users of OP Stack L2 chains that use the Babylon Bitcoin Staking Finality Gadget to view the finality status of transactions. ## Develop @@ -11,11 +11,7 @@ variables in the `.env.example` file in the root directory: cp .env.example .env.local ``` -where, - -- `NEXT_PUBLIC_FINALITY_GADGET_API_URL` specifies the back-end API for the finality gadget -- `NEXT_PUBLIC_DISPLAY_TESTING_MESSAGES` boolean value to indicate whether display -testing network related message. Default to true +where `NEXT_PUBLIC_FINALITY_GADGET_API_URL` specifies the back-end API for the finality gadget. Then, to start a development server: diff --git a/docker-compose.yml b/docker-compose.yml index e1beb10..fb7ca63 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,13 +5,10 @@ services: dockerfile: Dockerfile args: - NEXT_PUBLIC_FINALITY_GADGET_API_URL=${NEXT_PUBLIC_FINALITY_GADGET_API_URL} - - NEXT_PUBLIC_DISPLAY_TESTING_MESSAGES=true image: snapchain/finality-explorer:latest ports: - "13000:3000" environment: - - NODE_ENV=production - - NEXT_TELEMETRY_DISABLED=1 - NEXT_PUBLIC_FINALITY_GADGET_API_URL=${NEXT_PUBLIC_FINALITY_GADGET_API_URL} env_file: - .env diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100755 index 0000000..8d421a8 --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +# Build the app +npm run build + +# Start the app +exec npm run start \ No newline at end of file diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000..57635db Binary files /dev/null and b/public/favicon.ico differ diff --git a/public/logo-card.png b/public/logo-card.png new file mode 100644 index 0000000..5f7cb6a Binary files /dev/null and b/public/logo-card.png differ diff --git a/public/og.png b/public/og.png deleted file mode 100644 index 99e8794..0000000 Binary files a/public/og.png and /dev/null differ diff --git a/src/app/assets/bg-pattern.svg b/src/app/assets/bg-pattern.svg deleted file mode 100644 index 0ed8017..0000000 --- a/src/app/assets/bg-pattern.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - mainnet-bg-pattern - - - - - - diff --git a/src/app/assets/icon-black.svg b/src/app/assets/icon-black.svg deleted file mode 100644 index e6e7889..0000000 --- a/src/app/assets/icon-black.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - logo-full-black - - - - - - - \ No newline at end of file diff --git a/src/app/assets/icon-white.svg b/src/app/assets/icon-white.svg deleted file mode 100644 index 6682beb..0000000 --- a/src/app/assets/icon-white.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - logo-full-black - - - - - - - \ No newline at end of file diff --git a/src/app/assets/logo-black.svg b/src/app/assets/logo-black.svg deleted file mode 100644 index e9f5200..0000000 --- a/src/app/assets/logo-black.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/app/assets/logo-white.svg b/src/app/assets/logo-white.svg deleted file mode 100644 index 8af8e28..0000000 --- a/src/app/assets/logo-white.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/app/components/Footer/Footer.tsx b/src/app/components/Footer/Footer.tsx index 170e406..03397c1 100644 --- a/src/app/components/Footer/Footer.tsx +++ b/src/app/components/Footer/Footer.tsx @@ -1,68 +1,50 @@ import { - BsDiscord, + // BsDiscord, BsGithub, - BsLinkedin, - BsMedium, - BsTelegram, } from "react-icons/bs"; import { FaXTwitter } from "react-icons/fa6"; import { GoHome } from "react-icons/go"; -import { IoMdBook } from "react-icons/io"; -import { MdAlternateEmail, MdForum } from "react-icons/md"; +// import { IoMdBook } from "react-icons/io"; +import { MdAlternateEmail } from "react-icons/md"; import { useTerms } from "@/app/context/Terms/TermsContext"; const iconLinks = [ { name: "Website", - url: "https://babylonlabs.io", + url: "https://www.snapchain.dev/", Icon: GoHome, }, { name: "X", - url: "https://x.com/babylonlabs_io", + url: "https://twitter.com/snapchaindev", Icon: FaXTwitter, }, { name: "GitHub", - url: "https://github.com/babylonlabs-io", + url: "https://github.com/Snapchain", Icon: BsGithub, }, - { - name: "Telegram", - url: "https://t.me/babyloncommunity", - Icon: BsTelegram, - }, - { - name: "LinkedIn", - url: "https://www.linkedin.com/company/babylon-labs-official", - Icon: BsLinkedin, - }, - { - name: "Medium", - url: "https://medium.com/babylonlabs-io", - Icon: BsMedium, - }, - { - name: "Docs", - url: "https://docs.babylonlabs.io/", - Icon: IoMdBook, - }, - { - name: "Forum", - url: "https://forum.babylonlabs.io/", - Icon: MdForum, - }, + // { + // name: "Docs", + // url: "", + // Icon: IoMdBook, + // }, + // { + // name: "Forum", + // url: "", + // Icon: MdForum, + // }, { name: "Email", - url: "mailto:contact@babylonlabs.io", + url: "info@snapchain.dev", Icon: MdAlternateEmail, }, - { - name: "Discord", - url: "https://discord.com/invite/babylonglobal", - Icon: BsDiscord, - }, + // { + // name: "Discord", + // url: "", + // Icon: BsDiscord, + // }, ]; interface FooterProps {} diff --git a/src/app/components/Header/Header.tsx b/src/app/components/Header/Header.tsx index 1b862b9..2128c5c 100644 --- a/src/app/components/Header/Header.tsx +++ b/src/app/components/Header/Header.tsx @@ -1,9 +1,5 @@ import Image from "next/image"; -import { shouldDisplayTestingMsg } from "@/config"; - -import { Logo } from "../Logo/Logo"; -import { TestingInfo } from "../TestingInfo/TestingInfo"; import { ThemeToggle } from "../ThemeToggle/ThemeToggle"; interface HeaderProps {} @@ -14,8 +10,6 @@ export const Header: React.FC = () => {
- - × Snapchain = () => { height={40} className="rounded-full" /> + Snapchain Tohma Finality Explorer
{/* This modal can be enabled in development to display the connected FG RPC address */} @@ -31,11 +26,6 @@ export const Header: React.FC = () => {
- {shouldDisplayTestingMsg() && ( -
- -
- )} ); }; diff --git a/src/app/components/Logo/Icon.tsx b/src/app/components/Logo/Icon.tsx deleted file mode 100644 index 3d33459..0000000 --- a/src/app/components/Logo/Icon.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import { useTheme } from "next-themes"; -import Image from "next/image"; -import { useEffect, useState } from "react"; - -import darkIcon from "@/app/assets/icon-black.svg"; -import lightIcon from "@/app/assets/icon-white.svg"; - -interface IconProps {} - -export const Icon: React.FC = () => { - const [mounted, setMounted] = useState(false); - const { resolvedTheme } = useTheme(); - const lightSelected = resolvedTheme === "light"; - - // useEffect only runs on the client, so now we can safely show the UI - useEffect(() => { - setMounted(true); - }, []); - - // uses placeholder of babylon logo with primary color - // since before theme is resolved, we don't know which logo to show - if (!mounted) { - return ; - } - - return ( - - Babylon - - ); -}; diff --git a/src/app/components/Logo/Logo.tsx b/src/app/components/Logo/Logo.tsx deleted file mode 100644 index 565f067..0000000 --- a/src/app/components/Logo/Logo.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { useTheme } from "next-themes"; -import Image from "next/image"; -import { useEffect, useState } from "react"; - -import darkLogo from "@/app/assets/logo-black.svg"; -import lightLogo from "@/app/assets/logo-white.svg"; - -interface LogoProps {} - -export const Logo: React.FC = () => { - const [mounted, setMounted] = useState(false); - const { resolvedTheme } = useTheme(); - const lightSelected = resolvedTheme === "light"; - - // useEffect only runs on the client, so now we can safely show the UI - useEffect(() => { - setMounted(true); - }, []); - - // uses placeholder of babylon logo with primary color - // since before theme is resolved, we don't know which logo to show - if (!mounted) { - return
; - } - - return ( -
- Babylon -
- ); -}; diff --git a/src/app/components/Modals/Privacy/PrivacyModal.tsx b/src/app/components/Modals/Privacy/PrivacyModal.tsx deleted file mode 100644 index 00f9f6e..0000000 --- a/src/app/components/Modals/Privacy/PrivacyModal.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { IoMdClose } from "react-icons/io"; - -import { GeneralModal } from "../GeneralModal"; - -import { Privacy } from "./data/privacy"; - -interface PrivacyModalProps { - open: boolean; - onClose: (value: boolean) => void; -} - -export const PrivacyModal: React.FC = ({ - open, - onClose, -}) => { - return ( - -
-

Privacy Policy

- -
- -
- ); -}; diff --git a/src/app/components/Modals/Privacy/data/privacy.tsx b/src/app/components/Modals/Privacy/data/privacy.tsx deleted file mode 100644 index 17f3353..0000000 --- a/src/app/components/Modals/Privacy/data/privacy.tsx +++ /dev/null @@ -1,703 +0,0 @@ -export const Privacy = () => { - return ( -
-

Effective as of 20 August 2024

-
-

- Babylon Labs Ltd ("Labs",{" "} - "we", "us" or{" "} - "our") is committed to protecting the privacy - of our users, stakeholders, and business partners. This Privacy Policy - describes how we use, disclose, and safeguard any personal information - that we collect through our digital or online properties or services - (including as applicable, our website, social media pages, marketing - activities, live events and other activities described in this Privacy - Policy (each separately and collectively, the{" "} - "Service"). -

-
-

- This Privacy Policy takes into account the requirements of the British - Virgin Islands Data Protection Act 2021 ( - "DPA") and general Privacy Principles. -

-
-

- Please read this Policy carefully. By using, accessing, connecting to, - or downloading any of the Service, you agree and consent to the - collection, use, protection, and disclosure of your information as - described in this Policy. If you do not agree to this Policy, please do - not use, access, connect to, or download any of the Service. -

-
-

Personal Information We Collect

-
-

We may collect the following categories of personal information:

-
    -
  1. - Information you provide to us. Personal information - you may provide to us through the Service or otherwise includes: -
      -
    • - Contact data, such as your first and last name, - salutation, email address, billing and mailing addresses, and - phone number. -
    • -
    • - Demographic data, such as your city, state, - country of residence, and postal code. -
    • -
    • - Forum account data, such as the username and - password that you may set to establish an online forum account on - the Service, date of birth, redemption code, biographical details, - photograph or picture, links to your profiles on social networks, - interests, preferences, and any other information that you add to - your forum account profile. -
    • -
    • - Communications data, such as the data we collect - based on our exchanges with you, including when you{" "} - contact us through the - Service, social media, or otherwise. -
    • -
    • - Job applicant data, such as professional - credentials and skills, educational and work history, LinkedIn - profile page, personal website, authorization to work in the U.S., - immigration status, criminal history, and other information that - may be included on a resume or curriculum vitae as well as in a - cover letter. This may also include diversity information that you - voluntarily provide. -
    • -
    • - Marketing data, such as your preferences for - receiving our marketing communications and details about your - engagement with them. -
    • -
    • - User-generated content data, such as photos, - images, music, videos, comments, questions, messages, works of - authorship, and other content or information that you generate, - transmit, or otherwise make available on the Service, as well as - associated metadata. Metadata includes information on how, when, - where and by whom a piece of content was collected and how that - content has been formatted or edited. Metadata also includes - information that users can add or can have added to their content, - such as keywords, geographical or location information, and other - similar data. -
    • -
    • - Data about others. We may offer features that - help users invite their friends or contacts to use the Service, - and we may collect contact details about these invitees so we can - deliver their invitations. Please do not refer someone to us or - share their contact details with us unless you have their - permission to do so. -
    • -
    • - Other data not specifically listed here, which we - will use as described in this Privacy Policy or as otherwise - disclosed at the time of collection. -
    • -
    -
  2. -
  3. - Information from third-party sources. We may combine - personal information we receive from you with personal information we - obtain from other sources, such as: -
      -
    • - Public sources, such as government agencies, - public records, social media platforms, and other publicly - available sources -
    • -
    • - Private sources, such as data providers, social - media platforms and data licensors. -
    • -
    • - Our affiliate partners, such as our affiliate - network provider and publishers, influencers, and promoters who - participate in our paid affiliate programs. -
    • -
    • - Third-party services, such as social media - services, that you use to log into, or otherwise link to, your - Service account. This data may include your username, profile - picture and other information associated with your account on that - third-party service that is made available to us based on your - account settings on that service. -
    • -
    • - Marketing partners, such as joint marketing - partners and event co-sponsors. -
    • -
    -
  4. -
  5. - Automatically collected data. We, our service - providers, and our business partners may automatically log information - about you, your computer or mobile device, and your interaction over - time with the Service, our communications and other online services, - such as: -
      -
    • - Device data, such as your computer or mobile - device’s operating system type and version, manufacturer and - model, browser type, screen resolution, RAM and disk size, CPU - usage, device type (e.g., phone, tablet), IP address, unique - identifiers (including identifiers used for advertising purposes), - language settings, mobile device carrier, radio/network - information (e.g., Wi-Fi, LTE, 3G), and general location - information such as city, state or geographic area. -
    • -
    • - Online activity data, such as pages or screens - you viewed, how long you spent on a page or screen, the website - you visited before browsing to the Service, navigation paths - between pages or screens, information about your activity on a - page or screen, access times and duration of access, and whether - you have opened our emails or clicked links within them. -
    • -
    • - Communication interaction data such as your - interactions with our email, text or other communications (e.g., - whether you open and/or forward emails) – we may do this through - the use of pixel tags (which are also known as clear GIFs), which - may be embedded invisibly in our emails. -
    • -
    -
  6. -
-
-

Cookies and Similar Technologies

-
-

- Some of the automatic collection described above is facilitated by the - following technologies: -

-
    -
  • - Cookies, which are small text files that websites - store on user devices and that allow web servers to record users’ web - browsing activities and remember their submissions, preferences, and - login status as they navigate a site. Cookies used on our sites - include both "session cookies" that are deleted when a - session ends, "persistent cookies" that remain longer, - "first party" cookies that we place and "third - party" cookies that our third-party business partners and service - providers place. Most browsers accept cookies automatically, but you - may be able to control the way in which your devices permit the use of - cookies. If you so choose, you may block or delete our cookies from - your browser; however, blocking or deleting cookies may cause some of - the Services, including certain features and general functionality, to - work incorrectly. -
  • -
  • - Local storage technologies, like HTML5, that provide - cookie-equivalent functionality but can store larger amounts of data - on your device outside of your browser in connection with specific - applications. -
  • -
  • - Web beacons, also known as pixel tags or clear GIFs, - which are used to demonstrate that a webpage or email was accessed or - opened, or that certain content was viewed or clicked. -
  • -
-
-

How We Use Your Personal Information

-
-

- We may use your personal information for the following purposes or as - otherwise described at the time of collection: -

-
-

- Service delivery and operations. We may use your - personal information to: -

    -
  • provide, operate and improve the Service and our business;
  • -
  • - personalize the Service, including remembering the devices from - which you have previously logged in and remembering your selections - and preferences as you navigate the Service; -
  • -
  • establish and maintain your user profile on the Service;
  • -
  • - facilitate your invitations to friends who you want to invite to - join the Service; -
  • -
  • - facilitate social features of the Service, such as by providing chat - or messaging functionality; -
  • -
  • - enable security features of the Service, such as by sending you - security codes via email or SMS, and remembering devices from which - you have previously logged in; -
  • -
  • - communicate with you about the Service, including by sending - Service-related announcements, updates, security alerts, and support - and administrative messages; -
  • -
  • - communicate with you about events or contests in which you - participate; -
  • -
  • - understand your needs and interests, and personalize your experience - with the Service and our communications; and -
  • -
  • - provide support for the Service, and respond to your requests, - questions and feedback. -
  • -
-

-
-

- Research and development. We may use your personal - information for research and development purposes, including to analyze - and improve the Service and our business and to develop new products and - services. As part of these activities, we may create aggregated, - de-identified and/or anonymized data from personal information we - collect. We make personal information into de-identified or anonymized - data by removing information that makes the data personally identifiable - to you. We may use this aggregated, de-identified or otherwise - anonymized data and share it with third parties for our lawful business - purposes, including to analyze and improve the Service and promote our - business. -

-
-

- Marketing. We and our service providers may send you - direct marketing communications and may personalize these messages based - on your needs and interests. You may opt-out of our marketing - communications as described in the Opt-out of marketing section below. -

-
-

- Events, promotions and contests. We may use your - personal information to: -

    -
  • administer promotions and contests
  • -
  • - communicate with you about promotions or contests in which you - participate -
  • -
  • - contact or market to you after collecting your personal information - at an event -
  • -
-

-
-

- Service improvement and analytics. We may use your - personal information to analyze your usage of the Service, improve the - Service, improve the rest of our business, help us understand user - activity on the Service, including which pages are most and least - visited and how visitors move around the Service, as well as user - interactions with our emails, and to develop new products and services. -

-
-

- To manage our recruiting and process job applications.{" "} - We may use personal information, such as data submitted to us in a job - application, to facilitate our recruitment activities and process job - applications, such as by evaluating a candidate for a job, and - monitoring recruitment statistics. -

-
-

- Compliance and protection. We may use your personal - information to: -

    -
  • - comply with applicable laws, lawful requests, and legal process, - such as to respond to subpoenas, investigations or requests from - government authorities; -
  • -
  • - protect our, your or others’ rights, privacy, safety or property - (including by making and defending legal claims); -
  • -
  • - audit our internal processes for compliance with legal and - contractual requirements or our internal policies; -
  • -
  • enforce the terms and conditions that govern the Service; and
  • -
  • - prevent, identify, investigate and deter fraudulent, harmful, - unauthorized, unethical or illegal activity, including cyberattacks - and identity theft. -
  • -
-

-
-

- With your consent. In some cases, we may specifically - ask for your consent to collect, use or share your personal information, - such as when required by law. -

-
-

- Cookies and similar technologies. In addition to the - other uses included in this section, we may use the Cookies and similar - technologies described above for the following purposes: -

    -
  • - Technical operation. To allow the technical - operation of the Service, such as by remembering your selections and - preferences as you navigate the site, and whether you are logged in - when you visit password protected areas of the Service. -
  • -
  • - Functionality. To enhance the performance and - functionality of our services. -
  • -
  • - Analytics. To help us understand user activity on - the Service, including which pages are most and least visited and - how visitors move around the Service, as well as user interactions - with our emails. For example, we use Google Analytics for this - purpose. You can learn more about Google Analytics and how to - prevent the use of Google Analytics relating to your use of our - sites{" "} - - here - - . -
  • -
-

-
-

Legal Basis for processing personal information:

-
-

- We process your personal information based on one or more of the - following legal bases: -

-
    -
  • - Where you have agreed and consented to the processing of your personal - information -
  • -
  • - Where processing is necessary for the performance of a contract with - you, or for us or our service providers to responsibly enter into a - contract -
  • -
  • Where processing is necessary to comply with a legal obligation
  • -
  • - Where processing is necessary for our legitimate business interests, - provided your interests and fundamental rights do not override those - interests -
  • -
  • - Where processing is necessary in order to protect your vital interests - as a data subject or those of another person -
  • -
- -

- The processing of personal information may be permissible under multiple - of the above categories in any given case. -

-
- -

How We Share Your Personal Information

-
-

- We may share your personal information with the following parties and as - otherwise described in this Privacy Policy, in other applicable notices, - or at the time of collection. -

-
    -
  • - Affiliates. Our corporate parent, subsidiaries, and - affiliates. -
  • -
  • - Service providers. Third parties that provide - services on our behalf or help us operate the Service or our business - (such as hosting, information technology, customer support, email - delivery, marketing, consumer research and website analytics). -
  • -
  • - Business and marketing partners. Third parties with - whom we co-sponsor events or promotions, with whom we jointly offer - products or services, or whose products or services may be of interest - to you. -
  • -
  • - Professional advisors. Professional advisors, such as - lawyers, auditors, bankers and insurers, where necessary in the course - of the professional services that they render to us. -
  • -
  • - Authorities and others. Law enforcement, government - authorities, and private parties, as we believe in good faith to be - necessary or appropriate for the Compliance and protection purposes - described above. -
  • -
  • - Linked third-party services. If you log into the - Service with, or otherwise link your Service account to, a social - media or other third-party service, we may share your personal - information with that third-party service. The third party’s use of - the shared information will be governed by its privacy policy and the - settings associated with your account with the third-party service. -
  • -
  • - Business transferees. We may disclose personal - information in the context of actual or prospective business - transactions, for example, we may need to share certain personal - information with prospective counterparties and their advisers. We may - also disclose your personal information to an acquirer, successor, or - assignee of Labs as part of any merger, acquisition, sale of assets, - or similar transaction, and/or in the event of an insolvency, - bankruptcy, or receivership in which personal information is - transferred to one or more third parties as one of our business - assets. -
  • -
  • - Other users and the public. Your profile and other - user-generated content data are visible to other users of the Service - and the public. For example, other users of the Service or the public - may have access to your information if you chose to make your forum - account profile or other personal information available to them - through the Service, such as when you provide comments, reviews, - survey responses, or share other content. This information can be - seen, collected and used by others, including being cached, copied, - screen captured or stored elsewhere by others (e.g., search engines), - and we are not responsible for any such use of this information. -
  • -
-
-

International Data Transfer

-
-

- We are headquartered in the British Virgin Islands and may use service - providers that operate in other countries. Your personal information may - be transferred to the United States or other locations where privacy - laws may not be as protective as those in your state, province, or - country. -

-
-

Your Rights as a Data Subject

-
-

- By notice in writing to us, delivered to our Notice Address, you may be - entitled to: -

-
    -
  • - receive (in an intelligible form) the personal data we hold about you - and any information available to us as to the source of that personal - data, provided that the personal data can be disclosed without - disclosing personal data of another data subject; -
  • -
  • - request the deletion of your personal data where it is no longer - necessary for the purposes for which it was collected, or if you - withdraw your consent (where consent was the basis for processing) and - there is no other legal ground for processing; -
  • -
  • - request the rectification of any error or omission in your personal - data in our possession or under our control; -
  • -
  • - require us to cease processing, or not to begin processing, your - personal data for the purposes of direct marketing; -
  • -
-

- We may require further information from you in order to be satisfied as - to your identity, or in order to locate the information sought, and we - are not obliged to provide you with personal data or otherwise address - your request unless you satisfy our requirements. We will endeavour to - respond to a written request within the timelines set out in the British - Virgin Islands DPA. -

-
-

Your Choices

-
-

- Access or update your information. If you have - registered for an account with us through the Service, you may review - and update certain account information by logging into the account. -

-
-

- Opt-out of communications. You may opt-out of - marketing-related emails by following the opt-out or unsubscribe - instructions at the bottom of the email, or by{" "} - contacting us. Please note - that if you choose to opt-out of marketing-related emails, you may - continue to receive service-related and other non-marketing emails. -

-
-

- Cookies. Most browsers let you remove or reject - cookies. To do this, follow the instructions in your browser settings. - Many browsers accept cookies by default until you change your settings. - Please note that if you set your browser to disable cookies, the Service - may not work properly. For more information about cookies, including how - to see what cookies have been set on your browser and how to manage and - delete them, visit{" "} - - www.allaboutcookies.org - - . You can also configure your device to prevent images from loading to - prevent web beacons from functioning. -

-
-

- Do Not Track. Some Internet browsers may be configured - to send "Do Not Track" signals to the online services that you - visit. We currently do not respond to "Do Not Track" signals. - To find out more about "Do Not Track", please visit{" "} - - https://www.allaboutdnt.com - - . -

-
-

- Linked third-party platforms. If you choose to connect - to the Service through your social media account or other third-party - platform, you may be able to use your settings in your account with that - platform to limit the information we receive from it. If you revoke our - ability to access information from a third-party platform, that choice - will not apply to information that we have already received from that - third party. -

-
-

- Declining to provide information. We need to collect - personal information to provide certain services. If you do not provide - the information we identify as required or mandatory, we may not be able - to provide those services. -

-
-

- Remove or anonymize your content. You may request that - the content that you posted to the Service be removed or anonymized such - that your personal information will not be publicly identifiable on the - Service by contacting us. We - may decline to process your request as consistent with law. Please note - that even if we process your request, it does not ensure complete or - comprehensive removal of the content or information posted on the - Service. -

-
-

- Delete your content or close your account. You can - choose to delete certain content through your account. If you wish to - request to close your account, please{" "} - contact us. -

-
-

Other Sites and Services

-
-

- The Service may contain links to websites, mobile applications, and - other online services operated by third parties. In addition, our - content may be integrated into web pages or other online services that - are not associated with us. These links and integrations are not an - endorsement of, or representation that we are affiliated with, any third - party. We do not control websites, mobile applications or online - services operated by third parties, and we are not responsible for their - actions. We encourage you to read the privacy policies of the other - websites, mobile applications and online services you use. -

-
-

- Certain transactions conducted via our Services may require you to - connect a compatible third-party digital wallet ( - "Wallet") to the Services. By using such - Wallet to conduct such transactions via the Services, you agree that - your interactions with such Wallet(s) are governed by the privacy policy - for the applicable Wallet, and you agree that you are using the Wallet - in accordance with the terms and conditions of the applicable - third-party provider of such Wallet. Wallets are not maintained or - supported by, or associated or affiliated with Labs. We expressly - disclaim any and all liability for actions arising from your use of any - Wallets, including but without limitation, actions relating to the use - and/or disclosure of personal information by such third-party Wallets. -

-
-

Security

-
-

- We employ a number of technical and organizational safeguards designed - to protect the personal information we collect. These measures include - encryption, access controls, and regular security audits. However, - security risk is inherent in all internet and information technologies - and we cannot guarantee the security of your personal information. -

-
-

Children

-
-

- The Service is not intended for use by anyone under 18 years of age. If - you are a parent or guardian of a child from whom you believe we have - collected personal information in a manner prohibited by law, please{" "} - contact us. If we learn that - we have collected personal information through the Service from a child - without the consent of the child’s parent or guardian as required by - law, we will comply with applicable legal requirements to delete the - information. -

-
-

Changes to This Privacy Policy

-
-

- We reserve the right to modify this Privacy Policy at any time. If we - make material changes to this Privacy Policy, we will notify you by - updating the date of this Privacy Policy and posting it on the Service - or other appropriate means. Any modifications to this Privacy Policy - will be effective upon our posting of the modified version (or as - otherwise indicated at the time of posting). In all cases, your use of - the Service after the effective date of any modified Privacy Policy - indicates your acknowledging that the modified Privacy Policy applies to - your interactions with the Service and our business. -

-
-

How to Contact Us

-
-

- If you have an unresolved privacy or data use concern that we have not - satisfactorily addressed, please contact the data protection regulator - in your jurisdiction. If you have any questions or concerns about this - Privacy Policy or our data protection practices, please contact us via - email at{" "} - contact@babylonlabs.io ( - "Notice Address"). -

-
-

- If you have an unresolved privacy or data use concern that we have not - satisfactorily addressed, please contact the data protection regulator - in your jurisdiction. -

-
- ); -}; diff --git a/src/app/components/Modals/Terms/TermsModal.tsx b/src/app/components/Modals/Terms/TermsModal.tsx deleted file mode 100644 index e41c5f1..0000000 --- a/src/app/components/Modals/Terms/TermsModal.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { IoMdClose } from "react-icons/io"; - -import { GeneralModal } from "../GeneralModal"; - -import { Terms } from "./data/terms"; - -interface TermsModalProps { - open: boolean; - onClose: (value: boolean) => void; -} - -export const TermsModal: React.FC = ({ open, onClose }) => { - return ( - -
-

Terms of Use

- -
- -
- ); -}; diff --git a/src/app/components/Modals/Terms/data/terms.tsx b/src/app/components/Modals/Terms/data/terms.tsx deleted file mode 100644 index b9ed171..0000000 --- a/src/app/components/Modals/Terms/data/terms.tsx +++ /dev/null @@ -1,1017 +0,0 @@ -import { Icon } from "@/app/components/Logo/Icon"; -import { getNetworkAppUrl } from "@/config"; - -export const Terms = () => { - const url = getNetworkAppUrl(); - - return ( -
-

Last updated 20 August 2024

-
-

- Please read these Terms of Use ("Terms") - carefully before interacting with or otherwise using the website at{" "} - - babylonlabs.io - {" "} - including any content, tools, applications, services, or features (the{" "} - "Website") or the user interface at{" "} - - {url} - {" "} - including any content, tools, applications, services, or features (the{" "} - "Interface") or the API described{" "} - - here - {" "} - including any content, tools, applications, services, or features {""} - (the "API", and together with the Website, - the "Services"). -

-
-

- These Terms (and any other terms or policies referenced in these Terms) - govern your use of the Services and apply to you and each individual, - entity, group, or association (each and collectively,{" "} - "you", "your") who views, interacts - with, links to, or otherwise uses the Services. Any use of the Services - serves as your acceptance of these Terms. You agree to comply with all - of these Terms. -

-
-

- If you do not meet the eligibility requirements set forth in Section 2, - or are otherwise not in compliance with these Terms, you must not - interact with, or access, or otherwise use the Services. -

-
-

- - Please read the binding arbitration provision and class action waiver - in Section 16 below, both of which impact your rights as to how - disputes are resolved and limit the manner in which you can seek - relief from us. You will be permitted to pursue claims against us or - our agents only on an individual basis and not as a plaintiff or class - member in any class or representative action or proceeding, and you - will only be permitted to seek relief (including monetary, injunctive, - and declaratory relief) on an individual basis. Applicable law may - permit you to opt out of these arbitration provisions within a brief - amount of time after you accept these terms. In either case, the - provisions of Section 17, "governing law", will apply. - -

-
-

- We may change, add, remove, or modify these Terms including any - provisions in these Terms, at any time in our sole discretion. If we do, - we will post the changes on this page and will indicate at the top of - this page the date these Terms were last revised. It is your - responsibility to check these Terms periodically for changes, and we - encourage you to do so regularly. Your continued use of the Services - following the posting of changes indicates your agreement to and - acceptance of the changes. We may change or discontinue all or any part - of the Services, at any time and without notice, at our sole discretion. -

-
-

- "Babylon Labs",{" "} - "we", "our", or{" "} - "us" means Babylon Labs Ltd. -

-
-

1. THE INTERFACE AND THE PROTOCOLS

-
-

- The Interface is a free web application that connects users to one or - more publicly available protocols and networks (the{" "} - ”Protocols”), much like you use a web browser as an - interface to connect to the internet. You don’t need the Interface to - interact with the Protocols, but it helps. Anyone with internet access - and technical sophistication can interact directly with the Protocols - without using the Interface. The Interface also displays publicly - available third-party information available from other sources, such as - blockchain transaction history. -

-
-

- Know Your Protocols. By interacting with the Protocols, - you can access their functionalities, for example, to self-authorize a - staking transaction handled by the Protocols. The Interface and API are - provided by us as supported by a community of contributors - (collectively, - "Provider"). You should research and - understand the Protocols before using them. You can review their - software source codes that are freely licensed to the public and - available at GitHub. We do not operate or control the Protocols, or - their validators or finality providers, although we may contribute to - the code base used by those who do. -

-
-

- Bring Your Own Wallet. The Interface does not have its - own crypto wallet. You will need to use a third-party wallet provider. - The Interface is a non-custodial application, and we do not ever have - custody, possession, or control of your Bitcoin, cryptocurrency, or - blockchain tokens ("Digital Assets"). You are - solely responsible for your custody of your Digital Assets and the - cryptographic private keys to the Digital Asset wallets you hold. You - should never share your private keys, wallet credentials, or seed phrase - with anyone. Compatibility of the Interface with wallet applications, - devices, or other third-party applications is not an endorsement or - recommendation of such applications or devices, or a warranty, - guarantee, promise, or assurance regarding their fitness or security. We - are not and will not be responsible or liable for any claims, damages, - losses or liabilities whatsoever resulting from the compromise of your - wallet or your Digital Assets, which arise directly or indirectly from - your failure to comply with these Terms. -

-
-

- Your BTC is at Stake. You may use the Interface to send - instructions to the Bitcoin protocol to stake your bitcoin. Full native - Bitcoin staking may not be enabled when you stake your Bitcoin. However, - full Bitcoin staking may be enabled without any notice to you. Once - enabled, a portion or the entirety of your staked Bitcoin may be - forfeited (what is commonly described as slashing) depending on the - Protocol, the finality provider, and the proof-of-stake network for - which you staked your Bitcoin. -

-
-

- Network Fees. We do not collect any compensation from - you for use of the Services in accordance with these Terms. However, you - will need to pay network fees to have transaction messages delivered - through the Protocol and results recorded on the appropriate blockchain. - Examples include staking, unbonding, and withdrawal transactions. The - Interface may provide estimates of network fees. However, the actual - network fee may be different and may be a higher amount. Provider does - not receive such fees and has no ability to reverse or refund any - amounts paid in error.{" "} - - If you lock your bitcoin in a staking transaction without the - necessary amount of bitcoin to pay for the unbonding and withdrawal - transactions, your bitcoin will be forever locked - - . Provider will have no liability for any difference between the amount - of the estimate and the actual network fee, or for you locking your - bitcoin with insufficient bitcoin to pay for the unbonding and - withdrawal. -

-
-

- Your Keys, Your Coins. The Provider and the Interface - are not agents or intermediaries. Neither the Interface nor Provider - stores, has access to or control over any of your Digital Assets, - private keys, passwords, accounts or other property of yours. Neither - the Interface nor Provider is capable of performing transactions or - sending transaction messages on your behalf. Neither the Interface nor - Provider holds or has the ability to purchase, sell or trade any Digital - Assets. All transactions relating to the Protocol are executed and - recorded solely through your interactions with the respective - blockchains. The interactions are not under the control of or affiliated - with Provider or the Interface. -

-
-

- You may give staking, unbonding and withdrawal instructions to the - Protocols, but we cannot initiate those, nor can we prevent slashing. - All draft transaction messages are sent to a third-party wallet - application or device you designate by pressing the ‘Connect Wallet’ (or - similar) button on the Interface. You must personally review and - authorize all transaction messages you wish to send by signing the - relevant transaction message with a private cryptographic key that is - inaccessible to the Interface or Provider. -

-
-

- No Bitcoin-Native Assets (Besides Bitcoin). Do not - connect or use a Bitcoin wallet holding BRC-20, ARC-20, Runes, or other - NFTs or Bitcoin-native assets (other than bitcoin) with the Interface. - They are still in their infancy and in an experimental phase. Software - built for the detection of such tokens to avoid their misspending may - not work, and you may lose all your fungible tokens. -

-
-

2. ELIGIBILITY

-
-

- You are not eligible to access or use any Service, and you represent and - warrant that you will not access or use any of the Services: -

-
    -
  1. - unless you are at least 18 years old and have the legal capacity to - consent and agree to be bound by these Terms; -
  2. -
  3. - unless you have the technical knowledge necessary or advisable to - understand and evaluate the risks of using the Interface and the - Protocols; -
  4. -
  5. - if you are a resident or agent of, or an entity organized, - incorporated or doing business in, any country to which the United - States, the United Kingdom, the European Union or any of its member - states or the United Nations (collectively, the{" "} - "Major Jurisdictions") embargoes goods or - imposes sanctions (such embargoed or sanctioned territories, - collectively, the "Restricted Territories" - ); -
  6. -
  7. - if you are, or if you directly or indirectly own or control, or have - received any assets from any blockchain address or from any person - that is listed on any sanctions list or equivalent maintained by any - of the Major Jurisdictions (collectively,{" "} - "Sanctions Lists Persons"); -
  8. -
  9. - to transact in or with any Restricted Territories or Sanctions List - Persons; -
  10. -
  11. - to engage in any act, practice, or course of business that operates to - circumvent any sanctions or export controls targeting you or the - country or territory where you are located; -
  12. -
  13. - if you are a U.S. Person as defined in 17 CFR § 230.902, or currently - or ordinarily located or resident in (or incorporated or organized in) - the United States of America, Canada, or Australia (collectively,{" "} - "Excluded Jurisdictions"), or to transact - in or with Excluded Jurisdictions; -
  14. -
  15. - by utilizing a virtual private network (e.g., a VPN), or by otherwise - preventing us from correctly identifying the IP address of your - computer; -
  16. -
  17. - by employing any device, scheme or artifice to defraud, or otherwise - materially mislead, any person; -
  18. -
  19. - in connection with any cyberattack including any ’sybil attack‘, ’DoS - attack‘, ’griefing attack‘, virus deployment, or theft; -
  20. -
  21. - to commit any violation of applicable laws, rules or regulations in - your relevant jurisdiction; or -
  22. -
  23. - for any activity that involves data mining, robots, scraping or - similar data gathering or extraction methods of content or information - from any of our Services; -
  24. -
  25. - to solicit personally identifiable information from anyone under the - age of 18; -
  26. -
  27. - to post any information that is harmful, threatening, abusive, - harassing, tortious, excessively violent, defamatory, vulgar, obscene, - pornographic, libelous, invasive of another’s privacy, hateful, - discriminatory; -
  28. -
  29. - to transact in securities, commodities futures, trading of commodities - on a leveraged, margined or financed basis, binary options (including - prediction-market transactions), real estate or real estate leases, - equipment leases, debt financings, equity financings or other similar - transactions, in each case, if such transactions do not comply with - all laws, rules and regulations applicable to the parties and assets - engaged therein; -
  30. -
  31. - to engage in any activity that infringes on or violates any copyright, - trademark, service mark, patent, right of publicity, right of privacy, - or other proprietary or intellectual property rights; or -
  32. -
  33. - to engage in any activity that transmits, exchanges, or is otherwise - supported by the direct or indirect proceeds of criminal or fraudulent - activity. -
  34. -
-
-

- We may modify the list of Restricted Territories and Excluded - Jurisdictions at any time. We reserve the right, in our sole discretion, - to determine the eligibility of users for the Protocols and the - Services. We reserve the right to cease your access or use of the - Services at any time, change any indication or rating by us of your - participation, at any time without notice, in our sole discretion and - for no reason or any reason whatsoever, including for breach of these - Terms. -

-
-

- Further, you are not eligible to use and may not use the Interface or - API for, and our license under Section 6 to the Interface or API does - not extend to, any Competing Use.{" "} - "Competing Use" means any access or use in or - for any product, software, protocol, network, application, or service - that is made available to any party and that (i) substitutes for the use - of the Babylon Protocol, (ii) offers the same or substantially similar - functionality as the Babylon Protocol or (iii) is built on or uses a - protocol with substantially similar functionality as the Babylon - Protocol or otherwise facilitates the staking of Bitcoin other than by - utilizing the Babylon Protocol.{" "} - "Babylon Protocol" means the Bitcoin staking - protocol as further described in the documentation{" "} - - here - - , as updated from time to time. -

-
-

3. CONTENT; PERMITTED USE

-
-

- Unless otherwise noted, all text, graphics, user interfaces, visual - interfaces, photographs, trademarks, logos, sounds, music, artwork and - computer code (collectively, "Content"), - including but not limited to the design, structure, selection, - coordination, expression, "look and feel" and arrangement of - such Content, contained in the Services is owned, controlled or licensed - by or to us and is protected by trade dress, copyright, patent and - trademark laws, and various other intellectual property rights. Except - as expressly provided in these Terms, no part of the Services and no - Content may be copied, reproduced, republished, uploaded, posted, - publicly displayed, encoded, translated, transmitted or distributed in - any way to any other computer, server, website or other medium for - publication or distribution or for any commercial enterprise, without - our express prior written consent. -

-
-

- Our trade names and logos are trademarks or registered trademarks of - ours. All other names and logos on the Services are trademarks or - registered trademarks of their respective owners, where applicable. - References to any third party-owned trademarks on or in the Services are - for informational purposes only and is not intended to indicate or imply - any affiliation, association, sponsorship or endorsement by any owners - of such third party-owned trademarks. -

-
-

You agree to each of the following:

-
    -
  1. - The Content is only being provided as an aid to your own independent - research and evaluation and you should not take, or refrain from - taking, any action based on any Content. -
  2. -
  3. - The ability of the Interface or Website to interact with third-party - wallet applications or devices, or to validator nodes, finality - providers, or proof of stake networks or protocols is not an - endorsement or recommendation by or on behalf of Provider, and you - assume all responsibility for selecting and evaluating, and incurring - the risks of any bugs, defects, malfunctions or interruptions of any - such applications, devices, operators, protocols, or networks. -
  4. -
  5. - You will not hold Provider or any of its or their affiliates, - officers, directors, shareholders, members, representatives or agents - (collectively, "Provider Parties") liable - for any damages that you may suffer in connection with your use of the - Services or the Protocol. -
  6. -
  7. - The Content available on the Services is not professional, legal, - business, investment, or any other advice related to any financial - product, and is not an offer or recommendation or solicitation to buy - or sell any particular Digital Asset or to use any particular - investment strategy. -
  8. -
  9. - Before you make any financial, legal, or other decision, you should - seek independent professional advice from an individual who is - licensed and qualified in the area for which such advice would be - appropriate. -
  10. -
  11. - These Terms are not intended to, and do not, create or impose any - fiduciary duties on any Provider Parties. The only duties and - obligations that we owe you are those set out expressly in these - Terms. -
  12. -
  13. - To the fullest extent permitted by law, Provider Parties owe no - fiduciary duties to you or any other party. To the extent any such - duties may exist at law or in equity, those duties and liabilities are - hereby irrevocably disclaimed, waived, and eliminated. -
  14. -
-
-

4. CERTAIN RISKS

-
-

- You acknowledge, agree to, and assume the following risks and matters: -

-
    -
  1. - Provider may discontinue all or any part of the Services at any time, - with or without notice. -
  2. -
  3. - Provider has no obligation to ensure that the Services provide a - complete and accurate source of all information relating to the - Protocols or other blockchain information. -
  4. -
  5. - You may want or need to rely on block explorers, validator nodes, - finality providers, or other third-party resources. -
  6. -
  7. - The Interface and Protocols require that a certain amount of staked - Bitcoin be locked for a certain period of time, and withdrawal of - staked Bitcoin may be similarly delayed. We do not guarantee the - security or functionality of any Protocols, or any third-party - software or technology intended to be compatible with staked Bitcoin. - You will not be able to unbond or withdraw Bitcoin from staking except - as permitted by the Protocols, and we do not guarantee otherwise. -
  8. -
  9. - In providing information about tokens, the Interface associates or - presumes the association of a token name, symbol, or logo with one or - more blockchain systems. In making such associations, the Interface - relies upon third-party resources which may not be accurate or may not - conform to a given user’s expectations. Multiple smart contracts and - blockchain systems can utilize the same token name or token symbol as - one another, meaning that the name or symbol of a token does not - guarantee that it is the token generally associated with such name or - symbol. You must not rely on the name, symbol, or branding of a token - on the Interface, but instead must examine the specific blockchain - system and smart contract associated with the name, symbol, or - branding and confirm that the token meets your expectations. -
  10. -
  11. - Neither Provider nor the Interface is registered or qualified with or - licensed by, reports to, or is under the active supervision of any - government agency or financial regulatory authority or organization. - No government or regulator has approved or has been consulted by - Provider regarding the accuracy or completeness of any information - available on the Services. Similarly, the technology, systems, - blockchains, tokens, and persons relevant to information published on - the Interface may not be registered with or under the supervision of - or be registered or qualified with or licensed by any government - agency or financial regulatory authority or organization. Neither - Provider nor any individual Interface contributor is registered as a - broker, dealer, advisor, transfer agent or other intermediary. -
  12. -
-
-

5. NO WARRANTY, NO REPRESENTATIONS

-
-

- - The Services are provided on an{" "} - "AS IS" and{" "} - "AS AVAILABLE" basis. Your - access and use of the Services are at your own risk. There is no - representation or warranty that access to the Services will be - continuous, uninterrupted, timely, or secure; that the information - contained in the Services will be accurate, reliable, complete, or - current, or that the Services will be free from errors, defects, - viruses, or other harmful elements. No advice, information, or - statement made in connection with the Services should be treated as - creating any warranty concerning the Services. There is no - endorsement, guarantee, or assumption of responsibility for any - advertisements, offers, or statements made by third parties concerning - the Services. - -

-
-

- - Further, there is no representations or warranty from anyone as to the - quality, origin, or ownership of any Content found on or available - through the Services, and the Provider Parties will have no liability - for any errors, misrepresentations, or omissions in, of, or about, the - Content, nor for the availability of the Content, and they will not be - liable for any losses, injuries, or damages from the use, inability to - use, or the display of the Content. - -

-
-

6. License

-
-

- Subject to the terms and conditions of these Terms and your compliance - with these Terms, we grant you a non-exclusive, non-transferable, - non-sublicensable, personal, revocable license, limited as set forth in - these Terms, to use the Interface, API and Website. This is not a - license to copy, distribute, transmit digitally, publicly perform, - publicly display, or make derivative works of the underlying software. -

-
-

7. PRIVACY POLICY

-
-

- Please refer to our Privacy Policy for information on - how we collect, use and disclose information from users of the Services. -

-
-

8. THIRD-PARTY OFFERINGS AND CONTENT

-
-

- References, links, or referrals to or connections with or reliance on - third-party resources, products, services, or content, including smart - contracts developed or operated by third parties, may be provided to - users in connection with the Services. In addition, third parties may - offer promotions related to the Interface. Provider does not endorse or - assume any responsibility for any activities, resources, products, - services, content, or promotions owned, controlled, operated, or - sponsored by third parties. If users access any such resources, - products, services, or content or participate in any such promotions, - users do so solely at their own risk. You hereby expressly waive and - release Provider Parties from all liability arising from your use of any - such resources, products, services, or content or participation in any - such promotions. -

-
-

- You further acknowledge and agree that Provider Parties will not be - responsible or liable, directly or indirectly, for any damage or loss - caused or alleged to be caused by or in connection with the use of or - reliance on any such resources, products, services, content, or - promotions from third parties. -

-
-

- We operate social media pages on third party networks and have social - media icons on our Services. Social media providers are unaffiliated - with us, and we are not responsible for the content or privacy practices - of social media providers. Social media providers have their own terms - of use and privacy policies, and we encourage you to review those - policies whenever you visit their websites or interact with their - platforms. -

-
-

Fork Handling

-
-

- The Protocol, and all tokens may be subject to{" "} - "Forks" that occur when some or all persons - running the software clients for a particular blockchain system adopt a - new client or a new version of an existing client that: (i) changes the - protocol rules in backward-compatible or backward-incompatible manner - that affects which transactions can be added into later blocks, how - later blocks are added to the blockchain, or other matters relating to - the future operation of the protocol; or (ii) reorganizes or changes - past blocks to alter the history of the blockchain. Some Forks may - result in two or more persistent alternative versions of the protocol or - blockchain, either of which may be viewed as or claimed to be the - legitimate or genuine continuation of the original. -

-
-

- Provider cannot anticipate, control or influence the occurrence or - outcome of Forks, and do not assume any risk, liability or obligation in - connection therewith. Provider does not assume any responsibility to - notify you of pending, threatened or completed Forks. Provider will - respond (or refrain from responding) to any Forks in such manner as - Provider determines in its sole and absolute discretion. Provider will - not have any duty or obligation, or liability to any user if such - response (or lack of such response) acts to your detriment. You assume - full responsibility to independently remain apprised of and informed - about possible Forks, and to manage your own interests and risks in - connection therewith. -

-
-

9. TAX ISSUES

-
-

- The tax consequences of purchasing, selling, holding, transferring, or - locking Digital Assets or otherwise utilizing the Services are uncertain - and may vary by jurisdiction. Provider has undertaken no due diligence - or investigation into such tax consequences, and you assume all - obligation and liability for the tax consequences applicable to you. -

-
-

10. LIMITATION OF LIABILITY

-
-

- - Except to the extent otherwise required by applicable law, under no - circumstances will any of the Provider Parties be responsible or - liable under any theory of liability, whether based in tort, contract, - negligence, strict liability, warranty, or otherwise, for any damages - of any kind arising from or relating to these Terms or the Services, - including but not limited to direct, indirect, economic, exemplary, - special, punitive, incidental, or consequential losses or damages of - any kind, including without limitation, loss of profits. The foregoing - limitations apply even if any of the events or circumstances giving - rise to such damages were foreseeable and even if the Provider Parties - were advised of or should have known of the possibility of such losses - or damages and notwithstanding any failure of essential purpose of any - limited remedy. - -

-
-

- - Except to the extent otherwise required by applicable law, if, - notwithstanding the other provisions of these Terms, any of the - Provider Parties is found to be liable to you for any damages or - losses which arise from or relate to these Terms or the Services, the - total aggregate liability of the Provider Parties for any and all such - claims, regardless of the form of action, is limited to one hundred US - dollars (US$100.00). - -

-
-

- - THE FOREGOING LIMITATIONS WILL APPLY EVEN IF THE ABOVE STATED REMEDY - FAILS OF ITS ESSENTIAL PURPOSE. - -

-
-

- Some jurisdictions do not allow the exclusion of certain warranties, or - the limitation or exclusion of certain liabilities or damages. - Accordingly, some disclaimers and limitations set forth in these Terms - may not apply in full to you. However, the disclaimers and limitations - of liability set forth in these terms will apply to the fullest extent - permitted by applicable law. -

-
-

11. INDEMNIFICATION

-
-

- You will defend, indemnify, compensate, reimburse and hold harmless the - Provider Parties from any claim, demand, action, damage, loss, cost or - expense, including without limitation reasonable attorneys’ fees, - arising out or relating to (a) Your access, interaction with, or other - use, or use by anyone else you enable or permit, of or conduct in - connection with the Services; (b) your violation of these Terms or any - other applicable policy or contract of Provider; or (c) your violation - of any rights of any other person or entity; each, a{" "} - "Claim". We may, in our sole discretion, - require you to defend one or more Provider Parties in any Claim. -

-
-

12. POINTS AND INCENTIVES

-
-

- You may be attributed by us or third parties certain reputation - indicators, loyalty points, or other intangible rewards related to your - activities including staking (collectively,{" "} - "Points"). Points are not blockchain tokens. - Points are not, and may never convert to, accrue to, be used as basis to - calculate, or become any other tokens or other Digital Asset or - distribution thereof. Points are virtual items with no monetary value. - Points do not constitute any currency or property of any type and are - not redeemable, refundable, or eligible for any fiat or virtual currency - or anything else of value. Points are not transferable, and you may not - attempt to sell, trade, or transfer any Points, or obtain any manner of - credit using any Points. Any attempt to sell, trade, or transfer any - Points will be null and void. -

-
-

- We reserve the right to change, modify, discontinue or cancel any Points - programs (including the frequency, criteria and calculation for earning - such Points), at any time and without notice to you. -

-
-

- You agree not to engage in any manipulative, fraudulent, dishonest, or - abusive activities in connection with Points. This includes, but is not - limited to, creating multiple accounts to claim additional Points, using - bots or scripts to automate claiming, or participating in any schemes - that artificially inflate the perceived value of Points. We or our - affiliates may terminate any or all of your Points due to such - activities, or for breaching any license granted by us, and may disclose - privately and publicly why such action was taken. Points may not be - available in your jurisdiction. -

-
-

13. PROMOTIONS

-
-

- Besides our Points program, we may run various promotions, incentives, - or giveaways (each, a "Promotion") - communicated through official Babylon Labs communication mediums, - including blog posts, email, social media, and the Discord server. - Applicable details, including any qualification periods, entry - procedures or requirements, award or selection criteria (to be - determined at our sole discretion), and notification procedures will be - referenced there. Promotions are void where prohibited and open only to - individuals who can lawfully participate in such Promotions in that - individual's particular jurisdiction. -

-
-

14. COPYRIGHT POLICY

-
-

- If you are a copyright owner and believe that any Content on the Website - infringes upon your copyrights, you may submit a notification to us via - email at{" "} - - contracts@babylonlabs.io - {" "} - with the following information: -

-
    -
  • - An electronic or physical signature of the person authorized to act on - behalf of the owner of the copyright’s interest. -
  • -
  • - A description of the material that you claim is infringing and where - it is located on the Services. -
  • -
  • Your address, telephone number, and email address.
  • -
  • - A statement by you that you have a good faith belief that the disputed - use is not authorized by the copyright owner, its agent, or the law. -
  • -
  • - A statement by you, made under penalty of perjury, that the above - information in your notice is accurate and that you are the copyright - owner or authorized to act on the copyright owner’s behalf. -
  • -
-
-

15. USER SUBMISSIONS, FEEDBACK AND INFORMATION

-
-

- You acknowledge and agree that any submission, feedback, comments or - suggestions you may provide regarding the Services either directly or - indirectly (for example, through the use on a third-party social media - site of a company-designated hashtag) (collectively,{" "} - "Feedback") is non-confidential and - non-proprietary, that we may treat as public information, and may be - shared with others on other sites and platforms. You hereby grant us an - unrestricted, irrevocable, universe-wide, royalty-free right to use, - communicate, reproduce, publish, display, distribute and exploit such - Feedback in any manner, with the right to sublicense. -

-
-

16. DISPUTE RESOLUTION; ARBITRATION AGREEMENT

-
-

- - Please read the arbitration provisions in this Section 16 of the Terms - carefully (the "Arbitration Agreement"). It requires you to - arbitrate disputes with Babylon Labs, its affiliates, successors, and - assigns, and all of their respective officers, directors, employees, - agents, and representatives (collectively, the "Babylon - Parties") and limits the manner in which you can seek relief from - the Babylon Parties. - -

-
-

- A. Informal Dispute Resolution: -

-
-

- There might be instances when a dispute arises between you and the - Babylon Parties with respect to the Services or these Terms ( - "Dispute"). If that occurs, we are committed - to working with you to reach a reasonable resolution in good faith. Most - Disputes can be resolved quickly and to your satisfaction by emailing - user support at{" "} - - contracts@babylonlabs.io - {" "} - ("Our Address"). However, if such efforts - prove unsuccessful, you may send a written Notice of Dispute by email to - Our Address ("Notice"). The Notice must - describe the nature and basis of the Dispute and set forth the specific - relief sought. -

-
-

- If Babylon Labs and you do not resolve the Dispute set out in the notice - within sixty (60) calendar days from the date of receipt, you or Babylon - Labs may commence an arbitration proceeding. Both you and Babylon Labs - agree that this dispute resolution procedure is a condition precedent - which must be satisfied before initiating any arbitration against the - other party. -

-
-

- B. Applicability of Arbitration Agreement: -

-
-

- All unresolved disputes, claims, or controversies arising out of or - relating to any of the Services, these Terms, or any other acts or - omissions for which you may claim that that we are liable, including, - but not limited to, any dispute, claim, or controversy as to - arbitrability, will be finally and exclusively settled by arbitration - administered by the London Court of International Arbitration ( - "LCIA") under the LCIA Arbitration Rules in - force at the time of the filing for arbitration of such dispute, -

-
-

- This Arbitration Agreement will survive termination of these Terms, the - Services, or any connection you may have to the information you obtained - from the Interface. -

-
-

- C. Additional Terms of the Arbitration -

-
-

- The following terms apply to any Arbitration proceedings commenced under - this Agreement: -

-
    -
  • - The arbitration will be held before a single neutral arbitrator, - unless either party requests three arbitrators, in which case it will - be held before three neutral arbitrators. -
  • -
  • The arbitration will be conducted in the English language.
  • -
  • - The arbitration will be held in the Cayman Islands and the Cayman - Islands will be deemed the 'seat of arbitration'. -
  • -
  • - All issues are for the arbitrator to decide, including issues relating - to the scope, enforceability, and arbitrability of this Arbitration - Agreement. -
  • -
  • - Any judgment or award made or rendered by the arbitrator(s) may be - entered in any court of competent jurisdiction as necessary. -
  • -
  • - The parties will keep the arbitration proceedings confidential and not - disclose any information regarding the arbitration to any third party - except as follows. The existence of the arbitration, any nonpublic - information provided in the arbitration, and any submissions, orders - or awards made in the arbitration (together, the{" "} - "Confidential Information") will not be - disclosed to any non-party except the tribunal, the ICC, the parties, - their counsel, experts, witnesses, accountants and auditors, insurers - and reinsurers, and any other person necessary to the conduct of the - arbitration, or as necessary to enforce or challenge and award in bona - fide legal proceedings, or as required by law. This confidentiality - provision will survive termination of these Terms and of any - arbitration brought pursuant to these Terms. -
  • -
-
-

D. Other Terms

-
-

- If applicable law allows the enforcement of this Arbitration Agreement - only if you have an opportunity to opt out of these arbitration - provisions within a certain amount of time after you accept these Terms, - then you have 30 days from your first use of any of the Services in - which to opt out of such arbitration terms by sending an email to Our - Address. This email should notify us that you wish to opt out and - provide us with your full name, entity name if you have one, and - jurisdiction. -

-
-

- We reserve the right to modify or update this Arbitration Agreement at - any time. Any such changes will take effect immediately upon us posting - the revised Agreement to the Website. If you do not agree with the - changes, you may opt out within 30 days of the change by sending written - notice to Our Address. otherwise, your continued use of the services - will constitute your acceptance of the updated Arbitration Agreement. -

-
-

- To the extent you reject any future changes, you are agreeing that you - will arbitrate any dispute between us in accordance with the language of - this Arbitration Agreement as of the date you first accepted these Terms - (or accepted any subsequent changes). -

-
-

- E. Class Action Waiver; Jury Trial Waiver -

-
-

- You agree to bring all disputes or claims connected to the Services in - your individual capacity and not as a plaintiff in or member of any - class action, collective action, private attorney general action, or - other representative proceeding. Further, if any Dispute is resolved - through arbitration, the arbitrator may not consolidate another person’s - claims with your claims and may not otherwise preside over any form of a - representative or class proceeding. -

-
-

- Further, if for any reason a claim by law or equity must proceed in - court rather than in arbitration: (a) you and we irrevocably waive the - right to demand a trial by jury, and (b) you and we agree to submit to - the exclusive jurisdiction of the courts of the Cayman Islands and any - courts competent to hear appeals from those courts. -

-
-

F. Exclusions

-
-

- Notwithstanding the foregoing agreement to arbitrate, you or we may - bring any disputes, claims, suits, actions, causes of action, demands or - proceedings in which either party seeks injunctive or other equitable - relief for the alleged unlawful use of intellectual property, including, - without limitation, copyrights, trademarks, trade names, logos, trade - secrets or patents, in any court of competent jurisdiction. -

-
-

17. GOVERNING LAW

-
-

- These Terms and any action related thereto will be governed by the laws - of the Cayman Islands, without regard to the principles of conflict of - laws. Except as expressly set forth in Section 16,{" "} - "Dispute Resolution; Arbitration Agreement"{" "} - the exclusive jurisdiction for all Disputes will be the courts located - in the Cayman Islands, and you waive any objection to jurisdiction and - venue in such courts. -

-
-

18. Miscellaneous

-
-

- The word "or" as - used in this Agreement has an inclusive meaning, equivalent to{" "} - "and/or". The terms - ‘include’ and ‘including’ will be deemed to be immediately followed by - the phrase{" "} - "without limitation" - . The headings appearing at the beginning of several sections contained - in this Agreement have been inserted for identification and reference - purposes only and must not be used to construe or interpret this - Agreement. The word{" "} - "will" as used in - this Agreement has its common meaning, as well as the meaning ascribed - to the word "shall": - expressing a current obligation or status, or obligation or status that - will arise in the future. All provisions of these Terms are severable, - and the unenforceability or invalidity of any of the provisions will not - affect the enforceability or validity of the remaining provisions. Our - failure to insist on or enforce strict performance of these Terms shall - not be deemed a waiver by us of any provision or any right we have to - enforce these Terms. Any such waiver must be in writing in order to be - effective. The parties declare that they have required that these Terms - and all documents related hereto, either present or future, be drawn up - in the English language only:{" "} - - Les parties déclarent par les présentes qu’elles exigent que cette - entente et tous les documents y afferents, soit pour le present ou le - future, soient rédigés en langue anglaise seulement - - . -

-
-

- These Terms shall not be interpreted or construed to confer any rights - or remedies on any third parties. No joint venture, partnership, - employment, or agency relationship exists between you and Provider as a - result of these Terms or your use of the Services. The United Nations - Convention on Contracts for the International Sale of Goods does not - apply and is expressly excluded. -

-
-

- If you are entering into these Terms on behalf of a company or other - legal entity, group, or association, you represent that you have the - authority to bind such entity to these Terms, in which case the Terms{" "} - "you" or "your"{" "} - refers to you and such entity, group, or association. If you do not have - such authority, or if you do not agree with these Terms, you must not - accept these Terms and you may not use the Services. -

-
-

- These Terms and the Privacy Policy constitute the entire agreement with - respect to the subject matter of these Terms and the Privacy Policy, - including the Services. These Terms, including the Privacy Policy, - supersede all prior terms, written or oral understandings, - communications, and other agreements relating to the subject matter of - these Terms and the Privacy Policy; provided, however, that if any - provision of these Terms conflicts with any provision of any other - contract you have entered into directly with us, the provision that is - more protective of and beneficial to us will govern. -

-
-

- Babylon™ and the logo - - are the trademarks of Babylon Labs Ltd. Website and Interface © 2024 - Babylon Labs Ltd. and its licensors. -

-
- ); -}; diff --git a/src/app/components/TestingInfo/TestingInfo.tsx b/src/app/components/TestingInfo/TestingInfo.tsx deleted file mode 100644 index b2f3aaa..0000000 --- a/src/app/components/TestingInfo/TestingInfo.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { RiErrorWarningLine } from "react-icons/ri"; - -import { shouldDisplayTestingMsg } from "@/config"; - -interface TestingInfoProps {} - -export const TestingInfo: React.FC = () => { - if (!shouldDisplayTestingMsg()) return null; - return ( -
-
-
- -

- This is a testing Dapp. -

-
-

- The app may contain bugs. Use it after conducting your own research - and making an informed decision. Displayed information is for testing - purposes only and may not be accurate. -

-
-
- ); -}; diff --git a/src/app/favicon.ico b/src/app/favicon.ico deleted file mode 100644 index 1cd55fe..0000000 Binary files a/src/app/favicon.ico and /dev/null differ diff --git a/src/app/globals.css b/src/app/globals.css index e4ac998..0536164 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -78,13 +78,11 @@ input[type="number"] { } [data-theme="dark"] .main-app-background { - background: rgb(43, 43, 43) url("./assets/bg-pattern.svg") left top/auto - repeat; + background: rgb(43, 43, 43); } [data-theme="light"] .main-app-background { - background: rgb(236, 236, 236) url("./assets/bg-pattern.svg") left top/auto - repeat; + background: rgb(236, 236, 236); } [data-theme="dark"] .react-responsive-modal-modal { diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 1883f11..db09540 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -3,16 +3,44 @@ import { Inter } from "next/font/google"; import "react-responsive-modal/styles.css"; import "react-tooltip/dist/react-tooltip.css"; -import { getNetworkAppUrl } from "@/config"; - import "./globals.css"; import Providers from "./providers"; const inter = Inter({ subsets: ["latin"], variable: "--font-inter" }); +const title = "Tohma Finality Explorer"; +const description = "Finality explorer for Snapchain Tohma devnet"; +const url = "https://tohma.finality-explorer.snapcha.in"; +const imageUrl = `${url}/logo-card.png`; + export const metadata: Metadata = { - title: "Babylon - Staking Dashboard", - description: "BTC Staking Dashboard", + title, + description, + openGraph: { + title, + description, + url, + siteName: title, + images: [ + { + url: imageUrl, + width: 2048, + height: 1170, + type: "image/png", + }, + ], + }, + twitter: { + card: "summary_large_image", + title, + description, + images: [imageUrl], + }, + other: { + "telegram:title": title, + "telegram:description": description, + "telegram:image": imageUrl, + }, }; export default function RootLayout({ @@ -22,22 +50,22 @@ export default function RootLayout({ }>) { return ( - - - - - - - - - - - - - - - - + + + {title} + + + + + + + + + + + + + {children} diff --git a/src/app/page.tsx b/src/app/page.tsx index f070a99..1213947 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -8,14 +8,10 @@ import { getTxFinalityStatus } from "./api/getTxFinalityStatus"; import { Footer } from "./components/Footer/Footer"; import { Header } from "./components/Header/Header"; import { ErrorModal } from "./components/Modals/ErrorModal"; -import { PrivacyModal } from "./components/Modals/Privacy/PrivacyModal"; -import { TermsModal } from "./components/Modals/Terms/TermsModal"; import { SearchBar } from "./components/SearchBar/SearchBar"; import { Stats } from "./components/Stats/Stats"; import { Transaction } from "./components/Transaction/Transaction"; import { useError } from "./context/Error/ErrorContext"; -import { usePrivacy } from "./context/Privacy/PrivacyContext"; -import { useTerms } from "./context/Terms/TermsContext"; import { ErrorState } from "./types/errors"; import { TransactionInfo } from "./types/transactionInfo"; @@ -32,8 +28,6 @@ const Home: React.FC = () => { noCancel, handleError, } = useError(); - const { isTermsOpen, closeTerms } = useTerms(); - const { isPrivacyOpen, closePrivacy } = usePrivacy(); const [refetchInterval, setRefetchInterval] = useState( undefined, ); @@ -135,8 +129,6 @@ const Home: React.FC = () => { onRetry={retryErrorAction} noCancel={noCancel} /> - - ); }; diff --git a/src/config/index.ts b/src/config/index.ts deleted file mode 100644 index ec63944..0000000 --- a/src/config/index.ts +++ /dev/null @@ -1,14 +0,0 @@ -// shouldDisplayTestingMsg function is used to check if the application is running in testing mode or not. -// Default to true if the environment variable is not set. -export const shouldDisplayTestingMsg = (): boolean => { - return ( - process.env.NEXT_PUBLIC_DISPLAY_TESTING_MESSAGES?.toString() !== "false" - ); -}; - -// getNetworkAppUrl function is used to get the network app url based on the environment -export const getNetworkAppUrl = (): string => { - return shouldDisplayTestingMsg() - ? "https://btcstaking.testnet.babylonchain.io" - : "https://btcstaking.babylonlabs.io"; -}; diff --git a/tests/config/index.test.ts b/tests/config/index.test.ts deleted file mode 100644 index 2107c62..0000000 --- a/tests/config/index.test.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { shouldDisplayTestingMsg } from "@/config"; - -describe("shouldDisplayTestingMsg", () => { - beforeEach(() => { - delete process.env.NEXT_PUBLIC_DISPLAY_TESTING_MESSAGES; - }); - afterEach(() => { - delete process.env.NEXT_PUBLIC_DISPLAY_TESTING_MESSAGES; - }); - - it("should return true if NEXT_PUBLIC_DISPLAY_TESTING_MESSAGES is not set", () => { - expect(shouldDisplayTestingMsg()).toBe(true); - }); - - it('should return true if NEXT_PUBLIC_DISPLAY_TESTING_MESSAGES is "true"', () => { - process.env.NEXT_PUBLIC_DISPLAY_TESTING_MESSAGES = "true"; - expect(shouldDisplayTestingMsg()).toBe(true); - }); - - it('should return false if NEXT_PUBLIC_DISPLAY_TESTING_MESSAGES is "false"', () => { - process.env.NEXT_PUBLIC_DISPLAY_TESTING_MESSAGES = "false"; - expect(shouldDisplayTestingMsg()).toBe(false); - }); -}); diff --git a/tests/helper/index.ts b/tests/helper/index.ts deleted file mode 100644 index bf5a735..0000000 --- a/tests/helper/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export class DataGenerator { - //TODO: add generateRandomTx and add tests -} diff --git a/tests/utils/formatTime.test.ts b/tests/utils/formatTime.test.ts deleted file mode 100644 index d1d261e..0000000 --- a/tests/utils/formatTime.test.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { durationTillNow } from "@/utils/formatTime"; - -describe("durationTillNow", () => { - const currentTime = new Date("2024-01-01T12:00:00Z").getTime(); - - it('should return "Ongoing" if time is empty', () => { - expect(durationTillNow("", currentTime)).toBe("Ongoing"); - }); - - it('should return "Ongoing" if time starts with "000"', () => { - expect(durationTillNow("0000-00-00T00:00:00Z", currentTime)).toBe( - "Ongoing", - ); - }); - - it("should return the correct duration in days, hours, and minutes", () => { - const pastTime = new Date("2023-12-31T10:00:00Z").toISOString(); - expect(durationTillNow(pastTime, currentTime)).toBe("1 day 2 hours ago"); - }); - - it("should return the correct duration in hours", () => { - const pastTime = new Date("2024-01-01T10:00:00Z").toISOString(); - expect(durationTillNow(pastTime, currentTime)).toBe("2 hours ago"); - }); - - it("should return the correct duration in minutes", () => { - const pastTime = new Date("2024-01-01T11:50:00Z").toISOString(); - expect(durationTillNow(pastTime, currentTime)).toBe("10 minutes ago"); - }); - - it("should return the correct duration in seconds if less than a minute", () => { - const pastTime = new Date("2024-01-01T11:59:30Z").toISOString(); - expect(durationTillNow(pastTime, currentTime)).toBe("30 seconds ago"); - }); - - it('should return "Just now" if the duration is less than a second', () => { - let pastTime = new Date("2024-01-01T12:00:00Z").toISOString(); - expect(durationTillNow(pastTime, currentTime)).toBe("Just now"); - - // test the ms - pastTime = new Date("2024-01-01T11:59:59.999Z").toISOString(); - expect(durationTillNow(pastTime, currentTime)).toBe("Just now"); - }); -}); diff --git a/tests/utils/trim.test.ts b/tests/utils/trim.test.ts deleted file mode 100644 index fa5c4a5..0000000 --- a/tests/utils/trim.test.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { trim } from "@/utils/trim"; - -describe("trim", () => { - const txHashHex = - "5f43cba06bfd354ad6777d7839b6d2e65871c1ca5c2df2c10468b3f60978e8cb"; - it("should trim transaction hash correctly", () => { - expect(trim(txHashHex)).toBe("5f43...e8cb"); - }); - - it("should trim btc address correctly", () => { - const btcAddress = "bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq"; - expect(trim(btcAddress)).toBe("bc1q...5mdq"); - }); - - it("should trim the string correctly with an odd number of symbols", () => { - expect(trim(txHashHex, 7)).toBe("5f4...8cb"); - }); - - it("should return original string if nothing to trim", () => { - expect(trim("abc")).toBe("abc"); - }); - - it("should return empty string for empty string", () => { - expect(trim("")).toBe(""); - }); - - it("should handle cases where symbols count is 0", () => { - expect(trim("abc", 0)).toBe("..."); - }); -});